var request;
var request1;
var request2;

var reqNewMakes;
var reqUsedMakes;
var reqNewModels;
var reqNewBodyStyles;
var reqUsedYear;
var reqUsedModels;
var reqUsedBodyStyles;
var reqGroupMakes;

var debug_mode = false;
var searchMode;


function pageLoaded()
{
  fillGroupLists();  

  sendUsedYearQuery();
  sendNewMakeQuery(groupName);
  sendUsedMakeQuery(groupName);
  sendGroupMakesQuery(groupName);
}

function dbg(txt)
{
	if (debug_mode) alert(txt);
}

function getXmlHttpRequest()
{
  getXmlHttpRequest(request);
}

function getXmlHttpRequest(req)
{
	try 
	{
	  req = new XMLHttpRequest();
	} 
	catch (trymicrosoft) 
	{
	  try 
	  {
	    req = new ActiveXObject("Msxml2.XMLHTTP");
	  } 
	  catch (othermicrosoft) 
	  {
	    try 
	    {
	      req = new ActiveXObject("Microsoft.XMLHTTP");
	    } 
	    catch (failed) 
	    {
	      req = false;
	    }
	  }
	}	
	
	return req;
}

function populateList(namevalue, controlId)
{
	if(oSelect=document.getElementById(controlId))
	{
		var content='';
		for(var i=oSelect.length-1;i>=0;i--)
		{
			oSelect.options[i]=null;
		}
		
		for(var i=0;i<namevalue.length;i++)
		{
			if(namevalue[i].value==undefined)
			{
				oSelect.options[oSelect.length]=new Option(namevalue[i].name);
				content+=namevalue[i].name+self.delimiter+namevalue[i].name+self.delimiter;
			}
			else
			{
				opt=new Option(namevalue[i].name,namevalue[i].value);
				oSelect.options[oSelect.length]=opt;
				content+=namevalue[i].name+self.delimiter+namevalue[i].value+self.delimiter;
			}
		}		

		if(content.substr(content.length-1,1)==self.delimiter)
		{
			content=content.substr(0,content.length-1);
		}
	
		if(oHidden=document.getElementById(self.hiddenId))
		{
			oHidden.value=content;
		}
		
		if(oSelect.selectedIndex>-1)
		{
			if(oSelect.fireEvent)
			{
				oSelect.fireEvent('onchange');
			}
			else if(oSelect.dispatchEvent)
			{
				var oEvent=document.createEvent('HTMLEvents');
				oEvent.initEvent('change',true,true);
				oSelect.dispatchEvent(oEvent);
			}
		}
	}
}


/********************************************************************************************/



function newMakeChanged()
{
	var dropdown = document.getElementById("selNewMake")
	var make = dropdown.options[dropdown.selectedIndex].value;
  sendNewModelQuery(groupName, make);  
  sendNewBodyStylesQuery(groupName, make);
}

function usedMakeChanged()
{
	var dropdown = document.getElementById("selUsedMake")
	var make = dropdown.options[dropdown.selectedIndex].value;
  sendUsedModel(groupName, make);
  sendUsedBodyStyles(make);
}

function sendNewMakeQuery(groupName)
{

	reqNewMakes = getXmlHttpRequest(reqNewMakes);
	
	if (!reqNewMakes) return;
	var theUrl = "home-ajax.aspx?fa=NEW_MAKES&group=" + escape(groupName);
	
	reqNewMakes.onreadystatechange = receiveNewMake;
  reqNewMakes.open("GET", theUrl, true);
  reqNewMakes.send(null);
}
function receiveNewMake()
{
	if (reqNewMakes.readyState == 4)
	{
		dbg(reqNewMakes.responseText);
		eval("var newMakes =" + reqNewMakes.responseText);
		
		populateList(newMakes, "selNewMake");		
	}
}


function sendNewModelQuery(groupName, make)
{
	reqNewModels = getXmlHttpRequest(reqNewModels);
	if (!reqNewModels) return;
		
	var theUrl = "home-ajax.aspx?fa=NEW_MODELS&group=" + escape(groupName) + "&make=" + escape(make);
	
	reqNewModels.onreadystatechange = receiveNewModel;
  reqNewModels.open("GET", theUrl, true);
  reqNewModels.send(null);
}
function receiveNewModel()
{
	if (reqNewModels.readyState == 4)
	{
		dbg(reqNewModels.responseText);
		eval("var models =" + reqNewModels.responseText);
		
		populateList(models, "selNewModel");
	}
}


function sendNewBodyStylesQuery(groupName, make)
{
	reqNewBodyStyles = getXmlHttpRequest(reqNewBodyStyles);
	if (!reqNewBodyStyles) return;
		
	var theUrl = "home-ajax.aspx?fa=NEW_BODYSTYLES&group=" + escape(groupName) + "&make=" + escape(make);
	
	reqNewBodyStyles.onreadystatechange = receiveNewBodyStyles;
  reqNewBodyStyles.open("GET", theUrl, true);
  reqNewBodyStyles.send(null);
}
function receiveNewBodyStyles()
{
	if (reqNewBodyStyles.readyState == 4)
	{
		dbg(reqNewBodyStyles.responseText);
		eval("var bodystyles =" + reqNewBodyStyles.responseText);
		
		populateList(bodystyles, "selNewBodyStyle");
	}
}

function sendUsedYearQuery()
{

	reqUsedYear = getXmlHttpRequest(reqUsedYear);
	
	if (!reqUsedYear) return;
	var theUrl = "home-ajax.aspx?fa=get_years&type=used";
	
	reqUsedYear.onreadystatechange = receiveUsedYear;
  reqUsedYear.open("GET", theUrl, true);
  reqUsedYear.send(null);
}
function receiveUsedYear()
{
	if (reqUsedYear.readyState == 4)
	{
		dbg(reqUsedYear.responseText);
		eval("var usedYear =" + reqUsedYear.responseText);
		
		populateList(usedYear, "preowned_year_start");
		populateList(usedYear, "preowned_year_end");
	}
}




function sendUsedMakeQuery(groupName)
{

	reqUsedMakes = getXmlHttpRequest(reqUsedMakes);
	
	if (!reqUsedMakes) return;
	var theUrl = "home-ajax.aspx?fa=USED_MAKES&group=" + escape(groupName);
	
	reqUsedMakes.onreadystatechange = receiveUsedMake;
  reqUsedMakes.open("GET", theUrl, true);
  reqUsedMakes.send(null);
}
function receiveUsedMake()
{
	if (reqUsedMakes.readyState == 4)
	{
		dbg(reqUsedMakes.responseText);
		eval("var usedMakes =" + reqUsedMakes.responseText);
		
		populateList(usedMakes, "selUsedMake");
	}
}

function sendUsedModel(groupName, make)
{
	reqUsedModels = getXmlHttpRequest(reqUsedModels);
	if (!reqUsedModels) return;
		
	var theUrl = "home-ajax.aspx?fa=USED_MODELS&group=" + escape(groupName) + "&make=" + escape(make);
	
	reqUsedModels.onreadystatechange = receiveUsedModel;
  reqUsedModels.open("GET", theUrl, true);
  reqUsedModels.send(null);
}
function receiveUsedModel()
{
	if (reqUsedModels.readyState == 4)
	{
		dbg(reqUsedModels.responseText);
		eval("var models =" + reqUsedModels.responseText);
		
		populateList(models, "selUsedModel");
	}
}

function sendUsedBodyStyles(make)
{
	reqUsedBodyStyles = getXmlHttpRequest(reqUsedBodyStyles);
	if (!reqUsedBodyStyles) return;
		
	var theUrl = "home-ajax.aspx?fa=USED_BODYSTYLES&make=" + escape(make);
	
	reqUsedBodyStyles.onreadystatechange = receiveUsedBodyStyles;
  reqUsedBodyStyles.open("GET", theUrl, true);
  reqUsedBodyStyles.send(null);
}
function receiveUsedBodyStyles()
{
	if (reqUsedBodyStyles.readyState == 4)
	{
		dbg(reqUsedBodyStyles.responseText);
		eval("var bodystyles =" + reqUsedBodyStyles.responseText);
		
		populateList(bodystyles, "selUsedBodyStyle");
	}
}

function sendGroupMakesQuery(groupName)
{

	reqGroupMakes = getXmlHttpRequest(reqGroupMakes);
	
	if (!reqGroupMakes) return;
	var theUrl = "home-ajax.aspx?fa=MAKES_URLS&group=" + escape(groupName);
	
	reqGroupMakes.onreadystatechange = receiveGroupMakes;
  reqGroupMakes.open("GET", theUrl, true);
  reqGroupMakes.send(null);
}
function receiveGroupMakes()
{
	if (reqGroupMakes.readyState == 4)
	{
		dbg(reqGroupMakes.responseText);
		eval("var groupMakes =" + reqGroupMakes.responseText);
		
		populateList(groupMakes, "find_specials_makes");		
		populateList(groupMakes, "find_service_makes");		
		populateList(groupMakes, "find_research_makes");		
		populateList(groupMakes, "find_testdrive_makes");		
	}
}



//*****************************************************
