﻿//checks fields against the valid regular expression
function fieldCheck(fld)
{
	fld.valid = false;
	switch(fld.name)
	{
		case "forename":
			var nameRegExp = /[a-z '-]/i;
			if (nameRegExp.test(fld.value)==true)
			{
				fld.valid=true;
			}
			break;
			
		case "surname":
			var nameRegExp = /[a-z '-]/i;
			if (nameRegExp.test(fld.value)==true)
			{
				fld.valid=true;
			}
			break;
			
		case "telephone":
			var phoneRegExp= /^((\(?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}))?$/;
			if (phoneRegExp.test(fld.value)==true || fld.value=="")
			{
				fld.valid=true;
			}
			break;
			
		case "email":
			var emailRegExp = /^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$/
			if (emailRegExp.test(fld.value)==true)
			{
				fld.valid=true;
			}
			break;
			
			case "details":
			if (fld.value != "")
			{
				fld.valid=true;
			}
			break;
		/* case "eventdate":  //format dd/mm/yyyy or dd-mm-yy etc
			var eventRegExp = /^(((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))$/	
			if (eventRegExp.test(fld.value)==true)
			{
				fld.valid=true;
			}
			break	
		*/
	}
}

//cycles through all the elements on the form and calls the field check function
function validate(frm)
{
	for (i=0; i<frm.length-1; i++)
		{
			fieldCheck(frm.elements[i]);
		}	
}

//checks to see if the input is valid, if so it submits the form, else it displays an error
function isItValid(frm)
{
	var wholeFormValid = true;
	if (frm.forename.valid==false)
	{
		wholeFormValid = false;
		document.getElementById("forenameError").style.display="";
	}
	else
	{
		document.getElementById("forenameError").style.display="none";
	}
	
	if (frm.surname.valid==false)
	{
		wholeFormValid = false;
		document.getElementById("surnameError").style.display="";
	}
	else
	{
		document.getElementById("surnameError").style.display="none";
	}
	if (frm.telephone.valid==false)
	{
		wholeFormValid = false;
		document.getElementById("telephoneError").style.display="";
	}
	else
	{
		document.getElementById("telephoneError").style.display="none";
	}
	if (frm.email.valid==false)
	{
		wholeFormValid = false;
		document.getElementById("emailError").style.display="";			
	}
	else
	{
		document.getElementById("emailError").style.display="none";
	}
	if (frm.details.valid==false)
	{
		wholeFormValid = false;
		document.getElementById("detailsError").style.display="";			
	}
	else
	{
		document.getElementById("detailsError").style.display="none";
	}
	/*
	if (frm.eventdate.valid==false)
	{
	wholeFormValid = false;
		document.getElementById("eventdateError").style.display="";
	}
	else
	{
		document.getElementById("eventdateError").style.display="none";
	}
	*/
	if (wholeFormValid == true) //then the whole form is valid
	{
		frm.submit();
	}
}

//hides all the error messages on load
function init()
{
	// set all the error messages to be hidden on form load
	document.getElementById("forenameError").style.display="none";
	document.getElementById("surnameError").style.display="none";
	document.getElementById("telephoneError").style.display="none";
	document.getElementById("emailError").style.display="none";
	document.getElementById("detailsError").style.display="none";
	//document.getElementById("eventdateError").style.display="none";
}
