﻿// JScript File USES ddlCity, ddlCityAlias, ddlZip SELECT MENUS
function CreateXMLHttpObject()
{//CREATE THE XMLHTTP OBJECT
	var Browser = navigator.appName;
	var obj;
	if (Browser == 'Netscape'){	
		obj = new XMLHttpRequest();
		return obj;}
	else if(Browser == 'Microsoft Internet Explorer'){
		if(new ActiveXObject("Microsoft.XMLHTTP")){	
			obj = new ActiveXObject("Microsoft.XMLHTTP");
			return obj;}	
		else
			obj = new ActiveXObject("Msxml2.XMLHTTP"); //OLDER BROWSERS
			return obj;}
	else if (window.createRequest){	
		obj = window.createRequest();
		return obj;}
	else{	
		alert('Your browser is NOT supported!!');
		return false;
}	}

//SET UP THE VARIBLES TO USE AND CREATE THE XMLHTTP OBJECT
var objHttp = CreateXMLHttpObject();
var ListToPopulate;

function ClearOptions(ListToClear){
	for(var i = ListToClear.options.length; i > -1 ; i--){ListToClear[i] = null;}
	//CLEAR ANY LISTS BELOW THIS ONE
	switch (ListToClear.id){
		case 'ddlCity':
			if(ListToPopulate.options.length < 2){//CLEAR ALIAS AND ZIP
				ClearOptions(document.getElementById('ddlCityAlias'))
				ClearOptions(document.getElementById('ddlZip'))}
			break;
		case 'ddlCityAlias':
			if(ListToPopulate.options.length < 2){//CLEAR ZIP
				ClearOptions(document.getElementById('ddlZip'))}
			break;
}	}

function DisplayLoading(what){what[0] = new Option('Loading.....');}

function SendRequest(NextList,ValueSelected1,ValueSelected2,ValueSelected3){
	ListToPopulate = document.getElementById(NextList);
	//CLEAR PREVIOUSE OPTIONS
	ClearOptions(ListToPopulate)
	DisplayLoading(ListToPopulate);
	objHttp.open("GET", "AjaxReturn.aspx?ListToReturn=" + NextList + "&value1=" + ValueSelected1 + "&value2=" + ValueSelected2 + "&value3=" + ValueSelected3,true);
    objHttp.onreadystatechange = HandleResponse;
    objHttp.send(null);
}

function HandleResponse(){//HANDLE THE RESPONSE   
	if(objHttp.readyState == 4)
	{//WE HAVE A RESPONSE 
		//CREATE AN ARRAY FROM THE RESPONSE
		var arrOptions = objHttp.responseText.split("|");
		//CHECK THE LENGTH OF THE ARRAY
		if(arrOptions.length != 1){
			for(var i = 0; i < arrOptions.length; i++){ListToPopulate[i +1] = new Option(arrOptions[i].split(',')[0],arrOptions[i].split(',')[1]);}
			ListToPopulate[0] = new Option('Please Make a Selection');
			ListToPopulate.selectedIndex = 0;}
		else{for(var i = 0; i < arrOptions.length; i++){ListToPopulate[i] = new Option(arrOptions[i].split(',')[0],arrOptions[i].split(',')[1]);}}
		//POPULATE ANY LISTS BELOW THIS ONE IF NECCESARY
		switch (ListToPopulate.id){
		case 'ddlCity':
			if(ListToPopulate.options.length < 2){SendRequest('ddlCityAlias',document.getElementById('ddlState').value,ListToPopulate.value)}
			break;
		case 'ddlCityAlias':
			if(ListToPopulate.options.length < 2){SendRequest('ddlZip',document.getElementById('ddlState').value,document.getElementById('ddlCity').value,ListToPopulate.value)}
			break;
}	}	}