//		alert('mm='+mm+'\n' + 'dd='+dd+'\n' + 'yyyy='+yyyy+'\n');

function check_form ()
{
  valid = true; // assume valid

  if (document.fits.fname.value.length == 0)
     { valid = false; alert('First Name Must be Filled In!');
      document.fits.fname.focus();return false; }
  if (document.fits.lname.value.length == 0)
     { valid = false; alert('Last Name Must be Filled In!');
      document.fits.lname.focus();return false; }
  if (!document.fits.gender[0].checked && 
	    !document.fits.gender[1].checked)
     { valid = false; alert('Gender Must be Checked!');
      document.fits.gender[0].focus();return false; }

	if (document.fits.mob.selectedIndex == false )
	 { valid = false; alert('Date of Birth: (Month) Must be Selected In!');
		 document.fits.mob.focus();return false; }
	if (document.fits.dob.selectedIndex == false )
	 { valid = false; alert('Date of Birth: (Day Number) Must be Selected In!');
		document.fits.dob.focus();return false; }
	if (document.fits.yob.value.length == 0 )
	 { valid = false; alert('Date of Birth: (Year Number) Must be Filled In!');
		document.fits.yob.focus();return false; }

	if (document.fits.address.value.length == 0)
	 { valid = false; alert('Address Must be Filled In!');
		document.fits.address.focus();return false; }
	if (document.fits.city.value.length == 0)
	 { valid = false; alert('City Must be Filled In!');
		document.fits.city.focus();return false; }
//	if (document.fits.state.selectedIndex == false )
	if (document.fits.state.value.length == 0)
	 { valid = false; alert('State Must be Filled In!');
		document.fits.state.focus();return false; }
	if (document.fits.zip.value.length == 0)
	 { valid = false; alert('Zip Code Must be Filled In!');
		document.fits.zip.focus();return false; }

	if (document.fits.hphone.value.length == 0)
	 { valid = false; alert('Home Phone Number Must be Filled In!');
		document.fits.hphone.focus();return false; }

	if (document.fits.email.value.length == 0 )
	 { valid = false; alert('E-mail Address Must be Filled In!');
		document.fits.email.focus();return false; }

	if (document.fits.email.value.length > 0)
	 {valid = VerifyEmailAddress();
      if (valid == false){document.fits.email.focus(); return false; }
	 }

  if (document.fits.church.value.length == 0)
   { valid = false; alert('Church or Ministry Name Must be Filled In!');
      document.fits.church.focus();return false; }
	if (document.fits.caddress.value.length == 0)
	 { valid = false; alert('Church or Ministry: Address Must be Filled In!');
		document.fits.caddress.focus();return false; }
	if (document.fits.ccity.value.length == 0)
	 { valid = false; alert('Church or Ministry: City Must be Filled In!');
		document.fits.ccity.focus();return false; }
//	if (document.fits.state.selectedIndex == false )
	if (document.fits.cstate.value.length == 0)
	 { valid = false; alert('Church or Ministry: State Must be Filled In!');
		document.fits.cstate.focus();return false; }
	if (document.fits.czip.value.length == 0)
	 { valid = false; alert('Church or Ministry: Zip Code Must be Filled In!');
		document.fits.czip.focus();return false; }


	if (!document.fits.class_day[0].checked && 
		  !document.fits.class_day[1].checked)
	 { valid = false; alert('Please check which FITS schedule day to display: Mondays or Tuesdays!');
		//document.fits.class_day[0].focus();
		return false; }

	if (document.fits.fee.value == 0)
	 { valid = false; alert('At lease one of the available courses must be selected!');
			if (document.fits.class_day[0].checked){document.fits.class_day[0].focus();return false; }
			if (document.fits.class_day[1].checked){document.fits.class_day[1].focus();return false; }
		}

 //To eliminate form spam and hijacking by automated bots we use Human Intelligence Identification Test 
	if (document.fits.total.value != document.fits.hii.value)
		{ valid = false; alert('Provide the Required ANSWER to the IDENTIFICATION QUESTION!');
	    document.fits.hii.value="";
	    document.fits.hii.focus();return false; }

  if (valid)
        {

			document.fits.gender_m.value = "";
			document.fits.gender_f.value = "";
			document.fits.xregfeex.value = "";

			if (document.fits.gender[0].checked == true){document.fits.gender_m.value = "checked";}
			if (document.fits.gender[1].checked == true){document.fits.gender_f.value = "checked";}
			if (document.fits.xregfee.checked == true){document.fits.xregfeex.value = "checked";}
			
  		document.fits.reg.value = build_item_number();

				
			// Building paypal form data 
			//==================================================================
			document.paypal.item_name.value= document.fits.i_sign_up_for.value;
      document.paypal.item_number.value= document.fits.reg.value;
      document.paypal.amount.value= document.fits.total.value;
      document.paypal.first_name.value= document.fits.fname.value;
      document.paypal.last_name.value= document.fits.lname.value;
      document.paypal.address1.value= document.fits.address.value;
      document.paypal.address2.value= document.fits.unit.value;
      document.paypal.city.value= document.fits.city.value;
      document.paypal.state.value= document.fits.state.value;
      document.paypal.zip.value= document.fits.zip.value;

			document.fits.submit();

			if (document.fits.fee.value > 0)
			{
					document.paypal.submit();
			}

			return true;

      }

	 document.fits.email.focus();
   return false;
}


function VerifyEmailAddress()
{
  var Reason  = "Your Email Address appears incorrect.  \n\nPlease check. \n\nReason:"
  var Success = "Email Address entered Correctly!"
  var checkStr = document.fits.email.value;
  var ix = (checkStr.length - 4)
  var RC = true;
  var x = AtSignValid = DoublePeriod = PeriodValid = SpaceValid = ExtValid = RL = 0;

  for (i = 0;  i < checkStr.length;  i++)
  {
    if (checkStr.charAt(i) == '@')
      AtSignValid++;
    else if (checkStr.charAt(i) == '.')
    {
      if (x == (i-1))
        DoublePeriod++;
      else
      {
        x = i;
        PeriodValid++;
      }
    }
    else if (checkStr.charAt(i) == ' ')
      SpaceValid ++;
  }
  if (checkStr.indexOf(".com", ix) > -1)
    ExtValid++;
  else if (checkStr.indexOf(".edu", ix) > -1)
    ExtValid++;
  else if (checkStr.indexOf(".net", ix) > -1)
    ExtValid++;
  else if (checkStr.indexOf(".biz", ix) > -1)
    ExtValid++;
  else if (checkStr.indexOf(".org", ix) > -1)
    ExtValid++;
  else if (checkStr.indexOf(".gov", ix) > -1)
    ExtValid++;
  else if (checkStr.indexOf(".mil", ix) > -1)
    ExtValid++;
  else if (checkStr.indexOf(".cc", ix) > -1)
    ExtValid++;
  RL = Reason.length;
  if (AtSignValid != 1)
    Reason += "\nOnly one '@' allowed, " + AtSignValid + " found.";
  if (PeriodValid == 0)
    Reason += "\nAddress must contain at least one period.";
  if (SpaceValid > 0)
    Reason += "\nNo Spaces allowed. Address contains " + SpaceValid + " space";
  if (SpaceValid > 1)
    Reason += "s.";
  if (checkStr.length > 120)
    Reason += "\nPlease limit the Email Address to 120 characters.";

  if (RL != Reason.length)
  {
 alert(Reason);
 return false;
  }
  return true;
}
