
//Global XMLHTTP Request object
var XmlHttp;

//Creating and setting the instance of appropriate XMLHTTP Request object to a “XmlHttp” variable  
function CreateXmlHttp()
{
	//Creating object of XMLHTTP in IE
	try
	{
		XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch(oc)
		{
			XmlHttp = null;
		}
	}
	//Creating object of XMLHTTP in Mozilla and Safari 
	if(!XmlHttp && typeof XMLHttpRequest != "undefined") 
	{
		XmlHttp = new XMLHttpRequest();
	}
}



//Gets called when unitType combo box selection changes
function floorPlanOnChange() 
{
var detect = navigator.userAgent.toLowerCase();
var browser,thestring;
    if (checkIt('safari')) {
        browser = "Safari";
    } else {        
	    var floorPlan = document.getElementById("floorPlan");

	    //Getting the selected unitType from unitType combo box.
	    var selectedunitType = floorPlan.options[floorPlan.selectedIndex].value;
    	
	    // URL to get states for a given unitType
	    var requestUrl = AjaxServerPageName + "?SelectedunitType=" + encodeURIComponent(selectedunitType);
	    CreateXmlHttp();
    	
	    // If browser supports XMLHTTPRequest object
	    if(XmlHttp)
	    {
		    //Setting the event handler for the response
		    XmlHttp.onreadystatechange = HandleResponse;
    		
		    //Initializes the request object with GET (METHOD of posting), 
		    //Request URL and sets the request as asynchronous.
		    XmlHttp.open("GET", requestUrl,  true);
    		
		    //Sends the request to server
		    XmlHttp.send(null);		
	    }
	}
}

function checkIt(string)
{
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}


//Called when response comes back from server
function HandleResponse()
{
	// To make sure receiving response data from server is completed
	if(XmlHttp.readyState == 4)
	{
		// To make sure valid response is received from the server, 200 means response received is OK
		if(XmlHttp.status == 200)
		{			
			ClearAndSetfloorNumItems(XmlHttp.responseXML.documentElement);
		}
		else
		{
			alert("There was a problem retrieving data from the server." );
		}
	}
}

//Clears the contents of state combo box and adds the states of currently selected unitType
function ClearAndSetfloorNumItems(unitTypeNode)
{
    var floorNum = document.getElementById("floorNum");
	//Clears the state combo box contents.
	for (var count = floorNum.options.length-1; count >-1; count--)
	{
		floorNum.options[count] = null;
	}

	var stateNodes = unitTypeNode.getElementsByTagName('state');
	var textValue; 
	var optionItem;
		
	optionItem = new Option( "Select a Floor", "",  false, false);
	floorNum.options[floorNum.length] = optionItem;
	//Add new states list to the state combo box.	
	for (var count = 0; count < stateNodes.length; count++)
	{	
   		textValue = GetInnerText(stateNodes[count]);
		optionItem = new Option( textValue, textValue,  false, false);
		floorNum.options[floorNum.length] = optionItem;
	}
}

//Returns the node text value 
function GetInnerText (node)
{
	 return (node.textContent || node.innerText || node.text) ;
}









