var selectMake = "";
var selectModel = "";
var dealerMakes = "";
var makes = new Array();
var models = new Array();
/* To prevent dropdowns from scooting to the left when they populate with wide model names */
var widthAdjust = 175;

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("buick") > -1) {
		makes.push("Buick");
			
		models[1][0] = selectModel;
		models[1][1] = "Enclave";
		models[1][2] = "LaCrosse";
		models[1][3] = "Otros";
				
	}
	if (dealerMakes.toLowerCase().indexOf("cadillac") > -1) {
		makes.push("Cadillac");
		
		for(var i = 1; i < makes.length; i++) {
			if (makes[i] == "Cadillac") {
				models[i][0] = selectModel;
				jQuery("#model").css("width",widthAdjust);
				models[i][1] = "Cadillac CTS";
				models[i][2] = "Cadillac Escalade";
				models[i][3] = "Cadillac Escalade EST";
				models[i][4] = "Cadillac Escalade ESV";
				models[i][5] = "Cadillac Escalade Platinum";
				models[i][6] = "Cadillac EXT";
				models[i][7] = "Cadillac SRX";
				models[i][8] = "Cadillac STS";
				models[i][9] = "Otros";
			}
		}
	}
	if (dealerMakes.toLowerCase().indexOf("chevrolet") > -1) {
		makes.push("Chevrolet");
		
		for(var i = 1; i < makes.length; i++) {
			if (makes[i] == "Chevrolet") {
				
				if (ContextManager.getPageLayout().toLowerCase().indexOf("service") > -1) {
				
					models[i][0] = selectModel;
				
					models[i][1] = "Avalanche";
					models[i][2] = "Aveo";
					models[i][3] = "Camaro";
					models[i][4] = "Captiva Sport";
					models[i][5] = "Cargo Van";
					models[i][6] = "Chevy";
					models[i][7] = "Chevy Cargo"
					models[i][8] = "Cheyenne";
					models[i][9] = "Colorado";
					models[i][10] = "Corvette";
					models[i][11] = "Cruze";
					models[i][12] = "Express";
					models[i][13] = "Malibu";
					models[i][14] = "Optra";
					models[i][15] = "Passenger Van";
					models[i][16] = "Silverado";
					models[i][17] = "Silverado 3500";
					models[i][18] = "Spark";
					models[i][19] = "Suburban";
					models[i][20] = "Tahoe";
					models[i][21] = "Tornado";
					models[i][22] = "Traverse";		
					models[i][23] = "Otros";
				
      } else if (ContextManager.getPageLayout()=="QuickQuoteForm_quickQuote") {
				
				  	models[i][0] = selectModel;
				
					models[i][1] = "Avalanche";
					models[i][2] = "Aveo";
					models[i][3] = "Camaro";
					models[i][4] = "Captiva Sport";
					models[i][5] = "Cargo Van";
					models[i][6] = "Chevy 3 Puertas";
					models[i][7] = "Chevy 5 Puertas";
					models[i][8] = "Chevy Sedan";
					models[i][9] = "Chevy Cargo"
					models[i][10] = "Cheyenne Cab Reg";
					models[i][11] = "Cheyenne Cab Ext";
					models[i][12] = "Cheyenne Crew Cab";
					models[i][13] = "Colorado";
					models[i][14] = "Corvette";
					models[i][15] = "Cruze";
					models[i][16] = "Express";
					models[i][17] = "Malibu";
					models[i][18] = "Passenger Van";
					models[i][19] = "Silverado 3500";
					models[i][20] = "Silverado 1500";
					models[i][21] = "Silverado 2500";
					models[i][22] = "Spark";
					models[i][23] = "Suburban";
					models[i][24] = "Tahoe";
					models[i][25] = "Tornado";
					models[i][26] = "Traverse";		
					models[i][27] = "Otros";
			
      	} else {
				
				models[i][0] = selectModel;
				
					models[i][1] = "Avalanche";
					models[i][2] = "Aveo";
					models[i][3] = "Camaro";
					models[i][4] = "Captiva Sport";
					models[i][5] = "Cargo Van";
					models[i][6] = "Chevy";
					models[i][7] = "Chevy Cargo"
					models[i][8] = "Cheyenne";
					models[i][9] = "Colorado";
					models[i][10] = "Corvette";
					models[i][11] = "Cruze";
					models[i][12] = "Express";
					models[i][13] = "Malibu";
					models[i][14] = "Optra";
					models[i][15] = "Passenger Van";
					models[i][16] = "Silverado";
					models[i][17] = "Silverado 3500";
					models[i][18] = "Suburban";
					models[i][19] = "Tahoe";
					models[i][20] = "Tornado";
					models[i][21] = "Traverse";		
					models[i][22] = "Otros";
					
				}
					
				break;
			}
		}
	}
	if (dealerMakes.toLowerCase().indexOf("gmc") > -1) {
		makes.push("GMC");
		
		for(var i = 1; i < makes.length; i++) {
			if (makes[i] == "GMC") {
				
				models[i][0] = selectModel;
				models[i][1] = "Acadia";
				models[i][2] = "Canyon";
				models[i][3] = "Sierra";
				models[i][4] = "Sierra Denali";
				models[i][5] = "Yukon";
				models[i][6] = "Yukon Denali";
				models[i][7] = "Otros";
              


				break;
			}
		}
	}
	if (dealerMakes.toLowerCase().indexOf("hummer") > -1) {
		makes.push("Hummer");

		for(var i = 1; i < makes.length; i++) {
			if (makes[i] == "Hummer") {
				models[i][0] = selectModel;
				
				models[i][1] = "HUMMER H2";
				models[i][2] = "HUMMER H2 SUT";
				models[i][3] = "HUMMER H2 SUV";
				models[i][4] = "HUMMER H3";
				models[i][5] = "HUMMER H3 Adventurer";
				models[i][6] = "HUMMER H3 Luxury";
				models[i][7] = "HUMMER H3T";
				models[i][8] = "Otros";
				
				jQuery("#model").css("width",widthAdjust);

				break;
			}
		}
	}
	if (dealerMakes.toLowerCase().indexOf("pontiac") > -1) {
		makes.push("Pontiac");

		for(var i = 1; i < makes.length; i++) {
			if (makes[i] == "Pontiac") {
					models[i][0] = selectModel;
 					models[i][1] = "Matiz";
					models[i][2] = "Otros";

				break;
			}
		}
	}
	if (dealerMakes.toLowerCase().indexOf("saab") > -1) {
		makes.push("Saab");

		for(var i = 1; i < makes.length; i++) {
			if (makes[i] == "Saab") {
				
				models[i][0] = selectModel;
					models[i][1] = "Saab 9-3 Sport Sedan";
					models[i][2] = "Saab 9-3 Sedan";
					models[i][3] = "Saab 9-5";
					models[i][4] = "Otros";							

				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() {}
