
var holiday = new Object();

//設定ここから--設定後に同フォルダ内のcale_test.htmlで設定者が確認後に、別の人間にも確認してもらうこと。



holiday['2011/11/1'] = 5;
holiday['2011/11/2'] = 5;
holiday['2011/11/3'] = 3;
holiday['2011/11/4'] = 5;
holiday['2011/11/5'] = 2;
holiday['2011/11/6'] = 2;
holiday['2011/11/7'] = 5;
holiday['2011/11/8'] = 5;
holiday['2011/11/9'] = 5;
holiday['2011/11/10'] = 5;
holiday['2011/11/11'] = 5;
holiday['2011/11/12'] = 2;
holiday['2011/11/13'] = 2;
holiday['2011/11/14'] = 5;
holiday['2011/11/15'] = 5;
holiday['2011/11/16'] = 5;
holiday['2011/11/17'] = 5;
holiday['2011/11/18'] = 1;
holiday['2011/11/19'] = 3;
holiday['2011/11/20'] = 3;
holiday['2011/11/21'] = 4;
holiday['2011/11/22'] = 4;
holiday['2011/11/23'] = 3;
holiday['2011/11/24'] = 1;
holiday['2011/11/25'] = 5;
holiday['2011/11/26'] = 2;
holiday['2011/11/27'] = 2;
holiday['2011/11/28'] = 5;
holiday['2011/11/29'] = 5;
holiday['2011/11/30'] = 5;
holiday['2011/12/1'] = 5;
holiday['2011/12/2'] = 5;
holiday['2011/12/3'] = 2;
holiday['2011/12/4'] = 2;
holiday['2011/12/5'] = 5;
holiday['2011/12/6'] = 5;
holiday['2011/12/7'] = 5;
holiday['2011/12/8'] = 5;
holiday['2011/12/9'] = 5;
holiday['2011/12/10'] = 2;
holiday['2011/12/11'] = 2;
holiday['2011/12/12'] = 5;
holiday['2011/12/13'] = 5;
holiday['2011/12/14'] = 5;
holiday['2011/12/15'] = 5;
holiday['2011/12/16'] = 5;
holiday['2011/12/17'] = 2;
holiday['2011/12/18'] = 2;
holiday['2011/12/19'] = 5;
holiday['2011/12/20'] = 5;
holiday['2011/12/21'] = 5;
holiday['2011/12/22'] = 5;
holiday['2011/12/23'] = 3;
holiday['2011/12/24'] = 2;
holiday['2011/12/25'] = 2;
holiday['2011/12/26'] = 5;
holiday['2011/12/27'] = 1;
holiday['2011/12/28'] = 4;
holiday['2011/12/29'] = 3;
holiday['2011/12/30'] = 3;
holiday['2011/12/31'] = 3;
holiday['2012/1/1'] = 3;
holiday['2012/1/2'] = 3;
holiday['2012/1/3'] = 3;
holiday['2012/1/4'] = 6;
holiday['2012/1/5'] = 1;
holiday['2012/1/6'] = 1;
holiday['2012/1/7'] = 2;
holiday['2012/1/8'] = 2;
holiday['2012/1/9'] = 3;
holiday['2012/1/10'] = 1;
holiday['2012/1/11'] = 5;
holiday['2012/1/12'] = 5;
holiday['2012/1/13'] = 1;
holiday['2012/1/14'] = 3;
holiday['2012/1/15'] = 3;
holiday['2012/1/16'] = 5;
holiday['2012/1/17'] = 5;
holiday['2012/1/18'] = 5;
holiday['2012/1/19'] = 5;
holiday['2012/1/20'] = 5;
holiday['2012/1/21'] = 2;
holiday['2012/1/22'] = 2;
holiday['2012/1/23'] = 5;
holiday['2012/1/24'] = 5;
holiday['2012/1/25'] = 5;
holiday['2012/1/26'] = 5;
holiday['2012/1/27'] = 5;
holiday['2012/1/28'] = 2;
holiday['2012/1/29'] = 2;
holiday['2012/1/30'] = 5;
holiday['2012/1/31'] = 5;
holiday['2012/2/1'] = 5;
holiday['2012/2/2'] = 5;
holiday['2012/2/3'] = 5;
holiday['2012/2/4'] = 2;
holiday['2012/2/5'] = 2;
holiday['2012/2/6'] = 5;
holiday['2012/2/7'] = 5;
holiday['2012/2/8'] = 5;
holiday['2012/2/9'] = 5;
holiday['2012/2/10'] = 5;
holiday['2012/2/11'] = 3;
holiday['2012/2/12'] = 2;
holiday['2012/2/13'] = 5;
holiday['2012/2/14'] = 5;
holiday['2012/2/15'] = 5;
holiday['2012/2/16'] = 5;
holiday['2012/2/17'] = 5;
holiday['2012/2/18'] = 3;
holiday['2012/2/19'] = 3;
holiday['2012/2/20'] = 4;
holiday['2012/2/21'] = 4;
holiday['2012/2/22'] = 4;
holiday['2012/2/23'] = 4;
holiday['2012/2/24'] = 4;
holiday['2012/2/25'] = 3;
holiday['2012/2/26'] = 3;
holiday['2012/2/27'] = 1;
holiday['2012/2/28'] = 1;
holiday['2012/2/29'] = 1;
holiday['2012/3/1'] = 1;
holiday['2012/3/2'] = 1;
holiday['2012/3/3'] = 3;
holiday['2012/3/4'] = 3;
holiday['2012/3/5'] = 1;
holiday['2012/3/6'] = 1;
holiday['2012/3/7'] = 1;
holiday['2012/3/8'] = 1;
holiday['2012/3/9'] = 1;
holiday['2012/3/10'] = 3;
holiday['2012/3/11'] = 3;
holiday['2012/3/12'] = 3;
holiday['2012/3/13'] = 1;
holiday['2012/3/14'] = 1;
holiday['2012/3/15'] = 1;
holiday['2012/3/16'] = 1;
holiday['2012/3/17'] = 3;
holiday['2012/3/18'] = 3;
holiday['2012/3/19'] = 1;
holiday['2012/3/20'] = 3;
holiday['2012/3/21'] = 1;
holiday['2012/3/22'] = 1;
holiday['2012/3/23'] = 1;
holiday['2012/3/24'] = 3;
holiday['2012/3/25'] = 3;
holiday['2012/3/26'] = 1;
holiday['2012/3/27'] = 1;
holiday['2012/3/28'] = 4;
holiday['2012/3/29'] = 1;
holiday['2012/3/30'] = 1;
holiday['2012/3/31'] = 3;



//設定ここまで--設定後に同フォルダ内のcale_test.htmlで設定者が確認後に、別の人間にも確認してもらうこと。
//cale_test.htmlはカレンダー表示を３ヶ月分に設定してあります。※本物は２ヶ月表示です。

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
var Week     = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
var LastDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
var s_table = ' style="';
    s_table += 'border-collapse:collapse;';
    s_table += 'color:#666666;';
    s_table += 'font-size:9pt;';
    s_table += 'border:none;';
    s_table += 'background-color:#ffffff;';
    s_table += '"';
var s_td_ym = ' style="';
    s_td_ym += 'padding:1px 1px 1px 1px;';
    s_td_ym += 'color:#ffffff;';
    s_td_ym += 'font-size:10pt;';
    s_td_ym += 'font-weight:normal;';
    s_td_ym += 'line-height:100%;';
    s_td_ym += 'text-align:center;';
    s_td_ym += 'border:none;';
    s_td_ym += 'background-color:#000080;';
    s_td_ym += '"';
var s_td_week = ' style="';
    s_td_week += 'padding:1px 1px 1px 1px;';
    s_td_week += 'width:20px;';
    s_td_week += 'color:#000000;';
    s_td_week += 'font-size:8pt;';
    s_td_week += 'font-weight:normal;';
    s_td_week += 'line-height:100%;';
    s_td_week += 'text-align:center;';
    s_td_week += 'border-style:solid;';
    s_td_week += 'border-color:#ffffff;';
    s_td_week += 'border-width:2px;';
    s_td_week += 'background-color:#ffffff;';
    s_td_week += '"';
var s_td_bl = ' style="';
    s_td_bl += 'padding:1px 1px 1px 1px;';
    s_td_bl += 'width:20px;';
    s_td_bl += 'font-size:9pt;';
    s_td_bl += 'font-weight:normal;';
    s_td_bl += 'line-height:100%;';
    s_td_bl += 'text-align:center;';
    s_td_bl += 'border-style:solid;';
    s_td_bl += 'border-color:#ffffff;';
    s_td_bl += 'border-width:2px;';
    s_td_bl += '"';
var s_td_day = ' style="';
    s_td_day += 'padding:1px 1px 1px 1px;';
    s_td_day += 'width:20px;';
    s_td_day += 'color:#ffffff;';
    s_td_day += 'font-size:9pt;';
    s_td_day += 'font-weight:normal;';
    s_td_day += 'line-height:100%;';
    s_td_day += 'text-align:center;';
    s_td_day += 'border-style:solid;';
    s_td_day += 'border-color:#ffffff;';
    s_td_day += 'border-width:2px;';
    s_td_day += '"';
var s_td_day2 = ' style="';
    s_td_day2 += 'padding:1px 1px 1px 1px;';
    s_td_day2 += 'width:20px;';
    s_td_day2 += 'color:#ffffff;';
    s_td_day2 += 'font-size:9pt;';
    s_td_day2 += 'font-weight:normal;';
    s_td_day2 += 'line-height:100%;';
    s_td_day2 += 'text-align:center;';
    s_td_day2 += 'border-style:solid;';
    s_td_day2 += 'border-color:#ffffff;';
    s_td_day2 += 'border-width:2px;';
    s_td_day2 += '"';
var s_td_day3 = ' style="';
    s_td_day3 += 'padding:1px 1px 1px 1px;';
    s_td_day3 += 'width:20px;';
    s_td_day3 += 'color:#ffffff;';
    s_td_day3 += 'font-size:9pt;';
    s_td_day3 += 'font-weight:normal;';
    s_td_day3 += 'line-height:100%;';
    s_td_day3 += 'text-align:center;';
    s_td_day3 += 'border-style:solid;';
    s_td_day3 += 'border-color:#ffffff;';
    s_td_day3 += 'border-width:2px;';
    s_td_day3 += '"';
var s_p = ' style="';
    s_p += 'margin:1px;';
    s_p += 'padding:1px 1px 1px 1px;';
    s_p += 'color:#666666;';
    s_p += 'font-size:9pt;';
    s_p += 'font-weight:normal;';
    s_p += 'line-height:100%;';
    s_p += 'text-align:left;';
    s_p += 'border:none;';
    s_p += '"';
var s_table_lay = ' style="';
    s_table_lay += 'border-collapse:collapse;';
    s_table_lay += 'margin:0px;';
    s_table_lay += 'border:none;';
    s_table_lay += '"';
var s_td_lay = ' style="';
    s_td_lay += 'margin:0px;';
    s_td_lay += 'padding:1px;';
    s_td_lay += 'font-size:8pt;';
    s_td_lay += 'line-height:100%;';
    s_td_lay += 'vertical-align:top;';
    s_td_lay += 'border:none;';
    s_td_lay += '"';

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function cale(how_month,tate_yoko,ko,year,month,view_id){
	if(!view_id){view_id = 'sidebar-right';}
	//今日
	if(!year || !month){
		var today = new Date();
		year  = today.getFullYear();
		month = today.getMonth() + 1;
	}	
	var view = new String();
	
	if(!how_month){how_month = 1;}
	if(!tate_yoko){tate_yoko = 1;}
	if(!ko)       {ko = 1;}
	
	var col = 1;
	view += '<table' + s_table_lay + '>';
	if(tate_yoko == 1 || !tate_yoko){//縦に並べる
		col = 1;
		for(var m=0;m<how_month;m++){
			var next_month_year = year;
			var next_month      = month + m;
			if(next_month > 12){
				next_month = next_month - 12;
				next_month_year++;
			}
			view += '<tr>';
			view += '<td' + s_td_lay + '>';
			view += cale_table(next_month_year,next_month,how_month,tate_yoko,ko);
			view += '</td>';
			view += '</tr>';
		}
	}else{//横に並べる
		for(var m=0;m<how_month;m++){
			if((m+ko) % ko == 0){view += '<tr>';}
			var next_month_year = year;
			var next_month      = month + m;
			if(next_month > 12){
				next_month = next_month - 12;
				next_month_year++;
			}
			view += '<td' + s_td_lay + '>';
			view += cale_table(next_month_year,next_month,how_month,tate_yoko,ko);
			view += '</td>';
			if((m+ko) % ko == ko-1){view += '</tr>';}
		}
		col = ko;
	}
	//
	var mes = '';
	view += '<tr>';
	view += '<td colspan="' + col + '"' + s_td_lay + '>';
	view += '<p' + s_p + '>' + mes + '</p>';
	view += '</td>';
	view += '</tr>';
	view += '</table>';
	
	document.getElementById(view_id).innerHTML = view;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function cale_table(year,month,how_month,tate_yoko,ko){
	//今月の一日をセット
	var MonthDay1 = new Date();
	    MonthDay1.setFullYear(year);
	    MonthDay1.setMonth(month - 1);
	    MonthDay1.setDate(1);
	//最終日
	uruu(year);
	var MonthLastDay = LastDays[month - 1];
	//年と月をセット
	var day = new Date();
	    day.setFullYear(year);
	    day.setMonth(month-1);
	//------------------------------
	//先月
	var p_year  = year;
	var p_month = month - 1;
	if(p_month < 1){
		p_month = 12;
		p_year--;
	}
	//今月
	var today = new Date();
	var t_year  = today.getFullYear();
	var t_month = today.getMonth() + 1;
	//来月
	var n_year  = year;
	var n_month = month + 1;
	if(n_month > 12){
		n_month = n_month - 12;
		n_year++;
	}
	//------------------------------
	var view = new String();
	view += '<table' + s_table + '>';
	view += '<tr>';
	view += '<td colspan="7"' + s_td_ym + '>' + year + '.' + month + '';
	view += '</td>';
	view += '</tr>';
	//曜日
	view += '<tr>';
	for(var w=0;w<7;w++){
		view += '<td' + s_td_week + '>' + Week[w] + '</td>';
	}
	view += '</tr>';
	//一日までの空白
	if(MonthDay1.getDay() > 0){
		view += '<tr>';
		for(var d=0;d<MonthDay1.getDay();d++){
			view += '<td' + s_td_bl + '>&nbsp;</td>';
		}
	}
	var tr = 0;
	for(var d=1;d<=MonthLastDay;d++){
		
		day.setDate(d);
		
		var style = s_td_day;
		     if(day.getDay() == 0){style = s_td_day2;}
		else if(day.getDay() == 6){style = s_td_day3;}
		
//左から順に緑=1=通常開館・黄=2=土日開館・赤=3=完全休館・青=4=休館・黒=5=延長開館・紫=6=変則開館
		var date = d;
if(holiday[year+'/'+month+'/'+d] == 1){date = ' bgcolor="#c1e5a0"><font color="#000000">' + d + '</font><';}
if(holiday[year+'/'+month+'/'+d] == 2){date = ' bgcolor="#ffef99"><font color="#000000">' + d + '</font><';}
if(holiday[year+'/'+month+'/'+d] == 3){date = ' bgcolor="#ffc0cb"><font color="#000000">' + d + '</font><';}
if(holiday[year+'/'+month+'/'+d] == 4){date = ' bgcolor="#99ccff"><font color="#000000">' + d + '</font><';}
if(holiday[year+'/'+month+'/'+d] == 5){date = ' bgcolor="#f5f5f5"><font color="#000000">' + d + '</font><';}
if(holiday[year+'/'+month+'/'+d] == 6){date = ' bgcolor="#FFA07A"><font color="#000000">' + d + '</font><';}
		if(day.getDay() == 0){view += '<tr>';}
		view += '<td' + style + date + '/td>';
		if(day.getDay() == 6){view += '</tr>';tr++;}
	}

	//最終日以降の空白
	if(7-day.getDay()-1 > 0){
		for(var d=0;d<7-day.getDay()-1;d++){
			view += '<td' + s_td_bl + '>&nbsp;</td>';
		}
		view += '</tr>';
		tr++;
	}
	//横に並ぶ形になる時、行数が同じになるように調整
	if((tate_yoko == 2 && ko > 1) || (tate_yoko != 2 && tr < 6)){
		for(var t=0;t<6-tr;t++){
			view += '<tr>';
			for(var w=0;w<7;w++){
				view += '<td' + s_td_bl + '>&nbsp;</td>';
			}
			view += '</tr>';
		}
	}
	//
	view += '</table>';
	return view;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function uruu(year){
	//4の倍数ならうるう年
	//100の倍数ならうるう年でない
	//400の倍数ならうるう年
	//0→28
	//1→29
	var uruu = 28;
	if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
	    uruu = 29;
	}
	//2月の日数をセットしなおす
	LastDays[1] = uruu;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//presented by cakiko

