<!--
//validate form	fields
function validate_form(form) 
{	//Define regular expressions for validation
	var WhiteSpacePat = /^\s+$/;
	var OneAlphaPat = /^[a-zA-Z]$/;
	var FourDigitsPat = /^\d{4}$/;
	var ZipCodePat = /^\d{5}(-\d{4})?$/;
	var MoneyPat = /^\$?((\d{1,3}(,\d{3})*)|(\d+))(\.\d{2})?$/;
	var PhonePat = /^((\([2-9]\d{2}\) ?)|([2-9]\d{2}[ -]?))(\d{3}[ -]?)\d{4}$/;
	var EmailPat = /^([\w-_]+\.)*[\w-_]+\@([\w-_]+\.)+[a-zA-Z]{2,6}$/;
	//First Name - required
	strValue = form.F01FirstName.value + "";
	if (strValue == "" || WhiteSpacePat.test(strValue))
	{	alert("Blank 'First Name'. Enter your first name.\nPlease correct your entry and submit again.");
		form.F01FirstName.select();
		form.F01FirstName.focus();
		return false;
	}
	//Middle Initial -  not required, but if entered verify alphabetic
	strValue = form.F02MiddleInit.value + "";
	if (strValue != "" && !WhiteSpacePat.test(strValue))
	{	if (!OneAlphaPat.test(strValue))
		{	alert("Invalid 'Middle Intial'. Enter an alphabetic character or leave blank.\nPlease correct your entry and submit again.");
			form.F02MiddleInit.select();
			form.F02MiddleInit.focus();
			return false;
		}
	}
	//Last Name - required
	strValue = form.F03LastName.value + "";
	if (strValue == "" || WhiteSpacePat.test(strValue))
	{	alert("Blank 'Last Name'. Enter your last name.\nPlease correct your entry and submit again.");
		form.F03LastName.select();
		form.F03LastName.focus();
		return false;
	}
	//Last 4 Digts of SSN - required
	strValue = form.F04SSDigits.value + "";
	if (strValue == "" || !FourDigitsPat.test(strValue))
	{	alert("Invalid 'Last Four Digits of your SS Number'. Enter in '9999' format.\nPlease correct your entry and submit again.");
		form.F04SSDigits.select();
		form.F04SSDigits.focus();
		return false;
	}
	//Birth Date - required
	strValue = form.F05BirthDate.value + "";
	if (!IsDate(strValue))
	{	alert("Blank or invalid 'Date of Birth'. Enter in 'MM/DD/YYYY' format.\nPlease correct your entry and submit again.");
		form.F05BirthDate.select();
		form.F05BirthDate.focus();
		return false;
	}
	//Street Address - required
	strValue = form.F06Street.value + "";
	if (strValue == "" || WhiteSpacePat.test(strValue))
	{	alert("Blank 'Street'. Enter your street address.\nPlease correct your entry and submit again.");
		form.F06Street.select();
		form.F06Street.focus();
		return false;
	}
	//City - required
	strValue = form.F07City.value + "";
	if (strValue == "" || WhiteSpacePat.test(strValue))
	{	alert("Blank 'City'. Enter your city name.\nPlease correct your entry and submit again.");
		form.F07City.select();
		form.F07City.focus();
		return false;
	}
	//State - required
	strValue = form.F08State.value + "";
	if (!IsState(strValue))
	{ alert("Blank or invalid 'State'. Enter a valid 2-character state abbreviation.\nPlease correct your entry and submit again.");
		form.F08State.select();
		form.F08State.focus();
		return false;
	}
	//Zip Code - required
	strValue = form.F09Zip.value + "";
	if (!ZipCodePat.test(strValue))
	{	alert("Blank or invalid 'Zip Code'. Enter in '99999' or '99999-9999' format.\nPlease correct your entry and submit again.");
		form.F09Zip.select();
		form.F09Zip.focus();
		return false;
	}	
	//Employer Name - required
	strValue = form.F10Employer.value + "";
	if (strValue == "" || WhiteSpacePat.test(strValue))
	{	alert("Blank 'Employer'. Enter your employer's name.\nPlease correct your entry and submit again.");
		form.F10Employer.select();
		form.F10Employer.focus();
		return false;
	}
	//Employer City - required
	strValue = form.F11EmployerCity.value + "";
	if (strValue == "" || WhiteSpacePat.test(strValue))
	{	alert("Blank 'Employer's City'. Enter your employer's city.\nPlease correct your entry and submit again.");
		form.F11EmployerCity.select();
		form.F11EmployerCity.focus();
		return false;
	}
	//Employer State - required
	strValue = form.F12EmployerState.value + "";
	if (!IsState(strValue))
	{ alert("Blank or invalid 'Employer's State'. Enter a valid 2-character state abbreviation.\nPlease correct your entry and submit again.");
		form.F12EmployerState.select();
		form.F12EmployerState.focus();
		return false;
	}
	//Termination Date - required
	strValue = form.F13LastDay.value + "";
	if (!IsDate(strValue))
	{	alert("Blank or invalid 'Last day on the payroll'. Enter in 'MM/DD/YYYY' format.\nPlease correct your entry and submit again.");
		form.F13LastDay.select();
		form.F13LastDay.focus();
		return false;
	}
	//Expected Wages -  not required, but if entered verify money format
	strValue = form.F14ExpectedWages.value + "";
	if (strValue != "" && !WhiteSpacePat.test(strValue))
	{	if (!MoneyPat.test(strValue))
		{ alert("Invalid 'Expected Wages'. Enter a dollar amount or leave blank.\nPlease correct your entry and submit again.")
			form.F14ExpectedWages.select();
			form.F14ExpectedWages.focus();
			return false;
		}
	}
	//Retirement Date - not required, but if entered verify in date format
	strValue = form.F15RetirementDate.value + "";
	if (strValue != "" && !WhiteSpacePat.test(strValue))
	{	if (!IsDate(strValue))
		{	alert("Invalid 'RetirementDate'. Enter in 'MM/DD/YYYY' format or leave blank.\nPlease correct your entry and submit again.");
			form.F15RetirementDate.select();
			form.F15RetirementDate.focus();
			return false;
		}
	}
	//Spouse's Birth Date - not required, but if entered verify in date format
	strValue = form.F16SpouseBirthDate.value + "";
	if (strValue != "" && !WhiteSpacePat.test(strValue))
	{	if (!IsDate(strValue))
		{	alert("Invalid 'Spouse''s Date of Birth'. Enter in 'MM/DD/YYYY' format or leave blank.\nPlease correct your entry and submit again.");
			form.F16SpouseBirthDate.select();
			form.F16SpouseBirthDate.focus();
			return false;
		}
	}
	//Phone Number - required
	strValue = form.F17DaytimePhone.value + "";
	if (!PhonePat.test(strValue))
	{	alert("Blank or invalid 'Daytime Phone Number'. Enter your phone number including area code.\nPlease correct your entry and submit again.");
		form.F17DaytimePhone.select();
		form.F17DaytimePhone.focus();
		return false;
	}
	//E-mail Address - not required, but if entered verify in email format
	//08-20-02: E-mail address IS required for the FROM value in the Email Send.
	strValue = form.F18EmailAddress.value + "";
	if (strValue !="" && !WhiteSpacePat.test(strValue))
	{	if (!EmailPat.test(strValue))
		{	alert("Invalid 'Email Address'. Enter your email address or leave blank.\nPlease correct your entry and submit again.");
			form.F18EmailAddress.select();
			form.F18EmailAddress.focus();
			return false;
		}
	}
	else
        {   	alert("Blank 'Email Address'. Enter your Email Address.\nPlease correct your entry and submit again.");
		form.F18EmailAddress.select();
		form.F18EmailAddress.focus();
		return false;
	}
	//Comments - not required
	return true;
}
//validate date
function IsDate(valDate)
{	strDate = valDate + "";
	dtDate = new Date(strDate);
	if (isNaN(dtDate))
		return false;
	else
	{  err=0;
		slash=strDate.indexOf('/');
		mo=strDate.substring(0,slash);
		slash2=strDate.indexOf('/',	slash+1);
		dy=strDate.substring(slash+1,slash2);
		yr=strDate.substring(slash2+1,strDate.length);
		if (mo<1 ||	mo>12) err = 1;
		if (dy<1 ||	dy>31) err = 1;
		if (yr.length	!= 4)	err	=	1;
		if ((mo==4 ||	mo==6	|| mo==9 ||	mo==11)	&& (dy==31))	err=1;
		if (mo==2)
		{	if (dy>29) err=1;
			if (dy==29)
			{	if ((yr/4)!=parseInt(yr/4))	err=1;
				if (((yr/100)==parseInt(yr/100)) &&	((yr/400)	!= parseInt(yr/400)))	err=1;
			}
		}
		if (err==1)
			return false;
		else
			return true;
	}
}
//validate state abbreviation
function IsState(valState)
{	strState = valState + "";
	if (strState == "" || strState.length != 2) return false;
	strState = strState.toUpperCase()
	strAlpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
	for(i=0; i<strState.length; i++)
	{	if (strAlpha.indexOf(strState.charAt(i)) < 0)
	 		return false;
	}
	strStateAbbrev="AL,AK,AZ,AR,CA,CO,CT,DE,DC,FL,GA,HI,ID,IL,IN,IA,KS,KY,LA," +
		"ME,MD,MA,MI,MN,MS,MO,MT,NE,NV,NH,NJ,NM,NY,NC,ND,OH,OK,OR,PA,RI,SC,SD," +
		"TN,TX,UT,VT,VA,WA,WV,WI,WY";
	if (strStateAbbrev.indexOf(strState) < 0) return false;
	return true;
}
//-->

