CALENDAR

<HTML>
<HEAD>
<TITLE>
Calendar</TITLE>

<SCRIPT>

/********** DECLARE ARRAYS & DATE OBJECT **********/

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 Month30 = new Array(3, 5, 8, 10);  // months containing 30 days
var
Month31 = new Array(0, 2, 4, 6, 7, 9, 11);  // months containing 31 days

var now = new Date();

var Month = now.getMonth();
var Year = now.
getFullYear();

/********** END OF DECLARING ARRAYS & DATE OBJECT **********/

/********** GET FIRST DAY OF MONTH **********/

var strDate = new Date(Year, Month, 1);  // set Date for the 1st of the selected Month

var firstDay = strDate.getDay();  // get the "Day" of the 1st Day of the selected Month

/********** END OF GET FIRST DAY OF MONTH **********/

/********** GET THE NUMBER OF DAYS IN THE MONTH **********/

function getDaysInMonth(Year, Month) {
     if (Month == 1) {
         
// if February and Leap Year return 29 else return 28
          if (((Year % 4 == 0) && (Year % 100 != 0)) || (Year % 400 == 0)) return 29;
          else return 28;
     }

      /*
      Description: Executes a statement for each element of an object or array.
      Syntax :

          for (variable in [object | array])
               statement

     NOTE: The for-in works in browsers 4.x or greater
     */
     for (month in Month30) { // Checking to see if the Month has 30 days
          if (Month == Month30[month]) return 30;
     }

     // -- OR -- for browsers that don't understand for-in
    
// if (Month == 3 || Month == 5 || Month == 8 || Month == 10) return 30;

     // Checking to see if the Month has 31 days
     for (month in Month31) {
          if (Month == Month31[month]) return 31;
     }
}

var daysInMonth = getDaysInMonth(Year, Month);  // gives us the number of days in the Month

/********** END OF GET THE NUMBER OF DAYS IN THE MONTH **********/

</SCRIPT>

</HEAD>

<BODY>

<SCRIPT>

/********** WRITE OUT MONTH & YEAR **********/

document.write(monthName[Month] + " " + Year);  // write Month & Year

/********** END OF WRITE OUT MONTH & YEAR **********/

</SCRIPT>

<TABLE>
    <TR>

<SCRIPT>

/********** TABLE HEADER **********/

// Create Table Headers (Sunday, Monday, etc..., Saturday)
for (i = 0; i < 7; i++) {
     document.write('<TH>' + dayName[i] + '</TH>');
}

document.write("</TR><TR>");

/********** END OF TABLE HEADER **********/

/********** BODY OF THE TABLE **********/

var column = firstDay; // first day of the Month
var Day = 1;

// fill up the Beginning of the Month to the 1st of the Month with Blank Cells
for (i = 0; i < firstDay; i++) {
     document.write('<TD>&nbsp;</TD>');  // NOTE: &nbsp; creates an empty cell
}

for (i = 0; i < daysInMonth) {
    
// if column doesn't equal 7 then create the column
    
// else begin a new row
     if (column++ != 7) {
         
// if the column day happens to be today then make that column number blue to indicate today
         
// else create a "normal" column
          if (now.getDate() == Day && now.getMonth() == Month && now.getFullYear() == Year)
               document.write('<TD><FONT COLOR="blue">' + Day++ + "</FONT></TD>");
          else document.write('<TD>' + Day++ + "</TD>");
          i++;
     }
     else {
          document.write("</TR><TR>");
          column = 0;
     }
}

// fill up the End of the Month after the Last of the Month with Blank Cells
if (column != 0 && column < 7) {
     for (i = column; i < 7; i++) {
          document.write('<TD>&nbsp;</TD>');  // &nbsp; creates an empty cell
     }
}

/********** END OF BODY OF THE TABLE **********/

</SCRIPT>

    </TR>
</TABLE>

</CENTER>

</BODY>
</HTML>