//----------------------------------------------------------
// 空室カレンダー表示プログラム
//
// Ability Consultant 2010.08.10
//----------------------------------------------------------

// prototype.jsとの共存
jQuery.noConflict();

var commonInfo = new Object();
var dayInfo = new Array( 7 );
var specialDayInfo = new Array();
var calendarInfo = new Array();
var yproCalendarNum = 0;

//--- 各種初期設定ココから ---

// 在庫情報
// sign1～sign3は、以下の記号を入れると追加情報が表示されます
//  {0} 在庫数
commonInfo[ "sign1" ] = "<br>○<br><br>";		// 在庫がある場合に表示する文字(必須)
commonInfo[ "sign2" ] = "<br>△<br>{0}";		// 在庫が少ない場合に表示する文字(必須)
commonInfo[ "sign3" ] = "<br>満<br><br>";		// 在庫がない場合に表示する文字(必須)
commonInfo[ "sign4" ] = "<br>－<br><br>";		// 設定がない場合に表示する文字(必須)
commonInfo[ "sign5" ] = "<br>－<br><br>";		// 終了した日付の場合に表示する文字(任意：使用しない場合はコメントアウト)

// 特別日(指定した日付の場合は、色を変更できる)

specialDayInfo[ 0 ] = {
	start_date : "2011/8/1",
	end_date : "2011/8/5",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 1 ] = {
	start_date : "2011/8/6",
	end_date : "2011/8/16",
	bgcolor : "#FF9C7C"
};
specialDayInfo[ 2 ] = {
	start_date : "2011/8/17",
	end_date : "2011/8/31",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 3 ] = {
	start_date : "2011/9/1",
	end_date : "2011/9/2",
	bgcolor : "#fff9a0"
};
specialDayInfo[ 4 ] = {
	start_date : "2011/9/3",
	end_date : "2011/9/3",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 5 ] = {
	start_date : "2011/9/4",
	end_date : "2011/9/9",
	bgcolor : "#fff9a0"
};
specialDayInfo[ 6 ] = {
	start_date : "2011/9/10",
	end_date : "2011/9/10",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 7 ] = {
	start_date : "2011/9/17",
	end_date : "2011/9/18",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 8 ] = {
	start_date : "2011/9/19",
	end_date : "2011/9/22",
	bgcolor : "#fff9a0"
};
specialDayInfo[ 9 ] = {
	start_date : "2011/9/23",
	end_date : "2011/9/24",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 10 ] = {
	start_date : "2011/10/1",
	end_date : "2011/10/1",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 11 ] = {
	start_date : "2011/10/8",
	end_date : "2011/10/9",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 12 ] = {
	start_date : "2011/10/15",
	end_date : "2011/10/15",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 13 ] = {
	start_date : "2011/10/22",
	end_date : "2011/10/22",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 14 ] = {
	start_date : "2011/10/29",
	end_date : "2011/10/29",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 15 ] = {
	start_date : "2011/11/5",
	end_date : "2011/11/5",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 16 ] = {
	start_date : "2011/11/12",
	end_date : "2011/11/12",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 17 ] = {
	start_date : "2011/11/19",
	end_date : "2011/11/19",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 18 ] = {
	start_date : "2011/11/26",
	end_date : "2011/11/26",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 19 ] = {
	start_date : "2011/12/3",
	end_date : "2011/12/3",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 20 ] = {
	start_date : "2011/12/10",
	end_date : "2011/12/10",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 21 ] = {
	start_date : "2011/12/17",
	end_date : "2011/12/17",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 22 ] = {
	start_date : "2011/12/23",
	end_date : "2011/12/24",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 23 ] = {
	start_date : "2011/12/25",
	end_date : "2011/12/28",
	bgcolor : "#FFF9A0"
};
specialDayInfo[ 24 ] = {
	start_date : "2011/12/29",
	end_date : "2011/12/30",
	bgcolor : "#FF9C7C"
};
specialDayInfo[ 25 ] = {
	start_date : "2011/12/31",
	end_date : "2012/1/3",
	bgcolor : "#A7A754"
};
specialDayInfo[ 26 ] = {
	start_date : "2012/1/4",
	end_date : "2012/1/6",
	bgcolor : "#FFF9A0"
};
specialDayInfo[ 27 ] = {
	start_date : "2012/1/7",
	end_date : "2012/1/8",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 28 ] = {
	start_date : "2012/1/14",
	end_date : "2012/1/14",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 29 ] = {
	start_date : "2012/1/21",
	end_date : "2012/1/21",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 30 ] = {
	start_date : "2012/1/28",
	end_date : "2012/1/28",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 31 ] = {
	start_date : "2012/2/4",
	end_date : "2012/2/4",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 32 ] = {
	start_date : "2012/2/11",
	end_date : "2012/2/11",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 33 ] = {
	start_date : "2012/2/18",
	end_date : "2012/2/18",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 34 ] = {
	start_date : "2012/2/25",
	end_date : "2012/2/25",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 35 ] = {
	start_date : "2012/3/3",
	end_date : "2012/3/3",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 36 ] = {
	start_date : "2012/3/10",
	end_date : "2012/3/10",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 37 ] = {
	start_date : "2012/3/17",
	end_date : "2012/3/18",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 38 ] = {
	start_date : "2012/3/19",
	end_date : "2012/3/22",
	bgcolor : "#FFF9A0"
};
specialDayInfo[ 39 ] = {
	start_date : "2012/3/23",
	end_date : "2012/3/25",
	bgcolor : "#AED8FF"
};
specialDayInfo[ 40 ] = {
	start_date : "2012/3/26",
	end_date : "2012/3/29",
	bgcolor : "#FFF9A0"
};
specialDayInfo[ 41 ] = {
	start_date : "2012/3/30",
	end_date : "2012/3/31",
	bgcolor : "#AED8FF"
};

// 曜日情報(各曜日に表示する文字を指定)
dayInfo[ 0 ] = "日";
dayInfo[ 1 ] = "月";
dayInfo[ 2 ] = "火";
dayInfo[ 3 ] = "水";
dayInfo[ 4 ] = "木";
dayInfo[ 5 ] = "金";
dayInfo[ 6 ] = "土";


calendarInfo[0] = {
	index : "0",	// calendarInfo[*] の * と同じ値を設定
	id : "12000010",
	kid : "00019",
	room : "all",
	start_date : "2012/2/1",
	end_date : "2012/2/29",
	div : "ypro_stock_calendar1",
	custom : {
		room_format : [	// 指定した部屋IDに対して、指定したURLのリンクを貼る
			{ room_id : "1", room_format : '<a href="http://shibugoe-chikura.com/shisetsu/" target="_blank">{0}</a>' },
			{ room_id : "2", room_format : '<a href="http://shibugoe-chikura.com/shisetsu/" target="_blank">{0}</a>' },
			{ room_id : "3", room_format : '<a href="http://shibugoe-chikura.com/shisetsu/" target="_blank">{0}</a>' }
		],
		head_html : [	// 指定した日付のヘッダ部分に、指定したHTMLタグを出力する
			{ date : '2012/2/3', html : '<a href="http://shibugoe-chikura.com/event/ogataken.html" target="_blank"><img src="http://shibugoe-chikura.com/calendar/img/oogata_icon.gif" border="0"></a>' },
			{ date : '2012/2/5', html : '<a href="http://www.shibugoe.com/mudahoeday/mudaboeday.html" target="_blank"><img src="http://shibugoe-chikura.com/calendar/img/muda.gif" border="0"></a>' },
			{ date : '2012/2/6', html : '<img src="http://shibugoe-chikura.com/calendar/img/friendryday_icon.gif" border="0">' },
			{ date : '2012/2/15', html : '<a href="http://www.shibugoe.com/mudahoeday/mudaboeday.html" target="_blank"><img src="http://shibugoe-chikura.com/calendar/img/muda.gif" border="0"></a>' },
			{ date : '2012/2/16', html : '<img src="http://shibugoe-chikura.com/calendar/img/friendryday_icon.gif" border="0">' },
			{ date : '2012/2/18', html : '<a href="http://shibugoe-chikura.com/event/ogataken.html" target="_blank"><img src="http://shibugoe-chikura.com/calendar/img/oogata_icon.gif" border="0"></a>' },
			{ date : '2012/2/25', html : '<a href="http://www.shibugoe.com/mudahoeday/mudaboeday.html" target="_blank"><img src="http://shibugoe-chikura.com/calendar/img/muda.gif" border="0"></a>' },
			{ date : '2012/2/26', html : '<img src="http://shibugoe-chikura.com/calendar/img/friendryday_icon.gif" border="0">' },
			{ date : '2012/2/29', html : '<a href="http://shibugoe-chikura.com/event/ogataken.html" target="_blank"><img src="http://shibugoe-chikura.com/calendar/img/oogata_icon.gif" border="0"></a>' }
		],
		custom_html : [	// 指定した部屋IDの、指定した日付のセルを、指定したHTMLタグに置き換える。(部屋IDを"all"にすると全日付に対して同様の処理をする
			//{ room_id : "all", date : '2012/2/1', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/2', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/3', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/4', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/5', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/6', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/7', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/8', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/9', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/10', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/11', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/12', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/13', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/14', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/15', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/16', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/17', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/18', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/19', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/20', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/21', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/22', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/23', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/24', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/25', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/26', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/27', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/28', html : '<font color="#0000cc"><br>準<br><br></font>' },
			//{ room_id : "all", date : '2012/2/29', html : '<font color="#0000cc"><br>準<br><br></font>' }
		]
	}
};
calendarInfo[1] = {
	index : "1",	// calendarInfo[*] の * と同じ値を設定
	id : "12000010",
	kid : "00019",
	room : "all",
	start_date : "2012/3/1",
	end_date : "2012/3/31",
	div : "ypro_stock_calendar2",
	custom : {
		room_format : [	// 指定した部屋IDに対して、指定したURLのリンクを貼る
			{ room_id : "1", room_format : '<a href="http://shibugoe-chikura.com/shisetsu/" target="_blank">{0}</a>' },
			{ room_id : "2", room_format : '<a href="http://shibugoe-chikura.com/shisetsu/" target="_blank">{0}</a>' },
			{ room_id : "3", room_format : '<a href="http://shibugoe-chikura.com/shisetsu/" target="_blank">{0}</a>' }
		],
		head_html : [	// 指定した日付のヘッダ部分に、指定したHTMLタグを出力する
			{ date : '2012/3/3', html : '<a href="http://www.shibugoe.com/mudahoeday/mudaboeday.html" target="_blank"><img src="http://shibugoe-chikura.com/calendar/img/muda.gif" border="0"></a>' },
			{ date : '2012/3/4', html : '<img src="http://shibugoe-chikura.com/calendar/img/friendryday_icon.gif" border="0">' },
			{ date : '2012/3/5', html : '<a href="http://shibugoe-chikura.com/event/ogataken.html" target="_blank"><img src="http://shibugoe-chikura.com/calendar/img/oogata_icon.gif" border="0"></a>' },
			{ date : '2012/3/13', html : '<a href="http://www.shibugoe.com/mudahoeday/mudaboeday.html" target="_blank"><img src="http://shibugoe-chikura.com/calendar/img/muda.gif" border="0"></a>' },
			{ date : '2012/3/14', html : '<img src="http://shibugoe-chikura.com/calendar/img/friendryday_icon.gif" border="0">' },
			{ date : '2012/3/17', html : '<a href="http://shibugoe-chikura.com/event/ogataken.html" target="_blank"><img src="http://shibugoe-chikura.com/calendar/img/oogata_icon.gif" border="0"></a>' },
			{ date : '2012/3/23', html : '<a href="http://www.shibugoe.com/mudahoeday/mudaboeday.html" target="_blank"><img src="http://shibugoe-chikura.com/calendar/img/muda.gif" border="0"></a>' },
			{ date : '2012/3/24', html : '<img src="http://shibugoe-chikura.com/calendar/img/friendryday_icon.gif" border="0">' },
			{ date : '2012/3/29', html : '<a href="http://shibugoe-chikura.com/event/ogataken.html" target="_blank"><img src="http://shibugoe-chikura.com/calendar/img/oogata_icon.gif" border="0"></a>' }
		],
		custom_html : [	// 指定した部屋IDの、指定した日付のセルを、指定したHTMLタグに置き換える。(部屋IDを"all"にすると全日付に対して同様の処理をする
			{ room_id : "all", date : '2012/3/1', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/2', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/3', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/4', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/5', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/6', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/7', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/8', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/9', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/10', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/11', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/12', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/13', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/14', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/15', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/16', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/17', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/18', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/19', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/20', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/21', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/22', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/23', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/24', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/25', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/26', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/27', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/28', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/29', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/30', html : '<font color="#0000cc"><br>準<br><br></font>' },
			{ room_id : "all", date : '2012/3/31', html : '<font color="#0000cc"><br>準<br><br></font>' }
		]
	}
};

//--- 各種初期設定ココまで ---

jQuery(function(){

	// 指定したカレンダーの数だけ取得
	for( var ii=0; ii<calendarInfo.length; ii++ ){

		var inputData = "";

		if( calendarInfo[ ii ].index != undefined ){
			inputData += "," + "index=" + calendarInfo[ ii ].index;
		}
		if( calendarInfo[ ii ].id != undefined ){
			inputData += "," + "id=" + calendarInfo[ ii ].id;
		}
		if( calendarInfo[ ii ].kid != undefined ){
			inputData += "," + "kid=" + calendarInfo[ ii ].kid;
		}
		if( calendarInfo[ ii ].start_date != undefined ){
			inputData += "," + "start_date=" + calendarInfo[ ii ].start_date;
		}
		if( calendarInfo[ ii ].end_date != undefined ){
			inputData += "," + "end_date=" + calendarInfo[ ii ].end_date;
		}
		if( calendarInfo[ ii ].div != undefined ){
			inputData += "," + "div=" + calendarInfo[ ii ].div;
		}
		if( inputData.length > 0 ){
			inputData = inputData.substring( 1, inputData.length );
		}

		jQuery.getJSON( "http://www.489pro.com/asp/api/ypro/v2/ypro_stocksearch_api.asp?id=" + calendarInfo[ ii ].id + "&roomId=" + calendarInfo[ ii ].room + "&startDate=" + calendarInfo[ ii ].start_date + "&endDate=" + calendarInfo[ ii ].end_date + "&input_data=" + inputData + "&callback=?", function (){} );

	}

});

/**
 * コールバック関数
 * 予約プロAPIの結果を受け取り、空室カレンダーを表示
 */
function getStockData( data ){

	// カレンダーの数をインクリメント
	yproCalendarNum++;

	// 呼び出し側で引き継いだデータを取得
	var inputDataList = data.input_data.split( "," );
	var inputDataInfoes = new Array();
	for( var ii=0; ii<inputDataList.length; ii++ ){
		var sValueAndKey = inputDataList[ ii ].split( "=" );
		inputDataInfoes[ sValueAndKey[0] ] = sValueAndKey[1];
	}

	// idで指定したノードを取得(無い場合は処理終了)
	var calendarDiv = document.getElementById( inputDataInfoes[ "div" ] );
	if( calendarDiv == undefined || calendarDiv == null ){
		return( false );
	}

	// JSONPデータをindexから取得
	var yproCalendarInfo = calendarInfo[ parseInt( inputDataInfoes[ "index" ] ) ];

	// 祝日を取得する
	var holidayList = getHolidayList( data );

	// 表示する期間を取得する
	var startDate = new Date( inputDataInfoes[ "start_date" ] );
	var endDate = new Date( inputDataInfoes[ "end_date" ] );
	var diffTime = endDate.getTime() - startDate.getTime();
	var diffDay = Math.ceil( diffTime / ( 1000 * 60 * 60 * 24 ) ); 

	var tmpHtml = "";

	//----------------------------------------------------------------------------
	// ヘッダを表示(年月日)
	//----------------------------------------------------------------------------
	tmpHtml += '<table width="710" border="0" cellpadding="0" cellspacing="1" bgcolor="#FF3300" class="font121">';
	tmpHtml += '<tr bgcolor="#FFFFFF">';
	tmpHtml += '<td width="119" height="18" rowspan="3" align="center" valign="middle" class="font111">しぶごえ千倉<br />◆' + startDate.getFullYear() + '年' + ( startDate.getMonth() + 1 ) + '月◆</td>';
	var tmpDate = new Date();
	for( var ii=0; ii<=diffDay; ii++ ){

		tmpDate.setTime( startDate.getTime() + ii * 24 * 3600 * 1000 );
		tmpHtml += '<td width="18" height="18" align="center" valign="middle" class="font121">' + tmpDate.getDate() + '</td>';

	}
	tmpHtml += '</tr>';

	//----------------------------------------------------------------------------
	// ヘッダを表示(曜日)
	//----------------------------------------------------------------------------
	tmpHtml += '<tr bgcolor="#FFFFFF">';
	for( var ii=0; ii<=diffDay; ii++ ){

		tmpDate.setTime( startDate.getTime() + ii * 24 * 3600 * 1000 );

		// クラス名
		var className = "";

		// 日曜日の場合はクラス名を変更する
		if( tmpDate.getDay() == 0 ){
			className = "font_red";
		}

		// 祝日の場合もクラス名を変更する
		var tmpDateStr = tmpDate.getFullYear() + "/" + ( tmpDate.getMonth() + 1 ) + "/" + tmpDate.getDate();
		if( holidayList[ tmpDateStr ] != undefined ){
			className = "font_red";
		}

		tmpHtml += '<td width="18" height="18" align="center" valign="middle" bgcolor="#cccccc" class="' + className + '">' + dayInfo[ tmpDate.getDay() ] + '</td>';

	}
	tmpHtml += '</tr>';

	//----------------------------------------------------------------------------
	// カスタマイズヘッダを表示(HTML)
	//----------------------------------------------------------------------------
	tmpHtml += '<tr bgcolor="#FFFFFF">';
	for( var ii=0; ii<=diffDay; ii++ ){

		var tmpCalendarHtmlStr = "";

		// 現在表示する日付
		tmpDate.setTime( startDate.getTime() + ii * 24 * 3600 * 1000 );

		// 出力したいHTMLがある場合
		if( yproCalendarInfo.custom.head_html != undefined ){
			for( var jj=0; jj<yproCalendarInfo.custom.head_html.length; jj++ ){
				var tmpCalendarHtmlInfo = yproCalendarInfo.custom.head_html[ jj ];
				var tmpCalendarHtmlDate = new Date( tmpCalendarHtmlInfo[ "date" ] );
				if( tmpCalendarHtmlDate.getTime() == tmpDate.getTime() ){
					tmpCalendarHtmlStr = tmpCalendarHtmlInfo[ "html" ];
					break;
				}
			}
		}

		// クラス名
		var className = "";

		tmpHtml += '<td width="18" height="18" align="center" valign="middle" class="' + className + '">' + tmpCalendarHtmlStr + '</td>';

	}
	tmpHtml += '</tr>';

	//----------------------------------------------------------------------------
	// ボディを表示(部屋名を各日付の在庫)
	//----------------------------------------------------------------------------
	for( var ii=0; ii<data.rooms.length; ii++ ){

		// 1部屋分の在庫状況を表示
		var stockInfoes = getStockInfo( inputDataInfoes[ "id" ], inputDataInfoes[ "kid" ], data.rooms[ ii ].room_id, data.rooms[ ii ].aki, parseInt( data.rooms[ ii ].standard_aki_num ), startDate, diffDay );

		// 1部屋分の部屋名と在庫状況を表示
		tmpHtml += '<tr bgcolor="#FFFFFF">';

		// カスタマイズ(部屋名にリンクを追加)
		var tmpRoomId = data.rooms[ ii ].room_id;
		var tmpRoomName = data.rooms[ ii ].room_name;
		var tmpRoomNameDisp = tmpRoomName;
		if( yproCalendarInfo.custom.room_format != undefined ){
			for( var jj=0; jj<yproCalendarInfo.custom.room_format.length; jj++ ){
				var tmpRoomLinkInfo = yproCalendarInfo.custom.room_format[ jj ];
				if( tmpRoomLinkInfo.room_id == tmpRoomId && tmpRoomLinkInfo.room_format != "" ){
					tmpRoomNameDisp = setRoomAddInfo( tmpRoomLinkInfo.room_format, new Array( tmpRoomNameDisp + "" ) );
				}
			}
		}

		// 部屋名を表示
		tmpHtml += '<td width="113" height="30" align="center" valign="middle" bgcolor="#FFFFFF" class="font111">';
		tmpHtml += tmpRoomNameDisp;
		tmpHtml += '</td>';

		// 各日付の在庫状況を表示
		for( var jj=0; jj<=diffDay; jj++ ){

			// 指定した日付の在庫状況を取得し表示
			tmpDate.setTime( startDate.getTime() + jj * 24 * 3600 * 1000 );
			var tmpDateStr = tmpDate.getFullYear() + "/" + ( tmpDate.getMonth() + 1 ) + "/" + tmpDate.getDate();
			var stockInfo = stockInfoes[ tmpDateStr ];

			// 特別日処理
			var tmpBgColor = getCellBgColor( tmpDate );

			// カスタマイズ(カスタマイズしたHTMLを表示)
			var customHtml = getCustomHtml( tmpRoomId, tmpDate, yproCalendarInfo );

			// 背景に合わせてクラス名を変更
			var tmpClassName = "font121";
			if( tmpBgColor == "#6E502F" ){
				tmpClassName = "font12w";
			}

			// カスタマイズなしの場合
			if( customHtml == "" ){

				if( stockInfo[ "yoyaku_link" ] != "" ){
					tmpHtml += '<td width="18" height="30" align="center" valign="middle" bgcolor="' + tmpBgColor + '" class="' + tmpClassName + '"><a href="javascript:void(0);" onclick="openYproPage( \'' + stockInfo[ "yoyaku_link" ] + '\', ' + tmpDate.getFullYear() + ', ' + ( tmpDate.getMonth() + 1 ) + ', ' + tmpDate.getDate() + ', ' +  data.rooms[ ii ].room_id + ' );">' + stockInfo[ "aki_sign" ] + '</a></td>';
				}
				else{
					tmpHtml += '<td width="18" height="30" align="center" valign="middle" bgcolor="' + tmpBgColor + '" class="' + tmpClassName + '">' + stockInfo[ "aki_sign" ] + '</td>';
				}

			}
			// カスタマイズありの場合
			else{
				tmpHtml += '<td width="18" height="30" align="center" valign="middle" bgcolor="' + tmpBgColor + '" class="' + tmpClassName + '">' + customHtml + '</td>';
			}

		}

		tmpHtml += '</tr>';

	}
	tmpHtml += '</table>';

	// formタグは1件目のみ表示
	if( yproCalendarNum <= 1 ){
		tmpHtml += '<form name="ypro_stock_form" action="" method="post" style="margin-top:0px; margin-bottom:0px">';
		tmpHtml += '<input type="hidden" name="obj_year" value="">';
		tmpHtml += '<input type="hidden" name="obj_month" value="">';
		tmpHtml += '<input type="hidden" name="obj_day" value="">';
		tmpHtml += '<input type="hidden" name="obj_room_id" value="">';
		tmpHtml += '</form>';
	}

	// idで指定したノードに空室カレンダーを表示
	calendarDiv.innerHTML = tmpHtml;

}

/**
 * 祝日情報を取得する
 */
function getHolidayList( tmpData ){

	var holidayInfo = new Object();

	for( var ii=0; ii<tmpData.rooms.length; ii++ ){

		var tmpRoomData = tmpData.rooms[ ii ];

		for( var jj=0; jj<tmpRoomData.aki.length; jj++ ){

			var tmpAkiData = tmpRoomData.aki[ jj ];
			if( tmpAkiData.holiday_f == "1" ){
				holidayInfo[ tmpAkiData.aki_date ] = "1";
			}

		}

	}

	return( holidayInfo );

}

/**
 * 指定した期間の在庫状況を連想配列にまとめる
 */
function getStockInfo( Id, kid, roomId, akiInfoes, standardAkiNum, startDate, diffDay ){

	/// 戻り値
	var returnInfo = new Object();

	// 在庫情報を戻り値に詰める
	for( var ii=0; ii<akiInfoes.length; ii++ ){

		if( akiInfoes[ ii ] != undefined ){

			// 日付
			var akiDate = akiInfoes[ ii ].aki_date;

			// 在庫数
			var akiNum  = parseInt( akiInfoes[ ii ].aki_num );

			// 在庫状況を示す記号
			var akiSign = "";

			// 指定した部屋の予約リンク
			var yoyakuLink = "";

			if( akiNum > standardAkiNum ){
				akiSign = setAkiAddInfo( commonInfo[ "sign1" ], new Array( akiNum + "" ) );
				yoyakuLink = "http://www.489pro.com/asp/489/menu.asp?id=" + Id + "&ty=lim,ser&room=" + roomId + "&list=YES&liop=1&kid=" + kid;
			}
			else if( 0 < akiNum && akiNum <= standardAkiNum ){
				akiSign = setAkiAddInfo( commonInfo[ "sign2" ], new Array( akiNum + "" ) );
				yoyakuLink = "http://www.489pro.com/asp/489/menu.asp?id=" + Id + "&ty=lim,ser&room=" + roomId + "&list=YES&liop=1&kid=" + kid;
			}
			else{
				akiSign = setAkiAddInfo( commonInfo[ "sign3" ], new Array( akiNum + "" ) );
			}

			// すでに終了した日付の場合
			if( commonInfo[ "sign5" ] != undefined ){
				var akiDateObj = new Date( akiDate );
				var nowDate = new Date();
				nowDate = new Date( nowDate.getFullYear() + "/" + ( nowDate.getMonth() + 1 ) + "/" + nowDate.getDate() );
				if( akiDateObj.getTime() < nowDate.getTime() ){
					akiSign = commonInfo[ "sign5" ];
					yoyakuLink = "";
				}
			}

			returnInfo[ akiDate ] = new Object();
			returnInfo[ akiDate ][ "aki_sign" ] = akiSign;
			returnInfo[ akiDate ][ "yoyaku_link" ] = yoyakuLink;


		}

	}

	// 各日付について在庫情報が格納されているかチェックし
	// 格納されていない場合は、設定なしとする
	var tmpDate = new Date();
	for( var ii=0; ii<=diffDay; ii++ ){

		tmpDate.setTime( startDate.getTime() + ii * 24 * 3600 * 1000 );
		var tmpDateStr = tmpDate.getFullYear() + "/" + ( tmpDate.getMonth() + 1 ) + "/" + tmpDate.getDate();
		if( returnInfo[ tmpDateStr ] == undefined ){

			returnInfo[ tmpDateStr ] = new Object();
			returnInfo[ tmpDateStr ][ "aki_sign" ] = commonInfo[ "sign4" ];
			returnInfo[ tmpDateStr ][ "yoyaku_link" ] = "";

		}

	}

	return( returnInfo );

}

/**
 * 指定した日付の背景色を取得する
 */
function getCellBgColor( tmpDate ){

	var returnBgColor = "#FFFFFF";

	// 特別日の数だけ検索する
	for( var ii=0; ii<specialDayInfo.length; ii++ ){

		var tmpSpecialDayInfo = specialDayInfo[ ii ];
		var tmpStartDate = new Date( tmpSpecialDayInfo[ "start_date" ] );
		var tmpEndDate = new Date( tmpSpecialDayInfo[ "end_date" ] );
		var tmpBgColor = tmpSpecialDayInfo[ "bgcolor" ];

		if( tmpStartDate.getTime() <= tmpDate.getTime() && tmpDate.getTime() <= tmpEndDate.getTime() ){
			returnBgColor = tmpBgColor;
		}

	}

	return( returnBgColor );

}

/**
 * 指定した部屋IDの指定した日付に対して
 * カスタマイズHTMLがある場合は、そのHTMLを取得する
 */
function getCustomHtml( tmpRoomId, tmpDate, yproCalendarInfo ){

	var tmpReturnHtml = "";

	// カスタマイズHTMLがある場合
	if( yproCalendarInfo.custom.custom_html != undefined ){

		// カスタマイズHTMLの数だけループしてチェック
		for( var ii=0; ii<yproCalendarInfo.custom.custom_html.length; ii++ ){

			// ii個目のカスタマイズHTML情報
			var tmpCustomHtmlInfo = yproCalendarInfo.custom.custom_html[ ii ];
			var tmpHtmlRoomId = tmpCustomHtmlInfo[ "room_id" ];
			var tmpHtmlDate = new Date( tmpCustomHtmlInfo[ "date" ] );
			var tmpHtmlHtml = tmpCustomHtmlInfo[ "html" ];

			// 指定した部屋IDか"all"の場合で、指定した日付の場合は
			// カスタマイズHTMLを返す
			if( ( tmpRoomId == tmpHtmlRoomId || tmpHtmlRoomId == "all" ) && tmpDate.getTime() == tmpHtmlDate.getTime() ){
				tmpReturnHtml = tmpHtmlHtml;
				break;
			}

		}

	}

	return( tmpReturnHtml );

}

/**
 * 在庫情報に追加情報を設定する
 */
function setAkiAddInfo( sAkiInfoStr, arrAkiAddInfo ){

	var sReturnStr = "";

	for( var ii=0; ii<arrAkiAddInfo.length; ii++ ){
		sReturnStr = sAkiInfoStr.replace( "{" + ii + "}", arrAkiAddInfo[ ii ] );
	}

	return( sReturnStr );

}

/**
 * 部屋情報に追加情報を設定する
 */
function setRoomAddInfo( sRoomInfoStr, arrRoomAddInfo ){

	var sReturnStr = "";

	for( var ii=0; ii<arrRoomAddInfo.length; ii++ ){
		sReturnStr = sRoomInfoStr.replace( "{" + ii + "}", arrRoomAddInfo[ ii ] );
	}

	return( sReturnStr );

}

/**
 * 予約プロの検索ページを表示する
 */
function openYproPage( sAction, sYear, sMonth, sDay, sRoom ){

	document.ypro_stock_form.action = sAction;

	document.ypro_stock_form.obj_year.value = sYear;
	document.ypro_stock_form.obj_month.value = sMonth;
	document.ypro_stock_form.obj_day.value = sDay;
	document.ypro_stock_form.obj_room_id.value = sRoom;

	document.ypro_stock_form.submit();

}
