<!--
// 6/22/2006 -ajb 
// 6/26//2006 -pw, added clearField and setFieldValue functions to make sure we check if those fields exist
// Lookup code for the PAF Web service
// updated 10/20/06 pw, added ltrim function to get rid of blank space per bug fix WO#48655
// updated 2/19/09 JimB, added additional ajax lookup for address id, per wo#67360
// updated 3/3/09 JimB, fixed setting of custom form address fields, per wo#67563
// updated 1/4/10 JimB, changes per wo#71364
//******************************************** CODE TO PULL THE Postal Code VIA AJAX

var jsWF_http_request = false; // Gave it funcky prefix because it is global to the javascript.
var jsWFLastPostCodeSelectedIndex = -1; //used to check if a change was made when list clicked

//****************************************************************************************

function funPAFPostalLookup(sPostCode){
    // Looks up address id/description records based on post code
    // Set the status in a function declared outside this script
    funPAFLookupStatus("BEGIN");
    var sURL = '/wsPafLookup.asp?postcode=' + sPostCode;
    jsWFLastPostCodeSelectedIndex = -1;
    
    if (window.XMLHttpRequest) { // Mozilla, Safari,... 
       jsWF_http_request = new XMLHttpRequest(); 
    } else if (window.ActiveXObject) { // IE 
       jsWF_http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    jsWF_http_request.onreadystatechange = funLoadExternalData; 
    jsWF_http_request.open('GET', sURL, true); 
    jsWF_http_request.send(null); 

} 
//****************************************************************************************


//****************************************************************************************
   
function funPAFAddressLookup(sAddressID){
    // Looks up address detail records based on address id
    // Set the status in a function declared outside this script
    funPAFLookupStatus("BEGIN");
    if (sAddressID.length > 4) {
        var sURL = '/wsPafLookup.asp?addressid=' + sAddressID;

        if (window.XMLHttpRequest) { // Mozilla, Safari,... 
           jsWF_http_request = new XMLHttpRequest(); 
        } else if (window.ActiveXObject) { // IE 
           jsWF_http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        jsWF_http_request.onreadystatechange = funLoadExternalDataAddress; 
        jsWF_http_request.open('GET', sURL, true); 
        jsWF_http_request.send(null); 
    }
    else {
        funFillAddressFields("");
        funPAFLookupStatus("END");
    }
} 
//****************************************************************************************


//****************************************************************************************	
// Load up the data from the AJAX call
function funLoadExternalData() { 

    var sText;
    var arrayData;
    var nCount;

    if (jsWF_http_request.readyState == 4) { 
        if (jsWF_http_request.status == 200) { 
	        sText =  jsWF_http_request.responseText; 
	        // Load it up
	        arrayData = sText.split('*|*');
		    nCount = arrayData.length;

		    // Clear the list box
	        for (i = document.getElementById("selPostCode").length; i >= 0; i--) {
	            document.getElementById("selPostCode")[i] = null;
		    }	
		    
		    document.getElementById("selectAddress").style.display = "block";
		    // Build the list box  
            // Iterate through the records and do something.
			var arrayDetail;
			var sAddressID; 
	        var sDesc;  
	                    
		    if (nCount > 1) {
		        document.getElementById("selPostCode").options[0] = new Option("Use dropdown to select", "");
		        for (i=0;i<nCount;i++)
		        {
			        //split arrayData row for address id and description
	                arrayDetail = arrayData[i].split(',');
	                if (arrayDetail.length >= 2) {
	                    sAddressID = arrayDetail[0]; 
	                    sDesc = arrayDetail[1];  
	                    document.getElementById("selPostCode").options[i+1] = new Option(sDesc, sAddressID);
	                }
		        }
		    }
		    else {
		        // Call funPopulateAddress if we have only one record
		        //split arrayData row for address id and description
                arrayDetail = arrayData[0].split(',');
                if (arrayDetail.length >= 2) {
                    var sAddressID = arrayDetail[0]; 
                    var sDesc = arrayDetail[1];  
                    document.getElementById("selPostCode").options[0] = new Option(sDesc, sAddressID);
                    document.getElementById("selPostCode").options[0].selected;  //Select the record 
                }
                else {
                    //assume no match found
                    document.getElementById("selPostCode").options[0] = new Option(sText, "0");
                } 
                funPopulateAddress(); 
		    }

		    //Set the status that we have finished
		    funPAFLookupStatus("END");	   
       }
       else { 
            funPAFLookupStatus("ERROR");
       } 
    } 
} 

//*********************************************************************************

//****************************************************************************************	
// Load up the data from the AJAX call
function funLoadExternalDataAddress() { 

    var sText;
    if (jsWF_http_request.readyState == 4) { 
        if (jsWF_http_request.status == 200) { 
            sText =  jsWF_http_request.responseText; 
            //stext should be a comma separated list of address fields
            funFillAddressFields(sText);
            //Set the status that we have finished
            funPAFLookupStatus("END");	   
       }
       else { 
         funPAFLookupStatus("ERROR");
       } 
    } 
} 

//*********************************************************************************

//****************************************************************************************
function funPopulateAddress(){

    var sAddressID = document.getElementById('selPostCode').options[document.getElementById('selPostCode').selectedIndex].value;
    var sDesc = document.getElementById('selPostCode').options[document.getElementById('selPostCode').selectedIndex].text;
    if (jsWFLastPostCodeSelectedIndex != document.getElementById('selPostCode').selectedIndex) {
        funPAFAddressLookup(sAddressID);
    }
    jsWFLastPostCodeSelectedIndex = document.getElementById('selPostCode').selectedIndex;
}
//*********************************************************************************

//****************************************************************************************
function funFillAddressFields(vList) {

    var nDataLen = vList.length;
    var arrayData = vList.split(',');
    var nCount = arrayData.length;

	// Clear it first	
	clearField('county');
	clearField('town');
	clearField('cf_City');
	clearField('address1');
	clearField('address2');
	clearField('address3');
	clearField('address4');
	clearField('cf_Address');
	clearField('cf_Address2');
	clearField('cf_Address3');
	clearField('cf_Address4');

    if (nDataLen > 0) {
        clearField('txtPostcode');
        clearField('cf_Postcode');
	    switch (nCount){
		    case 7:
			    setFieldValue('postcode',arrayData[6]);
			    setFieldValue('cf_Postcode',arrayData[6]);
			    setFieldValue('town',arrayData[5]);
			    setFieldValue('cf_City',arrayData[5]);
			    setFieldValue('county',arrayData[4]);
			    setFieldValue('address4',arrayData[3]);
			    setFieldValue('address3',arrayData[2]);
			    setFieldValue('address2',arrayData[1]);
			    setFieldValue('address1',arrayData[0]);
			    setFieldValue('cf_Address',arrayData[0]);
			    setFieldValue('cf_Address2',arrayData[1]);
			    setFieldValue('cf_Address3',arrayData[2]);
			    setFieldValue('cf_Address4',arrayData[3]);
			    break;
		    case 6:
			    setFieldValue('postcode',arrayData[5]);
			    setFieldValue('cf_Postcode',arrayData[5]);
			    setFieldValue('town',arrayData[4]);
			    setFieldValue('cf_City',arrayData[4]);
			    setFieldValue('address4',arrayData[3]);
			    setFieldValue('address3',arrayData[2]);
			    setFieldValue('address2',arrayData[1]);
			    setFieldValue('address1',arrayData[0]);
			    setFieldValue('cf_Address',arrayData[0]);
			    setFieldValue('cf_Address2',arrayData[1]);
			    setFieldValue('cf_Address3',arrayData[2]);
			    setFieldValue('cf_Address4',arrayData[3]);
			    break;
		    case 5:
			    setFieldValue('postcode',arrayData[4]);
			    setFieldValue('cf_Postcode',arrayData[4]);
			    setFieldValue('town',arrayData[3]);
			    setFieldValue('cf_City',arrayData[3]);
			    setFieldValue('address3',arrayData[2]);
			    setFieldValue('address2',arrayData[1]);
			    setFieldValue('address1',arrayData[0]);
			    setFieldValue('cf_Address',arrayData[0]);
			    setFieldValue('cf_Address2',arrayData[1]);
			    setFieldValue('cf_Address3',arrayData[2]);
			    break;
		    case 4:
			    setFieldValue('postcode',arrayData[3]);
			    setFieldValue('cf_Postcode',arrayData[3]);
			    setFieldValue('town',arrayData[2]);
			    setFieldValue('cf_City',arrayData[2]);
			    setFieldValue('address2',arrayData[1]);
			    setFieldValue('address1',arrayData[0]);
			    setFieldValue('cf_Address',arrayData[0]);
			    setFieldValue('cf_Address2',arrayData[1]);
			    break;
		    case 3:
			    setFieldValue('postcode',arrayData[2]);
			    setFieldValue('cf_Postcode',arrayData[2]);
			    setFieldValue('town',arrayData[1]);
			    setFieldValue('cf_City',arrayData[1]);
			    setFieldValue('address1',arrayData[0]);
			    setFieldValue('cf_Address',arrayData[0]);
			    break;
		    case 2:
			    setFieldValue('postcode',arrayData[1]);
			    setFieldValue('cf_Postcode',arrayData[1]);
			    setFieldValue('town',arrayData[0]);
			    setFieldValue('cf_City',arrayData[0]);
			    break;
		    case 1:
			    setFieldValue('postcode',arrayData[0]);
			    setFieldValue('cf_Postcode',arrayData[0]);
			    break;
	    }   
    }
}
//*********************************************************************************

//****************************************************************************************
function clearField(objName){
	if (eval("document.getElementById('" + objName + "')")) {
		eval("document.getElementById('" + objName + "').value  = ''")
	}
}

function setFieldValue(objName, nArray){
	if (eval("document.getElementById('" + objName + "')")) {
		if (nArray.substr(0,5) != 'Error') {
			eval("document.getElementById('" + objName + "').value  = '" + ltrim(nArray) + "'")
		}
	}
}

function ltrim(str) {

  while (1) {
    if (str.substring(0, 1) != " ")
      break;
    str = str.substring(1, str.length);
  }

  return str;
}

//****************************************************************************************

//-->
