﻿
var _prefix = "ctl00_";

function LoadBroker() {
    DisableRow('rInstruct');
    DisableRow('tReset'); 
} //LoadBroker

function EnableReset() {
    ResetAll();
    DisableRow('rEnable');
    EnableRow('tReset');
    return false;
} //EnableReset

function DisableReset() {
    DisableRow('tReset');
    EnableRow('rEnable');
    return false;
} //DisableReset

function ValidateInput() {
    var BrokerName = document.getElementById(_prefix + 'txtName');
    var BrokerSurname = document.getElementById(_prefix + 'txtSurname');
    var BrokerMail = document.getElementById(_prefix + 'txtMail');
    var BrokerCompany = document.getElementById(_prefix + 'txtCompany');
    var BrokerAggregator = document.getElementById(_prefix + 'txtAgg');
    var BrokerCapt = document.getElementById(_prefix + 'txtCapt');

    ClearInstructions();

    if (BrokerName.value == '') {
        SetInstructions('Missing value: Please enter your name.', 'rName', " *** Required field *** ");
        return false;
    }
    else if (BrokerSurname.value == '') {
        SetInstructions('Missing value: Please enter your surname.', 'rSurname', " *** Required field *** ");
        return false;
    }
    else if (BrokerMail.value == '') {
        SetInstructions('Missing value: Please enter your e-mail address.', 'rMail', " *** Required field *** ");
        return false;
    }
    else if (BrokerCompany.value == '') {
        SetInstructions('Missing value: Please enter your company name.', 'rCompany', " *** Required field *** ");
        return false;
    }
    else if (BrokerCapt.value == '') {
        SetInstructions('Missing value: Please enter the secure text.', 'rCaptcha', " *** Required field *** ");
        return false;
    }
    else {
        if (CheckCharacters(BrokerName, BrokerSurname, BrokerCompany, BrokerAggregator, BrokerCapt) == false) {
            return false;
        }
        else if (CheckValues(BrokerName, BrokerSurname, BrokerCompany, BrokerAggregator) == false) {
            return false;
        }
        else {
            var BrokerDetails = new Array();
            BrokerDetails[0] = BrokerName.value;
            BrokerDetails[1] = BrokerSurname.value;
            BrokerDetails[2] = BrokerMail.value;
            BrokerDetails[3] = BrokerCompany.value;
            if (BrokerAggregator.value != '') { BrokerDetails[4] = BrokerAggregator.value; } else { BrokerDetails[4] = 'N\\A'; }
            BrokerDetails[5] = BrokerCapt.value;

            //Callback to the server.
            ResetBroker(BrokerDetails);
            return false;
        }
    }
} //ValidateInput

function SetInstructions(oMessage, oName, oValue) {
    DisableRow('rLoad');
    EnableRow('rInstruct');
    SetText(oMessage);
    document.getElementById(oName).cells[2].innerHTML = oValue;
} //SetInstructions

function ClearInstructions() {
    document.getElementById('rName').cells[2].innerHTML = "";
    document.getElementById('rSurname').cells[2].innerHTML = "";
    document.getElementById('rMail').cells[2].innerHTML = "";
    document.getElementById('rCompany').cells[2].innerHTML = "";
    document.getElementById('rAgg').cells[2].innerHTML = "";
    document.getElementById('rCaptcha').cells[2].innerHTML = "";
} //ClearInstructions

function CheckCharacters(BrokerName, BrokerSurname, BrokerCompany, BrokerAggregator, BrokerCapt) {
    if (CheckKey(BrokerName) == false) { SetInstructions('Invalid characters are not allowed.', 'rName', " *** Invalid *** "); return false; }
    else if (CheckKey(BrokerSurname) == false) { SetInstructions('Invalid characters are not allowed.', 'rSurname', " *** Invalid *** "); return false; }
    else if (CheckKey(BrokerCompany) == false) { SetInstructions('Invalid characters are not allowed.', 'rCompany', " *** Invalid *** "); return false; }
    else if (CheckKey(BrokerAggregator) == false) { SetInstructions('Invalid characters are not allowed.', 'rAgg', " *** Invalid *** "); return false; }
    else if (CheckKey(BrokerCapt) == false) { SetInstructions('Invalid characters are not allowed.', 'rCaptcha', " *** Invalid *** "); return false; }
} //CheckCharacters

function CheckValues(BrokerName, BrokerSurname, BrokerCompany, BrokerAggregator) {
    if (!isNaN(BrokerName.value)) { SetInstructions('Name cannot be numeric.', 'rName', " *** Invalid *** "); return false; }
    else if (!isNaN(BrokerSurname.value)) { SetInstructions('Surname cannot be numeric.', 'rSurname', " *** Invalid *** "); return false; }
    else if (!isNaN(BrokerCompany.value)) { SetInstructions('Company cannot be numeric.', 'rCompany', " *** Invalid *** "); return false; }
    else { return true; }
} //CheckValues

//Look for illegal characters.
//Used to validate a character.
function CheckKey(obj) {
    var keys = "&#^*+=~|\/><[]{}$";
    var oValue = obj.value;

    //Look for invalid characters
    if (LoopKeys(obj, keys, oValue) == false) { return false; }
} //CheckKey

//Check the input for illegal characters
function LoopKeys(obj, keys, oValue) {
    for (i = 0; i < oValue.length; i++) {
        if (keys.indexOf(oValue.substr(i, 1)) != -1) {
            if (keys != "@") {
                obj.value = "";
                obj.focus();
            }
            i = oValue.length;
            return false;
        }
    }
} //LoopKeys

function ResetAll() {
    EnableRow('rName');
    EnableRow('rSurname');
    EnableRow('rMail');
    EnableRow('rCompany');
    EnableRow('rAgg');
    EnableRow('rManda');
    EnableRow('rCaptcha');
    EnableRow('rCaptcha2');
    EnableRow('rButton');

    DisableRow('rInstruct');
    EnableRow('rLoad');
    ClearInstructions();

    document.getElementById(_prefix + 'txtName').value = "";
    document.getElementById(_prefix + 'txtSurname').value = "";
    document.getElementById(_prefix + 'txtMail').value = "";
    document.getElementById(_prefix + 'txtCompany').value = "";
    document.getElementById(_prefix + 'txtAgg').value = "";
    document.getElementById(_prefix + 'txtCapt').value = "";
} //ResetAll

//Makes a row visible.
function EnableRow(oName) {
    if (document.getElementById(oName) != null) {
        document.getElementById(oName).style.display = "";
    }
} //EnableRow

//Makes a row invisible.
function DisableRow(oName) {
    if (document.getElementById(oName) != null) {
        document.getElementById(oName).style.display = "none";
    }
} //DisableRow

//Set the applicable text for a scenario.
function SetText(objValue) {
    document.getElementById('rInstruct').cells[0].innerHTML = objValue;
} //SetText

//Set final instructions to the broker.
function BrokerResponse(SevrMsg) {
    if (SevrMsg == 'An application error has occurred. Please try again, or phone the Broker Support desk if the error persists.') {
        DisableAll();
        EnableRow('rEnable');
    }
    else {
        if (SevrMsg == 'Your password will be reset once you have been authenticated by Broker Support.') {
            DisableAll();
        }
        else if (SevrMsg == 'Your E-mail address is not valid, please enter a valid e-mail address.') {
            document.getElementById('rMail').cells[2].innerHTML = " *** Invalid *** ";
            document.getElementById(_prefix + 'txtMail').focus();
        }
        else if (SevrMsg == 'Please add the correct secure text.') {
            document.getElementById('rCaptcha').cells[2].innerHTML = " *** Invalid *** ";
            document.getElementById(_prefix + 'txtCapt').focus();
        }
    }

    DisableRow('rLoad');
    EnableRow('rInstruct');
    SetText(SevrMsg);
} //BrokerResponse

function DisableAll() {
    DisableRow('rName');
    DisableRow('rSurname');
    DisableRow('rMail');
    DisableRow('rCompany');
    DisableRow('rAgg');
    DisableRow('rManda');
    DisableRow('rCaptcha');
    DisableRow('rCaptcha2');

    document.getElementById('rMail').cells[2].innerHTML = "";
    DisableRow('rButton');
} //DisableAll

function FlashImage() {
    var so = new SWFObject("App_Themes/Banners/PNCS_homeloan.swf", "flashcontent", "690", "80", "0", "#FFFFFF");
    so.addParam("quality", "high")
    so.addParam("wmode", "transparent")
    so.write("bannerflash");
} //FlashImage
