function formValidator(ContactForm)
{
    var name            = document.ContactForm.Name;
    var company         = document.ContactForm.Company;
    var address1        = document.ContactForm.Address1;   
    var address2        = document.ContactForm.Address2;
    var city            = document.ContactForm.City;
    var zipcode         = document.ContactForm.ZipCode; 
    var zipcodeplus4    = document.ContactForm.ZipCodePlus4; 
    var homeareacode    = document.ContactForm.HomeAreaCode;  
    var homephonenumber = document.ContactForm.HomePhoneNumber;  
    var cellareacode    = document.ContactForm.CellAreaCode;  
    var cellphonenumber = document.ContactForm.CellPhoneNumber;
    var workareacode    = document.ContactForm.WorkAreaCode;  
    var workphonenumber = document.ContactForm.WorkPhoneNumber;   
    var faxareacode     = document.ContactForm.FaxAreaCode;  
    var faxphonenumber  = document.ContactForm.FaxPhoneNumber;    
    var email           = document.ContactForm.Email;
    var gender          = document.ContactForm.Gender;
    var found           = document.ContactForm.Found;
    var partnership     = document.ContactForm.Partnership;
    var other           = document.ContactForm.Other;
    var comments        = document.ContactForm.Comments;
    
    if (name.value == "")
    {
        window.alert("Please enter your name.");
        name.focus();
        return false;
    }

    if (zipcode.value != "")
    {
		if (zipcode.value.length != 5)
		{
	    	window.alert("Please enter 5 digits for your zip code.");
    		zipcode.focus();
	    	return false;
		}
		var checkOK = "0123456789";
		var checkStr = zipcode.value;
		var allValid = true;
		var validGroups = true;
		for (i = 0;  i < checkStr.length;  i++)
  		{
    		ch = checkStr.charAt(i);
    		for (j = 0;  j < checkOK.length;  j++)
      			if (ch == checkOK.charAt(j))
        		break;
    		if (j == checkOK.length)
    		{
      			allValid = false;
      			break;
    		}
  		}
 		if (!allValid)
		{
	    	alert("Please enter only the digits 0 through 9 for your zip code.");
	    	zipcode.focus();
	    	return false;
		}
 	}
 
    if (zipcodeplus4.value != "")
    {
    
		if (zipcodeplus4.value.length != 4)
		{
	    	window.alert("Please enter 4 digits for your zip+4 code.");
    		zipcodeplus4.focus();
	    	return false;
		}
		var checkOK = "0123456789";
		var checkStr = zipcodeplus4.value;
		var allValid = true;
		var validGroups = true;
		for (i = 0;  i < checkStr.length;  i++)
  		{
    		ch = checkStr.charAt(i);
    		for (j = 0;  j < checkOK.length;  j++)
      			if (ch == checkOK.charAt(j))
        		break;
    		if (j == checkOK.length)
    		{
      			allValid = false;
      			break;
    		}
  		}
 		if (!allValid)
		{
	    	alert("Please enter only the digits 0 through 9 for your zip+4 code.");
	    	zipcodeplus4.focus();
	    	return false;
		}
	}
   
    if (homeareacode.value != "")
    {

		if (homeareacode.value.length != 3)
		{
	    	window.alert("Please enter 3 digits for your home area code.");
    		homeareacode.focus();
	    	return false;
		}
		var checkOK = "0123456789";
		var checkStr = homeareacode.value;
		var allValid = true;
		var validGroups = true;
		for (i = 0;  i < checkStr.length;  i++)
  		{
    		ch = checkStr.charAt(i);
    		for (j = 0;  j < checkOK.length;  j++)
      			if (ch == checkOK.charAt(j))
        		break;
    		if (j == checkOK.length)
    		{
      			allValid = false;
      			break;
    		}
  		}
 		if (!allValid)
		{
	    	alert("Please enter only the digits 0 through 9 for your home area code.");
	    	homeareacode.focus();
	    	return false;
		}
 	}
    
    if (homephonenumber.value != "")
    {
    
		if (homephonenumber.value.length != 7)
		{
	    	window.alert("Please enter 7 digits for your home phone number.");
    		homephonenumber.focus();
	    	return false;
		}
		var checkOK = "0123456789";
		var checkStr = homephonenumber.value;
		var allValid = true;
		var validGroups = true;
		for (i = 0;  i < checkStr.length;  i++)
  		{
    		ch = checkStr.charAt(i);
    		for (j = 0;  j < checkOK.length;  j++)
      			if (ch == checkOK.charAt(j))
        		break;
    		if (j == checkOK.length)
    		{
      			allValid = false;
      			break;
    		}
  		}
 		if (!allValid)
		{
	    	alert("Please enter only the digits 0 through 9 for your home phone number.");
	    	homephonenumber.focus();
	    	return false;
		}
	}
    
    if (cellareacode.value != "")
    {

		if (cellareacode.value.length != 3)
		{
	    	window.alert("Please enter 3 digits for your cell phone area code.");
    		cellareacode.focus();
	    	return false;
		}
		var checkOK = "0123456789";
		var checkStr = cellareacode.value;
		var allValid = true;
		var validGroups = true;
		for (i = 0;  i < checkStr.length;  i++)
  		{
    		ch = checkStr.charAt(i);
    		for (j = 0;  j < checkOK.length;  j++)
      			if (ch == checkOK.charAt(j))
        		break;
    		if (j == checkOK.length)
    		{
      			allValid = false;
      			break;
    		}
  		}
 		if (!allValid)
		{
	    	alert("Please enter only the digits 0 through 9 for your cell phone area code.");
	    	cellareacode.focus();
	    	return false;
		}
 	}
    
    if (cellphonenumber.value != "")
    {
    
		if (cellphonenumber.value.length != 7)
		{
	    	window.alert("Please enter 7 digits for your cell phone number.");
    		cellphonenumber.focus();
	    	return false;
		}
		var checkOK = "0123456789";
		var checkStr = cellphonenumber.value;
		var allValid = true;
		var validGroups = true;
		for (i = 0;  i < checkStr.length;  i++)
  		{
    		ch = checkStr.charAt(i);
    		for (j = 0;  j < checkOK.length;  j++)
      			if (ch == checkOK.charAt(j))
        		break;
    		if (j == checkOK.length)
    		{
      			allValid = false;
      			break;
    		}
  		}
 		if (!allValid)
		{
	    	alert("Please enter only the digits 0 through 9 for your cell phone number.");
	    	cellphonenumber.focus();
	    	return false;
		}
	}
     
    if (workareacode.value != "")
    {

		if (workareacode.value.length != 3)
		{
	    	window.alert("Please enter 3 digits for your work phone area code.");
    		workareacode.focus();
	    	return false;
		}
		var checkOK = "0123456789";
		var checkStr = workareacode.value;
		var allValid = true;
		var validGroups = true;
		for (i = 0;  i < checkStr.length;  i++)
  		{
    		ch = checkStr.charAt(i);
    		for (j = 0;  j < checkOK.length;  j++)
      			if (ch == checkOK.charAt(j))
        		break;
    		if (j == checkOK.length)
    		{
      			allValid = false;
      			break;
    		}
  		}
 		if (!allValid)
		{
	    	alert("Please enter only the digits 0 through 9 for your work phone area code.");
	    	workareacode.focus();
	    	return false;
		}
 	}
    
    if (workphonenumber.value != "")
    {
    
		if (workphonenumber.value.length != 7)
		{
	    	window.alert("Please enter 7 digits for your work phone number.");
    		workphonenumber.focus();
	    	return false;
		}
		var checkOK = "0123456789";
		var checkStr = workphonenumber.value;
		var allValid = true;
		var validGroups = true;
		for (i = 0;  i < checkStr.length;  i++)
  		{
    		ch = checkStr.charAt(i);
    		for (j = 0;  j < checkOK.length;  j++)
      			if (ch == checkOK.charAt(j))
        		break;
    		if (j == checkOK.length)
    		{
      			allValid = false;
      			break;
    		}
  		}
 		if (!allValid)
		{
	    	alert("Please enter only the digits 0 through 9 for your work phone number.");
	    	workphonenumber.focus();
	    	return false;
		}
	}
     
    if (faxareacode.value != "")
    {

		if (faxareacode.value.length != 3)
		{
	    	window.alert("Please enter 3 digits for your fax area code.");
    		faxareacode.focus();
	    	return false;
		}
		var checkOK = "0123456789";
		var checkStr = faxareacode.value;
		var allValid = true;
		var validGroups = true;
		for (i = 0;  i < checkStr.length;  i++)
  		{
    		ch = checkStr.charAt(i);
    		for (j = 0;  j < checkOK.length;  j++)
      			if (ch == checkOK.charAt(j))
        		break;
    		if (j == checkOK.length)
    		{
      			allValid = false;
      			break;
    		}
  		}
 		if (!allValid)
		{
	    	alert("Please enter only the digits 0 through 9 for your fax area code.");
	    	faxareacode.focus();
	    	return false;
		}
 	}
    
    if (faxphonenumber.value != "")
    {
    
		if (faxphonenumber.value.length != 7)
		{
	    	window.alert("Please enter 7 digits for your fax number.");
    		workphonenumber.focus();
	    	return false;
		}
		var checkOK = "0123456789";
		var checkStr = faxphonenumber.value;
		var allValid = true;
		var validGroups = true;
		for (i = 0;  i < checkStr.length;  i++)
  		{
    		ch = checkStr.charAt(i);
    		for (j = 0;  j < checkOK.length;  j++)
      			if (ch == checkOK.charAt(j))
        		break;
    		if (j == checkOK.length)
    		{
      			allValid = false;
      			break;
    		}
  		}
 		if (!allValid)
		{
	    	alert("Please enter only the digits 0 through 9 for your fax number.");
	    	faxphonenumber.focus();
	    	return false;
		}
	}

    if (email.value == "")
    {
        window.alert("Please enter your email address.");
        email.focus();
        return false;
    }

    if (email.value != "")
    {
	    if (email.value.indexOf("@", 0) < 0)
    	{
 			window.alert("Please enter a valid email address.");
 	 		email.focus();
 	 		return false;
   		}
  		if (email.value.indexOf(".", 0) < 0)
		{
			window.alert("Please enter a valid email address.");
			email.focus();
			return false;
	    }
	}

	if ((gender[0].checked == false)
    &&  (gender[1].checked == false))
    {
        window.alert("Please choose your gender - female or male.");
        gender[0].focus();
        return false;
    }

	var radio_selected = false;

	for (counter = 0; counter < 13; counter++)
	{
		if (found[counter].checked)
			radio_selected = true; 
	}

	if (!radio_selected)
    {
        window.alert("Please tell us how you found our website.");
        found[0].focus();
        return false;
    }

	if (found[11].checked == true)
    {
    	if (partnership.value == "How did you find the partnership site?" || partnership.value == "")
    	{
        	window.alert("Please tell us how you found the partnership site.");
        	partnership.focus();
        	return false;
        }
    }

	if (found[12].checked == true)
    {
    	if (other.value == "please specify" || other.value == "")
    	{
        	window.alert("Please elaborate on your selection of \"Other.\"");
        	other.focus();
        	return false;
        }
    }

    return true;
}