var xmlHttpA

function FillData(mMake,mYear,mBody,mPos)
{
	xmlHttpA=GetXmlHttpObject();
	if (xmlHttpA==null)
  	{
  		alert ("Your browser does not support AJAX!");
  		return;
  	} 
	var url="MyAjax.asp?makeid="+mMake+"&myear="+mYear+"&mbody="+mBody+"&mPos="+mPos;
	url=url+"&sid="+Math.random();
	document.getElementById("loadimg1").style.visibility="visible";
	xmlHttpA.onreadystatechange=stateChanged;
	xmlHttpA.open("GET",url,true);
	xmlHttpA.send(null);
}

function stateChanged() 
{
	if (xmlHttpA.readyState==4)
	{ 
		FillCombo(xmlHttpA.responseText);
	}
}

function GetXmlHttpObject()
{
var xmlHttpA=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttpA=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttpA=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttpA=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttpA;
}

function FillCombo(modelList)
{
	if (modelList != "")
	{
		var cboYear = document.getElementById("SelectYear");
		var cboBody = document.getElementById("SelectBody");
		var cboModel = document.getElementById("SelectModel");
		
		var cboList = modelList.split("~");
		
		var myears = cboList[0].split("|");
		var mbodytypes = cboList[1].split("|");
		var mmodels = cboList[2].split("|");
		var mCbo = cboList[3];
		
		var cboValue; 
		var cboText;
		var optionItem;
		
		if(mCbo==1)
		{
			//Clears the year combo box contents.
			for (var count = cboYear.options.length-1; count >-1; count--)
			{
				cboYear.options[count] = null;
			}
			//Add new years to the combo box.
			for (var count = 0; count < myears.length-1; count++)
			{
				cboValue = myears[count].split("$")[0];
				cboText = myears[count].split("$")[1];
				optionItem = new Option(cboText,cboValue,false,false);
				cboYear.options[cboYear.length] = optionItem;
			}
		}
		
		if(mCbo==1 || mCbo==2)
		{
			//Clears the body combo box contents.
			for (var count = cboBody.options.length-1; count >-1; count--)
			{
				cboBody.options[count] = null;
			}
			//Add new bodytype to the combo box.
			for (var count = 0; count < mbodytypes.length-1; count++)
			{
				cboValue = mbodytypes[count].split("$")[0];
				cboText = mbodytypes[count].split("$")[1];
				optionItem = new Option(cboText,cboValue,false,false);
				cboBody.options[cboBody.length] = optionItem;
			}
		}
		
		if(mCbo==1 || mCbo==2 || mCbo==3)
		{
			//Clears the model combo box contents.
			for (var count = cboModel.options.length-1; count >-1; count--)
			{
				cboModel.options[count] = null;
			}
			//Add new models the combo box.
			for (var count = 0; count < mmodels.length-1; count++)
			{
				cboValue = mmodels[count].split("$")[0];
				cboText = mmodels[count].split("$")[1];
				optionItem = new Option(cboText,cboValue,false,false);
				cboModel.options[cboModel.length] = optionItem;
			}
		}
	}
	document.getElementById("loadimg1").style.visibility="hidden";
}

function showModels()
{
if(document.getElementById("SelectMake").value=="0")
	alert("Choose Make");
else if(document.getElementById("SelectYear").value=="0")
	alert("Choose Year");
else if(document.getElementById("SelectYear").value=="0")
	alert("Choose Body");
else if(document.getElementById("SelectModel").value=="0")
	alert("Choose Model");
else
	document.location.href="QModels.asp?mfid="+document.getElementById("SelectMake").value+"&modelid="+escape(document.getElementById("SelectModel").value)+"&myear="+document.getElementById("SelectYear").value+"&bodyid="+escape(document.getElementById("SelectBody").value);
}


function clearSelect(sel) {
	sel.empty();
}


var selectActions={
	inpMake:'getMakes',
	inpYear:'getYears',
	inpShape:'getShapes',
	inpSeries:'getSeries',
	inpModel:'getModels',
	inpEngineMinor:'getEnginesMinor'
}
function updateSelects() {
	var frmSelect=$('frmSearch');
	if (frmSelect) {
		var data={};
		var selects=frmSelect.getElements('select');
		var next=null;
		var found=false
		var foundprev=false;
		var me=this;
		selects.each(function(el) {
			data[el.name]=el.value;
			if (foundprev) {
				next=el;
				foundprev=false
			}
			if (found) {
				clearSelect(el);
			}
			if (el.id==me.id) {
				found=true;
				foundprev=true
			}
		});
		if (next) {
			var loadImg=$('loadimg1');
			if (loadImg) loadImg.setStyle("visibility","visible");
			var url="ajax.asp?action=" + selectActions[next.id];
			var req=new Ajax(url,{
							 data:data,
							 update:next,
							 onComplete:handleSelectUpdate
							 });
			req.request();
		}
	}
}

function handleSelectUpdate() {
	var loadImg=$('loadimg1');
	if (loadImg) loadImg.setStyle("visibility","hidden");	
	//Certain browsers cannot correctly update a <select> box with InnerHTML (MSIE!) so this is the fix. 
	var elSelect=this.options.update;
	var data=elSelect.innerHTML;
	if (data.indexOf("<OPTION")>0) {
		data="<OPTION>"+data;
		elSelect.empty();
		var re=new RegExp("<option value=\"([^\"]*)\">([^<]*)<\/option>","gi");
		while (matches=re.exec(data)) {
			var op=new Element("option");
			op.value=matches[1];
			op.appendText(matches[2]);
			op.inject(elSelect);
		};
	}
}

function goSelectSeries() {
	var loadImg=$('loadimg1');
	if (loadImg) loadImg.setStyle("visibility","visible");	
	var url="selectmodel.asp?inpMake="+$('inpMake').value+"&inpYear="+$('inpYear').value+"&inpShape="+$('inpShape').value;
	window.location.href=url;
}
function goSelectModel() {
	var loadImg=$('loadimg1');
	if (loadImg) loadImg.setStyle("visibility","visible");	
	var url="selectmodel.asp?inpMake="+$('inpMake').value+"&inpYear="+$('inpYear').value+"&inpShape="+$('inpShape').value+"&inpSeries="+$('inpSeries').value;
	window.location.href=url;
}
window.addEvent("domready",function() {
	var frmSelect=$('frmSearch');
	frmSelect.addEvent("submit",function(e) {
		e=new Event(e);
		var stopped=false;
		frmSelect.getElements("select").each(function(s) {
			if (!s.value) {										  
				e.stop();
				stopped=true;
				var warn=$("warnRequired");
				if (warn) warn.setStyle("visibility","visible");
			}
		});
		if (!stopped) {
			var loadImg=$('loadimg1');
			if (loadImg) loadImg.setStyle("visibility","visible");			
		}
	});
	if (frmSelect) {
		frmSelect.getElements("select").addEvent("change",updateSelects);
		frmSelect.getElements("select").addEvent("keyup",updateSelects);
	}
	var inpShape=$('inpShape');
	if (inpShape) {
		inpShape.addEvent("change",goSelectSeries);
	}
	var inpSeries=$('inpSeries');
	if (inpSeries) {
		inpSeries.addEvent("change",goSelectModel);
	}
	var inpModel=$('inpModel');
	if (inpModel) {
		inpModel.addEvent("change",function () {
			var loadImg=$('loadimg1');
			if (loadImg) loadImg.setStyle("visibility","visible");			
			frmSelect.submit();
		});
	}
});
