	

	function validateForm(f){
	
		var emailFilter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		var numericFilter = /^[0-9\(\)\-\ ]*$/; 
		var errors="";
		var errorCount=0;
		var ignorePhoneFormat = false;
		var ignoreEmailFormat = false;
		var dropdownNotSelected="----- Please Select -----";
		 
		for(i=0;i<requiredFields.length;i++){

 
			if( (f[requiredFields[i]].value=="") || (f[requiredFields[i]].value==dropdownNotSelected) ) {
				if(f[requiredFields[i]].name=="email_address") {
					ignoreEmailFormat = true;
				}
				if(f[requiredFields[i]].name=="telephone_number") {
					ignorePhoneFormat = true;
				}
				
				/* Error message */
				if(f[requiredFields[i]].type=="select-one") {
					errors+="You have not selected " + friendlyNames[i]+".\n";
				}
				else {								
					errors+=friendlyNames[i]+" is empty.\n";
				}						
				
				errorCount++;
				f[requiredFields[i]].style.backgroundColor = "#dfd5c7";
				f[requiredFields[i]].onchange=function(){
					this.style.backgroundColor="#fff";
					}
			}
			else {
				/* Field contains something - check format of data in specific field */

				if((f[requiredFields[i]].name=="email") && (ignoreEmailFormat==false)) {

					if (!emailFilter.test( f[requiredFields[i]].value)) {
						/* Dodgy email address */
						errors+="The E-mail Address entered appears to be incorrect.\n";
						errorCount++;
						f[requiredFields[i]].style.backgroundColor = "#dfd5c7";
						f[requiredFields[i]].onchange=function(){
							this.style.backgroundColor="#fff";
							}
						}									
					}
				}
				
				if( (f[requiredFields[i]].name=="telephone_number") && (ignorePhoneFormat==false)) {
					if (!numericFilter.test( f[requiredFields[i]].value)) {
					

						/* Dodgy phone number */
						errors+="The Telephone Number entered appears to be incorrect.\n";
						errorCount++;
						f[requiredFields[i]].style.backgroundColor = "#dfd5c7";
						f[requiredFields[i]].onchange=function(){
							this.style.backgroundColor="#fff";
						}
					}									
				}
								

		}
		
					
		if(errors!=""){
			errors="Please correct the following "+ errorCount+ " problems we have found with the form:\n\n"+errors;
			alert(errors)
			return false;
		}
		else {
			return true;
		}
	}	 