

function y2k(number){return (number < 1000) ? number + 1900 : number;}

function isLeapYear(yr)
{
  if (((yr % 4 == 0) && (yr % 100 != 0)) || (yr % 400 == 0)) { return true; }
  else { return false; } 
}

var today = new Date(new Date().valueOf());



function checkOutDate()
{
  theForm = document.form2;
  yearOffset = parseInt(theForm.inyear.options[0].value,10);
  var outMonth=theForm.outmonth.selectedIndex;
  var outYear=parseInt(theForm.outyear.options[theForm.outyear.selectedIndex].value,10);
  
  if(isLeapYear(outYear)) { var days = new Array(31,29,31,30,31,30,31,31,30,31,30,31); }
  else { var days = new Array(31,28,31,30,31,30,31,31,30,31,30,31); }

  var outDay=parseInt(theForm.outday.options[theForm.outday.selectedIndex].value,10);
  
  if(outDay >= days[outMonth]) { outDay = days[outMonth]; }
  else { outDay = outDay%days[outMonth]; }
  theForm.outday.options[outDay-1].selected=true;
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}   
       
          

var isNav=false;

if(parseInt(navigator.appVersion) >= 4)
{
  if(navigator.appName == "Netscape")
  {
    isNav=true;
  }
}
else
{
  isNav=true;
}
  

var today = new Date(new Date().valueOf());
var dateBoxPieceBlank = "    <td width=\"22\" height=\"18\" align=\"center\" valign=\"middle\" bgcolor=\"#FFFFFF\" class=\"calendar\">&nbsp;</td>";
//var dateBoxPiece = "    <td class=\"calendar\" width=\"22\" height=\"18\" align=\"center\" valign=\"middle\" onMouseOver=\"this.style.background = '#FFFF93';\" onMouseOut=\"this.style.background = '##BGCOLOR##';\" onClick=\"setDateBoxes('##DATESET##',##MONTH##,##DAY##,##YEAR##,ctrl)\" bgcolor=\"##BGCOLOR##\">##DAY##</td>";
var dateBoxPiece="";
var baseDateBoxHeader = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"158\">\n";
baseDateBoxHeader += "  <tr>\n";
baseDateBoxHeader += "    <td bgcolor=\"#085B9F\" colspan=\"7\" align=\"center\">\n";
baseDateBoxHeader += "      <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"158\">\n";
baseDateBoxHeader += "        <tr>\n";
//baseDateBoxHeader += "	<td width=\"33%\" class=\"calendar\"><div name=\"back\" style=\"width: 15; border: 1 solid buttonface; border: 2 outset buttonhighlight; background-color: menu;\" align=\"center\" onMouseDown=\"this.style.border = '2 inset buttonhighlight'\" onMouseUp=\"this.style.border = '2 outset buttonhighlight'\" onClick=\"previousMonth('##DATESET##')\">&lt;</div></td>\n";

baseDateBoxHeader += "strPreviousMonthColumn";

baseDateBoxHeader += "          <td width=\"33%\" bgcolor=\"#085B9F\" nowrap><font face=\"Arial\" size=\"2\" color=\"#ffffff\"><b>##MONTHNAME## ##YEAR##</b></font></td>\n";
//baseDateBoxHeader += "          <td width=\"33%\" class=\"calendar\" align=\"right\"><div name=\"next\" style=\"width: 15; border: 1 solid buttonface; border: 2 outset buttonhighlight; background-color: menu;\" align=\"center\" onMouseDown=\"this.style.border = '2 inset buttonhighlight'\" onMouseUp=\"this.style.border = '2 outset buttonhighlight'\" onClick=\"nextMonth('##DATESET##')\">&gt;</div></td>\n";
baseDateBoxHeader += "strNextMonthColumn";
baseDateBoxHeader += "        </tr>\n";
baseDateBoxHeader += "      </table>\n";
baseDateBoxHeader += "    </td>\n";
baseDateBoxHeader += "  </tr>\n";
baseDateBoxHeader += "  <tr>\n";
baseDateBoxHeader += "    <td class=\"calendar\" bgcolor=\"#DAD9D9\" align=\"center\"><font color=\"#000000\">S</font></td>\n";
baseDateBoxHeader += "    <td class=\"calendar\" bgcolor=\"#DAD9D9\" align=\"center\"><font color=\"#000000\">M</font></td>\n";
baseDateBoxHeader += "    <td class=\"calendar\" bgcolor=\"#DAD9D9\" align=\"center\"><font color=\"#000000\">T</font></td>\n";
baseDateBoxHeader += "    <td class=\"calendar\" bgcolor=\"#DAD9D9\" align=\"center\"><font color=\"#000000\">W</font></td>\n";
baseDateBoxHeader += "    <td class=\"calendar\" bgcolor=\"#DAD9D9\" align=\"center\"><font color=\"#000000\">T</font></td>\n";
baseDateBoxHeader += "    <td class=\"calendar\" bgcolor=\"#DAD9D9\" align=\"center\"><font color=\"#000000\">F</font></td>\n";
baseDateBoxHeader += "    <td class=\"calendar\" bgcolor=\"#DAD9D9\" align=\"center\"><font color=\"#000000\">S</font></td>\n";
baseDateBoxHeader += "  </tr>";

var dateBoxFooter = "  <tr>\n";
dateBoxFooter += "    <td class=\"calendar\" colspan=\"7\" align=\"center\"><div name=\"close_btn\" style=\"width: 50; height: 15; border: 1 solid buttonface; border: 2 outset buttonhighlight; background-color: menu;\" align=\"center\" onMouseDown=\"this.style.border = '2 inset buttonhighlight'\" onMouseUp=\"this.style.border = '2 outset buttonhighlight'\" onClick=\"hideCalendar()\">Close</div></td>\n";
dateBoxFooter += "  </tr><tr><td colspan=7>&nbsp;</td></tr>\n</table>\n";

var calBuffer="";

var caldays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");

function isLeapYear(yr)
{
  if (((yr % 4 == 0) && (yr % 100 != 0)) || (yr % 400 == 0)) { return true; }
  else { return false; } 
}


function GetDOW2(d,m,y)
{
  var dt=new Date(y,m-1,d);
  return(dt.getDay())%7;
}

var selectBoxFlag=false;
var maxYear=0;
var minYear=0;
function displayCalendar(DateCtrl,hideSelects,inDateSet)
{

  selectBoxFlag=hideSelects;  
    theForm = document.form2;
    var inYear = today.getYear();
  
    theForm = document.form2;
    var Thisday=new Date();
    currentMonth = Thisday.getMonth();
    currentYear = Thisday.getYear();
    currentDay = Thisday.getDay();
    currentDate = Thisday.getDate();
    mon=currentMonth;
    day=currentDay;
    year=currentYear;
	currentMonth=currentMonth+1;
	maxYear = '2010';
    minYear = '2001';
   
    
    drawCalendarBody(inDateSet,mon+1,currentDate,year,DateCtrl);
  
    document.all.CAL.style.left = (event.x - event.offsetX);
    document.all.CAL.style.top = (event.y - event.offsetY);
    
    document.all.CAL.style.visibility = "visible";

    if(hideSelects)
    {
      if(document.all.form2.numrooms) { document.all.form2.numrooms.style.visibility = "hidden"; }
      if(document.all.form2.numadults) { document.all.form2.numadults.style.visibility = "hidden"; }
      if(document.all.form2.bedpref) { document.all.form2.bedpref.style.visibility = "hidden"; }
      if(document.all.form2.smokingpref) { document.all.form2.smokingpref.style.visibility = "hidden"; }
      if(document.all.form2.chainpref) {document.all.form2.chainpref.style.visibility = "hidden"; }
    }  
}

function hideCalendar(hideSelects)
{	
  document.all.CAL.style.visibility = "hidden";

  if(hideSelects || selectBoxFlag)
  {
    if(document.all.form2.numrooms) { document.all.form2.numrooms.style.visibility = "visible"; }
    if(document.all.form2.numadults) { document.all.form2.numadults.style.visibility = "visible"; }
    if(document.all.form2.bedpref) { document.all.form2.bedpref.style.visibility = "visible"; }
    if(document.all.form2.smokingpref) { document.all.form2.smokingpref.style.visibility = "visible"; }
    if(document.all.form2.chainpref) {document.all.mainForm.chainpref.style.visibility = "visible"; }
  }
}

function nextMonth(inDateSet,c)
{ 
   currentMonth += 1;
  if(currentMonth > 12 && currentYear + 1 <= maxYear)
  {
    currentMonth = 1;
    currentYear++;
  }
  if(currentMonth > 12)
  {
    currentMonth = 12;
  }
  
  if(currentMonth == (today.getMonth()+1) && currentYear == today.getYear())
  { 
    drawCalendarBody(inDateSet,currentMonth,currentDate,currentYear,c);
  }
  else
  {
    drawCalendarBody(inDateSet,currentMonth,0,currentYear,c);
  }
}

function previousMonth(inDateSet,c)
{
  //if((currentMonth - 1) < (today.getMonth()+1) && currentYear <= today.getYear())
  //{
    
 // }
 // else
 // {
    currentMonth -= 1;
    if(currentMonth < 1 && currentYear - 1 >= minYear)
    {
      currentMonth = 12;
      currentYear -= 1;
    }
    if(currentMonth == (today.getMonth()+1) && currentYear == today.getYear())
    {
      drawCalendarBody(inDateSet,currentMonth,currentDate,currentYear,c);
    }
    else
    {
      drawCalendarBody(inDateSet,currentMonth,0,currentYear,c);
    }
  //}
}


function drawCalendarBody(inDateSet,mon,day,year,DateCtrl)
{	

  calObj = document.all.CAL_BODY;
  theForm = document.form2;
  
  var dowStartPos = GetDOW2(1,mon,year);
  var finalDay = caldays[(mon-1)];
  if(isLeapYear(year) && mon == 1) { finalDay += 1; }
  
  re_MonthName = /##MONTHNAME##/g;
  re_Year = /##YEAR##/g;
  re_DateSet = /##DATESET##/g;
  
  strNewPrevCol="<td width=\"33%\" class=\"calendar\"><div name=\"back\" style=\"width: 15; border: 1 solid buttonface; border: 2 outset buttonhighlight; background-color: menu;\" align=\"center\" onMouseDown=\"this.style.border = '2 inset buttonhighlight'\" onMouseUp=\"this.style.border = '2 outset buttonhighlight'\" onClick=\"previousMonth('##DATESET##','ctrl')\">&lt;</div></td>\n"
  strNewNextCol="<td width=\"33%\" class=\"calendar\" align=\"right\"><div name=\"next\" style=\"width: 15; border: 1 solid buttonface; border: 2 outset buttonhighlight; background-color: menu;\" align=\"center\" onMouseDown=\"this.style.border = '2 inset buttonhighlight'\" onMouseUp=\"this.style.border = '2 outset buttonhighlight'\" onClick=\"nextMonth('##DATESET##','ctrl')\">&gt;</div></td>\n"
  
  strNewPrevCol=replaceSubstring(strNewPrevCol,'ctrl',DateCtrl);
  strNewNextCol=replaceSubstring(strNewNextCol,'ctrl',DateCtrl);
  
 
  baseDateBoxHeader=replaceSubstring(baseDateBoxHeader,'strPreviousMonthColumn',strNewPrevCol);
  baseDateBoxHeader=replaceSubstring(baseDateBoxHeader,'strNextMonthColumn',strNewNextCol);
   
 
  dateBoxHeader = baseDateBoxHeader;
  dateBoxHeader = dateBoxHeader.replace(re_MonthName,months[(mon-1)]);
  dateBoxHeader = dateBoxHeader.replace(re_Year,""+year);
  dateBoxHeader = dateBoxHeader.replace(re_DateSet,""+inDateSet);

  calBuffer = generateGrid(inDateSet,dowStartPos,finalDay, mon,day,year,DateCtrl);
  document.all.CAL_BODY.innerHTML = dateBoxHeader + calBuffer + dateBoxFooter;
}

function generateGrid(inDateSet,startPos,endPos, m,d,y,DateCtrl)
{	
  var currentDay=1;
  var gridCount=0;
  var doBlanks=true;
  var tmpBuffer="";
  re_Month = /##MONTH##/g;
  re_Day = /##DAY##/g;
  re_Year = /##YEAR##/g;
  re_BGColor = /##BGCOLOR##/g;
  re_DateSet = /##DATESET##/g;
  
  for(var i=0;i<6;i++)
  {
    tmpBuffer += "<tr>\n";
    for(var j=0;j<7;j++)
    {
      if(gridCount < startPos || currentDay > endPos)
      {
        tmpBuffer += dateBoxPieceBlank + "\n";
      }
      else
      
      {	
		var strdateBoxPiece = new String();
		strdateBoxPiece = "    <td class=\"calendar\" width=\"22\" height=\"18\" align=\"center\" valign=\"middle\" onMouseOver=\"this.style.background = '#FFFF93';\" onMouseOut=\"this.style.background = '##BGCOLOR##';\" onClick=\"setDateBoxes('##DATESET##',##MONTH##,##DAY##,##YEAR##,ctrl)\" bgcolor=\"##BGCOLOR##\">##DAY##</td>";
		strdateBoxPiece=replaceSubstring(strdateBoxPiece,'ctrl',DateCtrl);

        pasrsedDBP = strdateBoxPiece;
        pasrsedDBP = pasrsedDBP.replace(re_Month,""+m);
        pasrsedDBP = pasrsedDBP.replace(re_Day,""+currentDay);
        pasrsedDBP = pasrsedDBP.replace(re_Year,""+y);
        pasrsedDBP = pasrsedDBP.replace(re_DateSet,""+inDateSet);

        if(currentDay == d) { pasrsedDBP = pasrsedDBP.replace(re_BGColor,"#BFC1FF"); }
        else { pasrsedDBP = pasrsedDBP.replace(re_BGColor,"#FFFFFF"); }
        
        tmpBuffer += pasrsedDBP + "\n";
        currentDay++;
      }
      gridCount++;
    }
    tmpBuffer += "</tr>\n";
  }

  return tmpBuffer;
}

function setDateBoxes(whichDateSet,m,d,y,c)
{

document.form2.elements[c].value=m +'/'+d+'/'+ y;
 
hideCalendar();
}

function replaceSubstring(inputString, fromString, toString) {
   // Goes through the inputString and replaces every occurrence of fromString with toString
   var temp = inputString;
   if (fromString == "") {
      return inputString;
   }
   if (toString.indexOf(fromString) == -1) { // If the string being replaced is not a part of the replacement string (normal situation)
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   } else { // String being replaced is part of replacement string (like "+" being replaced with "++") - prevent an infinite loop
      var midStrings = new Array("~", "`", "_", "^", "#");
      var midStringLen = 1;
      var midString = "";
      // Find a string that doesn't exist in the inputString to be used
      // as an "inbetween" string
      while (midString == "") {
         for (var i=0; i < midStrings.length; i++) {
            var tempMidString = "";
            for (var j=0; j < midStringLen; j++) { tempMidString += midStrings[i]; }
            if (fromString.indexOf(tempMidString) == -1) {
               midString = tempMidString;
               i = midStrings.length + 1;
            }
         }
      } // Keep on going until we build an "inbetween" string that doesn't exist
      // Now go through and do two replaces - first, replace the "fromString" with the "inbetween" string
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + midString + toTheRight;
      }
      // Next, replace the "inbetween" string with the "toString"
      while (temp.indexOf(midString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(midString));
         var toTheRight = temp.substring(temp.indexOf(midString)+midString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   } // Ends the check to see if the string being replaced is part of the replacement string or not
   return temp; // Send the updated string back to the user
} // Ends the "replaceSubstring" function

