// Application specific Javascript functions
  /*
  window.onload = initialisePage;
  function initialisePage()
  {
    var forms = document.getElementsByTagName("form");
    for (var i=0; i<forms.length; i++)
    {
      var form = forms[i];
      form.onsubmit = checkForm;

      var buttons = form.getElementsByTagName("input");
      for (var j=0; j<buttons.length; j++)
      {
        var button = buttons[j];
        if (button.type== "submit" || button.type == "image") {button.onclick = setButtonPressed;}
      }

    }
  }

  function setButtonPressed(e)
  { // Locate Form containing the button and set the buttonPressed value
    var b = getActivatedObject(e);
    var form = b.parentNode;         var fcount=0;
    while (form.tagName != "FORM" && fcount<50) {fcount++; form = form.parentNode;}
    form.buttonPressed.value = b.name;
  }
  */

  function checkForm(f)
  {
    //var f = getActivatedObject(e);
    //  alert ("Here in checkForm");
    //  alert ("Name=" + f.name);
    // alert ("bp=" + f.buttonPressed.value);

    /*   To test the chosen option in a Select statement:
              var opt=this.selectname.selectedIndex;
              var field=this.selectname.options[opt].text;
              (Can use value instead of text if the option statements have a value clause)

         To test the value of the selected radio button
              var radioLength = this.radioname.length;
              var radioValue = "";
              for (var i=0; i < radioLength; i++)
              {
                if (this.radioname[i].checked)
                {
                  radioValue = this.radioname[i].value;
                  break;
                }
              }
    */

    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="";
    var confirmMessage ="";
    switch (f.name)
    {
      case "bookingForm":
        if (empty(f.bookingPassengerName.value))
        {
          if (errMsg=="") {f.bookingPassengerName.focus();}
          errMsg+="Please enter the Passenger Name\n";
        }

        if (empty(f.bookingNoInParty.value))
        {
          if (errMsg=="") {f.bookingNoInParty.focus();}
          errMsg+="Please enter the Number In Party\n";
        }
        else
        {
          if (!isNumeric(f.bookingNoInParty.value))
          {
            if (errMsg=="") {f.bookingNoInParty.focus();}
            errMsg+="The Number In Party must be numeric\n";
          }
        }

        if (!validateDate(f, "bookingDepartureDate", "Future"))
        {
          if (errMsg=="") {f.bookingDepartureDateDay.focus();}
          errMsg+="The Departure Date is not a valid future date\n";
        }

        if (empty(f.bookingAmountPaid.value))
        {
          if (errMsg=="") {f.bookingAmountPaid.focus();}
          errMsg+="Please enter the Agreed Payment Amount\n";
        }
        else
        {
          if (!isNumeric(f.bookingAmountPaid.value, 2))
          {
            if (errMsg=="") {f.bookingAmountPaid.focus();}
            errMsg+="The Agreed Payment Amount must be numeric, maximum 2 decimal places\n";
          }
        }

        if (f.admin.value == 2)
        {
          if (empty(f.bookingInvoiceNo.value))
          {
            if (errMsg=="") {f.bookingInvoiceNo.focus();}
            errMsg+="Please enter the Invoice Number\n";
          }

          if (!f.bookingConditions.checked)
          {
            if (errMsg=="") {f.bookingConditions.focus();}
            errMsg+="Please confirm you have read the Booking Conditions\n";
          }
        }

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


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

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

     case "bookingconditionsForm":
        /*
        if (empty(f.bookingconditionsField03.value))
        {
          if (errMsg=="") {f.bookingconditionsField03.focus();}
          errMsg+="Please enter your bookingconditionsField03\n";
        }

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

      case "brochureForm":
        /*
        if (empty(f.brochureDescription.value))
        {
          if (errMsg=="") {f.brochureDescription.focus();}
          errMsg+="Please enter your brochureDescription\n";
        }
        */
      break;

      case "contactForm":
        if (empty (f.contactName.value))
        {
           if (errMsg=="")  {f.contactName.focus();}
           errMsg+="Please enter your Name\n";
        }

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


        // if (empty (f.contactAddress1.value) && empty (f.contactAddress2.value) && empty (f.contactAddress3.value))
        if (empty (f.contactAddress1.value))
        {
           if (errMsg=="")  {f.contactAddress1.focus();}
           errMsg+="Please enter your Address\n";
        }

        if (empty (f.contactPostcode.value))
        {
           if (errMsg=="")  {f.contactPostcode.focus();}
           errMsg+="Please enter your contactPostcode\n";
        }
        */
        if (empty (f.contactPhone.value) && empty (f.contactEmail.value))
        {
           if (errMsg=="")  {f.contactPhone.focus();}
           errMsg+="Please enter either your Telephone number or Email Address\n";
        }
        else
        {
          if (!empty (f.contactEmail.value) && !checkEmail (f.contactEmail.value))
          {
            if (errMsg=="")  {f.contactEmail.focus();}
            errMsg+="That Email address is not valid\n";
          }
        }
        /*
        if (empty (f.contactMessage.value))
        {
           if (errMsg=="")  {f.contactMessage.focus();}
           errMsg+="Please enter details of your Enquiry\n";
        }

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

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

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

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

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

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

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

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

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

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

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

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

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

        */
      break;

      case "cruiseratesForm":
        if (empty(f.cruiseratesYear.value))
        {
          if (errMsg=="") {f.cruiseratesYear.focus();}
          errMsg+="Please enter the Year\n";
        }
        /*
        if (empty(f.cruiseratesField04.value))
        {
          if (errMsg=="") {f.cruiseratesField04.focus();}
          errMsg+="Please enter your cruiseratesField04\n";
        }
        */
      break;

      case "documentForm":

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

      break;

      case "faqForm":
        if (empty(f.faqQuestion.value))
        {
          if (errMsg=="") {f.faqQuestion.focus();}
          errMsg+="Please enter the Question\n";
        }

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

        if (!empty(f.faqSequence.value) && !isNumeric(f.faqSequence.value))
        {
          if (errMsg=="") {f.faqSequence.focus();}
          errMsg+="If entered, the Sequence No. must be numeric\n";
        }

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

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

      case "faqgroupForm":
        if (empty(f.faqgroupName.value))
        {
          if (errMsg=="") {f.faqgroupName.focus();}
          errMsg+="Please enter the FAQ Group Name\n";
        }

        if (!empty(f.faqgroupDisplaySequence.value) && !isNumeric(f.faqgroupDisplaySequence.value))
        {
          if (errMsg=="") {f.faqgroupDisplaySequence.focus();}
          errMsg+="If entered the Display Sequence must be numeric\n";
        }

      break;

      case "guestbookForm":
        if (empty(f.guestbookText.value))
        {
          if (errMsg=="") {f.guestbookText.focus();}
          errMsg+="Please enter the Text\n";
        }

        if (empty(f.guestbookBy.value))
        {
          if (errMsg=="") {f.guestbookBy.focus();}
          errMsg+="Please enter Who the Entry is by\n";
        }

        if (!validateDate(f, "guestbookDate"))
        {
          if (errMsg=="") {f.guestbookDateDay.focus();}
          errMsg+="That is not a valid Date\n";
        }
        /*
        if (empty(f.guestbookField05.value))
        {
          if (errMsg=="") {f.guestbookField05.focus();}
          errMsg+="Please enter the Field05\n";
        }

        if (empty(f.guestbookField06.value))
        {
          if (errMsg=="") {f.guestbookField06.focus();}
          errMsg+="Please enter the Field06\n";
        }
        */
      break;

      case "indexpageForm":
        var target = "";
        for (var i=1; i<=7; i++)
        {          var title = eval ("f.indexpageTitle" + i + ".value");
          var text = eval ("f.indexpageText" + i + ".value");
          var opt = eval("f.indexpageLinkOther" + i + ".selectedIndex");
          var linkOther = eval ("f.indexpageLinkOther" + i + ".options[opt].value");

          var opt = eval("f.indexpageLink" + i + ".selectedIndex");
          var link = eval ("f.indexpageLink" + i + ".options[opt].value");
	      switch (i)
	      {	        case 1: target = "first Top Image"; break
	        case 2: target = "second Top Image"; break
	        case 3: target = "third Top Image"; break
	        case 4: target = "top left Lower Image"; break
	        case 5: target = "top right Lower Image"; break
	        case 6: target = "bottom left Lower Image"; break
	        case 7: target = "bottom right Lower Image"; break
	      }

	      if (title == "")
          {
            if (errMsg=="") {eval ("f.indexpageTitle" + i + ".focus()");}
            errMsg+="Please enter the Title for the " + target + "\n";
          }
	      if (text == "")
          {
            if (errMsg=="") {eval ("f.indexpageText" + i + ".focus()");}
            errMsg+="Please enter the Text for the " + target + "\n";
          }
	      if (link != "" && linkOther != "")
          {
            if (errMsg=="") {eval ("f.indexpageText" + i + ".focus()");}
            errMsg+="Please either select a page link or enter an external link for the " + target + ", but not both\n";
          }
	      if (linkOther != "" && !checkURL(linkOther))
          {
            if (errMsg=="") {eval ("f.indexpageLinkOther" + i + ".focus()");}
            errMsg+="The external link for the " + target + " is not a valid URL\n";
          }
        }
      break;

      case "pageForm":
        if (f.pageName.value == "Menu")
        {
          if (empty(f.pageMainText1.value))
          {
            if (errMsg=="") {f.pageMainText1.focus();}
            errMsg+="Please enter the Sample Lunch Menu\n";
          }
        }

        if (f.pageName.value == "Menu (Dinner)")
        {
          if (empty(f.pageMainText1.value))
          {
            if (errMsg=="") {f.pageMainText1.focus();}
            errMsg+="Please enter the Sample Dinner Menu\n";
          }
        }
      break;

      case "photoForm":
        /*
        if (empty(f.photoTitle.value))
        {
          if (errMsg=="") {f.photoTitle.focus();}
          errMsg+="Please enter the Title\n";
        }
       */

        if (!empty(f.photoDisplaySequence.value) && !isNumeric(f.photoDisplaySequence.value))
        {
          if (errMsg=="") {f.photoDisplaySequence.focus();}
          errMsg+="If entered the Display Sequence must be numeric\n";
        }
        /*
        if (empty(f.photoField06.value))
        {
          if (errMsg=="") {f.photoField06.focus();}
          errMsg+="Please enter the Field06\n";
        }
        */
      break;

      case "ratesForm":
        var datesValid = true;
        if (!validateDate(f, "ratesFromDate"))
        {
          if (errMsg=="") {f.ratesFromDateDay.focus();}
          errMsg+="The Applicable From Date is not a valid date\n";
          datesValid = false;
        }

        if (!validateDate(f, "ratesToDate"))
        {
          if (errMsg=="") {f.ratesToDateDay.focus();}
          errMsg+="The Applicable To Date is not a valid date\n";
          datesValid = false;
        }

        if (datesValid)
        {
          if (compareDates(f, "ratesFromDate", "ratesToDate") != 2)
          {
            if (errMsg=="") {f.ratesToDateDay.focus();}
            errMsg+="The Applicable To Date must be later than the Applicable From date\n";
          }
        }

        if (empty(f.ratesSingle.value))
        {
          if (errMsg=="") {f.ratesSingle.focus();}
          errMsg+="Please enter the Single Berth rate\n";
        }
        else
        {
          if (!isNumeric(f.ratesSingle.value, 2))
           {
            if (errMsg=="") {f.ratesSingle.focus();}
            errMsg+="The Single Berth rate must be numeric, maximum 2 decimal places\n";
          }
        }

        if (empty(f.ratesDouble.value))
        {
          if (errMsg=="") {f.ratesDouble.focus();}
          errMsg+="Please enter the Double/Twin-bedded rate\n";
        }
        else
        {
          if (!isNumeric(f.ratesDouble.value, 2))
           {
            if (errMsg=="") {f.ratesDouble.focus();}
            errMsg+="The Double/Twin-bedded rate must be numeric, maximum 2 decimal places\n";
          }
        }

        if (empty(f.ratesWholeBoat.value))
        {
          if (errMsg=="") {f.ratesWholeBoat.focus();}
          errMsg+="Please enter the Whole Boat Charter rate\n";
        }
        else
        {
          if (!isNumeric(f.ratesWholeBoat.value, 2))
           {
            if (errMsg=="") {f.ratesWholeBoat.focus();}
            errMsg+="The Whole Boat Charter rate must be numeric, maximum 2 decimal places\n";
          }
        }

        if (empty(f.ratesActivityCharter.value))
        {
          if (errMsg=="") {f.ratesActivityCharter.focus();}
          errMsg+="Please enter the Whole Boat Activity Charter rate\n";
        }
        else
        {
          if (!isNumeric(f.ratesActivityCharter.value, 2))
           {
            if (errMsg=="") {f.ratesActivityCharter.focus();}
            errMsg+="The Whole Boat Activity Charter rate must be numeric, maximum 2 decimal places\n";
          }
        }
      break;

      case "scheduleForm":
        var datesValid = true;
        if (!validateDate(f,"scheduleFromDate"))
        {
          if (errMsg=="") {f.scheduleFromDateDay.focus();}
          errMsg+="The From Date is not a valid date\n";
          datesValid = false;
        }

        if (!validateDate(f,"scheduleToDate"))
        {
          if (errMsg=="") {f.scheduleToDateDay.focus();}
          errMsg+="The To Date is not a valid date\n";
          datesValid = false;
        }

        if (datesValid)
        {
          if (compareDates(f, "scheduleFromDate", "scheduleToDate") != 2)
          {
            if (errMsg=="") {f.scheduleToDateDay.focus();}
            errMsg+="The To Date must be later than the From Date\n";
          }
        }

        /*
        if (empty(f.scheduleField05.value))
        {
          if (errMsg=="") {f.scheduleField05.focus();}
          errMsg+="Please enter the Schedule Field05\n";
        }

        if (empty(f.scheduleField06.value))
        {
          if (errMsg=="") {f.scheduleField06.focus();}
          errMsg+="Please enter the Schedule Field06\n";
        }
        */
      break;

      case "testimonialForm":
        if (empty(f.testimonialText.value))
        {
          if (errMsg=="") {f.testimonialText.focus();}
          errMsg+="Please enter the Testimonial Text\n";
        }

        if (!empty(f.testimonialDisplaySequence.value) && !isNumeric(f.testimonialDisplaySequence.value))
        {
          if (errMsg=="") {f.testimonialDisplaySequence.focus();}
          errMsg+="If entered the Display Sequence must be numeric\n";
        }

        if (empty(f.testimonialBy.value))
        {
          if (errMsg=="") {f.testimonialBy.focus();}
          errMsg+="Please enter Who the Testimonial is from\n";
        }

        if (!validateDate(f, "testimonialDate"))
        {
          if (errMsg=="") {f.testimonialDateDay.focus();}
          errMsg+="That is not a valid Date\n";
        }
      break;

      case "weblinkForm":
        if (empty(f.weblinkName.value))
        {
          if (errMsg=="") {f.weblinkName.focus();}
          errMsg+="Please enter the Link Name\n";
        }
        /*
        if (empty(f.weblinkDescription.value))
        {
          if (errMsg=="") {f.weblinkDescription.focus();}
          errMsg+="Please enter the Description\n";
        }
        */
        if (empty(f.weblinkWebAddress.value))
        {
          if (errMsg=="") {f.weblinkWebAddress.focus();}
          errMsg+="Please enter the Web Address\n";
        }
        else
        {
          if (!checkURL(f.weblinkWebAddress.value))
          {
            if (errMsg=="") {f.weblinkWebAddress.focus();}
            errMsg+="That Web Address is not valid\n";
          }
        }

        if (!empty(f.weblinkSequence.value) && !isNumeric(f.weblinkSequence.value))
        {
          if (errMsg=="") {f.weblinkSequence.focus();}
          errMsg+="If entered the Display Sequence must be numeric\n";
        }

      break;

      case "weblinkcategoryForm":
        if (empty(f.weblinkcategoryName.value))
        {
          if (errMsg=="") {f.weblinkcategoryName.focus();}
          errMsg+="Please enter the Link Category Name\n";
        }

        if (!empty(f.weblinkcategorySequence.value) && !isNumeric(f.weblinkcategorySequence.value))
        {
          if (errMsg=="") {f.weblinkcategorySequence.focus();}
          errMsg+="If entered the Display Sequence must be numeric\n";
        }

      break;


      default:
      return true;
    }

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

  function markAsBooked()
  {
    var f = getElement("scheduleForm");
    if (f)
    {
      for (var i=1; i <=8; i++)
      {
        eval ("f.scheduleRoom" + i + "Availability.selectedIndex =2;");
      }
    }
  }
