//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/*
+------------------------------------------------------+
|【営業日カレンダースクリプト】                        |
|Copyright : 営業日カレンダースクリプトだよ            |
|URL       : http://www.calenderdayo.com/              |
+------------------------------------------------------+
|☆注意事項                                            |
|１．このスクリプトはフリー素材です。                  |
|２．このスクリプトを使用したことによって生じる        |
|    いかなる損害に対して作者は一切の責任を負いません。|
+------------------------------------------------------+
*/
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

var holiday = new Object();

// 設定ここから
// holiday['2010/1/1'] = 1;
// holiday['2010/1/2'] = 1;
// holiday['2010/1/3'] = 1;
// holiday['2010/1/5'] = 2;
// holiday['2010/1/11'] = 1;
// holiday['2010/1/17'] = 1;
// holiday['2010/1/21'] = 2;
// holiday['2010/1/31'] = 1;

//holiday['2010/2/6'] = 2;
//holiday['2010/2/7'] = 0;
//holiday['2010/2/11'] = 1;
//holiday['2010/2/14'] = 1;
//holiday['2010/2/18'] = 2;
//holiday['2010/2/21'] = 0;
//holiday['2010/2/28'] = 1;

//holiday['2010/3/2'] = 2;
//holiday['2010/3/7'] = 0;
//holiday['2010/3/8'] = 2;
//holiday['2010/3/18'] = 2;
//holiday['2010/3/21'] = 1;
//holiday['2010/3/22'] = 1;
//holiday['2010/3/28'] = 1;
//holiday['2010/3/29'] = 2;
//holiday['2010/3/30'] = 2;

//holiday['2010/4/4'] = 0;
//holiday['2010/4/5'] = 2;
//holiday['2010/4/11'] = 1;
//holiday['2010/4/12'] = 2;
//holiday['2010/4/15'] = 2;
//holiday['2010/4/18'] = 0;
//holiday['2010/4/19'] = 2;
//holiday['2010/4/25'] = 1;
//holiday['2010/4/26'] = 2;
//holiday['2010/4/29'] = 1;

//holiday['2010/5/2'] = 1;
//holiday['2010/5/3'] = 1;
//holiday['2010/5/4'] = 1;
//holiday['2010/5/5'] = 1;
//holiday['2010/5/10'] = 2;
//holiday['2010/5/16'] = 1;
//holiday['2010/5/17'] = 2;
//holiday['2010/5/20'] = 2;
//holiday['2010/5/24'] = 2;
//holiday['2010/5/30'] = 2;
//holiday['2010/5/31'] = 2;

holiday['2010/6/1'] = 2;
holiday['2010/6/6'] = 0;
holiday['2010/6/7'] = 2;
holiday['2010/6/13'] = 1;
holiday['2010/6/14'] = 2;
holiday['2010/6/17'] = 2;
holiday['2010/6/20'] = 0;
holiday['2010/6/21'] = 2;
holiday['2010/6/27'] = 1;
holiday['2010/6/28'] = 2;

holiday['2010/7/1'] = 2;
holiday['2010/7/4'] = 0;
holiday['2010/7/5'] = 2;
holiday['2010/7/11'] = 1;
holiday['2010/7/12'] = 2;
holiday['2010/7/15'] = 2;
holiday['2010/7/18'] = 0;
holiday['2010/7/19'] = 1;
holiday['2010/7/25'] = 1;
holiday['2010/7/26'] = 2;

holiday['2010/8/1'] = 1;
holiday['2010/8/2'] = 2;
holiday['2010/8/7'] = 2;
holiday['2010/8/9'] = 2;
holiday['2010/8/13'] = 2;
holiday['2010/8/14'] = 2;
holiday['2010/8/15'] = 1;
holiday['2010/8/16'] = 2;
holiday['2010/8/19'] = 2;
holiday['2010/8/23'] = 2;
holiday['2010/8/29'] = 1;
holiday['2010/8/30'] = 2;
holiday['2010/8/31'] = 2;

holiday['2010/9/6'] = 2;
holiday['2010/9/12'] = 1;
holiday['2010/9/13'] = 2;
holiday['2010/9/16'] = 2;
holiday['2010/9/20'] = 1;
holiday['2010/9/23'] = 1;
holiday['2010/9/26'] = 1;
holiday['2010/9/27'] = 2;
holiday['2010/9/28'] = 2;


// 診療日に変更：0
// 休日の休診：1
// 平日の休診：2

// 2/1・6・8・11・14・15・18・22・28
// 3/1・2・8・15・18・21・22・28・29・30

// 設定ここまで

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
var Week     = new Array('日','月','火','水','木','金','土');
var LastDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
var s_table = '';
    s_table += '';
var s_td_ym = ' class="caption';
    s_td_ym += '"';
var s_td_week = ' class="th';
    s_td_week += '"';
var s_td_bl = ' style="';
    s_td_bl += '"';
var s_td_day = ' style="';
    s_td_day += '"';
var s_td_day2 = ' class="sun';
    s_td_day2 += '"';
var s_td_day3 = ' class="sat';
    s_td_day3 += '"';
var s_td_day4 = ' class="mon';
    s_td_day4 += '"';
var s_td_day5 = ' class="sun2';
    s_td_day5 += '"';

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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;
	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 += cale_table(next_month_year,next_month,how_month,tate_yoko,ko);
		view += '\n';
	}
	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>\n';
	//曜日
	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;
	var sun = 0;
	for(var d=1;d<=MonthLastDay;d++){
		
		day.setDate(d);
		
		var style = s_td_day;
		     if(day.getDay() == 0){
		     	sun++;
		     	if((sun == 2) || (sun == 4)){style = s_td_day5;}
		     	else {style = s_td_day2;}
		     }
			else if(day.getDay() == 6){style = s_td_day3;}
			else if(day.getDay() == 1){style = s_td_day4;}
		
		var date = d;

		if(holiday[year+'/'+month+'/'+d] == 0){
			style = s_td_day;
		}

		if(holiday[year+'/'+month+'/'+d] == 1){
			style = s_td_day2;
		}

		if(holiday[year+'/'+month+'/'+d] == 2){
			style = s_td_day4;
		}

		
		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>\n';
		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;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
