function validateForm(formID)
{

f = document.forms[formID];

// customers must fill in certain boxes
if(f.effective_date && f.effective_date.value == '')
{
alert('Please complete the \'Effective date\' box');
f.effective_date.focus();
return false;
}

if(f.contract_term && f.contract_term.value == '')
{
alert('Please select the number of days you would like to protect your goods');
f.contract_term.focus();
return false;
}

// customers must choose a valid date in the format DD-MM-YYYY
pattern = /^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](20)\d\d$/;

if(f.effective_date && f.effective_date.value.search(pattern) == -1)
{
alert('Please enter a valid date in the format DD-MM-YYYY');
f.effective_date.focus();
return false;
}

// customers must accept the terms and conditions
if(f.terms_and_conditions && f.terms_and_conditions.checked === false)
{
alert('Please accept the sales contract and terms and conditions before proceeding');
f.terms_and_conditions.focus();
return false;
}

// customers must enter their first name
if(f.first_name && f.first_name.value == '')
{
alert('Please enter your first name');
f.first_name.focus();
return false;
}

// customers must enter their last name
if(f.last_name && f.last_name.value == '')
{
alert('Please enter your last name');
f.last_name.focus();
return false;
}

// customers must select a sign up code
if(f.sign_up_code && f.sign_up_code.value == '')
{
alert('Please select an appropriate code from the drop-down menu');
f.sign_up_code.focus();
return false;
}

// customers must submit a valid email address
if(f.email_address && f.email_address.value == '')
{
alert('Please enter your email address');
f.email_address.focus();
return false;
}

// customers must submit a valid email address
if(f.email_address && f.email_address.value.search(/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i) == -1)
{
alert('Please check that the email address is valid. It should contain a single @ sign.');
f.email_address.focus();
return false;
}

return true;
}