var holiday = new Object();

var teikyu = new Object();



<!--定休日設定ここから-->

teikyu['2008/7/2'] = 1;

teikyu['2009/8/12'] = 1;

teikyu['2009/8/13'] = 1;

teikyu['2009/8/14'] = 1;

<!--定休日設定ここまで-->



<!--休日設定ここから-->

holiday['2009/2/11'] = 1;

holiday['2009/3/20'] = 1;

holiday['2009/4/29'] = 1;

holiday['2009/5/4'] = 1;

holiday['2009/5/5'] = 1;

holiday['2009/5/6'] = 1;

holiday['2009/7/20'] = 1;

holiday['2009/9/20'] = 1;

holiday['2009/9/21'] = 1;

holiday['2009/9/22'] = 1;

holiday['2009/9/23'] = 1;

holiday['2009/10/12'] = 1;

holiday['2009/11/3'] = 1;

holiday['2009/11/23'] = 1;

holiday['2009/12/23'] = 1;

holiday['2009/12/31'] = 1;

holiday['2010/1/1'] = 1;

holiday['2010/1/2'] = 1;

holiday['2010/1/3'] = 1;

holiday['2010/1/4'] = 1;

holiday['2010/1/5'] = 1;

holiday['2010/1/11'] = 1;

holiday['2010/2/11'] = 1;

holiday['2010/3/22'] = 1;

holiday['2010/4/29'] = 1;

holiday['2010/5/3'] = 1;

holiday['2010/5/4'] = 1;

holiday['2010/5/5'] = 1;

holiday['2010/7/19'] = 1;

holiday['2010/9/20'] = 1;

holiday['2010/9/23'] = 1;

holiday['2010/10/11'] = 1;

holiday['2010/11/3'] = 1;

holiday['2010/11/23'] = 1;

holiday['2010/12/23'] = 1;

<!--休日設定ここまで-->



//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

var Week     = new Array('日','月','火','水','木','金','土');

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 += 'margin:3px 2px 3px 2px;';

    s_table += 'color:#666666;';

    s_table += 'font-size:12pt;';

    s_table += 'border-style:solid;';

    s_table += 'border-color:#000000;';

    s_table += 'border-width:1px;';

    s_table += 'background-color:#ffffff;';

    s_table += '"';

var s_td_ym = ' style="';

    s_td_ym += 'padding:3px 1px 0px 1px;';

    s_td_ym += 'color:#ffffff;';

    s_td_ym += 'font-size:10pt;';

    s_td_ym += 'font-weight:600;';

    s_td_ym += 'line-height:150%;';

    s_td_ym += 'text-align:center;';

    s_td_ym += 'vertical-align:bottom;';

    s_td_ym += 'border-style:solid;';

    s_td_ym += 'border-color:#00000;';

    s_td_ym += 'border-width:1px;';

    s_td_ym += 'background-color:#9E0B11;';

    s_td_ym += '"';

var s_td_week = ' style="';

    s_td_week += 'padding:3px 1px 0px 2px;';

    s_td_week += 'width:10px;';

    s_td_week += 'color:#666666;';

    s_td_week += 'font-size:12pt;';

    s_td_week += 'font-weight:normal;';

    s_td_week += 'line-height:100%;';

    s_td_week += 'text-align:center;';

    s_td_week += 'vertical-align:bottom;';

    s_td_week += 'border-style:solid;';

    s_td_week += 'border-color:#000000;';

    s_td_week += 'border-width:1px;';

    s_td_week += 'background-color:#ffffff;';

    s_td_week += '"';

var s_td_bl = ' style="';

    s_td_bl += 'padding:3px 1px 0px 2px;';

    s_td_bl += 'width:10px;';

    s_td_bl += 'color:#666666;';

    s_td_bl += 'font-size:12pt;';

    s_td_bl += 'font-weight:normal;';

    s_td_bl += 'line-height:100%;';

    s_td_bl += 'text-align:center;';

    s_td_bl += 'vertical-align:bottom;';

    s_td_bl += 'border-style:solid;';

    s_td_bl += 'border-color:#000000;';

    s_td_bl += 'border-width:1px;';

    s_td_bl += 'background-color:#ffffff;';

    s_td_bl += '"';

var s_td_day = ' style="';

    s_td_day += 'padding:3px 5px 0px 5px;';

    s_td_day += 'width:10px;';

    s_td_day += 'color:#666666;';

    s_td_day += 'font-size:12pt;';

    s_td_day += 'font-weight:normal;';

    s_td_day += 'line-height:100%;';

    s_td_day += 'text-align:right;';

    s_td_day += 'vertical-align:bottom;';

    s_td_day += 'border-style:solid;';

    s_td_day += 'border-color:#000000;';

    s_td_day += 'border-width:1px;';

    s_td_day += 'background-color:#ffffff;';

    s_td_day += '"';

var s_td_day2 = ' style="';

    s_td_day2 += 'padding:3px 5px 0px 5px;';

    s_td_day2 += 'width:10px;';

    s_td_day2 += 'color:#ffffff;';

    s_td_day2 += 'font-size:12pt;';

    s_td_day2 += 'font-weight:normal;';

    s_td_day2 += 'line-height:100%;';

    s_td_day2 += 'text-align:rigght;';

    s_td_day2 += 'vertical-align:bottom;';

    s_td_day2 += 'border-style:solid;';

    s_td_day2 += 'border-color:#000000;';

    s_td_day2 += 'border-width:1px;';

    s_td_day2 += 'background-color:#ff0000;';

    s_td_day2 += '"';

var s_td_day3 = ' style="';

    s_td_day3 += 'padding:3px 5px 0px 5px;';

    s_td_day3 += 'width:10px;';

    s_td_day3 += 'color:#000099;';

    s_td_day3 += 'font-size:12pt;';

    s_td_day3 += 'font-weight:normal;';

    s_td_day3 += 'line-height:100%;';

    s_td_day3 += 'text-align:right;';

    s_td_day3 += 'vertical-align:bottom;';

    s_td_day3 += 'border-style:solid;';

    s_td_day3 += 'border-color:#000000;';

    s_td_day3 += 'border-width:1px;';

    s_td_day3 += 'background-color:#ebf4ff;';

    s_td_day3 += '"';

var s_p = ' style="';

    s_p += 'margin:1px;';

    s_p += 'padding:3px 1px 0px 1px;';

    s_p += 'color:#666666;';

    s_p += 'font-size:12pt;';

    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:2px;';

    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:12pt;';

    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 = 'cale';}

	//今日

	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 = '<div style="font-size:10pt;"><font color="#ff0000" style="font-weight:600;">土日、祝日、赤字</font>で書かれた日は<br>休業日となっております。</div>';

	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;}

		

		var date = d;

		if(teikyu[year+'/'+month+'/'+d] == 1){date = '<font color="#ff0000" style="font-weight:600;">' + d + '</font>';}

		if(holiday[year+'/'+month+'/'+d] == 1){style = s_td_day2;}



		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;

}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


