var monthdays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var days = new Array("日", "月", "火", "水", "木", "金", "土");
// 祝日1：何月の何日か？
var Holidays1 = new Array(1,1, 2,11, 3,21, 4,29, 5,3, 5,4, 5,5, 9,23, 11,3, 11,23, 12,23);
// 祝日2：何月の第何月曜日か？
var Holidays2 = new Array(1,2, 7,3, 9,3, 10,2);
// 現在の年、月、日の取得
var now = new Date();
var thisYear = now.getFullYear();
var thisMonth = now.getMonth() + 1;
var today = now.getDate();
// 表示年月の記憶
var year = thisYear;
var month = thisMonth;
function showCalen(n,data) {
  // 該当月
  var count=0;
  var calenderdata = data;
  month += n;
  if (month == 0) { year--; month=12; }
  else if (month == 13) { year++; month = 1; }
  var flag = (year == thisYear && month == thisMonth) ? 1: 0;
  var date = new Date(year, month-1, 1);  // 表示月の 1日の Date()
  var startDay = date.getDay();
  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 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 mondays = new Array();
  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 htmlStr = "<table class='calen'>\n" + "<tr class='bg1'><th colspan=7>"
    + year + "年 " + month + "月</th></tr>\n";
  htmlStr += "<tr class='bg2'><th class='sun'>" + days[0] + "</th>";
  for (i = 1; i < 6; i++) htmlStr += "<th>" + days[i] + "</th>";
  htmlStr += "<th class='sat'>" + days[6] + "</th></tr>\n";
  var col = 0;
  if (startDay > 0) {
    htmlStr += "<tr>";
    for ( ; col < startDay; col++) htmlStr += "<td>&nbsp;</td>";
  }
  
  // 休業日データを格納
  myData = data.split("&");
  var myData2=new Array();
  for(var i = 0; i < myData.length; i++){
    myData2 = myData[i].split(",");
    myData3 = myData2[0].split("-");
    if( myData3[0]==year && parseInt(myData3[1],10)==month){
      count=i;
      break;
    }
  }
   
  var myData3=new Array();
  var yy=0;
  var mm=0;
  for (i = 1; i <= dateMax; i++) {
    // チェックボックスチェックフラグ
    flg = "";
    for( j = 0; j < myData2.length; j++ ){
      myData3 = myData2[j].split("-");
      if( myData3[0]==year && parseInt(myData3[1],10)==month ){
        if( parseInt(myData3[2],10) == i ){
          yy=myData3[0];
          mm=myData3[1];
          flg = "checked";
        }
      }
    }
    if (col == 0) htmlStr += "<tr>";
    if (flag == 1 && i == today) {
      if (holidays[i] == 1 || col == 0) htmlStr += "<td class='today sun'>";
      else if (col == 6) htmlStr += "<td class='today sat'>";
      else htmlStr += "<td class='today'>";
    }else if (holidays[i] == 1 || col == 0) {
      if( flg == "checked" ){
        htmlStr += "<td class='checked'>";
      }else{
        htmlStr += "<td class='sun'>";
      }
    }else if (col == 6) {
      if( flg == "checked" ){
        htmlStr += "<td class='checked'>";
      }else{
        htmlStr += "<td class='sat'>";
      }
    }else{ htmlStr += "<td class='"+flg+"'>";}
    htmlStr += i + "</td>";
    if (col == 6) { htmlStr += "</tr>\n"; col=0; } else col++;
  }
  if (col != 0) {
    for ( ; col < 7; col++) htmlStr += "<td>&nbsp;</td>";
    htmlStr += "</tr>";
  }
  htmlStr += "</table>";
  
  if( n == 0 ){
    document.getElementById("calen").innerHTML = htmlStr;
  }else if(n == 1){
    htmlStr += "<p style='margin:0;text-align:center;'><span style='color:#ff9900;'>■</span>オレンジ色：休業日<br><span style='color:#ffe4ce'>■</span>薄オレンジ色：本日</p>";
    document.getElementById("calen2").innerHTML = htmlStr;
  }

/*  
  if( year==thisYear && parseInt(month,10)==thisMonth ){
    document.getElementById("month").innerHTML = '<input type="button" value="次月" onClick="showCalen(1,\'' + calenderdata + '\')">';
  }else{
    document.getElementById("month").innerHTML = '<input type="button" value="前月" onClick="showCalen(-1,\'' + calenderdata + '\')"><input type="button" value="次月" onClick="showCalen(1,\'' + calenderdata + '\')">';
  }
*/  
}
