function validFormSup(passForm)
{
	function stripper (formElement, repType)
	{
		var lettersSpaces = new RegExp("[^- a-zA-Z\t]+","g");
		var numbersSpaces = new RegExp("[^- 0-9ext:\t]+","gi");
		var numLetSpaces = new RegExp("[^- a-zA-Z0-9\|\\\t/\.,'\"]+","g");
		var slashes = /\//g;
		var temp = formElement;
		if (formElement.value != "")
		{
			var temp = formElement.value;
			if(repType == "num")
			{
				formElement.value = temp.replace(numbersSpaces,"");
			}
			else if (repType == "let")
			{
				formElement.value = temp.replace(lettersSpaces,"");
			}
			else
			{
				temp = temp.replace(numLetSpaces,"");
				formElement.value = temp.replace(slashes,"|");
			}
		}
	}
	function mandCheck (formElement, errorText)
	{
		if(formElement.value == "")
		{
			alert(errorText);
			formElement.focus();
			return false;
		}
	}
	function isValidEmail (formElement, sText)
	{
        	var reEmail = /^(?:\w+\.?)*\w+@(?:[-\w]+\.)+\w+$/;
        	if (reEmail.test(sText) == false)
        	{
                	alert("Your e-mail address doesn't seem to be in a standard format.\nPlease double-check it and try again.");
                	formElement.focus();
                	return false;
        	}
	}
	function dropDownCheck (formElement, errorText)
	{
		if (formElement.value == "NO")
		{
			alert("Please select the " + errorText + " from the drop-down list.");
			formElement.focus();
			return false;
		}
	}
	function numCount (formElement, errorText)
	{
		if (formElement.value.length < 11)
		{
			alert("The " + errorText + " number you've entered is too short to be correct.\nPlease double-check it and try again.");
			formElement.focus();
			return false;
		}
	}

	if (mandCheck(passForm.cname, "Please enter your full name.") == false)
	{
		return false;
	}
	else stripper(passForm.cname, "let");
	if (passForm.ctel.value != '')
	{
		stripper(passForm.ctel, "num");
		if (numCount(passForm.ctel, "Home Telephone") == false)
		{
			return false;
		}
	}
	if (passForm.ctelw.value != '')
	{
		stripper(passForm.ctelw, "num");
		if (numCount(passForm.ctelw, "Work Telephone") == false)
		{
			return false;
		}
	}
	if (passForm.cmob.value != '')
	{
		stripper(passForm.cmob, "num");
		if (numCount(passForm.cmob, "Mobile") == false)
		{
			return false;
		}
	}
	if ((passForm.ctel.value == '') && (passForm.ctelw.value == '') && (passForm.cmob.value == ''))
	{
		alert("Please enter at least one contact telephone number.");
		passForm.ctel.focus();
		return false;
	}
	if ((mandCheck(passForm.cemail, "Please enter your e-mail address.") == false) || (isValidEmail(passForm.cemail, passForm.cemail.value) == false))
	{
		return false;
	}

	if (mandCheck(passForm.cdate, "Please enter the date (or time period) when your accident occured.") == false)
	{
		return false;
	}
	else stripper(passForm.cdate, "numlet");
	if (dropDownCheck(passForm.cacctype, "the type of accident you wish to claim for") == false)
	{
		return false;
	}
	if (mandCheck(passForm.cdetail, "Please describe your accident and the injuries you sustained.") == false)
	{
		return false;
	}
	else if (passForm.cdetail.value.length < 20)
	{
		if (confirm("If your accident description is too short, your claim will take us longer to process.\nWould you like to add anything?"))
		{
			passForm.cdetail.focus();
			return false;
		}
	}
	else stripper(passForm.cdetail, "numlet");
	if (passForm.cpref.value != "")
	{
		stripper(passForm.cpref, "numlet");
	}
	return true;
}
