// JavaScript Docs
function clearText(thefield){
	if (thefield.defaultValue==thefield.value) {
		thefield.value = "";
	}
}
function restoreText(thefield){
	if (thefield.value=="") {
		thefield.value = thefield.defaultValue;
	}
}
function verify(form) {
	var errorMsg = "Please fill in the following fields:\n\n";
	if (document.form1.fname.value == "") {
		errorMsg += "Your First Name\n";
	}
	if (document.form1.lname.value == "") {
		errorMsg += "Your Last Name\n";
	}

	if (document.form1.fromphone.value == "") {
		errorMsg += "Your Phone Number\n";
	}
	if (document.form1.fromstadr.value == "") {
		errorMsg += "Your Street Address\n";
	}
	if (document.form1.fromcity.value == "") {
		errorMsg += "Your City\n";
	}
	if (document.form1.fromstate.value == "") {
		errorMsg += "Your State\n";
	}
	if (document.form1.fromzip.value == "") {
		errorMsg += "Your Zip Code\n";
	}

	if (document.form1.fromadr.value == "") {
		errorMsg += "Your Email Address\n";
	}
	if (document.form1.programs.value == "") {
		errorMsg += "Programs\n";
	}
	if (document.form1.msgtxt.value == document.form1.msgtxt.defaultValue || document.form1.msgtxt.value == "") {
		errorMsg += "Your Message\n";
	}
	if (document.form1.msg.value == document.form1.msg.defaultValue || document.form1.msg.value == "") {
		errorMsg += "Your Message\n";
	}

	if (errorMsg != "Please fill in the following fields:\n\n") {
		alert(errorMsg);
		return false;
	}

var email = document.form1.fromadr.value.toLowerCase();
var pattern = /^[-\._a-z0-9]+@((([a-z0-9]([a-z0-9-]*[a-z0-9])*)\.)+([a-z]{2,})|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/;
	if(!pattern.test(email)) {
		alert("Your email address does not appear to be valid.");
		return false;
	} else {
		return true;
	}
}


	var timeout;
	var intervalholder;
	var arrMenu = new Array('personal','business', 'homer','tools','customer','employment','directions');
        var pageName ="";
	
	function openInter(type, idd){
		if (document.getElementById)
		if(type=='on')
			document.getElementById(idd).style.display="inline"; 
				else document.getElementById(idd).style.display="none";
	
		return false;
	}
	
	
	function hideMenus(){
		var arr_len = arrMenu.length;
		var arr_iterator = 0;
		
		for (arr_iterator; arr_iterator<arr_len; arr_iterator++){
			hideMenu(arrMenu[arr_iterator]);
		}
	}
	function startMenu(menuName){
		clearTimer();
		hideMenus();
		if (menuName != null){
			
			if(bas = document.getElementById(pageName)) {
				bas.style.display="none";
			}
			
			if(deny = document.getElementById(pageName+"_link")) {
					deny.className="navnormal";
			}
			
			if(lyr = document.getElementById(menuName)) {
				lyr.style.display="inline";
			}
			
			if(btn = document.getElementById(menuName+"_link")) {
				btn.className="navhover";
			}

		}
	}
	
	function stopMenu(menuName){
		if (checkTimer()){
			hideMenu(menuName);
		}
	}
	
	function startTimer(menuName){
		timeout = 0;
		mName = menuName;
		intervalholder = setInterval('stopMenu(mName)',300);
	}
	
	function clearTimer(){
		intervalholder = clearInterval(intervalholder);
		timeout = 0;
	}
	
	function checkTimer(){
		if (timeout >= 10){
			intervalholder = clearInterval(intervalholder);
			return true;
		} else {
			++timeout;
			return false;
		}
	}
	
	function hideMenu(menuName){
		
		if(lyr = document.getElementById(menuName)) {
			lyr.style.display="none";
		}
		
		if(btn = document.getElementById(menuName+"_link")) {
			btn.className="navnormal";
		}
		if(bas = document.getElementById(pageName)) {
			bas.style.display="inline";
		}

		if(deny = document.getElementById(pageName+"_link")) {
			deny.className="navhover";
		}
	}
	



function TestNoneOptionalField() {
	if (document.myform.fname.value=='') {
		alert('Your first Name is required');
		return false;
	};
	if (document.myform.lname.value=='') {
		alert('Your last Name is required');
		return false;
	};
	if (document.myform.fromphone.value=='') {
		alert('Your phone number is required');
		return false;
	};
	if (document.myform.fromadr.value=='') {
		alert('Your Email Adress is required');
		return false;
	};
	var x = document.myform.fromadr.value;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
	if (!filter.test(x)) {alert('Incorrect email address.')
	;return false;
        }
	if (document.myform.programs.value=='') {
		alert('The Program is required');
		return false;
	};
	if (document.myform.msgtxt.value == document.myform.msgtxt.defaultValue || document.myform.msgtxt.value == "") {
		alert('Message is required');
		return false;
	};
	return true;
}

function TestmandatoryFields() {
	if (document.myform.fname.value=='') {
		alert('Your first Name is required');
		return false;
	};
	if (document.myform.lname.value=='') {
		alert('Your last Name is required');
		return false;
	};

	if (document.myform.txtdbirth.value == "") {
		errorMsg += "Your birth date is required\n";
	}
	if (document.myform.txtssnum.value == "") {
		alert('Your Social Security Number is required');
		return false;
	}
	if (document.myform.fromstadr.value == "") {
		alert('Your Street Address');
		return false;
	}
	if (document.myform.fromcity.value == "") {
		alert('Your City is required');
		return false;
	}
        if (document.myform.fromstate.selectedIndex == 0){
               alert('Select Your State from the drop down list.');
               return (false);
        }
	if (document.myform.fromzip.value == "") {
		alert('Your Zip Code is required');
		return false;
	}
	if (document.myform.txtgender.value == "") {
		alert('Your Gender is required');
		return false;
	}

radioOption = -1
for (counter=0; counter<document.myform.RadioButtonList1.length; counter++) {
if (document.myform.RadioButtonList1[counter].checked) {
radioOption = counter
}
}
if (radioOption == -1) {
alert("Please check Your Residency Status: Citizen or Alien Resident or Refugee.")
return false
}

	return true;
}

  function formatSSN(formName, inputName){
    //format input in 999-99-9999 format

    //reformat if a character key was entered
    if(window.event.keyCode > 47){

      inputField = eval( 'document.'+ formName +'.' + inputName );

      var ssnValue = inputField.value;

      //save caret position
      var caretPos = getCaretPosition(inputField);
      if(caretPos == 4|| caretPos == 7 || caretPos >= ssnValue.length)
        caretPos = caretPos + 1;
        
//**disabled input here but does not prevent bad input
//inputField.disabled = true;  //prevent user input while js is executing

      //strip out any non-numeric content
      ssnValue = removeNonNumerics(ssnValue);

      //add hyphen
      ssnValue = addFormatHyphen(ssnValue);

      inputField.value = ssnValue;

//**disable attempt did not prevent error
//inputField.disabled = false;
//inputField.focus();

      //reposition the cursor if not at beginning
      if(caretPos > 1){
        setSelectionRange(inputField, caretPos, caretPos);
      }

    }
  }

  function addFormatHyphen(txtssnum){
    var ssnLength = txtssnum.length;

    //add format hyphen
    if(ssnLength > 5){
      txtssnum =
      (txtssnum.substr(0,3) + "-"+
      txtssnum.substr(3,2) + "-" +
      txtssnum.substr(5)).substr(0,11);
    }else if(ssnLength > 3){
      txtssnum =
      txtssnum.substr(0,3) + "-"+
      txtssnum.substr(3);
    }
    return txtssnum;
  }

  function removeNonNumerics(checkString){
    rExp = /[^0-9]/g;
    return checkString.replace(rExp,"");
  }

  function getCaretPosition(objTextBox){

    var objTextBox = window.event.srcElement;

    var i = objTextBox.value.length;

    if (objTextBox.createTextRange){
        objCaret = document.selection.createRange().duplicate();
        while (objCaret.parentElement()==objTextBox &&
               objCaret.move("character",1)==1) --i;
    }
    return i;
  }

  function setSelectionRange(input, selectionStart, selectionEnd) {
    if (input.setSelectionRange) {
      input.focus();
      input.setSelectionRange(selectionStart, selectionEnd);
    }
    else if (input.createTextRange) {
      var range = input.createTextRange();
      range.collapse(true);
      range.moveEnd('character', selectionEnd);
      range.moveStart('character', selectionStart);
      range.select();
    }
  }
  
<!-- Begin
// Check browser version
var isNav4 = false, isNav5 = false, isIE4 = false
var strSeperator = "/"; 
// If you are using any Java validation on the back side you will want to use the / because 
// Java date validations do not recognize the dash as a valid date separator.
var vDateType = 1; // Global value for type of date format
//                1 = mm/dd/yyyy
//                2 = yyyy/dd/mm  (Unable to do date check at this time)
//                3 = dd/mm/yyyy
var vYearType = 4; //Set to 2 or 4 for number of digits in the year for Netscape
var vYearLength = 2; // Set to 4 if you want to force the user to enter 4 digits for the year before validating.
var err = 0; // Set the error code to a default of zero
if(navigator.appName == "Netscape") {
if (navigator.appVersion < "5") {
isNav4 = true;
isNav5 = false;
}
else
if (navigator.appVersion > "4") {
isNav4 = false;
isNav5 = true;
   }
}
else {
isIE4 = true;
}
function DateFormat(vDateName, vDateValue, e, dateCheck, dateType) {
vDateType = dateType;
// vDateName = object name
// vDateValue = value in the field being checked
// e = event
// dateCheck 
// True  = Verify that the vDateValue is a valid date
// False = Format values being entered into vDateValue only
// vDateType
// 1 = mm/dd/yyyy
// 2 = yyyy/mm/dd
// 3 = dd/mm/yyyy
//Enter a tilde sign for the first number and you can check the variable information.
if (vDateValue == "~") {
alert("AppVersion = "+navigator.appVersion+" \nNav. 4 Version = "+isNav4+" \nNav. 5 Version = "+isNav5+" \nIE Version = "+isIE4+" \nYear Type = "+vYearType+" \nDate Type = "+vDateType+" \nSeparator = "+strSeperator);
vDateName.value = "";
vDateName.focus();
return true;
}
var whichCode = (window.Event) ? e.which : e.keyCode;
// Check to see if a seperator is already present.
// bypass the date if a seperator is present and the length greater than 8
if (vDateValue.length > 8 && isNav4) {
if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))
return true;
}
//Eliminate all the ASCII codes that are not valid
var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
if (alphaCheck.indexOf(vDateValue) >= 1) {
if (isNav4) {
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
else {
vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
return false;
   }
}
if (whichCode == 8) //Ignore the Netscape value for backspace. IE has no value
return false;
else {
//Create numeric string values for 0123456789/
//The codes provided include both keyboard and keypad values
var strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
if (strCheck.indexOf(whichCode) != -1) {
if (isNav4) {
if (((vDateValue.length < 6 && dateCheck) || (vDateValue.length == 7 && dateCheck)) && (vDateValue.length >=1)) {
alert("Invalid Date\nPlease Re-Enter");
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
if (vDateValue.length == 6 && dateCheck) {
var mDay = vDateName.value.substr(2,2);
var mMonth = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
//Turn a two digit year into a 4 digit year
if (mYear.length == 2 && vYearType == 4) {
var mToday = new Date();
//If the year is greater than 30 years from now use 19, otherwise use 20
var checkYear = mToday.getFullYear() + 30; 
var mCheckYear = '20' + mYear;
if (mCheckYear >= checkYear)
mYear = '19' + mYear;
else
mYear = '20' + mYear;
}
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (!dateValid(vDateValueCheck)) {
alert("Invalid Date\nPlease Re-Enter");
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
return true;
}
else {
// Reformat the date for validation and set date type to a 1
if (vDateValue.length >= 8  && dateCheck) {
if (vDateType == 1) // mmddyyyy
{
var mDay = vDateName.value.substr(2,2);
var mMonth = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
}
if (vDateType == 2) // yyyymmdd
{
var mYear = vDateName.value.substr(0,4)
var mMonth = vDateName.value.substr(4,2);
var mDay = vDateName.value.substr(6,2);
vDateName.value = mYear+strSeperator+mMonth+strSeperator+mDay;
}
if (vDateType == 3) // ddmmyyyy
{
var mMonth = vDateName.value.substr(2,2);
var mDay = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
}
//Create a temporary variable for storing the DateType and change
//the DateType to a 1 for validation.
var vDateTypeTemp = vDateType;
vDateType = 1;
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (!dateValid(vDateValueCheck)) {
alert("Invalid Date\nPlease Re-Enter");
vDateType = vDateTypeTemp;
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
vDateType = vDateTypeTemp;
return true;
}
else {
if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
alert("Invalid Date\nPlease Re-Enter");
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
         }
      }
   }
}
else {
// Non isNav Check
if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
alert("Invalid Date\nPlease Re-Enter");
vDateName.value = "";
vDateName.focus();
return true;
}
// Reformat date to format that can be validated. mm/dd/yyyy
if (vDateValue.length >= 8 && dateCheck) {
// Additional date formats can be entered here and parsed out to
// a valid date format that the validation routine will recognize.
if (vDateType == 1) // mm/dd/yyyy
{
var mMonth = vDateName.value.substr(0,2);
var mDay = vDateName.value.substr(3,2);
var mYear = vDateName.value.substr(6,4)
}
if (vDateType == 2) // yyyy/mm/dd
{
var mYear = vDateName.value.substr(0,4)
var mMonth = vDateName.value.substr(5,2);
var mDay = vDateName.value.substr(8,2);
}
if (vDateType == 3) // dd/mm/yyyy
{
var mDay = vDateName.value.substr(0,2);
var mMonth = vDateName.value.substr(3,2);
var mYear = vDateName.value.substr(6,4)
}
if (vYearLength == 4) {
if (mYear.length < 4) {
alert("Invalid Date\nPlease Re-Enter");
vDateName.value = "";
vDateName.focus();
return true;
   }
}
// Create temp. variable for storing the current vDateType
var vDateTypeTemp = vDateType;
// Change vDateType to a 1 for standard date format for validation
// Type will be changed back when validation is completed.
vDateType = 1;
// Store reformatted date to new variable for validation.
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (mYear.length == 2 && vYearType == 4 && dateCheck) {
//Turn a two digit year into a 4 digit year
var mToday = new Date();
//If the year is greater than 30 years from now use 19, otherwise use 20
var checkYear = mToday.getFullYear() + 30; 
var mCheckYear = '20' + mYear;
if (mCheckYear >= checkYear)
mYear = '19' + mYear;
else
mYear = '20' + mYear;
vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
// Store the new value back to the field.  This function will
// not work with date type of 2 since the year is entered first.
if (vDateTypeTemp == 1) // mm/dd/yyyy
vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
if (vDateTypeTemp == 3) // dd/mm/yyyy
vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
} 
if (!dateValid(vDateValueCheck)) {
alert("Invalid Date\nPlease Re-Enter");
vDateType = vDateTypeTemp;
vDateName.value = "";
vDateName.focus();
return true;
}
vDateType = vDateTypeTemp;
return true;
}
else {
if (vDateType == 1) {
if (vDateValue.length == 2) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 5) {
vDateName.value = vDateValue+strSeperator;
   }
}
if (vDateType == 2) {
if (vDateValue.length == 4) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 7) {
vDateName.value = vDateValue+strSeperator;
   }
} 
if (vDateType == 3) {
if (vDateValue.length == 2) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 5) {
vDateName.value = vDateValue+strSeperator;
   }
}
return true;
   }
}
if (vDateValue.length == 10&& dateCheck) {
if (!dateValid(vDateName)) {
// Un-comment the next line of code for debugging the dateValid() function error messages
//alert(err);  
alert("Invalid Date\nPlease Re-Enter");
vDateName.focus();
vDateName.select();
   }
}
return false;
}
else {
// If the value is not in the string return the string minus the last
// key entered.
if (isNav4) {
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
else
{
vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
return false;
         }
      }
   }
}
function dateValid(objName) {
var strDate;
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intday;
var intMonth;
var intYear;
var booFound = false;
var datefield = objName;
var strSeparatorArray = new Array("-"," ","/",".");
var intElementNr;
// var err = 0;
var strMonthArray = new Array(12);
strMonthArray[0] = "Jan";
strMonthArray[1] = "Feb";
strMonthArray[2] = "Mar";
strMonthArray[3] = "Apr";
strMonthArray[4] = "May";
strMonthArray[5] = "Jun";
strMonthArray[6] = "Jul";
strMonthArray[7] = "Aug";
strMonthArray[8] = "Sep";
strMonthArray[9] = "Oct";
strMonthArray[10] = "Nov";
strMonthArray[11] = "Dec";
//strDate = datefield.value;
strDate = objName;
if (strDate.length < 1) {
return true;
}
for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
strDateArray = strDate.split(strSeparatorArray[intElementNr]);
if (strDateArray.length != 3) {
err = 1;
return false;
}
else {
strDay = strDateArray[0];
strMonth = strDateArray[1];
strYear = strDateArray[2];
}
booFound = true;
   }
}
if (booFound == false) {
if (strDate.length>5) {
strDay = strDate.substr(0, 2);
strMonth = strDate.substr(2, 2);
strYear = strDate.substr(4);
   }
}
//Adjustment for short years entered
if (strYear.length == 2) {
strYear = '20' + strYear;
}
strTemp = strDay;
strDay = strMonth;
strMonth = strTemp;
intday = parseInt(strDay, 10);
if (isNaN(intday)) {
err = 2;
return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) {
for (i = 0;i<12;i++) {
if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
intMonth = i+1;
strMonth = strMonthArray[i];
i = 12;
   }
}
if (isNaN(intMonth)) {
err = 3;
return false;
   }
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear)) {
err = 4;
return false;
}
if (intMonth>12 || intMonth<1) {
err = 5;
return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
err = 6;
return false;
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
err = 7;
return false;
}
if (intMonth == 2) {
if (intday < 1) {
err = 8;
return false;
}
if (LeapYear(intYear) == true) {
if (intday > 29) {
err = 9;
return false;
   }
}
else {
if (intday > 28) {
err = 10;
return false;
      }
   }
}
return true;
}
function LeapYear(intYear) {
if (intYear % 100 == 0) {
if (intYear % 400 == 0) { return true; }
}
else {
if ((intYear % 4) == 0) { return true; }
}
return false;
}
//  End -->