// $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('DATERANGESTART_YEAR').length) && (document.getElementById('DATERANGESTART_YEAR').options[index].value != year); index++); document.getElementById('DATERANGESTART_YEAR').options[index].selected = true; // Initalize form month. for (index = 0; (index < document.getElementById('DATERANGESTART_MONTH').length) && (document.getElementById('DATERANGESTART_MONTH').options[index].value != month); index++); document.getElementById('DATERANGESTART_MONTH').options[index].selected = true; // Initalize form day. for (index = 0; (index < document.getElementById('DATERANGESTART_DAY').length) && (document.getElementById('DATERANGESTART_DAY').options[index].value != day); index++); document.getElementById('DATERANGESTART_DAY').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('DATERANGESTART_YEAR').options[document.getElementById('DATERANGESTART_YEAR').selectedIndex].value, 10); var startMonth = parseInt (document.getElementById('DATERANGESTART_MONTH').options[document.getElementById('DATERANGESTART_MONTH').selectedIndex].value, 10); var startDay = parseInt (document.getElementById('DATERANGESTART_DAY').options[document.getElementById('DATERANGESTART_DAY').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('DATERANGESTART_YEAR').options[document.getElementById('DATERANGESTART_YEAR').selectedIndex].value, 10); var startMonth = parseInt (document.getElementById('DATERANGESTART_MONTH').options[document.getElementById('DATERANGESTART_MONTH').selectedIndex].value, 10); var startDay = parseInt (document.getElementById('DATERANGESTART_DAY').options[document.getElementById('DATERANGESTART_DAY').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); } }