// Application specific Javascript functions

  function checkForm(f)
  {
    //  alert ("Here in checkForm");
    //  alert ("Name=" + f.name);

    /*   To test the chosen option in a Select statement:
              var opt=f.selectname.selectedIndex;
              var field=f.selectname.options[opt].text;
              (Can use value instead of text if the option statements have a value clause)
    */
    if (f.buttonPressed.value=="Cancel") {return true;}
    if (f.buttonPressed.value=="Delete")
    {
      if (confirm("Are you really sure you want to delete this record?"))
      {return true;}
      else {return false;}
    }
    var errMsg="";
    switch (f.name)
    {
      case "contactForm":
        if (f.booking.value == "booking")
        {
          /*
          if (empty(f.contactForename.value))
          {
            if (errMsg=="") {f.contactForename.focus();}
            errMsg+="Please enter the contactForename\n";
          }
          */
          if (empty (f.contactSurname.value))
          {
            if (errMsg=="")  {f.contactSurname.focus();}
            errMsg+="Please enter your Surname\n";
          }

          /*
          if (empty (f.company.value))
          {
            if (errMsg=="")  {f.company.focus();}
            errMsg+="Please enter your Company Name\n";
          }
          */

          if (empty (f.address1.value))
          {
            if (errMsg=="")  {f.address1.focus();}
            errMsg+="Please enter the first line of your Address\n";
          }

          if (empty (f.address3.value))
          {
            if (errMsg=="")  {f.address3.focus();}
            errMsg+="Please enter your City\n";
          }

          if (empty (f.address4.value))
          {
            if (errMsg=="")  {f.address4.focus();}
            errMsg+="Please enter your County\n";
          }

          if (empty (f.postcode.value))
          {
            if (errMsg=="")  {f.postcode.focus();}
            errMsg+="Please enter your Postcode\n";
          }

          if (empty (f.phone.value))
          {
            if (errMsg=="")  {f.phone.focus();}
            errMsg+="Please enter your Telephone Number\n";
          }

          if (empty (f.email.value))
          {
            if (errMsg=="")  {f.email.focus();}
            errMsg+="Please enter your Email Address\n";
          }
          else
          {
            if (!checkEmail (f.email.value))
            {
              if (errMsg=="")  {f.email.focus();}
              errMsg+="That Email address is not valid\n";
            }
          }

          if (empty(f.verifyEmail.value))
          {
            if (errMsg=="") {f.verifyEmail.focus();}
            errMsg+="Please confirm  your Email Address\n";
          }
          else
          {
            if (f.verifyEmail.value != f.email.value)
            {
              if (errMsg=="") {f.verifyEmail.focus();}
              errMsg+="Those Email Addresses do not match\n";
            }
          }

          if (!f.luxury46Required.checked && !f.luxuryWheelchairAccessRequired.checked)
          {
             if (errMsg=="")  {f.luxury46Required.focus();}
             errMsg+="Please indicate the Vehicle Required\n";
           }

           if (empty (f.departureAddress.value))
           {
             if (errMsg=="")  {f.departureAddress.focus();}
             errMsg+="Please enter the Departure Address\n";
           }

           var datesValid = true;
           if (!validateDate(f, "departureDate", "Future"))
           {
             if (errMsg=="")  {f.departureDateDay.focus();}
             errMsg+="The Departure Date is not a valid future date\n";
             datesValid = false;
           }

           var opt=f.singleReturn.selectedIndex;
           var singleReturn=f.singleReturn.options[opt].text;
           if (singleReturn == "Round trip")
           {
             if (!validateDate(f, "returnDate"))
             {
               if (errMsg=="")  {f.returnDateDay.focus();}
               errMsg+="The Return Date is not a valid date\n";
             }
             else
             {
               if (datesValid)
               {
                 var dateCompare = compareDates(f, "departureDate", "returnDate");
                 if (dateCompare == 1)
                 {
                   if (errMsg=="")  {f.returnDateDay.focus();}
                   errMsg+="The Return Date cannot precede the Departure Date\n";
                 }
                 else
                 {
                   if (dateCompare == 0)
                   { // Same day return so check times
                     if (f.departureTimeHour.value > f.returnTimeLeaveHour.value)
                     {
                       if (errMsg=="")  {f.returnTimeLeaveHour.focus();}
                       errMsg+="The Return Time must be later than the Departure Time\n";
                     }
                     else
                     {
                       if (f.departureTimeHour.value == f.returnTimeLeaveHour.value)
                       {
                         if (f.departureTimeMinutes.value >= f.returnTimeLeaveMinutes.value)
                         {
                           if (errMsg=="")  {f.returnTimeLeaveHour.focus();}
                           errMsg+="The Return Time must be later than the Departure Time\n";
                         }
                       }
                     }
                   }
                 }
               }

             }
           }

           if (empty (f.destinationAddress.value))
           {
             if (errMsg=="")  {f.destinationAddress.focus();}
             errMsg+="Please enter your Destination Address\n";
           }

           var opt=f.travelDirect.selectedIndex;
           var travelDirect=f.travelDirect.options[opt].text;
           if (travelDirect == "No")
           {
             if (empty (f.indirectStops.value))
             {
               if (errMsg=="")  {f.indirectStops.focus();}
               errMsg+="Please enter details of your intermediate stops\n";
             }
           }

           for (var i=1; i<=7; i++)
           {
             var dateInfo = eval("f.day" + i + "Date.value");
             var activity = eval("f.day" + i + "Activities.value");
             if (dateInfo !="" && activity == "") {errMsg+="Please enter the Activities for " + dateInfo + "\n";}
             else
             {
               if (dateInfo =="" && activity != "") {errMsg+="Please enter the Date for activitity " + activity + "\n";}
             }
           }
           /*

           if (empty (f.fax.value))
           {
             if (errMsg=="")  {f.fax.focus();}
             errMsg+="Please enter your fax\n";
           }

           if (empty (f.bestContactTime.value))
           {
             if (errMsg=="")  {f.bestContactTime.focus();}
             errMsg+="Please enter your bestContactTime\n";
           }


           if (empty (f.departureCounty.value))
           {
             if (errMsg=="")  {f.departureCounty.focus();}
             errMsg+="Please enter your departureCounty\n";
           }


           if (empty (f.destinationCounty.value))
           {
             if (errMsg=="")  {f.destinationCounty.focus();}
             errMsg+="Please enter your destinationCounty\n";
           }

           if (empty (f.itineraryRequirements.value))
           {
             if (errMsg=="")  {f.itineraryRequirements.focus();}
             errMsg+="Please enter your itineraryRequirements\n";
           }


           if (empty(f.safetyImportant.value))
           {
             if (errMsg=="") {f.safetyImportant.focus();}
             errMsg+="Please enter the safetyImportant\n";
           }

           if (empty(f.reputationImportant.value))
           {
             if (errMsg=="") {f.reputationImportant.focus();}
             errMsg+="Please enter the reputationImportant\n";
           }

           if (empty(f.equipmentImportant.value))
           {
             if (errMsg=="") {f.equipmentImportant.focus();}
             errMsg+="Please enter the equipmentImportant\n";
           }

           if (empty(f.serviceImportant.value))
           {
             if (errMsg=="") {f.serviceImportant.focus();}
             errMsg+="Please enter the serviceImportant\n";
           }

           if (empty(f.priceImportant.value))
           {
             if (errMsg=="") {f.priceImportant.focus();}
             errMsg+="Please enter the priceImportant\n";
           }

           if (empty(f.driverImportant.value))
           {
             if (errMsg=="") {f.driverImportant.focus();}
             errMsg+="Please enter the driverImportant\n";
           }


           if (empty(f.phone2.value))
           {
             if (errMsg=="") {f.phone2.focus();}
             errMsg+="Please enter the phone2\n";
           }

           if (empty(f.numberOfWheelchairs.value))
           {
             if (errMsg=="") {f.numberOfWheelchairs.focus();}
             errMsg+="Please enter the numberOfWheelchairs\n";
           }

           if (empty(f.tableNameField33.value))
           {
             if (errMsg=="") {f.tableNameField33.focus();}
             errMsg+="Please enter the tableNameField33\n";
           }

           if (empty(f.tableNameField34.value))
           {
             if (errMsg=="") {f.tableNameField34.focus();}
             errMsg+="Please enter the tableNameField34\n";
           }

           if (empty(f.tableNameField35.value))
           {
             if (errMsg=="") {f.tableNameField35.focus();}
             errMsg+="Please enter the tableNameField35\n";
           }

           if (empty(f.tableNameField36.value))
           {
             if (errMsg=="") {f.tableNameField36.focus();}
             errMsg+="Please enter the tableNameField36\n";
           }

           if (empty(f.tableNameField37.value))
           {
             if (errMsg=="") {f.tableNameField37.focus();}
             errMsg+="Please enter the tableNameField37\n";
           }
           */
        }
        else
        { // Simple contact form
          if (empty (f.contactSurname.value))
          {
            if (errMsg=="")  {f.contactSurname.focus();}
            errMsg+="Please enter your Surname\n";
          }

          if (empty (f.phone.value) && empty (f.email.value))
          {
            if (errMsg=="")  {f.phone.focus();}
            errMsg+="Please enter either your Telephone Number or Email Address\n";
          }
          else
          {
            if (!empty (f.email.value) && !checkEmail (f.email.value))
            {
              if (errMsg=="")  {f.email.focus();}
              errMsg+="That Email address is not valid\n";
            }
          }

          if (empty (f.comments.value))
          {
            if (errMsg=="")  {f.comments.focus();}
            errMsg+="Please enter details of your Enquiry\n";
          }
        }

      break;


      default:
      return true;
    }

    if (errMsg!="")
    {
      alert(errMsg);
      return false;
    }
    else return true;
  }
