var Events = new Array(
new Array("20111126", "IPSC Macau Level III", "http://www.ipscmacau.org/level3_2011"),
new Array("20111127", "IPSC Macau Level III", "http://www.ipscmacau.org/level3_2011")
);


function calendar() {
   var today = new Date();
   var todayDate;
   var monthDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
   var monthNames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
   var SelectedMonth;
   var DispDate;
   var DispMonth;
   var DispYear;
   var StartDay;
   var MonthChoice;

   if (checkCookieExist("SelectedMonth")) {
      SelectedMonth = getCookie("SelectedMonth");
   }
   else {
      SelectedMonth = "Curr";
   }

   todayDate = today.getDate();
   DispMonth = today.getMonth();
   DispYear  = today.getYear() + ((navigator.appName == "Microsoft Internet Explorer") ? 0 : 1900);
   if (SelectedMonth == "Next") {
      DispMonth++;
      if (DispMonth == 12) {
         DispMonth = 0;
         DispYear++;
      }
   }

   if (((DispYear % 4 == 0) && (DispYear % 100 != 0)) || (DispYear % 400 == 0))
      monthDays[1] = 29;
   nDays = monthDays[DispMonth];
   DispDate = today;
/*   DispDate.setDate(1);
   DispDate.setMonth(DispMonth); */
   DispDate.setFullYear(DispYear,DispMonth,1);
   StartDay = DispDate.getDay();

   document.write('<br><caption>');
   document.write(monthNames[DispMonth], ' ', DispYear);
   document.write('</caption>');
   document.write('<thead>');
   document.write('<tr>');
   document.write('<th abbr="Sunday" scope="col" title="Sunday">S</th>');
   document.write('<th abbr="Monday" scope="col" title="Monday">M</th>');
   document.write('<th abbr="Tuesday" scope="col" title="Tuesday">T</th>');
   document.write('<th abbr="Wednesday" scope="col" title="Wednesday">W</th>');
   document.write('<th abbr="Thursday" scope="col" title="Thursday">T</th>');
   document.write('<th abbr="Friday" scope="col" title="Friday">F</th>');
   document.write('<th abbr="Saturday" scope="col" title="Saturday">S</th>');
   document.write('</tr>');
   document.write('</thead>');
   document.write('<tfoot>');
   document.write('<tr>');
   document.write('<td abbr="');

   MonthChoice = (DispMonth + ((SelectedMonth == "Curr") ? 1 : -1) + 12) % 12;

   document.write(monthNames[MonthChoice]);
   document.write('" colspan="3" id="prev"><a href="#" onclick="SelectMonth(');
   document.write("'", SelectedMonth, "'");
   document.write(')" title="View calendar for ', monthNames[MonthChoice]);
   document.write(((SelectedMonth == "Curr") ? '">&raquo; ' : '">&laquo; '));
   document.write(monthNames[MonthChoice].substr(0,3));

   document.write('</a></td>');
   document.write('<td class="pad">&nbsp;</td>');
   document.write('<td colspan="3" id="next">&nbsp;</td>');
   document.write('</tr>');
   document.write('</tfoot>');
   document.write('<tbody>');
   document.write('<tr>');

   var column = 0;
   var EventPointer = -1;
   var EventDate = new Date();
   DispDate.setHours(0);
   DispDate.setMinutes(0);
   DispDate.setSeconds(0);
   DispDate.setMilliseconds(0);
   EventDate.setHours(0);
   EventDate.setMinutes(0);
   EventDate.setSeconds(0);
   EventDate.setMilliseconds(0);

   for (i=0; i < StartDay; i++) {
      document.writeln("<td>&nbsp;</td>");
      column++;
   }

   EventDate.setFullYear(1900,0,1);
   for (i=1; i <= nDays; i++) {

      DispDate.setDate(i);
      while (EventDate < DispDate) {
         if (EventPointer < (Events.length - 1)) {
            EventPointer++;
            EventDate.setFullYear(eval(Events[EventPointer][0].substr(0,4)),(eval(Events[EventPointer][0].substr(4,2)) - 1),eval(Events[EventPointer][0].substr(6,2)));
         }
         else {
            break;
         }
      }

      if ((EventDate - DispDate) == 0) {
         document.writeln('<td title="');
         document.writeln(Events[EventPointer][1]);
         document.writeln('"><font color="brown">');
         if (Events[EventPointer][2] == "") {
            document.writeln(i);
         }
         else {
            document.writeln('<a href="', Events[EventPointer][2],'">', i, '</a>');
         }
         document.writeln('</font>');
      }
      else {
         if ((SelectedMonth == "Curr") && (i == todayDate)) {
            document.writeln('<td title="Today"><font color="orange">', i, '</font>');
         }
         else {
            document.writeln('<td>', i);
         } 
      }

      document.write('</td>');
      column++;
      if ((column == 7) && (i < nDays)) {
         document.writeln('</tr><tr>');
         column = 0;
      }
   }
   for (i=column; i < 7; i++)
      document.write('<td>&nbsp;</td>');
   document.write('</tr></tbody>');
}

function SelectMonth(SelectedMonth) {
   saveCookie('SelectedMonth', ((SelectedMonth == 'Curr') ? 'Next' : 'Curr'));
   window.location.reload();
}

