
function setupValidation()
{
	for( formid in document.forms )
	{
		form = document.forms[formid];
		switch(form.id)
		{
			case "registration":
				form.onsubmit = validateRegistration;
				break;
			case "contact":
				form.onsubmit = validateContact;
				break;
		}
	}
}

function validateRegistration(e)
{
	if(!e)
		f = event.srcElement;
	else
	{
		f = e.target;
		event = e;
	}

	if(!f.elements.email.value)
	{
		alert("You must enter your email address");
		f.elements.email.focus();
		return false;
	}
	else if(!/^[-0-9a-zA-Z._]+@([-a-zA-Z0-9]+\.)+([-a-zA-Z0-9]{2,5})$/.test(f.elements.email.value))
	{
		alert("The supplied email address did not look valid; please check and try again");
		f.elements.email.focus();
		return false;
	}

	if(!f.elements.forename.value)
	{
		alert("You must enter your first name.");
		f.elements.forename.focus();
		return false;
	}

	if(!f.elements.surname.value)
	{
		alert("You must enter your surname.");
		f.elements.surname.focus();
		return false;
	}


	if(!f.elements.phone1.value)
	{
		alert("You must enter your phone number");
		f.elements.phone1.focus();
		return false;
	}


	if(f.elements["password"])
	{
		if(!f.elements.password.value)
		{
			alert("You must enter a password for your new account");
			f.elements.password.focus();
			return false;
		}
		else if(f.elements.password.value != f.elements.password2.value)
		{
			alert("Password/ Confirm Password did not match");
			f.elements.password.focus();
			return false;
		}

		if(!f.elements["over18[]"].checked)
		{
			alert("You must be over 18 to use this site");
			return false;
		}
	}

	return true;
}

function validateContact(e)
{
	if(!e)
		f = event.srcElement;
	else
		f = e.targetElement;

	if(!f.elements.address1.value)
	{
		alert("You must enter the first line of the address");
		f.elements.address1.focus();
		return false;
	}

	if(!f.elements.city.value)
	{
		alert("You must enter the city");
		f.elements.city.focus();
		return false;
	}

	if(!f.elements.county.value)
	{
		alert("You must enter the county");
		f.elements.county.focus();
		return false;
	}
	if(!f.elements.postcode.value)
	{
		alert("You must enter the post code");
		f.elements.postcode.focus();
		return false;
	}

	return true;
}

window.onload = setupValidation;
