// ===================================================================
// Author: Matt Kruse <matt@mattkruse.com>
// WWW: http://www.mattkruse.com/
//
// NOTICE: You may use this code for any purpose, commercial or
// private, without any further permission from the author. You may
// remove this notice from your final code if you wish, however it is
// appreciated by the author if at least my web site address is kept.
//
// You may *NOT* re-distribute this code in any way except through its
// use. That means, you can include it in your product, or your web
// site, or any other form where the code is actually being used. You
// may not put the plain javascript up on your site for download or
// include it in your javascript libraries for download. 
// If you wish to share this code with others, please just point them
// to the URL instead.
// Please DO NOT link directly to my .js files from your site. Copy
// the files to your server and use them there. Thank you.
// ===================================================================

// HISTORY
// ------------------------------------------------------------------
// Feb 15, 2005: Documentation Fix
// March 31, 2004: First release
/* 

DESCRIPTION: This library allows you to easily create select boxes whose
contents depend on the value in a parent select box. It supports default
options, preselected options, single or multiple-select lists, multiple
form fields referencing the same list structure, form resetting, and most
importantly, it's backwards-compatible way back to Netscape 4!

COMPATABILITY: Netscape 4+, IE, Opera >5 (O5 didn't support new Option()),
and should work on all other newer browsers.

USAGE:

	// Create a new object, passing in the fields that make up the dynamic set 
	// of lists.
var dol = new DynamicOptionList("Field1","Child1","Child2");
	
	// Or, you can create it empty, and pass in sets of select objects later
var dol = new DynamicOptionList();
dol.addDependentFields("Field1","Child1","Child2");

	// Once you have the list object defined, you can additional sets of dependent
	// fields, too. These sets will act as separate groups of related fields, but
	// will all use the same options and data.
dol.addDependentOptions("Field1","Child2-1","Child2-2");

	// By default, the script will automatically find the form where your select
	// objects exist. But you can explicitly set it if you wish, either by form 
	// name or index.
dol.setFormName("MyForm");
dol.setFormIndex(1);

	// Now define the options that will exist in sub-lists. This is done in a 
	// very logical way - you say for an option in the parent, populate the child
	// with specific options. When selecting which parent option you're dealing
	// with, you can either select by its value or its display text. This command
	// says, for an option in the parent list that has value="Value1", if it is
	// selected then populate the child list with the given sub-options.
dol.forValue("Value1").addOptions("Suboption1","Suboption2","Suboption3");

	// And you can also say, for an option in the parent list that has display
	// text of "Text1", if it is selected then populate the child list with the
	// given sub-options.
dol.forText("Text1").addOptions("Suboption1","Suboption2","Suboption3");

	// For multi-level lists, you just continue the chain...
	// This says, if an option with value "Value1" is selected in the first list,
	// then an option with values "Value2" is selected in the second list, populate
	// the third list with these options.
dol.forValue("Value1").forValue("Value2").addOptions("1","2","3");

	// If the options you want to add should have different values and dislplay
	// text, you can do that
dol.forValue("Value1").addOptionsTextValue("Text2","Value2");

	// When an option is selected from the first list, and the options in the 
	// second list are populated, you may want to have one of the options in the
	// child list be selected by default.
dol.forValue("Value1").setDefaultOptions("MyValue");

	// When the page first loads, you may set the values of the dependent select
	// lists to be selected by default. For example, when a user is editing an
	// existing record where they've already selected from the parent/child
	// relationships. This is different from the default option in that this
	// value is only selected when the page LOADS. If the user changes selections,
	// this will be lost.
dol.forField("Field1").setValues("MyPreselectedValue");

	// By default, if there are is no option which should be selected in the child
	// list, the code will automatically select the first option in the list. If 
	// you want it to instead set selectedIndex = -1 (nothing selected - works in
	// most browsers but not all) than you can tell it to do that instead
dol.selectFirstOption = false;

// MODIFYING THE HTML
// If you are supporting Netscape 4.x browsers, you will need to insert a call to
// the library to populate options. This is because Netscape4 will not expand the
// size of the select box as new options are added, so you have to "pad" the list
// with blank options in order for it to work right. 
// This is the ONLY change you should need to make to your HTML. To do this, just
// add a javascript block between your <select> </select> tags like this:

<select name="list1"><script>dol.printOptions("list1")</script></select>

// You only need to pass it the name of the select options that it should print
// options for.


NOTES:
 - There seems to be an issue with Netscape6, if you hit Reload on the page. It
   doesn't happen every time, and I can't figure out why it happens at all.

 - If your select objects have onChange handlers in them, you'll need to manually
   add a call to the DynamicOptionList code to trigger the population of the child
   list. For example,
   
   <select onChange="yourfunction(); dol.change(this)">
 
*/ 
// Global objects to keep track of DynamicOptionList objects created on the page
var dynamicOptionListCount=0;
var dynamicOptionListObjects = new Array();

//new car data here
var newcar = new DynamicOptionList("make","model","trim");

//setup car models
newcar.forValue("Acura").addOptions("MDX","RDX","RL","TL","TSX","ZDX");
newcar.forValue("Aston Martin").addOptions("DB9","DBS","V8 Vantage");
newcar.forValue("Audi").addOptions("A3","A4","A5","A6","A8","Q5","Q7","R8","S4","S5","S6","S8","TT","TTS");
newcar.forValue("Bentley").addOptions("Arnage","Azure","Brooklands","Continental Flying Spur Speed","Continental Flying Spur","Continental GT Speed","Continental GT","Continental GTC Speed","Continental GTC","Continental Supersports","Mulsanne");
newcar.forValue("Bmw").addOptions("1 Series","3 Series","5 Series","6 Series","7 Series","M3","M5","M6","X1","X3","X5 Hybrid","X5 M","X5","X6 Hybrid","X6 M","X6","Z4");
newcar.forValue("Bugatti").addOptions("Veyron 16.4");
newcar.forValue("Buick").addOptions("Enclave","LaCrosse","Lucerne","Regal");
newcar.forValue("Cadillac").addOptions("CTS","CTS-V","DTS","Escalade ESV","Escalade EXT","Escalade Hybrid","Escalade","SRX","STS","STS-V","XLR","XLR-V");
newcar.forValue("Chevrolet").addOptions("Avalanche","Aveo","Camaro","Cobalt","Colorado","Corvette","Cruze","Equinox","Express Cargo","Express","HHR","Impala","Malibu Hybrid","Malibu","Silverado 1500 Hybrid","Silverado 1500","Silverado 2500HD","Silverado 3500HD","Suburban","Tahoe Hybrid","Tahoe","TrailBlazer","Traverse","Volt");
newcar.forValue("Chrysler").addOptions("300","Aspen","PT Cruiser","Sebring","Town and Country");
newcar.forValue("Dodge").addOptions("Avenger","Caliber","Challenger","Charger","Dakota","Durango","Grand Caravan","Journey","Nitro","Ram Pickup 1500 Hybrid","Ram Pickup 1500","Ram Pickup 2500","Ram Pickup 3500","Sprinter Cargo","Sprinter","Viper");
newcar.forValue("Ferrari").addOptions("430 Scuderia","458 Italia","599","612 Scaglietti","California","F430");
newcar.forValue("Fiat").addOptions("500");
newcar.forValue("Ford").addOptions("E-Series Wagon","Econoline Cargo","Econoline Wagon","Edge","Escape Hybrid","Escape","Expedition EL","Expedition","Explorer Sport Trac","Explorer","F-150","F-250 Super Duty","F-350 Super Duty","F-450 Super Duty","Fiesta","Flex","Focus","Fusion Hybrid","Fusion","Mustang","Ranger","Shelby GT500","Taurus X","Taurus","Transit Connect");
newcar.forValue("Gmc").addOptions("Acadia","Canyon","Envoy","Savana Cargo","Savana","Sierra 1500 Hybrid","Sierra 1500","Sierra 2500HD","Sierra 3500HD","Terrain","Yukon Hybrid","Yukon XL","Yukon");
newcar.forValue("Honda").addOptions("Accord Crosstour","Accord","Civic","CR-V","CR-Z","Element","Fit","Insight","Odyssey","Pilot","Ridgeline","S2000");
newcar.forValue("Hummer").addOptions("H2 SUT","H2","H3","H3T");
newcar.forValue("Hyundai").addOptions("Accent","Azera","Elantra Touring","Elantra","Genesis Coupe","Genesis","Santa Fe","Sonata","Tucson","Veracruz");
newcar.forValue("Infiniti").addOptions("EX35","FX35","FX50","G37","M35","M45","M56","QX56");
newcar.forValue("Jaguar").addOptions("XF","XJ","XK");
newcar.forValue("Jeep").addOptions("Commander","Compass","Grand Cherokee","Liberty","Patriot","Wrangler");
newcar.forValue("Kia").addOptions("Amanti","Borrego","Forte Koup","Forte","Optima","Rio","Rondo","Sedona","Sorento","Soul","Spectra","Sportage");
newcar.forValue("Lamborghini").addOptions("Gallardo","Murcielago");
newcar.forValue("Land Rover").addOptions("LR2","LR3","LR4","LRX","Range Rover Sport","Range Rover");
newcar.forValue("Lexus").addOptions("ES 350","GS 350","GS 450h","GS 460","GX 460","GX 470","HS 250h","IS 250 C","IS 250","IS 350 C","IS 350","IS F","LFA","LS 460","LS 600h L","LX 570","RX 350","RX 450h","SC 430");
newcar.forValue("Lincoln").addOptions("MKS","MKT","MKX","MKZ","Navigator L","Navigator","Town Car");
newcar.forValue("Lotus").addOptions("Elise","Evora","Exige");
newcar.forValue("Mahindra").addOptions("TR40");
newcar.forValue("Maserati").addOptions("GranTurismo","Quattroporte");
newcar.forValue("Maybach").addOptions("57","62","Landaulet");
newcar.forValue("Mazda").addOptions("B-Series Truck","CX-7","CX-9","MAZDA2","MAZDA3","MAZDA5","MAZDA6","MAZDASPEED MAZDA3","MAZDASPEED3","MX-5 Miata","RX-8","Tribute Hybrid","Tribute");
newcar.forValue("Mclaren").addOptions("MP4-12C");
newcar.forValue("Mercedes-Benz").addOptions("C-Class","CL-Class","CLK-Class","CLS-Class","E-Class","G-Class","GL-Class","GLK-Class","M-Class","R-Class","S-Class","SL-Class","SLK-Class","SLR McLaren","SLS AMG","Sprinter");
newcar.forValue("Mercury").addOptions("Grand Marquis","Mariner Hybrid","Mariner","Milan Hybrid","Milan","Mountaineer","Sable");
newcar.forValue("Mini").addOptions("Cooper Clubman","Cooper");
newcar.forValue("Mitsubishi").addOptions("Eclipse Spyder","Eclipse","Endeavor","Galant","Lancer Evolution","Lancer Sportback","Lancer","Outlander Sport","Outlander","Raider");
newcar.forValue("Nissan").addOptions("350Z","370Z","Altima Hybrid","Altima","Armada","Cube","Frontier","GT-R","Maxima","Murano","Pathfinder","Quest","Rogue","Sentra","Titan","Versa","Xterra");
newcar.forValue("Pontiac").addOptions("G3","G5","G6","G8","Solstice","Torrent","Vibe");
newcar.forValue("Porsche").addOptions("911","Boxster","Cayenne","Cayman","Panamera");
newcar.forValue("Rolls-Royce").addOptions("Phantom Coupe","Phantom Drophead Coupe","Phantom");
newcar.forValue("Saab").addOptions("9-3","9-5","9-7X");
newcar.forValue("Saturn").addOptions("Astra","Aura Hybrid","Aura","Outlook","Sky","VUE Hybrid","VUE");
newcar.forValue("Scion").addOptions("iQ","tC","xB","xD");
newcar.forValue("Smart").addOptions("fortwo");
newcar.forValue("Spyker").addOptions("C8");
newcar.forValue("Subaru").addOptions("Forester","Impreza","Legacy","Outback","Tribeca");
newcar.forValue("Suzuki").addOptions("Equator","Grand Vitara","Kizashi","SX4","XL7");
newcar.forValue("Tesla").addOptions("Roadster");
newcar.forValue("Toyota").addOptions("4Runner","Avalon","Camry Hybrid","Camry","Corolla","FJ Cruiser","Highlander Hybrid","Highlander","Land Cruiser","Matrix","Prius","RAV4","Sequoia","Sienna","Tacoma","Tundra","Venza","Yaris");
newcar.forValue("Volkswagen").addOptions("CC","Eos","GLI","Golf","GTI","Jetta","New Beetle","Passat","Polo","Rabbit","Routan","Tiguan","Touareg 2","Touareg");
newcar.forValue("Volvo").addOptions("C30","C70","S40","S60","S80","V50","V70","XC60","XC70","XC90");

//setup car trims
newcar.forValue("Acura").forValue("MDX").addOptions("4dr SUV AWD ","4dr SUV AWD w/Sport Entertainment Package ","4dr SUV AWD w/Sport Package ","4dr SUV AWD w/Technology Entertainment Package ","4dr SUV AWD w/Technology Package ");
newcar.forValue("Acura").forValue("RDX").addOptions("4dr SUV ","4dr SUV AWD ","4dr SUV AWD w/Technology Package ","4dr SUV w/Technology Package ","SH-AWD 4dr SUV AWD ","SH-AWD 4dr SUV AWD w/Technology Package ");
newcar.forValue("Acura").forValue("RL").addOptions("4dr Sedan AWD ","4dr Sedan AWD w/CMBS ","4dr Sedan AWD w/Technology Package ","4dr Sedan AWD w/Technology Package CMBS ");
newcar.forValue("Acura").forValue("TL").addOptions("4dr Sedan w/Technology Package 18in Wheels ","4dr Sedan ","4dr Sedan w/Tech Package ","4dr Sedan w/Technology Package ","SH-AWD 4dr Sedan AWD ","SH-AWD 4dr Sedan AWD w/Tech Package ","SH-AWD 4dr Sedan AWD w/Tech Package Summer Tires ","SH-AWD 4dr Sedan AWD w/Technology Package ","SH-AWD 4dr Sedan AWD w/Technology Package HPT ");
newcar.forValue("Acura").forValue("TSX").addOptions("4dr Sedan ","4dr Sedan w/Technology Package ");
newcar.forValue("Acura").forValue("ZDX").addOptions("4dr SUV AWD ");
newcar.forValue("Aston Martin").forValue("DB9").addOptions("2dr Coupe ","Volante 2dr Convertible ");
newcar.forValue("Aston Martin").forValue("DBS").addOptions("2dr Coupe ");
newcar.forValue("Aston Martin").forValue("V8 Vantage").addOptions("2dr Coupe ","Roadster 2dr Convertible ");
newcar.forValue("Audi").forValue("A3").addOptions("2.0 TDI Premium 4dr Wagon ","2.0T 4dr Wagon ","2.0T Premium 4dr Wagon ","2.0T Premium quattro 4dr Wagon AWD ","2.0T PZEV 4dr Wagon ","2.0T PZEV Premium 4dr Wagon ","2.0T quattro 4dr Wagon AWD ","3.2 quattro 4dr Wagon AWD ","4dr Wagon AWD ");
newcar.forValue("Audi").forValue("A4").addOptions("2.0T 2dr Convertible ","2.0T Avant Premium quattro 4dr Wagon AWD ","2.0T Premium 4dr Sedan ","2.0T Premium Avant quattro 4dr Wagon AWD ","2.0T Premium quattro 4dr Sedan AWD ","2.0T quattro 2dr Convertible AWD ","3.2 Premium Plus quattro 4dr Sedan AWD ","3.2 quattro 2dr Convertible AWD ");
newcar.forValue("Audi").forValue("A5").addOptions("2.0T Premium 2dr Convertible ","2.0T Premium quattro 2dr Convertible AWD ","2.0T Premium quattro 2dr Coupe AWD ","3.2 Premium Plus quattro 2dr Coupe AWD ","quattro 2dr Coupe AWD ");
newcar.forValue("Audi").forValue("A6").addOptions("3.0T Avant Premium quattro 4dr Wagon AWD ","3.0T Avant quattro 4dr Wagon AWD ","3.0T Premium quattro 4dr Sedan AWD ","3.0T quattro 4dr Sedan AWD ","3.2 4dr Sedan ","3.2 Premium 4dr Sedan ","4.2 Prestige quattro 4dr Sedan AWD ","4.2 quattro 4dr Sedan AWD ");
newcar.forValue("Audi").forValue("A8").addOptions("4.2 quattro 4dr Sedan AWD ","4dr Sedan AWD ","L 4.2 quattro 4dr Sedan AWD ","L quattro 4dr Sedan AWD ","L W12 quattro 4dr Sedan AWD ","quattro 4dr Sedan AWD ");
newcar.forValue("Audi").forValue("Q5").addOptions("3.2 Premium quattro 4dr SUV AWD ");
newcar.forValue("Audi").forValue("Q7").addOptions("3.6 Premium quattro 4dr SUV AWD ","3.6 quattro 4dr SUV AWD ","4.2 Prestige quattro 4dr SUV AWD ","TDI Premium quattro 4dr SUV AWD ");
newcar.forValue("Audi").forValue("R8").addOptions("4.2 quattro 2dr Coupe AWD ","5.2 quattro 2dr Coupe AWD ","quattro 2dr Coupe AWD ");
newcar.forValue("Audi").forValue("S4").addOptions("Premium Plus quattro 4dr Sedan AWD ","quattro 2dr Convertible AWD ");
newcar.forValue("Audi").forValue("S5").addOptions("3.0T Premium Plus quattro 2dr Convertible AWD ","Premium Plus quattro 2dr Coupe AWD ","quattro 2dr Coupe AWD ");
newcar.forValue("Audi").forValue("S6").addOptions("Prestige quattro 4dr Sedan AWD ","quattro 4dr Sedan AWD ");
newcar.forValue("Audi").forValue("S8").addOptions("quattro 4dr Sedan AWD ");
newcar.forValue("Audi").forValue("TT").addOptions("2.0T 2dr Convertible ","2.0T 2dr Hatchback ","2.0T Premium quattro 2dr Convertible AWD ","2.0T Premium quattro 2dr Hatchback AWD ","2.0T quattro 2dr Convertible AWD ","2.0T quattro 2dr Hatchback AWD ","3.2 quattro 2dr Convertible AWD ","3.2 quattro 2dr Hatchback AWD ");
newcar.forValue("Audi").forValue("TTS").addOptions("2.0T quattro 2dr Convertible AWD ","2.0T quattro 2dr Hatchback AWD ","Premium quattro 2dr Convertible AWD ","Premium quattro 2dr Hatchback AWD ");
newcar.forValue("Bentley").forValue("Arnage").addOptions("Final Series 4dr Sedan ","R 4dr Sedan ","RL 4dr Sedan ","T 4dr Sedan ");
newcar.forValue("Bentley").forValue("Azure").addOptions("2dr Convertible ");
newcar.forValue("Bentley").forValue("Brooklands").addOptions("2dr Coupe ");
newcar.forValue("Bentley").forValue("Continental Flying Spur Speed").addOptions("4dr Sedan AWD ");
newcar.forValue("Bentley").forValue("Continental Flying Spur").addOptions("4dr Sedan AWD ");
newcar.forValue("Bentley").forValue("Continental GT Speed").addOptions("2dr Coupe AWD ");
newcar.forValue("Bentley").forValue("Continental GT").addOptions("2dr Coupe AWD ");
newcar.forValue("Bentley").forValue("Continental GTC Speed").addOptions("2dr Convertible AWD ");
newcar.forValue("Bentley").forValue("Continental GTC").addOptions("2dr Convertible AWD ");
newcar.forValue("Bentley").forValue("Continental Supersports").addOptions("2dr Coupe AWD ");
newcar.forValue("Bentley").forValue("Mulsanne").addOptions("4dr Sedan ");
newcar.forValue("Bmw").forValue("1 Series").addOptions("128i 2dr Convertible ","128i 2dr Coupe ","135i 2dr Convertible ","135i 2dr Coupe ");
newcar.forValue("Bmw").forValue("3 Series").addOptions("328i 2dr Convertible ","328i 2dr Coupe ","328i 4dr Sedan ","328i 4dr Wagon ","328i xDrive 2dr Coupe AWD ","328i xDrive 4dr Sedan AWD ","328i xDrive 4dr Wagon AWD ","335d 4dr Sedan ","335i 2dr Convertible ","335i 2dr Coupe ","335i 4dr Sedan ","335i xDrive 2dr Coupe AWD ","335i xDrive 4dr Sedan AWD ");
newcar.forValue("Bmw").forValue("5 Series").addOptions("4dr Sedan ","528i 4dr Sedan ","528i xDrive 4dr Sedan AWD ","535i 4dr Sedan ","535i xDrive 4dr Sedan AWD ","535i xDrive 4dr Wagon AWD ","550i 4dr Sedan ");
newcar.forValue("Bmw").forValue("6 Series").addOptions("650i 2dr Convertible ","650i 2dr Coupe ");
newcar.forValue("Bmw").forValue("7 Series").addOptions("750i 4dr Sedan ","750i xDrive 4dr Sedan AWD ","750Li 4dr Sedan ","750Li xDrive 4dr Sedan AWD ","760Li 4dr Sedan ");
newcar.forValue("Bmw").forValue("M3").addOptions("2dr Convertible ","2dr Coupe ","4dr Sedan ");
newcar.forValue("Bmw").forValue("M5").addOptions("4dr Sedan ");
newcar.forValue("Bmw").forValue("M6").addOptions("2dr Convertible ","2dr Coupe ");
newcar.forValue("Bmw").forValue("X1").addOptions("4dr SUV AWD ");
newcar.forValue("Bmw").forValue("X3").addOptions("xDrive30i 4dr SUV AWD ");
newcar.forValue("Bmw").forValue("X5 Hybrid").addOptions("4dr SUV");
newcar.forValue("Bmw").forValue("X5 M").addOptions("4dr SUV AWD ");
newcar.forValue("Bmw").forValue("X5").addOptions("xDrive30i 4dr SUV AWD ","xDrive35d 4dr SUV AWD ","xDrive48i 4dr SUV AWD ");
newcar.forValue("Bmw").forValue("X6 Hybrid").addOptions("4dr SUV");
newcar.forValue("Bmw").forValue("X6 M").addOptions("4dr SUV AWD ");
newcar.forValue("Bmw").forValue("X6").addOptions("xDrive35i 4dr SUV AWD ","xDrive50i 4dr SUV AWD ");
newcar.forValue("Bmw").forValue("Z4").addOptions("sDrive30i 2dr Convertible ","sDrive35i 2dr Convertible ");
newcar.forValue("Bugatti").forValue("Veyron 16.4").addOptions("2dr Coupe AWD ","Grand Sport 2dr Convertible AWD ");
newcar.forValue("Buick").forValue("Enclave").addOptions("CX 4dr SUV ","CX 4dr SUV AWD ","CXL 4dr SUV ","CXL 4dr SUV AWD ","CXL1 4dr SUV ","CXL1 4dr SUV AWD ","CXL2 4dr SUV ","CXL2 4dr SUV AWD ");
newcar.forValue("Buick").forValue("LaCrosse").addOptions("CX 4dr Sedan ","CXL 4dr Sedan ","CXL 4dr Sedan AWD ","CXS 4dr Sedan ","Super 4dr Sedan ");
newcar.forValue("Buick").forValue("Lucerne").addOptions("CX 4dr Sedan ","CX-2 4dr Sedan ","CXL 4dr Sedan ","CXL Special Edition 4dr Sedan ","CXL-3 4dr Sedan ","CXL-4 4dr Sedan ","CXL-5 4dr Sedan ","Super 4dr Sedan ");
newcar.forValue("Buick").forValue("Regal").addOptions("4dr Sedan ");
newcar.forValue("Cadillac").forValue("CTS").addOptions("4dr Sedan ","4dr Sedan AWD ","4dr Sedan AWD w/Direct Injection ","4dr Sedan w/Direct Injection ","Luxury 4dr Sedan ","Luxury 4dr Sedan AWD ","Luxury 4dr Wagon ","Luxury 4dr Wagon AWD ","Performance 4dr Sedan ","Performance 4dr Sedan AWD ","Performance 4dr Wagon ","Performance 4dr Wagon AWD ","Premium 4dr Sedan ","Premium 4dr Sedan AWD ","Premium 4dr Wagon ","Premium 4dr Wagon AWD ","Sport 4dr Wagon ","Sport 4dr Wagon AWD ");
newcar.forValue("Cadillac").forValue("CTS-V").addOptions("4dr Sedan ");
newcar.forValue("Cadillac").forValue("DTS").addOptions("4dr Sedan ","Luxury 4dr Sedan ","Luxury 5-Passenger 4dr Sedan ","Luxury 6-Passenger 4dr Sedan ","Performance 4dr Sedan ","Platinum 4dr Sedan ","Premium 4dr Sedan ","Premium Luxury 4dr Sedan ","Premium Sun Edition 4dr Sedan ");
newcar.forValue("Cadillac").forValue("Escalade ESV").addOptions("4dr SUV ","4dr SUV AWD ","Luxury 4dr SUV ","Luxury 4dr SUV AWD ","Platinum Edition 4dr SUV ","Platinum Edition 4dr SUV AWD ","Premium 4dr SUV ","Premium 4dr SUV AWD ");
newcar.forValue("Cadillac").forValue("Escalade EXT").addOptions("4dr Crew Cab AWD SB ","Luxury 4dr Crew Cab AWD SB ","Premium 4dr Crew Cab AWD SB ");
newcar.forValue("Cadillac").forValue("Escalade Hybrid").addOptions("4dr SUV ","4dr SUV 4WD ","Platinum Edition 4dr SUV ","Platinum Edition 4dr SUV 4WD ");
newcar.forValue("Cadillac").forValue("Escalade").addOptions("4dr SUV ","4dr SUV AWD ","Luxury 4dr SUV ","Luxury 4dr SUV AWD ","Platinum Edition 4dr SUV ","Platinum Edition 4dr SUV AWD ","Premium 4dr SUV ","Premium 4dr SUV AWD ");
newcar.forValue("Cadillac").forValue("SRX").addOptions("4dr SUV ","Luxury 4dr SUV ","Luxury 4dr SUV AWD ","Performance 4dr SUV ","Performance 4dr SUV AWD ","Premium 4dr SUV ","Premium 4dr SUV AWD ","V6 4dr SUV ","V8 4dr SUV ");
newcar.forValue("Cadillac").forValue("STS").addOptions("4dr Sedan ","V6 Luxury 4dr Sedan ","V6 Luxury Sport 4dr Sedan ","V6 Premium 4dr Sedan ","V8 Luxury 4dr Sedan ","V8 Performance 4dr Sedan ");
newcar.forValue("Cadillac").forValue("STS-V").addOptions("4dr Sedan ");
newcar.forValue("Cadillac").forValue("XLR").addOptions("Platinum 2dr Convertible ");
newcar.forValue("Cadillac").forValue("XLR-V").addOptions("2dr Convertible ");
newcar.forValue("Chevrolet").forValue("Avalanche").addOptions("LS 4dr Crew Cab 4WD SB ","LS 4dr Crew Cab SB ","LT 4dr Crew Cab 4WD SB ","LT 4dr Crew Cab SB ","LT1 4dr Crew Cab 4WD SB ","LT1 4dr Crew Cab SB ","LT2 4dr Crew Cab 4WD SB ","LT2 4dr Crew Cab SB ","LTZ 4dr Crew Cab 4WD SB ","LTZ 4dr Crew Cab SB ");
newcar.forValue("Chevrolet").forValue("Aveo").addOptions("1LT 4dr Sedan ","2LT 4dr Sedan ","5 1LT 4dr Hatchback ","5 2LT 4dr Hatchback ","5 LS 4dr Hatchback ","LS 4dr Sedan ");
newcar.forValue("Chevrolet").forValue("Camaro").addOptions("1LT 2dr Coupe ","1SS 2dr Coupe ","2LT 2dr Coupe ","2SS 2dr Coupe ","LS 2dr Coupe ");
newcar.forValue("Chevrolet").forValue("Cobalt").addOptions("LS 2dr Coupe ","LS 4dr Sedan ","LT 2dr Coupe ","LT 4dr Sedan ","SS 2dr Coupe ","SS 4dr Sedan ","XFE 2dr Coupe ","XFE 4dr Sedan ");
newcar.forValue("Chevrolet").forValue("Colorado").addOptions("LT 2dr Regular Cab 4WD SB ","LT 2dr Regular Cab SB ","LT 4dr Crew Cab 4WD SB ","LT 4dr Crew Cab SB ","LT 4dr Extended Cab 4WD SB ","LT 4dr Extended Cab SB ","LT1 2dr Regular Cab 4WD SB ","LT1 2dr Regular Cab SB ","LT1 4dr Crew Cab 4WD SB ","LT1 4dr Crew Cab SB ","LT1 4dr Extended Cab 4WD SB ","LT1 4dr Extended Cab SB ","LT2 4dr Crew Cab 4WD SB ","LT2 4dr Crew Cab SB ","LT2 4dr Extended Cab 4WD SB ","LT2 4dr Extended Cab SB ","LT3 4dr Crew Cab SB ","LT3 4dr Extended Cab SB ","VL 4dr Crew Cab SB ","VL 4dr Extended Cab SB ","Work Truck 2dr Regular Cab 4WD SB ","Work Truck 2dr Regular Cab SB ","Work Truck 4dr Extended Cab 4WD SB ","Work Truck 4dr Extended Cab SB ");
newcar.forValue("Chevrolet").forValue("Corvette").addOptions("2dr Convertible ","2dr Coupe ","Competition Sport Spec Ed 2dr Coupe ","GS 2dr Convertible ","GS 2dr Coupe ","GT1 Championship Spec Ed 2dr Convertible ","GT1 Championship Spec Ed 2dr Coupe ","Z06 2dr Coupe ","Z06 Competition Sport Spec Ed 2dr Coupe ","Z06 GT1 Championship Spec Ed 2dr Coupe ","ZR1 2dr Coupe ");
newcar.forValue("Chevrolet").forValue("Cruze").addOptions("4dr Sedan ");
newcar.forValue("Chevrolet").forValue("Equinox").addOptions("LS 4dr SUV ","LS 4dr SUV AWD ","LT 4dr SUV ","LT 4dr SUV AWD ","LT1 4dr SUV ","LT1 4dr SUV AWD ","LT2 4dr SUV ","LT2 4dr SUV AWD ","LTZ 4dr SUV ","LTZ 4dr SUV AWD ","Sport 4dr SUV ","Sport 4dr SUV AWD ");
newcar.forValue("Chevrolet").forValue("Express Cargo").addOptions("1500 3dr Van ","1500 3dr Van AWD ","2500 3dr Ext Van ","2500 3dr Van ","3500 3dr Ext Van ","3500 3dr Van ");
newcar.forValue("Chevrolet").forValue("Express").addOptions("LS 1500 3dr Van ","LS 1500 3dr Van AWD ","LS 2500 3dr Van ","LS 3500 3dr Ext Van ","LS 3500 3dr Van ");
newcar.forValue("Chevrolet").forValue("HHR").addOptions("LS 4dr Wagon ","LT 4dr Wagon ","Panel LS 4dr Wagon ","Panel LT 4dr Wagon ","Panel SS 4dr Wagon ","SS 4dr Wagon ");
newcar.forValue("Chevrolet").forValue("Impala").addOptions("LS 4dr Sedan ","LT 4dr Sedan ","LT2 4dr Sedan ","LTZ 4dr Sedan ","SS 4dr Sedan ");
newcar.forValue("Chevrolet").forValue("Malibu Hybrid").addOptions("4dr Sedan ");
newcar.forValue("Chevrolet").forValue("Malibu").addOptions("LS 4dr Sedan ","LT1 4dr Sedan ","LT2 4dr Sedan ","LTZ 4dr Sedan ");
newcar.forValue("Chevrolet").forValue("Silverado 1500 Hybrid").addOptions("4dr Crew Cab 4WD SB w/1HY ","4dr Crew Cab 4WD SB w/2HY ","4dr Crew Cab SB w/1HY ","4dr Crew Cab SB w/2HY ");
newcar.forValue("Chevrolet").forValue("Silverado 1500").addOptions("LS 4dr Crew Cab 4WD 5.8 ft. SB ","LS 4dr Crew Cab 5.8 ft. SB ","LS 4dr Extended Cab 4WD 6.5 ft. SB ","LS 4dr Extended Cab 6.5 ft. SB ","LT 2dr Regular Cab 4WD 6.5 ft. SB ","LT 2dr Regular Cab 4WD 8 ft. LB ","LT 2dr Regular Cab 6.5 ft. SB ","LT 2dr Regular Cab 8 ft. LB ","LT 4dr Crew Cab 4WD 5.8 ft. SB ","LT 4dr Crew Cab 5.8 ft. SB ","LT 4dr Extended Cab 4WD 5.8 ft. SB ","LT 4dr Extended Cab 4WD 6.5 ft. SB ","LT 4dr Extended Cab 4WD 8 ft. LB ","LT 4dr Extended Cab 5.8 ft. SB ","LT 4dr Extended Cab 6.5 ft. SB ","LT 4dr Extended Cab 8 ft. LB ","LTZ 4dr Crew Cab 4WD 5.8 ft. SB ","LTZ 4dr Crew Cab 5.8 ft. SB ","LTZ 4dr Extended Cab 4WD 5.8 ft. SB ","LTZ 4dr Extended Cab 4WD 6.5 ft. SB ","LTZ 4dr Extended Cab 4WD 8 ft. LB ","LTZ 4dr Extended Cab 5.8 ft. SB ","LTZ 4dr Extended Cab 6.5 ft. SB ","LTZ 4dr Extended Cab 8 ft. LB ","Work Truck 2dr Regular Cab 4WD 6.5 ft. SB","Work Truck 2dr Regular Cab 4WD 8 ft. LB","Work Truck 2dr Regular Cab 6.5 ft. SB","Work Truck 2dr Regular Cab 8 ft. LB ","Work Truck 4dr Crew Cab 4WD 5.8 ft. SB","Work Truck 4dr Crew Cab 5.8 ft. SB ","Work Truck 4dr Extended Cab 4WD 5.8 ft. SB","Work Truck 4dr Extended Cab 4WD 6.5 ft. SB","Work Truck 4dr Extended Cab 4WD 8 ft. LB","Work Truck 4dr Extended Cab 5.8 ft. SB","Work Truck 4dr Extended Cab 6.5 ft. SB","Work Truck 4dr Extended Cab 8 ft. LB ","XFE 4dr Crew Cab 5.8 ft. SB ");
newcar.forValue("Chevrolet").forValue("Silverado 2500HD").addOptions("LT 2dr Regular Cab 4WD LB ","LT 2dr Regular Cab LB ","LT 4dr Crew Cab 4WD LB ","LT 4dr Crew Cab 4WD SB ","LT 4dr Crew Cab LB ","LT 4dr Crew Cab SB ","LT 4dr Extended Cab 4WD LB ","LT 4dr Extended Cab 4WD SB ","LT 4dr Extended Cab LB ","LT 4dr Extended Cab SB ","LTZ 4dr Crew Cab 4WD LB ","LTZ 4dr Crew Cab 4WD SB ","LTZ 4dr Crew Cab LB ","LTZ 4dr Crew Cab SB ","LTZ 4dr Extended Cab 4WD LB ","LTZ 4dr Extended Cab 4WD SB ","LTZ 4dr Extended Cab LB ","LTZ 4dr Extended Cab SB ","Work Truck 2dr Regular Cab 4WD LB ","Work Truck 2dr Regular Cab LB ","Work Truck 4dr Crew Cab 4WD LB ","Work Truck 4dr Crew Cab 4WD SB ","Work Truck 4dr Crew Cab LB ","Work Truck 4dr Crew Cab SB ","Work Truck 4dr Extended Cab 4WD LB ","Work Truck 4dr Extended Cab 4WD SB ","Work Truck 4dr Extended Cab LB ","Work Truck 4dr Extended Cab SB ");
newcar.forValue("Chevrolet").forValue("Silverado 3500HD").addOptions("LT 2dr Regular Cab 4WD LB ","LT 2dr Regular Cab 4WD LB DRW ","LT 2dr Regular Cab LB ","LT 4dr Crew Cab 4WD LB ","LT 4dr Crew Cab 4WD LB DRW ","LT 4dr Crew Cab LB ","LT 4dr Crew Cab LB DRW ","LT 4dr Extended Cab 4WD LB ","LT 4dr Extended Cab 4WD LB DRW ","LT 4dr Extended Cab LB ","LT 4dr Extended Cab LB DRW ","LTZ 4dr Crew Cab 4WD LB ","LTZ 4dr Crew Cab 4WD LB DRW ","LTZ 4dr Crew Cab LB ","LTZ 4dr Crew Cab LB DRW ","LTZ 4dr Extended Cab 4WD LB ","LTZ 4dr Extended Cab 4WD LB DRW ","LTZ 4dr Extended Cab LB ","LTZ 4dr Extended Cab LB DRW ","Work Truck 2dr Regular Cab 4WD LB ","Work Truck 2dr Regular Cab 4WD LB DRW","Work Truck 2dr Regular Cab LB ","Work Truck 4dr Crew Cab 4WD LB ","Work Truck 4dr Crew Cab 4WD LB DRW ","Work Truck 4dr Crew Cab LB ","Work Truck 4dr Crew Cab LB DRW ","Work Truck 4dr Extended Cab 4WD LB ","Work Truck 4dr Extended Cab 4WD LB DRW","Work Truck 4dr Extended Cab LB ","Work Truck 4dr Extended Cab LB DRW ");
newcar.forValue("Chevrolet").forValue("Suburban").addOptions("LS 1500 4dr SUV ","LS 1500 4dr SUV 4WD ","LS 2500 4dr SUV ","LS 2500 4dr SUV 4WD ","LT 1500 4dr SUV ","LT 1500 4dr SUV 4WD ","LT 2500 4dr SUV ","LT 2500 4dr SUV 4WD ","LT1 1500 4dr SUV ","LT1 1500 4dr SUV 4WD ","LT1 2500 4dr SUV ","LT1 2500 4dr SUV 4WD ","LT2 1500 4dr SUV ","LT2 1500 4dr SUV 4WD ","LT2 2500 4dr SUV ","LT2 2500 4dr SUV 4WD ","LTZ 1500 4dr SUV ","LTZ 1500 4dr SUV 4WD ");
newcar.forValue("Chevrolet").forValue("Tahoe Hybrid").addOptions("4dr SUV ","4dr SUV 4WD ");
newcar.forValue("Chevrolet").forValue("Tahoe").addOptions("LS 4dr SUV ","LS 4dr SUV 4WD ","LT 4dr SUV ","LT 4dr SUV 4WD ","LT1 4dr SUV ","LT1 4dr SUV 4WD ","LT1 XFE 4dr SUV ","LT2 4dr SUV ","LT2 4dr SUV 4WD ","LT2 XFE 4dr SUV ","LTZ 4dr SUV ","LTZ 4dr SUV 4WD ");
newcar.forValue("Chevrolet").forValue("TrailBlazer").addOptions("LT 4dr SUV ","LT 4dr SUV 4WD ","LT2 4dr SUV ","LT2 4dr SUV 4WD ","LT3 4dr SUV ","LT3 4dr SUV 4WD ","SS 4dr SUV ","SS 4dr SUV AWD ");
newcar.forValue("Chevrolet").forValue("Traverse").addOptions("LS 4dr SUV ","LS 4dr SUV AWD ","LT1 4dr SUV ","LT1 4dr SUV AWD ","LT2 4dr SUV ","LT2 4dr SUV AWD ","LTZ 4dr SUV ","LTZ 4dr SUV AWD ");
newcar.forValue("Chevrolet").forValue("Volt").addOptions("4dr Hatchback ");
newcar.forValue("Chrysler").forValue("300").addOptions("4dr Sedan ","C 4dr Sedan AWD ","C HEMI 4dr Sedan ","Limited 4dr Sedan ","Limited 4dr Sedan AWD ","LX 4dr Sedan ","SRT-8 4dr Sedan ","Touring 4dr Sedan ","Touring 4dr Sedan AWD ");
newcar.forValue("Chrysler").forValue("Aspen").addOptions("Limited 4dr SUV ","Limited 4dr SUV 4WD ","Limited HEV 4dr SUV 4WD ");
newcar.forValue("Chrysler").forValue("PT Cruiser").addOptions("4dr Wagon ","Classic 4dr Wagon ","Limited 4dr Wagon ","Touring 4dr Wagon ");
newcar.forValue("Chrysler").forValue("Sebring").addOptions("Limited 2dr Convertible ","Limited 4dr Sedan ","Limited 4dr Sedan ","LX 2dr Convertible ","LX 4dr Sedan ","Touring 2dr Convertible ","Touring 4dr Sedan ","Touring 4dr Sedan ");
newcar.forValue("Chrysler").forValue("Town and Country").addOptions("Limited 4dr Minivan ","LX 4dr Minivan ","Touring 4dr Minivan ");
newcar.forValue("Dodge").forValue("Avenger").addOptions("R/T 4dr Sedan ","R/T 4dr Sedan ","SE 4dr Sedan ","SXT 4dr Sedan ","SXT 4dr Sedan ");
newcar.forValue("Dodge").forValue("Caliber").addOptions("R/T 4dr Wagon ","SE 4dr Wagon ","SRT4 4dr Wagon ","SXT 4dr Wagon ");
newcar.forValue("Dodge").forValue("Challenger").addOptions("R/T 2dr Coupe ","SE 2dr Coupe ","SRT8 2dr Coupe ");
newcar.forValue("Dodge").forValue("Charger").addOptions("4dr Sedan ","RT 4dr Sedan ","RT 4dr Sedan AWD ","SRT-8 4dr Sedan ","SRT8 4dr Sedan ","SXT 4dr Sedan ","SXT 4dr Sedan AWD ");
newcar.forValue("Dodge").forValue("Dakota").addOptions("BigHorn 4dr Crew Cab 4WD SB ","BigHorn 4dr Crew Cab SB ","BigHorn 4dr Extended Cab 4WD SB ","BigHorn 4dr Extended Cab SB ","Laramie 4dr Crew Cab 4WD SB ","Laramie 4dr Crew Cab SB ","Laramie 4dr Extended Cab 4WD SB ","Laramie 4dr Extended Cab SB ","LoneStar 4dr Crew Cab 4WD SB ","LoneStar 4dr Crew Cab SB ","LoneStar 4dr Extended Cab 4WD SB ","LoneStar 4dr Extended Cab SB ","ST 4dr Crew Cab 4WD SB ","ST 4dr Crew Cab SB ","ST 4dr Extended Cab 4WD SB ","ST 4dr Extended Cab SB ","TRX 4dr Crew Cab 4WD SB ","TRX 4dr Extended Cab 4WD SB ");
newcar.forValue("Dodge").forValue("Durango").addOptions("Limited 4dr SUV ","Limited 4dr SUV 4WD ","Limited HEV 4dr SUV 4WD ","SE 4dr SUV ","SE 4dr SUV 4WD ","SLT 4dr SUV ","SLT 4dr SUV 4WD ");
newcar.forValue("Dodge").forValue("Grand Caravan").addOptions("C/V 4dr Minivan ","SE 4dr Minivan ","SXT 4dr Minivan ");
newcar.forValue("Dodge").forValue("Journey").addOptions("R/T 4dr SUV ","R/T 4dr SUV AWD ","SE 4dr SUV ","SXT 4dr SUV ","SXT 4dr SUV AWD ");
newcar.forValue("Dodge").forValue("Nitro").addOptions("SE 4dr SUV ","SE 4dr SUV 4WD ","SLT 4dr SUV ","SLT 4dr SUV 4WD ","SXT 4dr SUV ","SXT 4dr SUV 4WD ");
newcar.forValue("Dodge").forValue("Ram Pickup 1500 Hybrid").addOptions("4dr Crew Cab 4WD SB ");
newcar.forValue("Dodge").forValue("Ram Pickup 1500").addOptions("Laramie 4dr Crew Cab 4WD SB ","Laramie 4dr Crew Cab SB ","Laramie 4dr Quad Cab 4WD SB ","Laramie 4dr Quad Cab SB ","SLT 2dr Regular Cab 4WD LB ","SLT 2dr Regular Cab 4WD SB ","SLT 2dr Regular Cab LB ","SLT 2dr Regular Cab SB ","SLT 4dr Crew Cab 4WD SB ","SLT 4dr Crew Cab SB ","SLT 4dr Quad Cab 4WD SB ","SLT 4dr Quad Cab SB ","ST 2dr Regular Cab 4WD LB ","ST 2dr Regular Cab 4WD SB ","ST 2dr Regular Cab LB ","ST 2dr Regular Cab SB ","ST 4dr Crew Cab 4WD SB ","ST 4dr Crew Cab SB ","ST 4dr Quad Cab 4WD SB ","ST 4dr Quad Cab SB ");
newcar.forValue("Dodge").forValue("Ram Pickup 2500").addOptions("Laramie 4dr Crew Cab 4WD LB ","Laramie 4dr Crew Cab 4WD SB ","Laramie 4dr Crew Cab LB ","Laramie 4dr Crew Cab SB ","Laramie 4dr Mega Cab 4WD SB ","Laramie 4dr Mega Cab SB ","Laramie 4dr Quad Cab 4WD LB ","Laramie 4dr Quad Cab 4WD SB ","Laramie 4dr Quad Cab LB ","Laramie 4dr Quad Cab SB ","SLT 2dr Regular Cab 4WD LB ","SLT 2dr Regular Cab LB ","SLT 4dr Crew Cab 4WD LB ","SLT 4dr Crew Cab 4WD SB ","SLT 4dr Crew Cab LB ","SLT 4dr Crew Cab SB ","SLT 4dr Mega Cab 4WD SB ","SLT 4dr Mega Cab SB ","SLT 4dr Quad Cab 4WD LB ","SLT 4dr Quad Cab 4WD SB ","SLT 4dr Quad Cab LB ","SLT 4dr Quad Cab SB ","ST 2dr Regular Cab 4WD LB ","ST 2dr Regular Cab LB ","ST 4dr Crew Cab 4WD LB ","ST 4dr Crew Cab 4WD SB ","ST 4dr Crew Cab LB ","ST 4dr Crew Cab SB ","ST 4dr Quad Cab 4WD LB ","ST 4dr Quad Cab 4WD SB ","ST 4dr Quad Cab LB ","ST 4dr Quad Cab SB ","SXT 4dr Mega Cab 4WD SB ","SXT 4dr Mega Cab SB ");
newcar.forValue("Dodge").forValue("Ram Pickup 3500").addOptions("Laramie 4dr Crew Cab 4WD LB DRW ","Laramie 4dr Crew Cab 4WD SB ","Laramie 4dr Crew Cab LB DRW ","Laramie 4dr Crew Cab SB ","Laramie 4dr Mega Cab 4WD SB DRW ","Laramie 4dr Mega Cab SB DRW ","Laramie 4dr Quad Cab 4WD LB DRW ","Laramie 4dr Quad Cab 4WD SB ","Laramie 4dr Quad Cab LB DRW ","Laramie 4dr Quad Cab SB ","SLT 2dr Regular Cab 4WD LB DRW ","SLT 2dr Regular Cab LB DRW ","SLT 4dr Crew Cab 4WD LB DRW ","SLT 4dr Crew Cab 4WD SB ","SLT 4dr Crew Cab LB DRW ","SLT 4dr Crew Cab SB ","SLT 4dr Mega Cab 4WD SB DRW ","SLT 4dr Mega Cab SB DRW ","SLT 4dr Quad Cab 4WD LB DRW ","SLT 4dr Quad Cab 4WD SB ","SLT 4dr Quad Cab LB DRW ","SLT 4dr Quad Cab SB ","ST 2dr Regular Cab 4WD LB DRW ","ST 2dr Regular Cab LB DRW ","ST 4dr Crew Cab 4WD LB DRW ","ST 4dr Crew Cab 4WD SB ","ST 4dr Crew Cab LB DRW ","ST 4dr Crew Cab SB ","ST 4dr Quad Cab 4WD LB DRW ","ST 4dr Quad Cab 4WD SB ","ST 4dr Quad Cab LB DRW ","ST 4dr Quad Cab SB ","SXT 4dr Mega Cab 4WD SB DRW ","SXT 4dr Mega Cab SB DRW ");
newcar.forValue("Dodge").forValue("Sprinter Cargo").addOptions("2500 144 WB 3dr Van ","2500 170 WB 3dr Ext Van ","2500 170 WB 3dr Van ","3500 144 WB 3dr Van ","3500 170 WB 3dr Ext Van ","3500 170 WB 3dr Van ");
newcar.forValue("Dodge").forValue("Sprinter").addOptions("2500 144 WB 3dr Van ","2500 170 WB 3dr Ext Van ");
newcar.forValue("Dodge").forValue("Viper").addOptions("SRT-10 2dr Convertible ","SRT-10 2dr Coupe ");
newcar.forValue("Ferrari").forValue("430 Scuderia").addOptions("2dr Coupe ");
newcar.forValue("Ferrari").forValue("458 Italia").addOptions("2dr Coupe ");
newcar.forValue("Ferrari").forValue("599").addOptions("GTB Fiorano 2dr Coupe ","GTB Fiorano F1 2dr Coupe ");
newcar.forValue("Ferrari").forValue("612 Scaglietti").addOptions("F1 OTO 2dr Coupe ");
newcar.forValue("Ferrari").forValue("California").addOptions("2dr Convertible ");
newcar.forValue("Ferrari").forValue("F430").addOptions("2dr Coupe ","F1 2dr Coupe ","Spider 2dr Convertible ","Spider F1 2dr Convertible ");
newcar.forValue("Fiat").forValue("500").addOptions("2dr Hatchback ");
newcar.forValue("Ford").forValue("E-Series Wagon").addOptions("E-150 XL 3dr Van ","E-150 XLT 3dr Van ","E-350 Super Duty XL 3dr Ext Van ","E-350 Super Duty XL 3dr Van ","E-350 Super Duty XLT 3dr Ext Van ","E-350 Super Duty XLT 3dr Van ");
newcar.forValue("Ford").forValue("Econoline Cargo").addOptions("E-150 3dr Ext Van ","E-150 3dr Van ","E-250 3dr Ext Van ","E-250 3dr Van ","E-350 SD 3dr Ext Van ","E-350 SD 3dr Van ");
newcar.forValue("Ford").forValue("Econoline Wagon").addOptions("E-150 XL 3dr Van ","E-150 XLT 3dr Van ","E-350 SD XL 3dr Ext Van ","E-350 SD XL 3dr Van ","E-350 SD XLT 3dr Ext Van ","E-350 SD XLT 3dr Van ");
newcar.forValue("Ford").forValue("Edge").addOptions("Limited 4dr SUV ","Limited 4dr SUV AWD ","SE 4dr SUV ","SE 4dr SUV AWD ","SEL 4dr SUV ","SEL 4dr SUV AWD ","Sport 4dr SUV ","Sport 4dr SUV AWD ");
newcar.forValue("Ford").forValue("Escape Hybrid").addOptions("4dr SUV ","4dr SUV AWD ","Limited 4dr SUV ","Limited 4dr SUV AWD ");
newcar.forValue("Ford").forValue("Escape").addOptions("Limited 4dr SUV ","Limited 4dr SUV AWD ","XLS 4dr SUV ","XLS 4dr SUV AWD ","XLT 4dr SUV ","XLT 4dr SUV AWD ");
newcar.forValue("Ford").forValue("Expedition EL").addOptions("Eddie Bauer 4dr SUV ","Eddie Bauer 4dr SUV 4WD ","King Ranch 4dr SUV ","King Ranch 4dr SUV 4WD ","Limited 4dr SUV ","Limited 4dr SUV 4WD ","XLT 4dr SUV ","XLT 4dr SUV 4WD ");
newcar.forValue("Ford").forValue("Expedition").addOptions("Eddie Bauer 4dr SUV ","Eddie Bauer 4dr SUV 4WD ","EL Eddie Bauer 4dr SUV ","EL Eddie Bauer 4dr SUV 4WD ","EL King Ranch 4dr SUV ","EL King Ranch 4dr SUV 4WD ","EL Limited 4dr SUV ","EL Limited 4dr SUV 4WD ","EL XLT 4dr SUV ","EL XLT 4dr SUV 4WD ","King Ranch 4dr SUV ","King Ranch 4dr SUV 4WD ","Limited 4dr SUV ","Limited 4dr SUV 4WD ","XLT 4dr SUV ","XLT 4dr SUV 4WD ");
newcar.forValue("Ford").forValue("Explorer Sport Trac").addOptions("Limited 4dr Crew Cab ","Limited 4dr Crew Cab 4WD ","Limited 4dr Crew Cab AWD ","Limited 4dr Crew Cab w/Adrenalin Package","XLT 4dr Crew Cab ","XLT 4dr Crew Cab 4WD ");
newcar.forValue("Ford").forValue("Explorer").addOptions("Eddie Bauer 4dr SUV ","Eddie Bauer 4dr SUV 4WD ","Eddie Bauer 4dr SUV AWD ","Limited 4dr SUV ","Limited 4dr SUV 4WD ","Limited 4dr SUV AWD ","XLT 4dr SUV ","XLT 4dr SUV 4WD ","XLT 4dr SUV AWD ","XLT 4dr SUV AWD w/XLT Sport Package ","XLT 4dr SUV w/XLT Sport Package ");
newcar.forValue("Ford").forValue("F-150").addOptions("FX2 4dr SuperCab Styleside 6.5 ft. SB ","FX2 4dr SuperCrew Styleside 5.5 ft. SB ","FX2 4dr SuperCrew Styleside 6.5 ft. SB ","FX4 4dr SuperCab 4WD Flareside 6.5 ft. SB ","FX4 4dr SuperCab 4WD Styleside 5.5 ft. SB ","FX4 4dr SuperCab 4WD Styleside 6.5 ft. SB ","FX4 4dr SuperCrew 4WD Flareside 6.5 ft. SB ","FX4 4dr SuperCrew 4WD Styleside 5.5 ft. SB ","FX4 4dr SuperCrew 4WD Styleside 6.5 ft. SB ","Harley-Davidson 4dr SuperCrew 4WD 5.5 ft. SB ","Harley-Davidson 4dr SuperCrew 5.5 ft. SB ","King Ranch 4dr SuperCrew 4WD Styleside 5.5 ft. SB ","King Ranch 4dr SuperCrew 4WD Styleside 6.5 ft. SB ","King Ranch 4dr SuperCrew Styleside 5.5 ft. SB ","King Ranch 4dr SuperCrew Styleside 6.5 ft. SB ","Lariat 4dr SuperCab 4WD Styleside 5.5 ft. SB ","Lariat 4dr SuperCab 4WD Styleside 6.5 ft. SB ","Lariat 4dr SuperCab Styleside 5.5 ft. SB ","Lariat 4dr SuperCab Styleside 6.5 ft. SB ","Lariat 4dr SuperCrew 4WD Styleside 5.5 ft. SB ","Lariat 4dr SuperCrew 4WD Styleside 6.5 ft. SB ","Lariat 4dr SuperCrew Styleside 5.5 ft. SB ","Lariat 4dr SuperCrew Styleside 6.5 ft. SB ","Platinum 4dr SuperCrew 4WD Styleside 5.5 ft. SB ","Platinum 4dr SuperCrew 4WD Styleside 6.5 ft. SB ","Platinum 4dr SuperCrew Styleside 5.5 ft. SB ","Platinum 4dr SuperCrew Styleside 6.5 ft. SB ","STX 2dr Regular Cab 4WD Flareside 6.5 ft. SB ","STX 2dr Regular Cab 4WD Styleside 6.5 ft. SB ","STX 2dr Regular Cab Flareside 6.5 ft. SB ","STX 2dr Regular Cab Styleside 6.5 ft. SB ","STX 4dr SuperCab 4WD Flareside 6.5 ft. SB ","STX 4dr SuperCab 4WD Styleside 5.5 ft. SB ","STX 4dr SuperCab 4WD Styleside 6.5 ft. SB ","STX 4dr SuperCab Flareside 6.5 ft. SB ","STX 4dr SuperCab Styleside 5.5 ft. SB ","STX 4dr SuperCab Styleside 6.5 ft. SB ","SVT Raptor 4dr SuperCab 4WD Styleside 5.5 ft. SB ","XL 2dr Regular Cab 4WD Styleside 6.5 ft. SB ","XL 2dr Regular Cab 4WD Styleside 8 ft. LB ","XL 2dr Regular Cab Styleside 6.5 ft. SB ","XL 2dr Regular Cab Styleside 8 ft. LB ","XL 4dr SuperCab 4WD Styleside 6.5 ft. SB ","XL 4dr SuperCab 4WD Styleside 8 ft. LB ","XL 4dr SuperCab Styleside 6.5 ft. SB ","XL 4dr SuperCab Styleside 8 ft. LB ","XL 4dr SuperCrew 4WD Styleside 5.5 ft. SB ","XL 4dr SuperCrew 4WD Styleside 6.5 ft. SB ","XL 4dr SuperCrew Styleside 5.5 ft. SB ","XL 4dr SuperCrew Styleside 6.5 ft. SB ","XLT 2dr Regular Cab 4WD Flareside 6.5 ft. SB ","XLT 2dr Regular Cab 4WD Styleside 6.5 ft. SB ","XLT 2dr Regular Cab 4WD Styleside 8 ft. LB ","XLT 2dr Regular Cab Flareside 6.5 ft. SB ","XLT 2dr Regular Cab Styleside 6.5 ft. SB ","XLT 2dr Regular Cab Styleside 8 ft. LB ","XLT 4dr SuperCab 4WD Flareside 6.5 ft. SB ","XLT 4dr SuperCab 4WD Styleside 5.5 ft. SB ","XLT 4dr SuperCab 4WD Styleside 6.5 ft. SB ","XLT 4dr SuperCab 4WD Styleside 8 ft. LB ","XLT 4dr SuperCab Flareside 6.5 ft. SB ","XLT 4dr SuperCab Styleside 5.5 ft. SB ","XLT 4dr SuperCab Styleside 6.5 ft. SB ","XLT 4dr SuperCab Styleside 8 ft. LB ","XLT 4dr SuperCrew 4WD Flareside 6.5 ft. SB ","XLT 4dr SuperCrew 4WD Styleside 5.5 ft. SB ","XLT 4dr SuperCrew 4WD Styleside 6.5 ft. SB ","XLT 4dr SuperCrew Flareside 6.5 ft. SB ","XLT 4dr SuperCrew Styleside 5.5 ft. SB ","XLT 4dr SuperCrew Styleside 6.5 ft. SB ");
newcar.forValue("Ford").forValue("F-250 Super Duty").addOptions("4dr Crew Cab 4WD SB ","Cabela 4dr Crew Cab 4WD LB ","Cabela 4dr Crew Cab 4WD SB ","FX4 4dr Crew Cab 4WD LB ","FX4 4dr Crew Cab 4WD SB ","FX4 4dr SuperCab 4WD LB ","FX4 4dr SuperCab 4WD SB ","Lariat 4dr Crew Cab 4WD LB ","Lariat 4dr Crew Cab 4WD SB ","Lariat 4dr Crew Cab LB ","Lariat 4dr Crew Cab SB ","Lariat 4dr SuperCab 4WD LB ","Lariat 4dr SuperCab 4WD SB ","Lariat 4dr SuperCab LB ","Lariat 4dr SuperCab SB ","XL 2dr Regular Cab 4WD LB ","XL 2dr Regular Cab LB ","XL 4dr Crew Cab 4WD LB ","XL 4dr Crew Cab 4WD SB ","XL 4dr Crew Cab LB ","XL 4dr Crew Cab SB ","XL 4dr SuperCab 4WD LB ","XL 4dr SuperCab 4WD SB ","XL 4dr SuperCab LB ","XL 4dr SuperCab SB ","XLT 2dr Regular Cab 4WD LB ","XLT 2dr Regular Cab LB ","XLT 4dr Crew Cab 4WD LB ","XLT 4dr Crew Cab 4WD SB ","XLT 4dr Crew Cab LB ","XLT 4dr Crew Cab SB ","XLT 4dr SuperCab 4WD LB ","XLT 4dr SuperCab 4WD SB ","XLT 4dr SuperCab LB ","XLT 4dr SuperCab SB ");
newcar.forValue("Ford").forValue("F-350 Super Duty").addOptions("Cabela 4dr Crew Cab 4WD LB ","Cabela 4dr Crew Cab 4WD SB ","FX4 4dr Crew Cab 4WD LB ","FX4 4dr Crew Cab 4WD LB DRW ","FX4 4dr Crew Cab 4WD SB ","FX4 4dr SuperCab 4WD LB ","FX4 4dr SuperCab 4WD LB DRW ","FX4 4dr SuperCab 4WD SB ","Lariat 4dr Crew Cab 4WD LB ","Lariat 4dr Crew Cab 4WD LB DRW ","Lariat 4dr Crew Cab 4WD SB ","Lariat 4dr Crew Cab LB ","Lariat 4dr Crew Cab LB DRW ","Lariat 4dr Crew Cab SB ","Lariat 4dr SuperCab 4WD LB ","Lariat 4dr SuperCab 4WD LB DRW ","Lariat 4dr SuperCab 4WD SB ","Lariat 4dr SuperCab LB ","Lariat 4dr SuperCab LB DRW ","Lariat 4dr SuperCab SB ","XL 2dr Regular Cab 4WD LB ","XL 2dr Regular Cab 4WD LB DRW ","XL 2dr Regular Cab LB ","XL 2dr Regular Cab LB DRW ","XL 4dr Crew Cab 4WD LB ","XL 4dr Crew Cab 4WD LB DRW ","XL 4dr Crew Cab 4WD SB ","XL 4dr Crew Cab LB ","XL 4dr Crew Cab LB DRW ","XL 4dr Crew Cab SB ","XL 4dr SuperCab 4WD LB ","XL 4dr SuperCab 4WD LB DRW ","XL 4dr SuperCab 4WD SB ","XL 4dr SuperCab LB ","XL 4dr SuperCab LB DRW ","XL 4dr SuperCab SB ","XLT 2dr Regular Cab 4WD LB ","XLT 2dr Regular Cab 4WD LB DRW ","XLT 2dr Regular Cab LB ","XLT 2dr Regular Cab LB DRW ","XLT 4dr Crew Cab 4WD LB ","XLT 4dr Crew Cab 4WD LB DRW ","XLT 4dr Crew Cab 4WD SB ","XLT 4dr Crew Cab LB ","XLT 4dr Crew Cab LB DRW ","XLT 4dr Crew Cab SB ","XLT 4dr SuperCab 4WD LB ","XLT 4dr SuperCab 4WD LB DRW ","XLT 4dr SuperCab 4WD SB ","XLT 4dr SuperCab LB ","XLT 4dr SuperCab LB DRW ","XLT 4dr SuperCab SB ");
newcar.forValue("Ford").forValue("F-450 Super Duty").addOptions("Lariat 4dr Crew Cab 4WD LB DRW ","Lariat 4dr Crew Cab LB DRW ","XL 4dr Crew Cab 4WD LB DRW ","XL 4dr Crew Cab LB DRW ","XLT 4dr Crew Cab 4WD LB DRW ","XLT 4dr Crew Cab LB DRW ");
newcar.forValue("Ford").forValue("Fiesta").addOptions("4dr Hatchback ");
newcar.forValue("Ford").forValue("Flex").addOptions("Limited 4dr Wagon ","Limited 4dr Wagon AWD ","Limited 4dr Wagon AWD w/EcoBoost ","SE 4dr Wagon ","SEL 4dr Wagon ","SEL 4dr Wagon AWD ","SEL 4dr Wagon AWD w/EcoBoost ");
newcar.forValue("Ford").forValue("Focus").addOptions("S 4dr Sedan ","SE 2dr Coupe ","SE 4dr Sedan ","SEL 4dr Sedan ","SES 2dr Coupe ","SES 4dr Sedan ");
newcar.forValue("Ford").forValue("Fusion Hybrid").addOptions("4dr Sedan ");
newcar.forValue("Ford").forValue("Fusion").addOptions("I-4 S 4dr Sedan ","I-4 SE 4dr Sedan ","I-4 SEL 4dr Sedan ","SPORT 4dr Sedan ","SPORT 4dr Sedan AWD ","V6 SE 4dr Sedan ","V6 SE 4dr Sedan AWD ","V6 SEL 4dr Sedan ","V6 SEL 4dr Sedan AWD ");
newcar.forValue("Ford").forValue("Mustang").addOptions("GT 2dr Convertible ","GT 2dr Coupe ","GT Deluxe 2dr Convertible ","GT Deluxe 2dr Coupe ","GT Premium 2dr Convertible ","GT Premium 2dr Coupe ","V6 2dr Convertible ","V6 2dr Coupe ","V6 Deluxe 2dr Convertible ","V6 Deluxe 2dr Coupe ","V6 Premium 2dr Convertible ","V6 Premium 2dr Coupe ");
newcar.forValue("Ford").forValue("Ranger").addOptions("FX4 Off-Road 2dr SuperCab 4WD Styleside SB ","FX4 Off-Road 4dr SuperCab 4WD Styleside SB ","SPORT 2dr Regular Cab SB ","SPORT 2dr SuperCab 4WD Styleside SB ","SPORT 2dr SuperCab Styleside SB ","SPORT 4dr SuperCab 4WD Styleside SB ","SPORT 4dr SuperCab Styleside SB ","XL 2dr Regular Cab Styleside LB ","XL 2dr Regular Cab Styleside SB ","XL 2dr SuperCab 4WD Styleside SB ","XL 2dr SuperCab Styleside SB ","XL Fleet 2dr Regular Cab Styleside LB ","XL Fleet 2dr SuperCab 4WD Styleside SB ","XLT 2dr Regular Cab Styleside LB ","XLT 2dr Regular Cab Styleside SB ","XLT 2dr SuperCab 4WD Styleside SB ","XLT 2dr SuperCab Styleside SB ","XLT 4dr SuperCab 4WD Styleside SB ","XLT 4dr SuperCab Styleside SB ");
newcar.forValue("Ford").forValue("Shelby GT500").addOptions("2dr Convertible ","2dr Coupe ");
newcar.forValue("Ford").forValue("Taurus X").addOptions("Eddie Bauer 4dr Wagon ","Eddie Bauer 4dr Wagon AWD ","Limited 4dr Wagon ","Limited 4dr Wagon AWD ","SEL 4dr Wagon ","SEL 4dr Wagon AWD ");
newcar.forValue("Ford").forValue("Taurus").addOptions("Limited 4dr Sedan ","Limited 4dr Sedan AWD ","SE 4dr Sedan ","SEL 4dr Sedan ","SEL 4dr Sedan AWD ","SHO 4dr Sedan AWD ");
newcar.forValue("Ford").forValue("Transit Connect").addOptions("Cargo Van XL 4dr Minivan w/o Side & Rear Glass","Cargo Van XL 4dr Minivan w/Rear Glass ","Cargo Van XL 4dr Minivan w/Side & Rear Glass","Cargo Van XLT 4dr Minivan w/o Side & Rear","Cargo Van XLT 4dr Minivan w/Rear Glass ","Cargo Van XLT 4dr Minivan w/Side & Rear Glass","Wagon XL 4dr Minivan ","Wagon XLT 4dr Minivan ");
newcar.forValue("Gmc").forValue("Acadia").addOptions("SL 4dr SUV ","SL 4dr SUV AWD ","SLE 4dr SUV ","SLE 4dr SUV AWD ","SLE-1 4dr SUV ","SLE-1 4dr SUV AWD ","SLT-1 4dr SUV ","SLT-1 4dr SUV AWD ","SLT-2 4dr SUV ","SLT-2 4dr SUV AWD ");
newcar.forValue("Gmc").forValue("Canyon").addOptions("SLE 2dr Regular Cab 4WD SB ","SLE 2dr Regular Cab SB ","SLE 4dr Crew Cab 4WD SB ","SLE 4dr Crew Cab SB ","SLE 4dr Extended Cab 4WD SB ","SLE 4dr Extended Cab SB ","SLT 4dr Crew Cab 4WD SB ","SLT 4dr Crew Cab SB ","SLT 4dr Extended Cab 4WD SB ","SLT 4dr Extended Cab SB ","Value 4dr Crew Cab SB ","Value 4dr Extended Cab SB ","Work Truck 2dr Regular Cab 4WD SB ","Work Truck 2dr Regular Cab SB ","Work Truck 4dr Extended Cab 4WD SB ","Work Truck 4dr Extended Cab SB ");
newcar.forValue("Gmc").forValue("Envoy").addOptions("Denali 4dr SUV ","Denali 4dr SUV 4WD ","SLE 4dr SUV ","SLE 4dr SUV 4WD ","SLT 4dr SUV ","SLT 4dr SUV 4WD ");
newcar.forValue("Gmc").forValue("Savana Cargo").addOptions("1500 3dr Van ","1500 3dr Van AWD ","2500 3dr Ext Van ","2500 3dr Van ","3500 3dr Ext Van ","3500 3dr Van ");
newcar.forValue("Gmc").forValue("Savana").addOptions("LS 1500 3dr Van ","LS 1500 3dr Van AWD ","LS 2500 3dr Van ","LS 3500 3dr Ext Van ","LS 3500 3dr Van ");
newcar.forValue("Gmc").forValue("Sierra 1500 Hybrid").addOptions("4dr Crew Cab 4WD SB w/3HA ","4dr Crew Cab 4WD SB w/3HB ","4dr Crew Cab SB w/3HA ","4dr Crew Cab SB w/3HB ");
newcar.forValue("Gmc").forValue("Sierra 1500").addOptions("Denali 4dr Crew Cab 5.8 ft. SB ","Denali 4dr Crew Cab AWD 5.8 ft. SB ","SL 4dr Crew Cab 4WD 5.8 ft. SB ","SL 4dr Crew Cab 5.8 ft. SB ","SL 4dr Extended Cab 4WD 6.5 ft. SB ","SL 4dr Extended Cab 6.5 ft. SB ","SLE 2dr Regular Cab 4WD 6.5 ft. SB ","SLE 2dr Regular Cab 4WD 8 ft. LB ","SLE 2dr Regular Cab 6.5 ft. SB ","SLE 2dr Regular Cab 8 ft. LB ","SLE 4dr Crew Cab 4WD 5.8 ft. SB ","SLE 4dr Crew Cab 5.8 ft. SB ","SLE 4dr Extended Cab 4WD 5.8 ft. SB ","SLE 4dr Extended Cab 4WD 6.5 ft. SB ","SLE 4dr Extended Cab 4WD 8 ft. LB ","SLE 4dr Extended Cab 5.8 ft. SB ","SLE 4dr Extended Cab 6.5 ft. SB ","SLE 4dr Extended Cab 8 ft. LB ","SLT 4dr Crew Cab 4WD 5.8 ft. SB ","SLT 4dr Crew Cab 5.8 ft. SB ","SLT 4dr Extended Cab 4WD 5.8 ft. SB ","SLT 4dr Extended Cab 4WD 6.5 ft. SB ","SLT 4dr Extended Cab 4WD 8 ft. LB ","SLT 4dr Extended Cab 5.8 ft. SB ","SLT 4dr Extended Cab 6.5 ft. SB ","SLT 4dr Extended Cab 8 ft. LB ","Work Truck 2dr Regular Cab 4WD 6.5 ft. SB ","Work Truck 2dr Regular Cab 4WD 8 ft. LB ","Work Truck 2dr Regular Cab 6.5 ft. SB ","Work Truck 2dr Regular Cab 8 ft. LB ","Work Truck 4dr Crew Cab 4WD 5.8 ft. SB ","Work Truck 4dr Crew Cab 5.8 ft. SB ","Work Truck 4dr Extended Cab 4WD 5.8 ft. SB ","Work Truck 4dr Extended Cab 4WD 6.5 ft. SB ","Work Truck 4dr Extended Cab 4WD 8 ft. LB ","Work Truck 4dr Extended Cab 5.8 ft. SB ","Work Truck 4dr Extended Cab 6.5 ft. SB ","Work Truck 4dr Extended Cab 8 ft. LB ","XFE 4dr Crew Cab 5.8 ft. SB ");
newcar.forValue("Gmc").forValue("Sierra 2500HD").addOptions("SLE 2dr Regular Cab 4WD LB ","SLE 2dr Regular Cab LB ","SLE 4dr Crew Cab 4WD LB ","SLE 4dr Crew Cab 4WD SB ","SLE 4dr Crew Cab LB ","SLE 4dr Crew Cab SB ","SLE 4dr Extended Cab 4WD LB ","SLE 4dr Extended Cab 4WD SB ","SLE 4dr Extended Cab LB ","SLE 4dr Extended Cab SB ","SLT 4dr Crew Cab 4WD LB ","SLT 4dr Crew Cab 4WD SB ","SLT 4dr Crew Cab LB ","SLT 4dr Crew Cab SB ","SLT 4dr Extended Cab 4WD LB ","SLT 4dr Extended Cab 4WD SB ","SLT 4dr Extended Cab LB ","SLT 4dr Extended Cab SB ","Work Truck 2dr Regular Cab 4WD LB ","Work Truck 2dr Regular Cab LB ","Work Truck 4dr Crew Cab 4WD LB ","Work Truck 4dr Crew Cab 4WD SB ","Work Truck 4dr Crew Cab LB ","Work Truck 4dr Crew Cab SB ","Work Truck 4dr Extended Cab 4WD LB ","Work Truck 4dr Extended Cab 4WD SB ","Work Truck 4dr Extended Cab LB ","Work Truck 4dr Extended Cab SB ");
newcar.forValue("Gmc").forValue("Sierra 3500HD").addOptions("SLE 2dr Regular Cab 4WD LB ","SLE 2dr Regular Cab 4WD LB DRW ","SLE 2dr Regular Cab LB ","SLE 4dr Crew Cab 4WD LB ","SLE 4dr Crew Cab 4WD LB DRW ","SLE 4dr Crew Cab LB ","SLE 4dr Crew Cab LB DRW ","SLE 4dr Extended Cab 4WD LB ","SLE 4dr Extended Cab 4WD LB DRW ","SLE 4dr Extended Cab LB ","SLE 4dr Extended Cab LB DRW ","SLT 4dr Crew Cab 4WD LB ","SLT 4dr Crew Cab 4WD LB DRW ","SLT 4dr Crew Cab LB ","SLT 4dr Crew Cab LB DRW ","SLT 4dr Extended Cab 4WD LB ","SLT 4dr Extended Cab 4WD LB DRW ","SLT 4dr Extended Cab LB ","SLT 4dr Extended Cab LB DRW ","Work Truck 2dr Regular Cab 4WD LB ","Work Truck 2dr Regular Cab 4WD LB DRW ","Work Truck 2dr Regular Cab LB ","Work Truck 4dr Crew Cab 4WD LB ","Work Truck 4dr Crew Cab 4WD LB DRW ","Work Truck 4dr Crew Cab LB ","Work Truck 4dr Crew Cab LB DRW ","Work Truck 4dr Extended Cab 4WD LB ","Work Truck 4dr Extended Cab 4WD LB DRW ","Work Truck 4dr Extended Cab LB ","Work Truck 4dr Extended Cab LB DRW ");
newcar.forValue("Gmc").forValue("Terrain").addOptions("SLE-1 4dr SUV ","SLE-1 4dr SUV AWD ","SLE-2 4dr SUV ","SLE-2 4dr SUV AWD ","SLT-1 4dr SUV ","SLT-1 4dr SUV AWD ","SLT-2 4dr SUV ","SLT-2 4dr SUV AWD ");
newcar.forValue("Gmc").forValue("Yukon Hybrid").addOptions("4dr SUV ","4dr SUV 4WD ","Denali 4dr SUV ","Denali 4dr SUV 4WD ");
newcar.forValue("Gmc").forValue("Yukon XL").addOptions("Denali 4dr SUV ","Denali 4dr SUV AWD ","SLE 1500 4dr SUV ","SLE 1500 4dr SUV 4WD ","SLE 2500 4dr SUV ","SLE 2500 4dr SUV 4WD ","SLE1 1500 4dr SUV ","SLE1 1500 4dr SUV 4WD ","SLE1 2500 4dr SUV ","SLE1 2500 4dr SUV 4WD ","SLE2 1500 4dr SUV ","SLE2 1500 4dr SUV 4WD ","SLE2 2500 4dr SUV ","SLE2 2500 4dr SUV 4WD ","SLT 1500 4dr SUV ","SLT 1500 4dr SUV 4WD ","SLT 2500 4dr SUV ","SLT 2500 4dr SUV 4WD ","SLT1 1500 4dr SUV ","SLT1 1500 4dr SUV 4WD ","SLT1 2500 4dr SUV ","SLT1 2500 4dr SUV 4WD ","SLT2 1500 4dr SUV ","SLT2 1500 4dr SUV 4WD ","SLT2 2500 4dr SUV ","SLT2 2500 4dr SUV 4WD ");
newcar.forValue("Gmc").forValue("Yukon").addOptions("Denali 4dr SUV ","Denali 4dr SUV AWD ","SLE 4dr SUV ","SLE 4dr SUV 4WD ","SLE1 4dr SUV ","SLE1 4dr SUV 4WD ","SLE2 4dr SUV ","SLE2 4dr SUV 4WD ","SLE2 XFE 4dr SUV ","SLT 4dr SUV ","SLT 4dr SUV 4WD ","SLT1 4dr SUV ","SLT1 4dr SUV 4WD ","SLT1 XFE 4dr SUV ","SLT2 4dr SUV ","SLT2 4dr SUV 4WD ","SLT2 XFE 4dr SUV ");
newcar.forValue("Honda").forValue("Accord Crosstour").addOptions("EX 4dr Wagon ","EX-L 4dr Wagon ","EX-L 4dr Wagon AWD ","EX-L 4dr Wagon AWD w/Navigation ","EX-L 4dr Wagon w/Navigation ");
newcar.forValue("Honda").forValue("Accord").addOptions("EX 2dr Coupe ","EX 4dr Sedan ","EX V-6 4dr Sedan ","EX-L 2dr Coupe ","EX-L 2dr Coupe w/Navigation ","EX-L 4dr Sedan ","EX-L 4dr Sedan w/Navigation ","EX-L V-6 2dr Coupe ","EX-L V-6 2dr Coupe w/Navigation ","EX-L V-6 4dr Sedan ","EX-L V-6 4dr Sedan w/Navigation ","LX 4dr Sedan ","LX-P 4dr Sedan ","LX-S 2dr Coupe ");
newcar.forValue("Honda").forValue("Civic").addOptions("4dr Sedan ","DX 2dr Coupe ","DX 4dr Sedan ","DX-VP 4dr Sedan ","EX 2dr Coupe ","EX 2dr Coupe w/Nav ","EX 4dr Sedan ","EX 4dr Sedan w/Nav ","EX-L 2dr Coupe ","EX-L 2dr Coupe w/Nav ","EX-L 4dr Sedan ","EX-L 4dr Sedan w/Nav ","GX 4dr Sedan ","Hybrid 4dr Sedan ","Hybrid 4dr Sedan ","Hybrid 4dr Sedan w/Lthr ","Hybrid 4dr Sedan w/Lthr Nav ","Hybrid 4dr Sedan w/Nav ","Hybrid 4dr Sedan w/Navigation ","HYBRID FA3628GW Sedan 4D ","Hybrid w/Navigation","Hybrid+4dr+Sedan+","Hybrid+4dr+Sedan+w%2fNavi+","LX 2dr Coupe ","LX 4dr Sedan ","LX-S 4dr Sedan ","Si 2dr Coupe ","Si 2dr Coupe w/High Performance Tires ","Si 2dr Coupe w/Nav ","Si 2dr Coupe w/Nav High Performance Tires ","Si 4dr Sedan ","Si 4dr Sedan w/High Performance Tires ","Si 4dr Sedan w/Nav ","Si 4dr Sedan w/Nav High Performance Tires ");
newcar.forValue("Honda").forValue("CR-V").addOptions("EX 4dr SUV ","EX 4dr SUV AWD ","EX-L 4dr SUV ","EX-L 4dr SUV AWD ","EX-L 4dr SUV AWD w/Navigation ","EX-L 4dr SUV w/Navigation ","LX 4dr SUV ","LX 4dr SUV AWD ");
newcar.forValue("Honda").forValue("CR-Z").addOptions("2dr Hatchback ");
newcar.forValue("Honda").forValue("Element").addOptions("EX 4dr SUV ","EX 4dr SUV AWD ","EX 4dr SUV AWD w/Navigation ","EX 4dr SUV w/Navigation ","LX 4dr SUV ","LX 4dr SUV AWD ","SC 4dr SUV ","SC 4dr SUV w/Navigation ");
newcar.forValue("Honda").forValue("Fit").addOptions("4dr Hatchback ","Sport 4dr Hatchback ","Sport 4dr Hatchback w/Navigation ");
newcar.forValue("Honda").forValue("Insight").addOptions("EX 4dr Hatchback ","EX 4dr Hatchback w/Navigation ","LX 4dr Hatchback ");
newcar.forValue("Honda").forValue("Odyssey").addOptions("EX 4dr Minivan ","EX 4dr Minivan w/Rear Entertainment ","EX-L 4dr Minivan ","EX-L 4dr Minivan w/Nav Rear Entertainment ","EX-L 4dr Minivan w/Rear Entertainment ","LX 4dr Minivan ","Touring 4dr Minivan ","Touring 4dr Minivan w/PAX ");
newcar.forValue("Honda").forValue("Pilot").addOptions("EX 4dr SUV ","EX 4dr SUV 4WD ","EX-L 4dr SUV ","EX-L 4dr SUV 4WD ","EX-L 4dr SUV 4WD w/Rear Entertainment ","EX-L 4dr SUV w/Rear Entertainment ","LX 4dr SUV ","LX 4dr SUV 4WD ","Touring 4dr SUV 4WD w/Nav ","Touring 4dr SUV 4WD w/Nav Rear Entertainment ","Touring 4dr SUV w/Nav ","Touring 4dr SUV w/Nav Rear Entertainment ");
newcar.forValue("Honda").forValue("Ridgeline").addOptions("RT 4dr Crew Cab 4WD SB ","RTL 4dr Crew Cab 4WD SB ","RTL 4dr Crew Cab 4WD SB w/Navi ","RTL 4dr Crew Cab 4WD SB w/Navigation ","RTS 4dr Crew Cab 4WD SB ");
newcar.forValue("Honda").forValue("S2000").addOptions("2dr Convertible ","CR 2dr Convertible ","CR 2dr Convertible w/AC Audio ");
newcar.forValue("Hummer").forValue("H2 SUT").addOptions("4dr Crew Cab 4WD SB ");
newcar.forValue("Hummer").forValue("H2").addOptions("4dr SUV 4WD ");
newcar.forValue("Hummer").forValue("H3").addOptions("4dr SUV 4WD ","Alpha 4dr SUV 4WD ","H3X 4dr SUV 4WD ");
newcar.forValue("Hummer").forValue("H3T").addOptions("4dr Crew Cab 4WD SB ","Alpha 4dr Crew Cab 4WD SB ");
newcar.forValue("Hyundai").forValue("Accent").addOptions("Blue 2dr Hatchback ","GLS 4dr Sedan ","GS 2dr Hatchback ","GS Base 2dr Hatchback ","SE 2dr Hatchback ");
newcar.forValue("Hyundai").forValue("Azera").addOptions("GLS 4dr Sedan ","Limited 4dr Sedan ");
newcar.forValue("Hyundai").forValue("Elantra Touring").addOptions("4dr Hatchback ","GLS 4dr Hatchback ","SE 4dr Hatchback ");
newcar.forValue("Hyundai").forValue("Elantra").addOptions("Blue 4dr Sedan ","GLS 4dr Sedan ","GLS PZEV 4dr Sedan ","SE 4dr Sedan ","SE PZEV 4dr Sedan ");
newcar.forValue("Hyundai").forValue("Genesis Coupe").addOptions("2.0T 2dr Coupe ","2.0T Premium 2dr Coupe ","2.0T R-Spec 2dr Coupe ","2.0T Track 2dr Coupe ","3.8 2dr Coupe ","3.8 Grand Touring 2dr Coupe ","3.8 Track 2dr Coupe ");
newcar.forValue("Hyundai").forValue("Genesis").addOptions("3.8 4dr Sedan ","4.6 4dr Sedan ");
newcar.forValue("Hyundai").forValue("Santa Fe").addOptions("GLS 4dr SUV ","GLS 4dr SUV AWD ","Limited 4dr SUV ","Limited 4dr SUV AWD ","SE 4dr SUV ","SE 4dr SUV AWD ");
newcar.forValue("Hyundai").forValue("Sonata").addOptions("4dr Sedan ","GLS 4dr Sedan ","GLS PZEV 4dr Sedan ","GLS V6 4dr Sedan ","Limited 4dr Sedan ","Limited PZEV 4dr Sedan ","Limited V6 4dr Sedan ","SE 4dr Sedan ","SE PZEV 4dr Sedan ","SE V6 4dr Sedan ");
newcar.forValue("Hyundai").forValue("Tucson").addOptions("4dr SUV 4WD ","GLS 4dr SUV ","Limited 4dr SUV ","Limited 4dr SUV 4WD ","SE 4dr SUV ","SE 4dr SUV 4WD ");
newcar.forValue("Hyundai").forValue("Veracruz").addOptions("GLS 4dr SUV ","GLS 4dr SUV AWD ","Limited 4dr SUV ","Limited 4dr SUV AWD ");
newcar.forValue("Infiniti").forValue("EX35").addOptions("4dr SUV ","4dr SUV AWD ","Journey 4dr SUV ","Journey 4dr SUV AWD ");
newcar.forValue("Infiniti").forValue("FX35").addOptions("4dr SUV ","4dr SUV AWD ");
newcar.forValue("Infiniti").forValue("FX50").addOptions("4dr SUV AWD ");
newcar.forValue("Infiniti").forValue("G37").addOptions("2dr Convertible ","2dr Coupe ","4dr Sedan ","Journey 2dr Coupe ","Journey 4dr Sedan ","S Sport 2dr Coupe ","S Sport 4dr Sedan ","Sport 2dr Convertible ","x 2dr Coupe AWD ","x 4dr Sedan AWD ");
newcar.forValue("Infiniti").forValue("M35").addOptions("4dr Sedan ","x 4dr Sedan AWD ");
newcar.forValue("Infiniti").forValue("M45").addOptions("4dr Sedan ","x 4dr Sedan AWD ");
newcar.forValue("Infiniti").forValue("M56").addOptions("4dr Sedan AWD ");
newcar.forValue("Infiniti").forValue("QX56").addOptions("4dr SUV ","4dr SUV 4WD ");
newcar.forValue("Jaguar").forValue("XF").addOptions("4dr Sedan ","XF Premium 4dr Sedan ","XF Supercharged 4dr Sedan ","XFR 4dr Sedan ");
newcar.forValue("Jaguar").forValue("XJ").addOptions("4dr Sedan ","Super V8 4dr Sedan ","Super V8 Portfolio 4dr Sedan ","Vanden Plas 4dr Sedan ","XJ Supercharged 4dr Sedan ","XJ Supersport 4dr Sedan ","XJ8 4dr Sedan ","XJ8 L 4dr Sedan ","XJL 4dr Sedan ","XJL Supercharged 4dr Sedan ","XJL Supersport 4dr Sedan ","XJR 4dr Sedan ");
newcar.forValue("Jaguar").forValue("XK").addOptions("2dr Convertible ","2dr Coupe ","XKR 2dr Convertible ","XKR 2dr Coupe ");
newcar.forValue("Jeep").forValue("Commander").addOptions("Limited 4dr SUV ","Limited 4dr SUV 4WD ","Overland 4dr SUV ","Overland 4dr SUV 4WD ","Sport 4dr SUV ","Sport 4dr SUV 4WD ");
newcar.forValue("Jeep").forValue("Compass").addOptions("Limited 4dr SUV ","Limited 4dr SUV 4WD ","Sport 4dr SUV ","Sport 4dr SUV 4WD ");
newcar.forValue("Jeep").forValue("Grand Cherokee").addOptions("4dr SUV 4WD ","Laredo 4dr SUV ","Laredo 4dr SUV 4WD ","Limited 4dr SUV ","Limited 4dr SUV 4WD ","Overland 4dr SUV ","Overland 4dr SUV 4WD ","SRT-8 4dr SUV 4WD ","SRT8 4dr SUV 4WD ");
newcar.forValue("Jeep").forValue("Liberty").addOptions("Limited 4dr SUV ","Limited 4dr SUV 4WD ","Sport 4dr SUV ","Sport 4dr SUV 4WD ");
newcar.forValue("Jeep").forValue("Patriot").addOptions("Limited 4dr SUV ","Limited 4dr SUV 4WD ","Sport 4dr SUV ","Sport 4dr SUV 4WD ");
newcar.forValue("Jeep").forValue("Wrangler").addOptions("Rubicon 2dr SUV 4WD ","Sahara 2dr SUV 4WD ","Sport 2dr SUV 4WD ","Unlimited Rubicon 4dr SUV 4WD ","Unlimited Sahara 4dr SUV ","Unlimited Sahara 4dr SUV 4WD ","Unlimited Sport 4dr SUV ","Unlimited Sport 4dr SUV 4WD ","Unlimited Sport RHD 4dr SUV 4WD ","Unlimited X 4dr SUV ","Unlimited X 4dr SUV 4WD ","X 2dr SUV 4WD ");
newcar.forValue("Kia").forValue("Amanti").addOptions("4dr Sedan ");
newcar.forValue("Kia").forValue("Borrego").addOptions("EX 4dr SUV ","EX 4dr SUV 4WD ","Limited 4dr SUV ","Limited 4dr SUV 4WD ","LX 4dr SUV ","LX 4dr SUV 4WD ");
newcar.forValue("Kia").forValue("Forte Koup").addOptions("SX 2dr Coupe ");
newcar.forValue("Kia").forValue("Forte").addOptions("EX 4dr Sedan ","Koup EX 2dr Coupe ","Koup SX 2dr Coupe ","LX 4dr Sedan ","SX 4dr Sedan ");
newcar.forValue("Kia").forValue("Optima").addOptions("EX 4dr Sedan ","LX 4dr Sedan ","SX 4dr Sedan ");
newcar.forValue("Kia").forValue("Rio").addOptions("4dr Sedan ","LX 4dr Sedan ","Rio5 LX 4dr Wagon ","Rio5 SX 4dr Wagon ","SX 4dr Sedan ");
newcar.forValue("Kia").forValue("Rondo").addOptions("EX 4dr Wagon ","LX 4dr Wagon ","LX Base 4dr Wagon ");
newcar.forValue("Kia").forValue("Sedona").addOptions("4dr Minivan ","EX 4dr Ext Minivan ","LX 4dr Ext Minivan ");
newcar.forValue("Kia").forValue("Sorento").addOptions("4dr SUV ","4dr SUV AWD ","EX 4dr SUV ","EX 4dr SUV 4WD ","LX 4dr SUV ","LX 4dr SUV 4WD ");
newcar.forValue("Kia").forValue("Soul").addOptions("! 4dr Wagon ","+ 4dr Wagon ","4dr Wagon ","Sport 4dr Wagon ");
newcar.forValue("Kia").forValue("Spectra").addOptions("EX 4dr Sedan ","LX 4dr Sedan ","Spectra5 SX 4dr Wagon ","SX 4dr Sedan ");
newcar.forValue("Kia").forValue("Sportage").addOptions("EX 4dr SUV ","EX 4dr SUV 4WD ","LX 4dr SUV ","LX 4dr SUV 4WD ");
newcar.forValue("Lamborghini").forValue("Gallardo").addOptions("LP 550-2 Valentino Balboni 2dr Coupe ","LP560-4 2dr Coupe AWD ");
newcar.forValue("Lamborghini").forValue("Murcielago").addOptions("LP640 2dr Convertible AWD ","LP640 2dr Coupe AWD ");
newcar.forValue("Land Rover").forValue("LR2").addOptions("HSE 4dr SUV AWD ");
newcar.forValue("Land Rover").forValue("LR3").addOptions("V8 4dr SUV 4WD ");
newcar.forValue("Land Rover").forValue("LR4").addOptions("V8 4dr SUV 4WD ");
newcar.forValue("Land Rover").forValue("LRX").addOptions("2dr SUV 4WD ");
newcar.forValue("Land Rover").forValue("Range Rover Sport").addOptions("HSE 4dr SUV 4WD ","Supercharged 4dr SUV 4WD ");
newcar.forValue("Land Rover").forValue("Range Rover").addOptions("HSE 4dr SUV 4WD ","Supercharged 4dr SUV 4WD ");
newcar.forValue("Lexus").forValue("ES 350").addOptions("4dr Sedan ");
newcar.forValue("Lexus").forValue("GS 350").addOptions("4dr Sedan ","4dr Sedan AWD ");
newcar.forValue("Lexus").forValue("GS 450h").addOptions("4dr Sedan ");
newcar.forValue("Lexus").forValue("GS 460").addOptions("4dr Sedan ");
newcar.forValue("Lexus").forValue("GX 460").addOptions("4dr SUV 4WD ");
newcar.forValue("Lexus").forValue("GX 470").addOptions("4dr SUV 4WD ");
newcar.forValue("Lexus").forValue("HS 250h").addOptions("4dr Sedan ","Premium 4dr Sedan ");
newcar.forValue("Lexus").forValue("IS 250 C").addOptions("2dr Convertible ");
newcar.forValue("Lexus").forValue("IS 250").addOptions("4dr Sedan ","4dr Sedan AWD ");
newcar.forValue("Lexus").forValue("IS 350 C").addOptions("2dr Convertible ");
newcar.forValue("Lexus").forValue("IS 350").addOptions("4dr Sedan ");
newcar.forValue("Lexus").forValue("IS F").addOptions("4dr Sedan ");
newcar.forValue("Lexus").forValue("LFA").addOptions("2dr Coupe ");
newcar.forValue("Lexus").forValue("LS 460").addOptions("4dr Sedan ","4dr Sedan AWD ","L 4dr Sedan ","L 4dr Sedan AWD ");
newcar.forValue("Lexus").forValue("LS 600h L").addOptions("4dr Sedan AWD ");
newcar.forValue("Lexus").forValue("LX 570").addOptions("4dr SUV 4WD ");
newcar.forValue("Lexus").forValue("RX 350").addOptions("4dr SUV ","4dr SUV AWD ");
newcar.forValue("Lexus").forValue("RX 450h").addOptions("4dr SUV ","4dr SUV AWD ");
newcar.forValue("Lexus").forValue("SC 430").addOptions("2dr Convertible ");
newcar.forValue("Lincoln").forValue("MKS").addOptions("4dr Sedan ","4dr Sedan AWD ","EcoBoost 4dr Sedan AWD ");
newcar.forValue("Lincoln").forValue("MKT").addOptions("4dr Wagon ","4dr Wagon AWD ");
newcar.forValue("Lincoln").forValue("MKX").addOptions("4dr SUV ","4dr SUV AWD ");
newcar.forValue("Lincoln").forValue("MKZ").addOptions("4dr Sedan ","4dr Sedan AWD ");
newcar.forValue("Lincoln").forValue("Navigator L").addOptions("4dr SUV ","4dr SUV 4WD ");
newcar.forValue("Lincoln").forValue("Navigator").addOptions("4dr SUV ","4dr SUV 4WD ","L 4dr SUV ","L 4dr SUV 4WD ");
newcar.forValue("Lincoln").forValue("Town Car").addOptions("Signature L 4dr Sedan ","Signature Limited 4dr Sedan ");
newcar.forValue("Lotus").forValue("Elise").addOptions("2dr Convertible ","Purist Edition 2dr Convertible ","SC 2dr Convertible ");
newcar.forValue("Lotus").forValue("Evora").addOptions("2dr Coupe ");
newcar.forValue("Lotus").forValue("Exige").addOptions("S 240 2dr Coupe ","S 260 Sport 2dr Coupe ","S240 2dr Coupe ");
newcar.forValue("Mahindra").forValue("TR40").addOptions("4dr Crew Cab 4WD ");
newcar.forValue("Maserati").forValue("GranTurismo").addOptions("2dr Coupe ","S 2dr Coupe ","S Automatic 2dr Coupe ");
newcar.forValue("Maserati").forValue("Quattroporte").addOptions("4dr Sedan ","S 4dr Sedan ","Sport GT S 4dr Sedan ");
newcar.forValue("Maybach").forValue("57").addOptions("4dr Sedan ","S 4dr Sedan ");
newcar.forValue("Maybach").forValue("62").addOptions("4dr Sedan ","S 4dr Sedan ");
newcar.forValue("Maybach").forValue("Landaulet").addOptions("4dr Convertible ");
newcar.forValue("Mazda").forValue("B-Series Truck").addOptions("B2300 2dr Regular Cab SB ","B4000 4dr Cab Plus 4 4WD SB ");
newcar.forValue("Mazda").forValue("CX-7").addOptions("Grand Touring 4dr SUV ","Grand Touring 4dr SUV AWD ","i Sport 4dr SUV ","i SV 4dr SUV ","s Grand Touring 4dr SUV ","s Grand Touring 4dr SUV AWD ","s Touring 4dr SUV ","s Touring 4dr SUV AWD ","Sport 4dr SUV ","Sport 4dr SUV AWD ","Touring 4dr SUV ","Touring 4dr SUV AWD ");
newcar.forValue("Mazda").forValue("CX-9").addOptions("Grand Touring 4dr SUV ","Grand Touring 4dr SUV AWD ","Sport 4dr SUV ","Sport 4dr SUV AWD ","Touring 4dr SUV ","Touring 4dr SUV AWD ");
newcar.forValue("Mazda").forValue("MAZDA2").addOptions("4dr Hatchback ");
newcar.forValue("Mazda").forValue("MAZDA3").addOptions("i Sport 4dr Sedan ","i SV 4dr Sedan ","i Touring 4dr Sedan ","i Touring Value 4dr Sedan ","s Grand Touring 4dr Hatchback ","s Grand Touring 4dr Sedan ","s Sport 4dr Hatchback ","s Sport 4dr Sedan ","s Touring 4dr Hatchback ","s Touring 4dr Sedan ");
newcar.forValue("Mazda").forValue("MAZDA5").addOptions("Grand Touring 4dr Minivan ","Sport 4dr Minivan ","Touring 4dr Minivan ");
newcar.forValue("Mazda").forValue("MAZDA6").addOptions("i Grand Touring 4dr Sedan ","i Sport 4dr Sedan ","i SV 4dr Sedan ","i Touring 4dr Sedan ","i Touring Plus 4dr Sedan ","s Grand Touring 4dr Sedan ","s Sport 4dr Sedan ","s Touring 4dr Sedan ","s Touring Plus 4dr Sedan ");
newcar.forValue("Mazda").forValue("MAZDASPEED MAZDA3").addOptions("Grand Touring 4dr Hatchback ","Sport 4dr Hatchback ");
newcar.forValue("Mazda").forValue("MAZDASPEED3").addOptions("Sport 4dr Hatchback ");
newcar.forValue("Mazda").forValue("MX-5 Miata").addOptions("Grand Touring 2dr Convertible ","Grand Touring 2dr Convertible w/Power Hard Top","Sport 2dr Convertible ","Sport 2dr Convertible w/Power Hard Top ","SV 2dr Convertible ","Touring 2dr Convertible ","Touring 2dr Convertible w/Power Hard Top ");
newcar.forValue("Mazda").forValue("RX-8").addOptions("Grand Touring 4dr Coupe ","R3 4dr Coupe ","RX-8 R3 4dr Coupe ","Sport 4dr Coupe ","Touring 4dr Coupe ");
newcar.forValue("Mazda").forValue("Tribute Hybrid").addOptions("Grand Touring 4dr SUV ","Grand Touring 4dr SUV AWD ","Touring 4dr SUV ","Touring 4dr SUV AWD ");
newcar.forValue("Mazda").forValue("Tribute").addOptions("i Grand Touring 4dr SUV ","i Grand Touring 4dr SUV AWD ","i Sport 4dr SUV ","i Sport 4dr SUV AWD ","i Touring 4dr SUV ","i Touring 4dr SUV AWD ","s Grand Touring 4dr SUV ","s Grand Touring 4dr SUV AWD ","s Sport 4dr SUV ","s Sport 4dr SUV AWD ","s Touring 4dr SUV ","s Touring 4dr SUV AWD ");
newcar.forValue("Mclaren").forValue("MP4-12C").addOptions("2dr Coupe ");
newcar.forValue("Mercedes-Benz").forValue("C-Class").addOptions("C300 Luxury 4dr Sedan ","C300 Luxury 4MATIC 4dr Sedan AWD ","C300 Sport 4dr Sedan ","C300 Sport 4MATIC 4dr Sedan AWD ","C350 Sport 4dr Sedan ","C63 AMG 4dr Sedan ");
newcar.forValue("Mercedes-Benz").forValue("CL-Class").addOptions("CL550 4MATIC 2dr Coupe AWD ","CL600 2dr Coupe ","CL63 AMG 2dr Coupe ","CL65 AMG 2dr Coupe ");
newcar.forValue("Mercedes-Benz").forValue("CLK-Class").addOptions("CLK350 2dr Convertible ","CLK350 2dr Coupe ","CLK550 2dr Convertible ","CLK550 2dr Coupe ");
newcar.forValue("Mercedes-Benz").forValue("CLS-Class").addOptions("CLS550 4dr Sedan ","CLS63 AMG 4dr Sedan ");
newcar.forValue("Mercedes-Benz").forValue("E-Class").addOptions("E320 BlueTEC 4dr Sedan ","E350 2dr Coupe ","E350 4dr Sedan ","E350 4MATIC 4dr Sedan AWD ","E350 4MATIC 4dr Wagon AWD ","E550 2dr Coupe ","E550 4dr Sedan ","E550 4MATIC 4dr Sedan AWD ","E63 AMG 4dr Sedan ","E63 AMG 4dr Wagon ");
newcar.forValue("Mercedes-Benz").forValue("G-Class").addOptions("G55 AMG 4dr SUV 4WD ","G550 4dr SUV 4WD ");
newcar.forValue("Mercedes-Benz").forValue("GL-Class").addOptions("GL320 BlueTEC 4dr SUV AWD ","GL350 BlueTEC 4dr SUV AWD ","GL450 4dr SUV AWD ","GL450 4MATIC 4dr SUV AWD ","GL550 4dr SUV AWD ","GL550 4MATIC 4dr SUV AWD ");
newcar.forValue("Mercedes-Benz").forValue("GLK-Class").addOptions("GLK350 4dr SUV ","GLK350 4MATIC 4dr SUV AWD ");
newcar.forValue("Mercedes-Benz").forValue("M-Class").addOptions("ML320 BlueTEC 4dr SUV AWD ","ML350 4dr SUV ","ML350 4MATIC 4dr SUV AWD ","ML350 BlueTEC 4dr SUV AWD ","ML550 4dr SUV AWD ","ML550 4MATIC 4dr SUV AWD ","ML63 AMG 4dr SUV AWD ");
newcar.forValue("Mercedes-Benz").forValue("R-Class").addOptions("R320 BlueTEC 4dr Wagon AWD ","R350 4MATIC 4dr Wagon AWD ","R350 BlueTEC 4dr Wagon AWD ");
newcar.forValue("Mercedes-Benz").forValue("S-Class").addOptions("S400 Hybrid 4dr Sedan ","S550 4dr Sedan ","S550 4MATIC 4dr Sedan AWD ","S600 4dr Sedan ","S63 AMG 4dr Sedan ","S65 AMG 4dr Sedan ");
newcar.forValue("Mercedes-Benz").forValue("SL-Class").addOptions("SL550 2dr Convertible ","SL600 2dr Convertible ","SL63 AMG 2dr Convertible ","SL65 AMG 2dr Convertible ","SL65 AMG Black Series 2dr Coupe ");
newcar.forValue("Mercedes-Benz").forValue("SLK-Class").addOptions("SLK300 2dr Convertible ","SLK350 2dr Convertible ","SLK55 AMG 2dr Convertible ");
newcar.forValue("Mercedes-Benz").forValue("SLR McLaren").addOptions("2dr Convertible ");
newcar.forValue("Mercedes-Benz").forValue("SLS AMG").addOptions("2dr Coupe ");
newcar.forValue("Mercedes-Benz").forValue("Sprinter").addOptions("2500 144 WB 3dr Van ");
newcar.forValue("Mercury").forValue("Grand Marquis").addOptions("LS 4dr Sedan ");
newcar.forValue("Mercury").forValue("Mariner Hybrid").addOptions("4dr SUV ","4dr SUV AWD ");
newcar.forValue("Mercury").forValue("Mariner").addOptions("I4 4dr SUV ","I4 4dr SUV AWD ","Premier I4 4dr SUV ","Premier I4 4dr SUV AWD ","Premier V6 4dr SUV ","Premier V6 4dr SUV AWD ","V6 4dr SUV ","V6 4dr SUV AWD ");
newcar.forValue("Mercury").forValue("Milan Hybrid").addOptions("4dr Sedan ");
newcar.forValue("Mercury").forValue("Milan").addOptions("I-4 4dr Sedan ","I-4 Premier 4dr Sedan ","V6 4dr Sedan ","V6 4dr Sedan AWD ","V6 Premier 4dr Sedan ","V6 Premier 4dr Sedan AWD ");
newcar.forValue("Mercury").forValue("Mountaineer").addOptions("4dr SUV ","4dr SUV AWD ","Premier 4dr SUV ","Premier 4dr SUV AWD ");
newcar.forValue("Mercury").forValue("Sable").addOptions("4dr Sedan ","4dr Sedan AWD ","Premier 4dr Sedan ","Premier 4dr Sedan AWD ");
newcar.forValue("Mini").forValue("Cooper Clubman").addOptions("3dr Hatchback ","John Cooper Works 3dr Hatchback ","S 3dr Hatchback ");
newcar.forValue("Mini").forValue("Cooper").addOptions("2dr Convertible ","2dr Hatchback ","John Cooper Works 2dr Convertible ","John Cooper Works 2dr Hatchback ","S 2dr Convertible ","S 2dr Hatchback ");
newcar.forValue("Mitsubishi").forValue("Eclipse Spyder").addOptions("GS 2dr Convertible ","GT 2dr Convertible ");
newcar.forValue("Mitsubishi").forValue("Eclipse").addOptions("GS 2dr Hatchback ","GS-Sport 2dr Hatchback ","GT 2dr Hatchback ");
newcar.forValue("Mitsubishi").forValue("Endeavor").addOptions("LS 4dr SUV ","SE 4dr SUV ","SE 4dr SUV AWD ");
newcar.forValue("Mitsubishi").forValue("Galant").addOptions("ES 4dr Sedan ","SE 4dr Sedan ");
newcar.forValue("Mitsubishi").forValue("Lancer Evolution").addOptions("GSR 4dr Sedan AWD ","MR 4dr Sedan AWD ","MR Touring 4dr Sedan AWD ");
newcar.forValue("Mitsubishi").forValue("Lancer Sportback").addOptions("GTS 4dr Hatchback ","Ralliart 4dr Hatchback AWD ");
newcar.forValue("Mitsubishi").forValue("Lancer").addOptions("DE 4dr Sedan ","ES 4dr Sedan ","ES-Sport 4dr Sedan ","GTS 4dr Sedan ","GTS 4dr Sedan ","Ralliart 4dr Sedan AWD ");
newcar.forValue("Mitsubishi").forValue("Outlander Sport").addOptions("4dr Hatchback AWD ");
newcar.forValue("Mitsubishi").forValue("Outlander").addOptions("ES 4dr SUV ","ES 4dr SUV AWD ","GT 4dr SUV AWD ","SE 4dr SUV ","SE 4dr SUV AWD ","XLS 4dr SUV ","XLS 4dr SUV AWD ");
newcar.forValue("Mitsubishi").forValue("Raider").addOptions("LS 4dr Double Cab 4WD SB ","LS 4dr Double Cab SB ","LS 4dr Extended Cab SB ");
newcar.forValue("Nissan").forValue("350Z").addOptions("Enthusiast 2dr Convertible ","Grand Touring 2dr Convertible ","Touring 2dr Convertible ");
newcar.forValue("Nissan").forValue("370Z").addOptions("2dr Convertible ","2dr Coupe ","NISMO 2dr Coupe ","Touring 2dr Convertible ","Touring 2dr Coupe ");
newcar.forValue("Nissan").forValue("Altima Hybrid").addOptions("4dr Sedan ");
newcar.forValue("Nissan").forValue("Altima").addOptions("2.5 4dr Sedan ","2.5 S 2dr Coupe ","2.5 S 4dr Sedan ","3.5 SE 2dr Coupe ","3.5 SE 4dr Sedan ","3.5 SL 4dr Sedan ","3.5 SR 2dr Coupe ","3.5 SR 4dr Sedan ");
newcar.forValue("Nissan").forValue("Armada").addOptions("LE 4dr SUV ","LE 4dr SUV 4WD ","LE FFV 4dr SUV ","LE FFV 4dr SUV 4WD ","Platinum 4dr SUV ","Platinum 4dr SUV 4WD ","SE 4dr SUV ","SE 4dr SUV 4WD ","SE FFV 4dr SUV ","SE FFV 4dr SUV 4WD ","Titanium 4dr SUV ","Titanium 4dr SUV 4WD ");
newcar.forValue("Nissan").forValue("Cube").addOptions("1.8 Base 4dr Wagon ","1.8 Krom 4dr Wagon ","1.8 S 4dr Wagon ","1.8 SL 4dr Wagon ");
newcar.forValue("Nissan").forValue("Frontier").addOptions("LE 4dr Crew Cab 4WD 5.0 ft. SB ","LE 4dr Crew Cab 4WD 6.1 ft. SB ","LE 4dr Crew Cab 5.0 ft. SB ","LE 4dr Crew Cab 6.1 ft. SB ","LE 4dr King Cab 4WD 6.1 ft. SB ","LE 4dr King Cab 6.1 ft. SB ","PRO-4X 4dr Crew Cab 4WD 5.0 ft. SB ","PRO-4X 4dr Crew Cab 5.0 ft. SB ","PRO-4X 4dr King Cab 4WD 6.1 ft. SB ","PRO-4X 4dr King Cab 6.1 ft. SB ","SE 4dr Crew Cab 4WD 5.0 ft. SB ","SE 4dr Crew Cab 4WD 6.1 ft. SB ","SE 4dr Crew Cab 5.0 ft. SB ","SE 4dr Crew Cab 6.1 ft. SB ","SE 4dr King Cab 4WD 6.1 ft. SB ","SE 4dr King Cab 6.1 ft. SB ","XE 4dr King Cab 6.1 ft. SB ");
newcar.forValue("Nissan").forValue("GT-R").addOptions("2dr Coupe AWD ","Premium 2dr Coupe AWD ");
newcar.forValue("Nissan").forValue("Maxima").addOptions("3.5 S 4dr Sedan ","3.5 SV 4dr Sedan ");
newcar.forValue("Nissan").forValue("Murano").addOptions("LE 4dr SUV ","LE 4dr SUV AWD ","S 4dr SUV ","S 4dr SUV AWD ","SL 4dr SUV ","SL 4dr SUV AWD ");
newcar.forValue("Nissan").forValue("Pathfinder").addOptions("LE 4dr SUV ","LE 4dr SUV 4WD ","LE-V8 4dr SUV 4WD ","S 4dr SUV ","S 4dr SUV 4WD ","S FE+ 4dr SUV ","SE 4dr SUV ","SE 4dr SUV 4WD ","SE Off-Road 4dr SUV 4WD ");
newcar.forValue("Nissan").forValue("Quest").addOptions("3.5 4dr Minivan ","3.5 S 4dr Minivan ","3.5 SE 4dr Minivan ","3.5 SL 4dr Minivan ");
newcar.forValue("Nissan").forValue("Rogue").addOptions("S 4dr SUV ","S 4dr SUV AWD ","SL 4dr SUV ","SL 4dr SUV AWD ");
newcar.forValue("Nissan").forValue("Sentra").addOptions("2.0 4dr Sedan ","2.0 4dr Sedan ","2.0 S 4dr Sedan ","2.0 S 4dr Sedan ","2.0 SL 4dr Sedan ","2.0 SL 4dr Sedan ","2.0 SR 4dr Sedan ","FE+ 2.0 4dr Sedan ","FE+ 2.0 S 4dr Sedan ","FE+ 2.0 SL 4dr Sedan ","FE+ 2.0 SR 4dr Sedan ","SE-R 4dr Sedan ","SE-R Spec V 4dr Sedan ");
newcar.forValue("Nissan").forValue("Titan").addOptions("LE 4dr Crew Cab 4WD LB ","LE 4dr Crew Cab 4WD SB ","LE 4dr Crew Cab LB ","LE 4dr Crew Cab SB ","LE 4dr King Cab 4WD SB ","LE 4dr King Cab SB ","LE FFV 4dr Crew Cab 4WD LB ","LE FFV 4dr Crew Cab 4WD SB ","LE FFV 4dr Crew Cab LB ","LE FFV 4dr Crew Cab SB ","LE FFV 4dr King Cab 4WD SB ","LE FFV 4dr King Cab SB ","PRO-4X 4dr Crew Cab 4WD LB ","PRO-4X 4dr Crew Cab 4WD SB ","PRO-4X 4dr King Cab 4WD SB ","PRO-4X FFV 4dr Crew Cab 4WD LB ","PRO-4X FFV 4dr Crew Cab 4WD SB ","PRO-4X FFV 4dr King Cab 4WD SB ","SE 4dr Crew Cab 4WD LB ","SE 4dr Crew Cab 4WD SB ","SE 4dr Crew Cab LB ","SE 4dr Crew Cab SB ","SE 4dr King Cab 4WD LB ","SE 4dr King Cab 4WD SB ","SE 4dr King Cab LB ","SE 4dr King Cab SB ","SE FFV 4dr Crew Cab 4WD LB ","SE FFV 4dr Crew Cab 4WD SB ","SE FFV 4dr Crew Cab LB ","SE FFV 4dr Crew Cab SB ","SE FFV 4dr King Cab 4WD LB ","SE FFV 4dr King Cab 4WD SB ","SE FFV 4dr King Cab LB ","SE FFV 4dr King Cab SB ","XE 4dr Crew Cab 4WD LB ","XE 4dr Crew Cab 4WD SB ","XE 4dr Crew Cab LB ","XE 4dr Crew Cab SB ","XE 4dr King Cab 4WD LB ","XE 4dr King Cab 4WD SB ","XE 4dr King Cab LB ","XE 4dr King Cab SB ","XE FFV 4dr Crew Cab 4WD LB ","XE FFV 4dr Crew Cab 4WD SB ","XE FFV 4dr Crew Cab LB ","XE FFV 4dr Crew Cab SB ","XE FFV 4dr King Cab 4WD LB ","XE FFV 4dr King Cab 4WD SB ","XE FFV 4dr King Cab LB ","XE FFV 4dr King Cab SB ");
newcar.forValue("Nissan").forValue("Versa").addOptions("1.6 4dr Sedan ","1.6 Base 4dr Sedan ","1.8 S 4dr Hatchback ","1.8 S 4dr Sedan ","1.8 SL 4dr Hatchback ","1.8 SL 4dr Sedan ","FE+ 1.8 SL 4dr Hatchback ");
newcar.forValue("Nissan").forValue("Xterra").addOptions("Off-Road 4dr SUV 4WD ","S 4dr SUV ","S 4dr SUV 4WD ","SE 4dr SUV ","SE 4dr SUV 4WD ","X 4dr SUV ","X 4dr SUV 4WD ");
newcar.forValue("Pontiac").forValue("G3").addOptions("4dr Hatchback ");
newcar.forValue("Pontiac").forValue("G5").addOptions("2dr Coupe ","GT 2dr Coupe ");
newcar.forValue("Pontiac").forValue("G6").addOptions("4dr Sedan ","GT 2dr Convertible ","GT 2dr Coupe ","GT 4dr Sedan ","GXP 2dr Coupe ","GXP 4dr Sedan ","New 2dr Coupe ","New 4dr Sedan ","New GT 2dr Convertible ","New GT 2dr Coupe ","New GT 4dr Sedan ","New GXP 2dr Coupe ","New GXP 4dr Sedan ","New Value Leader 4dr Sedan ");
newcar.forValue("Pontiac").forValue("G8").addOptions("4dr Sedan ","GT 4dr Sedan ","GXP 4dr Sedan ");
newcar.forValue("Pontiac").forValue("Solstice").addOptions("2dr Convertible ","2dr Coupe ","GXP 2dr Convertible ","GXP 2dr Coupe ","Street Edition 2dr Convertible ");
newcar.forValue("Pontiac").forValue("Torrent").addOptions("4dr SUV ","4dr SUV AWD ","GXP 4dr SUV ","GXP 4dr SUV AWD ");
newcar.forValue("Pontiac").forValue("Vibe").addOptions("4dr Hatchback ","4dr Hatchback AWD ","GT 4dr Hatchback ");
newcar.forValue("Porsche").forValue("911").addOptions("Carrera 2dr Convertible ","Carrera 2dr Coupe ","Carrera 4 2dr Convertible AWD ","Carrera 4 2dr Coupe AWD ","Carrera 4S 2dr Convertible AWD ","Carrera 4S 2dr Coupe AWD ","Carrera S 2dr Convertible ","Carrera S 2dr Coupe ","GT3 2dr Coupe ","GT3 RS 2dr Coupe ","Targa 4 2dr Coupe AWD ","Targa 4S 2dr Coupe AWD ","Turbo 2dr Convertible AWD ","Turbo 2dr Coupe AWD ");
newcar.forValue("Porsche").forValue("Boxster").addOptions("2dr Convertible ","S 2dr Convertible ");
newcar.forValue("Porsche").forValue("Cayenne").addOptions("4dr SUV AWD ","GTS 4dr SUV AWD ","GTS Tiptronic 4dr SUV AWD ","S 4dr SUV AWD ","Tiptronic 4dr SUV AWD ","Turbo 4dr SUV AWD ","Turbo S 4dr SUV AWD ");
newcar.forValue("Porsche").forValue("Cayman").addOptions("2dr Coupe ","S 2dr Coupe ");
newcar.forValue("Porsche").forValue("Panamera").addOptions("4S 4dr Sedan AWD ","S 4dr Sedan ","Turbo 4dr Sedan AWD ");
newcar.forValue("Rolls-Royce").forValue("Phantom Coupe").addOptions("2dr Coupe ");
newcar.forValue("Rolls-Royce").forValue("Phantom Drophead Coupe").addOptions("2dr Convertible ");
newcar.forValue("Rolls-Royce").forValue("Phantom").addOptions("4dr Sedan ","EWB 4dr Sedan ");
newcar.forValue("Saab").forValue("9-3").addOptions("Aero 2dr Convertible ","Aero 4dr Sedan AWD ","Aero 4dr Wagon AWD ","Comfort 2dr Convertible ","Comfort 4dr Sedan ","Comfort 4dr Wagon ","Sport 2dr Convertible ","Sport 4dr Sedan ","Sport 4dr Wagon ","Touring 2dr Convertible ","Touring 4dr Sedan ","Touring 4dr Wagon ","XWD 4dr Sedan AWD ","XWD 4dr Wagon AWD ");
newcar.forValue("Saab").forValue("9-5").addOptions("4dr Sedan ","4dr Wagon ","Aero 4dr Sedan ","Aero 4dr Wagon ","Griffin 4dr Sedan ","Griffin 4dr Wagon ");
newcar.forValue("Saab").forValue("9-7X").addOptions("4.2i 4dr SUV AWD ","5.3i 4dr SUV AWD ","Aero 4dr SUV AWD ");
newcar.forValue("Saturn").forValue("Astra").addOptions("XE 4dr Hatchback ","XR 2dr Hatchback ","XR 4dr Hatchback ");
newcar.forValue("Saturn").forValue("Aura Hybrid").addOptions("4dr Sedan ");
newcar.forValue("Saturn").forValue("Aura").addOptions("XE 4dr Sedan ","XR 4dr Sedan ");
newcar.forValue("Saturn").forValue("Outlook").addOptions("XE 4dr SUV ","XE 4dr SUV AWD ","XR 4dr SUV ","XR 4dr SUV AWD ");
newcar.forValue("Saturn").forValue("Sky").addOptions("2dr Convertible ","Hydro Blue Ltd Ed 2dr Convertible ","Red Line 2dr Convertible ","Red Line Hydro Blue Ltd Ed 2dr Convertible ","Red Line Ruby Red SE 2dr Convertible ","Ruby Red SE 2dr Convertible ");
newcar.forValue("Saturn").forValue("VUE Hybrid").addOptions("4dr SUV ");
newcar.forValue("Saturn").forValue("VUE").addOptions("Red Line 4dr SUV ","Red Line 4dr SUV AWD ","XE 4dr SUV ","XE 4dr SUV AWD ","XR 4dr SUV ","XR 4dr SUV AWD ");
newcar.forValue("Scion").forValue("iQ").addOptions("2dr Hatchback ");
newcar.forValue("Scion").forValue("tC").addOptions("2dr Hatchback ","Spec 2dr Hatchback ");
newcar.forValue("Scion").forValue("xB").addOptions("4dr Wagon ");
newcar.forValue("Scion").forValue("xD").addOptions("4dr Hatchback ");
newcar.forValue("Smart").forValue("fortwo").addOptions("BRABUS cabriolet 2dr Convertible ","BRABUS coupe 2dr Hatchback ","passion cabriolet 2dr Convertible ","passion coupe 2dr Hatchback ","pure 2dr Hatchback ");
newcar.forValue("Spyker").forValue("C8").addOptions("Aileron 2dr Coupe ","Laviolette 2dr Coupe ","Spyder 2dr Convertible ");
newcar.forValue("Subaru").forValue("Forester").addOptions("2.5X 4dr SUV AWD ","2.5X 4dr SUV AWD w/All Weather Premium Pkg VDC","2.5X 4dr SUV AWD w/Premium PkgVDC ","2.5X 4dr SUV AWD w/VDC ","2.5X L.L.Bean Edition 4dr SUV AWD w/VDC ","2.5X L.L.Bean Edition 4dr SUV AWD w/VDC Nav ","2.5X Limited 4dr SUV AWD ","2.5X Limited 4dr SUV AWD w/VDC ","2.5X Limited 4dr SUV AWD w/VDC Nav ","2.5X Premium 4dr SUV AWD ","2.5XT 4dr SUV AWD w/VDC ","2.5XT Limited 4dr SUV AWD ","2.5XT Limited 4dr SUV AWD w/VDC ","2.5XT Limited 4dr SUV AWD w/VDC Nav ","2.5XT Premium 4dr SUV AWD ");
newcar.forValue("Subaru").forValue("Impreza").addOptions("2.5GT 4dr Hatchback AWD ","2.5GT 4dr Sedan AWD ","2.5i 4dr Hatchback AWD ","2.5i 4dr Hatchback AWD w/Premium Package ","2.5i 4dr Hatchback AWD w/Sat Radio Nav ","2.5i 4dr Sedan AWD ","2.5i 4dr Sedan AWD w/Premium Package ","2.5i 4dr Sedan AWD w/Sat Radio Nav ","2.5i Premium 4dr Hatchback AWD ","2.5i Premium 4dr Hatchback AWD Premium ","2.5i Premium 4dr Sedan AWD ","Outback Sport 4dr Hatchback AWD ","WRX 4dr Hatchback AWD ","WRX 4dr Hatchback AWD w/Premium Package ","WRX 4dr Hatchback AWD w/Sat Radio Nav ","WRX 4dr Sedan AWD ","WRX 4dr Sedan AWD w/Premium Package ","WRX 4dr Sedan AWD w/Sat Radio Nav ","WRX Premium 4dr Hatchback AWD ","WRX Premium 4dr Sedan AWD ","WRX STI 4dr Hatchback AWD ","WRX STI 4dr Hatchback AWD w/Gold BBS ","WRX STI 4dr Hatchback AWD w/Nav Gold BBS ","WRX STI 4dr Hatchback AWD w/Nav Silver BBS ","WRX STI 4dr Hatchback AWD w/Silver BBS ");
newcar.forValue("Subaru").forValue("Legacy").addOptions("2.5GT Limited 4dr Sedan AWD ","2.5GT Limited 4dr Sedan AWD w/Nav ","2.5GT Premium 4dr Sedan AWD ","2.5GT spec.B 4dr Sedan AWD w/Nav ","2.5i 4dr Sedan AWD ","2.5i Limited 4dr Sedan AWD ","2.5i Premium 4dr Sedan AWD ","2.5i Special Edition 4dr Sedan AWD ","3.0R 4dr Sedan AWD ","3.0R Limited 4dr Sedan AWD ","3.0R Limited 4dr Sedan AWD w/Nav ","3.6R 4dr Sedan AWD ","3.6R Limited 4dr Sedan AWD ","3.6R Premium 4dr Sedan AWD ");
newcar.forValue("Subaru").forValue("Outback").addOptions("2.5i 4dr Wagon AWD ","2.5i Limited 4dr Wagon AWD ","2.5i Limited 4dr Wagon AWD w/Nav ","2.5i Premium 4dr Wagon AWD ","2.5i Special Edition 4dr Wagon AWD ","2.5XT Limited 4dr Wagon AWD ","2.5XT Limited 4dr Wagon AWD w/Nav ","3.0R Limited 4dr Wagon AWD ","3.0R Limited 4dr Wagon AWD w/Nav ","3.6R 4dr Wagon AWD ","3.6R Limited 4dr Wagon AWD ","3.6R Premium 4dr Wagon AWD ");
newcar.forValue("Subaru").forValue("Tribeca").addOptions("3.6R Limited 4dr SUV AWD ","3.6R Premium 4dr SUV AWD ","3.6R Touring 4dr SUV AWD ","5-Pass 4dr SUV AWD ","7-Pass 4dr SUV AWD ","Limited 5-Pass 4dr SUV AWD ","Limited 5-Pass 4dr SUV AWD w/Nav ","Limited 7-Pass 4dr SUV AWD ","Limited 7-Pass 4dr SUV AWD w/Nav ","Limited 7-Pass 4dr SUV AWD w/Rear Seat DVD Nav ","Special Edition 5-Pass 4dr SUV AWD ","Special Edition 7-Pass 4dr SUV AWD ");
newcar.forValue("Suzuki").forValue("Equator").addOptions("4dr Crew Cab 5 ft. SB ","4dr Extended Cab 6 ft. SB ","Comfort 4dr Extended Cab 6 ft. SB ","Premium 4dr Extended Cab 6 ft. SB ","RMZ-4 4dr Crew Cab 4WD 5 ft. SB ","RMZ-4 Sport 4dr Crew 4WD 5 ft. SB ","Sport 4dr Crew Cab 4WD 6 ft. SB ","Sport 4dr Crew Cab 5 ft. SB ","Sport 4dr Crew Cab 6 ft. SB ","Sport 4dr Extended Cab 4WD 6 ft. SB ","Sport 4dr Extended Cab 6 ft. SB ");
newcar.forValue("Suzuki").forValue("Grand Vitara").addOptions("4dr SUV ","Luxury 4dr SUV ","Luxury 4dr SUV 4WD ","Premium 4dr SUV ","Premium 4dr SUV 4WD ","XSport 4dr SUV ","XSport 4dr SUV 4WD ");
newcar.forValue("Suzuki").forValue("Kizashi").addOptions("4dr Sedan AWD ");
newcar.forValue("Suzuki").forValue("SX4").addOptions("4dr Sedan ","4dr Wagon AWD ","4dr Wagon AWD w/Technology Pkg Navigation ","4dr Wagon AWD w/Touring Pkg Navigation ","4dr Wagon w/Navigation ","4dr Wagon w/Technology Pkg Navigation ","LE 4dr Sedan ","LE 4dr Sedan w/Popular Pkg ","Sport 4dr Sedan w/Navigation ","Sport 4dr Sedan w/Technology Pkg Navigation ","Sport 4dr Sedan w/Touring Pkg Navigation ");
newcar.forValue("Suzuki").forValue("XL7").addOptions("Limited 4dr SUV AWD w/Navigation ","Limited 4dr SUV AWD w/Navigation DVD ","Limited 4dr SUV w/Navigation ","Limited 4dr SUV w/Navigation DVD ","Luxury 4dr SUV ","Luxury 4dr SUV AWD ","Premium 4dr SUV ","Premium 4dr SUV AWD ");
newcar.forValue("Tesla").forValue("Roadster").addOptions("2dr Convertible ","Sport 2dr Convertible ");
newcar.forValue("Toyota").forValue("4Runner").addOptions("Limited 4dr SUV ","Limited 4dr SUV 4WD ","Sport Edition 4dr SUV ","Sport Edition 4dr SUV 4WD ","SR5 4dr SUV ","SR5 4dr SUV 4WD ","Trail 4dr SUV 4WD ");
newcar.forValue("Toyota").forValue("Avalon").addOptions("Limited 4dr Sedan ","XL 4dr Sedan ","XLS 4dr Sedan ");
newcar.forValue("Toyota").forValue("Camry Hybrid").addOptions("4dr Sedan ");
newcar.forValue("Toyota").forValue("Camry").addOptions("4dr Sedan ","LE 4dr Sedan ","SE 4dr Sedan ","XLE 4dr Sedan ");
newcar.forValue("Toyota").forValue("Corolla").addOptions("4dr Sedan ","LE 4dr Sedan ","S 4dr Sedan ","XLE 4dr Sedan ","XRS 4dr Sedan ");
newcar.forValue("Toyota").forValue("FJ Cruiser").addOptions("4dr SUV ","4dr SUV 4WD ");
newcar.forValue("Toyota").forValue("Highlander Hybrid").addOptions("4dr SUV AWD ","Limited 4dr SUV AWD w/3rd Row ");
newcar.forValue("Toyota").forValue("Highlander").addOptions("4dr SUV ","4dr SUV AWD ","Limited 4dr SUV ","Limited 4dr SUV AWD ","Sport 4dr SUV ","Sport 4dr SUV AWD ");
newcar.forValue("Toyota").forValue("Land Cruiser").addOptions("4dr SUV 4WD ");
newcar.forValue("Toyota").forValue("Matrix").addOptions("4dr Hatchback ","S 4dr Hatchback ","S 4dr Hatchback AWD ","XRS 4dr Hatchback ");
newcar.forValue("Toyota").forValue("Prius").addOptions("4dr Hatchback ","II 4dr Hatchback ","III 4dr Hatchback ","IV 4dr Hatchback ","Standard 4dr Hatchback ","Touring 4dr Hatchback ","V 4dr Hatchback ");
newcar.forValue("Toyota").forValue("RAV4").addOptions("4dr SUV ","4dr SUV 4WD ","Limited 4dr SUV ","Limited 4dr SUV 4WD ","Sport 4dr SUV ","Sport 4dr SUV 4WD ");
newcar.forValue("Toyota").forValue("Sequoia").addOptions("Limited 4dr SUV ","Limited 4dr SUV 4WD ","Limited FFV 4dr SUV 4WD ","Platinum 4dr SUV ","Platinum 4dr SUV 4WD ","Platinum FFV 4dr SUV 4WD ","SR5 4dr SUV ","SR5 4dr SUV 4WD ","SR5 FFV 4dr SUV 4WD ");
newcar.forValue("Toyota").forValue("Sienna").addOptions("CE 7-Passenger 4dr Minivan ","CE 8-Passenger 4dr Minivan ","LE 7-Passenger 4dr Minivan ","LE 7-Passenger 4dr Minivan AWD ","LE 8-Passenger 4dr Minivan ","Limited 7-Passenger 4dr Minivan ","Limited 7-Passenger 4dr Minivan AWD ","XLE 7-Passenger 4dr Minivan ","XLE 7-Passenger 4dr Minivan AWD ");
newcar.forValue("Toyota").forValue("Tacoma").addOptions("2dr Regular Cab 4WD 6.1 ft. SB ","2dr Regular Cab 6.1 ft. SB ","4dr Access Cab 4WD 6.1 ft. SB ","4dr Access Cab 6.1 ft. SB ","4dr Double Cab 4WD 6.1 ft. SB ","PreRunner 2dr Regular Cab 6.1 ft. SB ","PreRunner 4dr Access Cab 6.1 ft. SB ","PreRunner V6 4dr Access Cab 6.1 ft. SB ","PreRunner V6 4dr Double Cab 5.0 ft. SB ","PreRunner V6 4dr Double Cab 6.1 ft. SB ","V6 4dr Access Cab 4WD 6.1 ft. SB ","V6 4dr Double Cab 4WD 5.0 ft. SB ","V6 4dr Double Cab 4WD 6.1 ft. SB ","X-Runner V6 4dr Access Cab 6.1 ft. SB ");
newcar.forValue("Toyota").forValue("Tundra").addOptions("Limited 4dr CrewMax Cab 4WD SB ","Limited 4dr CrewMax Cab SB ","Limited 4dr Double Cab 4WD SB ","Limited 4dr Double Cab SB ","Limited FFV 4dr CrewMax Cab 4WD SB ","Limited FFV 4dr Double Cab 4WD SB ","SR5 4dr CrewMax Cab 4WD SB ","SR5 4dr CrewMax Cab SB ","SR5 4dr Double Cab 4WD SB ","SR5 4dr Double Cab SB ","SR5 FFV 4dr CrewMax Cab 4WD SB ","SR5 FFV 4dr Double Cab 4WD SB ","Tundra Grade 2dr Regular Cab 4WD LB ","Tundra Grade 2dr Regular Cab 4WD SB ","Tundra Grade 2dr Regular Cab LB ","Tundra Grade 2dr Regular Cab SB ","Tundra Grade 4dr CrewMax Cab 4WD SB ","Tundra Grade 4dr CrewMax Cab SB ","Tundra Grade 4dr Double Cab 4WD LB ","Tundra Grade 4dr Double Cab 4WD SB ","Tundra Grade 4dr Double Cab LB ","Tundra Grade 4dr Double Cab SB ","Tundra Grade FFV 2dr Regular Cab 4WD LB ","Tundra Grade FFV 2dr Regular Cab 4WD SB ","Tundra Grade FFV 4dr CrewMax Cab 4WD SB ","Tundra Grade FFV 4dr Double Cab 4WD LB ","Tundra Grade FFV 4dr Double Cab 4WD SB ");
newcar.forValue("Toyota").forValue("Venza").addOptions("4dr Wagon ","4dr Wagon AWD ");
newcar.forValue("Toyota").forValue("Yaris").addOptions("2dr Hatchback ","4dr Hatchback ","4dr Sedan ","S 2dr Hatchback ","S 4dr Hatchback ","S 4dr Sedan ");
newcar.forValue("Volkswagen").forValue("CC").addOptions("Luxury 4dr Sedan ","Luxury 4dr Sedan ","Luxury PZEV 4dr Sedan ","Sport 4dr Sedan ","Sport 4dr Sedan ","Sport PZEV 4dr Sedan ","VR6 4Motion 4dr Sedan AWD ","VR6 Sport 4dr Sedan ");
newcar.forValue("Volkswagen").forValue("Eos").addOptions("Komfort 2dr Convertible ","Komfort SULEV 2dr Convertible ","Lux 2dr Convertible ","Lux SULEV 2dr Convertible ");
newcar.forValue("Volkswagen").forValue("GLI").addOptions("4dr Sedan ","PZEV 4dr Sedan ");
newcar.forValue("Volkswagen").forValue("Golf").addOptions("2dr Hatchback ","4dr Hatchback ","PZEV 2dr Hatchback ","PZEV 4dr Hatchback ","TDI 2dr Hatchback ","TDI 4dr Hatchback ");
newcar.forValue("Volkswagen").forValue("GTI").addOptions("2dr Hatchback ","4dr Hatchback ","PZEV 2dr Hatchback ","PZEV 4dr Hatchback ");
newcar.forValue("Volkswagen").forValue("Jetta").addOptions("4dr Sedan ","S 4dr Sedan ","S PZEV 4dr Sedan ","SE 4dr Sedan ","SE PZEV 4dr Sedan ","SEL 4dr Sedan ","SEL PZEV 4dr Sedan ","SportWagen S 4dr Wagon ","SportWagen S PZEV 4dr Wagon ","SportWagen SE 4dr Wagon ","SportWagen SE PZEV 4dr Wagon ","SportWagen SEL 4dr Wagon ","SportWagen SEL PZEV 4dr Wagon ","SportWagen TDI 4dr Wagon ","TDI 4dr Sedan ","TDI Loyal Edition 4dr Sedan ","Wolfsburg Edition 4dr Sedan ","Wolfsburg Edition PZEV 4dr Sedan ");
newcar.forValue("Volkswagen").forValue("New Beetle").addOptions("2.5L 2dr Convertible ","2.5L 2dr Hatchback ","2.5L Blush Edition 2dr Convertible ","2.5L Blush Edition PZEV 2dr Convertible ","2.5L PZEV 2dr Convertible ","2.5L PZEV 2dr Hatchback ");
newcar.forValue("Volkswagen").forValue("Passat").addOptions("Komfort 4dr Sedan ","Komfort 4dr Wagon ","Komfort PZEV 4dr Sedan ","Komfort PZEV 4dr Wagon ","Komfort SULEV 4dr Sedan ","Komfort SULEV 4dr Wagon ");
newcar.forValue("Volkswagen").forValue("Polo").addOptions("4dr Hatchback ");
newcar.forValue("Volkswagen").forValue("Rabbit").addOptions("S 2dr Hatchback ","S 4dr Hatchback ","S PZEV 2dr Hatchback ","S PZEV 4dr Hatchback ");
newcar.forValue("Volkswagen").forValue("Routan").addOptions("S 4dr Minivan ","S 4dr Minivan w/Rear Seat Entertainment ","SE 4dr Minivan ","SE 4dr Minivan w/Rear Entertainment ","SE 4dr Minivan w/Rear Entertainment Nav ","SE 4dr Minivan w/Rear Seat Entertainment ","SEL 4dr Minivan ","SEL 4dr Minivan w/Navigation ","SEL 4dr Minivan w/Rear Entertainment Nav ","SEL 4dr Minivan w/Rear Seat Entertainment ","SEL CARB 4dr Minivan ","SEL CARB 4dr Minivan w/Navigation ","SEL CARB 4dr Minivan w/Rear Entertainment Nav","SEL CARB 4dr Minivan w/Rear Seat Entertainment","SEL Premium 4dr Minivan ","SEL Premium CARB 4dr Minivan ");
newcar.forValue("Volkswagen").forValue("Tiguan").addOptions("S 4dr SUV ","S 4Motion 4dr SUV AWD ","SE 4dr SUV ","SE 4dr SUV w/Leather ","SE 4Motion 4dr SUV AWD ","SE 4Motion 4dr SUV AWD w/Leather ","SEL 4dr SUV ","SEL 4Motion 4dr SUV AWD ");
newcar.forValue("Volkswagen").forValue("Touareg 2").addOptions("V6 TDI 4dr SUV AWD ","V8 FSI 4dr SUV AWD ","VR6 FSI 4dr SUV AWD ");
newcar.forValue("Volkswagen").forValue("Touareg").addOptions("V6 TDI 4dr SUV AWD ","VR6 FSI 4dr SUV AWD ");
newcar.forValue("Volvo").forValue("C30").addOptions("2dr Hatchback ","R-Design 2dr Hatchback ","T5 2dr Hatchback ","T5 R-Design 2dr Hatchback ");
newcar.forValue("Volvo").forValue("C70").addOptions("2dr Convertible ","T5 2dr Convertible ");
newcar.forValue("Volvo").forValue("S40").addOptions("2.4i 4dr Sedan ","T5 R-Design 4dr Sedan ","T5 R-Design 4dr Sedan AWD ");
newcar.forValue("Volvo").forValue("S60").addOptions("2.5T 4dr Sedan ","2.5T 4dr Sedan AWD ","2.5T SE 4dr Sedan ","2.5T SE 4dr Sedan AWD ","4dr Sedan AWD ","T5 4dr Sedan ");
newcar.forValue("Volvo").forValue("S80").addOptions("3.2 4dr Sedan ","T6 4dr Sedan AWD ","V8 4dr Sedan AWD ");
newcar.forValue("Volvo").forValue("V50").addOptions("2.4i 4dr Wagon ","T5 R-Design 4dr Wagon AWD ");
newcar.forValue("Volvo").forValue("V70").addOptions("3.2 4dr Wagon ","3.2 R-Design 4dr Wagon ");
newcar.forValue("Volvo").forValue("XC60").addOptions("3.2 4dr SUV ","T6 4dr SUV AWD ");
newcar.forValue("Volvo").forValue("XC70").addOptions("3.2 4dr Wagon AWD ","T6 4dr Wagon AWD ");
newcar.forValue("Volvo").forValue("XC90").addOptions("3.2 4dr SUV ","3.2 R-Design 4dr SUV ","New 3.2 4dr SUV ","V8 4dr SUV AWD ","V8 R-Design 4dr SUV AWD ");


/*
newcar.forValue("Acura").addOptions("TSX","TL","RL","MDX","RDX");
newcar.forValue("Acura").forValue("TSX").addOptions("Base","Tech Package");
newcar.forValue("Acura").forValue("TL").addOptions("Base", "AWD");
newcar.forValue("BMW").addOptions("1 Series","3 Series","5 Series","7 Series");
newcar.forValue("BMW").forValue("1 Series").addOptions("125i Coupe","125i Sedan");
newcar.forValue("BMW").forValue("3 Series").addOptions("325i", "335ci");
*/
// Init call to setup lists after page load. One call to this function sets up all lists.
function initDynamicOptionLists() {
	// init each DynamicOptionList object
	for (var i=0; i<dynamicOptionListObjects.length; i++) {
		var dol = dynamicOptionListObjects[i];

		// Find the form associated with this list
		if (dol.formName!=null) { 
			dol.form = document.forms[dol.formName];
		}
		else if (dol.formIndex!=null) {
			dol.form = document.forms[dol.formIndex];
		}
		else {
			// Form wasn't set manually, so go find it!
			// Search for the first form element name in the lists
			var name = dol.fieldNames[0][0];
			for (var f=0; f<document.forms.length; f++) {
				if (typeof(document.forms[f][name])!="undefined") {
					dol.form = document.forms[f];
					break;
				}
			}
			if (dol.form==null) {
				alert("ERROR: Couldn't find form element "+name+" in any form on the page! Init aborted"); return;
			}
		}

		// Form is found, now set the onchange attributes of each dependent select box
		for (var j=0; j<dol.fieldNames.length; j++) {
			// For each set of field names...
			for (var k=0; k<dol.fieldNames[j].length-1; k++) {
				// For each field in the set...
				var selObj = dol.form[dol.fieldNames[j][k]];
				if (typeof(selObj)=="undefined") { alert("Select box named "+dol.fieldNames[j][k]+" could not be found in the form. Init aborted"); return; }
				// Map the HTML options in the first select into the options we created
				if (k==0) {
					if (selObj.options!=null) {
						for (l=0; l<selObj.options.length; l++) {
							var sopt = selObj.options[l];
							var m = dol.findMatchingOptionInArray(dol.options,sopt.text,sopt.value,false);
							if (m!=null) {
								var reselectForNN6 = sopt.selected;
								var m2 = new Option(sopt.text, sopt.value, sopt.defaultSelected, sopt.selected);
								m2.selected = sopt.selected; // For some reason I need to do this to make NN4 happy
								m2.defaultSelected = sopt.defaultSelected;
								m2.DOLOption = m;
								selObj.options[l] = m2;
								selObj.options[l].selected = reselectForNN6; // Reselect this option for NN6 to be happy. Yuck.
							}
						}
					}
				}
				if (selObj.onchange==null) {
					// We only modify the onChange attribute if it's empty! Otherwise do it yourself in your source!
					selObj.onchange = new Function("dynamicOptionListObjects["+dol.index+"].change(this)");
				}
			}
		}
	}
	// Set the preselectd options on page load 
	resetDynamicOptionLists();
}

// This function populates lists with the preselected values. 
// It's pulled out into a separate function so it can be hooked into a 'reset' button on a form
// Optionally passed a form object which should be the only form reset
function resetDynamicOptionLists(theform) {
	// reset each DynamicOptionList object
	for (var i=0; i<dynamicOptionListObjects.length; i++) {
		var dol = dynamicOptionListObjects[i];
		if (typeof(theform)=="undefined" || theform==null || theform==dol.form) {
			for (var j=0; j<dol.fieldNames.length; j++) {
				dol.change(dol.form[dol.fieldNames[j][0]],true); // Second argument says to use preselected values rather than default values
			}
		}
	}
}

// An object to represent an Option() but just for data-holding
function DOLOption(text,value,defaultSelected,selected) {
	this.text = text;
	this.value = value;
	this.defaultSelected = defaultSelected;
	this.selected = selected;
	this.options = new Array(); // To hold sub-options
	return this;
}

// DynamicOptionList CONSTRUCTOR
function DynamicOptionList() {
	this.form = null;// The form this list belongs to
	this.options = new Array();// Holds the options of dependent lists
	this.longestString = new Array();// Longest string that is currently a potential option (for Netscape)
	this.numberOfOptions = new Array();// The total number of options that might be displayed, to build dummy options (for Netscape)
	this.currentNode = null;// The current node that has been selected with forValue() or forText()
	this.currentField = null;// The current field that is selected to be used for setValue()
	this.currentNodeDepth = 0;// How far down the tree the currentNode is
	this.fieldNames = new Array();// Lists of dependent fields which use this object
	this.formIndex = null;// The index of the form to associate with this list
	this.formName = null;// The name of the form to associate with this list
	this.fieldListIndexes = new Object();// Hold the field lists index where fields exist
	this.fieldIndexes = new Object();// Hold the index within the list where fields exist
	this.selectFirstOption = true;// Whether or not to select the first option by default if no options are default or preselected, otherwise set the selectedIndex = -1
	this.numberOfOptions = new Array();// Store the max number of options for a given option list
	this.longestString = new Array();// Store the longest possible string 
	this.values = new Object(); // Will hold the preselected values for fields, by field name
	
	// Method mappings
	this.forValue = DOL_forValue;
	this.forText = DOL_forText;
	this.forField = DOL_forField;
	this.forX = DOL_forX;
	this.addOptions = DOL_addOptions;
	this.addOptionsTextValue = DOL_addOptionsTextValue;
	this.setDefaultOptions = DOL_setDefaultOptions;
	this.setValues = DOL_setValues;
	this.setValue = DOL_setValues;
	this.setFormIndex = DOL_setFormIndex;
	this.setFormName = DOL_setFormName;
	this.printOptions = DOL_printOptions;
	this.addDependentFields = DOL_addDependentFields;
	this.change = DOL_change;
	this.child = DOL_child;
	this.selectChildOptions = DOL_selectChildOptions;
	this.populateChild = DOL_populateChild;
	this.change = DOL_change;
	this.addNewOptionToList = DOL_addNewOptionToList;
	this.findMatchingOptionInArray = DOL_findMatchingOptionInArray;

	// Optionally pass in the dependent field names
	if (arguments.length > 0) {
		// Process arguments and add dependency groups
		for (var i=0; i<arguments.length; i++) {
			this.fieldListIndexes[arguments[i].toString()] = this.fieldNames.length;
			this.fieldIndexes[arguments[i].toString()] = i;
		}
		this.fieldNames[this.fieldNames.length] = arguments;
	}
	
	// Add this object to the global array of dynamicoptionlist objects
	this.index = window.dynamicOptionListCount++;
	window["dynamicOptionListObjects"][this.index] = this;
}

// Given an array of Option objects, search for an existing option that matches value, text, or both
function DOL_findMatchingOptionInArray(a,text,value,exactMatchRequired) {
	if (a==null || typeof(a)=="undefined") { return null; }
	var value_match = null; // Whether or not a value has been matched
	var text_match = null; // Whether or not a text has been matched
	for (var i=0; i<a.length; i++) {
		var opt = a[i];
		// If both value and text match, return it right away
		if (opt.value==value && opt.text==text) { return opt; }
		if (!exactMatchRequired) {
			// If value matches, store it until we complete scanning the list
			if (value_match==null && value!=null && opt.value==value) {
				value_match = opt;
			}
			// If text matches, store it for later
			if (text_match==null && text!=null && opt.text==text) {
				text_match = opt;
			}
		}
	}
	return (value_match!=null)?value_match:text_match;
}

// Util function used by forValue and forText
function DOL_forX(s,type) {
	if (this.currentNode==null) { this.currentNodeDepth=0; }
	var useNode = (this.currentNode==null)?this:this.currentNode;
	var o = this.findMatchingOptionInArray(useNode["options"],(type=="text")?s:null,(type=="value")?s:null,false);
	if (o==null) {
		o = new DOLOption(null,null,false,false);
		o[type] = s;
		useNode.options[useNode.options.length] = o;
	}
	this.currentNode = o;
	this.currentNodeDepth++;
	return this;
}

// Set the portion of the list structure that is to be used by a later operation like addOptions
function DOL_forValue(s) { return this.forX(s,"value"); }

// Set the portion of the list structure that is to be used by a later operation like addOptions
function DOL_forText(s) { return this.forX(s,"text"); }

// Set the field to be used for setValue() calls
function DOL_forField(f) { this.currentField = f; return this; }

// Create and add an option to a list, avoiding duplicates
function DOL_addNewOptionToList(a, text, value, defaultSelected) {
	var o = new DOLOption(text,value,defaultSelected,false);
	// Add the option to the array
	if (a==null) { a = new Array(); }
	for (var i=0; i<a.length; i++) {
		if (a[i].text==o.text && a[i].value==o.value) {
			if (o.selected) { 
				a[i].selected=true;
			}
			if (o.defaultSelected) {
				a[i].defaultSelected = true;
			}
			return a;
		}
	}
	a[a.length] = o;
}

// Add sub-options to the currently-selected node, with the same text and value for each option
function DOL_addOptions() {
	if (this.currentNode==null) { this.currentNode = this; }
	if (this.currentNode["options"] == null) { this.currentNode["options"] = new Array(); }
	for (var i=0; i<arguments.length; i++) {
		var text = arguments[i];
		this.addNewOptionToList(this.currentNode.options,text,text,false);
		if (typeof(this.numberOfOptions[this.currentNodeDepth])=="undefined") {
			this.numberOfOptions[this.currentNodeDepth]=0;
		}
		if (this.currentNode.options.length > this.numberOfOptions[this.currentNodeDepth]) {
			this.numberOfOptions[this.currentNodeDepth] = this.currentNode.options.length;
		}
		if (typeof(this.longestString[this.currentNodeDepth])=="undefined" || (text.length > this.longestString[this.currentNodeDepth].length)) {
			this.longestString[this.currentNodeDepth] = text;
		}
	}
	this.currentNode = null;
	this.currentNodeDepth = 0;
}

// Add sub-options to the currently-selected node, specifying separate text and values for each option
function DOL_addOptionsTextValue() {
	if (this.currentNode==null) { this.currentNode = this; }
	if (this.currentNode["options"] == null) { this.currentNode["options"] = new Array(); }
	for (var i=0; i<arguments.length; i++) {
		var text = arguments[i++];
		var value = arguments[i];
		this.addNewOptionToList(this.currentNode.options,text,value,false);
		if (typeof(this.numberOfOptions[this.currentNodeDepth])=="undefined") {
			this.numberOfOptions[this.currentNodeDepth]=0;
		}
		if (this.currentNode.options.length > this.numberOfOptions[this.currentNodeDepth]) {
			this.numberOfOptions[this.currentNodeDepth] = this.currentNode.options.length;
		}
		if (typeof(this.longestString[this.currentNodeDepth])=="undefined" || (text.length > this.longestString[this.currentNodeDepth].length)) {
			this.longestString[this.currentNodeDepth] = text;
		}
	}
	this.currentNode = null;
	this.currentNodeDepth = 0;
}

// Find the first dependent list of a select box
// If it's the last list in a chain, return null because there are no children
function DOL_child(obj) {
	var listIndex = this.fieldListIndexes[obj.name];
	var index = this.fieldIndexes[obj.name];
	if (index < (this.fieldNames[listIndex].length-1)) {
		return this.form[this.fieldNames[listIndex][index+1]];
	}
	return null;
}

// Set the options which should be selected by default for a certain value in the parent
function DOL_setDefaultOptions() {
	if (this.currentNode==null) { this.currentNode = this; }
	for (var i=0; i<arguments.length; i++) {
		var o = this.findMatchingOptionInArray(this.currentNode.options,null,arguments[i],false);
		if (o!=null) {
			o.defaultSelected = true;
		}
	}
	this.currentNode = null;
}

// Set the options which should be selected when the page loads. This is different than the default value and ONLY applies when the page LOADS
function DOL_setValues() {
	if (this.currentField==null) { 
		alert("Can't call setValues() without using forField() first!");
		return;
	}
	if (typeof(this.values[this.currentField])=="undefined") {
		this.values[this.currentField] = new Object();
	}
	for (var i=0; i<arguments.length; i++) {
		this.values[this.currentField][arguments[i]] = true;
	}
	this.currentField = null;
}

// Manually set the form for the object using an index
function DOL_setFormIndex(i) {
	this.formIndex = i;
}

// Manually set the form for the object using a form name
function DOL_setFormName(n) {
	this.formName = n;
}

// Print blank <option> objects for Netscape4, since it refuses to grow or shrink select boxes for new options
function DOL_printOptions(name) {
	// Only need to write out "dummy" options for Netscape4
    if ((navigator.appName == 'Netscape') && (parseInt(navigator.appVersion) <= 4)){
		var index = this.fieldIndexes[name];
		var ret = "";
		if (typeof(this.numberOfOptions[index])!="undefined") {
			for (var i=0; i<this.numberOfOptions[index]; i++) { 
				ret += "<OPTION>";
			}
		}
		ret += "<OPTION>";
		if (typeof(this.longestString[index])!="undefined") {
			for (var i=0; i<this.longestString[index].length; i++) {
				ret += "_";
			}
		}
		document.writeln(ret);
	}
}

// Add a list of field names which use this option-mapping object.
// A single mapping object may be used by multiple sets of fields
function DOL_addDependentFields() {
	for (var i=0; i<arguments.length; i++) {
		this.fieldListIndexes[arguments[i].toString()] = this.fieldNames.length;
		this.fieldIndexes[arguments[i].toString()] = i;
	}
	this.fieldNames[this.fieldNames.length] = arguments;
}

// Called when a parent select box is changed. It populates its direct child, then calls change on the child object to continue the population.
function DOL_change(obj, usePreselected) {
	if (usePreselected==null || typeof(usePreselected)=="undefined") { usePreselected = false; }
	var changedListIndex = this.fieldListIndexes[obj.name];
	var changedIndex = this.fieldIndexes[obj.name];
	var child = this.child(obj);
	if (child == null) { return; } // No child, no need to continue
	if (obj.type == "select-one") {
		// Treat single-select differently so we don't have to scan the entire select list, which could potentially speed things up
		if (child.options!=null) {
			child.options.length=0; // Erase all the options from the child so we can re-populate
		}
		if (obj.options!=null && obj.options.length>0 && obj.selectedIndex>=0) {
			var o = obj.options[obj.selectedIndex];
			this.populateChild(o.DOLOption,child,usePreselected);
			this.selectChildOptions(child,usePreselected);
		}
	}
	else if (obj.type == "select-multiple") {
		// For each selected value in the parent, find the options to fill in for this list
		// Loop through the child list and keep track of options that are currently selected
		var currentlySelectedOptions = new Array();
		if (!usePreselected) {
			for (var i=0; i<child.options.length; i++) {
				var co = child.options[i];
				if (co.selected) {
					this.addNewOptionToList(currentlySelectedOptions, co.text, co.value, co.defaultSelected);
				}
			}
		}
		child.options.length=0;
		if (obj.options!=null) {
			var obj_o = obj.options;
			// For each selected option in the parent...
			for (var i=0; i<obj_o.length; i++) {
				if (obj_o[i].selected) {
					// if option is selected, add its children to the list
 					this.populateChild(obj_o[i].DOLOption,child,usePreselected);
				}
			}
			// Now go through and re-select any options which were selected before
			var atLeastOneSelected = false;
			if (!usePreselected) {
				for (var i=0; i<child.options.length; i++) {
					var m = this.findMatchingOptionInArray(currentlySelectedOptions,child.options[i].text,child.options[i].value,true);
					if (m!=null) {
						child.options[i].selected = true;
						atLeastOneSelected = true;
					}
				}
			}
			if (!atLeastOneSelected) {	
				this.selectChildOptions(child,usePreselected);
			}
		}
	}
	// Change all the way down the chain
	this.change(child,usePreselected);
}
function DOL_populateChild(dolOption,childSelectObj,usePreselected) {
	// If this opton has sub-options, populate the child list with them
	if (dolOption!=null && dolOption.options!=null) {
		for (var j=0; j<dolOption.options.length; j++) {
			var srcOpt = dolOption.options[j];
			if (childSelectObj.options==null) { childSelectObj.options = new Array(); }
			// Put option into select list
			var duplicate = false;
			var preSelectedExists = false;
			for (var k=0; k<childSelectObj.options.length; k++) {
				var csi = childSelectObj.options[k];
				if (csi.text==srcOpt.text && csi.value==srcOpt.value) {
					duplicate = true;
					break;
				}
			}
			if (!duplicate) {
				var newopt = new Option(srcOpt.text, srcOpt.value, false, false);
				newopt.selected = false; // Again, we have to do these two statements for NN4 to work
				newopt.defaultSelected = false;
				newopt.DOLOption = srcOpt;
				childSelectObj.options[childSelectObj.options.length] = newopt;
			}
		}
	}
}

// Once a child select is populated, go back over it to select options which should be selected
function DOL_selectChildOptions(obj,usePreselected) {
	// Look to see if any options are preselected=true. If so, then set then selected if usePreselected=true, otherwise set defaults
	var values = this.values[obj.name];
	var preselectedExists = false;
	if (usePreselected && values!=null && typeof(values)!="undefined") {
		for (var i=0; i<obj.options.length; i++) {
			var v = obj.options[i].value;
			if (v!=null && values[v]!=null && typeof(values[v])!="undefined") {
				preselectedExists = true;
				break;
			}
		}
	}
	// Go back over all the options to do the selection
	var atLeastOneSelected = false;
	for (var i=0; i<obj.options.length; i++) {
		var o = obj.options[i];
		if (preselectedExists && o.value!=null && values[o.value]!=null && typeof(values[o.value])!="undefined") {
			o.selected = true;
			atLeastOneSelected = true;
		}
		else if (!preselectedExists && o.DOLOption!=null && o.DOLOption.defaultSelected) {
			o.selected = true;
			atLeastOneSelected = true;
		}
		else {
			o.selected = false;
		}
	}
	// If nothing else was selected, select the first one by default
	if (this.selectFirstOption && !atLeastOneSelected && obj.options.length>0) {
		obj.options[0].selected = true;
	}
	else if (!atLeastOneSelected &&  obj.type=="select-one") {
		obj.selectedIndex = -1;
	}
}

