/************** auto functions ***************/

function initialize() {

	AutoMakeName=new Array(34);
	AutoMakeNumber=new Array(34);
	AutoModels=new Array(590);
	AutoMakesCount = 35;
	AutoMakeName[0] = 'Select Make';
	AutoMakeNumber[0] = '0';
	AutoModels[0] = new Array('2','Select Model','01','_','0');

	AutoMakeName[1] = 'Acura';
	AutoMakeNumber[1] = '100';
	AutoModels[100] = new Array('7','MDX','01','RDX','02','RL','03','TL','04','TSX','05','ZDX','06','_','0');
	AutoMakeName[2] = 'Audi';
	AutoMakeNumber[2] = '120';
	AutoModels[120] = new Array('15','A3','01','A4','02','A5','03','A6','04','A7','05','A8','06','Q5','07','Q7','08','R8','09','S4','010','S5','011','S6','012','TT','013','TTS','014','_','0');
	AutoMakeName[3] = 'BMW';
	AutoMakeNumber[3] = '140';
	AutoModels[140] = new Array('20','1 Series M','01','128','02','135','03','328','04','335','05','528','06','535','07','550','08','650','09','740','010','750','011','760','012','ActiveHybrid 7','013','Alpina B7','014','M3','015','X3','016','X5','017','X6','018','Z4','019','_','0');
	AutoMakeName[4] = 'Buick';
	AutoMakeNumber[4] = '150';
	AutoModels[150] = new Array('5','Enclave','01','LaCrosse','02','Lucerne','03','Regal','04','_','0');
	AutoMakeName[5] = 'Cadillac';
	AutoMakeNumber[5] = '160';
	AutoModels[160] = new Array('6','CTS','01','DTS','02','Escalade','03','SRX','04','STS','05','_','0');
	AutoMakeName[6] = 'Chevrolet';
	AutoMakeNumber[6] = '170';
	AutoModels[170] = new Array('19','Avalanche','01','Aveo','02','Aveo5','03','Camaro','04','Colorado','05','Corvette','06','Cruze','07','Equinox','08','Express','09','HHR','010','Impala','011','Malibu','012','Silverado','013','Sonic','014','Suburban','015','Tahoe','016','Traverse','017','Volt','018','_','0');
	AutoMakeName[7] = 'Chrysler';
	AutoMakeNumber[7] = '180';
	AutoModels[180] = new Array('4','200','01','300','02','Town & Country','03','_','0');
	AutoMakeName[8] = 'Dodge';
	AutoMakeNumber[8] = '210';
	AutoModels[210] = new Array('11','Avenger','01','Caliber','02','Challenger','03','Charger','04','Dakota','05','Durango','06','Grand Caravan','07','Journey','08','Nitro','09','Ram','010','_','0');
	AutoMakeName[9] = 'Ford';
	AutoMakeNumber[9] = '240';
	AutoModels[240] = new Array('19','E150','01','E350','02','Edge','03','Escape','04','Expedition','05','Explorer','06','F150','07','F250','08','F350','09','F450','010','Fiesta','011','Flex','012','Focus','013','Fusion','014','Mustang','015','Ranger','016','Taurus','017','Transit Connect','018','_','0');
	AutoMakeName[10] = 'GMC';
	AutoMakeNumber[10] = '255';
	AutoModels[255] = new Array('7','Acadia','01','Canyon','02','Savana','03','Sierra','04','Terrain','05','Yukon','06','_','0');
	AutoMakeName[11] = 'Honda';
	AutoMakeNumber[11] = '260';
	AutoModels[260] = new Array('13','Accord','01','Accord Crosstour','02','Civic','03','CR-V','04','CR-Z','05','Crosstour','06','Element','07','Fit','08','Insight','09','Odyssey','010','Pilot','011','Ridgeline','012','_','0');
	AutoMakeName[12] = 'Hyundai';
	AutoMakeNumber[12] = '270';
	AutoModels[270] = new Array('10','Accent','01','Azera','02','Elantra','03','Equus','04','Genesis','05','Santa Fe','06','Sonata','07','Tucson','08','Veracruz','09','_','0');
	AutoMakeName[13] = 'Infiniti';
	AutoMakeNumber[13] = '280';
	AutoModels[280] = new Array('10','EX35','01','FX35','02','FX50','03','G25','04','G37','05','M35h','06','M37','07','M56','08','QX56','09','_','0');
	AutoMakeName[14] = 'Jaguar';
	AutoMakeNumber[14] = '300';
	AutoModels[300] = new Array('6','XF','01','XFR','02','XJ','03','XK','04','XKR','05','_','0');
	AutoMakeName[15] = 'Jeep';
	AutoMakeNumber[15] = '310';
	AutoModels[310] = new Array('6','Compass','01','Grand Cherokee','02','Liberty','03','Patriot','04','Wrangler','05','_','0');
	AutoMakeName[16] = 'Kia';
	AutoMakeNumber[16] = '315';
	AutoModels[315] = new Array('9','Forte','01','Optima','02','Rio','03','Rio5','04','Sedona','05','Sorento','06','Soul','07','Sportage','08','_','0');
	AutoMakeName[17] = 'Land Rover';
	AutoMakeNumber[17] = '320';
	AutoModels[320] = new Array('6','LR2','01','LR4','02','Range Rover','03','Range Rover Evoque','04','Range Rover Sport','05','_','0');
	AutoMakeName[18] = 'Lexus';
	AutoMakeNumber[18] = '330';
	AutoModels[330] = new Array('18','CT 200h','01','ES 350','02','GS 350','03','GS 450h','04','GS 460','05','GX 460','06','HS 250h','07','IS 250','08','IS 250C','09','IS 350','010','IS 350C','011','IS F','012','LS 460','013','LS 600h','014','LX 570','015','RX 350','016','RX 450h','017','_','0');
	AutoMakeName[19] = 'Lincoln';
	AutoMakeNumber[19] = '340';
	AutoModels[340] = new Array('7','MKS','01','MKT','02','MKX','03','MKZ','04','Navigator','05','Town Car','06','_','0');
	AutoMakeName[20] = 'Mazda';
	AutoMakeNumber[20] = '360';
	AutoModels[360] = new Array('10','CX-7','01','CX-9','02','Mazda2','03','Mazda3','04','Mazda5','05','Mazda6','06','MX-5 Miata','07','RX-8','08','Tribute','09','_','0');
	AutoMakeName[21] = 'Mercedes-Benz';
	AutoMakeNumber[21] = '370';
	AutoModels[370] = new Array('36','C300','01','C350','02','C63','03','CL550','04','CL600','05','CL63','06','CL65','07','CLS550','08','CLS63','09','E350','010','E550','011','E63','012','G55','013','G550','014','GL350','015','GL450','016','GL550','017','GLK350','018','ML350','019','ML450','020','ML550','021','ML63','022','R350','023','S400','024','S550','025','S600','026','S63','027','S65','028','SL550','029','SL63','030','SL65','031','SLK300','032','SLK350','033','SLS','034','Sprinter','035','_','0');
	AutoMakeName[22] = 'Mercury';
	AutoMakeNumber[22] = '380';
	AutoModels[380] = new Array('4','Grand Marquis','01','Mariner','02','Milan','03','_','0');
	AutoMakeName[23] = 'MINI';
	AutoMakeNumber[23] = '405';
	AutoModels[405] = new Array('2','Cooper','01','_','0');
	AutoMakeName[24] = 'Mitsubishi';
	AutoMakeNumber[24] = '410';
	AutoModels[410] = new Array('7','Eclipse','01','Endeavor','02','Galant','03','Lancer','04','Outlander','05','Outlander Sport','06','_','0');
	AutoMakeName[25] = 'Nissan';
	AutoMakeNumber[25] = '420';
	AutoModels[420] = new Array('19','370Z','01','Altima','02','Armada','03','cube','04','Frontier','05','GT-R','06','JUKE','07','LEAF','08','Maxima','09','Murano','010','NV','011','Pathfinder','012','Quest','013','Rogue','014','Sentra','015','Titan','016','Versa','017','Xterra','018','_','0');
	AutoMakeName[26] = 'Porsche';
	AutoMakeNumber[26] = '470';
	AutoModels[470] = new Array('6','911','01','Boxster','02','Cayenne','03','Cayman','04','Panamera','05','_','0');
	AutoMakeName[27] = 'Saab';
	AutoMakeNumber[27] = '510';
	AutoModels[510] = new Array('5','9-3','01','9-3X','02','9-4X','03','9-5','04','_','0');
	AutoMakeName[28] = 'Scion';
	AutoMakeNumber[28] = '525';
	AutoModels[525] = new Array('5','iQ','01','tC','02','xB','03','xD','04','_','0');
	AutoMakeName[29] = 'smart';
	AutoMakeNumber[29] = '527';
	AutoModels[527] = new Array('2','fortwo','01','_','0');
	AutoMakeName[30] = 'Subaru';
	AutoMakeNumber[30] = '540';
	AutoModels[540] = new Array('6','Forester','01','Impreza','02','Legacy','03','Outback','04','Tribeca','05','_','0');
	AutoMakeName[31] = 'Suzuki';
	AutoMakeNumber[31] = '550';
	AutoModels[550] = new Array('5','Equator','01','Grand Vitara','02','Kizashi','03','SX4','04','_','0');
	AutoMakeName[32] = 'Toyota';
	AutoMakeNumber[32] = '560';
	AutoModels[560] = new Array('17','4Runner','01','Avalon','02','Camry','03','Corolla','04','FJ Cruiser','05','Highlander','06','Land Cruiser','07','Matrix','08','Prius','09','RAV4','010','Sequoia','011','Sienna','012','Tacoma','013','Tundra','014','Venza','015','Yaris','016','_','0');
	AutoMakeName[33] = 'Volkswagen';
	AutoMakeNumber[33] = '580';
	AutoModels[580] = new Array('12','Beetle','01','CC','02','Eos','03','GLI','04','Golf','05','GTI','06','Jetta','07','Passat','08','Routan','09','Tiguan','010','Touareg','011','_','0');
	AutoMakeName[34] = 'Volvo';
	AutoMakeNumber[34] = '590';
	AutoModels[590] = new Array('10','C30','01','C70','02','S40','03','S60','04','S80','05','V50','06','XC60','07','XC70','08','XC90','09','_','0');

}

/* data ldr functions */
function make_drp_ldr(CtlName, extype) {
	var bpex;
	var i=0;
	var exclude = get_make_exclusion(extype);
	var Ctl = document.forms[0].elements[CtlName];	
	with(document.forms[0]){
		for (var x = 0; AutoMakeName[x] != null; x++) {	
			bpex=true;
			if (extype.length > 0){
			  for (var e = exclude.length - 1; e>=0; e--) {
				if (AutoMakeName[x].toLowerCase()==exclude[e].toLowerCase()){
					bpex=false;
					break;
				  }
			  }
			}
			if (bpex==true){
				CreateSelectOptionIfNull1(i, Ctl);
				Ctl.options[i].text = AutoMakeName[x];
				Ctl.options[i].value = AutoMakeNumber[x];
				i++;
			}
		}
		if (Ctl.options.length > 0)
		Ctl.options.selectedIndex = 0;
	}
}

function make_rm_ldr_p1(CtlName, CtlName1, extype) {
	var exclude = get_make_exclusion(extype);
	var Ctl = document.forms[0].elements[CtlName];	
	var Ct2 = document.forms[0].elements[CtlName1]; 
	var p0m = null;
	if (Ct2.length > 0 && Ct2.options.selectedIndex > 0)
		p0m = Ct2.options[Ct2.selectedIndex].value;
	
	var ctrlength = Ctl.options.length;   
	for (var j=0; j< ctrlength; j++) {   
		Ctl.options[j] = null;  
	}  
	var bpex;
	var i=0;
	with(document.forms[0]){
		for (var x = 0; AutoMakeName[x] != null; x++) {	
			bpex=true;
			if (AutoMakeNumber[x]==p0m){
				bpex=false;
			}
			else if (extype.length > 0){
			  for (var e = exclude.length - 1; e>=0; e--) {
				if (AutoMakeName[x].toLowerCase()==exclude[e].toLowerCase()){
					bpex=false;
					break;
				}
			  }
			}
			if (bpex==true){
				CreateSelectOptionIfNull1(i, Ctl);
				Ctl.options[i].text = AutoMakeName[x];
				Ctl.options[i].value = AutoMakeNumber[x];
				i++;
			}
		}
		if (Ctl.options.length > 0)
			Ctl.options.selectedIndex = 0;
	}
}

function make_rm_ldr_p23(CtlName, CtlName1, extype) {
	var exclude = get_make_exclusion(extype);
	var Ctl = document.forms[0].elements[CtlName];	
	var Ct2 = document.forms[0].elements[CtlName1]; 

	var m1 = null;
	var mn1f = null;
	var p0m = null;
	eval("mn1f = document.forms[0].MakeName");
	if (mn1f == null) eval("mn1f = document.forms[0].Make");
	if (mn1f != null) m1 = mn1f.value;

	if (Ct2.options.length > 0 && Ct2.options.selectedIndex > 0)
		p0m = Ct2.options[Ct2.selectedIndex].value;
	var ctrlength = Ctl.options.length;   
	for (var j=0; j< ctrlength; j++) {   
		Ctl.options[j] = null;  
	}  
	
	var bpex;
	var i=0;
	with(document.forms[0]){
		for (var x = 0; AutoMakeName[x] != null; x++) {	
			bpex=true;
			if (AutoMakeNumber[x]==p0m || AutoMakeName[x].toLowerCase()==m1.toLowerCase() || AutoMakeNumber[x]==m1){
				bpex=false;
			}
			else if (extype.length > 0){
			  for (var e = exclude.length - 1; e>=0; e--) {
				if (AutoMakeName[x].toLowerCase()==exclude[e].toLowerCase()){
					bpex=false;
					break;
				}
			  }
			}
			if (bpex==true){
				CreateSelectOptionIfNull1(i, Ctl);
				Ctl.options[i].text = AutoMakeName[x];
				Ctl.options[i].value = AutoMakeNumber[x];
				i++;
			}
		}
		if (Ctl.options.length > 0)
			Ctl.options.selectedIndex = 0;
	}
}

function get_make_exclusion(ex){
	var excludedrp;
	if (ex=='4')
		excludedrp =new Array("pontiac","saturn","hummer","saab","ram","mercury");
	else if (ex=="2" || ex=="3")
		excludedrp =new Array("pontiac","saturn","hummer","gmc","chevrolet","cadillac","buick","ram","mercury");
	else if	(ex=="1")
		excludedrp =new Array("pontiac","saturn","hummer","gmc","chevrolet","ram","mercury");
	else if (ex=="0" || ex=="")
		excludedrp =new Array("pontiac","saturn","hummer","ram","mercury");
	return excludedrp;
}

function model_drp_ldr(CtlName, CtlName1) {
	var Ctl = document.forms[0].elements[CtlName];	
	var Ctl1 = document.forms[0].elements[CtlName1];	
	with(document.forms[0]){
		makeNo = Ctl.options[Ctl.selectedIndex].value 
		curindex = 0;
		DefaultOrLastModelChosen = "01"
		for(var i = 0; i < (AutoModels[makeNo][0]) - 1; i++) {			
			CreateSelectOptionIfNull1(i, Ctl1)
			Ctl1.options[i].text = AutoModels[makeNo][i * 2 + 1];
			Ctl1.options[i].value = AutoModels[makeNo][i * 2 + 1];
			if (Ctl1.options[i].value == DefaultOrLastModelChosen) {
				curindex = i;
			}
		}			
		Ctl1.options.selectedIndex = curindex;
	}
}

function mkdrp_change_md_ldr(CtlName) {
	var Ctl = document.forms[0].elements[CtlName];
	if (Ctl.options.length>0){
		if (CtlName == 'addMakeName')
			CtlName1 = 'addModelName';
		if (CtlName == 'addMakeName1')
			CtlName1 = 'addModelName1';
		if (CtlName == 'addMakeName2')
			CtlName1 = 'addModelName2';
		if (CtlName == 'addMakeName3')
			CtlName1 = 'addModelName3';

		if (CtlName == 'ddlMake')
			CtlName1 = 'ddlModel';
		if (CtlName == 'ddlMake1')
			CtlName1 = 'ddlModel1';
		if (CtlName == 'ddlMake2')
			CtlName1 = 'ddlModel2';
		if (CtlName == 'ddlMake3')
			CtlName1 = 'ddlModel3';
			
		with(document.forms[0]){
			var Ctl = elements[CtlName];	
			var Ctl1 = elements[CtlName1];	
			makeNo = Ctl.options[Ctl.selectedIndex].value; 
			//
			Ctl1.options.length = 0;
			Ctl1.options.length++;
			Ctl1.options[0].text = "Select Model";
			Ctl1.options[0].value = "";
			var cind = 0;
			//
			for(var i = 0; i < (AutoModels[makeNo][0]) - 1; i++) {
				cind++;
				Ctl1.options.length++;
				CreateSelectOptionIfNull1(cind, Ctl1)
				Ctl1.options[cind].text = AutoModels[makeNo][i * 2 + 1];
				Ctl1.options[cind].value = AutoModels[makeNo][i * 2 + 1]; 

			}
			Ctl1.options.selectedIndex = 0;
		 }
	}
} 

function model_drp_ldr_exclusion(mkfld, ex, _xmk) {
	var mkcfld = document.forms[0].elements[mkfld];
	if (mkcfld.options.length <=0)
		return;
	if (mkfld == 'addMakeName')
		mdfld = 'addModelName';
	if (mkfld == 'addMakeName1')
		mdfld = 'addModelName1';
	if (mkfld == 'addMakeName2')
		mdfld = 'addModelName2';
	if (mkfld == 'addMakeName3')
		mdfld = 'addModelName3';

	if (mkfld == 'ddlMake')
		mdfld = 'ddlModel';
	if (mkfld == 'ddlMake1')
		mdfld = 'ddlModel1';
	if (mkfld == 'ddlMake2')
		mdfld = 'ddlModel2';
	if (mkfld == 'ddlMake3')
		mdfld = 'ddlModel3';
	
	var xmk;
	var exclude;
	if (_xmk.length > 0)
	xmk= _xmk.split(",");
	
	with(document.forms[0]){
		var mkcfld = elements[mkfld];	
		var mdcfld = elements[mdfld];	
		mkn = mkcfld.options[mkcfld.selectedIndex].value; 
		mktxt = mkcfld.options[mkcfld.selectedIndex].text; 
	
		if (ex=="true" && _xmk.length > 0 ){
			for (var x=0; x<=xmk.length-1;x++){
				if (xmk[x].toLowerCase()=="toyota")
					exclude = new Array("rav4","corolla", "matrix","avalon","camry","highlander","tundra","sequoia");
			}
		}
		//
		mdcfld.options.length = 0;
		mdcfld.options.length++;
		mdcfld.options[0].text = "Select Model";
		mdcfld.options[0].value = "";
		var cind = 0;
		//		
		var bpex;
		for(var i = 0; i < (AutoModels[mkn][0]) - 1; i++) {
			bpex=true;
			if (ex=="true" && _xmk.length>0){
			  for (var e = exclude.length - 1; e>=0; e--) {
				if (AutoModels[mkn][i * 2 + 1].toLowerCase()==exclude[e].toLowerCase()){
					bpex=false;
					break;
				}
			  }
			}
			if (bpex==true){
				cind++;
				mdcfld.options.length++;
				CreateSelectOptionIfNull1(cind, mdcfld)
				mdcfld.options[cind].text = AutoModels[mkn][i * 2 + 1];
				mdcfld.options[cind].value = AutoModels[mkn][i * 2 + 1]; 
			}
		}
		if (mdcfld.options.length>0)
			mdcfld.options.selectedIndex = 0;
	 }
} 

function call_populate_field(fieldName, fieldValue) {
	var i = 0;
	var myForm = document.forms[0];
	var myField = myForm.elements[fieldName];
	if (testIsValidObject(myField)) {
		switch (myField.type) {
			case "select-one":
				for (i = 0; i < myField.length; i++) {
					if (trimInputString(myField.options[i].text.toLowerCase()) == trimInputString(fieldValue.toLowerCase())) {
						myField.options[i].selected = true;
						break;
					}
				}
				break;
			default:
				break;		
		}
	}		
}

function CreateSelectOptionIfNull1(i, Ctl) {	
	if (Ctl.options[i] == null){		
		opt = new Option();
		Ctl.options[i] = opt;
	}
}
function trimInputString(s) {
  return s.replace(/^\s+/, '').replace(/\s+$/, '').toLowerCase();
}
function testIsValidObject(objToTest) {
	if (objToTest == null || objToTest == undefined)
		return false;
	else
		return true;
}

