/* 
   New Perspectives on HTML and XHTML
   Case Problem 3

   Name: 
   Date: 
*/

function writeCalTitle(calendarDay) {
   var monthName=new Array("January", "February", "March", "April", "May",
       "June", "July", "August", "September", "October", "November", 
       "December");
   var thisMonth=calendarDay.getMonth();
   var thisYear=calendarDay.getFullYear();
   document.write("<tr>");
   document.write('<th id="calendar_head" colspan="7">');
   document.write(monthName[thisMonth]+" "+thisYear);
   document.write("</th>");
   document.write("</tr>");
}

function writeDayTitle() {
   var wdName= new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
   document.write("<tr>");
   for (i=0; i<=6; i++) {
      document.write ("<th class='calendar_weekdays'>"+wdName[i]+"</th>");
   }
   document.write("</tr>");
}

function writeCalDays(calendarDay) {
   var thisDay=calendarDay.getDate();
   calendarDay.setDate(1);
   var weekDayNum=calendarDay.getDay();

   document.write("<tr");

   for (i=0; i<weekDayNum; i++) {
      document.write("<td></td>");
   }

   var cellCount=1;
   var dayCount=1;
   while (dayCount==cellCount) {

      if(weekDayNum==0) {
         document.write("<tr>");
      }

      if(dayCount==thisDay) {
         document.write("<td class='calendar_dates' id='calendar_today'>"+
   dayCount+"</td>");
      } else {
         document.write("<td class='calendar_dates'>"+dayCount+"</td>");
      }

      if (weekDayNum==6) {
         document.write("</tr>");
      }

      cellCount++;
      calendarDay.setDate(cellCount);
      weekDayNum=calendarDay.getDay();
      dayCount=calendarDay.getDate();
   }
}

function calendar(thisDate) {

   if (thisDate=="today") {
      calDate=new Date();
   } else {
      calDate=new Date(thisDate);
   }
   document.write('<table id="calendar_table">');
   writeCalTitle(calDate);
   writeDayTitle();
   writeCalDays(calDate);
   document.write("</tr></table>")
}