var xmlHttp
var selMod
var ddlMan
var txtFilter
var timer


function PopulateModelSel(selId, ddlId, txtId)
{
	//alert( "selId: " + selId + ".\nddl: " + ddlId + ". \ntxt: " + txtId);
	
	// get out document elements for easier reference
	
	if(!selMod)
		selMod = document.getElementById(selId);
	
	//alert(selMod.SelectedIndex + " " + selMod.SelectedValue);			
	//selMod.SelectedIndex = -1;		
	//alert(selMod.SelectedIndex + " " + selMod.SelectedValue);
	
	if(!ddlMan)
		ddlMan = document.getElementById(ddlId);	
	
	if(!txtFilter)
		txtFilter = document.getElementById(txtId);
		
	if(timer)
		return;
	
	timer = window.setTimeout(function() {
	
		xmlHttp = GetXmlHttpObject();
		
		if (xmlHttp==null)
		{
			alert ("Your browser does not support AJAX!");
			return;
		} 		
		
		var url="XMLModels.aspx";
		url += "?id=" + ddlMan.options[ddlMan.selectedIndex].value;
		if(txtFilter.value != document.getElementById("hdnFilterDefaultText").value)
		{
			url += "&txt=" + txtFilter.value;	
		}
		else
		{
			url += "&txt="		
		}
		url += "&sid="+Math.random();
		
		xmlHttp.onreadystatechange=ManufacturerStateChanged;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
		
		timer = null;
		
	}, 50);
	
} 



function ManufacturerStateChanged() 
{ 
	if (xmlHttp.readyState == 4)
	{ 	
		document.getElementById('spnLoading').style.display = 'none';
		selMod.disabled = false;
		
		myXMLobj = xmlHttp.responseXML;

		if( myXMLobj.hasChildNodes )
		{	
			var models = myXMLobj.getElementsByTagName('Model');
			
			// Sets the amount of options to the amount of models  (removes and adds <options>)
			selMod.options.length = models.length;

			if(models.length > 0) 
			{
				
				for( var i = 0, l = models.length; i < l; i++ )
				{
					var model = models[i];
					
					var value = model.firstChild.text || model.firstChild.textContent;
					var text = model.lastChild.text || model.lastChild.textContent;
						
					var option = selMod.options[i];
					option.value = value;
					option.text = text;
					option.className = "";
				}
				
				// Select the first entry (to submit)
				selMod.selectedIndex = -1;
			}
			else
			{
				selMod.options.length = 1;
				
				var option = selMod.options[0];
				option.value = -1;
				option.text = "No Results";
				option.className = "empty";
			}			
		}
		else
		{	
			// not working :(
			//document.getElementById('selMod').disabled = true;	
			 //AddDdlItem(document.getElementById('selMod'), "0", "No results sorry :(")
		}
	}
	else
	{
		selMod.disabled = true;
	}
}

function GetXmlHttpObject()
{
	var xmlHttp=null;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	}
	catch (e)
	{
	// Internet Explorer
		try
		{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}


function loadXML(xmlFile)
{
	var xmlModels = new ActiveXObject("Microsoft.XMLDOM");

	xmlModels.async="false";
	xmlModels.load(xmlFile);
	xmlObj=xmlModels.documentElement;
	return xmlObj;
}


function HideControl(controlId)
{
	control = document.getElementById(controlId);
	control.style.display = 'none';
}

function AddOptionItem(ddl, value, text)
{		
	var optn = document.createElement("OPTION");
	optn.text = text;
	optn.value = value;
	ddl.options.add(optn);
}

