/* 
   New Perspectives on HTML and XHTML
   Case Problem 3

   Name: Nicholaus Malone
   Date: 04-30-05
*/

// #2 create calendar title bar in table
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><th id="calendar_head" colspan="7">' + monthName[thisMonth] +'&nbsp;'+ thisYear + '</th></tr>');}
// #3 create days of the week titles in table
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>");}
// #4 write blank table cells for unoccupied days of first week
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>");}
// #5 write table cells containing days of month
	var cellCount=1;
	var dayCount=1;
	while(cellCount==dayCount)
	 {	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);
	 	dayCount=calendarDay.getDate();
	 	weekDayNum=calendarDay.getDay();}}
// #6 write the calendar table
function calendar(thisDate)
 {	if(thisDate=="today"){var calDate=new Date();}
 		else{var calDate=new Date(thisDate);}
 	document.write('<table id="calendar_table">');
 	writeCalTitle(calDate);
 	writeDayTitle();
 	writeCalDays(calDate);
 	document.write("</table>");}
 	