/*var http = zXmlHttp.createRequest();*/
var cur_param = 0;

function getToFormData(params,callback) {
	var city = document.forms["carRequestForm"].elements["city_id"].options[document.forms["carRequestForm"].elements["city_id"].selectedIndex].value;
	var make = document.forms["carRequestForm"].elements["maker_id"].options[document.forms["carRequestForm"].elements["maker_id"].selectedIndex].value;
	if((!make || make==0) && (typeof presetMakerId != 'undefined' && presetMakerId>0))
	{
		make=presetMakerId;
	}

	var localhttp = zXmlHttp.createRequest();
	localhttp.open("GET", "/ajax/carrequest.php?what=" + params[cur_param] + "&make=" + make + "&city=" + city + "&" + (Math.random() * 10000000), true);
	localhttp.onreadystatechange = function() {
		if (localhttp.readyState == 4) {
			document.getElementById("wait").style.display = "none";
			setToFormData(params[cur_param],localhttp.responseText);
			if(cur_param++ < params.length) {
			   getToFormData(params,callback);
			}
			else {
			   cur_param = 0;
			   eval(callback);
			   return;
			}
		}
        else {
        	document.getElementById("wait").style.display = "block";
        }
    }
    localhttp.send(null);
}

function setToFormData(param,data) {
	serverData = eval(data);

	var make   = document.forms["carRequestForm"].elements["maker_id"];
	var model  = document.forms["carRequestForm"].elements["model_id"];
	var city   = document.forms["carRequestForm"].elements["city_id"];
	var dealer = document.forms["carRequestForm"].elements["dealer_id"];

	if (param == "models") {
		var opt = 0;
		if (model.options.length > 0) {
			opt = model.options[model.selectedIndex].value;
		}
		model.options.length = 0;
		for (var  i = 0; i < serverData.length; i++) {
			 var newOption = new Option(serverData[i][1],serverData[i][0]);
			 model.options[model.options.length] = newOption;

			 if (serverData[i][0] == opt) {
			 	model.options[model.options.length - 1].selected = true;
			 }
		}
	}

	if (param == "makers") {
		var opt = 0;
		if (make.options.length > 0) {
			opt = make.options[make.selectedIndex].value;
		}
		make.options.length = 0;
		for (var  i = 0; i < serverData.length; i++) {
			 var newOption = new Option(serverData[i][1],serverData[i][0]);
			 make.options[make.options.length] = newOption;

			 if (serverData[i][0] == opt) {
			 	make.options[make.options.length - 1].selected = true;
			 }

		}
	}

	if (param == "dealers") {
		var opt = 0;
		if (dealer.options.length > 0) {
			opt = dealer.options[dealer.selectedIndex].value;
		}
		dealer.options.length = 0;

		for (var  i = 0; i < serverData.length; i++) {


			 var newOption = new Option(serverData[i][1],serverData[i][0]);
			 dealer.options[dealer.options.length] = newOption;

			 if (serverData[i][0] == opt) {
			 	dealer.options[dealer.options.length - 1].selected = true;
			 }
		}
	}

	if (param == "cities") {
		var opt = 0;
		if (city.options.length > 0) {
			opt = city.options[city.selectedIndex].value;
		}
		city.options.length = 0;
		for (var  i = 0; i < serverData.length; i++) {
			 var newOption = new Option(serverData[i][1],serverData[i][0]);
			 city.options[city.options.length] = newOption;

			 if (serverData[i][0] == opt) {
			 	city.options[city.options.length - 1].selected = true;
			 }
		}
	}

}

function setToFormModel(model) {
	var obj  = document.forms["carRequestForm"].elements["model_id"];
	for (var i = 0; i < obj.options.length; i++) {
		if (obj.options[i].value == model) {
			obj.options[i].selected = true;
		}
	}
}

function setToFormDealer(dealer) {
	var obj  = document.forms["carRequestForm"].elements["dealer_id"];
	for (var i = 0; i < obj.options.length; i++) {
		if (obj.options[i].value == dealer) {
			obj.options[i].selected = true;
		}
	}
}

function setToFormMaker(maker,callback) {
	var obj  = document.forms["carRequestForm"].elements["maker_id"];
	for (var i = 0; i < obj.options.length; i++) {
		if (obj.options[i].value == maker) {
			obj.options[i].selected = true;
		}
	}
	getToFormData(new Array('models',/*'cities',*/'dealers'),callback);
}