function checkform(form){


// variables  ++++++++++++++++++++++++++++++++++++++++++++
var validpc
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; // email add format
var regdate = /^\d{1,2}\/\d{1,2}\/\d{4}$/;  //date format 
var address = document.forms["contactform"].email.value;
// variables ---------------------------------------------


// postcode validation function ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function checkPostCode (toCheck) {
  var alpha1 = "[abcdefghijklmnoprstuwyz]";                       // Character 1
  var alpha2 = "[abcdefghklmnopqrstuvwxy]";                       // Character 2
  var alpha3 = "[abcdefghjkstuw]";                                // Character 3
  var alpha4 = "[abehmnprvwxy]";                                  // Character 4
  var alpha5 = "[abdefghjlnpqrstuwxyz]";                          // Character 5
  var pcexp = new Array ();
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1,2})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}[0-9]{1}" + alpha3 + "{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1}" + alpha4 +"{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  pcexp.push (/^(GIR)(\s*)(0AA)$/i);
  pcexp.push (/^(bfpo)(\s*)([0-9]{1,4})$/i);
  pcexp.push (/^(bfpo)(\s*)(c\/o\s*[0-9]{1,3})$/i);
  pcexp.push (/^([A-Z]{4})(\s*)(1ZZ)$/i);
  var postCode = toCheck;
  var valid = false;
  for ( var i=0; i<pcexp.length; i++) {
    if (pcexp[i].test(postCode)) {
      pcexp[i].exec(postCode);
      postCode = RegExp.$1.toUpperCase() + " " + RegExp.$3.toUpperCase();
      postCode = postCode.replace (/C\/O\s*/,"c/o ");
      valid = true;
      break; }  }
if (valid) {validpc = 1;} else {validpc = 0;}
return validpc;}
// end postcode validation function ________________________________________________________________________



if(document.forms["contactform"].yourname.value=="")
{
alert("Please enter your first name.");
document.forms["contactform"].yourname.focus();
return false;
}
else if(document.forms["contactform"].yoursurname.value=="")
{
alert("Please enter your surname.");
document.forms["contactform"].yoursurname.focus();
return false;
}
else if(document.forms["contactform"].street.value=="")
{
alert("Please enter your street name and door number.");
document.forms["contactform"].street.focus();
return false;
}
else if(document.forms["contactform"].town.value=="")
{
alert("Please enter your town.");
document.forms["contactform"].town.focus();
return false;
}
// postcode validation +++++++++++++++++++++++++
else if(checkPostCode(document.forms["contactform"].postcode.value)== 0)
{
alert("Please enter a valid UK postcode.");
document.forms["contactform"].postcode.focus();
return false;
}
// postcode validation -------------------------
else if(document.forms["contactform"].phone.value=="")
{
alert("Please enter your telephone number.");
document.forms["contactform"].phone.focus();
return false;
}
// email validation ++++++++++++++++++++++++++++
else if(reg.test(address) == false)
{
alert('Please enter a valid Email Address');
document.forms["contactform"].email.focus();
return false;
}
// end email validation -----------------------
// dob validation +++++++++++++++++++++++++++++
else  if(document.forms["contactform"].dob.value != '' && !document.forms["contactform"].dob.value.match(regdate))
{
 alert("Invalid date format: " + document.forms["contactform"].dob.value);
 document.forms["contactform"].dob.focus();
 return false; 
}
// dob validation ----------------------------
else if(document.getElementById("heartconditionYES").checked==false && document.getElementById("heartconditionNO").checked==false)
{
alert("Please enter your heart condition.");
document.getElementById("heartconditionYES").focus();
return false;
}
else if(document.getElementById("painexerciseYES").checked==false && document.getElementById("painexerciseNO").checked==false)
{
alert("Please specify whether you feel pain when you exercise.");
document.getElementById("painexerciseYES").focus();
return false;
}
else if(document.getElementById("painactivityYES").checked==false && document.getElementById("painactivityNO").checked==false)
{
alert("Please specify whether you feel pain when not doing an activity.");
document.getElementById("painactivityYES").focus();
return false;
}
else if(document.getElementById("dizzinessYES").checked==false && document.getElementById("dizzinessNO").checked==false)
{
alert("Please specify whether you ever feel faint or dizzy.");
document.getElementById("dizzinessYES").focus();
return false;
}
else if(document.getElementById("boneproblemYES").checked==false && document.getElementById("boneproblemNO").checked==false)
{
alert("Please specify whether you've ever had bone or joint problems that could be aggravated by physical activity.");
document.getElementById("boneproblemYES").focus();
return false;
}
else if(document.getElementById("bloodpressureYES").checked==false && document.getElementById("bloodpressureNO").checked==false)
{
alert("Please specify if you've ever been told you have high blood pressure.");
document.getElementById("bloodpressureYES").focus();
return false;
}
else if(document.getElementById("otherreasonYES").checked==false && document.getElementById("otherreasonNO").checked==false)
{
alert("Please specify if you know of any other reason why you couldn't do physical activity.");
document.getElementById("otherreasonYES").focus();
return false;
}
else
	{
return true;
	}


}
