function createXMLHttpRequest(){
	if(window.XMLHttpRequest){			
		var httpReq = new XMLHttpRequest();
		return httpReq;		
		
	} else if(window.ActiveXObject){			
		var versions = ["Microsoft.XMLHTTP", "MSXML2.XmlHttp.6.0", "MSXML2.XmlHttp.3.0" ];
		for(var i = 0; i<versions.length; i++){				
			try{
				var httpReq = new ActiveXObject(versions[i]);
				return httpReq;
			}catch(e){
				//nothing
			}//catch				
		}//for			
	}//else		
	alert("errorrr");
	return null;
}

function regionHandler(eValue){
		
		function disableCountyBox(){
			var e = document.getElementById("countySelect");
			e.length = 0;
			e.disabled = true;
			
			newNode = document.createElement('option');
			newNode.value = "0";
			tempText = document.createTextNode('----------');
			newNode.appendChild(tempText);
			e.appendChild(newNode);	
		}
		
		
		switch(parseInt(eValue)){
			case 1:
				disableCountyBox();
				countyHandler(1);
				break;
				
			case 2:
				disableCountyBox();
				countyHandler(2);
				break;
				
			case 3:
				disableCountyBox();
				countyHandler(3);
				break;
			
			case 4:
				disableCountyBox();
				countyHandler(4);
				break;
				
			default:
				
				var newNode;
				var tempText;
				
				var e = document.getElementById("countySelect");
				e.length=0;
				e.disabled = true;
				
				var f = document.getElementById("townSelect");
				f.length=0;
				f.disabled = true;
				
				newNode = document.createElement('option');
				tempText = document.createTextNode('Select a County');
				newNode.appendChild(tempText);
				f.appendChild(newNode);
				
				var countyList = createXMLHttpRequest();
				countyList.onreadystatechange = function (){
						if(this.readyState == 2){
							newNode = document.createElement('option');
							tempText = document.createTextNode('Populating List');
							newNode.appendChild(tempText);
							e.appendChild(newNode);
						}
						
						if(this.readyState == 4){
							e.length=0;
							var results = eval('(' + countyList.responseText +  ')');
							for (var x=0; x<results.counties.length; x++){
								newNode = document.createElement('option');
								newNode.value = results.counties[x].id;
								tempText = document.createTextNode(results.counties[x].name);
								newNode.appendChild(tempText);
								e.appendChild(newNode);
							}//for
							e.disabled = false;
						}//if
				}//internal function
				
				countyList.open("GET", 'Includes/generate.asp?list=county&val=' + eValue, true);
				
				countyList.send(null);
				break;
				//end of default case
				
		}//switch
}

function countyHandler(eValue){
		var newNode;
		var tempText;
		
		var f = document.getElementById("townSelect");
		f.disabled = true;
		var townList = createXMLHttpRequest();
		townList.onreadystatechange = stateChangeHandler;
		townList.open("GET", 'Includes/generate.asp?list=town&val=' + eValue, true);
		townList.send(null);
		
		
		function stateChangeHandler(){
				if(this.readyState == 2){
					newNode = document.createElement('option');
					tempText = document.createTextNode('Populating List');
					newNode.appendChild(tempText);
					f.appendChild(newNode);
				}
				
				if(this.readyState == 4){
					f.length=0;
										
					var results = eval('(' + townList.responseText +  ')');
					for (var x=0; x<results.towns.length; x++){
					 newNode = document.createElement('option');
					 newNode.value = results.towns[x].id;
					 tempText = document.createTextNode(results.towns[x].name);
					 newNode.appendChild(tempText);
					 f.appendChild(newNode);
					}//for
					f.disabled = false;
				}//if
		}
}

