function clrMakes(str) {
  	//deselect all cached make option selections, except the default option
	var numselected = 0;
  	for(var k=1; k<document.mainmenu.makes.length; k++) {
		if (document.mainmenu.makes.options[k].selected) { numselected++ }
	}
	if (numselected > 0) {
		var refreshing = chooseModels(document.mainmenu.makes);
  		document.mainmenu.makes.options[0].selected = false;
  	} else {
  		document.mainmenu.makes.options[0].selected = true;
  	}
}
function getModels(str,selObj) {
	if ((str != "") && (str != null) && (str != "0")) {
		var comma = ",";
	 	arrMakes = new Array()
		arrMakes = str.split(comma)

		strModels=selObj.value
		var bar = "|";
		arrModelValue = new Array()
		arrModelValue = strModels.split(bar)
		strModelList = "";
		strModelValue = "";
 		for(var i=0; i< arrMakes.length; i++) {
			for(var j=0; j< arrModelValue.length; j++) {
				var check = arrModelValue[j].slice(0,arrModelValue[j].indexOf(" "));
				if (check == arrMakes[i]) { strModelList = strModelList + arrModelValue[j] + ","; }
			}
		}
		strModelList = strModelList.substring(0,strModelList.length -1)  //trim last comma
		return strModelList
	}	
}
function loadmakemenu(str,sType) {
	if ((str != "") && (str != null) && (str != "0")) {
  		document.mainmenu.makes.length=1
	 	//clear and select no pref on models menu
		document.mainmenu.makemodel.length=1
		document.mainmenu.makemodel[0].selected=true
			  		
		var bar = "|";
		arrMakes = new Array()
		arrMakes = str.split(bar)

		arrMakeParts= new Array()
			
		var comma = ",";
							
 		document.mainmenu.makes.options[0] = new Option("*----" + sType + " Makes----*",0,1,1)
					 					
 		for(var i=0; i< arrMakes.length; i++) {
			arrMakeParts=arrMakes[i].split(comma)
			if(arrMakeParts.length==2) {  
				document.mainmenu.makes.options[i+1] = new Option(arrMakeParts[1],arrMakeParts[0],0,0)
			}
		}
	}	
}
function checkselltype() {
	if(document.mainmenu.optselltype[0].checked==true)
		loadmakemenu(document.mainmenu.allmakelist.value,"All")
	if(document.mainmenu.optselltype[1].checked==true)
		loadmakemenu(document.mainmenu.newmakelist.value,"New")
	if(document.mainmenu.optselltype[2].checked==true)
		loadmakemenu(document.mainmenu.usedmakelist.value,"Used")
}	
function NoPreferenceTest(frm2) {
	//new section to force some selection that will limit search scope
	if(document.mainmenu.makes.options[0].selected && document.mainmenu.PRICE.options[0].selected && document.mainmenu.optselltype[0].checked) {
		alert("Please limit your search by new or used, make/model or price.")
		return false;
	}
		
	if(checkMaxModels()==false) { return false; }
		
	var numselected = 0;
	//JLH to cover when no makes or models are selected - need a random routine for models
	if(document.mainmenu.makes.options[0].selected) {
		//JLH ensure that no pref is not selected along with other makes
		for(var n=1; n<document.mainmenu.makes.length; n++) {	
			if(document.mainmenu.makes.options[n].selected) { numselected++ }
		}
		document.mainmenu.makes.options[0].selected = false
	}
	//test if make selected and "no pref" indicated for model. If true, select up to five models for make(s) indicated
	numselected = 0;

	//JLH ensure that no pref is not selected along with other models
	if(document.mainmenu.makemodel.options[0].selected) {
		for(var m=1; m<document.mainmenu.makemodel.length; m++) {	
			if(document.mainmenu.makemodel.options[m].selected) { numselected++; }
		}
		document.mainmenu.makemodel.options[0].selected = false;
	}
	return true
}
function checkMaxModels() {
	//new section traps for max models allowed to prevent time out
        var numselected=0;
			
        for(var m=1; m<document.mainmenu.makemodel.length; m++) {	
		if(document.mainmenu.makemodel.options[m].selected) { numselected++; }
	}
        if(numselected > 75) {
		alert('You have selected ' + numselected + ' models. For better performance, search by make(s) alone or select fewer than 75 models.');
	         return false;
	}
	return true;
}
function chooseModels(selobj) {
	strMakeList = ""
	for(var j=0; j< selobj.length; j++) {
		if(selobj[j].selected == true) { strMakeList = strMakeList + selobj[j].value + "," }
	}
	if (document.mainmenu.optselltype[0].checked==true) {	
		strModelList = getModels(strMakeList,document.mainmenu.allmodellist) 
	}
		
	if (document.mainmenu.optselltype[1].checked==true) {	
		strModelList = getModels(strMakeList,document.mainmenu.newmodellist) 
	}
	if (document.mainmenu.optselltype[2].checked==true) {	
		strModelList = getModels(strMakeList,document.mainmenu.usedmodellist) 
	}
			
	document.mainmenu.makemodel.length = 1		//reset model option list to show only "no preference"
	var comma = ",";
	arrModel = new Array()
	tstModel = new Array()
	arrModel = strModelList.split(comma)
	for (i=0; i<arrModel.length-1; i++) {	
		if(arrModel[i].value==0) { return }
		if(i % 2 ==0) {
			document.mainmenu.makemodel.length = (i/2) + 2
			if(arrModel[i+1] != "") {
				document.mainmenu.makemodel.options[(i/2)+1].value = arrModel[i]
				document.mainmenu.makemodel.options[(i/2)+1].text = arrModel[i+1]
			}
		}
	}
	document.mainmenu.makemodel.options[0].selected = true
}
function AllMakesTest(frm2) {
	var numselected = 0;
}

