	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 = "#cce6b7";
				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 = "#cce6b7";
						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 = "#cce6b7";
						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;
		}
	}

