
//  SET ARRAYS
var day_of_week = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
var month_of_year = new Array('January','February','March','April','May','June','July','August','September','October','November','December');

//  DECLARE AND INITIALIZE VARIABLES
var Calendar = new Date();

var year = Calendar.getYear();	 // Returns year
var month = Calendar.getMonth(); // Returns month (0-11)
var today = Calendar.getDate();  // Returns date (1-31)
var weekday = Calendar.getDay(); // Returns day (0-6)

var DAYS_OF_WEEK = 7;    // "constant" for number of days in a week
var DAYS_OF_MONTH = 31;    // "constant" for number of days in a month
var iSATURDAY = 6; // "constant" 0 based index for Saturday
var cal;    // Used for printing
var satcnt; // count the SATURDAYS

Calendar.setDate(1);    // Start the calendar day at '1'
Calendar.setMonth(month);    // Start the calendar month at now

/* VARIABLES FOR FORMATTING
NOTE: You can format the 'BORDER', 'BGCOLOR', 'CELLPADDING', 'BORDERCOLOR'
      tags to customize your caledanr's look. */

var TR_start = '<tr>';
var TR_end = '</tr>';
var highlight_start = '<td width="30"><table cellspace="0" border="1" bgcolor="#dedeff" bordercolor="#cccccc"><tr><td width="20"><b><center>';
var highlight_end   = '</center></td></tr></table></b>';
var TD_start = '<td width="30"><center>';
var TD_end = "</center></td>\n";

/* BEGIN CODE FOR CALENDAR
NOTE: You can format the 'BORDER', 'BGCOLOR', 'CELLPADDING', 'BORDERCOLOR'
tags to customize your calendar's look.*/
cal = '<center><p>';
cal += '<table border="1" cellspacing="0" cellpadding="0" bordercolor="#bbbbbb"><tr><td>';
cal += "\n";
cal += '<table border="0" cellspacing="0" cellpadding="2">' + TR_start;
cal += '<td colspan="' + DAYS_OF_WEEK + '" bgcolor="#efefef"><center><b>';
cal += month_of_year[month]  + '   ' + year + '</b>' + TD_end + TR_end;
cal += TR_start;

//   DO NOT EDIT BELOW THIS POINT  //

// LOOPS FOR EACH DAY OF WEEK
for(index=0; index < DAYS_OF_WEEK; index++) {
 // BOLD TODAY'S DAY OF WEEK
 if(weekday == index) {
  cal += TD_start + '<b>' + day_of_week[index] + '</b>' + TD_end;
 } else { // PRINTS DAY
  cal += TD_start + day_of_week[index] + TD_end;
 }
}

cal += TD_end + TR_end;
cal += TR_start;

// FILL IN BLANK GAPS UNTIL TODAY'S DAY
// for(index=0; index < Calendar.getDay(); index++) {
for(index=0; index < weekday; index++) {
	cal += TD_start + '  ' + TD_end;
}

// LOOPS FOR EACH DAY IN CALENDAR
satcnt = 0; // start SATURDAY counter
for(index=0; index < DAYS_OF_MONTH; index++)
{
   if( Calendar.getDate() > index )
   {
      // RETURNS THE NEXT DAY TO PRINT
      week_day = Calendar.getDay();

	  // count saturdays of the month
	  if (week_day == iSATURDAY) {
		  satcnt++;
	  }

      // START NEW ROW FOR FIRST DAY OF WEEK
      if(week_day == 0) {
         cal += TR_start;
	  }

	  if(week_day != DAYS_OF_WEEK)
	  {
		 // SET VARIABLE INSIDE LOOP FOR INCREMENTING PURPOSES
		 var day  = Calendar.getDate();
		 // if( today == Calendar.getDate() ) { // HIGHLIGHT TODAY'S DATE
		 if( today == day ) { // HIGHLIGHT TODAY'S DATE
			cal += highlight_start + day + highlight_end + TD_end;
		 } else { // PRINTS DAY
			cal += TD_start + day + TD_end;
		 }
	  }

	  // END ROW FOR LAST DAY OF WEEK
	  if(week_day == DAYS_OF_WEEK) {
		 cal += TR_end;
	  }

  }

  // INCREMENTS UNTIL END OF THE MONTH
  Calendar.setDate(Calendar.getDate()+1);

} // end for loop

cal += '</td></tr></table></table>';
cal = '</p></center>';

//  PRINT CALENDAR
document.write(cal);
// print cal;
// Debug.write(cal);
