function isValidForm()
{
	
	var error = false;
	var msg = "Please revise the following:";
	
//*************************
	if( isNotEmpty('Firstname')) {
		if( isNotNormalText('Firstname')) {
			error = true;
			msg += "\n - Unexpected characters in First Name";
		}
	}
	else {
		error = true;
		msg += "\n - First Name is required";
	}
	
//*************************
	if(isNotEmpty('Lastname')) {
		if(isNotNormalText('Lastname')) {
			error = true;
			msg += "\n - Unexpected characters in Last Name";
		}
	}
	else {
		error = true;
		msg += "\n - Last Name is required";
	}	
	
//*************************
	if(isNotEmpty('Address1')) {
		if(isNotNormalText('Address1')) {
			error = true;
			msg += "\n - Unexpected characters in Address";
		}
	}
	else {
		error = true;
		msg += "\n - Address is required";
	}	
	
//*************************	
	if (isNotSelected('Country')){
		error = true;
		msg += "\n - Select your Country";				
	}	
	
//*************************
	if(isNotEmpty('Postcode')) {
		if(isNotNormalText('Postcode')) {
			error = true;
			msg += "\n - Unexpected characters in Postcode";
		}
	}
	else {
		error = true;
		msg += "\n - Postcode is required";
	}	
	
//*************************
	if( isNotEmpty('Email')) {
		if(isNotEmailAddr('Email'))	{
			error = true;
			msg += "\n - Email format incorrect";
		}
	}
	else {
		error = true;
		msg += "\n - Email is required";
	}
	
	if(isNotEmpty('Email_confirm'))	{			
		if(isNotEmailAddr('Email_confirm')) {
			error = true;
			msg += "\n - Confirm Email format incorrect";
		}
	}
	else {
		error = true;
		msg += "\n - Confirm Email is required";
	}		
	// verify email
	if(!areFieldsVerified('Email', 'Email_confirm')) {
		error = true;
		msg += "\n - Email addresses are different";
	}			
	
//*************************
	if(isNotEmpty('Phone'))	{
		if(isNotTelFaxNumber('Phone')) {
			error = true;
			msg += "\n - Phone Number is either to short or includes incorrect characters";
		}
	}
	else {
		error = true;
		msg += "\n - Phone Number is required";
	}





//*************************
	if (isNotSelected('method')){
		error = true;
		msg += "\n - Select a supply of invoice/receipt method";			
	}
	else {
		if (document.registration.method.value == "Upload"){
			if(isNotEmpty('file')) {
			}
			else {
				error = true;
				msg += "\n - Upload file is required";
			}
		}
	}

//*************************
	if (isNotSelected('payment')){
		error = true;
		msg += "\n - Select a payment method";				
	}
	else
	{
		if (document.registration.payment.value == "BACS"){
			if(isNotEmpty('account_name')) {
				if(isNotNormalText('account_name')) {
					error = true;
					msg += "\n - Unexpected characters in Account Name";
				}
			}
			else {
				error = true;
				msg += "\n - Account Name is required";
			}
			
			if(isNotEmpty('account_number')){
			}
			else
			{
				error = true;
				msg += "\n - Account Number is required";
			}
			
			if(isNotEmpty('sort_code')) {
			}
			else {
				error = true;
				msg += "\n - Sort Code is required";
			}
				
//***************
			if(isNotEmpty('bank_name'))
			{
				if(isNotNormalText('bank_name')) {
					error = true;
					msg += "\n - Unexpected characters in Bank Name";
				}
			}
			else {
				error = true;
				msg += "\n - Bank Name is required";
			}

//***************				
			if(isNotEmpty('bank_address')) {
			}
			else {
				error = true;
				msg += "\n - Bank Address is required";
			}
		}
	}
		
//*************************
	if (document.registration.terms.checked){
	}
	else {
		error = true;
		msg += "\n - You must accept the terms and conditions";
	}		

	
/***** Error Message *****/

	if( error ) {
		alert( msg );
		return false;
	}
	else return true;
}





/********** FUNCTIONS USED IN VALIDATEFORM **********/

function fieldExist(field) 
{
	if (document.layers) 
	{
		return ( document.layers[''+field+''] ) ? true : false;
	}
	else if (document.all) 
	{
		return ( document.all[''+field+''] ) ? true : false;
	}
	else if (document.getElementById)
	{				
		return ( document.getElementById(''+field+'') ) ? true : false;
	}			
}		

function areFieldsVerified(field1, field2) 
{
	if (document.layers) 
	{
		return ( document.layers[''+field1+''].value == document.layers[''+field2+''].value ) ? true : false;
	}
	else if (document.all) 
	{
		return ( document.all[''+field1+''].value == document.all[''+field2+''].value ) ? true : false;
	}
	else if (document.getElementById)
	{				
		return ( document.getElementById(''+field1+'').value == document.getElementById(''+field2+'').value ) ? true : false;
	}			
}	

function isNotEmpty(field) 
{
	if (document.layers) 
	{
		var str = document.layers[''+field+''].value;
		return ( str.length == 0 ) ? false : true;
	}
	else if (document.all) 
	{
		var str = document.all[''+field+''].value;
		return ( str.length == 0 ) ? false : true;
	}
	else if (document.getElementById)
	{
		var str = document.getElementById(''+field+'').value;				
		return ( str.length == 0 ) ? false : true;
	}			
}		
		
function isNotNormalText(field)
{			
	if (document.layers) 
	{
		var str = document.layers[''+field+''].value;
		/*var re = /[a-zA-Z0-9_]+/;*/				
		var re = /[\w\d\'\s]+/;				
		return ( !str.match(re) ) ? true : false;
	}
	else if (document.all) 
	{
		var str = document.all[''+field+''].value;
		var re = /[\w\d\'\s]+/;
		return ( !str.match(re) ) ? true : false;				
	}
	else if (document.getElementById)
	{
		var str = document.getElementById(''+field+'').value;				
		var re = /[\w\d\'\s]+/;
		return ( !str.match(re) ) ? true : false;				
	}
}

function isNotPostCode(field) 
{ 
	if (document.layers) 
	{
		var str = document.layers[''+field+''].value;
		var re = /^[a-zA-Z]{2}[0-9]{1,2}[0-9]{1,2}[a-zA-Z]{1,2}|[a-zA-Z]{2}[0-9]{1,2} [0-9]{1,2}[a-zA-Z]{1,2}$/;	
		return ( !str.match(re) ) ? true : false;
	}
	else if (document.all) 
	{
		var str = document.all[''+field+''].value;
		var re = /^[a-zA-Z]{2}[0-9]{1,2}[0-9]{1,2}[a-zA-Z]{1,2}|[a-zA-Z]{2}[0-9]{1,2} [0-9]{1,2}[a-zA-Z]{1,2}$/;	
		return ( !str.match(re) ) ? true : false;				
	}		
	else if (document.getElementById)
	{
		var str = document.getElementById(''+field+'').value;
		var re = /^[a-zA-Z]{2}[0-9]{1,2}[0-9]{1,2}[a-zA-Z]{1,2}|[a-zA-Z]{2}[0-9]{1,2} [0-9]{1,2}[a-zA-Z]{1,2}$/;	
		return ( !str.match(re) ) ? true : false;
	}
}
	
function isNotTelFaxNumber(field)
{
	if (document.layers) 
	{
		var str = document.layers[''+field+''].value;
		var re = /[0-9\s]{9,}/; 
		return ( !str.match(re) ) ? true : false;
	}
	else if (document.all) 
	{
		var str = document.all[''+field+''].value;
		var re = /[0-9\s]{9,}/; 
		return ( !str.match(re) ) ? true : false;				
	}			
	else if (document.getElementById)
	{
		var str = document.getElementById(''+field+'').value;
		var re = /[0-9\s]{9,}/; 
		return ( !str.match(re) ) ? true : false;
	}
}
				
function isNotEmailAddr(field)
{
	if (document.layers) 
	{
		var str = document.layers[''+field+''].value;
		var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
		return ( !str.match(re) ) ? true : false;
	}
	else if (document.all) 
	{
		var str = document.all[''+field+''].value;
		var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
		return ( !str.match(re) ) ? true : false;				
	}			
	else if (document.getElementById)
	{
		var str = document.getElementById(''+field+'').value;
		var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
		return ( !str.match(re) ) ? true : false;
	}
}

function isNotWebAddr(field)
{
	if (document.layers) 
	{
		var str = document.layers[''+field+''].value;
		var re = /^http:\/\/[A-Za-z0-9-]+\.[A-Za-z0-9]+/;
		return ( !str.match(re) ) ? true : false;
	}
	else if (document.all) 
	{
		var str = document.all[''+field+''].value;
		var re = /^http:\/\/[A-Za-z0-9-]+\.[A-Za-z0-9]+/;
		return ( !str.match(re) ) ? true : false;				
	}			
	else if (document.getElementById)
	{
		var str = document.getElementById(''+field+'').value;
		var re = /^http:\/\/[A-Za-z0-9-]+\.[A-Za-z0-9]+/;
		return ( !str.match(re) ) ? true : false;
	}	
}
		
function isNotCheckboxChecked(field)
{
	if (document.layers) 
	{
		return ( document.layers[''+field+''].checked ) ? true : false;
	}
	else if (document.all) 
	{
		return ( document.all[''+field+''].checked ) ? true : false;
	}			
	else if (document.getElementById)
	{
		return ( document.getElementById(''+field+'').checked ) ? true : false;
	}			
}

function isNotSelected(field)
{
	if (document.layers) 
	{
		return ( document.layers[''+field+''].selectedIndex == 0 ) ? true : false;
	}
	else if (document.all) 
	{
		return ( document.all[''+field+''].selectedIndex == 0 ) ? true : false;
	}			
	else if (document.getElementById)
	{
		return ( document.getElementById(''+field+'').selectedIndex == 0 ) ? true : false;
	}			
}

function checkRadio(radioSet)
{
    var count = -1;
    for (var i=radioSet.length-1; i > -1; i--) {
        if (radioSet[i].checked) {count = i; i = -1;}
    }
    if (count > -1) return radioSet[count].value;
    else return null;
}
