﻿monstr = new Array();
yostr = new Array();

/*----------------*
 * 設定はここから *
 *----------------*/
var frbgcolor  = "#ffbbdf";	    // 外枠の背景色
var frborder   = 5;             // 外枠の幅
var monfnsize  = "10pt";        // 月のフォントサイズ
var frfncolor  = "#3c3c3c";     // 月の文字色

var inbgcolor  = "#ffffff";     // 日付部の背景色
var yobgcolor  = "#ffffff";     // 曜日部の背景色
var tdbgcolor  = "#fff799";     // 本日の背景色
var dwidth     = 35;            // 日付・曜日欄の幅
var dheight    = 23;            // 日付・曜日欄の高さ
var dayfnsize  = "8pt";         // 日付と曜日のフォントサイズ
var dayfncolor = "#3c3c3c";     // 平日の文字色（曜日・日付共通）
var kdfncolor  = "#ec6941";     // 日曜・休日の文字色（曜日・日付共通）
var ndstr      = "・";          // 日付なし欄に出す文字
var ndfncolor  = "#cccccc";     // 日付なし欄の文字色

// 月の表示文字
monstr[0]  = " 1";    //  1月
monstr[1]  = " 2";   //  2月
monstr[2]  = " 3";      //  3月
monstr[3]  = " 4";      //  4月
monstr[4]  = " 5";        //  5月
monstr[5]  = " 6";       //  6月
monstr[6]  = " 7";       //  7月
monstr[7]  = " 8";     //  8月
monstr[8]  = " 9";  //  9月
monstr[9]  = "10";    // 10月
monstr[10] = "11";   // 11月
monstr[11] = "12";   // 12月

// 曜日の表示文字
yostr[0] = "日";  // 日曜
yostr[1] = "月";  // 月曜
yostr[2] = "火";  // 火曜
yostr[3] = "水";  // 水曜
yostr[4] = "木";  // 木曜
yostr[5] = "金";  // 金曜
yostr[6] = "土";  // 土曜

/*----------------*
 * 設定はここまで *
 *----------------*/
//for test
var test = 0;	// 1:testmode on
var testyear = 2007;  // year for test
var testmonth = 1;    // month for test
var testday = 1;      // day for test
//

maxday = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

var date = new Date();

if (test == 1) { date.setYear(testyear); date.setMonth(testmonth-1); date.setDate(testday); }

var year = date.getFullYear();
var month = date.getMonth() + 1;
var today = date.getDate();

if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { maxday[1]++; }
date.setDate(1);

var yo1 = date.getDay();
var flag = 0;
var daycnt = 1;
var moncnt = 0;
var yasumi, syuku, furi;

//document.write('<table class="cal" border="0" cellpadding="0" cellspacing="0">');
//document.write('<tr><th>');
//document.write(year + '年' + monstr[month-1] + '月');

// 曜日欄
document.write('<table class="month" border="0" cellpadding="0" cellspacing="0">');
document.write('<tr>');
document.write('<th colspan="7">' + year + '年' + monstr[month-1] + '月' + '<\/th><\/tr><tr>');

for (yo = 0; yo < 7; yo++) {
  document.write('<td>');
  if (yo == 0) { document.write('<font color="' + kdfncolor + '">'); }
    else { document.write('<font color="' + dayfncolor + '">'); }
  document.write(yostr[yo]);
  if (yo == 0) { document.write('<\/font>'); }
  document.write('<\/td>');
}
document.write('<\/tr>');
while (flag < 2) {
  document.write('<tr>');
  for (yo = 0; yo < 7; yo++) {
    document.write('<td ');
    if (flag == 0 && yo1 == yo) { flag = 1; }	// 1日
    if (flag == 1) {	// 日付あり
      if (daycnt == today) {
        document.write('style="background: #ff0;');	// 本日の背景設定
      }
      document.write('>');
      yasumi = 0;
      syuku = 0;
      // 月曜に関する処理 (Happy Mondayと振替休日)
      if (yo == 1) {
        if (furi == 1) {
          yasumi = 1;
          furi = 0;
        }
        if (++moncnt == 2) {	// 第2月曜
          if (month == 1) { syuku = 1; }	// 1月 成人の日
          if (month == 10) { syuku = 1; }	// 10月 体育の日
        }
        if (moncnt == 3) {		// 第3月曜
          if (year >= 2003 && month == 7) { syuku = 1; } 	// 7月 海の日 (2003～)
          if (year >= 2003 && month == 9) { syuku = 1; } 	// 9月 敬老の日 (2003～)
        }
      }
      // Happy Monday以外の祝日に関する処理
      if (month == 1 && daycnt == 1) { syuku = 1; }		//  1月 1日 元日
      if (month == 2 && daycnt == 11) { syuku = 1; }	//  2月11日 建国記念の日
      if (month == 3) {
        if (daycnt == Math.floor(20.8431+0.242194*(year-1980))-Math.floor((year-1980)/4)) {
          syuku = 1;	// 春分の日
        }
      }
      if (month == 4 && daycnt == 29) { syuku = 1; }	//  4月29日 みどりの日
      if (month == 5 && daycnt == 3) { syuku = 1; }		//  5月 3日 憲法記念日
      if (month == 5 && daycnt == 4) { syuku = 1; }		//  5月 4日 国民の休日
      if (month == 5 && daycnt == 5) { syuku = 1; }		//  5月 5日 こどもの日
      if (year == 2009 &&month == 5 && daycnt == 6) { syuku = 1; }		//  5月 6日 振替休日
      if (month == 9) {
        if (daycnt == Math.floor(23.2488+0.242194*(year-1980))-Math.floor((year-1980)/4)) {
          syuku = 1;	// 秋分の日
        }
      }
      if (month == 11 && daycnt == 3) { syuku = 1; }	// 11月 3日 文化の日
      if (month == 11 && daycnt == 23) { syuku = 1; }	// 11月23日 勤労感謝の日
      if (month == 12 && daycnt == 23) { syuku = 1; }	// 12月23日 天皇誕生日
      if (year < 2003 && month == 7 && daycnt == 20) { syuku = 1; }	// 7月20日 海の日 (～2002)
      if (year < 2003 && month == 9 && daycnt == 15) { syuku = 1; }	//  9月15日 敬老の日 (～2002)
      if (syuku == 1) { yasumi = 1; }
      // 日曜に関する処理
      if (yo == 0) {
        yasumi = 1;
        if (syuku == 1) { furi = 1; }
      }
      if (yasumi == 1) { document.write('<font color="' + kdfncolor + '">' + daycnt + '<\/font>'); }
        else { document.write('<font color="' + dayfncolor + '">' + daycnt + '<\/font>'); }
      if (++daycnt > maxday[month - 1]) { flag = 2; }	// 最終日
    } else {	// 日付なし
      document.write('><font color="' + ndfncolor + '">' + ndstr + '<\/font>');
    }
    document.write('<\/td>');
  }
  document.write('<\/tr>');
}
document.write('<\/table>');
//document.write('<\/td><\/tr><\/table>');

