var root = "";



//  Google stuff.

window.onload = function()
{
   if(location.href.indexOf("/admin/") == -1)
   {
      _uacct = "UA-541366-1";
      urchinTracker();
   }
};




var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];

var calendarArray = new Array();



function DrawCalendarPopUp(textBox)
{
   idx = calendarArray.length;

   if(textBox.value.length > 0)
   {
      day = parseInt(textBox.value.substr(0, 2), 10);
      month = parseInt(textBox.value.substr(3, 2), 10) - 1;
      year = parseInt(textBox.value.substr(6, 4), 10);

      baseDate = new Date(year, month, day);
   }
   else
      baseDate = new Date();

   calendarArray[idx] =
   {
      monthIndex: (baseDate.getFullYear() * 12) + baseDate.getMonth(),
      textBox: textBox
   };

   document.write("<a class='calendarPopUpToggle' onclick='javascript:ToggleCalendar("+idx+");'><img src='"+root+"/images/calendar.gif' width='16' height='15' align='middle' title='Click for calendar' alt='Click for calendar' /></a>");

   document.write("<span id='calendarPopUp"+idx+"' class='calendarPopUp' style='display: none;'></span>");

   GoMonth(0, idx);
}



function GoMonth(monthOffset, idx)
{
   calendarArray[idx].monthIndex += monthOffset;

   now = new Date(Math.floor(calendarArray[idx].monthIndex / 12), (calendarArray[idx].monthIndex % 12));

   //  Get the number of days in the month.
   daysInMonth = GetDaysInMonth(now);

   //  Get the index of the first day of the month.  e.g. Sunday = 0, Monday = 1
   dayIndex = now.getDay();


   output = "";

   output += "<table border='0' cellpadding='0' cellspacing='0'>";
   output += "<tr>";
   output += "<th><a href='javascript:GoMonth(-12,\""+idx+"\");'>&lt;&lt;</a></th>";
   output += "<th><a href='javascript:GoMonth(-1,\""+idx+"\");'>&lt;</a></th>";
   output += "<th colspan='3'>"+months[now.getMonth()]+" "+now.getFullYear()+"</th>";
   output += "<th><a href='javascript:GoMonth(1,\""+idx+"\");'>&gt;</a></th>";
   output += "<th><a href='javascript:GoMonth(12,\""+idx+"\");'>&gt;&gt;</a></th>";
   output += "</tr>";
   output += "<tr><th>S</th><th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th></tr>";

   for(a=0; a<6; a++)
   {
      output += "<tr>";

      for(b=0; b<7; b++)
      {
         currDate = (((a * 7) + b) - dayIndex) + 1;

         if(currDate > 0 && currDate <= daysInMonth)
            output += "<td><a href='javascript:SelectDate("+idx+","+currDate+");'>"+currDate+"</a></td>";
         else
            output += "<td>&nbsp;</td>";
      }

      output += "</tr>";
   }

   output += "</table>";


   if(document.all)
      document.all["calendarPopUp"+idx].innerHTML = output;
   else
      document.getElementById("calendarPopUp"+idx).innerHTML = output;
}



function ToggleCalendar(idx)
{
   tag = document.all ? document.all["calendarPopUp"+idx].style : document.getElementById("calendarPopUp"+idx).style;

   tag.display = tag.display == "none" ? tag.display = "" : "none";
}



function GetDaysInMonth(date)
{
   temp = new Date(date.valueOf());

   temp.setMonth(temp.getMonth()+1);
   temp.setDate(0);

   return temp.getDate();
}



function SelectDate(idx, day)
{
   date = new Date(Math.floor(calendarArray[idx].monthIndex / 12), (calendarArray[idx].monthIndex % 12), day);

   calendarArray[idx].textBox.value = PadLeft(date.getDate(), 2) + "/" + PadLeft(date.getMonth()+1, 2) + "/" + date.getFullYear();

   ToggleCalendar(idx);
}



function PadLeft(num, length)
{
   while(num.toString().length < length)
      num = "0" + num;

   return num;
}



function CheckAvailability(optionControl, textBoxControl)
{
   apartmentId = optionControl.value;
   year = textBoxControl.value.length == 10 ? parseInt(textBoxControl.value.substring(6)) : new Date().getUTCFullYear();

   window.open(root+"/availability.php?apartmentId="+apartmentId+"&year="+year, "availability", "width=780,height=550,scrollbars,resizable,status");
}


function UpdatePartyMemberList()
{
    apartmentsList = document.forms[0].elements["apartmentId"];
    partyList = document.forms[0].elements["customerIsPartyMember"];

    apartmentId = apartmentsList.options[apartmentsList.selectedIndex].value;

    customerIsPartyMember = partyList.options[partyList.selectedIndex].value == "Yes";

    maximumOccupancy = maxMaximumOccupancy;

    for(a=0; a<apartments.length; a++)
        if(apartments[a].id == apartmentId)
            maximumOccupancy = apartments[a].maximumOccupancy;

    if(customerIsPartyMember)
        maximumOccupancy -= 1;

    for(a=0; a<maxMaximumOccupancy; a++)
    {
        partyMemberRow = document.all ? document.all["partyMember"+a].style : document.getElementById("partyMember"+a).style;
        partyMemberIndex = document.all ? document.all["partyMember"+a+"Index"] : document.getElementById("partyMember"+a+"Index");

        partyMemberRow.display = a<maximumOccupancy ? "" : "none";
        partyMemberIndex.innerHTML = customerIsPartyMember ? a+2 : a+1;
    }
}


function DoPrint(form)
{
   if(!form.elements[0].checked && !form.elements[1].checked)
      alert("You must selected one of the payment methods above.");
   else
      window.print();
}


function DrawColour(form, targetId)
{
   red = PadLeft(form.elements["red"].selectedIndex.toString(16), 2);
   green = PadLeft(form.elements["green"].selectedIndex.toString(16), 2);
   blue = PadLeft(form.elements["blue"].selectedIndex.toString(16), 2);

   document.all[targetId].style.backgroundColor = "#" + red + green + blue;
}


function PadLeft(num, chars)
{
   while(num.toString().length < chars)
      num = "0" + num;

   return num;
}