﻿function DoOnChange(controlPrefix, ipAddress)
{   

    if (ValidateForm(controlPrefix))    
    {
        
        xmlHttp = GetXmlHttpObject();
        
        if (xmlHttp==null)
        {
            alert ("Your browser does not support AJAX!");
            return;
        } 

        // ======================= build a URL with QueryString =========================================
        var url         = "/Insurance/Enquiry/BrokerRequest.aspx";
        var queryString = "";
        
        queryString += "?Type=EquityRelease";
        queryString += "&ValueOfProperty="+ document.getElementById(controlPrefix + "_hdValueOfProperty").value;
        queryString += "&ValueOfCashRelease="+ document.getElementById(controlPrefix + "_hdValueOfCashRelease").value;
        queryString += "&Postcode="+ document.getElementById(controlPrefix + "_txtPostcode").value;
        queryString += "&IPAddress="       + ipAddress; 
        queryString += "&affiliateId="       + document.getElementById(controlPrefix + "_hidAffiliateId").value; 
       
        url = url + queryString;
  
        // ======================= END build a URL with QueryString =====================================
       
        // make an async call
        xmlHttp.onreadystatechange=stateChanged;
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
        
   }
}
    
//============================= creates XmlHttp object for different browsers ==================================================
    function GetXmlHttpObject()
    {
      var xmlHttp=null;
      try
        {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
        }
      catch (e)
        {
        // Internet Explorer
        try
          {
          xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
          }
        catch (e)
          {
          xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        }
      return xmlHttp;
    }
    
//========================== The stateChanged() function executes every time the state of the XMLHTTP object changes.==============
    function stateChanged() 
    { 
     /* ============ XML structure ====================
         <root>
             <strErrorCode>num</strErrorCode>" +
             <strErrorMessage>string</strErrorMessage>" +
             <strSessionId>string</strSessionId>" +
             <strDisplayText>string</strDisplayText>" +
             <strLeadPrice>num<strLeadPrice>
          </root>      
     ============ END XML structure ================= */
    //alert("Hello");
    
    // if a response has been received from the server
    if (xmlHttp.readyState==4)
    {   
        var textXml = xmlHttp.responseText;
    
        if (window.ActiveXObject)
        {
          var doc=new ActiveXObject("Microsoft.XMLDOM");
          doc.async="false";
          doc.loadXML(xmlHttp.responseText);
        }
        // code for Mozilla, Firefox, Opera, etc.
        else
        {
          var parser = new DOMParser();
          var doc=parser.parseFromString(textXml,"text/xml");
        }
         
        
        // documentElement always represents the root node   
    
        var xmlDoc = doc.documentElement;
        
        //check the errocode xml node
        if(xmlDoc.childNodes[0].childNodes[0].nodeValue == "0") 
        {
            // display success message
            document.getElementById("brokerText").innerHTML          = "Based on your requirements we have selected the FSA regulated broker <strong>" + xmlDoc.childNodes[3].childNodes[0].nodeValue + "</strong> to help you with your enquiry. Click 'Submit' to confirm that you are happy to be contacted by telephone or email regarding your life insurance policy.";
            document.getElementById("divResult").style.display       = "block";
            document.getElementById("hidBrokerGuid").value           = xmlDoc.childNodes[5].childNodes[0].nodeValue;
        }
        else
        { 
            // display error message
            document.getElementById("brokerText").innerHTML          = "There has been a problem trying to find an FSA regulated broker to pass on your life insurance details.";
            document.getElementById("divResult").style.display       = "block";
            //document.getElementById("hidBrokerGuid").value           = xmlDoc.childNodes[5].childNodes[0].nodeValue;
        }
     }
}


function ValidateForm(controlPrefix)
{

    if (document.getElementById(controlPrefix + "_txtFirstName").value.trim() == '')
        return false;
     
    if (document.getElementById(controlPrefix + "_txtLastName").value.trim() == '')
        return false;
    
    if (document.getElementById(controlPrefix + "_txtEmailAddress").value.trim() == '')
        return false;
        
    if (document.getElementById(controlPrefix + "_txtTelephone1").value.trim() == '')
        return false;
        
    if (document.getElementById(controlPrefix + "_txtTelephone2").value.trim() == '')
        return false;

    // Removed by Sam 2009-11-16
    //
    //  if (document.getElementById(controlPrefix + "_txtAddressLine1").value.trim() == '')
    //      return false;
        
    if (document.getElementById(controlPrefix + "_txtPostcode").value.trim() == '')
        return false;   
        
    return true;
}
