﻿
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('txtName');
    var BrokerSurname = document.getElementById('txtSurname');
    var BrokerMail = document.getElementById('txtMail');
    var BrokerCompany = document.getElementById('txtCompany');
    var BrokerAggregator = document.getElementById('txtAgg');
    var BrokerCapt = document.getElementById('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('txtName').value = "";
    document.getElementById('txtSurname').value = "";
    document.getElementById('txtMail').value = "";
    document.getElementById('txtCompany').value = "";
    document.getElementById('txtAgg').value = "";
    document.getElementById('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('txtMail').focus();
        }
        else if(SevrMsg == 'Please add the correct secure text.')
        {
            document.getElementById('rCaptcha').cells[2].innerHTML = " *** Invalid *** ";
            document.getElementById('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
