var selectMake = "";
var selectModel = "";
var dealerMakes = "";
var makes = new Array();
var models = new Array();
var formElem;

function TaxObj() {	
	for (var i = 0; i < 6; i++) {
		models[i] = new Array();
	}
}

TaxObj.prototype.setSelectMake = function(selectMakeText) {
	selectMake = selectMakeText;
}
TaxObj.prototype.setSelectModel = function(selectModelText) {
	selectModel = selectModelText;
}
TaxObj.prototype.setDealerMakes = function(dMakes) {
	dealerMakes = dMakes;
}
TaxObj.prototype.buildTaxonomy = function() {
	var makeIndex = 0;

	// "Select Make/Model" text
	makes[0] = selectMake;
	models[0][0] = selectModel;

	// Compare dealer's makes with custom taxonomy makes to build taxonomy for dealer.
	if (dealerMakes.toLowerCase().indexOf("honda") > -1) {
		makes.push("Honda");
			
		models[1][0] = selectModel;
		models[1][1] = "FIT";
		models[1][2] = "Civic Sedan";
		models[1][3] = "Civic Si Sedan";
		models[1][4] = "Civic Coupe";
		models[1][5] = "Civic Si Coupe";
		models[1][6] = "Civic Hybrid";
		models[1][7] = "Accord Sedan";
		models[1][8] = "Accord Coupe";
		models[1][9] = "CR-V";
		models[1][10] = "Pilot";
		models[1][11] = "Odyssey";
		models[1][12] = "Ridgeline";
	}
	if (dealerMakes.toLowerCase().indexOf("renault") > -1) {
		makes.push("Renault");
		
		for(var i = 1; i < makes.length; i++) {
			if (makes[i] == "Renault") {
				models[i][0] = selectModel;
				models[i][1] = "Clio";
				models[i][2] = "Megan"; 
				models[i][3] = "Scenic";
				models[i][4] = "Kangoo Express";
				models[i][5] = "Kangoo Pasajeros";
				models[i][6] = "Koleos";
				models[i][7] = "Trafic";
				models[i][8] = "Safrane";
				break;
			}
		}
	}
	if (dealerMakes.toLowerCase().indexOf("seat") > -1) {
		makes.push("Seat");
		
		for(var i = 1; i < makes.length; i++) {
			if (makes[i] == "Seat") {
				models[i][0] = selectModel;
				models[i][1] = "Ibiza Reference 1.6L 2 Puertas 2009";
				models[i][2] = "Ibiza Sport 2.0L 2 Puertas 2009";
				models[i][3] = "Ibiza Sport 2.0L 4 Puertas 2009";
				models[i][4] = "Ibiza Sport Automatico Tiptronic 1.6L 4 Puertas 2009";
				models[i][5] = "Ibiza Sport Automatico Tiptronic 1.6L 2 Puertas 2009";
				models[i][6] = "Ibiza Blitz 1.6L 2 Puertas Con Frenos ABS 2009";
				models[i][7] = "Ibiza Blitz 1.6L 4 Puertas Con Frenos ABS 2009";
				models[i][8] = "Ibiza Blitz Automatico Tiptronic 1.6L 4 Puertas 2009";
				models[i][9] = "Nuevo Ibiza Sport 2.0L 115 HP 4 Puertas 2009";
				models[i][10] = "Nuevo Ibiza Sport 2.0L 115 HP 4 Puertas Pintura Customizada 2009";
				models[i][11] = "Cordoba Reference Automatico Tiptronic 1.6L 4Ptas. 2009";
				models[i][12] = "Cordoba Reference 1.6L 4 Puertas 2009";
				models[i][13] = "Cordoba Stylance 2.0L 4 Puertas 2009";
				models[i][14] = "Cordoba Sport 2.0L 4 Puertas Sensoe Lluvia 2009";
				models[i][15] = "Cordoba 1.6L Blitz Puertas Con Frenos ABS 2009";
				models[i][16] = "Cordoba Blitz Automatico Tiptronic 1.6L 4Ptas. 2009";
				models[i][17] = "Nuevo Leon Reference 1.4L TSI 125hp 4Ptas. 2009";
				models[i][18] = "Nuevo Leon Stylance 1.8L TSI 160hp 2009";
				models[i][19] = "Nuevo Leon Stylance 2.0L FSI 4 Puertas 2009";
				models[i][20] = "Nuevo Leon FR 2.0T FSI 200 Hp 4 Puertas 2009";
				models[i][21] = "Nuevo Leon Cupra 2.0T FSI 240Hp 2009";
				models[i][22] = "Nuevo Leon Cupra 2.0T FSI 280Hp 2009";
				models[i][23] = "Altea XL 2.0L FSI 4 Ptas. 2009";
				models[i][24] = "Freetrack 2.0L TSI 4 Ptas. 2009";
				break;
			}
		}
	}
	if (dealerMakes.toLowerCase().indexOf("volkswagen") > -1) {
		makes.push("Volkswagen");

		for(var i = 1; i < makes.length; i++) {
			if (makes[i] == "Volkswagen") {
				models[i][0] = selectModel;
				models[i][1] = "Pointer City 2008";
				models[i][2] = "Pointer City 2009";
				models[i][3] = "Pointer Trendline 2008";
				models[i][4] = "Pointer Trendline 2009";
				models[i][5] = "Pointer GT 2008";
				models[i][6] = "Pointer GT 2009";
				models[i][7] = "Pointer Pick Up 2008";
				models[i][8] = "VW Pick Up 2009";
				models[i][9] = "GOL 2009";
				models[i][10] = "GTI 2008";
				models[i][11] = "GTI 2009";
				models[i][12] = "Beetle 2008";
				models[i][13] = "Beetle 2009";
				models[i][14] = "Beetle 10 Anos 2008";
				models[i][15] = "Beetle Hot Wheels 2008";
				models[i][16] = "Beetle Cabrio 2008";
				models[i][17] = "Beetle Cabrio 2009";
				models[i][18] = "Eurovan Diesel 2008";
				models[i][19] = "Eurovan Diesel 2009";
				models[i][20] = "Derby MI 2008";
				models[i][21] = "Derby MI 2009";
				models[i][22] = "Derby Entry 2008";
				models[i][23] = "Derby Entry 2009";
				models[i][24] = "Van 2008";
				models[i][25] = "Van 2009";
				models[i][26] = "Passat 2008";
				models[i][27] = "Passat 2009";
				models[i][28] = "Passat CC 2009";
				models[i][29] = "Sharan 2008";
				models[i][30] = "Jetta Europa 2009";
				models[i][31] = "Jetta TDI 2008";
				models[i][32] = "Jetta TDI 2009";
				models[i][33] = "Jetta Trendline 2008";
				models[i][34] = "Jetta Trendline 2009";
				models[i][35] = "Jetta City 2008";
				models[i][36] = "Jetta City 2009";
				models[i][37] = "Jetta Turbo 2009";
				models[i][38] = "Bora 2008";
				models[i][39] = "Bora 2009";
				models[i][40] = "GLI 2008";
				models[i][41] = "GLI 2009";
				models[i][42] = "Bora Sportwagen Tiptronic 2009";
				models[i][43] = "Lupo 2 Puertas 2008";
				models[i][44] = "Lupo 2 Puertas 2009";
				models[i][45] = "Lupo 4 Puertas 2009";
				models[i][46] = "Crossfox 4 Puertas 2008";
				models[i][47] = "Crossfox 4 Puertas 2009";
				models[i][48] = "Touareg 2008";
				models[i][49] = "Touareg 2009";
				models[i][50] = "Sportvan 2008";
				models[i][51] = "Sportvan 2009";
				models[i][52] = "Crafter Diesel 2008";
				models[i][53] = "Crafter Diesel 2009";
				models[i][54] = "Routan 2009";
				models[i][55] = "Tiguan 2009";
				break;
			}
		}
	}
		
	if (document.frmQuickQuote != undefined) {
		formElem = document.frmQuickQuote;
	} else if (document.frmOrderParts != undefined) {
		formElem = document.frmOrderParts;
	} else if (document.serviceAppointmentRequest != undefined) {
		formElem = document.serviceAppointmentRequest;
	}
	
	formElem.elements['vehicle:buy:make'].options.length = 0;
	if (makes.length == 2) {
		formElem.elements['vehicle:buy:make'].options[0] = new Option(makes[1], makes[1]);
		this.setMake(makes[1]);
	} else {
		for(var i = 0; i < makes.length; i++) {
			formElem.elements['vehicle:buy:make'].options[i] = new Option(makes[i], makes[i]);
		}
		this.setMake(makes[0]);
	}
}

// Overwriting setMake() from inventorySearchAPI.js so that listed models match our custom taxonomy.
TaxObj.prototype.setMake = function(newMake) {
	var makeNum = 0;
	
	for(var i = 0; i < makes.length; i++) {
		if (makes[i] == newMake) {
			makeNum = i;
			break;
		}
	}
	formElem.elements['vehicle:buy:model'].options.length = 0;
	for (var i = 0; i < models[makeNum].length; i++) {
		formElem.elements['vehicle:buy:model'].options[i] = new Option(models[makeNum][i], models[makeNum][i]);
	}
}

// Overwriting setModel() from inventorySearchAPI.js so that it does nothing because ASM QQ will not show Trim.  
TaxObj.prototype.setModel = function() {}
