function XMLHTTP_Create()
{
	var retval=null;
	try
	{
		retval=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			retval=new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch(oc)
		{
			retval=null;
		}
	}

	if(!retval && typeof XMLHttpRequest != "undefined") 
	{
		retval=new XMLHttpRequest();
	}

	return retval;
}

function call_async_request(lbl, url, objCombo, objSel)
{
	document.getElementById(lbl).innerText="(loading...)";

	var xmlHttp = XMLHTTP_Create(); 

	if(xmlHttp)
	{				
		xmlHttp.open("GET",url,true);
		
		xmlHttp.onreadystatechange = function()
		{
			if(xmlHttp.readyState == 4) 
			{
				var str = xmlHttp.responseText;
				fillCombo(objCombo, str, objSel);
				document.getElementById(lbl).innerHTML = '';
			} 
		}; 

		xmlHttp.send();
	}
}

function loadWithAJAX(id, lbl_id, objCombo, objSel)
{
	var url = 'states.php?id='+id;
	
	call_async_request(lbl_id, url, objCombo, objSel);
}

function loadCitiesAJAXS(id, lbl_id, objCombo, objSel)
{
	var url = 'cities.php?id='+id;
	
	call_async_request(lbl_id, url, objCombo, objSel);
}

function fillCombo(objCombo, str, objSel)
{
	var arr = str.split(";;;");
	var selid = 1;
	for(var i=0; i<arr.length-1; i++)
	{
		var subArr = arr[i].split(":::");
		var value = subArr[0];
		var text = subArr[1];
		objCombo.options[objCombo.options.length] = new Option(text, value);
		if ( objSel.value == text ) selid = objCombo.options.length;
		
	}
	//alert (objSel.value);
	selid--;
	objCombo.options[selid].selected = true;
}