var conversion = document.getElementById('conversion');
var vehicletype = document.getElementById('vehicletype');

var make = document.getElementById('make');
var model = document.getElementById('model');
var package = document.getElementById('package');


vehicletype.onchange = function() { conversionUpdate(); makeUpdate() };
make.onchange = modelUpdate;
model.onchange = packageUpdate;

function conversionUpdate() {
	var typeValue = vehicletype.options[vehicletype.selectedIndex].value;
	ajaxRequest('GET','autosearch_ajax.php?type='+typeValue,'',conversionUpdateCb);
}

function conversionUpdateCb(t) {
	if(t) {
		var obj = eval(t);
		selectUpdate(conversion,obj);
	}
}

function modelUpdate() {
	var makeValue = make.options[make.selectedIndex].value;
        var typeValue = vehicletype.options[vehicletype.selectedIndex].value;
	ajaxRequest('GET','autosearch_ajax.php?make='+makeValue+'&type='+typeValue,'',modelUpdateCb);	
}

function modelUpdateCb(t) {
	if(t) {
		var obj = eval(t);
		selectUpdate(model,obj);
	}
}

function makeUpdate() {
	var typeValue = vehicletype.options[vehicletype.selectedIndex].value;
	ajaxRequest('GET','autosearch_ajax.php?maketype='+typeValue,'',makeUpdateCb);	
}

function makeUpdateCb(t) {
	if(t) {
		var obj = eval(t);
		selectUpdate(make,obj);
	}
}

function packageUpdate() {
	var modelValue = model.options[model.selectedIndex].value;
	ajaxRequest('GET','autosearch_ajax.php?model='+modelValue,'',packageUpdateCb);	
}

function packageUpdateCb(t) {
	if(t) {
		var obj = eval(t);
		selectUpdate(package,obj);
	}
}

function selectUpdate(sel,obj) {
	sel.options.length = 0;
	sel.options[0] = new Option("All","");
	for(itm in obj) {
		sel.options[sel.options.length] = new Option(obj[itm].option,obj[itm].val);
	}
}


function ajaxRequest(requestMethod,ajaxURL,ajaxData,ajaxCallback) {
	var ajaxRequest = (window.XMLHttpRequest)? new XMLHttpRequest(): new ActiveXObject("MSXML2.XMLHTTP");
	ajaxRequest.onreadystatechange = function() { if(ajaxRequest.readyState==4 && ajaxRequest.status == 200) { ajaxCallback(ajaxRequest.responseText); } };
	ajaxRequest.open("GET",ajaxURL,true);
	ajaxRequest.send(null);
}
