// JavaScript Document

var now = new Date();
var year = now.getFullYear();
var month = now.getMonth() + 1;
var today = now.getDate();

now.setDate(1);
var startDay = now.getDay();

var monthdays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var dateMax = monthdays[month - 1];
if (month == 2 && ((year%4 == 0 && year%100 != 0) || year%400 == 0)) dateMax = 29;

// 休日配列の初期化
var holidays = new Array();
for (var i=0; i<=dateMax; i++) holidays[i] = 0;

// 祝日1：何月の何日か？
var Holidays1 = new Array(1,1, 1,2, 1,3, 2,11, 3,21, 4,29, 5,3, 5,4, 5,5, 7,18, 8,15, 8,16, 9,19, 9,23, 10,10, 11,3, 11,23, 12,23, 12,30, 12,31);
var firstSunday = (startDay == 0)? 1: 8 - startDay;
for (i=0; i<Holidays1.length; i+=2) {
    if (Holidays1[i] == month) {
        holidays[Holidays1[i+1]] = 1;
        for (var j=firstSunday; j<dateMax; j+=7)
            if (Holidays1[i+1] == j) { holidays[j+1] = 1; break; } // 振替休日
    }
}
// 祝日2：何月の第何月曜日か？
var Holidays2 = new Array(1,2, 7,3, 9,3, 10,2);
var firstMonday = (startDay < 2)? 2 - startDay: 9 - startDay;
for (i=0; i<Holidays2.length; i+=2)
    if (Holidays2[i] == month) holidays[(Holidays2[i+1] - 1) * 7 + firstMonday] = 1;

var days = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var monthName = new Array('none','January','February','March','April','May','June','July','August','September','October','November','December');

document.write("<p class='month'>"
    + year + "." + month + " - " + monthName[month] + "</p>\n");
document.write("<table class='calen'><tr class='bg2'><th>" + days[0] + "</th>");
for (i=1; i<6; i++) document.write("<th>" + days[i] + "</th>");
document.write("<th>" + days[6] + "</th></tr>\n");

var col=0;
if (startDay > 0) {
    document.write("<tr>");
    for ( ; col<startDay; col++) document.write("<td>&nbsp;</td>");
}
for (i=1; i<=dateMax; i++) {
    if (col == 0) document.write("<tr>");
    if (i == today) {
        if (holidays[i] == 1 || col == 0) s1 = "<td class='today sun'>";
        else if (col == 6) s1 = "<td class='today sat'>";
        else s1 = "<td class='today'>";
    }
    else if (holidays[i] == 1 || col == 0) s1 = "<td class='sun'>";
    else if (col == 6) s1 = "<td class='sat'>";
    else s1 = "<td>";
    document.write(s1 + i + "</td>");
    if (col == 6) { document.write("</tr>\n"); col=0; } else col++;
}
if (col != 0) {
    for ( ; col<7; col++) document.write("<td>&nbsp;</td>");
    document.write("</tr>");
}
document.write("</table>");
