function validate() {
	document.getElementById('warning').style.display = "none"
	var txtForenames = document.getElementById("txtForenames"); resetError(txtForenames)
	var txtSurname = document.getElementById("txtSurname"); resetError(txtSurname);
	var txtHometelno = document.getElementById("txtHometelno"); resetError(txtHometelno);
	var txtMobiletelno = document.getElementById("txtMobiletelno"); resetError(txtMobiletelno);
	var txtEmail = document.getElementById("txtEmail"); resetError(txtEmail);
	var msg = "";
	
	if (vrule_name(txtForenames.value) && vrule_name(txtSurname.value) && (vrule_telephone(txtHometelno.value) || vrule_telephone(txtMobiletelno.value)) && vrule_email(txtEmail.value))  {
		// tidy up the field content before submitting
		document.getElementById("txtHometelno").value = vtidy_telephone( txtHometelno.value );
		document.getElementById("txtMobiletelno").value = vtidy_telephone( txtMobiletelno.value );
		if(txtEmail.value == "Email"){
			document.getElementById("txtEmail").value  = ""
		}
		if(txtMobiletelno.value == "Mobile"){
			document.getElementById("txtMobiletelno").value  = ""
		}
		return true;	
	} else {
		
		if (!vrule_name(txtForenames.value)){highlightError(txtForenames);msg = msg + "<li>First name</li>"} 
		if (!vrule_name(txtSurname.value)){highlightError(txtSurname);msg = msg + "<li>Surname</li>"} 
		if (!vrule_telephone(txtHometelno.value) && !vrule_telephone(txtMobiletelno.value)){highlightError(txtHometelno); msg = msg + "<li>A valid home or mobile phone number</li>"} 
		if (!vrule_email(txtEmail.value)){highlightError(txtEmail); msg = msg + "<li>A valid email address</li>"}
		
		displayError ("<strong>Please make sure you have filled in the required fields</strong><ul>" + msg + "</ul>")
		window.location = window.location + "#"
		return false;
	}
}

function vrule_telephone( value ) {
	
	value = vtidy_telephone( value );
	
	telNoPattern = /^\d{11}$/;
	return telNoPattern.test(value);
}

function vtidy_telephone( value ) {
	// strip out any spaces and other junk
	return value.replace( /[^0-9]/g, "");
}

function vrule_name( value ) {
	
	if (value.length == 0 || value == "First name" || value == "Surname") return false; // name is required
	
	telNoPattern = /^[a-zA-Z\-\' ]*$/;
	
	return telNoPattern.test(value);
}

function vrule_text( value ) {
	
	if (value.length == 0){return false; }
	else
	{return true}
}

function vrule_DOB( value ) {

    if (isNaN(value) == true){
        return false
    }
    else
    {
        return value
    }   
}

function vrule_DOB_day( value ) {

    if (isNaN(value) == true){
        return false
    }
    else
    {
       if(value > 0 && value <=31)
       {return true}
       else
       {return false}
       
    }   

}

function vrule_DOB_month( value ) {

    if (isNaN(value) == true){
        return false
    }
    else
    {
       if(value > 0 && value <= 12)
       {return true}
       else
       {return false}
       
    }   

}

function vrule_income( value ) {

    if (isNaN(value) == true){
        return false
    }
    else
    {
        if (value >= 800)
        {
            return true
        }
        else
        {
            return false
        }
    }   

}


function vrule_DateOfBirth(day, month, year, today,todaymonth,todayyear){

//one year in milliseconds
var oneyear = 1000*60*60*24*365.25

var datestring = new Date(year,month,day)
var todaysdate = new Date(todayyear,todaymonth,today)

var difference = (todaysdate.getTime() - datestring.getTime())/oneyear

if (difference > 21){
return true
}
else
{
return false
}
}

function vrule_email( value ) {
	
	if (value.length == 0 || value=="Email") return true; // email address is optional

	telNoPattern = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
	
	return telNoPattern.test(value);
}


function highlightError( id ){
	id.style.borderColor='#FF0000';

}

function resetError( id ){
	id.style.borderColor='#000000';
	id.style.backgroundImage  = 'none'
}

function displayError( msg ){
	document.getElementById('warning').style.display = "block"
	document.getElementById('warning').innerHTML = msg
}
