function calender(){

var padding  = 0;   // 全体テーブル枠の幅指定
var spacing  = 1;   // 全体テーブルセル余白指定
var in_padding  = 0;   // カレンダーテーブル枠の幅指定
var in_spacing  = 1;   // カンレンダーセル余白指定

var dwidth   = 18;   // 日付・曜日セルの幅
var dheight  = 16;   // 日付・曜日セルの高さ

cldr = "";
day = new Date();
thisday = day.getDate();  //今日の日付 - 背景色を変更するため
day.setDate(1);       //今月最初の日にセット
month = day.getMonth() + 1;

year = day.getYear();
if(year < 2000) year += 1900;
jyear = year - 1988;     //平成年度
numdays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
jmonth = new Array('睦月','如月','弥生','卯月','皐月','水無月','文月','葉月','長月','神無月','霜月','師走');


// うるう年
if((year%4 == 0) && (year%100 != 0) || (year%400 == 0)) numdays[1] = 29;

// 休日の定義
if(month == 1){holiday1 = 1; holiday2 = 14-(day.getDay()+5)%7; holiday3 = -1}  //成人の日
else if(month == 2){holiday1 = 11; holiday2 = -1; holiday3 = -1}  //建国記念日
else if(month == 3){
  ed =  20.8431 + 0.242194 * (year - 1980) - Math.floor((year - 1980)/4);  //春分の日
  holiday1 = Math.floor(ed);
  holiday2 = -1;
  holiday3 = -1;
}
else if(month == 4){holiday1 = 29; holiday2 = -1; holiday3 = -1}  //緑の日
else if(month == 5){holiday1 = 3; holiday2 = 4; holiday3 = 5}  //5月GW
else if(month == 6){holiday1 = -1; holiday2 = -1; holiday3 = -1}
else if(month == 7){holiday1 = 21-(day.getDay()+5)%7; holiday2 = -1;holiday3 = -1}  //海の日
else if(month == 8){holiday1 = -1; holiday2 = -1; holiday3 = -1}
else if(month == 9){
  holiday1 = 21-(day.getDay()+5)%7;
  ed =  23.2488 + 0.242194 * (year - 1980) - Math.floor((year - 1980)/4);  //秋分の日
  holiday2 = Math.floor(ed);
  holiday3 = -1
}
else if(month == 10){holiday1 = 14-(day.getDay()+5)%7;; holiday2 = -1; holiday3 = -1}  //体育の日
else if(month == 11){holiday1 = 3; holiday2 = 23; holiday3 = -1}  //文化の日、勤労感謝の日
else if(month == 12){holiday1 = 23; holiday2 = -1; holiday3 = -1}  //天皇誕生日
// 休日の定義終わり


// カレンダー本体
cldr += "<TABLE border='0' cellpadding='" + padding + "' cellspacing='" + spacing + "' class='base_table'><TBODY><TR align='center'>";
cldr += "<TD align='center' class='title_month'>平成" + jyear + "年　" + jmonth[month-1] + "</TD>" ;
cldr += "<TR align='center'><TD align='center'>";
cldr += "<TABLE border='0' cellpadding='0' cellspacing='1'><TBODY><TR align='center' class='week_day'>";
cldr += "<td align='center' class='week_sun' height='" + dheight + "' width='" + dwidth + "'>日</td>\<td align='center' class='week_day' height='" + dheight + "' width='" + dwidth + "'>月</td><td align='center' class='week_day' height='" + dheight + "' width='" + dwidth + "'>火</td><td align='center' class='week_day' height='" + dheight + "' width='" + dwidth + "'>水</td><td align='center' class='week_day' height='" + dheight + "' width='" + dwidth + "'>木</td><td align='center' class='week_day' height='" + dheight + "' width='" + dwidth + "'>金</td><td align='center' class='week_sat' height='" + dheight + "' width='" + dwidth + "'>土</td></TR>";


// 日付の書き込み
for(sunday = 1-day.getDay(); sunday <= 31; sunday +=7){
  cldr += "<TR align='center'class='in_tr'>";
  for(i = sunday; i < sunday + 7; i++){
    if((i > 0) && (i <= numdays[month-1])){
      day.setDate(i);
      today = day.getDay();

      if(today == 0) cldr += "<td align='center' class='day_sun' height='" + dheight + "' width='" + dwidth + "'>";
        else if((i == holiday1)||(i == holiday2)||(i == holiday3)) cldr += "<td align='center' class='holiday' height='" + dheight + "' width='" + dwidth + "'>";
        else if((today == 1)&&((i-1 == holiday1)||(i-1 == holiday2)||(i-1 == holiday3))) cldr += "<td align='center' class='holiday' height='" + dheight + "' width='" + dwidth + "'>";
        else if(today == 6) cldr += "<td align='center' class='day_sat' height='" + dheight + "' width='" + dwidth + "'>";
        else cldr += "<td align='center' class='day' height='" + dheight + "' width='" + dwidth + "'>";

      if(thisday == i){
        cldr += "<B>"+ i +"</B></td>";
      }else if(today == 0){
        cldr += ""+ i +"</td>";
      }else if((i == holiday1)||(i == holiday2)||(i == holiday3)){
        cldr += ""+ i +"</td>";
      }else if((today == 1)&&((i-1 == holiday1)||(i-1 == holiday2)||(i-1 == holiday3))){
        cldr += ""+ i +"</td>";
      }else if(today == 6){
        cldr += ""+ i +"</TD>";
      }else{
        cldr += ""+ i +"</td>";
      }

    }else{
      cldr += "<td>&nbsp;</td>";
    }
  }
  cldr += "</TR>";
}

cldr += "</TBODY></TABLE>";
cldr += "</TD></TR></TBODY></TABLE>";

document.write(cldr);

}
