mDaysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31];

mMonthNames=['January','February','March','April','May','June',
              'July','August','September','October','November','December'];

mDayNames=['S', 'M', 'T', 'W', 'T', 'F', 'S'];

function getDaysInMonth(month,year)
{
    if ((month==1)&&(year%4==0)&&((year%100!=0)||(year%400==0)))
    {
      return 29;
    }
    else
    {
      return mDaysInMonth[month];
    }
}

function DisplayCalendarLegendHelper(className, text)
{
    var style;
    
    document.write('<tr>');
    style = 'border-color:black; border-width:1px 1px 1px 1px; border-style:solid;';
    document.write('<td width="20px" class="' + className + '" style="' + style + '">&nbsp;</td>');
    document.write('<td></td>');
    document.write('<td colspan="5">' + text + '</td>');
    document.write('</tr>');
}

function DisplayCalendarLegend()
{
    var i;
    
    document.write('<table width="100%" border="0">\n');

    document.write('<tr>\n');
    for (i=0; (i < 7); i++)
    {
        document.write('<td align="center" width="14%">&nbsp;</td>\n');
    }
    document.write('</tr>\n');
    
    DisplayCalendarLegendHelper('calendarNoSchoolDay', 'No School');
    DisplayCalendarLegendHelper('calendarSchoolDay', 'School');
    DisplayCalendarLegendHelper('calendarHoliday', 'Holiday');
    
    document.write('</table>');   
}

function DisplayCalendar(month, year)
{
    var i;
    var j;
    var firstDayDate;
    var firstDay;
    var daysInMonth;
    var dayOfWeek;
    var d;
    var id;
    
    // make the month zero relative
    month -= 1;
    
    document.write('<table width="100%" border="0">\n');
    
    document.write('<tbody>\n');
    document.write('<tr>');
    document.write('<td align="center" class="calendarMonth">' + mMonthNames[month] + '</td>\n');
    document.write('</tr>');

    document.write('<tr>');
    document.write('<td>');
    
    // get the first day of the month
    firstDayDate=new Date(year, month, 1);
    firstDay=firstDayDate.getDay();    

    // create a table for the days of the week
    document.write('<table cellspacing="0" cellpadding="0" width="100%" border="1">\n');
    document.write('<tr>');
    for (i=0; (i < 7); i++)
    {
        document.write('<th align="center" width="14%" class="calendarWeek">' + mDayNames[i] + '</th>\n');
    }
    document.write('</tr>\n');
    
    // display the days of the month
    daysInMonth = getDaysInMonth(month, year);
    for (j=0; j<35; j++)
    {
        dayOfWeek = j % 7;
        d = j-firstDay+1;
        
        if (dayOfWeek == 0) document.write('<tr>');
        
        //if ((dayOfWeek == 0) || (dayOfWeek == 6))
        if (0 == 1)
        {
            // we are not displaying Saturday or Sunday
        }
        else if ((j < firstDay) || (d > daysInMonth))
        {
            document.write('<td class="calendarEmpty">&nbsp;</td>');
        }
        else
        {
            id = month + "_" + d;
            document.write('<td class="calendarDay" id="' + id + '"> '
                  + d
                  +'</td>');
        }
        
        if (dayOfWeek == 6) document.write('</tr>');
    }
    
    document.write('</table>\n');
    
    document.write('</td>');
    document.write('</tr>');

    document.write('</tbody>\n');
    document.write('</table>\n');
}

function SetDay(sDate, sClass)
{
    var elem;
    var id;
    var d = new Date(sDate);
    
    id = d.getMonth() + "_" + d.getDate();
    
    elem = document.getElementById(id);
    
    if (elem != undefined)
    {
        elem.className = sClass;
        //elem.innerHTML = sName;
    }
}

function SetDays(sDate1, sDate2, sClass)
{
    var d1 = new Date(sDate1);
    var d2 = new Date(sDate2);
    
    while (d1 <= d2)
    {
        SetDay(d1.toString(), sClass);
        d1.setDate(d1.getDate() + 1);
    }
}

function SetHoliday(sDate, sName)
{
    var elem;
    var id;
    var d = new Date(sDate);
    
    id = d.getMonth() + "_" + d.getDate();
    
    elem = document.getElementById(id);
    
    if (elem != undefined)
    {
        elem.className = "calendarHoliday";
        //elem.innerHTML = sName;
    }
}

function SetHolidays(sDate1, sDate2, sName)
{
    var d1 = new Date(sDate1);
    var d2 = new Date(sDate2);
    
    while (d1 <= d2)
    {
        SetHoliday(d1.toString(), sName);
        d1.setDate(d1.getDate() + 1);
    }
}

function SetSchoolDays(sDate1, sDate2)
{
    SetDays(sDate1, sDate2, "calendarSchoolDay");
}

function SetNoSchoolDays(sDate1, sDate2)
{
    SetDays(sDate1, sDate2, "calendarNoSchoolDay");
}

function SetSpecialDay(sDate, sText)
{
    var elem;
    var id;
    var d = new Date(sDate);
    
    id = d.getMonth() + "_" + d.getDate();
    
    elem = document.getElementById(id);
    
    if (elem != undefined)
    {
        elem.title = sText;
        elem.className = "calendarSpecialDay";
        //elem.innerHTML = sName;
    }
}

function CalendarSetSnowDays(sDate1, sDate2)
{
    SetDays(sDate1, sDate2, "calendarSnowDay");
}

function CalendarSetWeekends(sDate1, sDate2)
{
    var d1 = new Date(sDate1);
    var d2 = new Date(sDate2);
    var dow;
    
    while (d1 <= d2)
    {
        dow = d1.getDay();
        
        if ((dow == 0) || (dow == 6))
        {
            SetDay(d1.toString(), "calendarNoSchoolDay");
        }
        
        d1.setDate(d1.getDate() + 1);
    }
}

