﻿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 = "/Common/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 += "&DOBDay=" + document.getElementById(controlPrefix + "_hdDOBDay").value;
        queryString += "&DOBMonth=" + document.getElementById(controlPrefix + "_hdDOBMonth").value;
        queryString += "&DOBYear=" + document.getElementById(controlPrefix + "_hdDOBYear").value;
        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 " + xmlDoc.childNodes[3].childNodes[0].nodeValue + " to help you with your enquiry. Click 'Submit' to confirm that you are happy to be contacted by telephone or email regarding your equity release 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 equity release 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;
}
