/* define some constants, so we can type month names rather than numbers */
var jan = 0;
var feb = 1;
var mar = 2;
var apr = 3;
var may = 4;
var jun = 5;
var jul = 6;
var aug = 7;
var sep = 8;
var oct = 9;
var nov = 10;
var dec = 11;

/* These are the first and last days of school.  Edit dates each year. */
var first_day_of_school = new Date(2008, sep, 4); 
var last_day_of_school  = new Date(2009, jun, 26);

/* make an array of holidays.  Edit dates each year. */
var holiday = new Array();
holiday = [
 [ sep, 30 ], /* rosh hashanah */
 [ oct, 9  ], /* yom kippur */
 [ oct, 13 ], /* columbus day */
 [ nov, 4  ], /* professional day */
 [ nov, 11 ], /* veterans day */
 [ nov, 27 ], /* thanksgiving */
 [ nov, 28 ], /* day after thanksgiving */
 [ dec, 24 ], /* winter break begins */
 [ dec, 25 ],
 [ dec, 26 ],
 [ dec, 29 ],
 [ dec, 30 ],
 [ dec, 31 ],
 [ jan, 1  ], /* new years day */
 [ jan, 2  ], /* day after new years */
 [ jan, 19 ], /* martin luther king day */
 [ feb, 16 ], /* presidents' day */
 [ feb, 17 ], /* feb vacation begins */
 [ feb, 18 ],
 [ feb, 19 ],
 [ feb, 20 ],
 [ apr, 10 ], /* good friday */
 [ apr, 20 ], /* spring break begins */
 [ apr, 21 ],
 [ apr, 22 ],
 [ apr, 23 ],
 [ apr, 24 ],
 [ may, 25 ] /* memorial day */
];


/* ----------------------------------------------------------------
   Do not edit below this line
*/ 
 
/* a function that returns true if a day is a holiday,
   otherwise, returns false. */
function is_holiday(month, date) {
    for(x=0; x < holiday.length; x++) {
	    if (month == holiday[x][0] && date == holiday[x][1])
		   return true;
    }
	return false;
}

/* Make a two-dimensional array, first dimension is month, second dimension is day. */
var whatday = new Array();
for(i=0; i < 12; i++) {
   whatday[i] = new Array();
}

/* Fill the whatday array with numbers.  How?
   
   Start at the first day of school. That's day one.
   If it's a weekend or holiday, skip it, otherwise
     set whatday to the current number 
	 and increment the current number.   */
var day = new Date();
day.setTime(first_day_of_school.getTime());
var currentday = 1;

while(day <= last_day_of_school) { 
   var month = day.getMonth();
   var dt    = day.getDate();
   if (day.getDay() == 0 || day.getDay() == 6) // 0=sunday, 6=saturday
      whatday[month][dt] = 0; // weekend, so no school
   else if (is_holiday(month, dt))
      whatday[month][dt] = 0; // holiday, so no school
   else {
      whatday[month][dt] = currentday;
	  currentday = currentday + 1;  
	  if (currentday > 4) 
	     currentday = 1; /* 1,2,3,4,1,2,3,4 */
   }
	  
   day.setDate(day.getDate() + 1);
}

/* nice arrays of names for pretty strings */
var dayName = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" );
var monthName = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" );
var now = new Date;

function whatdayisit()
{
   document.writeln("Today is " + 
          dayName[now.getDay()] + " " + 
		  monthName[now.getMonth()] + " " + 
		  now.getDate() + ", " + 
		  now.getFullYear() + ". ");
		  
   if (now > last_day_of_school || now < first_day_of_school)
	   return; // after the last day of school, say nothing.
   var w = whatday[now.getMonth()][now.getDate()];
   if ( w == 0 )
       document.write("No school today.");
   else
       document.write("<span style='color:#990000;font-weight:bold;'>It's day " + w.toString() + ".</span>");
}
