
function confirm_policies_agree(buttonvalue) 
{
// Use the buttonvalue variable to continue or ask why the user does not agree, depending
// on the value the confirmation box returned.

     if (buttonvalue=="Yes")
     {
       window.document.getElementById("required_policies_agree").value="Yes"; 
       window.document.getElementById("required_petname").focus();
     }
     else
     {     
      if (buttonvalue=="No")
         {
         if (emptyvalidation(policies_notagree_explan, "Please explain why you do not agree to abide by our policies.")==false)
              { policies_notagree_explan.focus(); 
                return false;
              }
         window.document.getElementById("required_policies_agree").value="No"; 
         window.document.getElementById("required_petname").focus();
         }
     }

}


function starton() 
{
     window.document.getElementById("required_policies_agree").value="No"; 
     yes_button.focus();
}


function  formvalidation(thisform)
{
// This function checks the entire form before it is submitted
// 
with (thisform)
{
     if (required_policies_agree.value != "Yes")
         {
         if (emptyvalidation(policies_notagree_explan, "Please indicate acceptance of our adoption policies or enter explanation.")==false)
              { policies_notagree_explan.focus(); 
                return false;
              }
         }
     if (textlenvalidation(policies_notagree_explan, 400, "Explanation is too long and will be trimmed.")==false)
         { policies_notagree_explan.focus(); 
           return false;
         }
     if (emptyvalidation(required_petname, "Please enter Pet Name.")==false)
          { required_petname.focus(); 
           return false;
          }
      if (emptyvalidation(required_date, "Please enter Application Date.")==false)
          { required_date.focus(); 
           return false;
          }
     if (datevalidation(required_date, "Please enter valid date.")==false)
         { required_date.focus(); 
           return false;
         }
     if (emptyvalidation(required_applicant, "Please enter Applicant Name.")==false)
          { required_applicant.focus(); 
           return false;
          }
     if (emptyvalidation(required_homestreet, "Please enter Street Address.")==false)
          { required_homestreet.focus(); 
           return false;
          }
     if (emptyvalidation(required_homecity, "Please enter City.")==false)
          { required_homecity.focus(); 
           return false;
          }
     if (emptyvalidation(required_homecounty, "Please enter County.")==false)
          { required_homecounty.focus(); 
           return false;
          }
     if (dropdownvalidation(required_homestate.selectedIndex, "Please select State from list.")==false)
          { required_homestate.focus(); 
           return false;
          }
     if (digitvalidation(required_homezip,5,5,"Please enter 5-digit Zip Code.","I")==false)
          { required_homezip.focus(); 
            return false;
          } 
      if (digitvalidation(required_res_years,1,2,"Please enter Years at Residence as a number.","I")==false)
          { required_res_years.focus(); 
            return false;
          }

     if (emptyvalidation(required_primaryphone, "Please enter Primary Phone including area code.")==false)
          { required_primaryphone.focus(); 
            return false;
          }
      if (phonevalidation(required_primaryphone, "Primary phone number has invalid characters or incorrect length.")==false)
          { required_primaryphone.focus();
            return false;
          }

      if (emptyvalidation(secondaryphone, "")==true)          // i.e., the field contains characters
          if (phonevalidation(secondaryphone, "Secondary phone number has invalid characters or incorrect length.")==false)
              { secondaryphone.focus();
                return false;
              }
      if (emptyvalidation(workphone, "")==true)          // i.e., the field contains characters
          if (phonevalidation(workphone, "Work phone number has invalid characters or incorrect length.")==false)
              { workphone.focus();
                return false;
              }       
     if (emptyvalidation(required_app_occ, "Please enter Occupation.")==false)
          { required_app_occ.focus(); 
            return false;
          }
// E-mail validation does not require e-mail to be filled in but validates its format if it is present.
     if (emailvalidation(email_address,"Invalid E-mail address")==false) 
          { email_address.focus(); 
            return false;
          }
     if (emptyvalidation(required_contacttime, "Please enter a time to contact you.")==false)
          { required_contacttime.focus(); 
            return false;
          }

     if ((required_code.value != "SARG2008") && (required_code.value != "sarg2008"))
          { alert("Please read our adoption policies at the beginning of this form to obtain the code.");
            required_code.focus(); 
            return false;
          }

      if (emptyvalidation(altphone, "")==true)          // i.e., the field contains characters
          if (phonevalidation(altphone, "Alternate phone number has invalid characters or incorrect length.")==false)
              { altphone.focus();
                return false;
              }

// E-mail validation does not require e-mail to be filled in but validates its format if it is present.
     if (emailvalidation(altemail_address,"Invalid alternate e-mail address")==false) 
          { altemail_address.focus(); 
            return false;
          }





// check each of these values and convert to integer
// create a variable, set to 0, and add to it, in turn, the value in each field.
// if the variable is > 0, continue; else, give an error and return to first field.
// valuevalidation(entered, min, max, alertbox, datatype)


       if (valuevalidation(required_nrmen_18_25,1,10,"","i") == false
          && valuevalidation(required_nrmen_26_30,1,10,"","i") == false
          && valuevalidation(required_nrmen_31_60,1,10,"","i") == false
          && valuevalidation(required_nrmen_over60,1,10,"","i") == false
          && valuevalidation(required_nrwomen_18_25,1,10,"","i") == false
          && valuevalidation(required_nrwomen_26_30,1,10,"","i") == false
          && valuevalidation(required_nrwomen_31_60,1,10,"","i") == false
          && valuevalidation(required_nrwomen_over60,1,10,"","i") == false)

          {required_nrmen_18_25.focus();
           alert ("Please indicate number of men and women in each age group");
           return false;
          }



      if (digitvalidation(required_nrboys,1,2,"Please enter number of boys.","I")==false)
          { required_nrboys.focus(); 
            return false;
          }
// if there are > 0 boys, there must be ages listed
      if (required_nrboys.value > 0)
         if (emptyvalidation(boysages, "Please enter boys' ages.")==false)
              { boysages.focus(); 
                return false;
              }           
      if (digitvalidation(required_nrgirls,1,2,"Please enter number of girls.","I")==false)
          { required_nrgirls.focus(); 
            return false;
          }
// if there are > 0 girls, there must be ages listed
      if (required_nrgirls.value > 0)
         if (emptyvalidation(girlsages, "Please enter girls' ages.")==false)
              { girlsages.focus(); 
                return false;
              }
     if (dropdownvalidation(required_pregnant.selectedIndex, "Please reply Yes or No to future family plans.")==false)
          { required_pregnant.focus(); 
           return false;
          }
     if (dropdownvalidation(required_otherchildren.selectedIndex, "Please reply Yes or No to other children in the home.")==false)
          { required_otherchildren.focus(); 
            return false;
          }

      var box=document.dogapp.required_otherchildren.options;
      var chosen_value=box[box.selectedIndex].value;

// if there are other children frequently in the home, their ages are required
      if (chosen_value == "Yes")
         if (emptyvalidation(otherchildages, "Please enter ages of other children.")==false)
              { otherchildages.focus(); 
                return false;
              }

// if there are other children frequently in the home, the frequency is required
      if (required_otherchildren.value == "Yes")
         if (emptyvalidation(otherchildfreq, "Please enter frequency of visits of other children.")==false)
              { otherchildfreq.focus(); 
                return false;
              }
// if there are other children frequently in the home, the number at once is required
     if (required_otherchildren.value == "Yes")
        if (digitvalidation(otherchildatonce,1,2,"Please enter number children often visiting at once.","I")==false)
            { otherchildatonce.focus(); 
              return false;
            }
     if (textlenvalidation(allergies_disability, 320, "Allergies text is too long and will be trimmed.")==false)
          { allergies_disability.focus(); 
            return false;
          }
     if (dropdownvalidation(required_houseagree.selectedIndex, "Please enter Yes or No, are all in agreement?")==false)
          { required_houseagree.focus(); 
           return false;
          }
     if (dropdownvalidation(required_hometype.selectedIndex, "Please enter type of home.")==false)
          { required_hometype.focus(); 
           return false;
          }
     if (dropdownvalidation(required_ownrent.selectedIndex, "Please enter whether you own or rent.")==false)
          { required_ownrent.focus(); 
           return false;
          }

       var box=document.dogapp.required_ownrent.options;
       var chosen_value=box[box.selectedIndex].value;

      if (chosen_value == "Rent")
         if (dropdownvalidation(landlordpermission.selectedIndex, "Please enter whether or not you have landlord's permission.")==false)
              { landlordpermission.focus(); 
                return false;
              }
      if (chosen_value == "Rent")
         if (emptyvalidation(landlordname, "Please enter landlord's name.")==false)
              { landlordname.focus(); 
                return false;
              }
      if (chosen_value == "Rent")
         if (emptyvalidation(landlordphone, "Please enter landlord's phone number including area code.")==false)
              { landlordphone.focus(); 
                return false;
              }
      if (emptyvalidation(landlordphone, "")==true)          // i.e., the field contains characters
          if (phonevalidation(landlordphone, "Landlord's phone number has invalid characters or incorrect length.")==false)
              { landlordphone.focus();
                return false;
              }
      if (chosen_value == "Rent")
         if (emptyvalidation(pet_policy, "Please describe pet policy.")==false)
              { pet_policy.focus(); 
                return false;
              }
      if (textlenvalidation(pet_policy, 320, "Pet policy text is too long and will be trimmed.")==false)
          { pet_policy.focus(); 
            return false;
          }
     if (dropdownvalidation(required_otherpets.selectedIndex, "Have you had other pets in the last 5 years?")==false)
          { required_otherpets.focus(); 
           return false;
          }

       var box=document.dogapp.required_otherpets.options;
       var chosen_value=box[box.selectedIndex].value;

// If there were other pets in the last 5 years, require at least one entry in the pet list.
      if (chosen_value == "Yes")
         if (emptyvalidation(pet1name, "Please enter pet's name.")==false)
              { pet1name.focus(); 
                return false;
              }
      if (chosen_value == "Yes")
         if (dropdownvalidation(pet1sex.selectedIndex, "Please enter male or female.")==false)
              { pet1sex.focus(); 
                return false;
              }
      if (chosen_value == "Yes")
         if (dropdownvalidation(pet1neut.selectedIndex, "Please enter whether or not pet is/was spayed/neutered.")==false)
              { pet1neut.focus(); 
                return false;
              }
      if (chosen_value == "Yes")
         if (digitvalidation(pet1age,1,2,"Please enter pet's current age or age at death. Must be a number.","I")==false)
              { pet1age.focus(); 
                return false;
              }
      if (chosen_value == "Yes")
         if (dropdownvalidation(pet1type.selectedIndex, "Please enter type of pet.")==false)
              { pet1type.focus(); 
                return false;
              }
      if (chosen_value == "Yes")
         if (emptyvalidation(pet1breed, "Please enter pet's breed.")==false)
              { pet1breed.focus(); 
                return false;
              }
      if (chosen_value == "Yes")
         if (emptyvalidation(pet1status, "Please enter pet's current status.")==false)
              { pet1status.focus(); 
                return false;
              }

// If a name is given for pet number 2, require the remaining fields to be filled in.
      if (emptyvalidation(pet2name, "")==true)          // i.e., the field contains characters
         if (dropdownvalidation(pet2sex.selectedIndex, "Please enter male or female.")==false)
              { pet2sex.focus(); 
                return false;
              }
      if (emptyvalidation(pet2name, "")==true)          // i.e., the field contains characters
         if (dropdownvalidation(pet2neut.selectedIndex, "Please enter whether or not pet is/was spayed/neutered.")==false)
              { pet2neut.focus(); 
                return false;
              }
      if (emptyvalidation(pet2name, "")==true)          // i.e., the field contains characters
         if (digitvalidation(pet2age,1,2,"Please enter pet's current age or age at death. Must be a number.","I")==false)
              { pet2age.focus(); 
                return false;
              }
      if (emptyvalidation(pet2name, "")==true)          // i.e., the field contains characters
         if (dropdownvalidation(pet2type.selectedIndex, "Please enter type of pet.")==false)
              { pet2type.focus(); 
                return false;
              }
      if (emptyvalidation(pet2name, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(pet2breed, "Please enter pet's breed.")==false)
              { pet2breed.focus(); 
                return false;
              }
      if (emptyvalidation(pet2name, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(pet2status, "Please enter pet's current status.")==false)
              { pet2status.focus(); 
                return false;
              }
// If a name is given for pet number 3, require the remaining fields to be filled in.
      if (emptyvalidation(pet3name, "")==true)          // i.e., the field contains characters
         if (dropdownvalidation(pet3sex.selectedIndex, "Please enter male or female.")==false)
              { pet3sex.focus(); 
                return false;
              }
      if (emptyvalidation(pet3name, "")==true)          // i.e., the field contains characters
         if (dropdownvalidation(pet3neut.selectedIndex, "Please enter whether or not pet is/was spayed/neutered.")==false)
              { pet3neut.focus(); 
                return false;
              }
      if (emptyvalidation(pet3name, "")==true)          // i.e., the field contains characters
         if (digitvalidation(pet3age,1,2,"Please enter pet's current age or age at death. Must be a number.","I")==false)
              { pet3age.focus(); 
                return false;
              }
      if (emptyvalidation(pet3name, "")==true)          // i.e., the field contains characters
         if (dropdownvalidation(pet3type.selectedIndex, "Please enter type of pet.")==false)
              { pet3type.focus(); 
                return false;
              }
      if (emptyvalidation(pet3name, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(pet3breed, "Please enter pet's breed.")==false)
              { pet3breed.focus(); 
                return false;
              }
      if (emptyvalidation(pet3name, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(pet3status, "Please enter pet's current status.")==false)
              { pet3status.focus(); 
                return false;
              }

// If a name is given for pet number 4, require the remaining fields to be filled in.
      if (emptyvalidation(pet4name, "")==true)          // i.e., the field contains characters
         if (dropdownvalidation(pet4sex.selectedIndex, "Please enter male or female.")==false)
              { pet4sex.focus(); 
                return false;
              }
      if (emptyvalidation(pet4name, "")==true)          // i.e., the field contains characters
         if (dropdownvalidation(pet4neut.selectedIndex, "Please enter whether or not pet is/was spayed/neutered.")==false)
              { pet4neut.focus(); 
                return false;
              }
      if (emptyvalidation(pet4name, "")==true)          // i.e., the field contains characters
         if (digitvalidation(pet4age,1,2,"Please enter pet's current age or age at death. Must be a number.","I")==false)
              { pet4age.focus(); 
                return false;
              }
      if (emptyvalidation(pet4name, "")==true)          // i.e., the field contains characters
         if (dropdownvalidation(pet4type.selectedIndex, "Please enter type of pet.")==false)
              { pet4type.focus(); 
                return false;
              }
      if (emptyvalidation(pet4name, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(pet4breed, "Please enter pet's breed.")==false)
              { pet4breed.focus(); 
                return false;
              }
      if (emptyvalidation(pet4name, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(pet4status, "Please enter pet's current status.")==false)
              { pet4status.focus(); 
                return false;
              }
// If a name is given for pet number 5, require the remaining fields to be filled in.
      if (emptyvalidation(pet5name, "")==true)          // i.e., the field contains characters
         if (dropdownvalidation(pet5sex.selectedIndex, "Please enter male or female.")==false)
              { pet5sex.focus(); 
                return false;
              }
      if (emptyvalidation(pet5name, "")==true)          // i.e., the field contains characters
         if (dropdownvalidation(pet5neut.selectedIndex, "Please enter whether or not pet is/was spayed/neutered.")==false)
              { pet5neut.focus(); 
                return false;
              }
      if (emptyvalidation(pet5name, "")==true)          // i.e., the field contains characters
         if (digitvalidation(pet5age,1,2,"Please enter pet's current age or age at death. Must be a number.","I")==false)
              { pet5age.focus(); 
                return false;
              }
      if (emptyvalidation(pet5name, "")==true)          // i.e., the field contains characters
         if (dropdownvalidation(pet5type.selectedIndex, "Please enter type of pet.")==false)
              { pet5type.focus(); 
                return false;
              }
      if (emptyvalidation(pet5name, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(pet5breed, "Please enter pet's breed.")==false)
              { pet5breed.focus(); 
                return false;
              }
      if (emptyvalidation(pet5name, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(pet5status, "Please enter pet's current status.")==false)
              { pet5status.focus(); 
                return false;
              }
// If a name is given for pet number 6, require the remaining fields to be filled in.
      if (emptyvalidation(pet6name, "")==true)          // i.e., the field contains characters
         if (dropdownvalidation(pet6sex.selectedIndex, "Please enter male or female.")==false)
              { pet6sex.focus(); 
                return false;
              }
      if (emptyvalidation(pet6name, "")==true)          // i.e., the field contains characters
         if (dropdownvalidation(pet6neut.selectedIndex, "Please enter whether or not pet is/was spayed/neutered.")==false)
              { pet6neut.focus(); 
                return false;
              }
      if (emptyvalidation(pet6name, "")==true)          // i.e., the field contains characters
         if (digitvalidation(pet6age,1,2,"Please enter pet's current age or age at death. Must be a number.","I")==false)
              { pet6age.focus(); 
                return false;
              }
      if (emptyvalidation(pet6name, "")==true)          // i.e., the field contains characters
         if (dropdownvalidation(pet6type.selectedIndex, "Please enter type of pet.")==false)
              { pet6type.focus(); 
                return false;
              }
      if (emptyvalidation(pet6name, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(pet6breed, "Please enter pet's breed.")==false)
              { pet6breed.focus(); 
                return false;
              }
      if (emptyvalidation(pet6name, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(pet6status, "Please enter pet's current status.")==false)
              { pet6status.focus(); 
                return false;
              }
     if (dropdownvalidation(required_surrendered.selectedIndex, "Have you surrendered a pet?")==false)
          { required_surrendered.focus(); 
           return false;
          }

       var box=document.dogapp.required_surrendered.options;
       var chosen_value=box[box.selectedIndex].value;

      if (chosen_value == "Yes")
         if (emptyvalidation(petsurrenderexplan, "Please explain pet surrender circumstances.")==false)
              { petsurrenderexplan.focus(); 
                return false;
              }
      if (textlenvalidation(petsurrenderexplan, 320, "Pet surrender explanation is too long and will be trimmed.")==false)
          { petsurrenderexplan.focus(); 
            return false;
          }
     if (emptyvalidation(required_circum_return, "Please describe circumstances under which you would return pet.")==false)
          { required_circum_return.focus(); 
            return false;
          }
      if (textlenvalidation(required_circum_return, 320, "Circumstances description is too long and will be trimmed.")==false)
          { required_circum_return.focus(); 
            return false;
          }
     if (dropdownvalidation(required_current_vet.selectedIndex, "Do you have a current vet?")==false)
          { required_current_vet.focus(); 
           return false;
          }

       var box=document.dogapp.required_current_vet.options;
       var chosen_value=box[box.selectedIndex].value;

      if (chosen_value == "Yes")
         if (emptyvalidation(current_vetname, "Please give current vet's name.")==false)
              { current_vetname.focus(); 
                return false;
              }
      if (chosen_value == "Yes")
         if (emptyvalidation(current_vetphone, "Please enter current vet's phone number including area code.")==false)
              { current_vetphone.focus(); 
                return false;
              }
      if (emptyvalidation(current_vetphone, "")==true)          // i.e., the field contains characters
         if (phonevalidation(current_vetphone, "Current vet's phone number has invalid characters or incorrect length.")==false)
             { current_vetphone.focus(); 
               return false;
             }
      if (chosen_value == "Yes")
         if (emptyvalidation(current_vetpetname, "Please give name\(s\) of pet\(s\) treated by this vet.")==false)
              { current_vetpetname.focus(); 
                return false;
              }
      if (chosen_value == "Yes")
         if (emptyvalidation(current_vetpayor, "Please give person's name in vet records.")==false)
              { current_vetpayor.focus(); 
                return false;
              }
      if (chosen_value == "Yes")
         if (dropdownvalidation(current_vet_for_sargdog.selectedIndex, "Will you use your current vet for this SARG dog?")==false)
              { current_vet_for_sargdog.focus(); 
                return false;
              }
       var box=document.dogapp.current_vet_for_sargdog.options;
       var chosen_value2=box[box.selectedIndex].value;

      if (chosen_value == "No" || chosen_value2 == "No")
            if (emptyvalidation(plan_vetname, "Please give the name of the vet you plan to use.")==false)
                 { plan_vetname.focus(); 
                   return false;
                 }

// Phone number for planned vet is not required, but must be correct format if it is supplied.
      if (emptyvalidation(plan_vetphone, "")==true)          // i.e., the field contains characters
          if (phonevalidation(plan_vetphone, "Phone number has invalid characters or incorrect length.")==false)
              { plan_vetphone.focus();
                return false;
              }

//
//
// If previous vet names are listed, other fields are required.
      if (emptyvalidation(vetname1, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(vetphone1, "Please enter previous vet's phone number including area code.")==false)
              { vetphone1.focus(); 
                return false;
              }
      if (emptyvalidation(vetphone1, "")==true)          // i.e., the field contains characters
         if (phonevalidation(vetphone1, "Previous vet's phone number has invalid characters or incorrect length.")==false)
             { vetphone1.focus(); 
               return false;
             }
      if (emptyvalidation(vetname1, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(vetpetname1, "Please give name\(s\) of pet\(s\) treated by this vet.")==false)
              { vetpetname1.focus(); 
                return false;
              }
      if (emptyvalidation(vetname1, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(vetpayor1, "Please give person's name in vet records.")==false)
              { vetpayor1.focus(); 
                return false;
              }


      if (emptyvalidation(vetname2, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(vetphone2, "Please enter previous vet's phone number including area code.")==false)
              { vetphone2.focus(); 
                return false;
              }
      if (emptyvalidation(vetphone2, "")==true)          // i.e., the field contains characters
         if (phonevalidation(vetphone2, "Previous vet's phone number has invalid characters or incorrect length.")==false)
             { vetphone2.focus(); 
               return false;
             }
      if (emptyvalidation(vetname2, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(vetpetname2, "Please give name\(s\) of pet\(s\) treated by this vet.")==false)
              { vetpetname2.focus(); 
                return false;
              }
      if (emptyvalidation(vetname2, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(vetpayor2, "Please give person's name in vet records.")==false)
              { vetpayor2.focus(); 
                return false;
              }



      if (emptyvalidation(vetname3, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(vetphone3, "Please enter previous vet's phone number including area code.")==false)
              { vetphone3.focus(); 
                return false;
              }
      if (emptyvalidation(vetphone3, "")==true)          // i.e., the field contains characters
         if (phonevalidation(vetphone3, "Previous vet's phone number has invalid characters or incorrect length.")==false)
             { vetphone3.focus(); 
               return false;
             }
      if (emptyvalidation(vetname3, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(vetpetname3, "Please give name\(s\) of pet\(s\) treated by this vet.")==false)
              { vetpetname3.focus(); 
                return false;
              }
      if (emptyvalidation(vetname3, "")==true)          // i.e., the field contains characters
         if (emptyvalidation(vetpayor3, "Please give person's name in vet records.")==false)
              { vetpayor3.focus(); 
                return false;
              }

     if (dropdownvalidation(required_vetpermission.selectedIndex, "Please answer Yes or No to permission to contact vet(s).")==false)
          { required_vetpermission.focus(); 
            return false;
          }
     if (emptyvalidation(heartworm_prev, "Please fill in the heartworm preventative you will use.")==false)
          { heartworm_prev.focus(); 
            return false;
          }
     if (emptyvalidation(fleacontrol, "Please fill in the flea control product you will use.")==false)
          { fleacontrol.focus(); 
            return false;
          }
     if (emptyvalidation(required_reference_name1, "Please fill in the first reference name.")==false)
          { required_reference_name1.focus(); 
            return false;
          }
     if (emptyvalidation(required_reference_phone1, "Please enter first reference phone including area code.")==false)
          { required_reference_phone1.focus(); 
            return false;
          }
     if (phonevalidation(required_reference_phone1, "First reference phone number has invalid characters or incorrect length.")==false)
          { required_reference_phone1.focus();
            return false;
          }

// E-mail validation does not require e-mail to be filled in but validates its format if it is present.
     if (emailvalidation(reference_email1,"Invalid e-mail address for first reference.")==false) 
          { reference_email1.focus(); 
            return false;
          }
     if (emptyvalidation(required_reference_best_time1, "Please fill in the best time to contact first reference.")==false)
          { required_reference_best_time1.focus(); 
            return false;
          }
     if (emptyvalidation(required_reference_name2, "Please fill in the second reference name.")==false)
          { required_reference_name2.focus(); 
            return false;
          }
     if (emptyvalidation(required_reference_phone2, "Please enter second reference phone including area code.")==false)
          { required_reference_phone2.focus(); 
            return false;
          }
     if (phonevalidation(required_reference_phone2, "Second reference phone number has invalid characters or incorrect length.")==false)
          { required_reference_phone2.focus();
            return false;
          }

// E-mail validation does not require e-mail to be filled in but validates its format if it is present.
     if (emailvalidation(reference_email2,"Invalid e-mail address for second reference.")==false) 
          { reference_email2.focus(); 
            return false;
          }
     if (emptyvalidation(required_reference_best_time2, "Please fill in the best time to contact second reference.")==false)
          { required_reference_best_time2.focus(); 
            return false;
          }
     if (emptyvalidation(required_dogexplan, "Please explain why you want a dog and how it will fit into your household.")==false)
          { required_dogexplan.focus(); 
            return false;
          }
     if (textlenvalidation(required_dogexplan, 400, "Dog explanation text is too long and will be trimmed.")==false)
          { required_dogexplan.focus(); 
            return false;
          }
     if (emptyvalidation(required_pethome, "Please fill in where the dog will be when you are home.")==false)
          { required_pethome.focus(); 
            return false;
          }
     if (emptyvalidation(required_hours_alone_M_F, "Please fill in hours alone during the week.")==false)
          { required_hours_alone_M_F.focus(); 
            return false;
          }
     if (emptyvalidation(required_hours_alone_weekends, "Please fill in hours alone on weekends.")==false)
          { required_hours_alone_weekends.focus(); 
            return false;
          }
     if (emptyvalidation(required_where_night, "Please fill in where dog will be at night.")==false)
          { required_where_night.focus(); 
            return false;
          }
     if (emptyvalidation(required_where_gone, "Please fill in where dog will be when you are gone.")==false)
          { required_where_gone.focus(); 
            return false;
          }
     if (emptyvalidation(required_time_outdoors, "Please fill in amount of time outdoors.")==false)
          { required_time_outdoors.focus(); 
            return false;
          }
     if (dropdownvalidation(required_fenced_yard.selectedIndex, "Do you have a fenced yard?")==false)
          { required_fenced_yard.focus(); 
           return false;
          }

       var box=document.dogapp.required_fenced_yard.options;
       var chosen_value=box[box.selectedIndex].value;

      if (chosen_value == "Yes")
         if (emptyvalidation(fence_type, "Please describe the fence.")==false)
              { fence_type.focus(); 
                return false;
              }
      if (chosen_value == "Yes")
         if (dropdownvalidation(fence_secure.selectedIndex, "Do you consider your fence secure?")==false)
              { fence_secure.focus(); 
                return false;
              }
      if (chosen_value == "Yes")
         if (dropdownvalidation(fence_repairs.selectedIndex, "Are you willing to make fence repairs if needed?")==false)
              { fence_repairs.focus(); 
                return false;
              }
      if (chosen_value == "No")
         if (emptyvalidation(no_fence_exercise, "Please tell how you will exercise the dog.")==false)
              { no_fence_exercise.focus(); 
                return false;
              }
     if (dropdownvalidation(required_tie_outside.selectedIndex, "Would you tie a dog outside?")==false)
          { required_tie_outside.focus(); 
           return false;
          }

       var box=document.dogapp.required_tie_outside.options;
       var chosen_value=box[box.selectedIndex].value;

      if (chosen_value == "Yes")
         if (emptyvalidation(tieout_circumstances, "Please describe circumstances when you would tie outside.")==false)
              { tieout_circumstances.focus(); 
                return false;
              }
      if (textlenvalidation(tieout_circumstances, 320, "Tieout circumstances text is too long and will be trimmed.")==false)
          { tieout_circumstances.focus(); 
            return false;
          }
     if (dropdownvalidation(required_off_leash.selectedIndex, "Would you allow dog off-leash?")==false)
          { required_off_leash.focus(); 
           return false;
          }

       var box=document.dogapp.required_off_leash.options;
       var chosen_value=box[box.selectedIndex].value;

      if (chosen_value == "Yes")
         if (emptyvalidation(off_leash_circumstances, "Please describe circumstances when you would allow dog off-leash.")==false)
              { off_leash_circumstances.focus(); 
                return false;
              }
      if (textlenvalidation(off_leash_circumstances, 320, "Off_leash circumstances text is too long and will be trimmed.")==false)
          { off_leash_circumstances.focus(); 
            return false;
          }
     if (emptyvalidation(required_training_plans, "Please describe training plans.")==false)
          { required_training_plans.focus(); 
            return false;
          }
     if (textlenvalidation(required_training_plans, 320, "Training plans text is too long and will be trimmed.")==false)
          { required_training_plans.focus(); 
            return false;
          }
     if (dropdownvalidation(required_obedience_class.selectedIndex, "Would you be interested in obedience classes?")==false)
          { required_obedience_class.focus(); 
           return false;
          }
     if (emptyvalidation(required_discipline, "Please describe discipline techniques.")==false)
          { required_discipline.focus(); 
            return false;
          }
      if (textlenvalidation(required_discipline, 320, "Discipline techniques text is too long and will be trimmed.")==false)
          { required_discipline.focus(); 
            return false;
          }
     if (dropdownvalidation(required_use_crate.selectedIndex, "Will you be using a crate?")==false)
          { required_use_crate.focus(); 
           return false;
          }
     if (dropdownvalidation(required_lifetime_care.selectedIndex, "Are you committed to give lifetime care?")==false)
          { required_lifetime_care.focus(); 
           return false;
          }
     if (dropdownvalidation(required_realize_cost.selectedIndex, "Do you realize yearly cost?")==false)
          { required_realize_cost.focus(); 
           return false;
          }
     if (dropdownvalidation(required_financial_commitment.selectedIndex, "Are you prepared for financial commitment?")==false)
          { required_financial_commitment.focus(); 
           return false;
          }
     if (dropdownvalidation(required_groomer.selectedIndex, "Do you have a regular groomer?")==false)
          { required_groomer.focus(); 
           return false;
          }

       var box=document.dogapp.required_groomer.options;
       var chosen_value=box[box.selectedIndex].value;

     if (chosen_value == "Yes")
         if (dropdownvalidation(groomer_contact.selectedIndex, "May we contact groomer for reference?")==false)
             { groomer_contact.focus(); 
              return false;
             }

       var box=document.dogapp.groomer_contact.options;
       var chosen_value2=box[box.selectedIndex].value;

     if (chosen_value == "Yes" && chosen_value2 == "Yes")
         if (emptyvalidation(groomer_name, "Please enter groomer name.")==false)
              { groomer_name.focus(); 
                return false;
              }
     if (chosen_value == "Yes" && chosen_value2 == "Yes")
         if (emptyvalidation(groomer_phone, "Please enter groomer's phone including area code.")==false)
              { groomer_phone.focus(); 
                return false;
              }
      if (emptyvalidation(groomer_phone, "")==true)          // i.e., the field contains characters
         if (phonevalidation(groomer_phone, "Groomer's phone number has invalid characters or incorrect length.")==false)
             { groomer_phone.focus();
               return false;
             }
     if (dropdownvalidation(required_home_visit.selectedIndex, "Do you agree to home visit?")==false)
          { required_home_visit.focus(); 
           return false;
          }
     if (dropdownvalidation(required_howheard.selectedIndex, "How did you hear about this pet?")==false)
          { required_howheard.focus(); 
           return false;
          }
       var box=document.dogapp.required_howheard.options;
       var chosen_value=box[box.selectedIndex].value;

     if (chosen_value == "Other")
         if (emptyvalidation(howheard_other, "Please describe other location.")==false)
              { howheard_other.focus(); 
                return false;
              }
      if (textlenvalidation(comments_text, 480, "Comment text is too long and will be trimmed.")==false)
          { comments_text.focus(); 
            return false;
          }
     if (dropdownvalidation(required_affirm.selectedIndex, "Do you affirm that your entries are true and accurate?")==false)
          { required_affirm.focus(); 
           return false;
          }
}
}



function emptyvalidation(entered, alertbox)
{
// Emptyfield Validation by Henrik Petersen / NetKontoret
// Explained at www.echoecho.com/jsforms.htm
// Please do not remove this line and the two lines above.
with (entered)
{
if (value==null || value=="") 
    {
    if (alertbox!="") {alert(alertbox);} 
    return false;
    }  
    else {return true;}
}
}


//valuevalidation(this,min,max,text,type)
//Checking if the content is a number in a limited area.
//Optional parameters are:
//min --minimum value allowed in the field.
//max --maximum value allowed in the field.
//text --text that will show in an alertbox if content is illegal.
//type --enter "I" if only integers are allowed.

function valuevalidation(entered, min, max, alertbox, datatype)
{
// Value Validation by Henrik Petersen / NetKontoret
// Explained at www.echoecho.com/jsforms.htm
// Please do not remove this line and the two lines above.
with (entered)
{
checkvalue=parseFloat(value);
if (datatype)
{smalldatatype=datatype.toLowerCase();
if (smalldatatype.charAt(0)=="i") {checkvalue=parseInt(value)};
}
if ((parseFloat(min)==min && checkvalue<min) || (parseFloat(max)==max && checkvalue>max) || value!=checkvalue)
{if (alertbox!="") {alert(alertbox);} return false;}
else {return true;}
}
} 


// Checking if the content has a certain number of digits.
// Optional parameters are:
// min --minimum number of digits allowed in the field.
// max --maximum number of digits allowed in the field.
// text --text that will show in an alertbox if content is illegal.
// type --enter "I" if only integers are allowed.

function digitvalidation(entered, min, max, alertbox, datatype)
{
// Digit Validation by Henrik Petersen / NetKontoret
// Explained at www.echoecho.com/jsforms.htm
// Please do not remove this line and the two lines above.
with (entered)
{
checkvalue=parseFloat(value);
if (datatype)
{smalldatatype=datatype.toLowerCase();
if (smalldatatype.charAt(0)=="i")
{checkvalue=parseInt(value); if (value.indexOf(".")!=-1) {checkvalue=checkvalue+1}};
}
if ((parseFloat(min)==min && value.length<min) || (parseFloat(max)==max && value.length>max) || value!=checkvalue)
{if (alertbox!="") {alert(alertbox);} return false;}
else {return true;}
}
}


function emailvalidation(entered, alertbox)
{
   with (entered)
{
     if (entered.value=="" || entered.value==null) {return true;}
     else
     {
     email=entered.value;
     var expression=/^([a-zA-Z0-9\-\._]+)@(([a-zA-Z0-9\-_]+\.)+)([a-z]{2,6})$/;
     if(!(expression.test(email)) )
       {if (alertbox) {alert(alertbox);} return false;}
       else {return true;}  
     }
}
}








// function emailvalidation(entered, alertbox)
// {
          // E-mail Validation by Henrik Petersen / NetKontoret
         // Explained at www.echoecho.com/jsforms.htm
          // Please do not remove this line and the two lines above.
// with (entered)
// {
// if (value=="" || value==null) {return true;}
//   else
//   {
//     apos=value.indexOf("@");
//     dotpos=value.lastIndexOf(".");
//     lastpos=value.length-1;
//     if (apos<1 || dotpos-apos<2 || lastpos-dotpos>3 || lastpos-dotpos<2)
//     {if (alertbox) {alert(alertbox);} return false;}
//        else {return true;}
//   }
// }
// }



function dropdownvalidation(choice, alertbox) 
{
with (choice)
{
  if (choice==0) 
     { if (alertbox!="") {alert(alertbox);} return false;}
  else {return true;}
}   
}

function phonevalidation(entered, alertbox)
{
with  (entered)
{
// for purposes of checking the value, strip ( ) . - or space from the number first
//     var stripped = entered.value.replace(/[\(\)\.\-\ ]/g,"");
// if after stripping the allowed characters, the field is not all numeric, it has invalid characters
//     if (isNaN(parseInt(stripped,10)))
//      { if (alertbox!="") {alert(alertbox);} return false;}

var stripped = entered.value.replace(/[^0-9]/g, "" );

// assuming the field has no invalid characters, check to be sure it has 10 digits
     if ((stripped.length != 10)) 
           { if (alertbox!="") {alert(alertbox);} return false;}
     else {return true;}
}
}


function datevalidation(fld, alertbox) 
{
// requires that the field have valid date format and that it be a reasonable date
    var RegExPattern = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;

    if ((fld.value.match(RegExPattern)) && (fld.value!='')) 
         { return true; }
    else      
        { if (alertbox!="") {alert(alertbox);} 
          return false;
        }
}


function textLimit(field, maxlen) 
    {
     if (field.value.length > maxlen + 1)
          alert('Your entry is too long and has been trimmed');
     if (field.value.length > maxlen)
          field.value = field.value.substring(0, maxlen);
    }


function textlenvalidation(txtfld, maxlen, alertbox) 
{
   if (txtfld.value.length > maxlen)
      { txtfld.value = txtfld.value.substring(0, maxlen);
        if (alertbox!="") {alert(alertbox);} 
        return false;
      }
}

