﻿

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=Mortgage";
        //queryString += "&mortgageType="+ document.getElementById(controlPrefix + "_rblMortgageType").value;
        queryString += "&mortgageType=" + jQuery("input[name$=rblMortgageType]:checked").val();
        queryString += "&mortageAmount="+ jQuery("input[id$=txtRequiredMortgage]").val();
        queryString += "&propertyValue="+ jQuery("input[id$=txtValueOfProperty]").val();
        //queryString += "&firstTimeBuyer="+ YN_to_10(document.getElementById(controlPrefix + "_rblFirstTimeBuyer").value);
        queryString += "&firstTimeBuyer=" + YN_to_10(jQuery("input[name$=rblFirstTimeBuyer]:checked").val());
        
        queryString += "&selfCertified="+ YN_to_10(jQuery("input[name$=rblSelfCertify]:checked").val());

        if (jQuery("[id$=cblCCJHistory_0]").is(":checked") ||
            jQuery("[id$=cblCCJHistory_1]").is(":checked") ||
            jQuery("[id$=cblCCJHistory_2]").is(":checked"))
        { queryString += "&badCreditRating=1"; }
        else
        { queryString += "&badCreditRating=0"; }
        
        queryString += "&postCode=" + jQuery("input[id$=txtPostcode]").val();
        queryString += "&ipAddress=" + ipAddress;
        queryString += "&affiliateId=" + jQuery("input[id$=hidAffiliateId]").val();
       
        url = url + queryString;
     
        // ======================= END build a URL with QueryString =====================================
       
        // make an async call
        xmlHttp.onreadystatechange=stateChanged;
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
        
   }
}

function YN_to_10(input)
{
    if(input =='Y')
        return '1';
    if(input =='N')
        return '0';
        
    return 'error';
}

//============================= 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)
    {   
        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 textXml = xmlHttp.responseText;
          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 to help you with your enquiry. <strong>" + xmlDoc.childNodes[3].childNodes[0].nodeValue + "</strong>. Click 'Submit' to confirm that you are happy to be contacted by telephone or email regarding your mortgage 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 mortgage details.";
            document.getElementById("brokerText").innerHTML = "There has been a problem trying to find an FSA regulated broker: "
                + xmlDoc.childNodes[1].childNodes[0].nodeValue;
            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;
    
    if (document.getElementById(controlPrefix + "_txtAddressLine1").value.trim() == '')
        return false;
        
    if (document.getElementById(controlPrefix + "_txtPostcode").value.trim() == '')
        return false;
        
    return true;
}
