﻿// JScript File

var ControlID = 'ctl00_cphMain_';
var bFormValid;
    
    
function DoValidate()
{
    var txt = document.getElementById('tes').validate();
    alert(!(txt.length>0));
}

function ShowAddress()
{
    var txt = document.getElementById('tes').getAddress();
    alert(txt.AddressRef);
}

function toggleHelp(helpDivClicked, helpIconClicked)
{
    if (document.getElementById(helpDivClicked).style.display == 'none')
    {
       document.getElementById(helpDivClicked).style.display='block';     
       document.getElementById(helpIconClicked).src='style/images/help_16_pressed.png';

    }
    else
    {
        document.getElementById(helpDivClicked).style.display='none'
        document.getElementById(helpIconClicked).src='style/images/help_16.png';
    }
}

function hideHelp(helpDiv2Hide)
{
    document.getElementById(helpDiv2Hide + 'Container').style.display='none'
    document.getElementById(helpDiv2Hide + 'Img').src='style/images/help_16.png';
}

function completeQuickAddress(ParamPrefix)
{
    switch(ParamPrefix)
    {
        case 'Sale':
        {
            ParamPrefix = 'S';
            fillAddress(ParamPrefix)
            break;
        }
        case 'Purchase':
        {
            ParamPrefix = 'P';
            fillAddress(ParamPrefix)
            break;
        }
        case 'Remortgage':
        {
            ParamPrefix = 'R';
            fillAddress(ParamPrefix)
            break;
        }
        case '-1':
        {
            ParamPrefix = 'Nothing';
            fillAddress(ParamPrefix)
            break;
        }
    }
}

function fillAddress(ParamPrefix)
{
    document.getElementById(ControlID + 'CorrespondenceQuickFillAddress_Line1').value = unescape(grabParam(ParamPrefix + "AL1"));
    document.getElementById(ControlID + 'CorrespondenceQuickFillAddress_Line2').value = grabParam(ParamPrefix + "AL2");
    document.getElementById(ControlID + 'CorrespondenceQuickFillAddress_Town').value = grabParam(ParamPrefix + "AT");
    document.getElementById(ControlID + 'CorrespondenceQuickFillAddress_County').value = grabParam(ParamPrefix + "AC");
    document.getElementById(ControlID + 'CorrespondenceQuickFillAddress_Postcode').value = grabParam(ParamPrefix + "ATP");
    var CountrySelectedIndex = grabParam(ParamPrefix + "ACY");
    if (CountrySelectedIndex == '')
    {
        CountrySelectedIndex = 0;
    }
    else
    {
        CountrySelectedIndex =+ 1;
    }
    document.getElementById(ControlID + 'CorrespondenceQuickFillAddress_Country').selectedIndex = CountrySelectedIndex-1;
}

function grabParam(name)
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return unescape(results[1].replace(/\+/g,' '));
}

    
function validateDetailsForm()
{
    bFormValid=true;
    var quoteType = document.getElementById(ControlID + 'QuoteType').value;

    switch(quoteType)
    {
        case 'SalePurchase':
        {
            ValidateFieldNumeric('SalePropertyPrice');
            //ValidateSelector('SaleRegistrationStatus');
            ValidateSelector('SaleTenure');
            ValidateAddress('SaleAddressLookup', '_Add');
            
            ValidateFieldNumeric('PurchasePropertyPrice');
            //ValidateSelector('PurchaseRegistrationStatus');
            ValidateSelector('PurchaseTenure');
            //ValidateAddress('PurchaseAddressLookup', '_Add');
            break; 
        }
        case 'Sale': 
        {
            ValidateFieldNumeric('SalePropertyPrice');
            //ValidateSelector('SaleRegistrationStatus');
            ValidateSelector('SaleTenure');
            ValidateAddress('SaleAddressLookup', '_Add');
            break;
        }  
        case 'Purchase':
        {
            ValidateFieldNumeric('PurchasePropertyPrice');
            //ValidateSelector('PurchaseRegistrationStatus');
            ValidateSelector('PurchaseTenure');
            break;                
        }  
        case 'Remortgage':
        {
            ValidateFieldNumeric('RemortgagePropertyValue');
            ValidateFieldNumeric('RemortgageAmountRequired');
            //ValidateSelector('RemortgageRegistrationStatus');
            ValidateSelector('RemortgageTenure');
            break;                    
        }  

    }
        if (bFormValid)
        {
        var sURL='results.aspx?quotetype=' + escape(document.getElementById(ControlID + 'QuoteType').value)
                    + '&SID=' + document.getElementById(ControlID + 'hidSID').value;
    
               
        try 
        {
            var SaleAddress;
            SaleAddress = document.getElementById(ControlID + 'SaleAddressLookup').getAddress();
            sURL=sURL+      '&SAL1=' + escape(SaleAddress.Line1) +
                            '&SAL2=' + escape(SaleAddress.Line2) +
                            '&SAT=' + escape(SaleAddress.Town) +
                            '&SAC=' + escape(SaleAddress.County) +
                            '&SATP=' + escape(SaleAddress.Postcode) +
                            '&SACY=' + escape(SaleAddress.Country) +
                            '&SAOSGE=' + escape(SaleAddress.OSGridRefEasting) +
                            '&SAOSGN=' + escape(SaleAddress.OSGridRefNorthing);
        }
        catch(err){}
        try
        {
            var PurchaseAddress;
            PurchaseAddress = document.getElementById(ControlID + 'PurchaseAddressLookup').getAddress();
            sURL=sURL+      '&PAL1=' + escape(PurchaseAddress.Line1) +
                            '&PAL2=' + escape(PurchaseAddress.Line2) +
                            '&PAT=' + escape(PurchaseAddress.Town) +
                            '&PAC=' + escape(PurchaseAddress.County) +
                            '&PATP=' + escape(PurchaseAddress.Postcode) +
                            '&PACY=' + escape(PurchaseAddress.Country) +
                            '&PAOSGE=' + escape(PurchaseAddress.OSGridRefEasting) +
                            '&PAOSGN=' + escape(PurchaseAddress.OSGridRefNorthing);
        }
        catch(err){}
        try
        {     
            var RemortgageAddress = document.getElementById(ControlID + 'RemortgageAddressLookup').getAddress();
            sURL=sURL+      '&RAL1=' + escape(RemortgageAddress.Line1) +
                            '&RAL2=' + escape(RemortgageAddress.Line2) +
                            '&RAT=' + escape(RemortgageAddress.Town) +
                            '&RAC=' + escape(RemortgageAddress.County) +
                            '&RATP=' + escape(RemortgageAddress.Postcode) +
                            '&RACY=' + escape(RemortgageAddress.Country) +
                            '&RAOSGE=' + escape(RemortgageAddress.OSGridRefEasting) +
                            '&RAOSGN=' + escape(RemortgageAddress.OSGridRefNorthing);
        }
        catch(err){}    
            
    switch(quoteType)
    {
        case 'SalePurchase':
        {
            var sURL=sURL + 
                            '&SPP=' + document.getElementById('SalePropertyPrice').value +
                            //'&SRS=' + document.getElementById('SaleRegistrationStatus').value +
                            '&ST=' + document.getElementById('SaleTenure').value +
                            '&PPP=' + document.getElementById('PurchasePropertyPrice').value +
                            //'&PRS=' + document.getElementById('PurchaseRegistrationStatus').value +
                            '&PT=' + document.getElementById('PurchaseTenure').value;
                                 
            break; 
        }
        case 'Sale': 
        {
            var sURL=sURL + '&SPP=' + document.getElementById('SalePropertyPrice').value +
                            //'&SRS=' + document.getElementById('SaleRegistrationStatus').value +
                            '&ST=' + document.getElementById('SaleTenure').value;
            break;
        }  
        case 'Purchase':
        {
            var sURL=sURL + '&PPP=' + document.getElementById('PurchasePropertyPrice').value +
                            //'&PRS=' + document.getElementById('PurchaseRegistrationStatus').value +
                            '&PT=' + document.getElementById('PurchaseTenure').value;
            break;                
        }  
        case 'Remortgage':
        {
            var sURL=sURL + '&RPV=' + escape(document.getElementById('RemortgagePropertyValue').value) +
                            '&RAR=' + escape(document.getElementById('RemortgageAmountRequired').value) +
                            //'&RRS=' + escape(document.getElementById('RemortgageRegistrationStatus').value) +
                            '&RT=' + escape(document.getElementById('RemortgageTenure').value);
            break;                    
        }  
    }

    var sURL=sURL + '&DecacheId=' + Math.random();
    location.href=sURL;
    }
}

function validateClientDetailsForm()
{
    bFormValid=true;
    ValidateFieldString(ControlID + 'ClientTitle');
    ValidateFieldString(ControlID + 'Forename');
    ValidateFieldString(ControlID + 'Surname');
    ValidateEmailAddress(ControlID + 'EmailAddress');
    ValidateTelephoneNumber(ControlID + 'Telephone'); 
    ValidateAddress('CorrespondenceQuickFillAddress', '');
    return bFormValid;
}

function validateRequestCallbackForm()
{
    bFormValid=true;
    ValidateFieldString('ContactName');
    ValidateTelephoneNumber('ContactNumber');
    ValidateFieldString('ContactNotes');
    //ValidateCheckbox('ContactDPA');
    return bFormValid;
}


function ValidateAddress(FieldName, addSuffix)
{  
    var bAddressValid = true;
    try
    {
        Address = new Object;
        Address.Line1 = document.getElementById(ControlID + FieldName + addSuffix + '_Line1').value;
        Address.Line2 = document.getElementById(ControlID + FieldName + addSuffix + '_Line2').value;
        Address.Town = document.getElementById(ControlID + FieldName + addSuffix + '_Town').value;
        Address.County = document.getElementById(ControlID + FieldName + addSuffix +'_County').value;
        Address.Postcode = document.getElementById(ControlID + FieldName + addSuffix + '_Postcode').value; 
        Address.Country = document.getElementById(ControlID + FieldName + addSuffix + '_Country').value;

        var AddressErrorMessage = '';
        
//        if (Address.Line1 == '')
//        {
//            AddressErrorMessage = '<p>Please enter the first line of the address</p>';
//            bAddressValid = false;
//        }
//        if (Address.Town == '')
//        {
//            AddressErrorMessage += '<p>Please enter the town</p>';
//            bAddressValid = false;        
//        }
//        if (Address.County == '')
//        {
//            AddressErrorMessage += '<p>Please enter the county</p>';
//            bAddressValid = false;        
//        }
        if (Address.Country == '-1')
        {
            AddressErrorMessage += '<p>Please select the country</p>';
            bAddressValid = false;        
        }

        if (!bAddressValid)
        {
            document.getElementById(FieldName + '_ErrorMessageContainer').innerHTML = AddressErrorMessage; 
            document.getElementById(FieldName + '_ErrorMessageContainer').style.display='block';
            document.getElementById(FieldName + '_Container').className='FieldValidationerror'; 
            bFormValid = false;
        }
        else
        {
            document.getElementById(FieldName + '_ErrorMessageContainer').style.display='none';
            document.getElementById(FieldName + '_Container').className='Field'; 
        }
    }
    catch(err)
    {
        //If there is an error then the postcode object doesnt exist so we display validation error on page
        document.getElementById(FieldName + '_ErrorMessageContainer').style.display='block';
        document.getElementById(FieldName + '_Container').className='FieldValidationerror';
        bFormValid = false;
    }
}

function ValidateFieldString(FieldName) 
{
    if (document.getElementById(FieldName).value.toString().trim().length == 0)
    {
        document.getElementById(FieldName + '_ErrorMessageContainer').style.display='block';
        document.getElementById(FieldName + '_Container').className='FieldValidationerror';
        bFormValid = false;
    }
    else
    {
        document.getElementById(FieldName + '_ErrorMessageContainer').style.display='none';
        document.getElementById(FieldName + '_Container').className='Field';    
    }
}

function ValidateFieldNumeric(FieldName) 
{
    //remove any currency symbols and commas
    var sFieldValue = document.getElementById(FieldName).value.replace(/[£,]/g,"");
             
    //If the field is not a number or has nothing in it then alert the user
    if(isNaN(sFieldValue) || (sFieldValue.length==0)) {
        try {
            document.getElementById(FieldName + '_ErrorMessageContainer').style.display='block';
            document.getElementById(FieldName + '_Container').className='FieldValidationerror';
            bFormValid = false;
        }
        catch(objError){
        }
    }
    else {
        try {
            document.getElementById(FieldName + '_ErrorMessageContainer').style.display='none';
            document.getElementById(FieldName + '_Container').className='Field';
            hideHelp(FieldName + '_Help');
        }
        catch(objError){
        }
    }
}

function ValidateSelector(FieldName)
{
    if (document.getElementById(FieldName).value=='-1') 
    {
        document.getElementById(FieldName + '_ErrorMessageContainer').style.display='block';
        document.getElementById(FieldName + '_Container').className='FieldValidationerror';  
        bFormValid = false;
    }
    else
    {
        document.getElementById(FieldName + '_ErrorMessageContainer').style.display='none';
        document.getElementById(FieldName + '_Container').className='Field'; 
        try
        {
            //Some forms dont have the help div
            hideHelp(FieldName + '_Help');
        }
        catch(err) {
            // Do nothing
        }
    }
}

function ValidateCheckbox(FieldName) 
{
    if (document.getElementById(FieldName).checked == false)
    {
        document.getElementById(FieldName + '_ErrorMessageContainer').style.display='block';
        document.getElementById(FieldName + '_Container').className='FieldValidationerror';
        bFormValid = false;
    }
    else
    {
        document.getElementById(FieldName + '_ErrorMessageContainer').style.display='none';
        document.getElementById(FieldName + '_Container').className='Field';    
    }
}


function ValidateEmailAddress(FieldName)
{
    if (document.getElementById(FieldName).value.checkEmail()==false)            
    {
        document.getElementById(FieldName + '_ErrorMessageContainer').innerHTML='<p>Please enter a valid email address</p>';
        document.getElementById(FieldName + '_ErrorMessageContainer').style.display='block';
        document.getElementById(FieldName + '_Container').className='FieldValidationerror';
        bFormValid = false;
    }     
    else 
    {
        document.getElementById(FieldName + '_ErrorMessageContainer').innerHTML='<p>Please enter your email address</p>';
        document.getElementById(FieldName + '_ErrorMessageContainer').style.display='none';
        document.getElementById(FieldName + '_Container').className='Field'; 
    }
}

function ValidateTelephoneNumber(FieldName)
{
    var strPatters = /.\d+.*\d+.*\d+.*\d+.*\d+.*\d+.*\d+.*/;
    var regex = new RegExp(strPatters);
    if (regex.test(document.getElementById(FieldName).value.toString().trim()) == false)
    {
        //not valid phone number
        document.getElementById(FieldName + '_ErrorMessageContainer').style.display='block';
        document.getElementById(FieldName + '_Container').className='FieldValidationerror'; 
        bFormValid = false;
    }
    else 
    {
        document.getElementById(FieldName + '_ErrorMessageContainer').style.display='none';
        document.getElementById(FieldName + '_Container').className='Field';                
    }
}

function numericFieldCleanString(sender)
{
    var value = sender.value;   
    var rx = new RegExp(/[^0-9.]/g);
    value = value.replace(rx, "");
    sender.value = value;
}

function telephoneFieldCleanString(sender)
{
    var value = sender.value;   
    var rx = new RegExp(/[^0-9 +.]/g);
    value = value.replace(rx, "");
    sender.value = value;
}

function StripUnsafeChars(fieldId) {
	var field = $(fieldId);
	if (field && field.value && field.value.length > 0) {
		var replaceRgx = new RegExp("[\\/<>]", "g");
		field.value = field.value.replace(replaceRgx, "");
	}
}

String.prototype.checkEmail = function()
{
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(this))
        {
        return (true);
        }
    return (false);
}

String.prototype.trim = function()
{
    var sRetVal;
    
    sRetVal = this.replace(/^[\s]+/g,'');
    sRetVal = this.replace(/[\s]+$/g,'');

    return sRetVal; 
}