function getXMLHTTPRequest() {

	try {
		req = new XMLHttpRequest();
	} catch(err1) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (err2) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (err3) {
				req = false;
			}
		}
	}
	return req;
}

var http = getXMLHTTPRequest();

function getCarModel() {		
	
	var make = document.getElementById('sel_carMake');
	var model = document.getElementById('sel_carModel');
	var year = document.getElementById('sel_carYear');
	
	if (make.value=="") {
	
		clearOption(model);
		addOption(model, 'Please select', '');
		disableBox(model);

		clearOption(year);
		addOption(year, 'Please select', '');
		disableBox(year);
		
	} else {
	
		var script = 'carsearch-ajax.php';
		myRand = parseInt(Math.random()*999999999999999);
		var modurl = script+"?&make="+make.value+"&a=ListCarModel&rand="+myRand;
		http.open("GET", modurl, true);
		http.onreadystatechange = returnCarModel;
		http.send(null);
	}

}

function getCarYear() {		
	
	var make = document.getElementById('sel_carMake');
	var model = document.getElementById('sel_carModel');
	var year = document.getElementById('sel_carYear');
	
	if (make.value=="" || model.value=="") {
	
		clearOption(year);
		addOption(year, 'Please select', '');
		disableBox(year);
		
	} else {
	
		var script = 'carsearch-ajax.php';
		myRand = parseInt(Math.random()*999999999999999);
		var modurl = script+"?&make="+make.value+"&model="+model.value+"&a=ListCarYear&rand="+myRand;
		http.open("GET", modurl, true);
		http.onreadystatechange = returnCarYear;
		http.send(null);
	}

}

function returnCarModel() {
	
	var s = document.getElementById('sel_carModel');
	var y = document.getElementById('sel_carYear');
	if (http.readyState == 4) {

		if (http.status == 200) {
			
			var mytext = http.responseText.split("|");				

			clearOption(s);
			addOption(s, "Please select", "");
			for (var i=0;i<mytext.length-1;i++) {
				addOption(s, mytext[i], mytext[i]);
			}
						
			enableBox(s);	
			clearOption(y);
			addOption(y, "Please select", "");
			disableBox(y);			
		}
	} else {
		s.options[0]=new Option('Loading models...', '0');
		disableBox(s);		
	}

}

function returnCarYear() {
	
	var s = document.getElementById('sel_carYear');
	
	if (http.readyState == 4) {

		if (http.status == 200) {
			
			var mytext = http.responseText.split("|");				

			clearOption(s);
			addOption(s, "Please select", "");
			for (var i=0;i<mytext.length-1;i++) {
				addOption(s, mytext[i], mytext[i]);
			}
						
			enableBox(s);								
		}
	} else {
		s.options[0]=new Option('Loading years...', '0');
		disableBox(s);		
	}

}

function getTyreSeries() {		
	
	var width = document.getElementById('sel_tyreWidth');
	var ratio = document.getElementById('sel_tyreRatio');
	var rim = document.getElementById('sel_tyreRim');
	
	
	if (width.value=="") {
	
		clearOption(ratio);
		addOption(ratio, '', '');
		disableBox(ratio);

		clearOption(rim);
		addOption(rim, '', '');
		disableBox(rim);
		
	} else {
	
		var script = 'carsearch-ajax.php';
		myRand = parseInt(Math.random()*999999999999999);
		var modurl = script+"?&width="+width.value+"&a=ListTyreSeries&rand="+myRand;

		http.open("GET", modurl, true);
		http.onreadystatechange = returnTyreSeries;
		http.send(null);
	}

}

function getTyreRim() {		
	
	var width = document.getElementById('sel_tyreWidth');
	var ratio = document.getElementById('sel_tyreRatio');
	
	if (width.value=="" || ratio.value=="") {
		
		clearOption(model);
		addOption(model, 'Please select', '');
		disableBox(model);
		
	} else {
	
		var script = 'carsearch-ajax.php';
		myRand = parseInt(Math.random()*999999999999999);
		var modurl = script+"?ratio="+ratio.value+"&width="+width.value+"&a=ListRimSize&rand="+myRand;
		
		http.open("GET", modurl, true);
		http.onreadystatechange = returnTyreRim;
		http.send(null);
	}

}


function returnTyreSeries() {
	
	var s = document.getElementById('sel_tyreRatio');
	var y = document.getElementById('sel_tyreRim');
	
	if (http.readyState == 4) {

		if (http.status == 200) {
			var mytext = http.responseText.split("|");				

			clearOption(s);
			for (var i=0;i<mytext.length-1;i++) {
				addOption(s, mytext[i], mytext[i]);
			}
						
			enableBox(s);								

			clearOption(y);
			addOption(y, "", "");
			disableBox(y);	

			getTyreRim();
			
		}
	} else {
		s.options[0]=new Option('Loading...', '0');
		disableBox(s);	
	}

}

function returnTyreRim() {
	
	var s = document.getElementById('sel_tyreRim');
	
	if (http.readyState == 4) {
	
		if (http.status == 200) {
			
			var mytext = http.responseText.split("|");				

			clearOption(s);
			for (var i=0;i<mytext.length-1;i++) {
				addOption(s, mytext[i], mytext[i]);
			}
						
			enableBox(s);								
		}
	} else {
		s.options[0]=new Option('Loading...', '0');
		disableBox(s);		
	}

}

function disableBox(selectbox) {
	selectbox.disabled=true;
}

function enableBox(selectbox) {
	selectbox.disabled=false;
}

function clearOption(selectbox){

     for (var i = (selectbox.options.length-1); i >= 0; i--){
         selectbox.options[i]=null;
     }     
}

function addOption(selectbox, text, value) {

	var optn = document.createElement("OPTION");
	optn.text = text;
	optn.value = value;
	selectbox.options.add(optn);
	
}

function goSearchByTyre() {
	var w = document.getElementById('sel_tyreWidth').value;
	var r = document.getElementById('sel_tyreRatio').value;
	var s = document.getElementById('sel_tyreRim').value;
	
	if (w!="" && r!="" && s!="") {
		url = "?search/by/tyre&width="+w+"&ratio="+r+"&rim="+s;
		window.location=url;
	}
}

function goSearchByCar() {
	var m = document.getElementById('sel_carMake').value;
	var b = document.getElementById('sel_carModel').value;
	var y = document.getElementById('sel_carYear').value;
	
	if (m!="" && b!="" && y!="") {
		url = "?search/by/car&make="+m+"&model="+b+"&year="+y;
		window.location=url;
	}
}



function getDealer() {		
	
	var state = document.getElementById('sel_state');
	var dealer = document.getElementById('sel_dealer');
	
	if (state.value=="") {
	
		clearOption(dealer);
		addOption(dealer, 'Please select', '');
		disableBox(dealer);
		
	} else {
	
		if (state.value=="THO") {
			clearOption(dealer);
			addOption(dealer, 'TyrePlus Head Office', 'tyreplus.info@au.michelin.com');
			enableBox(dealer);		
			exit();
		}
	
		var script = 'dealersearch-ajax.php';
		myRand = parseInt(Math.random()*999999999999999);
		var modurl = script+"?&state="+state.value+"&rand="+myRand;
		http.open("GET", modurl, true);
		http.onreadystatechange = returnDealer;
		http.send(null);
	}

}

function returnDealer() {
	
	var s = document.getElementById('sel_dealer');
	
	if (http.readyState == 4) {

		if (http.status == 200) {
			
			var mytext = http.responseText.split("|");				

			clearOption(s);
			addOption(s, "Please select", "");
			for (var i=0;i<mytext.length-1;i++) {
			
				var result = mytext[i].split("#");
				addOption(s, result[0], result[1]);
			}
						
			enableBox(s);	
		
		}
	} else {
		s.options[0]=new Option('Loading dealers...', '0');
		disableBox(s);		
	}

}

function getSuburb() {		
	
	var state = document.getElementById('dealerStateList');
	var suburb = document.getElementById('dealerSuburbList');
	if (state.value=="") {
	
		clearOption(suburb);
		addOption(suburb, 'Please select', '');
		disableBox(suburb);
		
	} else {
	
		var script = 'dealerSuburb-ajax.php';
		myRand = parseInt(Math.random()*999999999999999);
		var modurl = script+"?&state="+state.value+"&rand="+myRand;
		http.open("GET", modurl, true);
		http.onreadystatechange = returnSuburb;
		http.send(null);
	}

}

function returnSuburb() {
	
	var s = document.getElementById('dealerSuburbList');
	if (http.readyState == 4) {

		if (http.status == 200) {
			
			var mytext = http.responseText.split("|");				
			
			clearOption(s);
			addOption(s, "Please select", "");
			for (var i=0;i<mytext.length-1;i++) {
				var selvalue = mytext[i].split("#");
				addOption(s, selvalue[0], selvalue[1]);
			}
						
			enableBox(s);	
		
		}
	} else {
		s.options[0]=new Option('Loading suburbs...', '0');
		disableBox(s);		
	}

}
