//================================
//=== 表示切替スクリプト Ver.2 ===
//================================
var DspFlag = 0x00;		// 表示状態保持フラグ領域

function SetMenuFlag(id) {
//*** 表示状態のon/off確認 ***
//* [in]
//*   id : Number part of Tag-ID
//* [out]
//*   ---
//* [memo]
//*   Flag : 0 = 表示off / 1 = 表示on

	var ChkPos;

	ChkPos = 0x01 << id;
	DspFlag = DspFlag ^ ChkPos;
}

function ChkMenuFlag(id) {
//*** 表示状態のon/off設定 ***
//* [in]
//*   id : Number part of Tag-ID
//* [out]
//*   RC : Return Code (0:非表示状態 / 1:表示状態)
//* [memo]
//*   Flag : 0 = 表示off / 1 = 表示on

	var ChkPos;
	var RC = 0;

	ChkPos = 0x01 << id;
	if((DspFlag & ChkPos) != 0){
		RC = 1;
	}

	return RC;
}

function ShowMenu(id) {
//*** 表示状態切替 ***
//* [in]
//*   id : Tag-ID
//* [out]
//*   ---

	var act;
	var cid;
	var mode = "none";

	cid = id.slice(-2);			// 下2桁抽出（数値部分）
	act = ChkMenuFlag(cid);		// 表示状態のon/off確認
	switch(act){
	case 0:		// 現在表示offの為、表示onにする。
		mode = "block";
		break;
	case 1:		// 現在表示onの為、表示offにする。
		mode = "none";
		break;
	}
	document.getElementById(id).style.display = mode;
	SetMenuFlag(cid);		// 表示状態のon/off設定
}


//=======================
//=== 用語集POPUP表示 ===
//=======================
function OpenPopup(url,wname,size_w,size_h,opt){
	window.open(url,wname,"width="+size_w+",height="+size_h+","+opt);
}


//========================
//=== 営業日カレンダー ===
//========================
var dtNow = new Date();
var now_year   = dtNow.getYear();
var now_month  = dtNow.getMonth() + 1;
if(now_year < 1000) {
  now_year += 1900;
}

function tblCalendar(yyyy, mm)
{
  if(yyyy < 1000) {
    yyyy += 1900;
  }

  var i;
  var j;
  var k;

  var data = new Array();
  for (i = 2005; i <= 2050; i++){
    data[i] = new Array();
    for (j = 1; j <= 12; j++){
      data[i][j] = new Array();
    }
  }

  var bgtext1  = '今日';
  var bgtext2  = '定休日';
  var bgtext3  = '';
  var bgcolor1 = '#66CCFF';
  var bgcolor2 = '#FF6600';
  var bgcolor3 = '#FFFF00';

  SetData(data);

  var wName = new Array();
  var start_type;
  var label_type;
  start_type = 0;
  
    wName[0] = "日";
    wName[1] = "月";
    wName[2] = "火";
    wName[3] = "水";
    wName[4] = "木";
    wName[5] = "金";
    wName[6] = "土";
  

  var mDay = new Array();
  mDay[0] = 0;
  mDay[1] = 31;
  mDay[2] = 28;
  mDay[3] = 31;
  mDay[4] = 30;
  mDay[5] = 31;
  mDay[6] = 30;
  mDay[7] = 31;
  mDay[8] = 31;
  mDay[9] = 30;
  mDay[10] = 31;
  mDay[11] = 30;
  mDay[12] = 31;

  var i;
  var w;
  var m;
  var dtyyyy = dtNow.getYear();
  if(dtyyyy < 1000) {
    dtyyyy += 1900;
  }
  var dtmm = dtNow.getMonth() + 1;
  var dtdd = dtNow.getDate();

  var calendar_html = "";

  var last_year  = (mm - 1 > 0) ? yyyy : (yyyy - 1);
  var last_month = (mm - 1 > 0) ? (mm - 1) : 12;
  var next_year  = (mm + 1 > 12) ? (yyyy + 1) : yyyy;
  var next_month = (mm + 1 > 12) ? 1 : (mm + 1);

  var tmp_month  = dtNow.getMonth();
  var tmp2_month = dtNow.getMonth() + 2;
  if (tmp2_month > 12) tmp2_month = 1;

  calendar_html += '<table border="0" cellpadding="0" cellspacing="0">';

  if (mm == now_month) {
    calendar_html += '<caption>';
    calendar_html += '　&nbsp;';
//    calendar_html += '<a href="javascript:tblCalendar(' + (last_year) + ',' + (last_month) + ');">＜</a>&nbsp;';
    calendar_html += yyyy + '年&nbsp;' + mm + '月';
    calendar_html += '&nbsp;<a href="javascript:tblCalendar(' + (next_year) + ',' + (next_month) + ');">＞</a>';
    calendar_html += '</caption>';
  } else if ((yyyy == dtyyyy && mm > (dtmm + 1)) || (yyyy > dtyyyy && (mm + 12) > (dtmm + 1))) {
    calendar_html += '<caption>';
    calendar_html += '<a href="javascript:tblCalendar(' + (last_year) + ',' + (last_month) + ');">＜</a>&nbsp;';
    calendar_html += yyyy + '年&nbsp;' + mm + '月';
    calendar_html += '　&nbsp;';
    calendar_html += '</caption>';
  } else if (mm == tmp_month) {
    calendar_html += '<caption>';
    calendar_html += '　&nbsp;';
    calendar_html += yyyy + '年&nbsp;' + mm + '月';
    calendar_html += '&nbsp;<a href="javascript:tblCalendar(' + (next_year) + ',' + (next_month) + ');">＞</a>';
    calendar_html += '</caption>';
  } else if (mm == tmp2_month) {
    calendar_html += '<caption>';
    calendar_html += '<a href="javascript:tblCalendar(' + (last_year) + ',' + (last_month) + ');">＜</a>&nbsp;';
    calendar_html += yyyy + '年&nbsp;' + mm + '月';
    calendar_html += '　&nbsp;';
    calendar_html += '</caption>';
  } else {
    calendar_html += '<caption>';
//    calendar_html += '<a href="javascript:tblCalendar(' + (last_year) + ',' + (last_month) + ');">＜</a>&nbsp;';
    calendar_html += '　&nbsp;';
    calendar_html += yyyy + '年&nbsp;' + mm + '月';
    calendar_html += '&nbsp;<a href="javascript:tblCalendar(' + (next_year) + ',' + (next_month) + ');">＞</a>';
    calendar_html += '</caption>';
  }

  calendar_html += "<tr>";

  if( start_type != 1){
    calendar_html += "<th class=\"sun\">" + wName[0] + "</th>";
  }
  for(i = 1; i < 6; i++) {
    calendar_html += "<th class=\"day\">" + wName[i] + "</th>";
  }
  calendar_html += "<th class=\"sat\">" + wName[6] + "</th>";
  if( start_type == 1){
    calendar_html += "<th class=\"sun\">" + wName[0] + "</th>";
  }
  calendar_html += "</tr>";

  m = mDay[mm];
  if(mm == 2 && !(yyyy % 4)) {
    m++;
  }
  w = GetWeekDay(yyyy, mm, 1);
  if( start_type == 1){
    if(w == 0) {
      w=6;
    }else{
      w -= 1;
    }
  }

  if( w > 0 ) {
    calendar_html += "<tr>";
  }
  for(i = 0; i < w; i++) {
    calendar_html += "<td>&nbsp;</td>";
  }

  for(i = 0; i < m; i++) {
    if(w == 0) {
      calendar_html += "<tr>";
    }

    var temp = data[yyyy][mm][i + 1];
    if (yyyy == dtyyyy && mm == dtmm && (i + 1) == dtdd){
	if (temp){
	    calendar_html += "<td style=\"color:" + bgcolor1 + ";background-color:" + data[yyyy][mm][i + 1][1] + "\"><b>" + (i + 1) + "</b></td>";
	} else {
	    calendar_html += "<td style=\"color:" + bgcolor1 + "\">" + (i + 1) + "</td>";
	}
    } else if (temp){
      calendar_html += "<td style=\"background-color:" + data[yyyy][mm][i + 1][1] + "\">" + (i + 1) + "</td>";
    } else {
      if(yyyy == dtyyyy && mm == dtmm && (i + 1) == dtdd){
        calendar_html += "<td style=\"background-color:" + bgcolor1 + "\">";
      }else{
        calendar_html += "<td>";
      }
      calendar_html += (i + 1) + "</td>";
    }
    if(w == 6) {
      calendar_html += "</tr>";
    }
    w = (w + 1) % 7;
  }

  for(i = 0; i < (7 - w) % 7; i++) {
    calendar_html += "<td>&nbsp;</td>";
  }
  if( (7 - w) % 7 > 0 ) {
    calendar_html += "</tr>";
  }
  calendar_html += "</table>";

  var di = document.getElementById("calendar_div");
  di.innerHTML = calendar_html;

  return;
}

function GetWeekDay(yyyy, mm, dd)
{
  var ret;
  if(mm < 3) {
    yyyy--;
    mm += 12;
  }
  ret = yyyy;
  ret += Math.round((yyyy / 4) - 0.5);
  ret -= Math.round((yyyy / 100) - 0.5);
  ret += Math.round((yyyy / 400) - 0.5);
  ret += Math.round((mm * 13 + 8) / 5 - 0.5);
  ret += dd;
  ret %= 7;

  return ret;
}

