function createDropdown(e, name, data, l) { var dropdown = document.createElement("select"); dropdown.setAttribute("id", name); e.appendChild(dropdown); fillDropdown(dropdown, data, l); return dropdown; } function clipText(s, len) { return (s.length < len + 1) ? s : (s.substring(0, len) + "…"); } function fillDropdown(d, data, l) { var maxLen = l; for (var i = 0; i < data.length; ++i) { var option = document.createElement("option"); var displayVal = clipText(data[i], maxLen); option.setAttribute("value", data[i]); d.appendChild(option); option.appendChild(document.createTextNode(displayVal)); } d.selectedIndex = 0; } function resetState(d) { var form = d.parentElement; var iselect = 0; for (; iselect < form.elements.length; ++iselect) { if (form[iselect] == d) break; } if (1 + iselect < form.elements.length) { var target = form.elements[1 + iselect]; clearDropdown(target); fillDropdown(target, form.ymm.data[1 + iselect][selectedValue1(d)], form.ymm.maxLen); target.disabled = (target.options.length <= 1); resetState(form.elements[1 + iselect]); } } function clearDropdown(d) { if (d && d.options) { for (ifield = d.options.length - 1; ifield >= 0; --ifield) { d.removeChild(d.options[ifield]); } } } function selectedValue1(e) { if ("select-one" == e.type) return e.options[e.selectedIndex].value; if ("select-multiple" == e.type) { var result = ""; for (var ifield = 0; ifield < e.options.length; ifield++) { if (e.options[ifield].selected) result += e.options[ifield].value + ','; } return result.substring(0, result.length - 1); } } function selectedValue(f, el) { return selectedValue1(f.elements[el]); } function buildYmms() { var ymms = document.getElementsByTagName("div"); for (var i = 0; i < ymms.length; ++i) { if ("ymm" == ymms[i].getAttribute("className") || "ymm" == ymms[i].getAttribute("class")) createForm(ymms[i]); } } var ymm = {"all":{"maxLen":13,"urls":["","http://autos.msn.com/browse/{0}.aspx"],"url":"http://autos.msn.com/research/vip/default.aspx?year=&make={0}&model={1}","data":[['Make:','Acura','Alfa Romeo','AM General','Aston Martin','Audi','Bentley','BMW','Buick','Cadillac','Chevrolet','Chrysler','Daewoo','Daihatsu','Dodge','Eagle','Ferrari','Ford','Geo','GMC','Honda','Hummer','Hyundai','Infiniti','Isuzu','Jaguar','Jeep','Kia','Lamborghini','Land Rover','Lexus','Lincoln','Lotus','Maserati','Maybach','Mazda','Mercedes-Benz','Mercury','Merkur','MINI','Mitsubishi','Nissan','Oldsmobile','Peugeot','Plymouth','Pontiac','Porsche','Rolls-Royce','Saab','Saturn','Scion','Smart','Sterling','Subaru','Suzuki','Toyota','Volkswagen','Volvo','Yugo'],{'Make:':['Model:'],'Acura':['Model:','All models','CL','Integra','Legend','MDX','NSX','RDX','RL','RSX','SLX','TL','TSX','Vigor'],'Alfa Romeo':['Model:','All models','164','Milano','Spider'],'AM General':['Model:','All models','Hummer'],'Aston Martin':['Model:','All models','DB7','DB7 Vantage','DB9','V12 Vanquish','V8 Vantage','Virage'],'Audi':['Model:','All models','100','100 Wagon','200','200 Wagon','5000','5000 Wagon','80','90','A3','A4','A4 (Early 2005)','A4 Avant','A4 Avant (Early 2005)','A5','A6','A6 Avant','A6 Wagon','A8','allroad quattro','Cabriolet','Q7','Quattro','R8','RS 4','RS6','S4','S4 (Early 2005)','S4 Avant','S4 Avant (Early 2005)','S5','S6','S6 Avant','S6 Wagon','S8','TT','V8'],'Bentley':['Model:','All models','Arnage','Azure','Brooklands','Continental','Continental Flying Spur','Continental GT','Continental GTC','Mulsanne','Turbo'],'BMW':['Model:','All models','1-Series','3-Series','3-Series Sport Wagon','3-Series Sports Wagon','5-Series','5-Series Sport Wagon','5-Series Sports Wagon','6-Series','7-Series','8-Series','M Coupe','M Roadster','M3','M5','M6','X3','X5','Z3','Z4','Z4 M','Z8'],'Buick':['Model:','All models','Century','Century Wagon','Electra','Enclave','Estate Wagon','LaCrosse','LeSabre','Lucerne','Park Avenue','Rainier','Reatta','Regal','Rendezvous','Riviera','Roadmaster','Roadmaster Wagon','Skyhawk','Skyhawk Wagon','Skylark','Terraza'],'Cadillac':['Model:','All models','Allante','Brougham','Catera','Cimarron','CTS','DeVille','DTS','Eldorado','Escalade','Escalade EXT','Fleetwood','Seville','Sixty Special','SRX','STS','XLR'],'Chevrolet':['Model:','All models','APV','Astro','Avalanche','Aveo','Aveo5','Beretta','Blazer','C/K 1500','C/K 2500','C/K 3500','Camaro','Caprice','Caprice Classic','Caprice Classic Wagon','Caprice Wagon','Cargo Van','Cavalier','Cavalier Wagon','Celebrity','Celebrity Wagon','Classic Cargo Van','Cobalt','Colorado','Corsica','Corvette','Equinox','Express','Express Cargo Van','G-Series Van','HHR','Impala','Impala SS','Lumina','Lumina APV','Lumina Minivan','Malibu','Malibu Hybrid','Malibu Maxx','Metro','Monte Carlo','Nova','Prizm','S-10','S10 Blazer','S10 Pickup','Silverado 1500','Silverado 2500','Silverado 2500HD','Silverado 3500','Silverado 3500HD','Silverado Classic 1500','Silverado Classic 2500HD','Silverado Classic 3500','Silverado Hybrid','Spectrum','Sport Van','Sprint','SSR','Suburban','Tahoe','Tahoe Hybrid','Tracker','TrailBlazer','Uplander','Venture'],'Chrysler':['Model:','All models','300','300M','Aspen','Cirrus','Concorde','Conquest','Crossfire','Fifth Avenue','Imperial','Lebaron','LHS','New Yorker','Pacifica','Prowler','PT Cruiser','Sebring','TC by Maserati','Town & Country','Voyager'],'Daewoo':['Model:','All models','Lanos','Leganza','Nubira'],'Daihatsu':['Model:','All models','Charade','Rocky'],'Dodge':['Model:','All models','600','Aries','Aries K','Aries Wagon','Avenger','Caliber','Caravan','Challenger','Charger','Colt','Colt Vista Wagon','Colt Wagon','D100','D150','D250','D350','Dakota','Daytona','Diplomat','Durango','Dynasty','Grand Caravan','Intrepid','Journey','Lancer','Magnum','Mini Ram','Monaco','Neon','Nitro','Omni','Power Ram 50','Power Ram 50 Sport Cab','Raider','Ram 100','Ram 150','Ram 1500','Ram 250','Ram 2500','Ram 350','Ram 3500','Ram 50','Ram Charger','Ram Van','Ram Wagon','Shadow','Spirit','Sprinter Van','Sprinter Wagon','Stealth','Stratus','Viper','W100','W150','W250','W350'],'Eagle':['Model:','All models','Medallion','Medallion Wagon','Premier','Summit','Summit Wagon','Talon','Vision','Wagon'],'Ferrari':['Model:','All models','348','348TB','348TS','360 Modena','456','456M','512TR','550 Maranello','575M','599 GTB Fiorano','612','Enzo','F355','F40','F430','F50','F512M','Mondial','Superamerica','Testarossa'],'Ford':['Model:','All models','Aerostar','Aspire','Bronco','Bronco II','Club Wagon','Contour','Crown Victoria','Econoline','Econoline Wagon','Edge','Escape','Escape Hybrid','Escort','Escort Wagon','E-Series Van','E-Series Wagon','Excursion','Expedition','Explorer','Explorer Sport','Explorer Sport Trac','F-150','F-150 Heritage','F-150 SuperCrew','F-250','F-250 Super Duty','F-350','F-350 Super Duty','F-450 Super Duty','Festiva','Five Hundred','Flex','Focus','Focus Wagon','Freestar','Freestyle','Fusion','GT','LTD Country Squire','LTD Crown Victoria','LTD Crown Victoria Wagon','Mustang','Probe','Ranger','Shelby GT500','Taurus','Taurus Wagon','Taurus X','Tempo','Thunderbird','Windstar','ZX2'],'Geo':['Model:','All models','Metro','Prizm','Spectrum','Storm','Tracker'],'GMC':['Model:','All models','Acadia','Canyon','Envoy','Jimmy','Rally','S15 Jimmy','S15 Pickup','Safari','Savana','Savana Cargo Van','Sierra 1500','Sierra 2500','Sierra 2500 HD','Sierra 2500HD','Sierra 3500','Sierra 3500HD','Sierra C/K 1500','Sierra C/K 2500','Sierra C/K 3500','Sierra Classic 1500','Sierra Classic 2500','Sierra Classic 2500HD','Sierra Classic 3500','Sierra Hybrid','Sonoma','Suburban','Syclone','T15 Jimmy','Typhoon','Vandura','Yukon','Yukon Denali','Yukon Hybrid','Yukon XL'],'Honda':['Model:','All models','Accord','Accord Hybrid','Accord Wagon','Civic','Civic del Sol','Civic Hybrid','Civic Wagon','CR-V','del Sol','Element','Fit','Insight','Odyssey','Passport','Pilot','Prelude','Ridgeline','S2000'],'Hummer':['Model:','All models','H1','H1 Alpha','H2','H3'],'Hyundai':['Model:','All models','Accent','Azera','Elantra','Elantra Wagon','Entourage','Excel','Santa Fe','Scoupe','Sonata','Tiburon','Tucson','Veracruz','XG300','XG350'],'Infiniti':['Model:','All models','EX','FX','G20','G35','G37','I30','I35','J30','M','M30','M45','Q45','QX4','QX4 (1999)','QX56'],'Isuzu':['Model:','All models','Amigo','Ascender','Axiom','Hombre','I-Mark','Impulse','Oasis','Pickup','Rodeo','Rodeo Sport','Stylus','Trooper','Trooper II','Truck','VehiCROSS'],'Jaguar':['Model:','All models','S-TYPE','S-Type','XF Series','XJ Sedan','XJ Series','XJS','XK Series','XK8','X-TYPE','X-Type','X-TYPE Sportwagon','X-Type Sportwagon'],'Jeep':['Model:','All models','Cherokee','Comanche','Commander','Compass','Grand Cherokee','Grand Wagoneer','Liberty','Patriot','Wagoneer','Wrangler'],'Kia':['Model:','All models','Amanti','Optima','Optima - Early 2006','Rio','Rio Cinco','Rio5','Rondo','Sedona','Sephia','Sorento','Spectra','Spectra (2004.5)','Spectra5','Sportage'],'Lamborghini':['Model:','All models','Diablo','Diablo VT','Gallardo','Murcielago','Murcielago LP640'],'Land Rover':['Model:','All models','Defender 110','Defender 90','Discovery','Freelander','LR2','LR3','Range Rover','Range Rover Sport'],'Lexus':['Model:','All models','ES 250','ES 300','ES 330','ES 350','GS','GS 300','GS 300/400','GS 450h','GX 470','IS','IS 300','IS 300 SportCross','IS F','LS 400','LS 430','LS 460','LS 600h','LX 450','LX 470','LX 570','RX 300','RX 330','RX 350','RX 400h','SC 300/400','SC 430'],'Lincoln':['Model:','All models','Aviator','Blackwood','Continental','LS','Mark LT','Mark VII','Mark VIII','MKS','MKX','MKZ','Navigator','Town Car','Zephyr'],'Lotus':['Model:','All models','Elise','Esprit','Exige'],'Maserati':['Model:','All models','Coupe','GranSport','GranTurismo','Quattroporte','Spyder'],'Maybach':['Model:','All models','Maybach'],'Mazda':['Model:','All models','323','323 Wagon','626','929','B-Series','CX-7','CX-9','Mazda3','Mazda5','Mazda6','Mazda6 Sport Wagon','MAZDASPEED3','MAZDASPEED6','Millenia','MPV','MX-3','MX-5 Miata','MX-6','Navajo','Protege','Protege5','RX-7','RX-8','Tribute','Tribute Hybrid','Truck'],'Mercedes-Benz':['Model:','All models','190','260','300','350','400','420','500','560','C-Class','C-Class Wagon','CL-Class','CLK','CLK-Class','CLS-Class','E-Class','E-Class Wagon','G-Class','GL-Class','M-Class','R-Class','S-Class','SL-Class','SLK','SLR'],'Mercury':['Model:','All models','Capri','Cougar','Grand Marquis','Grand Marquis Wagon','Marauder','Mariner','Mariner Hybrid','Milan','Montego','Monterey','Mountaineer','Mystique','Sable','Sable Wagon','Topaz','Tracer','Tracer Wagon','Villager'],'Merkur':['Model:','All models','Scorpio','XR4TI'],'MINI':['Model:','All models','Clubman','Cooper'],'Mitsubishi':['Model:','All models','3000GT','Cargo Van','Cordia','Diamante','Diamante Wagon','Eclipse','Endeavor','Expo','Galant','Lancer','Lancer Evolution','Lancer Sportback','Mighty Max','Mirage','Montero','Montero Sport','Outlander','Precis','Raider','Sigma','Starion','Tredia','Van'],'Nissan':['Model:','All models','200SX','240SX','300ZX','350Z','Altima','Altima Hybrid','Armada','Axxess','Frontier','GT-R','Maxima','Maxima Wagon','Murano','NX','Pathfinder','Pathfinder (1999-5)','Pathfinder Armada','Pickup','Pulsar NX','Quest','Rogue','Sentra','Sentra Wagon','Stanza','Stanza Wagon','Titan','Van','Versa','Xterra'],'Oldsmobile':['Model:','All models','Achieva','Alero','Aurora','Bravada','Ciera','Ciera Wagon','Custom Cruiser','Cutlass','Cutlass Calais','Cutlass Ciera','Cutlass Ciera Wagon','Cutlass Supreme','Delta 88','Eighty Eight','Firenza','Firenza Wagon','Intrigue','LSS','Ninety Eight','Regency','Royale','Silhouette','Toronado','Touring Sedan'],'Peugeot':['Model:','All models','405','405 Wagon','505','505 Wagon'],'Plymouth':['Model:','All models','Acclaim','Breeze','Caravelle','Colt','Colt Vista','Colt Wagon','Gran Fury','Horizon','Laser','Neon','Prowler','Reliant','Reliant Wagon','Sundance','Voyager'],'Pontiac':['Model:','All models','6000','6000 Wagon','Aztek','Bonneville','Fiero','Firebird','G5','G6','G8','Grand Am','Grand Prix','GTO','Lemans','Montana','Montana SV6','Safari','Solstice','Sunbird','Sunbird Wagon','Sunfire','SV6','Torrent','Trans Am','Trans Sport','Vibe'],'Porsche':['Model:','All models','911','924','928','944','968','Boxster','Carrera GT','Cayenne','Cayman'],'Rolls-Royce':['Model:','All models','Corniche','Flying Spur','Park Ward','Phantom','Phantom Drophead Coupe','Silver Dawn','Silver Seraph','Silver Spirit','Silver Spur'],'Saab':['Model:','All models','900','9000','9-2X','9-3','9-3 SportCombi','9-5','9-5 SportCombi','9-5 SportWagon','9-5 Wagon','9-7X'],'Saturn':['Model:','All models','Astra','Aura','Aura Green Line Hybrid','Ion','ION','L300','L300 Sedan','L300 Wagon','LS','L-Series Sedan','L-Series Wagon','LW','Outlook','Relay','SC','Sky','SL','SW','Vue','VUE','Vue Green Line Hybrid'],'Scion':['Model:','All models','tC','xA','xB','xD'],'Smart':['Model:','All models','fortwo'],'Sterling':['Model:','All models','825','827'],'Subaru':['Model:','All models','B9 Tribeca','Baja','DL','DL Wagon','Forester','GL','GL Wagon','Impreza','Impreza Wagon','Justy','Legacy','Legacy Wagon','Loyale','Loyale Wagon','Outback','RX','SVX','Tribeca','XT'],'Suzuki':['Model:','All models','Aerio','Aerio SX','Esteem','Esteem Wagon','Forenza','Forenza Wagon','Grand Vitara','Grand Vitara XL-7','Reno','Samurai','Sidekick','Swift','SX4','SX4 Sport','Verona','Vitara','Vitara V6','X-90','XL7','XL-7'],'Toyota':['Model:','All models','4Runner','Avalon','Camry','Camry Hybrid','Camry Solara','Camry Wagon','Celica','Corolla','Corolla Wagon','Cressida','ECHO','FJ Cruiser','Highlander','Highlander Hybrid','Land Cruiser','Matrix','MR2','MR2 Spyder','Paseo','Pickup','Previa','Prius','RAV4','Sequoia','Sienna','Supra','T100','Tacoma','Tercel','Tercel Wagon','Tundra','Van','Yaris'],'Volkswagen':['Model:','All models','Cabrio','Cabriolet','Corrado','Eos','EuroVan','Fox','Fox Wagon','Golf','Golf III','GTI','GTI (Early 2006)','Jetta','Jetta (Early 2005)','Jetta III','Jetta Wagon','New Beetle','Passat','Passat Wagon','Phaeton','Quantum','Quantum Wagon','R32','Rabbit','Scirocco','Touareg','Touareg 2','Vanagon'],'Volvo':['Model:','All models','240','240 Wagon','740','740 Wagon','760','760 Wagon','780','850','850 Wagon','940','940 Wagon','960','960 Wagon','C30','C70','Coupe','Cross Country','S40','S40 (2004.5)','S60','S70','S80','S90','V40','V50','V70','V90','XC70','XC90'],'Yugo':['Model:','All models','Cabrio','GV','GVL','GVS','GVX']}],"submit":"redirect(this);"}}; function createForm(e) { var frm = document.createElement("form"); frm.ymm = ymm[e.getAttribute("type")]; e.appendChild(frm); frm.appendChild(document.createTextNode("Find a car:")); frm.appendChild(document.createElement("br")); if (3 == frm.ymm.data.length) { year = createDropdown(frm, "year", frm.ymm.data[0], frm.ymm.maxLen); frm.appendChild(document.createElement("br")); make = createDropdown(frm, "make", frm.ymm.data[1][selectedValue1(year)], frm.ymm.maxLen); frm.appendChild(document.createElement("br")); model = createDropdown(frm, "model", frm.ymm.data[2][selectedValue1(make)], frm.ymm.maxLen); model.disabled = true; year.onchange = new Function("resetState(this);"); make.onchange = new Function("resetState(this);"); model.onchange = new Function(frm.ymm.submit); } else if (2 == frm.ymm.data.length) { make = createDropdown(frm, "make", frm.ymm.data[0], frm.ymm.maxLen); frm.appendChild(document.createElement("br")); model = createDropdown(frm, "model", frm.ymm.data[1][selectedValue1(make)], frm.ymm.maxLen); model.disabled = true; make.onchange = new Function("resetState(this);"); model.onchange = new Function(frm.ymm.submit); } } function redirect(e) { if (0 == e.selectedIndex) return; var frm = e.parentElement; var url = (frm.ymm.urls.length > e.selectedIndex) ? url = frm.ymm.urls[e.selectedIndex] : frm.ymm.url; for (var ifield = 0; ifield < frm.elements.length; ifield++) { var regexp = new RegExp("\\{" + ifield + "\\}", "g"); url = url.replace(regexp, encodeURIComponent(selectedValue(frm, ifield))); } window.location.href = url; } buildYmms();