var bas_holiday;
var inc_holiday;
var exc_holiday;

//
// ページ読み込み時
//
jQuery(document).ready(function(){
	var values;
	var val;
	var i;

	bas_holiday = new Array();
	inc_holiday = new Array();
	exc_holiday = new Array();

	if(jQuery("#base-holiday").val() == undefined) return;

	values = jQuery("#base-holiday").val().split('&');
	for(i=0; i<values.length; i++) {
		val = values[i].split('=');
		bas_holiday[i] = val[1].split(',');
	}

	if(jQuery("#inc-holiday").val().length > 0) {
		values = jQuery("#inc-holiday").val().split('&');
		for(i=0; i<values.length; i++) {
			val = values[i].split('=');
			inc_holiday[val[0]] = val[1].split(',');
		}
	}

	if(jQuery("#exc-holiday").val().length > 0) {
		values = jQuery("#exc-holiday").val().split('&');
		for(i=0; i<values.length; i++) {
			val = values[i].split('=');
			exc_holiday[val[0]] = val[1].split(',');
		}
	}

	create_business_calendar();
});

function create_business_calendar(y, m) {

	var now = new Date();
	var arr;
	var html;
	var mydate;
	var col;
	var firstday;
	var enddate;
	var today;
	var holiday;
	var week = 0;
	var test = "";
	var nxt_y;
	var nxt_m;
	var prv_y;
	var prv_m;

	if(y == undefined) y = now.getFullYear();
	if(m == undefined) m = now.getMonth() + 1;

	arr = y + "-" + m;

	// 翌月、先月を取得
	if(m == 1) {
		nxt_y = y; nxt_m = m + 1; prv_y = y - 1; prv_m = 12;
	} else if(m == 12) {
		nxt_y = y + 1; nxt_m = 1; prv_y = y; prv_m = m - 1;
	} else {
		nxt_y = y; nxt_m = m + 1; prv_y = y; prv_m = m - 1;
	}

	// 本日を取得
	today = new Date();

	// 指定年指定月１日の曜日
	mydate = new Date(y, (m-1), 1);
	firstday = mydate.getDay();

	// 末日を取得
	mydate = new Date(y, m, 0);
	enddate = mydate.getDate();

	// カレンダーの作成
	html = '<table summary="営業日カレンダー" id="isp-calendar-inner" border="0" cellspacing="0" cellpadding="0"><tbody>'
				+ '<tr><td><div class="pointer prv" onclick="create_business_calendar(' + prv_y + ', ' + prv_m + ')">&nbsp;</div></td>'
				+ '<td class="calendar-date-title">' + y + ' 年　' + m + ' 月</td>'
				+ '<td align="right"><div class="pointer nxt" onclick="create_business_calendar(' + nxt_y + ', ' + nxt_m + ')">&nbsp;</div></td></tr>'
				+ '<tr><td colspan="3">'
				+ '<table summary="営業日カレンダー" id="isp-business-calendar" border="0" cellpadding="0" cellspacing="1">'
				+ '<thead><tr><th>日</th><th>月</th><th>火</th><th>水</th><th>木</th><th>金</th><th>土</th></tr></thead>'
				+ '<tbody>';

	// １日になるまで空白のセルを作成
	col = 0;
	if(firstday > 0) {
		html += '<tr valign="middle">';
		while(col < firstday) {
			html += '<td class="space">&nbsp;</td>';
			col++;
		}
	}

	// 1日から順にセルを埋める
	for(var i=1; i <= enddate; i++) {
		// 土曜日
		if(col == 7) {
			html += '</tr>';
			week++;
			col = 0;
		}

		// 日曜日
		if(col == 0) html += '<tr valign="middle">';

		// 休日の確認
		holiday = false;
		if(col > (firstday-1)) {
			if(jQuery.inArray(col+"", bas_holiday[week]) > -1) {
				holiday =true;
			}
		} else {
			if(jQuery.inArray(col+"", bas_holiday[(week-1)]) > -1) {
				holiday =true;
			}
		}

		if(holiday) {
			if(exc_holiday[arr] != undefined) {
				if(jQuery.inArray(i+"", exc_holiday[arr]) > -1) holiday = false;
			}
		} else {
			if(inc_holiday[arr] != undefined) {
				if(jQuery.inArray(i+"", inc_holiday[arr]) > -1) holiday = true;
			}
		}

		if(holiday) {
			html += '<td class="holiday">' + i + '</td>';
		} else {
			html += '<td class="business">' + i + '</td>';
		}
		col++;
	}

	// 末日以降の空白セルを作成
	while((col > 0) && (col < 7)) {
		html += '<td class="space">&nbsp;</td>';
		col++;
	}

	html += '</tr></tbody></table>'
				+ '</td></tr>'
				+ '<tr><td colspan="3"><p class="calendar-information"><span class="isp-holiday">■</span> 休業日</p></td></tr>'
				+ '</tbody></table>';

	jQuery("#isp-calendar-frame").html(html);
}
