function validate(form)
			{
			spnErrorMessage.innerHTML = '';
			for (i = 0; i < form.length; i++)
				{
				if(form.item(i).required)
					{
					if(form.item(i).required == 1 && form.item(i).value == '')
						{
						spnErrorMessage.innerHTML += '<li>' + form.item(i).display + ' is a required field.</li>';  
						document.getElementById(form.item(i).id + 'Label').style.color = 'red';
						}
					else if(form.item(i).validate && form.item(i).value != '')
						{
						var Error = validateElement(form.item(i))
						if (Error.length > 0)
							{
							spnErrorMessage.innerHTML += Error;
							document.getElementById(form.item(i).id + 'Label').style.color = 'red';
							}
						else
							document.getElementById(form.item(i).id + 'Label').style.color = '';
						}
					else
						{
						document.getElementById(form.item(i).id + 'Label').style.color = '';
						}
					}	
				}
			if(spnErrorMessage.innerHTML == '')
				return true;
			else
				return false;
			}
			
		function validateElement(e)
			{
			//Get the Validation Type
			var ValidationType = e.validate;

			//Based on the Type Run the Validation that is appropriate
			switch(ValidationType)
				{
				case 'alpha':
					return isAlpha(e);
					break;
				case 'allowablechars':
					return isAllowableChars(e);
					break;
				case 'email':
					return isEmail(e);
					break;	
				case 'phone':
					return isPhone(e);
					break; 
				case 'zip':
					return isZip(e);
					break;
				default:
					return '';
					break;
				}
			}
			
		//*************************************************************************************************************************
		//Allowable Characters Validation - doesn't allow all the special characters - can easily be added to.
		function isAllowableChars(e)
			{ 
			//Validation Expression
			var objRegExp = /(^[a-z0-9A-Z\s-\#.()/-]*$)/;

			//Test to see if valid
			if (!objRegExp.test(e.value))
				return '<li>There are some restricted characters in the ' + e.display + ' field.</li>';

			//Check	to see if there is a Compare to field
			if (e.compare)
				return CheckCompare(e); 

			//No Errors
			return '';
			}
	

//*************************************************************************************************************************
//Alpha Validation
function isAlpha(e)
	{ 
	//Validation Expression
	var objRegExp = /(^[a-zA-Z\s-]*$)/;

	//Test to see if valid
	if (!objRegExp.test(e.value))
		return '<li>Please only enter letters in the ' + e.display + ' field.</li>';

	//Check to see if there is a Compare to field
	if (e.compare)
		return CheckCompare(e); 

	//No Errors
	return '';
	}

//*************************************************************************************************************************
//This validates a Email Address
function isEmail(e)
	{
	//validation Expression
	var objRegExp = /(^[0-9a-z]([0-9a-z_\.]*)@([a-z_\.]*)([.][a-z]{3})$)|(^[a-z]([0-9a-z_\.]*)@([a-z_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)/i;

	//check for valid Email
	if(!objRegExp.test(e.value))
		return '<li>Please enter a valid email value in the ' + e.display + ' field.</li>';

	//No Errors 
	return ''; 
	} 


//*************************************************************************************************************************
//This validates a Phone Number
function isPhone(e)
	{
	//validation Expression
	var objRegExp = /(^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$)|(^[1-9]\d{2}-\d{3}\-\d{4}$)/i;

	//check for valid Phone Number
	if(!objRegExp.test(e.value))
		return '<li>Please enter a valid phone number in the ' + e.display + ' field.</li>';

	//No Errors 
	return ''; 
	}


//*************************************************************************************************************************
//This validates a US Zip Code
function isZip(e)
	{
	//validation Expression
	var objRegExp = /(^\d{5}$)|(^\d{5}-\d{4}$)/;

	//check for valid US Zipcode
	if(!objRegExp.test(e.value))
		return '<li>Please enter a valid zip code value in the ' + e.display + ' field.</li>';

	//No Errors 
	return ''; 
	}
