// JavaScript Document

function toggleDiv(el)
{
	var element = document.getElementById(el);
    element.style.display = (element.style.display == 'none') ? 'block' : 'none';
}

function toggleBASearch()
{
	var balink = document.getElementById('BALink');
	var badiv = document.getElementById('searchextra');
	var bago = document.getElementById('BAGo');
	
	if(badiv.style.display == 'none')
	{
		bago.style.display = 'none';
		badiv.style.display = 'block';
		balink.firstChild.data = '<< Basic Search';
		
	} else
	{
		bago.style.display = 'inline';
		badiv.style.display = 'none';
		balink.firstChild.data = 'Detailed Search >>';
	}	
}



function refreshBASearchForm(selbranch, selmfr, selmodel, useextra)
{
	var elmake = document.getElementById(selmfr);
	var elmodel = document.getElementById(selmodel);
	
	var makeid = elmake.options[elmake.selectedIndex].value;
	var modelid = elmodel.options[elmodel.selectedIndex].value;
	var branchid = document.getElementById(selbranch).nodeName.toLowerCase() == 'select' ?
					document.getElementById(selbranch).options[document.getElementById(selbranch).selectedIndex].value : 0;
	
	
	if(useextra == false)
	{	
		var poststr = "mfrid=" + encodeURI(makeid) + "&vehicleid=" + encodeURI(modelid)
						+ "&branchid=" + encodeURI(branchid) + "&cachebuster=" + encodeURI(Math.random());
	
	} else
	{
		// pull out the extra fields
		
		var elfuel = document.getElementById('fuel');
		var fuel = elfuel.options[elfuel.selectedIndex].value;
		
		var eltype = document.getElementById('type');
		var type = eltype.options[eltype.selectedIndex].value;
		
		var elmaxage = document.getElementById('maxage');
		var maxage = elmaxage.options[elmaxage.selectedIndex].value;
		
		var eltransmission = document.getElementById('transmission');
		var transmission = eltransmission.options[eltransmission.selectedIndex].value;
		
		var elmaxprice = document.getElementById('maxprice');
		var maxprice = elmaxprice.options[elmaxprice.selectedIndex].value;
		
		var elmaxmiles = document.getElementById('maxmiles');
		var maxmiles = elmaxmiles.options[elmaxmiles.selectedIndex].value;
		
		var poststr = "mfrid=" + encodeURI(makeid) + "&vehicleid=" + encodeURI(modelid)
						+ "&branchid=" + encodeURI(branchid)
						+ "&fuel=" + encodeURI(fuel)
						+ "&type=" + encodeURI(type)
						+ "&maxage=" + encodeURI(maxage)
						+ "&transmission=" + encodeURI(transmission)
						+ "&maxprice=" + encodeURI(maxprice)
						+ "&maxmiles=" + encodeURI(maxmiles) + "&cachebuster=" + encodeURI(Math.random());
	}
	
	var cpane = document.getElementById('searchextra');
	cpane.innerHTML = '<div id="baloading">Loading...</div>' + cpane.innerHTML;
	
	// disable select menus
	
	var menus = cpane.getElementsByTagName('select');
	
	if(menus.length > 0)
	{
		for(var ii = 0; ii < menus.length; ++ii)
		{
			menus[ii].disabled = true;
		}		
	}
	
	if (window.XMLHttpRequest)	// IE/Windows ActiveX version
	{
		bareq = new XMLHttpRequest();
		bareq.onreadystatechange = function() {handleBASearchResponse();};
		bareq.open("GET", "/ajax/used_ba_search?" + poststr, true);
		bareq.send(null);
	
	} else if (window.ActiveXObject)
	{
		bareq = new ActiveXObject("Microsoft.XMLHTTP");
		if (bareq)
		{
			bareq.onreadystatechange = function() {handleBASearchResponse();};
			bareq.open("GET", "/ajax/used_ba_search?" + poststr, true);
			bareq.send();
		}
	} 
}

function handleBASearchResponse() {
	
	if (bareq.readyState == 4) {
		//document.getElementById('searchq').value = "";
		document.getElementById('searchextra').innerHTML = bareq.responseText;
		//document.getElementById("searchbutton").disabled=false;
	}
}


function launchTabFrameRequest(url)
{	
	if (window.XMLHttpRequest)	// IE/Windows ActiveX version
	{
		req = new XMLHttpRequest();
		req.onreadystatechange = function() {handleSearchResponse();};
		req.open("GET", url, true);
		req.send(null);
	
	} else if (window.ActiveXObject)
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req)
		{
			req.onreadystatechange = function() {handleSearchResponse();};
			req.open("GET", url, true);
			req.send();
		}
	}	
}

function miniBounce() {
		
	var elmake = document.getElementById("mbmake");
	var elmodel = document.getElementById("mbmodel");
	
	var makesite = elmake.options[elmake.selectedIndex].value;
	var modelsite = elmodel.options[elmodel.selectedIndex].value;
	
	if(makesite != 0 && modelsite == 0)
	{
		window.location.href = "http://" + makesite;
	
	} else if(modelsite != 0)
	{
		window.location.href = "http://" + modelsite;		
	
	} else
	{
		alert("Please choose a Make or Model from the list");	
	}
}

function launchSearch() {

	var searchstring = document.getElementById("searchq").value;
	var offertype = document.getElementById("searchoffertype").value;
	var searchmake = document.getElementById("searchmake").value;
	var searchmodel = document.getElementById("searchmodel").value;
	
	var poststr = "searchq=" + encodeURI(searchstring) + "&offertype=" + encodeURI(offertype)
					+ "&make=" + encodeURI(searchmake) + "&model=" + encodeURI(searchmodel);
	
	if (window.XMLHttpRequest)	// IE/Windows ActiveX version
	{
		req = new XMLHttpRequest();
		req.onreadystatechange = function() {handleSearchResponse();};
		req.open("GET", "/ajax/searchcars?" + poststr, true);
		req.send(null);
	
	} else if (window.ActiveXObject)
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req)
		{
			req.onreadystatechange = function() {handleSearchResponse();};
			req.open("GET", "/ajax/searchcars?" + poststr, true);
			req.send();
		}
	} 
}

var url = "/searchcars.php?"; // The server-side script

function handleSearchResponse() {
	document.getElementById("searchbutton").disabled=true;
	if (req.readyState == 4) {
		document.getElementById('searchq').value = "";
		document.getElementById('ajaxcontentarea').innerHTML = req.responseText;
		document.getElementById("searchbutton").disabled=false;
	}
}

// JavaScript Document

function requestNextLevel(eltarget, selectid, elsource, level)
{	
	var value = elsource.options[elsource.selectedIndex].value;
	var requrl = "/ajax/link_menus?level=" + level + "&value=" + value;
	document.getElementById(selectid).disabled = "disabled";
	document.getElementById(eltarget).innerHtml = 
	"<select name=\"" + selectid + "\" id=\"" + selectid + "\"><option>Loading...</option></select>";
	
   if (window.XMLHttpRequest)	// IE/Windows ActiveX version
   {
       req = new XMLHttpRequest();
       req.onreadystatechange = function() {updateSelectOptions(eltarget, selectid);};
       req.open("GET", requrl, true);
       req.send(null);
   
   } else if (window.ActiveXObject)
   {
       req = new ActiveXObject("Microsoft.XMLHTTP");
       if (req)
	   {
           req.onreadystatechange = function() {updateSelectOptions(eltarget, selectid);};
           req.open("GET", requrl, true);
           req.send();
       }
   } 		
}

function updateSelectOptions(eltarget, selectid, ocp)
{
	if (req.readyState == 4) 	// only if req is "loaded"
	{ 
		if (req.status == 200)		 // only if "OK"
		{			
//		  document.write(req.responseText);
		
		  document.getElementById(eltarget).innerHTML = "<select name=\"" + selectid + "\" id=\"" + selectid + "\" onchange=\"" + ocp + "\">" + req.responseText + "</select>";
		  document.getElementById(eltarget).disabled = "";
    	}
    }	
}

function requestTestGeneralStockLevel(eltarget, selectid, level)
{
	if(level == 2)
	{
		var make = document.getElementById('searchmake').options[document.getElementById('searchmake').selectedIndex].value;
		var requrl = "/ajax/branch_menus?level=" + level + "&branch=0&make=" + make;
		var ocp = "refreshBASearchForm('branch', 'searchmake', 'searchmodel', false);";
	}
	
	var onchangeProp = document.getElementById(selectid).onchange;
	document.getElementById(selectid).disabled = "disabled";
	document.getElementById(eltarget).innerHtml = 
	"<select name=\"" + selectid + "\" id=\"" + selectid + "\"><option>Loading...</option></select>";
	
   if (window.XMLHttpRequest)	// IE/Windows ActiveX version
   {
       req = new XMLHttpRequest();
       req.onreadystatechange = function() {updateSelectOptions(eltarget, selectid, ocp);};
       req.open("GET", requrl, true);
       req.send(null);
   
   } else if (window.ActiveXObject)
   {
       req = new ActiveXObject("Microsoft.XMLHTTP");
       if (req)
	   {
           req.onreadystatechange = function() {updateSelectOptions(eltarget, selectid, ocp);};
           req.open("GET", requrl, true);
           req.send();
       }
   } 		
}

function requestGeneralStockLevel(eltarget, selectid, level)
{
	if(level == 2)
	{
		var make = document.getElementById('searchmake').options[document.getElementById('searchmake').selectedIndex].value;
		var requrl = "/ajax/branch_menus?level=" + level + "&branch=0&make=" + make;
		var ocp = "";
	}
	
	var onchangeProp = document.getElementById(selectid).onchange;
	document.getElementById(selectid).disabled = "disabled";
	document.getElementById(eltarget).innerHtml = 
	"<select name=\"" + selectid + "\" id=\"" + selectid + "\"><option>Loading...</option></select>";
	
   if (window.XMLHttpRequest)	// IE/Windows ActiveX version
   {
       req = new XMLHttpRequest();
       req.onreadystatechange = function() {updateSelectOptions(eltarget, selectid, ocp);};
       req.open("GET", requrl, true);
       req.send(null);
   
   } else if (window.ActiveXObject)
   {
       req = new ActiveXObject("Microsoft.XMLHTTP");
       if (req)
	   {
           req.onreadystatechange = function() {updateSelectOptions(eltarget, selectid, ocp);};
           req.open("GET", requrl, true);
           req.send();
       }
   } 		
}

function requestBranchStockLevel(eltarget, selectid, level)
{	
	if(level == 1)
	{
		var branch = document.getElementById('branch').options[document.getElementById('branch').selectedIndex].value;
		var requrl = "/ajax/branch_menus?level=" + level + "&branch=" + branch;
		var ocp = "requestBranchStockLevel('searchcont2', 'searchmodel', 2);refreshBASearchForm('branch', 'searchmake', 'searchmodel', false);";
	
		// CLEAR THE THIRD (MODEL) MENU	
		
		 document.getElementById('searchcont2').innerHTML = "<select name=\"searchmodel\" id=\"searchmodel\"><option value=\"0\">All Models</option></select>";
	}
	
	if(level == 2)
	{
		var branch = document.getElementById('branch').options[document.getElementById('branch').selectedIndex].value;
		var make = document.getElementById('searchmake').options[document.getElementById('searchmake').selectedIndex].value;
		var requrl = "/ajax/branch_menus?level=" + level + "&branch=" + branch + "&make=" + make;
		var ocp = "refreshBASearchForm('branch', 'searchmake', 'searchmodel', false);";
	}	
	
	var onchangeProp = document.getElementById(selectid).onchange;
	document.getElementById(selectid).disabled = "disabled";
	document.getElementById(eltarget).innerHtml = 
	"<select name=\"" + selectid + "\" id=\"" + selectid + "\"><option>Loading...</option></select>";
	
   if (window.XMLHttpRequest)	// IE/Windows ActiveX version
   {
       req = new XMLHttpRequest();
       req.onreadystatechange = function() {updateSelectOptions(eltarget, selectid, ocp);};
       req.open("GET", requrl, true);
       req.send(null);
   
   } else if (window.ActiveXObject)
   {
       req = new ActiveXObject("Microsoft.XMLHTTP");
       if (req)
	   {
           req.onreadystatechange = function() {updateSelectOptions(eltarget, selectid, ocp);};
           req.open("GET", requrl, true);
           req.send();
       }
   } 		
}
