function validateForm(formID)
{

f = document.forms[formID];

// customers must select an address id
if(f.addresses_id && f.addresses_id.value == '')
{
alert('Please select an address');
f.addresses_id.focus();
return false;
}

// customers must enter the first line of their address
if(f.first_line && f.first_line.value == '')
{
alert('Please enter the first line of your address');
f.first_line.focus();
return false;
}

// customers must enter the town name of their address
if(f.town_name && f.town_name.value == '')
{
alert('Please enter the town name');
f.town_name.focus();
return false;
}

// customers must enter the county name of their address
if(f.county_name && f.county_name.value == '')
{
alert('Please enter the county name');
f.county_name.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 enter their telephone_number
if(f.telephone_number && f.telephone_number.value == '')
{
alert('Please enter a telephone number');
f.telephone_number.focus();
return false;
}

// customers must enter their telephone_number
if(f.telephone_number && f.telephone_number.value.search(/^(\+44\s?7\d{3}|\(?07\d{3}\)?)\s?\d{3}\s?\d{3}|(((\(?0\d{4}\)?\s?\d{3}\s?\d{3})|(\(?0\d{3}\)?\s?\d{3}\s?\d{4})|(\(?0\d{2}\)?\s?\d{4}\s?\d{4}))(\s?\#(\d{4}|\d{3}))?)$/) == -1)
{
alert('Please enter a valid phone number, including the area code');
f.telephone_number.focus();
return false;
}

// customers must enter the postal code
if(f.postal_code && f.postal_code.value == '')
{
alert('Please enter your postal code');
f.postal_code.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 an enquiry
if(f.enquiry && f.enquiry.value == '')
{
alert('Please enter your enquiry');
f.enquiry.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;
}


// newsletter must have a name RICH TEXT EDITOR VERSION
if(f.newsletter_name && f.newsletter_name.value == '')
{
alert('Please enter a name for the newsletter.');
f.newsletter_name.focus();
return false;
}

if(typeof FCKeditorAPI != "undefined")
{
if(FCKeditorAPI.GetInstance('newsletter_content'))
{
var oEditor = FCKeditorAPI.GetInstance('newsletter_content');
var newsletter_content = oEditor.GetXHTML(true);

if(newsletter_content == '')
{
alert('Please enter some content for the newsletter.');
f.newsletter_content.focus();
return false;
}
}
}

/*
// newsletter must have content
if(f.newsletter_content && f.newsletter_content.value == '')
{
alert('Please enter some content for the newsletter.');
f.newsletter_content.focus();
return false;
}
*/

// newsletter must be selected to send it
if(f.newsletters_id && f.newsletters_id.value == '')
{
alert('Please select a newsletter.');
f.newsletters_id.focus();
return false;
}

// manufacturer must have a selection
if(f.manufacturers_search && f.manufacturers_search.value == '')
{
alert('Please select a manufacturer.');
f.manufacturers_search.focus();
return false;
}

// test for delivery address
if(f.delivery_address && f.delivery_address.value.length == 0)
{
alert('Please fill in the delivery address');
f.delivery_address.focus();
return false;
}

// file upload must have a value
if(f.file_upload && f.file_upload.value == '')
{
alert('Please browse to the file you would like to upload.');
f.file_upload.focus();
return false;
}

// customers must enter a comment
if(f.comments && f.comments.value == '')
{
alert('Please enter a question or comment');
f.comments.focus();
return false;
}

return true;
}

function toggleContent(contentID)
{
if(document.getElementById)
{
e = document.getElementById(contentID).style;

if(e.display == 'none')
{
if(document.images['toggle_' + contentID])
{
document.images['toggle_' + contentID].src   = './images/buttons/hide.png';
document.images['toggle_' + contentID].alt   = 'Hide details';
document.images['toggle_' + contentID].title = 'Hide details';
}
e.display = 'block';
}
else
{
if(document.images['toggle_' + contentID])
{
document.images['toggle_' + contentID].src   = './images/buttons/show.png';
document.images['toggle_' + contentID].alt   = 'Show details';
document.images['toggle_' + contentID].title = 'Show details';
}
e.display = 'none';
}

}

}

