//
// Search Form
//

// DEPRECATED
function changeRooms(refreshURL, refreshXFA)
{
   var form = document.searchForm;
   form.fuseaction.value = refreshXFA;
   form.action = refreshURL;

   form.submit();
}


//
// PopUp Windows
//

function popUp(var_link)
{
   window.open(var_link + '&suppressLayout=true',
               'pop',
               'toolbar=no,width=775,height=400,directories=no,status=no,scrollbars=yes,resizable=yes,menubar=no');
}

function printable(var_link)
{
   window.open(var_link,
               'pop',
               'toolbar=yes,width=775,height=400,directories=no,status=no,scrollbars=yes,resizable=yes,menubar=yes');
}


//
// HotelsCorp Calendar Functionality (DEPRECATED)
//

// DEPRECATED
function setDate(dayField, monthField, yearField, day, month, year)
{
   dayObject = eval(dayField);
   monthObject = eval(monthField);
   yearObject = eval(yearField);

   // Set the index of the day and month
   dayObject.selectedIndex = (day - 1);
   monthObject.selectedIndex = (month - 1);

   // Find the selected index of the year
   var optionArray = yearObject.options;
   for (i = 0; i < optionArray.length; i++)
   {
      if (optionArray[i].value == year)
      {
         yearObject.selectedIndex = i;
         break
      }
   }
}

// DEPRECATED
function show_calendar(dayField, monthField, yearField, dayValue, monthValue, yearValue) {
   var arr_months = ["January", "February", "March", "April", "May", "June",
      "July", "August", "September", "October", "November", "December"];
   var week_days = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
   var n_weekstart = 1; // day week starts from (normally 0 or 1)

   // Set values here to day/mont/year above, not from opener form
   //var year = eval(yearField + "[" + yearField + ".selectedIndex].value");
   //var month = eval(monthField + "[" + monthField + ".selectedIndex].value");
   //var day = eval(dayField + "[" + dayField + ".selectedIndex].value");
   //var dt_datetime = new Date(year, (month - 1), day);
   var dt_datetime = new Date(yearValue, (monthValue - 1), dayValue);

   var dt_prev_month = new Date(dt_datetime);
   dt_prev_month.setMonth(dt_datetime.getMonth()-1);
   var dt_next_month = new Date(dt_datetime);
   dt_next_month.setMonth(dt_datetime.getMonth()+1);
   var dt_firstday = new Date(dt_datetime);
   dt_firstday.setDate(1);
   dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7);
   var dt_lastday = new Date(dt_next_month);
   dt_lastday.setDate(0);

   // html generation (feel free to tune it for your particular application)
   // print calendar header
   var str_buffer = new String (
      "<html>\n"+
      "<head>\n"+
      "  <title>Calendar</title>\n"+
      "</head>\n"+
      "<body bgcolor=\"White\">\n"+
      "<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+
      "<tr><td bgcolor=\"#4682B4\">\n"+
      "<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" width=\"100%\">\n"+
      "<tr>\n  <td bgcolor=\"#4682B4\">" + makePreviousNextLink(dayField, monthField, yearField, dt_prev_month) +
      "<img src=\"images/but_cal_prev.gif\" width=\"16\" height=\"16\" border=\"0\""+
      " alt=\"previous month\"></a></td>\n"+
      "  <td bgcolor=\"#4682B4\" colspan=\"5\">"+
      "<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"
      +arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</font></td>\n"+
      "  <td bgcolor=\"#4682B4\" align=\"right\">" + makePreviousNextLink(dayField, monthField, yearField, dt_next_month) +
      "<img src=\"images/but_cal_next.gif\" width=\"16\" height=\"16\" border=\"0\""+
      " alt=\"next month\"></a></td>\n</tr>\n"
   );

   var dt_current_day = new Date(dt_firstday);
   // print weekdays titles
   str_buffer += "<tr>\n";
   for (var n=0; n<7; n++)
      str_buffer += "   <td bgcolor=\"#87CEFA\">"+
      "<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"+
      week_days[(n_weekstart+n)%7]+"</font></td>\n";
   // print calendar table
   str_buffer += "</tr>\n";
   while (dt_current_day.getMonth() == dt_datetime.getMonth() ||
      dt_current_day.getMonth() == dt_firstday.getMonth()) {
      // print row heder
      str_buffer += "<tr>\n";
      for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {
            if (dt_current_day.getDate() == dt_datetime.getDate() &&
               dt_current_day.getMonth() == dt_datetime.getMonth())
               // print current date
               str_buffer += "   <td bgcolor=\"#FFB6C1\" align=\"right\">";
            else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
               // weekend days
               str_buffer += "   <td bgcolor=\"#DBEAF5\" align=\"right\">";
            else
               // print working days of current month
               str_buffer += "   <td bgcolor=\"white\" align=\"right\">";

            if (dt_current_day.getMonth() == dt_datetime.getMonth())
               // print days of current month
               str_buffer += makeReturnLink(dayField, monthField, yearField, dt_current_day) + "<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";
            else
               // print days of other months
               str_buffer += makeReturnLink(dayField, monthField, yearField, dt_current_day) +
               "<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";
            str_buffer += dt_current_day.getDate()+"</font></a></td>\n";
            dt_current_day.setDate(dt_current_day.getDate()+1);
      }
      // print row footer
      str_buffer += "</tr>\n";
   }
   // print calendar footer
   str_buffer += "\n</table></td></tr></table>\n" + "

</body>\n" + "</html>\n";

   var vWinCal = window.open("", "Calendar",
      "width=200,height=250,status=no,resizable=yes,top=200,left=200");
   vWinCal.opener = self;
   var calc_doc = vWinCal.document;
   calc_doc.write (str_buffer);
   calc_doc.close();
}

// DEPRECATED
function makeReturnLink(dayField, monthField, yearField, dt_current_day)
{
   dayValue = dt_current_day.getDate();
   monthValue = (dt_current_day.getMonth() + 1);
   yearValue = dt_current_day.getFullYear();

   // javascript: setDate('document.searchForm.dayField', 'document.searchForm.monthField', 'document.searchForm.yearField', '11', '12', '2004');
   return "<a href=\"javascript: window.opener.setDate('" + dayField + "', '" + monthField + "', '" + yearField + "', '" + dayValue + "', '" + monthValue + "', '" + yearValue + "'); window.close();\">";
}

// DEPRECATED
function makePreviousNextLink(dayField, monthField, yearField, month)
{
   return "<a href=\"javascript:window.opener.show_calendar('" + dayField + "', '" + monthField + "', '" + yearField + "', '" + month.getDate() + "', '" + (month.getMonth() + 1) + "', '" + month.getFullYear() + "');\">";
}

// DEPRECATED
// datetime parsing and formatting routimes. modify them if you wish other datetime format
function str2dt (str_datetime)
{
   var re_date = /^(\d+)\-(\d+)\-(\d+)\s+(\d+)\:(\d+)\:(\d+)$/;
   if (!re_date.exec(str_datetime))
      return alert("Invalid Datetime format: "+ str_datetime);
   return (new Date (RegExp.$3, RegExp.$2-1, RegExp.$1, RegExp.$4, RegExp.$5, RegExp.$6));
}

// DEPRECATED
function dt2dtstr (dt_datetime)
{
   return (new String (dt_datetime.getDate()+"-"+(dt_datetime.getMonth()+1)+"-"+dt_datetime.getFullYear()+" "));
}

// DEPRECATED
function dt2tmstr (dt_datetime)
{
   return (new String (
         dt_datetime.getHours()+":"+dt_datetime.getMinutes()+":"+dt_datetime.getSeconds()));
}


//
// Macromedia Image Rollover Functionality
//

function MM_swapImgRestore() { //v3.0
   var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
   var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
   var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
   d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
   if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
   for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
   if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
   var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


//
// Preload Rollover Images
//

var preloadedImages = [
   'images/MainMenu-Hotels-on.gif',
   'images/MainMenu-Tickets-on.gif',
   'images/MainMenu-Vacations-on.gif'
];
   
function preloadImages () {
   $A(preloadedImages).each(function (image) {
      MM_preloadImages(image);
   });
}

Event.observe(window, "load", preloadImages);
