﻿var xmlHttp; 
var is_ie = (navigator.userAgent.indexOf('MSIE') >= 0) ? 1 : 0; 
var is_ie5 = (navigator.appVersion.indexOf("MSIE 5.5")!=-1) ? 1 : 0; 
var is_opera = ((navigator.userAgent.indexOf("Opera6")!=-1)||(navigator.userAgent.indexOf("Opera/6")!=-1)) ? 1 : 0; 
//netscape, safari, mozilla behave the same??? 
var is_netscape = (navigator.userAgent.indexOf('Netscape') >= 0) ? 1 : 0; 

var streetObject;
var cityObject;

function CheckZipcode(zipcodeId,numberId,streetId,cityId,countryId)
{
    var zipc = document.getElementById(zipcodeId);
    var numb = document.getElementById(numberId);
    var strt = document.getElementById(streetId);
    var city = document.getElementById(cityId);
    var ctry;
    if (countryId != null)
    {
        ctry = document.getElementById(countryId);
    }
    
    if (zipc == null || numb == null || strt == null || city == null)
        return;
    
    if (zipc.value == "" || numb.value == "")
        return;
    
    streetObject = strt;
    cityObject = city;
    
    var url = "/checkzipcode.aspx";
    
    xmlHttp = GetXmlHttpObject(stateChangeHandler);
    xmlHttp.open('POST',url,false);
    xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    xmlHttp.send("zipcode=" + zipc.value + "&number=" + numb.value);
    xmlHttp_Get(xmlHttp, url);

}    

function stateChangeHandler() 
{ 
    //readyState of 4 or 'complete' represents that data has been returned 
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete')
    { 
        //Gather the results from the callback 
        var str = xmlHttp.responseText; 
    
        var s = str.split('|')[1];
        var c = str.split('|')[3];
        if (s != null && streetObject != null && c != null && cityObject != null && s != "" && c != "")
        {
            streetObject.value = s;
            cityObject.value = c;
        }
    } 
}

// XMLHttp send GET request 
function xmlHttp_Get(xmlhttp, url) 
{ 
    xmlhttp.open('GET', url, true); 
    xmlhttp.send(null); 
} 

function GetXmlHttpObject(handler) 
{ 
    var objXmlHttp = null; //Holds the local xmlHTTP object instance 

    //Depending on the browser, try to create the xmlHttp object 
    if (is_ie)
    { 
        //The object to create depends on version of IE 
        //If it isn't ie5, then default to the Msxml2.XMLHTTP object 
        var strObjName = (is_ie5) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP'; 

        //Attempt to create the object 
        try
        { 
            objXmlHttp = new ActiveXObject(strObjName); 
            objXmlHttp.onreadystatechange = handler; 
        } 
        catch(e)
        { 
            //Object creation errored 
            alert('IE detected, but object could not be created. Verify that active scripting and activeX controls are enabled'); 
            return; 
        } 
    } 
    else if (is_opera)
    { 
        //Opera has some issues with xmlHttp object functionality 
        alert('Opera detected. The page may not behave as expected.'); 
        return; 
    } 
    else
    { 
        // Mozilla | Netscape | Safari 
        objXmlHttp = new XMLHttpRequest(); 
        objXmlHttp.onload = handler; 
        objXmlHttp.onerror = handler; 
    } 

    //Return the instantiated object 
    return objXmlHttp; 
} 


