function checkForm(form)

{

	// Validate Email
	if (isFilled(form.Email)== false)
	{
		alert("Please enter your email address.");
		form.Email.focus();
		return false;
	}	
	if (checkemail()== false)
	{
		form.Email.focus();
		return false;
	}
	
	
	//Validate First Name
	if (isFilled(form.First_Name)== false)
	{
		alert("Please enter your first name.");
		form.First_Name.focus();
		return false;
	}
	if (form.First_Name.value.length < 3)
	{
		alert("First Name needs to be at least 3 characters long.");
		form.First_Name.focus();
		return false;
	}
	
	//Validate Last Name
	if (isFilled(form.Last_Name)== false)
	{
		alert("Please enter your last name.");
		form.Last_Name.focus();
		return false;
	}
	if (form.Last_Name.value.length < 3)
	{
		alert("Last Name needs to be at least 3 characters long.");
		form.Last_Name.focus();
		return false;
	}
	
	//Validate Address
	if (isFilled(form.Address)== false)
	{
		alert("Please enter your Address.");
		form.Address.focus();
		return false;
	}
	if (form.Address.value.length < 11)
	{
		alert("Address needs to be at least 10 characters long.");
		form.Address.focus();
		return false;
	}
	
	//Validate City
	if (isFilled(form.City)== false)
	{
		alert("Please enter your City.");
		form.City.focus();
		return false;
	}
	
	//Validate State
	if (form.State.value == "")
	{
		alert("Please select a State.");
		form.State.focus();
		return false;
	}
	
	//Validate Zip
	if (isFilled(form.Zip)== false)
	{
		alert("Please enter your Zip Code.");
		form.Zip.focus();
		return false;
	}
	else
	{
		if(checkNumeric(form.Zip , 0, 0, '', '', '') == false)
			return false
	}
	if (form.Zip.value.length < 5)
	{
		alert("Zip code needs to be at least 5 characters long.");
		form.Zip.focus();
		return false;
	}
	
	//Validate Home Phone
	if (isFilled(form.HomePhone)== false)
	{
		alert("Please enter your Home Phone number.");
		form.HomePhone.focus();
		return false;
	}
	else
	{
		if(checkNumeric(form.HomePhone , 0, 0, '-', '', '') == false)
			return false
	}
	if (form.HomePhone.value.length < 10)
	{
		alert("Home Phone needs to be at least 9 characters long.");
		form.HomePhone.focus();
		return false;
	}
	if (form.HomePhone.value.length > 12)
	{
		alert("Home Phone cannot be longer than 12 characters.");
		form.HomePhone.focus();
		return false;
	}
        // remove hyphens from Home Phone
        form.HomePhone.value = removeDashes(form.HomePhone.value);
        form.HomePhone.value = removeDashes(form.HomePhone.value);
		
	//Validate Work Phone
	if (isFilled(form.WorkPhone)== false)
	{
		alert("Please enter your Work Phone number.");
		form.WorkPhone.focus();
		return false;
	}
	else
	{
		if(checkNumeric(form.WorkPhone , 0, 0, '-', '', '') == false)
			return false
	}
	if (form.WorkPhone.value.length < 10)
	{
		alert("Work Phone needs to be at least 9 characters long.");
		form.WorkPhone.focus();
		return false;
	}
	if (form.WorkPhone.value.length > 12)
	{
		alert("Work Phone cannot be longer than 12 characters.");
		form.WorkPhone.focus();
		return false;
	}
        // remove hyphens from Home Phone
        form.WorkPhone.value = removeDashes(form.WorkPhone.value);
        form.WorkPhone.value = removeDashes(form.WorkPhone.value);
	
 return true;
}

var chkDot = true;
var usEmail = true;
function checkemail()
   {
      var eAddr = document.MailForm.Email.value;
      var lenSuffix = (usEmail) ? 4 : 3;
      var result = false;
      var ndxAt = ndxDot =ndxDot2 =  0;
      ndxAt  = eAddr.indexOf("@");
      ndxDot = eAddr.indexOf(".") ;
      ndxDot2 = eAddr.lastIndexOf(".") ;
      if ((ndxDot < 0) || (ndxAt < 0))
         alert("Enter valid email address");
	   else if ( (ndxDot2 - 3) < ndxAt)
	          alert("Enter valid email address");
      else if (eAddr.length < ndxDot2 + lenSuffix)
         usEmail = !(confirm("You have fewer than 3 characters as a domain suffix.\nAre you sure that is right?") );
      else
           result=true;
      return result;
   }

function checkNumeric(objName,minval, maxval,comma,period,hyphen)
{
	var numberfield = objName;
	if (chkNumeric(objName,minval,maxval,comma,period,hyphen) == false)
	{
		numberfield.value = "0";
		numberfield.select();
		numberfield.focus();
		return false;
	}
	else
	{
		return true;
	}
}

function chkNumeric(objName,minval,maxval,comma,period,hyphen)
{
// only allow 0-9 be entered, plus any values passed
// (can be in any order, and don't have to be comma, period, or hyphen)
// if all numbers allow commas, periods, hyphens or whatever,
// just hard code it here and take out the passed parameters
var checkOK = "0123456789" + comma + period + hyphen;
var checkStr = objName;
var allValid = true;
var decPoints = 0;
var allNum = "";

for (i = 0;  i < checkStr.value.length;  i++)
{
ch = checkStr.value.charAt(i);
for (j = 0;  j < checkOK.length;  j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
if (ch != ",")
allNum += ch;
}
if (!allValid)
{
alertsay = "Please enter only these values \""
alertsay = alertsay + checkOK + "\" in the \"" + checkStr.name + "\" field. Do not use any symbols or letters such as a comma, period, parentheses or 'abcdefg...'"
alert(alertsay);
return (false);
}

}

function isFilled(elm)
{
	if (elm.value ==""||elm.value==null)
	return false;
	else return true;
}

function removeDashes (phone)
{
    return phone.replace('-','');
}