
function doCarSearch(searchString, force)
{
	if (force)
	{
		document.previousSearch = searchString;
	}
	else if (searchString == document.previousSearch)
	{
		// No point searching again
		return;
	}
	else
	{
		document.previousSearch = searchString;
	}

	if (searchString.length > 1)
	{
		var query = "car_details.php?query=" + escape(searchString); 
		
		http = getHTTPObject();
		http.open("GET", query, true);
		http.onreadystatechange = useCarSearch;
		http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		http.send(null);
	}
	else
	{
		var carSearchResult = document.getElementById("carSearchResult");
		carSearchResult.innerHTML = ""; 
		carSearchResult.style.display = "";
		carSearchResult.style.height = "auto";
		carSearchResult.style.width = "auto";
	}
	
	//selectbox.style.display = "block";
}

function useCarSearch()
{
	if (http.readyState == 4) 
	{
		if (http.status == 200)
		{
			var searchResponse = http.responseText;
			var carSearchResult = document.getElementById("carSearchResult");
				
			if (http.responseText == "")
			{
				carSearchResult.innerHTML = ""; 
				carSearchResult.style.display = "";
				carSearchResult.style.height = "auto";
				carSearchResult.style.width = "auto";
			}
			else
			{
				carSearchResult.innerHTML = "";
			
				try //Internet Explorer
				{
					xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
					xmlDoc.async="false";
					xmlDoc.loadXML(http.responseText);
				}
				catch(e)
				{
					try //Firefox, Mozilla, Opera, etc.
					{
						parser=new DOMParser();
						xmlDoc=parser.parseFromString(http.responseText,"text/xml");
					}
					catch(e)
					{
						alert(e.message);
						return;
					}
				}

	            var cars = xmlDoc.getElementsByTagName('cars').item(0);
	            var newHtml = "";
				for(var i = 0; i < cars.childNodes.length; i++)
				{
					if (cars.childNodes[i].nodeName == "car")
					{
						var car = cars.childNodes.item(i);
						var id = 0;
						var text = "";
						var metric = 0;
						var imperial = 0;
						
						for (var j = 0; j < car.childNodes.length; j++)
						{	
							// Get content depending on FF or IE
							var content = 
								(car.childNodes[j].textContent) 
									? car.childNodes[j].textContent 
									: car.childNodes[j].text;
				
							switch(car.childNodes[j].nodeName)
							{										 
								case 'id':
									id = content;
									break;
								case 'text':
									text = content;
									break;
								case 'metric':
									metric = content;
									break;
								case 'imperial':
									imperial = content;
									break;
							}
						}

						if (id > 0)
						{			
							var display = text + ", (" + metric + " L/100km), ("+ imperial + " mpg (uk))";								
							var span = "<a class=\"singleCar\" onClick=\"setConsumption(" + imperial + ", '" + display + "');\">" + display + "</a><br />\n";
							newHtml += span; 
						}
					}
				}
				
				if (newHtml.length > 0)
				{
					carSearchResult.innerHTML = newHtml;
					carSearchResult.style.display = "block";
					carSearchResult.style.height = "120px";
					carSearchResult.style.width = "768px";
					carSearchResult.style.whiteSpace =  "nowrap";
					carSearchResult.style.overflow = "auto";
					carSearchResult.style.overflowy = "auto";
					carSearchResult.style.overflowx = "auto";
				}						
				else
				{
					carSearchResult.innerHTML = ""; 
					carSearchResult.style.display = "";
					carSearchResult.style.height = "auto";
					carSearchResult.style.width = "auto";
				}
			}
		}
	}
}

function setConsumption(amount, car)
{
	document.getElementById("consumption").value = amount;
	document.getElementById("consumptionMethod").selectedIndex = 1;
	document.getElementById("lastCarPickedDisplay").value = car.replace(/(<([^>]+)>)/ig,"");
	
	var carSearchResult = document.getElementById("carSearchResult");				
	carSearchResult.innerHTML = ""; 
	carSearchResult.style.display = "";
	carSearchResult.style.height = "auto";
	carSearchResult.style.width = "auto";	
}