﻿// JScript File

function validateForm()
{
    var 
        objAddress          = document.getElementById('txtAddress'),
        objPostcode         = document.getElementById('txtPostCode'),
        objEmail            = document.getElementById('txtEmail'),
        objHowMuch          = document.getElementById('txtHowMuch'),
        objPropertyValue    = document.getElementById('txtPropertyValue'),
        objMortgageType     = document.getElementById('drpMortgageType'),
        objHowLong          = document.getElementById('drpHowLong'),
        objTitle            = document.getElementById('drpTitle'),
        objName             = document.getElementById('txtName'),
        objSelfCertYes      = document.getElementById('rblSelfCertYes'),
        objSelfCertNo       = document.getElementById('rblSelfCertNo'),
        objMissedPayYes     = document.getElementById('rblMissedPayYes'),
        objMissedPayNo      = document.getElementById('rblMissedPayNo'),
        objHomePhone        = document.getElementById('txtHomePhone'),
        objWorkMobile       = document.getElementById('txtWorkMobile'),
        objDOBDay           = document.getElementById('DOBDay'),
        objDOBMonth         = document.getElementById('DOBMonth'),
        objDOBYear          = document.getElementById('DOBYear'),
        objRecaptcha        = document.getElementById('recaptcha_challenge_field'),
        objloader           = document.getElementById('loader'),
        objsubmit           = document.getElementById('submitImg'),
        strError            = '',
        strPhone            = '',
        strPrefix           = '',
		objErrorFocus;
    
       //how much
        if(objHowMuch.value == "")
        {
            strError = strError + '\n- Please tell us how much you want to borrow';
            if(!objErrorFocus)
                objErrorFocus = objHowMuch;
        }
        
       //value
        if(objPropertyValue.value == "")
        {
            strError = strError + '\n- Please tell us the value of the property';
            if(!objErrorFocus)
                objErrorFocus = objPropertyValue;
        }
        
       //m type
        if(objMortgageType.selectedIndex == 0)
        {
            strError = strError + '\n- Please tell us what type of mortgage your looking for';
            if(!objErrorFocus)
                objErrorFocus = objMortgageType;
        }
        
       //years
        if(objHowLong.selectedIndex == 0)
        {
            strError = strError + '\n- Please tell us the number of years you would like the mortgage';
            if(!objErrorFocus)
                objErrorFocus = objHowLong;
        }
   
       //title
        if(objTitle.selectedIndex == 0)
        {
            strError = strError + '\n- Please select your title';
            if(!objErrorFocus)
                objErrorFocus = objTitle;
        }
       
       //name
        if(objName.value == "")
        {
            strError = strError + '\n- Please enter your name';
            if(!objErrorFocus)
                objErrorFocus = objName;
        }
        
       //address
        if(objAddress.value == "")
        {
            strError = strError + '\n- Please enter your address';
            if(!objErrorFocus)
                objErrorFocus = objAddress;
        }
        
       //postcode
        if(objPostcode.value == "")
        {
            strError = strError + '\n- Please enter your postcode.';
            if(!objErrorFocus)
                objErrorFocus = objPostcode;
        }
        else
        {
              if (!validatePostcode())
                {
	                strError = strError + '\n- Please enter a valid postcode, ensuring there is a space between the prefix and suffix e.g. E17 1RT';
	                if(!objErrorFocus)
		                objErrorFocus = objPostcode;
                }
        }
        
       //homephone
       strPhone = objHomePhone.value;
       
       if(strPhone.length > 2)
       {
            strPrefix = Left(strPhone, 2)
       }
    		
        if(strPrefix != '00' && strPrefix != '01' && strPrefix != '02' && strPrefix != '07' && strPrefix != '08')
        {
            strError = strError + '\n- Please enter a valid phone number';
            if(!objErrorFocus)
                objErrorFocus = objHomePhone;

        }	
        
       //work phone
       /*
       strPhone = objWorkMobile.value;
       
       if(strPhone.length > 2)
        {
            strPrefix = Left(strPhone, 2)
   
            if(strPrefix != '00' && strPrefix != '01' && strPrefix != '02' && strPrefix != '07' && strPrefix != '08')
            {
                strError = strError + '\n- Please enter a valid work/mobile number';
                if(!objErrorFocus)
                    objErrorFocus = objWorkMobile;

            }	
       }
       */
       //email
        if(objEmail.value == '')
        {
            strError = strError + '\n- Please enter your email address';
            if(!objErrorFocus)
                objErrorFocus = objEmail;

        }	
        else
        {
            if(!IsValidEmail(objEmail.value))
            {
                strError = strError + '\n- Please enter a valid email address';
                if(!objErrorFocus)
                objErrorFocus = objEmail;
            }
        }
       //dob
        if (objDOBDay.selectedIndex == 0 || objDOBMonth.selectedIndex == 0 || objDOBYear.selectedIndex == 0)
        {
            strError = strError + '\n- Please supply a complete D.O.B';
            if(!objErrorFocus)
                objErrorFocus = objDOBDay;
        }

        //cert
        if (!objSelfCertYes.checked && !objSelfCertNo.checked)
        {
            strError = strError + '\n- Please select whether you need to self certify income';
            if(!objErrorFocus)
                objErrorFocus = objSelfCertYes;
        }
        //missing
        if (!objMissedPayYes.checked && !objMissedPayNo.checked)
        {
            strError = strError + '\n- Please select whether yout have missed a loan/mortgage payment in the last 12 months';
            if(!objErrorFocus)
                objErrorFocus = objMissedPayYes;
        }

        if (strError != '')
        {
            alert('Please correct the following error(s)' + strError);
            objErrorFocus.focus();
            return false
        }
        //objloader.style.visibility="visible";
        //objsubmit.style.visibility="hidden";
        return true    
    
}

function validatePostcode()
{
    objPostCode = document.getElementById('txtPostCode');

    test = objPostCode.value;
    size = test.length;
    test = test.toUpperCase(); //Change to uppercase
    while (test.slice(0,1) == " ") //Strip leading spaces
    {test = test.substr(1,size-1);size = test.length
    }
    while(test.slice(size-1,size)== " ") //Strip trailing spaces
    {test = test.substr(0,size-1);size = test.length
    }
    objPostCode.value = test; //write back to form field
    if (size < 6 || size > 8){ //Code length rule
    return false;
    }
    if (!(isNaN(test.charAt(0)))){ //leftmost character must be alpha character rule
    return false;
    }
    if (isNaN(test.charAt(size-3))){ //first character of inward code must be numeric rule
    return false;
    }
    if (!(isNaN(test.charAt(size-2)))){ //second character of inward code must be alpha rule
    return false;
    }
    if (!(isNaN(test.charAt(size-1)))){ //third character of inward code must be alpha rule
    return false;
    }
    if (!(test.charAt(size-4) == " ")){//space in position length-3 rule
    return false;
    }
    count1 = test.indexOf(" ");count2 = test.lastIndexOf(" ");
    if (count1 != count2){//only one space rule
    return false;
    }
    return true

}	

function Left(str, n){
    if (n <= 0)
        return "";
    else if (n > String(str).length)
        return str;
    else
        return String(str).substring(0,n);
}

function isNumberKey(evt)
{
     var charCode = (evt.which) ? evt.which : event.keyCode
     if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;

 return true;
}

//C/O http://javascript.internet.com/forms/email-validation---basic.html
function IsValidEmail(email) 
{
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(email))
    {
        return (true)
    }
    return (false)
}

function validateEmail()
{
      objEmail = document.getElementById('txtEmailNewsLetter')
      
      if(!IsValidEmail(objEmail.value))
        {
            alert('Please enter a valid email address')
            objEmail.focus();
            return false;
        }
        return true;
}