﻿var XMLHTTPREQUEST_MS_PROGIDS = new Array(
	"Msxml2.XMLHTTP.7.0",
	"Msxml2.XMLHTTP.6.0",
	"Msxml2.XMLHTTP.5.0",
	"Msxml2.XMLHTTP.4.0",
	"MSXML2.XMLHTTP.3.0",
	"MSXML2.XMLHTTP",
	"Microsoft.XMLHTTP"
);

// Define ready state constants.
var XMLHTTPREQUEST_READY_STATE_UNINITIALIZED = 0;
var XMLHTTPREQUEST_READY_STATE_LOADING       = 1;
var XMLHTTPREQUEST_READY_STATE_LOADED        = 2;
var XMLHTTPREQUEST_READY_STATE_INTERACTIVE   = 3;
var XMLHTTPREQUEST_READY_STATE_COMPLETED     = 4;

function getXMLHttpRequest()
{
	var httpRequest = null;
	// Create the appropriate HttpRequest object for the browser.
	if (window.XMLHttpRequest != null)
		httpRequest = new window.XMLHttpRequest();
	else if (window.ActiveXObject != null)
	{
		// Must be IE, find the right ActiveXObject.
		var success = false;
		for (var i = 0; i < XMLHTTPREQUEST_MS_PROGIDS.length && !success; i++)
		{
			try
			{
				httpRequest = new ActiveXObject(XMLHTTPREQUEST_MS_PROGIDS[i]);
				success = true;
			}
			catch (ex)
			{}
		}
	}

	// Display an error if we couldn't create one.
	if (httpRequest == null)
		alert("Error in HttpRequest():\n\nCannot create an XMLHttpRequest object.");
	// Return it.
	return httpRequest;
}

var ajaxLookup = getXMLHttpRequest();
var retField1;
var retField2;
var retField3;
var url = "";
var ft1 = 1;
var ft2 = 2;

function initiateLookup(field,retLoc1,retLoc2,file,qs,fieldType1,fieldType2)
{
    //check for 5 digits
    var lookup = "";
    lookup = field.value;
    IsNumeric(field);
    
    //handle controls in a Master Content page
    var dynCtrl = field.id.substring(0,field.id.lastIndexOf("_")+1);
    
    retField1 = document.getElementById(dynCtrl + retLoc1); ft1 = fieldType1;
    retField2 = document.getElementById(dynCtrl + retLoc2); ft2 = fieldType2;
        
    if (lookup.length == 5)
    {
        // Clear the status text.
        setStatusText("");
        // Abort any currently active request.
        ajaxLookup.abort();
        // Perform an asynchronous request to get the matching city and state.
        url = file + ".aspx?" + qs + "=" + lookup;
        ajaxLookup.onreadystatechange = ajaxReadyStateChange;
        ajaxLookup.open("GET", url, true);
        ajaxLookup.send(null);
    }
    else
    {
        //reset destination values
        if (ft1 == 0) //label
        { retField1.innerHTML = ""; }
        else if (ft1 == 1) //textbox
        { retField1.value = ""; }
        else if (ft1 == 2) //dropdownlist
        { retField1.selectedIndex = 0; }
        
        if (ft2 == 0) //label
        { retField2.innerHTML = ""; }
        else if (ft2 == 1) //textbox
        { retField2.value = ""; }
        else if (ft2 == 2) //dropdownlist
        { retField2.selectedIndex = 0; }
    }
}

function setSelect(SelectName, Value)
{
  for(index = 0; index < SelectName.length; index++)
  {
    if (SelectName[index].text == Value)
        SelectName.selectedIndex = index;
   }
}

function IsNumeric(field) 
{ 
	var valid = "0123456789";
	var isValid = true; 
	var temp; 
	for (var i=0; i < field.value.length; i++) 
	{
		temp = "" + field.value.substring(i, i+1);							
		if (valid.indexOf(temp) == "-1")
		{ isValid = false; }
	}
	if(!isValid)
	{
		alert("Invalid Entry! Only numeric values are accepted in this field.");
		var mynewval = field.value;
		mynewval = mynewval.slice(0,mynewval.length-1)
		field.value = mynewval;		
	} 
}

function ajaxReadyStateChange()
{
	var statusText;

	// Check the ready state.
	switch (ajaxLookup.readyState)
	{
		case XMLHTTPREQUEST_READY_STATE_UNINITIALIZED:
			statusText = "";
			break;

		case XMLHTTPREQUEST_READY_STATE_LOADING:
			statusText = "Initializing Lookup...";
			break;

		case XMLHTTPREQUEST_READY_STATE_LOADED:
			statusText = "Sending data...";
			break;

		case XMLHTTPREQUEST_READY_STATE_INTERACTIVE:
			statusText = "Downloading data...";
			break;

		case XMLHTTPREQUEST_READY_STATE_COMPLETED:

			// Assume no match was found.
			statusText = "Not Found."

			// Fill in the fields, if available.
			try
			{
				var data = ajaxLookup.responseText.split(";");
				if (data.length == 2)
				{
					// set destination values
                    if (ft1 == 0) //label
                    { retField1.innerHTML = data[0]; }
                    else if (ft1 == 1) //textbox
                    { retField1.value = data[0]; }
                    else if (ft1 == 2) //dropdownlist
                    { setSelect(retField1, data[0]); }

                    if (ft2 == 0) //label
                    { retField2.innerHTML = data[1]; }
                    else if (ft2 == 1) //textbox
                    { retField2.value = data[1]; }
                    else if (ft2 == 2) //dropdownlist
                    { setSelect(retField2, data[1]);}
                    
                    statusText = "";
				}
			}
			catch (ex)
			{
			    statusText = "Error: " + ex.description;
			}
			break;

		default:
			statusText = "Unknown error.";
			break;
	}

	// Update the status message.
	setStatusText(statusText);
}

function dataLookup(field,retLoc1,retLoc2,retLoc3,qs)
{
    var lookup = field.value;   
    retField1 = document.getElementById(retLoc1);
    retField2 = document.getElementById(retLoc2);
    retField3 = document.getElementById(retLoc3);
        
    // Abort any currently active request.
    ajaxLookup.abort();
    // Perform an asynchronous request to get the matching city and state.
    url = "ajax/dataRequest.aspx?" + qs + "=" + lookup;
    ajaxLookup.onreadystatechange = ajaxDataRequest;
    ajaxLookup.open("GET", url, true);
    ajaxLookup.send(null);
}

function ajaxDataRequest()
{
	switch (ajaxLookup.readyState)
	{
		case XMLHTTPREQUEST_READY_STATE_COMPLETED:
			try
			{
				var data = ajaxLookup.responseText.split(";");				
				if (data.length == 3)
				{
                    retField1.value = data[0];
                    retField2.value = data[1];
                    retField3.style.display = "block";
                    document.getElementById("trPasswordNoAccount").style.display = "none";
                    document.getElementById("inputHasAccount").value = "1";
				}
				else
				{
				    retField1.value = "";
				    retField2.value = "";
				    retField3.style.display = "none";
				    document.getElementById("trPasswordNoAccount").style.display = "block";
				    document.getElementById("inputHasAccount").value = "0";
				}
			}
			catch (ex) { }
			break;
		default:
		    retField1.value = "Please Wait..";
		    retField2.value = "";
			break;
	}
}

function setStatusText(text)
{
	// Display the status message.
	var el = document.getElementById("statusText");
	if (el.firstChild == null)
		el.appendChild(document.createTextNode(""));
	el.firstChild.nodeValue = text;
}

var x = 0;
var y = 1;

function start(field){
    x = x+y;
    field.value = x;
    setTimeout("start()", 1000);
}

// ]]>

