// $Header: /vc/cvsroot/nb3lf/web/htdocs/style/sharedcode/searchcodefunctions.js,v 1.1 2003/09/19 21:05:27 rgalbrai Exp $
      //************************************************************************
      // Global variables
      //************************************************************************

      var submitting = false;

      //************************************************************************
      // Function:  initForm
      // Purpose:   Initialize Arrival Date and Departure Date controls.
      // Input:     arr* - Arrival date
      //            dep* - Departure date
      //            language - language used by the WEB page.
      //            locale - locale used by the WEB page.
      // Output:    None
      //************************************************************************

      function initForm (formStr, arrYear, arrMonth, arrDay, depYear, depMonth, depDay, language, locale)
      {

        // Initialize date to todays date + 1.
        var myDate = new Date ();
        var month = myDate.getMonth () + 1;
        var year = getFullYear (myDate);
        var day = myDate.getDate () + 1;
        if (day > getDaysInMonth (month, year))
        {
         day = 1;
         month = month + 1;
         if (month > 12)
         {
            year = year + 1;
            month = 1;
         }
        }


        if (arrYear != "" && arrMonth != "" && arrDay != "")
        {
          // If Arrival date was posted in then initialize.
          year = parseInt (arrYear, 10);
          month = parseInt (arrMonth, 10);
          day = parseInt (arrDay, 10);

          myDate = new Date (arrYear, arrMonth, arrDay);
        }

        // Initialize arrival date.
        // Initalize form year.
        var index;
        for (index = 0; (index < document.getElementById('checkInYear').length) &&
                        (document.getElementById('checkInYear').options[index].value != year);
             index++);
        document.getElementById('checkInYear').options[index].selected = true;

        // Initalize form month.
        for (index = 0; (index < document.getElementById('checkInMonth').length) &&
                        (document.getElementById('checkInMonth').options[index].value != month);
             index++);
        document.getElementById('checkInMonth').options[index].selected = true;

        // Initalize form day.
        for (index = 0; (index < document.getElementById('checkInDay').length) &&
                        (document.getElementById('checkInDay').options[index].value != day);
             index++);
        document.getElementById('checkInDay').options[index].selected = true;

        // Initalize Day of the week.
        document.getElementById('DATERANGESTART_DOW').value = getDayOfWeek (buildCRSDate (year, month, day));

        if (depYear != "" && depMonth != "" && depDay != "")
        {
          // If departure date was posted in then initialize.
          year = parseInt (depYear, 10);
          month = parseInt (depMonth, 10);
          day = parseInt (depDay, 10);
        }
        else
        {
          // Add 1 to the current date to get the initial departure date.
          day = day + 1;
          if (day > getDaysInMonth (month, year))
          {
            day = 1;
            month = month + 1;
            if (month > 12)
            {
              year = year + 1;
              month = 1;
            }
          }
        }

        // Initalize form year.
        for (index = 0; (index < document.getElementById('DATERANGEEND_YEAR').length) &&
                        (document.getElementById('DATERANGEEND_YEAR').options[index].value != year);
             index++);
        document.getElementById('DATERANGEEND_YEAR').options[index].selected = true;

        // Initalize form month.
        for (index = 0; (index < document.getElementById('DATERANGEEND_MONTH').length) &&
                        (document.getElementById('DATERANGEEND_MONTH').options[index].value != month);
             index++);
        document.getElementById('DATERANGEEND_MONTH').options[index].selected = true;

        // Initalize form day.
        for (index = 0; (index < document.getElementById('DATERANGEEND_DAY').length) &&
                        (document.getElementById('DATERANGEEND_DAY').options[index].value != day);
             index++);
        document.getElementById('DATERANGEEND_DAY').options[index].selected = true;

        // Initalize Day of the week.
        document.getElementById('DATERANGEEND_DOW').value = getDayOfWeek (buildCRSDate (year, month, day));

        // other dropdowns are inited in XSL.
      }

      //************************************************************************
      // Function:  validateDay
      // Purpose:   Ensure that a selected day is valid. Example 2/31 is an
      //            invalid day. If an invalid date is selected, select the
      //            previous valid day.
      // Input:     yearCtrl - Year dropdown.
      //            monthCtrl - Month dropdown.
      //            dayCtrl - Day dropdown.
      // Output:    None
      //************************************************************************

      function validateDay (formStr, yearCtrl, monthCtrl, dayCtrl)
      {
        eval ("var year = parseInt (document.getElementById('" + yearCtrl + "').options[document.getElementById('" + yearCtrl + "').selectedIndex].value, 10)");
        eval ("var month = parseInt (document.getElementById('" + monthCtrl + "').options[document.getElementById('" + monthCtrl + "').selectedIndex].value, 10)");
        eval ("var day = parseInt (document.getElementById('" + dayCtrl + "').options[document.getElementById('" + dayCtrl + "').selectedIndex].value, 10)");

        if (day > (maxDay = getDaysInMonth (month, year)))
        {
          for (index = 0; (index < eval ("document.getElementById('" + dayCtrl + "').length")) &&
                          (eval ("document.getElementById('" + dayCtrl + "').options[" + index+ "].value != " + maxDay));
               index++);
          eval ("document.getElementById('" + dayCtrl + "').options[" + index + "].selected = true");
        }

      }

      //************************************************************************
      // Function:  updateDOW
      // Purpose:   Set the Day of the Week to the valid string (Monday, Tuesday, etc.)
      // Input:     yearCtrl - Year dropdown.
      //            monthCtrl - Month dropdown.
      //            dayCtrl - Day dropdown.
      //            dowCtrl - Day of the Week Control - Control to set.
      //            language - language used by the WEB page.
      //            locale - locale used by the WEB page.
      // Output:    None
      //************************************************************************

      function updateDOW (formStr, yearCtrl, monthCtrl, dayCtrl, dowCtrl, language, locale)
      {
        eval ("var year = parseInt (document.getElementById('" + yearCtrl + "').options[document.getElementById('" + yearCtrl + "').selectedIndex].value, 10)");
        eval ("var month = parseInt (document.getElementById('" + monthCtrl + "').options[document.getElementById('" + monthCtrl + "').selectedIndex].value, 10)");
        eval ("var day = parseInt (document.getElementById('" + dayCtrl + "').options[document.getElementById('" + dayCtrl + "').selectedIndex].value, 10)");

        eval ("document.getElementById('" + dowCtrl + "').value = getDayOfWeek (buildCRSDate (year, month, day))");
      }

      //************************************************************************
      // Function:  updateDATERANGEEND
      // Purpose:   Update the Departure Date to the Arrival Date + 1.
      // Input:     language - language used by the WEB page.
      //            locale - locale used by the WEB page.
      // Output:    None
      //************************************************************************

      function updateDATERANGEEND (formStr, language, locale)
      {

        // Get the current arrival date.
        var startYear = parseInt (document.getElementById('checkInYear').options[document.getElementById('checkInYear').selectedIndex].value, 10);
        var startMonth = parseInt (document.getElementById('checkInMonth').options[document.getElementById('checkInMonth').selectedIndex].value, 10);
        var startDay = parseInt (document.getElementById('checkInDay').options[document.getElementById('checkInDay').selectedIndex].value, 10);

        var startDate = new Date (startYear, startMonth - 1, startDay);

        // Get the current departure date.
        var endYear = parseInt (document.getElementById('DATERANGEEND_YEAR').options[document.getElementById('DATERANGEEND_YEAR').selectedIndex].value, 10);
        var endMonth = parseInt (document.getElementById('DATERANGEEND_MONTH').options[document.getElementById('DATERANGEEND_MONTH').selectedIndex].value, 10);
        var endDay = parseInt (document.getElementById('DATERANGEEND_DAY').options[document.getElementById('DATERANGEEND_DAY').selectedIndex].value, 10);

        var endDate = new Date (endYear, endMonth - 1, endDay);

        // If the arrival date is greater than the departure date then update the departure date.
        if (startDate.getTime () >= endDate.getTime ())
        {
          endDay = startDay + 1;
          endMonth = startMonth;
          endYear = startYear;

          if (endDay > getDaysInMonth (startMonth, startYear))
          {
            // Move to the first day of the next month.
            endDay = 1;
            endMonth = endMonth + 1

            // If endMonth is > 12, cycle into the next year.
            if (endMonth > 12)
            {
              endMonth = 1;
              endYear = startYear + 1;
            }
          }

          // Update departure year.
          for (index = 0; (index < document.getElementById('DATERANGEEND_YEAR').length) &&
                          (document.getElementById('DATERANGEEND_YEAR').options[index].value != endYear);
               index++);
          document.getElementById('DATERANGEEND_YEAR').options[index].selected = true;

          // Update departure month.
          for (index = 0; (index < document.getElementById('DATERANGEEND_MONTH').length) &&
                          (document.getElementById('DATERANGEEND_MONTH').options[index].value != endMonth);
               index++);
          document.getElementById('DATERANGEEND_MONTH').options[index].selected = true;

          // Update departure day.
          for (index = 0; (index < document.getElementById('DATERANGEEND_DAY').length) &&
                          (document.getElementById('DATERANGEEND_DAY').options[index].value != endDay);
               index++);
          document.getElementById('DATERANGEEND_DAY').options[index].selected = true;

          updateDOW (formStr, 'DATERANGEEND_YEAR', 'DATERANGEEND_MONTH', 'DATERANGEEND_DAY', 'DATERANGEEND_DOW', language, locale);
        }
      }

      //************************************************************************
      // Function:  checkForm
      // Purpose:   Check if the departure date is prior to the arrival date before submitting.
      // Input:     language - language used by the WEB page.
      //            locale - locale used by the WEB page.
      // Output:    None
      //************************************************************************

      function checkForm(formStr)
      {

        exit=false;

        // Get the current arrival date.
        var startYear = parseInt (document.getElementById('checkInYear').options[document.getElementById('checkInYear').selectedIndex].value, 10);
        var startMonth = parseInt (document.getElementById('checkInMonth').options[document.getElementById('checkInMonth').selectedIndex].value, 10);
        var startDay = parseInt (document.getElementById('checkInDay').options[document.getElementById('checkInDay').selectedIndex].value, 10);

        var startDate = new Date (startYear, startMonth - 1, startDay);

        // Get the current departure date.
        var endYear = parseInt (document.getElementById('DATERANGEEND_YEAR').options[document.getElementById('DATERANGEEND_YEAR').selectedIndex].value, 10);
        var endMonth = parseInt (document.getElementById('DATERANGEEND_MONTH').options[document.getElementById('DATERANGEEND_MONTH').selectedIndex].value, 10);
        var endDay = parseInt (document.getElementById('DATERANGEEND_DAY').options[document.getElementById('DATERANGEEND_DAY').selectedIndex].value, 10);

        var endDate = new Date (endYear, endMonth - 1, endDay);

        // If the arrival date is greater than the departure date then update the departure date.
        if (startDate.getTime () >= endDate.getTime ())
        {
            alert("Arrival date must be prior to the departure date!");
        }
        else
        {
            eval("document.getElementById('" + formStr +"').submit();");
        }
      }

      var exit=true;

      function leave(sURL) {
        ihit = 420;
        iwid = 500;
        ttl = (screen.availHeight/2)-(ihit/2);
        lll = (screen.availWidth/2)-(iwid/2);
        if (exit) {
          open(sURL,'Spoiler','toolbar=1,scrollbars=1,resizable=1,width=' + iwid + ',height=' + ihit + ',top=' + ttl + ',left=' + lll);
        }
      }

