﻿//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 state combo box selection changes
function StateListOnChange(pState) 
{
    // alert("State selected = " + pState);
    if (pState=="")
        return;

	// URL to get source for a given enterprise
	var requestUrl = AjaxServerPageName + "?req=ajax&sid=" + pState;
	
	CreateXmlHttp();
	
	// If browser supports XMLHTTPRequest object
	if(XmlHttp)
	{
		//Setting the event handler for the response
		XmlHttp.onreadystatechange = HandleResponseStateList;
		
		//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);		
	}
}

//Gets called when Submit button for Distance is clicked
function MilesFromZip()
{
	var milesCtl = document.getElementById("StoreLocator1_txtMiles");
	var zipCtl = document.getElementById("StoreLocator1_txtZipCode");
	var miles = milesCtl.value;
    var zip = zipCtl.value
    var re = /[\D]/g
  
    if (zip=="") {
        alert("Please enter a valid zip code");
        return;
    }
    if (miles=="") {
        alert("Please enter a valid distance");
        return;
    }
    if (re.test(zip)) {
        alert("Please enter a numeric value for zip code");
        return;
    }
    if (re.test(miles)) {
        alert("Please enter a numeric value for distance");
        return;
    }

	// URL to get source for a given enterprise
	var requestUrl = AjaxServerPageName + "?req=ajax&zip=" + zip + "&miles=" + miles;
	
	CreateXmlHttp();
	
	// If browser supports XMLHTTPRequest object
	if(XmlHttp)
	{
		//Setting the event handler for the response
		XmlHttp.onreadystatechange = HandleResponseStateList;
		
		//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);		
	}
}

//Called when response comes back from server
function HandleResponseStateList()
{
	// 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)
		{			
			SetResultStateList(XmlHttp.responseText);
		}
		else
		{
			alert("There was problem connecting to the server. Please try again." );
		}
	}
}

//Clears the contents of Result Div and adds the received html source 
function SetResultStateList(Stores)
{
    var strResult, strHead;
    if(Stores.indexOf("|&|") > 0) {
        strHead = Stores.substring(0,Stores.indexOf("|&|"));
        strResult = Stores.substring(Stores.indexOf("|&|")+2);
        var Result = document.getElementById("StoreLocator1_divResultMain");
        Result.innerHTML=CleanResult(strResult);
        var Head = document.getElementById("StoreLocator1_divHead");
        Head.innerHTML=strHead;
    }
    else {
        strHead = "";
        strResult = CleanResult(Stores);
        var Result = document.getElementById("StoreLocator1_divResultMain");
        Result.innerHTML=strResult;
	}
window.location = String(window.location).replace(/\#.*$/, "") + "#bot";
}

function CleanResult(pStr)
{
    var newStr = pStr;
    if (pStr.indexOf("<!-- Start Result -->") > 0) {
        newStr = pStr.substring(pStr.indexOf("<!-- Start Result -->")+21);
        var pos = newStr.indexOf("<!-- End Result -->");
        newStr = newStr.substring(0,pos);
    }
    return newStr;
}

////Returns the node text value 
function GetInnerText (node)
{
	 return (node.textContent || node.innerText || node.text) ;
}


