//vars
var makename = ""; 
var modelname = ""; 
var makeid = ""; 
var modelid = ""; 
var cpoMakename = ""; 
var cpoModelname = "";
var zipAjx = new Ajax();
var validZip = false;
var cpoAjx = new Ajax();
var cpoAjxPBArray = new Array();
var cpoModels;
var usedCpoMakes = new Array("Acura","Audi","BMW","Buick","Cadillac","Chevrolet","Chrysler","Dodge","Ferrari","Ford","GMC","Honda","Hyundai","Infiniti","Jaguar","Jeep","Land Rover","Lincoln","Lexus","Mazda","Mercedes-Benz","Mercury","Nissan","Pontiac","Porsche","Saab","Saturn","Subaru","Toyota","Volkswagen","Volvo");

//functions
function checkZipFirst(frm){
	aForm = "document." + frm;
	var zc = eval(aForm+".zc.value");
	if(zc.length < 5 || isNaN(zc)){
		zipError(frm);
	}else{
		zipAjx.followup = "setZipBool()";
		zipAjx.start('GET', '/go/includes/_zipValid.jsp?zc='+zc);
	}
}

function setZipBool(){
	validZip = false;
	validZip = eval(zipAjx.pb[0]);
	if(aForm == 'document.newForm') { aForm = ""; submitNewForm();}
	else if(aForm == 'document.usedForm') { aForm = ""; submitUsedForm();}
	else if(aForm == 'document.searchCPO'){ aForm = ""; submitCpoForm();}
}

function sendForm(sentForm) {
		if(!validZip){
			zipError(sentForm);
			aForm = "document."+sentForm;
  			return false;
		}
	switch(sentForm) {
	case "usedForm":
        var d = document.usedForm;
		d.action='/go/search/search.jsp';
		document.usedForm.method='get';
	break;
	case "newForm":
    var d = document.newForm;
    d.mdnm.value=d.newModelSelect.options[d.newModelSelect.selectedIndex].text;
    d.mdid.value=d.newModelSelect.options[d.newModelSelect.selectedIndex].value;
	d.mknm.value=d.newMakeSelect.options[d.newMakeSelect.selectedIndex].text;
		
    if (d.mdnm.value.toUpperCase() == "ALL") {
        d.mdnm.value = "";
        d.page.value = "getModels.jsp";
    }
	d.action='/go/search/search.jsp'
	d.method='get';
	break;
	
	case "searchCPO":
	var d = document.searchCPO;
	d.action='/go/search/search.jsp';
	d.method='get';
	break;
	
	}
return true;
}

function submitForm(sentForm) {
	if (!sendForm(sentForm)) {
		return false;
	}
	return true;
}

function submitUsedForm() {
	if(submitForm('usedForm')) {
		var expTrm=new Date();
		var cookieValue = "u";
	if(document.usedForm.toggleCpo[1].checked) {cookieValue = "c";}
	expTrm.setHours(expTrm.getHours()+720);
	document.cookie="hpw="+cookieValue+"; path=/; expires="+expTrm.toGMTString();
	document.usedForm.submit();
	}else{ 
	return false;
	}
}

function submitCpoForm(){
if(submitForm('searchCPO')) document.searchCPO.submit();
}

function submitNewForm() {
		var wasAllGood = submitForm('newForm');
	if(wasAllGood) {
		document.newForm.submit();
	} else {
	return false;
	}
}

function loadUsedMakes(){
// Initialize used cars javascript
 initCars();
// Add used car makes
	var makeSel = document.getElementById("usedMakeSelect");
    makeSel.options.length = 0;
    var optionNum = 0;
    for (ii in makesById){ //makesById array defined in search.js
        var makeRecord = makesById[ii];
        var option = new Option(makeRecord[1], makeRecord[1]);
        makeSel.options[optionNum] = option;
        optionNum++;
    }        
    selectUsedMake(makeSel.value);
}

function getMakeModelFromCookie(){
var cks = document.cookie;
var frm = cks.indexOf("SessionInfo=");
	if(frm != -1){ 
	frm += 12;
	var to = cks.indexOf(";",frm);
	var value = unescape(cks.substring(frm,to)).replace(/\+/g," ");
		frm = value.indexOf("mknm="); if(frm != -1){frm +=5; to = value.indexOf("|",frm); makename = value.substring(frm,to);}
		frm = value.indexOf("mdnm="); if(frm != -1){frm +=5; to = value.indexOf("|",frm); modelname = value.substring(frm,to);}
		frm = value.indexOf("mkid="); if(frm != -1){frm +=5; to = value.indexOf("|",frm); makeid = value.substring(frm,to);}
		frm = value.indexOf("mdid="); if(frm != -1){frm +=5; to = value.indexOf("|",frm); modelid = value.substring(frm,to);}
	}
}

function storeCpoMakeModel(){
	var dMk = document.getElementById("usedMakeSelect");
	var dMd = document.getElementById("usedModelSelect");
	cpoMakename = dMk.options[dMk.selectedIndex].text;
	cpoModelname = dMd.options[dMd.selectedIndex].text;
}

function getCpoModelsForMake(makename){
	cpoAjx.followup = "populateCpoModels()";
	var ajaxRequestString = '/go/includes/mmy/_modelRetriever.jsp?makename='+makename;
	if (makename == 'Mercedes-Benz') ajaxRequestString+='&makeid=31';//MB hack
	cpoAjx.start('GET',ajaxRequestString);
}

function populateCpoModels(){
	var optIndx = document.usedForm.mdnm.selectedIndex;
	var selectedModel = document.usedForm.mdnm.options[optIndx].text; //IE7 hack: apparently value is not populated 
	cpoAjxPBArray = eval(cpoAjx.pb);
	cpoModels = cpoAjxPBArray[0];
	var dForm = document.usedForm;
	var cpoModelsArray = cpoModels.split(",");
	dForm.usedModelSelect.options.length = 0;
	dForm.usedModelSelect.options[0] = new Option("All","");
	for (i=0;i<cpoModelsArray.length;i++){
	dForm.usedModelSelect.options[i+1] = new Option(cpoModelsArray[i],cpoModelsArray[i]); //i+1 preserves the "All" option
		if (selectedModel == cpoModelsArray[i]){
			dForm.usedModelSelect.options[i+1].selected = true;
		}
	}
}

function selectUsedCpoOnly(make){
	var dForm = document.usedForm;
	var inList = false;
	dForm.usedMakeSelect.options.length = 0;
	for (i in usedCpoMakes){
		dForm.usedMakeSelect.options[i] = new Option (usedCpoMakes[i],usedCpoMakes[i]);
		if (make == usedCpoMakes[i]) {
		dForm.usedMakeSelect.options[i].selected = true; 
		getCpoModelsForMake(usedCpoMakes[i]);
		inList = true;
		}
	}
	if(!inList) getCpoModelsForMake(dForm.usedMakeSelect.options[dForm.usedMakeSelect.options.selectedIndex].value);
	dForm.searchType.value = "59";
	dForm.cpo.value = "true";
}

function swapButton(txt){
	document.getElementById('usedBttnTxt').innerHTML = txt;
}

function populateModelsForMake(make){
	if (document.usedForm.toggleCpo[1].checked) selectUsedCpoOnly(make);
	else selectUsedMake(make);
}

function toggleAllUsed(){
	storeCpoMakeModel();
	loadUsedMakes();
	prePopulate();
	swapButton('Search Used');
	document.usedForm.toggleCpo[0].checked = true;
	document.usedForm.searchType.value = "21"; 
	document.usedForm.cpo.value = "false";
}

function toggleCpoUsed(){
	selectUsedCpoOnly(document.usedForm.mknm.options[document.usedForm.mknm.selectedIndex].value);
	swapButton('Search Certified');
	document.usedForm.toggleCpo[1].checked = true;
}



