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

function getTestDriveData(params,callback) {
	var make = document.forms["testdriveForm"].elements["maker_id"].options[document.forms["testdriveForm"].elements["maker_id"].selectedIndex].value;
	var city = document.forms["testdriveForm"].elements["city_id"].options[document.forms["testdriveForm"].elements["city_id"].selectedIndex].value;

	var localhttp = zXmlHttp.createRequest();
	localhttp.open("GET", "/ajax/testdrive.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";
			setTestDriveData(params[cur_param],localhttp.responseText);
			if(cur_param++ < params.length)
			{
			   getTestDriveData(params,callback);
			}
			else
			{
			   cur_param = 0;
			   eval(callback);
			   return;
			}
		}
    else
    {
    	document.getElementById("wait").style.display = "block";
    }
  }
  localhttp.send(null);
}

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

	var make   = document.forms["testdriveForm"].elements["maker_id"];
	var model  = document.forms["testdriveForm"].elements["model_id"];
	var city   = document.forms["testdriveForm"].elements["city_id"];
	var dealer = document.forms["testdriveForm"].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 setTestDriveModel(model) {
	var obj  = document.forms["testdriveForm"].elements["model_id"];
	for (var i = 0; i < obj.options.length; i++) {
		if (obj.options[i].value == model) {
			obj.options[i].selected = true;
		}
	}
}

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

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