var url="selectCounty.php?selectedState=";
var useAsNormal;
var evt=null;
var showSelect=false;
var selState="";

if(window.attachEvent)
{//IE, Safari
	window.attachEvent("onload",load);
}
else if (window.addEventListener) //FF, Opera, Chrome
{
	window.addEventListener("load", load, false);
}
else 
{// unsupported, older
	window.onload = function()
				{
					window.onload();
					load();	
				};
}

function load()
{
	if(document.body)
	{
		useAsNormal=false;
		var areas=document.body.getElementsByTagName("area");
		for(i=0;i<=areas.length-1;i++)
		{
			areas[i].onclick=function(event)
							{
								event=(event)?event:window.event;
								if(useAsNormal==true)
								{
									return true;
								}
								else
								{
									makeRequest(event,(event.target)?event.target:event.srcElement);
									return false;
								}
							};
		}
		if(useAsNormal==undefined || useAsNormal==null || useAsNormal=="")
		{
			showSelect=true;
		}
		else
		{
			showSelect=(useAsNormal==true)?false:true;
		}
	}
	else
	{
		setTimeout("load",100);
	}
};


function makeRequest(event,obj) 
{
	if(showSelect==false)
	{
		return;
	}
	
	evt=event;
	selState=obj.href.substr(obj.href.indexOf("=")+1);
	var http_request = false;
	if (window.XMLHttpRequest) 
	{ // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) 
		{
			// set type accordingly to anticipated content type
		    //http_request.overrideMimeType("text/xml");
		    http_request.overrideMimeType("text/html");
		}
	} 
	else if (window.ActiveXObject) 
	{ // IE
		try 
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try 
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) {}
		}
	}
	if (!http_request) 
	{
		//alert("Cannot create XMLHTTP instance");
	    return false;
	}
	
	http_request.onreadystatechange=alertContents;
		      
	var post_data=new Array();
	post_data[0]="pageAction=getCities";
	
	var postDataStr = post_data.join("&");
	
	http_request.open("POST",url+selState,true);
	
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http_request.setRequestHeader("Content-length", postDataStr.length);
	
	http_request.send(postDataStr);
	
	function alertContents() 
	{
		if (http_request.readyState == 4) 
		{
			if (http_request.status == 200) 
			{
			    var result = http_request.responseText;
			    if(showSelect==true)
			    {
			    	populateSelect(result,obj);
			    }
			                
			} 
			else 
			{
				alert("There was a problem with the request.");
			}
		}
	}
}

function populateSelect(result,obj)
{
	var sel=document.getElementById("cities_select");
	if(!sel)
	{
		sel=document.createElement("select");
		document.body.appendChild(sel);
	}
	var opts=sel.getElementsByTagName("option");
	for(i=0;i<=opts.length-1;i++)
	{
		sel.removeChild(opts[i]);
	}
	sel.innerHTML="";
	sel.style.display="none";
	sel.name="city[]";
	sel.id="cities_select";
	sel.title="To peform the search select a city and press 'Enter' on the keyboard!";
	if(result!="")
	{
		var curr, opt;
		result=result.split(";");
		for(i=0;i<=result.length-1;i++)
		{
			curr=result[i].split(",");
			if(i==0)
			{
				opt=document.createElement("option");
				opt.value="";
				opt.innerHTML="-- Select a city from "+curr[0]+" --";
				sel.appendChild(opt);
			}
			else
			{
				opt=document.createElement("option");
				opt.value=curr[0];
				opt.innerHTML=curr[0]+((curr[1]!=undefined)?" - "+curr[1]:"");
				sel.appendChild(opt);
			}
		}
	}
	
	sel.onchange=function(event)
				{
					event=(event)?event:window.event;
					var trg=(event.target)?event.target:event.srcElement;
					if(trg.value!="")
					{
						var val=trg.value;
						setPageAction('continue'); 
						document.forms["global"].action="selectCity.php?SelectedState="+selState;
						var sel=document.body.removeChild(trg);
						sel.value=val;
						document.forms["global"].appendChild(sel);
						submitForm('global');
					}
				};
	
	sel.style.position="absolute";
	sel.style.zIndex=100;
	//sel.style.top=((evt.pageY)?evt.pageY:(document.body.scrollTop+obj.offsetTop))+"px";
	var pgY=evt.pageY;
	var done=false;
	var offsets=new Array(obj.offsetLeft+parseInt(obj.offsetWidth/2),obj.offsetTop+parseInt(obj.offsetHeight/2));
	while(done==false)
	{
		var offPar=obj.offsetParent;
		offPar=(offPar)?offPar:obj.parentNode;
		if(offPar)
		{
			offsets[0]+=(offPar.offsetLeft)?offPar.offsetLeft:0;
			offsets[1]+=(offPar.offsetTop)?offPar.offsetTop:0;
			obj=offPar;
		}
		else
		{
			done=true;
		}
	}
	pgY=(pgY)?pgY:(document.body.scrollTop+offsets[1]);//obj.offsetTop);
	sel.style.top=pgY+"px";
	//sel.style.left=((evt.pageX)?evt.PageX:(document.body.scrollLeft+obj.offsetLeft))+"px";
	var pgX=evt.pageX;
	pgX=(pgX)?pgX:(document.body.scrollLeft+offsets[0]);//obj.offsetLeft);
	sel.style.left=pgX+"px";
	sel.style.display="inline";
}
