var domainName = location.hostname;

var dayNameList = new Array( new Array( '日', '月', '火', '水', '木', '金', '土'),
                             new Array( 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'),
                             new Array( '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '日' ),
                             new Array( '星期一','星期二','星期三','星期四','星期五','星期六','日期' ),
                             new Array( '일','월','화','수','목','금','토' ),
                             new Array( '日', '月', '火', '水', '木', '金', '土') );

var stockSign = new Array( new Array( '○', '△', '×', '-', '<span style="font-size:90%;">準備中</span>', '<span style="font-size:90%;">要問合</span>' ),
                           new Array( 'A', 'FA', 'NA', 'NA', 'Inquiry', '' ),
                           new Array( '○', '△', '×', '-', '<span style="font-size:90%;">準備中</span>', '<span style="font-size:90%;">諮詢</span>' ),
                           new Array( '○', '△', '×', '-', '<span style="font-size:90%;">准备中</span>', '<span style="font-size:90%;">咨询</span>' ),
                           new Array( '○', '△', '×', '-', '<span style="font-size:90%;">준비중</span>', '<span style="font-size:90%;">문의</span>' ),
                           new Array( '○', '△', '×', '-', '<span style="font-size:90%;">preparaciones</span>', '<span style="font-size:90%;">Una pregunta</span>' ) );
                           
var tableItem = new Array( new Array( '部屋タイプ', 'プラン', '前の期間', '後の期間' ),
                           new Array( 'Room', 'Plan', 'Prev.', 'Next' ),
                           new Array( '房間', '專案', '前', '以後' ),
                           new Array( '房间', '套餐', '前', '以后' ),
                           new Array( '방', '패키지', '앞', '나중' ),
                           new Array( 'Un cuarto', 'Un plan', 'Un período anterior', 'Un período más tarde' ) );

var planCloseDay = new Array( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 30, 31, 40, 45, 60, 90, 120 );

var suffixWord = new Array( "", "_eng", "_cht", "_chs", "_kor", "_spa" );

var lanValue = new Array( "JPN", "ENG", "CHT", "CHS", "KOR", "SPA" );

var arrMessageList = new Array( new Array( '予約をされる方は、下記カレンダー内の予約可能日時の記号・数字を押してお進みください。',
                                           '※上記の表示は、空室検索の照会時点の状況ですので、予約時にお取りできない場合もございます。' ),
                                new Array( 'Please click the link on the day when it can reserve in the calendar.',
                                           '' ),
                                new Array( '預約的人，請推下列日曆內的日期和時間的記號·數字。',
                                           '' ),
                                new Array( '预约的人，请推下列日历内的日期和时间的记号·数字。',
                                           '' ),
                                new Array( '예약을 하는 사람은, 아래 캘린더내의 일시의 기호·숫자를 무릅써 주십시오. ',
                                           '' ),
                                new Array( 'Cuando hago las reservaciones, empuje la fecha y tiempo en el calendario siguiente.',
                                           '' ) );

var planDetailQuery = "";

var childType1 = "";
var childType2 = "";
var childType3 = "";
var childType4 = "";
var childType5 = "";


var languageNo = 1;

var kaiinFlag = "0"

var memberOnlyFlg = "0";
var magazineOnlyFlg = "0";
var tyParam  = "";
var lmgParam = "";
var prvParam = "";

var yproDV = 1;

/**
 * yado_id 施設ID
 * room_id 部屋ID
 * plan_id プランID
 * group_id グループID
 * start_date_str 検索開始日
 * end_date_str 検索終了日
 * input_data 入力データ(コールバック関数にそのまま渡される)
 * plan_detail_query プラン詳細ページに設定するクエリ
 */
function initStockCalendar( yado_id, room_id, plan_id, group_id, start_date_str, end_date_str, input_data, plan_detail_query,child_Type1,child_Type2,child_Type3,child_Type4,child_Type5,yoyaku_root,airport_flg,airport_going,airport_return){

	// 小児料金の設定を取得する
	childType1 = child_Type1;
	childType2 = child_Type2;
	childType3 = child_Type3;
	childType4 = child_Type4;
	childType5 = child_Type5;

	// プラン詳細ページに設定するクエリを取得する
	planDetailQuery = plan_detail_query;

	// クエリ文字列
	var query = ""

	// クエリデータ
	var queryArray = new Array( new Array( yado_id, "id" ),
	                            new Array( room_id, "roomId" ),
	                            new Array( plan_id, "planId" ),
	                            new Array( group_id, "groupId" ),
	                            new Array( start_date_str, "startDate" ),
	                            new Array( end_date_str, "endDate" ),
	                            new Array( input_data, "input_data" ) );

	// クエリ文字列を生成する(クエリデータがある場合に限り設定)
	for( var ii=0; ii<queryArray.length; ii++ ){

		if( queryArray[ ii ][ 0 ] != undefined && queryArray[ ii ][ 0 ] != null ){

			if( query == "" ){
				query = queryArray[ ii ][ 1 ] + "=" + queryArray[ ii ][ 0 ];
			}
			else{
				query = query + "&" + queryArray[ ii ][ 1 ] + "=" + queryArray[ ii ][ 0 ];
			}

		}

	}

	// 入力データを取得
	var inputData = input_data;
	var inputDataList = inputData.split( "%2C" );

	// 会員機能
	if( inputDataList[ 14 ] != undefined ){
		memberOnlyFlgInfo = inputDataList[ 14 ].split( "=" );
		memberOnlyFlg = memberOnlyFlgInfo[ 1 ];
		if( memberOnlyFlg != undefined && memberOnlyFlg.length <= 0 ){
			memberOnlyFlg = "0";
		}
	}

	// メルマガ限定
	if( inputDataList[ 16 ] != undefined ){
		magazineOnlyFlgInfo = inputDataList[ 16 ].split( "=" );
		magazineOnlyFlg = magazineOnlyFlgInfo[ 1 ];
		if( magazineOnlyFlg != undefined && magazineOnlyFlg.length <= 0 ){
			magazineOnlyFlg = "0";
		}
	}

	// ty
	if( inputDataList[ 17 ] != undefined ){
		tyParamInfo = inputDataList[ 17 ].split( "=" );
		tyParam = tyParamInfo[ 1 ];
		if( tyParam != undefined && tyParam.length <= 0 ){
			tyParam = "";
		}
	}

	// lmg
	if( inputDataList[ 18 ] != undefined ){
		lmgParamInfo = inputDataList[ 18 ].split( "=" );
		lmgParam = lmgParamInfo[ 1 ];
		if( lmgParam != undefined && lmgParam.length <= 0 ){
			lmgParam = "";
		}
	}

	// プレビュー
	if( inputDataList[ 19 ] != undefined ){
		prvParamInfo = inputDataList[ 19 ].split( "=" );
		prvParam = prvParamInfo[ 1 ];
		if( prvParam != undefined && prvParam.length <= 0 ){
			prvParam = "";
		}
	}

	// 予約プロAPIに接続
	if(domainName == "rsv.longinghouse.jp"){
		var url = "http://rsv.longinghouse.jp/asp/api/ypro/v2/ypro_stocksearch_api.asp?" + query + "&mo=" + memberOnlyFlg + "&meo=" + magazineOnlyFlg + "&yr=" + yoyaku_root + "&ap=" + airport_flg + "&apg=" + airport_going + "&apr=" + airport_return + "&prv=" + prvParam + "&callback=?";
	}else{
		var url = "http://www.489pro.com/asp/api/ypro/v2/ypro_stocksearch_api.asp?" + query + "&mo=" + memberOnlyFlg + "&meo=" + magazineOnlyFlg + "&yr=" + yoyaku_root + "&ap=" + airport_flg + "&apg=" + airport_going + "&apr=" + airport_return + "&prv=" + prvParam + "&callback=?";
	}

	$.getJSON( url, function (){} );

}

/**
 * url 予約プロAPIへのURL
 * formName フォーム名
 */
function prevNextStockCalendar( url, formName ){

	var div = document.getElementById( formName );
	div.innerHTML = '<center><img src="./images/loading.gif"/></center>';

	$.getJSON( url, function (){} );

}

/**
 * url 予約プロAPIへのURL
 * formName フォーム名
 */
function otherUserStockCalendar( url, formName ){

	var formObj = document.getElementsByName( formName + "_form" ).item( 0 );
	var userNumObj = formObj.user_num;

	url = url.replace( "user_num=", "user_num=" + userNumObj.value );

	var div = document.getElementById( formName );
	div.innerHTML = '<center><img src="./images/loading.gif"/></center>';

	$.getJSON( url, function (){} );

}


/**
 * コールバック関数
 * 予約プロAPIの結果を受け取り、空室カレンダーを表示
 */
function getStockData( data ){

	// 表示タイプを変更
	if( data.yado_id == "17000006" ||
	    data.yado_id == "17000008" ||
	    data.yado_id == "17000009" ){
//		yproDV = 2;
	}

	// グループに関するデータを取得
	var sGroupPlanList = data.group_plan_list;
	var arrGroupPlanList = sGroupPlanList.split( "," );
	var arrPlanHTMLList = new Array();
	for( var ii=0; ii<arrGroupPlanList.length; ii++ ){
		var sTmpPlan = arrGroupPlanList[ ii ].replace( /\s/gi, "" );
		arrGroupPlanList[ ii ] = sTmpPlan;
		if( sTmpPlan != undefined && sTmpPlan.length > 0 ){
			arrPlanHTMLList[ sTmpPlan ] = "";
		}
	}

	// 入力データを取得
	var inputData = data.input_data;
	var inputDataList = inputData.split( "," );

	// 取得できた期間(日数)を取得する
	var dayNum = 0;
	var maxDayNumRoomIndex = 0;
	for( var ii=0; ii<data.rooms.length; ii++ ){
		if( data.rooms[ ii ].aki.length > dayNum ){
			dayNum = data.rooms[ ii ].aki.length;
			maxDayNumRoomIndex = ii;
		}
	}

	// 入力データから選択された部屋とプランを取得する

	// 選択された部屋
	var selectRoomInfo;
	var selectRoomId = 0;		// 選択された部屋ID
	if( inputDataList[ 3 ] != undefined ){
		selectRoomInfo = inputDataList[ 3 ].split( "=" );
		selectRoomId = selectRoomInfo[ 1 ];
		if( selectRoomId != undefined && selectRoomId.length <= 0 ){
			selectRoomId = 0;
		}
		else{
			selectRoomId = parseInt( selectRoomId );
		}
	}

	// 選択された部屋がデータ上の何番目にあるか、インデックスを取得する
	var selectRoomIndex = 0;	// 選択された部屋のインデックス
	for( var ii=0; ii<data.rooms.length; ii++ ){
		if( selectRoomId == parseInt( data.rooms[ ii ].room_id ) ){
			selectRoomIndex = ii;
		}
	}

	// 選択されたプラン
	var selectPlanInfo;
	var selectPlanId = 0;		// 選択されたプランID
	if( inputDataList[ 4 ] != undefined ){
		selectPlanInfo = inputDataList[ 4 ].split( "=" );
		selectPlanId = selectPlanInfo[ 1 ];
		if( selectPlanId != undefined && selectPlanId.length <= 0 ){
			selectPlanId = 0;
		}
		else{
			selectPlanId = parseInt( selectPlanId );
		}
	}

	// 選択された利用人数
	var selectUserInfo;
	var selectUserNum = 1;	// 選択された利用人数
	if( inputDataList[ 5 ] != undefined ){
		selectUserInfo = inputDataList[ 5 ].split( "=" );
		selectUserNum = selectUserInfo[ 1 ];
		if( selectUserNum != undefined && selectUserNum.length <= 0 ){
			selectUserNum = 1;
		}
		else{
			selectUserNum = parseInt( selectUserNum );
		}
	}
	var tmpSelectUserNum = selectUserNum;	// 選択された利用人数(一時退避用)

	// 初期表示フラグ
	var initFlagInfo;
	var initFlag = false;	// true:初期表示、false:初期表示でない
	if( inputDataList[ 6 ] != undefined ){
		initFlagInfo = inputDataList[ 6 ].split( "=" );
		var initFlagStr = initFlagInfo[ 1 ];
		if( initFlagStr != undefined && initFlagStr.length >= 0 && initFlagStr == "1" ){
			initFlag = true;
		}
		else{
			initFlag = false;
		}
	}

	// 初期表示フラグがtrueの場合はデフォルトの利用人数を設定する
	if( initFlag == true ){

		// まず期間内の料金データから、料金のある人数を探す
		selectUserNum = getDefaultUserNum( data, selectUserNum );

			// 期間内の料金データから、料金のある人数が探せなかった場合
		if( selectUserNum < 0 ){

			// プラン設定から部屋人数を探す
			var tmpSearchFlag = false;
			var activeUserNumList = getActiveUserNumList( data );
			for( var ii=tmpSelectUserNum - 1; ii<=activeUserNumList.length; ii++ ){
				if( activeUserNumList[ ii ] == true ){
					selectUserNum = ii + 1;
					tmpSearchFlag = true;
					break;
				}
			}
			if( tmpSearchFlag == false ){

				for( var ii=0; ii<(tmpSelectUserNum - 1); ii++ ){
					if( activeUserNumList[ ii ] == true ){
						selectUserNum = ii + 1;
						tmpSearchFlag = true;
						break;
					}
				}

			}

		}

	}

	// 空室カレンダー表示項目（部屋名）
	var dispCalRoomInfo;
	var dispCalRoom = "1";	// 0:表示しない 1:表示する
	if( inputDataList[ 7 ] != undefined ){
		dispCalRoomInfo = inputDataList[ 7 ].split( "=" );
		dispCalRoom = dispCalRoomInfo[ 1 ];
		if( dispCalRoom == undefined ){
			dispCalRoom = "1";
		}
	}

	// 空室カレンダー表示項目（プラン名）
	var dispCalPlanInfo;
	var dispCalPlan = "1";	// 0:表示しない 1:表示する
	if( inputDataList[ 8 ] != undefined ){
		dispCalPlanInfo = inputDataList[ 8 ].split( "=" );
		dispCalPlan = dispCalPlanInfo[ 1 ];
		if( dispCalPlan == undefined ){
			dispCalPlan = "1";
		}
	}

	// 空室カレンダー表示項目（プラン詳細ページへのボタン）
	var dispCalPlanBtnInfo;
	var dispCalPlanBtn = "0";	// 0:表示しない 1:表示する
	if( inputDataList[ 9 ] != undefined ){
		dispCalPlanBtnInfo = inputDataList[ 9 ].split( "=" );
		dispCalPlanBtn = dispCalPlanBtnInfo[ 1 ];
		if( dispCalPlanBtn == undefined ){
			dispCalPlanBtn = "0";
		}
	}

	// 空室カレンダー表示項目の数に応じて、テーブルのcolspan属性の値を変える
	var nColspanNum = 0;
	if( dispCalRoom == "1" ){
		nColspanNum = nColspanNum + 1;
	}
	if( dispCalPlan == "1" ){
		nColspanNum = nColspanNum + 1;
	}
	if( dispCalPlanBtn == "1" ){
		nColspanNum = nColspanNum + 1;
	}

	// 初期表示したプランの数
	var initPlanNumInfo;
	var initPlanNum = 0;		// 初期表示したプランの数
	if( inputDataList[ 10 ] != undefined ){
		initPlanNumInfo = inputDataList[ 10 ].split( "=" );
		initPlanNum = initPlanNumInfo[ 1 ];
		if( initPlanNum != undefined && initPlanNum.length <= 0 ){
			initPlanNum = 0;
		}
		else{
			initPlanNum = parseInt( initPlanNum );
		}
	}

	// 組合ID
	var kumiInfo;
	var kumiId = "";		// 組合ID
	if( inputDataList[ 11 ] != undefined ){
		kumiInfo = inputDataList[ 11 ].split( "=" );
		kumiId = kumiInfo[ 1 ];
		if( kumiId != undefined && kumiId.length <= 0 ){
			kumiId = "";
		}
	}

	// 言語番号
	var lanInfo;
//	var lanNo = "1";		// 言語番号
	if( inputDataList[ 12 ] != undefined ){
		lanInfo = inputDataList[ 12 ].split( "=" );
		languageNo = lanInfo[ 1 ];
		if( languageNo != undefined && languageNo.length <= 0 ){
			languageNo = "1";
		}
	}
	languageNo = parseInt( languageNo );
	if( languageNo == 1 ){
		languageNo = 1
	}else if( languageNo == 2 ){
		languageNo = 2
	}else if( languageNo == 4 ){
		languageNo = 3
	}else if( languageNo == 8 ){
		languageNo = 4
	}else if( languageNo == 16 ){
		languageNo = 5
	}else if( languageNo == 32 ){
		languageNo = 6
	}else{
		languageNo = 1
	}

	// 会員機能
	var kaiinFlagInfo;
//	var kaiinFlag = "0";		// 会員機能
	if( inputDataList[ 13 ] != undefined ){
		kaiinFlagInfo = inputDataList[ 13 ].split( "=" );
		kaiinFlag = kaiinFlagInfo[ 1 ];
		if( kaiinFlag != undefined && kaiinFlag.length <= 0 ){
			kaiinFlag = "0";
		}
	}
	
	// url_id
	var UrlIdInfo;
	if( inputDataList[ 15 ] != undefined ){
		UrlIdInfo = inputDataList[ 15 ].split( "=" );
		UrlId = UrlIdInfo[ 1 ];
		if( UrlId != undefined && UrlId.length <= 0 ){
			UrlId = "";
		}
	}

	//--------------------------------------------------------
	// テーブルを作成するときの行数とプランデータを求める
	//--------------------------------------------------------

	// テーブルに表示する部屋の数を取得する
	var dispRoomNum = data.rooms.length;

	// テーブルに表示するプランの数を取得する
	// 部屋が選択されていない → 1つ目の部屋に含まれるプラン情報と、プラン数
	// 部屋が選択されている   → 選択された部屋に含まれるプラン情報と、プラン数
	var dispPlanData;
	if( selectRoomId <= 0 ){
		dispPlanData = data.rooms[ 0 ].plans;
	}
	else{

		for( var ii=0; ii<data.rooms.length; ii++ ){
			if( selectRoomId == parseInt( data.rooms[ ii ].room_id ) ){
				dispPlanData = data.rooms[ ii ].plans;
			}
		}

	}

	// テーブルの表示終了年月日
	var endDateInfo = inputDataList[ 2 ].split( "=" )[ 1 ].split( "/" );
	var endDate = new Date( parseInt( endDateInfo[ 0 ] ), parseInt( endDateInfo[ 1 ] ) - 1, parseInt( endDateInfo[ 2 ] ) );

	// 以下の処理をする
	// ・テーブルの行数を求める([算出方法]→全部屋に含まれる全プランの数)
	// ・すべてのプランで期間が終了しているか求める
	// ・すべてのプランが日帰りプランか否かを求める
	var tableRowNum = 0;
	var bPlanFinished = true;
	var bDayTripFlag  = true;
	for( var ii=0; ii<data.rooms.length; ii++ ){

		tableRowNum += data.rooms[ ii ].plans.length;

		for( var jj=0; jj<data.rooms[ ii ].plans.length; jj++ ){

//			var arrPlanStartDate = data.rooms[ ii ].plans[ jj ].start_date.split( "/", 3 );		// プラン開始年月日
//			var tmpPlanStartDate = new Date( parseInt( arrPlanStartDate[ 0 ] ), parseInt( arrPlanStartDate[ 1 ] ) - 1, parseInt( arrPlanStartDate[ 2 ] ) );
			var arrPlanEndDate = data.rooms[ ii ].plans[ jj ].end_date.split( "/", 3 );				// プラン終了年月日
			var tmpPlanEndDate = new Date( parseInt( arrPlanEndDate[ 0 ] ), parseInt( arrPlanEndDate[ 1 ] ) - 1, parseInt( arrPlanEndDate[ 2 ] ) );
//alert( tmpPlanEndDate );
			// テーブルに表示している期間よりもプラン終了年月日が後の場合
			if( endDate.getTime() < tmpPlanEndDate.getTime() ){
				bPlanFinished = false;
			}

			// 日帰りプラン以外のプランが設定されている場合
			var tmpPlanType = data.rooms[ ii ].plans[ jj ].plan_type;
			if( tmpPlanType != "3" ){
					bDayTripFlag = false;
			}

		}

	}

//alert("インデックス" + selectRoomIndex + "のプランを表示" );
	// プルダウン(1室あたりの人数)の選択属性を作成
	var userNumSelectedList = new Array();
	for( var ii=0; ii<10; ii++ ){
		userNumSelectedList.push( "" );
		if( selectUserNum == ( ii + 1 ) ){
			userNumSelectedList[ ii ] = " selected=\"selected\"";
		}
	
	}
//alert( selectUserNum );
	// 出力するHTML
	var tmpHTML = "";

	// 入力データから出力先のDIVを取得する
	var divIdInfo = inputDataList[ 0 ].split( "=" );
	var div = document.getElementById( divIdInfo[ 1 ] );

	// 1室あたりの人数
	// 前の期間・後の期間の表示

	// 今日の日付
	var nowDate = new Date();	// 今日の日付
	nowDate = new Date( nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate() );

	// テーブルの表示開始年月日
	var startDateInfo = inputDataList[ 1 ].split( "=" )[ 1 ].split( "/" );
	var startDate = new Date( parseInt( startDateInfo[ 0 ] ), parseInt( startDateInfo[ 1 ] ) - 1, parseInt( startDateInfo[ 2 ] ) );

	// 前後の期間表示リンクを作成する
	var prevLink = getLink( data, divIdInfo[ 1 ], startDate, selectRoomId, selectPlanId, selectUserNum, dispCalRoom, dispCalPlan, dispCalPlanBtn, initPlanNum, kumiId, -1 );	// 前の期間を表示するリンク
	var nowLink  = getLink( data, divIdInfo[ 1 ], startDate, selectRoomId, selectPlanId, "", dispCalRoom, dispCalPlan, dispCalPlanBtn, initPlanNum, kumiId, 0 );							// 今の期間を表示するリンク
	var nextLink = getLink( data, divIdInfo[ 1 ], startDate, selectRoomId, selectPlanId, selectUserNum, dispCalRoom, dispCalPlan, dispCalPlanBtn, initPlanNum, kumiId, 1 );		// 後の期間を表示するリンク

	// 有効な部屋人数を取得する
	var activeUserNumList = getActiveUserNumList( data );

	if (yproDV == 1) {

	    // 鐘山苑対応
	    if (data.yado_id == "19000023") {
	        tmpHTML = tmpHTML + '';
	        tmpHTML = tmpHTML + '<p>' + arrMessageList[languageNo - 1][0];
	        tmpHTML = tmpHTML + '先の予定でご検討される場合は、部屋タイプを選択してください。月間カレンダーから検索頂けます。</p>';
	        tmpHTML = tmpHTML + '';
	    } else {
	        tmpHTML = tmpHTML + '';
	        tmpHTML = tmpHTML + '<p>' + arrMessageList[languageNo - 1][0] + '</p>';
	        tmpHTML = tmpHTML + '';
	    }  

	}
	tmpHTML = tmpHTML + '<div class="ypro_cal">';
	tmpHTML = tmpHTML + '<table cellspacing="0" cellpadding="0" summary="空室カレンダー">';
	tmpHTML = tmpHTML + '<thead>';

	if( yproDV == 1 ){

	tmpHTML = tmpHTML + '';
	tmpHTML = tmpHTML + '<tr>';
	tmpHTML = tmpHTML + '<th class="ypro_cal_people" colspan="' + nColspanNum + '">';
	tmpHTML = tmpHTML + '<form name="' + divIdInfo[ 1 ] + '_form" method="post">';


	if( languageNo == 1 ){
		tmpHTML = tmpHTML + '<p class="ypro_guide_l" style="font-weight:bold;">表示は';
		tmpHTML = tmpHTML + '<input type="hidden" name="select_room" value="' + selectRoomId + '" >';
		tmpHTML = tmpHTML + '<input type="hidden" name="select_plan" value="' + selectPlanId + '" >';
		tmpHTML = tmpHTML + '<select name="user_num" onchange="javascript:otherUserStockCalendar(\'' + nowLink + '\', \'' + divIdInfo[ 1 ] + '\')" >';
		for( var ii=0; ii<10; ii++ ){

			// 有効な部屋人数だけ選択肢を設定する
			if( activeUserNumList[ ii ] == true ){
				tmpHTML = tmpHTML + '		<option value="' + ( ii + 1 ) + '"' + userNumSelectedList[ ii ] + '>' + ( ii + 1 ) + '</option>';
			}

		}

		// ルームチャージの場合、○室料金と表示する
		//if( tmpPlanType == "1" ){
		//    tmpHTML = tmpHTML + '</select>室料金<br />(1室1泊あたりの料金&nbsp;単位：円)</p>';    
		//}else{
				
		    if( data.yado_id == "20000006" || data.yado_id == "20000037" || data.yado_id == "44000016" ){
			    tmpHTML = tmpHTML + '</select>名様利用時<br />1名様1泊料金&nbsp;&nbsp;(単位：円)</p>';
		    }
		    else{
			    if( data.yado_id == "20000040" && bDayTripFlag == true ){
				    tmpHTML = tmpHTML + '</select>名様料金<br />(大人1名様あたりの料金 単位：円)</p>';
			    }
			    else{
				    tmpHTML = tmpHTML + '</select>名様料金<br />(大人1名様1泊あたりの料金&nbsp;単位：円)</p>';
			    }
		    }
		
		//}
	}
	else if( languageNo == 2 ){
		tmpHTML = tmpHTML + '<p class="ypro_guide_l" style="font-weight:bold;">At';
		tmpHTML = tmpHTML + '<input type="hidden" name="select_room" value="' + selectRoomId + '" >';
		tmpHTML = tmpHTML + '<input type="hidden" name="select_plan" value="' + selectPlanId + '" >';
		tmpHTML = tmpHTML + '<select name="user_num" onchange="javascript:otherUserStockCalendar(\'' + nowLink + '\', \'' + divIdInfo[ 1 ] + '\')" >';
		for( var ii=0; ii<10; ii++ ){

			// 有効な部屋人数だけ選択肢を設定する
			if( activeUserNumList[ ii ] == true ){
				tmpHTML = tmpHTML + '		<option value="' + ( ii + 1 ) + '"' + userNumSelectedList[ ii ] + '>' + ( ii + 1 ) + '</option>';
			}

		}
		if( data.yado_id == "20000006" || data.yado_id == "20000037" ){
			tmpHTML = tmpHTML + '</select>persons staying<br />Price for 1 guest for 1 night&nbsp;&nbsp;(Unit：yen)</p>';
		}
		else{
			tmpHTML = tmpHTML + '</select>persons staying<br />(Price for 1 guest for 1 night&nbsp;Unit：yen)</p>';
		}
	}

	tmpHTML = tmpHTML + '</form>';
	tmpHTML = tmpHTML + '</th>';
	tmpHTML = tmpHTML + '';
	tmpHTML = tmpHTML + '<th class="ypro_cal_period" colspan="7"><div class="ypro_guide_r">';
	if( data.airport_flg != "YES" ){

		// 期間の開始年月日が本日以降の場合に限り「前の期間」を表示
		if( startDate.getTime() > nowDate.getTime() ){
			tmpHTML = tmpHTML + '	<p class="ypro_l"><img src="../templates/dt2/images/icon_allow01.gif" alt="" /><a href="javascript:prevNextStockCalendar(\'' + prevLink + '\', \'' + divIdInfo[ 1 ] + '\')">' + tableItem[ languageNo - 1 ][ 2 ] + '</a></p>';
		}

		// 表示期間よりも後にプランがある場合に限り「後の期間」を表示
		if( bPlanFinished == false ){
			tmpHTML = tmpHTML + '	<p class="ypro_r"><a href="javascript:prevNextStockCalendar(\'' + nextLink + '\', \'' + divIdInfo[ 1 ] + '\')">' + tableItem[ languageNo - 1 ][ 3 ] + '</a><img src="../templates/dt2/images/icon_allow02.gif" alt="" /></p>';
		}

	}
	tmpHTML = tmpHTML + '</div></th>';
	tmpHTML = tmpHTML + '</tr>';
	tmpHTML = tmpHTML + '';

	}

	tmpHTML = tmpHTML + '<tr>';

	if( yproDV == 1 ){

	if( dispCalRoom == "1" ){
		tmpHTML = tmpHTML + '<th class="ypro_plan_rooms">' + tableItem[ languageNo - 1 ][ 0 ] + '</th>';
	}
	if( dispCalPlan == "1" ){
		tmpHTML = tmpHTML + '<th class="">' + tableItem[ languageNo - 1 ][ 1 ] + '</th>';
	}
	if( dispCalPlanBtn == "1" ){
		tmpHTML = tmpHTML + '<th class="">&nbsp;</th>';
	}

	}
	else{
		tmpHTML = tmpHTML + '<th class="ypro_plan_rooms">' + tableItem[ languageNo - 1 ][ 0 ] + '</th>';
		tmpHTML = tmpHTML + '<th class="">&nbsp;</th>';
	}

	if( yproDV == 1 ){

	// 日付と曜日を出力
	var dayCSSIdList = new Array();		// 曜日ごとのスタイルのリスト
	var dateList = new Array();				// 日付オブジェクトのリスト
	for( var ii=0; ii<7; ii++ ){

		// 祝日フラグ・日付オブジェクトを取得
		var dateCellName = 'cell_' + data.group_id + '_0_' + ( ii + 2 );
		var tmpAkiData = data.rooms[ maxDayNumRoomIndex ].aki[ ii ];

		// ii個目の情報がある場合
		if( tmpAkiData != undefined ){

			var tmpDate     = tmpAkiData.aki_date;
			var tmpHolidayF = tmpAkiData.holiday_f;
			var tmpDateObj  = new Date( tmpDate );
			dateList.push( tmpDateObj );

			// 土・日・祝日はスタイルを変更
			var tmpCSSId = "";
			if( tmpDateObj.getDay() == 6 ){
				tmpCSSId = "ypro_sat";
			}
			if( tmpDateObj.getDay() == 0 || tmpHolidayF == "1" ){
				tmpCSSId = "ypro_sun";
			}
			dayCSSIdList.push( tmpCSSId );

			tmpHTML = tmpHTML + '<th class="ypro_plan_day" id="' + tmpCSSId + '"><a href="javascript:void(0);" id="' + dateCellName + '" onmouseover="enableThisCell(\'' + dateCellName + '\');" onmouseout="disableThisCell(\'' + dateCellName + '\');">' + ( tmpDateObj.getMonth() + 1 ) + '/' + tmpDateObj.getDate() + '<br />(' + dayNameList[ languageNo - 1 ][ tmpDateObj.getDay() ] + ')</a></th>';

		}
		// ii個目の情報が無い場合
		else{

			tmpHTML = tmpHTML + '<th class="ypro_plan_day" id="' + tmpCSSId + '">-</th>';

		}

	}

	}

	tmpHTML = tmpHTML + '</tr>';
	tmpHTML = tmpHTML + '</thead>';

	tmpHTML = tmpHTML + '<tbody>';

//alert( data.group_plan_list );

	//------------------------------------------------------------------
	// 部屋タイプとプラン情報を表示する
	//------------------------------------------------------------------
	var tableRows = 0;								// 空室カレンダーの行数
	var bPlanTypeRmCharge    = false;	// ルームチャージプランがある場合はtrue
	var bPlanTypeNotRmCharge = false;	// ルームチャージ以外のプランがある場合はtrue
	for( var ii=0; ii<data.rooms.length; ii++ ){

		// 文字数を区切って表示
		var tmpRoomName = eval( "data.rooms[ ii ].room_name" + suffixWord[ languageNo - 1 ] );
		var tmpRoomId   = data.rooms[ ii ].room_id;
//		if( tmpRoomName.length > 15 ){
//			tmpRoomName = tmpRoomName.substring( 0, 15 ) + "...";
//		}

		if( selectRoomId > 0 && tmpRoomId != selectRoomId ){
			continue;
		}

		// スタイルを指定する
		var tmpStyle = "";

		//------------------------------------------------------------------
		// 部屋タイプとプラン情報を表示する
		//------------------------------------------------------------------
		for( var jj=0; jj<data.rooms[ ii ].plans.length; jj++ ){

			if (childType1 != "" && childType1 != "0"){
				if (data.rooms[ ii ].plans[ jj ].child_type_1 == "" || data.rooms[ ii ].plans[ jj ].child_type_1 == "0"){
					continue;
				}
			}

			if (childType2 != "" && childType2 != "0"){
				if (data.rooms[ ii ].plans[ jj ].child_type_2 == "" || data.rooms[ ii ].plans[ jj ].child_type_2 == "0"){
					continue;
				}
			}

			if (childType3 != "" && childType3 != "0"){
				if (data.rooms[ ii ].plans[ jj ].child_type_3 == "" || data.rooms[ ii ].plans[ jj ].child_type_3 == "0"){
					continue;
				}
			}

			if (childType4 != "" && childType4 != "0"){
				if (data.rooms[ ii ].plans[ jj ].child_type_4 == "" || data.rooms[ ii ].plans[ jj ].child_type_4 == "0"){
					continue;
				}
			}

			if (childType5 != "" && childType5 != "0"){
				if (data.rooms[ ii ].plans[ jj ].child_type_5 == "" || data.rooms[ ii ].plans[ jj ].child_type_5 == "0"){
					continue;
				}
			}
			// プラン1行分のHTMLを作成する
			var tmpPlanHTML = "";
			tmpPlanHTML = tmpPlanHTML + '<tr>';

			// 文字数を区切って表示
			var tmpPlanName  = data.rooms[ ii ].plans[ jj ].plan_name;
			var tmpPlanId    = data.rooms[ ii ].plans[ jj ].plan_id;
			var tmpPlanType  = data.rooms[ ii ].plans[ jj ].plan_type;
//			var tmpClosedDay = planCloseDay[ parseInt( data.rooms[ ii ].plans[ jj ].closed_day ) ];
			var tmpClosedDay = parseInt( data.rooms[ ii ].plans[ jj ].closed_day );
			var tmpClosedHour = parseInt( data.rooms[ ii ].plans[ jj ].closed_hour );

//			if( tmpPlanName.length > 15 ){
//				tmpPlanName = tmpPlanName.substring( 0, 15 ) + "...";
//			}

			// ルームチャージプランの場合
			if( tmpPlanType == "1" ){
				bPlanTypeRmCharge = true;
			}
			// ルームチャージ以外のプランの場合
			else{
				bPlanTypeNotRmCharge = true;
			}

			// プラン詳細ページへのURL
			var tmpPlanDateUrl = "";
			if(domainName == "rsv.longinghouse.jp"){
				tmpPlanDateUrl = "http://rsv.longinghouse.jp/asp/489/date.asp?id=" + data.yado_id + "&group=" + data.group_id + "&room=" + data.rooms[ ii ].room_id + "&plan=" + data.rooms[ ii ].plans[ jj ].plan_id + "&user_num=" + selectUserNum + planDetailQuery + "&kid=" + kumiId + "&gp=YES&list=YES&ty=" + tyParam + "&lmg=" + lmgParam + "&dt=2&lan=" + lanValue[ languageNo - 1 ] + "&uid=" + UrlId + "&mo=" + memberOnlyFlg + "&meo=" + magazineOnlyFlg;
			}else{
				tmpPlanDateUrl = "http://www.489pro.com/asp/489/date.asp?id=" + data.yado_id + "&group=" + data.group_id + "&room=" + data.rooms[ ii ].room_id + "&plan=" + data.rooms[ ii ].plans[ jj ].plan_id + "&user_num=" + selectUserNum + planDetailQuery + "&kid=" + kumiId + "&gp=YES&list=YES&ty=" + tyParam + "&lmg=" + lmgParam + "&dt=2&lan=" + lanValue[ languageNo - 1 ] + "&uid=" + UrlId + "&mo=" + memberOnlyFlg + "&meo=" + magazineOnlyFlg;
			}
			if( prvParam == "1" ){
				tmpPlanDateUrl = tmpPlanDateUrl + "&prv=YES";
			}
			if( data.airport_flg == "YES" ){
				tmpPlanDateUrl = tmpPlanDateUrl + "&ap=YES";
				tmpPlanDateUrl = tmpPlanDateUrl + "&apg=" + data.airport_going;
				tmpPlanDateUrl = tmpPlanDateUrl + "&apr=" + data.airport_return;
			}

			// 特定の施設のみページ内リンクを追加
			if( data.yado_id == "90000002" || data.yado_id == "22000038" || data.yado_id == "20000023" || kumiId == "00012" ){
				tmpPlanDateUrl = tmpPlanDateUrl + "#ypro_date_a";
			}

			if( yproDV == 1 ){

			// HTMLを生成(部屋)
			if( dispCalRoom == "1" ){
				var roomCellName = "cell_" + data.group_id + '_' + ( tableRows + 1 ) + "_" + ( 0 );
				tmpPlanHTML = tmpPlanHTML + '<th class="ypro_plan_name"><a href="' + tmpPlanDateUrl + '" target="_self" id="cell_' + data.group_id + '_' + ( tableRows + 1 ) + '_0" onmouseover="enableLeftCell(\'' + roomCellName + '\');tooltip.show(\'' + tmpRoomName + '\');" onmouseout="disableLeftCell(\'' + roomCellName + '\');tooltip.hide();"' + tmpStyle + '>' + tmpRoomName + '</a></th>';
			}

			// HTMLを生成(プラン)
			if( dispCalPlan == "1" ){
				var planCellName = "cell_" + data.group_id + '_' + ( tableRows + 1 ) + "_" + ( 1 );
				tmpPlanHTML = tmpPlanHTML + '<th class="ypro_plan_name"><a href="' + tmpPlanDateUrl + '" target="_self" id="cell_' + data.group_id + '_' + ( tableRows + 1 ) + '_1" onmouseover="enableLeftCell(\'' + planCellName + '\');tooltip.show(\'' + data.rooms[ ii ].plans[ jj ].plan_name + '\');" onmouseout="disableLeftCell(\'' + planCellName + '\');tooltip.hide();">' + tmpPlanName + '</a></th>';
			}

			// HTMLを生成(プランの詳細ボタン)
			if( dispCalPlanBtn == "1" ){
			    var sDetailsBtnFileName = 'bt_cal_b_' + lanValue[languageNo - 1].toLowerCase() + '.gif';
			    if (data.yado_id == "28000010") {
				      sDetailsBtnFileName = 'bt_details_b_' + lanValue[languageNo - 1].toLowerCase() + '.gif';
				}
				var planDetailBtnCellName = "cell_" + data.group_id + '_' + ( tableRows + 1 ) + "_d";
				tmpPlanHTML = tmpPlanHTML + '<th><a href="' + tmpPlanDateUrl + '" target="_self" id="cell_' + data.group_id + '_' + ( tableRows + 1 ) + '_d" onmouseover="enableLeftCell(\'' + planDetailBtnCellName + '\');tooltip.show(\'' + data.rooms[ ii ].plans[ jj ].plan_name + '\');" onmouseout="disableLeftCell(\'' + planDetailBtnCellName + '\');tooltip.hide();"><img src="../templates/dt2/images/' + sDetailsBtnFileName + '" alt="カレンダー表示" /></a></th>';
			}

			}
			else{
				var roomCellName = "cell_" + data.group_id + '_' + ( tableRows + 1 ) + "_" + ( 0 );
				tmpPlanHTML = tmpPlanHTML + '<th class="ypro_plan_name"><a href="' + tmpPlanDateUrl + '" target="_self" id="cell_' + data.group_id + '_' + ( tableRows + 1 ) + '_0" onmouseover="enableLeftCell(\'' + roomCellName + '\');tooltip.show(\'' + tmpRoomName + '\');" onmouseout="disableLeftCell(\'' + roomCellName + '\');tooltip.hide();"' + tmpStyle + '>' + tmpRoomName + '</a></th>';
				//元のコード
				//var sDetailsBtnFileName = 'bt_details_b_' + lanValue[ languageNo - 1 ].toLowerCase() + '.gif';
				//if( data.yado_id == "30000003" ){
				//		sDetailsBtnFileName = 'bt_cal_b_' + lanValue[ languageNo - 1 ].toLowerCase() + '.gif';
				//}
				var sDetailsBtnFileName = 'bt_cal_b_' + lanValue[languageNo - 1].toLowerCase() + '.gif';
				if (data.yado_id == "28000010" || data.yado_id == "20000057") {
					sDetailsBtnFileName = 'bt_details_b_' + lanValue[languageNo - 1].toLowerCase() + '.gif';
		        }
				var planDetailBtnCellName = "cell_" + data.group_id + '_' + ( tableRows + 1 ) + "_d";
				tmpPlanHTML = tmpPlanHTML + '<th><a href="' + tmpPlanDateUrl + '" target="_self" id="cell_' + data.group_id + '_' + ( tableRows + 1 ) + '_d" onmouseover="enableLeftCell(\'' + planDetailBtnCellName + '\');" onmouseout="disableLeftCell(\'' + planDetailBtnCellName + '\');"><img src="../templates/dt2/images/' + sDetailsBtnFileName + '" alt="カレンダー表示" /></a></th>';
			}

			if( yproDV == 1 ){

			// プランに設定されている料金を取得
			for( var kk=0; kk<7; kk++ ){

				var cellName = "cell_" + data.group_id + '_' + ( tableRows + 1 ) + "_" + ( kk + 2 );

				// kk個目の日付について情報がある場合
				if( dateList[ kk ] != undefined ){

// 初期表示人数で上書きするのはNG
//				selectUserNum = parseInt( data.rooms[ selectRoomIndex ].plans[ ii ].cal_ini_num );
					var tmpCellInfo = getCellInfo( data.yado_id, data.rooms[ ii ], data.rooms[ ii ].plans[ jj ], dateList[ kk ], selectUserNum, tmpClosedDay, tmpClosedHour, kumiId, UrlId, data.yoyaku_root, data.airport_flg, data.airport_going, data.airport_return )

					// 予約画面へのURLが指定されていない場合
					if( tmpCellInfo[ "url" ] == undefined ){
						tmpPlanHTML = tmpPlanHTML + '<td class="ypro_plan_price" id="' + dayCSSIdList[ kk ] + '"><span id="' + cellName + '" onmouseover="enableCell(\'' + cellName + '\')" onmouseout="disableCell(\'' + cellName + '\')">' + tmpCellInfo[ "aki_sign" ] + '<br />' + myFormatNumber( tmpCellInfo[ "price" ] ) + '</span></td>';
					}
					// 予約画面へのURLが指定されている場合
					else{
						// 航空券時は検索対象日以外リンクさせない
						if(data.airport_flg == "YES"){
							var startDateCheck = startDate.getFullYear() + "/" + startDate.getMonth() + "/" + startDate.getDate();
							var dateListCheck = dateList[ kk ].getFullYear() + "/" + dateList[ kk ].getMonth() + "/" + dateList[ kk ].getDate();
							if(startDateCheck == dateListCheck){
								tmpPlanHTML = tmpPlanHTML + '<td class="ypro_plan_price" id="' + dayCSSIdList[ kk ] + '"><a href="' + tmpCellInfo[ "url" ] + '" target="_self" id="' + cellName + '" onmouseover="enableCell(\'' + cellName + '\')" onmouseout="disableCell(\'' + cellName + '\')">' + tmpCellInfo[ "aki_sign" ] + '<br />' + myFormatNumber( tmpCellInfo[ "price" ] ) + '</a></td>';
							}else{
								tmpPlanHTML = tmpPlanHTML + '<td class="ypro_plan_price" id="' + dayCSSIdList[ kk ] + '">' + tmpCellInfo[ "aki_sign" ] + '<br />' + myFormatNumber( tmpCellInfo[ "price" ] ) + '</td>';
							}
						}else{
							tmpPlanHTML = tmpPlanHTML + '<td class="ypro_plan_price" id="' + dayCSSIdList[ kk ] + '"><a href="' + tmpCellInfo[ "url" ] + '" target="_self" id="' + cellName + '" onmouseover="enableCell(\'' + cellName + '\')" onmouseout="disableCell(\'' + cellName + '\')">' + tmpCellInfo[ "aki_sign" ] + '<br />' + myFormatNumber( tmpCellInfo[ "price" ] ) + '</a></td>';
						}
					}

				}
				// kk個目の日付について情報が無い場合
				else{

					tmpPlanHTML = tmpPlanHTML + '<td class="ypro_plan_price" id="' + dayCSSIdList[ kk ] + '">-</td>';

				}

			}

			}

			tmpPlanHTML = tmpPlanHTML + '</tr>';

			// プラン1行分のHTMLを配列に格納しておく
			arrPlanHTMLList[ tmpPlanId ] = tmpPlanHTML;

			// 空室カレンダーの行数をインクリメント
			tableRows++;

		}

	}

	// プランの各行のHTMLを並び替えて表示する
	for( var ii=0; ii<arrGroupPlanList.length; ii++ ){

		if( arrGroupPlanList[ ii ] != undefined && arrPlanHTMLList[ arrGroupPlanList[ ii ] ] != undefined ){
			tmpHTML = tmpHTML + arrPlanHTMLList[ arrGroupPlanList[ ii ] ];
		}

	}

	//------------------------------------------------------------------
	// 空室カレンダーに空きがある場合は空のセルを表示する
	//------------------------------------------------------------------
	for( var ii=tableRowNum; ii<initPlanNum; ii++ ){

		tmpHTML = tmpHTML + '<tr>';

		if( dispCalRoom == "1" ){
			tmpHTML = tmpHTML + '<th class="ypro_plan_rooms">&nbsp;</th>';
		}
		if( dispCalPlan == "1" ){
			tmpHTML = tmpHTML + '<th class="">&nbsp;</th>';
		}
		if( dispCalPlanBtn == "1" ){
			tmpHTML = tmpHTML + '<th class="">&nbsp;</th>';
		}

		for( var jj=0; jj<7; jj++ ){
			tmpHTML = tmpHTML + '<td class="ypro_plan_price" id="' + dayCSSIdList[ jj ] + '"></td>';
		}

		tmpHTML = tmpHTML + '</tr>';

	}

			// ルームチャージプランの場合
			if( tmpPlanType == "1" ){
				bPlanTypeRmCharge = true;
			}
			// ルームチャージ以外のプランの場合
			else{
				bPlanTypeNotRmCharge = true;
			}


	tmpHTML = tmpHTML + '</tbody>';
	tmpHTML = tmpHTML + '</table>';
	tmpHTML = tmpHTML + '</div>';
	tmpHTML = tmpHTML + '';

	if( yproDV == 1 ){

	if( languageNo == 1 ){
		tmpHTML = tmpHTML + '<div class="ypro_guide" style="width:100%;">';
		tmpHTML = tmpHTML + '<p class="ypro_situation">';
		tmpHTML = tmpHTML + '<span><span class="ypro_mark">○</span>：空室あり</span>';
		tmpHTML = tmpHTML + '<span><span class="ypro_mark">△</span>：残りわずか</span>';
		tmpHTML = tmpHTML + '<span>×：満室</span>';
		tmpHTML = tmpHTML + '<span>－：設定なし</span></p>';
		tmpHTML = tmpHTML + '</div>';
	}
	else if( languageNo == 2 ){
		tmpHTML = tmpHTML + '<div class="ypro_guide" style="width:100%;">';
		tmpHTML = tmpHTML + '<p class="ypro_situation">';
		tmpHTML = tmpHTML + '<span><span class="ypro_mark">A</span>&nbsp;:&nbsp;Available</span>';
		tmpHTML = tmpHTML + '<span><span class="ypro_mark">FA</span>&nbsp;:&nbsp;Few Available</span>';
		tmpHTML = tmpHTML + '<span><span class="ypro_mark">NA</span>&nbsp;:&nbsp;Not Available</span>';
		tmpHTML = tmpHTML + '</div>';
	}

	tmpHTML = tmpHTML + '<div class="ypro_guide">';
	tmpHTML = tmpHTML + '<p class="ypro_ex" style="width:100%;">' + arrMessageList[ languageNo - 1 ][ 1 ] + '<br />';

//	// ルームチャージプランとそれ以外のプランの混合
//	if( bPlanTypeRmCharge == true && bPlanTypeNotRmCharge == true ){
//		tmpHTML = tmpHTML + '※カレンダー内の料金は、大人1名様1泊あたり(ルームチャージプラン以外) または 1部屋1泊あたり(ルームチャージプランの場合)の料金です。(単位：円)</p>';
//	}
//	else if( bPlanTypeRmCharge == true ){
//		tmpHTML = tmpHTML + '※カレンダー内の料金は、1部屋1泊あたりの料金です。(単位：円)</p>';
//	}
//	else if( bPlanTypeNotRmCharge == true ){
//		tmpHTML = tmpHTML + '※カレンダー内の料金は、大人1名様1泊あたりの料金です。(単位：円)</p>';
//	}

	// ルームチャージプランが含まれる場合
	if( bPlanTypeRmCharge == true ){
		if( languageNo == 1 ){
			tmpHTML = tmpHTML + '※ルームチャージプランが含まれております。詳しくはプラン詳細ページをご覧下さい。</p>';
		}
		else if( languageNo == 2 ){
			tmpHTML = tmpHTML + 'Room charges included. For more details see detailed plan page.</p>';
		}
	}

	tmpHTML = tmpHTML + '</div>';

	}

	div.innerHTML = tmpHTML;

	// 初期表示時にアンカーリンクへ
	if( initFlag == true ){

		var sTmpUrl = document.URL;
		var nALinkIndex = sTmpUrl.indexOf( "#" );
		if( nALinkIndex >= 0 ){

			var sALinkName = sTmpUrl.substring( nALinkIndex, sTmpUrl.length );
			location.href = sALinkName;

		}

	}

	// 関数が定義されていたら実行
	if( typeof( getStockDataAfter ) == "function" ){
		getStockDataAfter( data );
	}

}

/**
 * data JSONPデータ (Object)
 * selectUser 選択された人数 (Number)
 */
function getActiveUserNumList( data ){

	var tmpPriceE		// 平日
	var tmpPriceH		// 休前日
	var tmpPriceFlag = new Array( false, false, false, false, false, false, false, false, false, false );
	var tmpReturnNum = 0;

	// 全部屋・全プラン・全料金を検索して
	// それぞれの人数が設定されているかを見る
	for( var ii=0; ii<data.rooms.length; ii++ ){

		for( var jj=0; jj<data.rooms[ ii ].plans.length; jj++ ){

			for( var kk=0; kk<data.rooms[ ii ].plans[ jj ].prices.length; kk++ ){

				for( var ll=1; ll<=10; ll++ ){

					tmpPriceE = eval( "data.rooms[ ii ].plans[ jj ].price_" + ll )
					tmpPriceH = eval( "data.rooms[ ii ].plans[ jj ].price_" + ll + "_h" )
					if( tmpPriceE != undefined && tmpPriceE.length > 0 && tmpPriceE != "0" ||
					    tmpPriceH != undefined && tmpPriceH.length > 0 && tmpPriceH != "0" ){
						tmpPriceFlag[ ll - 1 ] = true;
					}

				}

			}

		}

	}

	return tmpPriceFlag;

}

/**
 * data JSONPデータ (Object)
 * selectUser 選択された人数 (Number)
 */
function getDefaultUserNum( data, selectUserNum ){

	var tmpPrice
	var tmpPriceFlag = new Array( false, false, false, false, false, false, false, false, false, false );
	var tmpReturnNum = 0;

	// 全部屋・全プラン・全料金を検索して
	// それぞれの人数が設定されているかを見る
	for( var ii=0; ii<data.rooms.length; ii++ ){

		for( var jj=0; jj<data.rooms[ ii ].plans.length; jj++ ){

			for( var kk=0; kk<data.rooms[ ii ].plans[ jj ].prices.length; kk++ ){

				for( var ll=1; ll<=10; ll++ ){

					tmpPrice = eval( "data.rooms[ ii ].plans[ jj ].prices[ kk ].price_" + ll )
					if( tmpPrice != undefined && tmpPrice.length > 0 && tmpPrice != "0" ){
						tmpPriceFlag[ ll - 1 ] = true;
					}

				}

			}

		}

	}

	// デフォルトの人数を検索する (引数で指定した人数 → 10人)
	for( var ii=selectUserNum-1; ii<10; ii++ ){

		if( tmpPriceFlag[ ii ] == true ){
			tmpReturnNum = ii + 1;
			break;
		}

	}

	// デフォルトの人数を検索する (1人 → 引数で指定した人数-1人)
	if( tmpReturnNum <= 0 ){

		for( var ii=0; ii<selectUserNum-1; ii++ ){

			if( tmpPriceFlag[ ii ] == true ){
				tmpReturnNum = ii + 1;
			}

		}

	}
//alert( "tmpReturnNum = " + tmpReturnNum )
	// 検索した料金について人数が設定されていない場合は負数を返す
	if( tmpReturnNum <= 0 ){
		tmpReturnNum = -1;
	}

	return tmpReturnNum;

}

/**
 * tmpYadoId 施設ID (String)
 * tmpRoomData 部屋データ (Object)
 * tmpPlanData プランデータ (Object)
 * tmpDate 年月日 (Date)
 * tmpUserNum 利用人数(Number)
 * tmpClosedDay 受付締め切り日(Number)
 * tmpClosedHour 受付締め切り時間(Number)
 * tmpKumiId 組合ID(Number)
 */
function getCellInfo( tmpYadoId, tmpRoomData, tmpPlanData, tmpDate, tmpUserNum, tmpClosedDay, tmpClosedHour, tmpKumiId, tmpUrlId, tmpYoyakuRoot, tmpAirport, tmpAirportGoing, tmpAirportReturn ){

//	alert( tmpRoomData + " " + tmpPlanData + " " + tmpDate );

	// 引数の年月日 YYYY/MM/DD
	var tmpDateYYYYMMDD = tmpDate.getFullYear() + "/" + ( tmpDate.getMonth() + 1 ) + "/" + tmpDate.getDate();

	// 戻り値用の配列(仮想配列)
	var returnArray = new Array();

	//--------------------------------------------------------
	// 処理開始
	//--------------------------------------------------------

	// 空き室表示基準部屋数
	var standardAkiNum = parseInt( tmpRoomData.standard_aki_num );

	// 指定した年月日の在庫数
	returnArray[ "aki_sign" ] = stockSign[ languageNo - 1 ][ 3 ];	// -
	for( var ii=0; ii<tmpRoomData.aki.length; ii++ ){

		if( tmpDateYYYYMMDD == tmpRoomData.aki[ ii ].aki_date ){

			// 在庫数
			akiNum = parseInt( tmpRoomData.aki[ ii ].aki_num );
			returnArray[ "aki_num" ] = akiNum;

			// 完売フラグ
			var soldOutF = tmpRoomData.aki[ ii ].sold_out_f;

			// 在庫数と基準部屋数をもとに記号を求める
			// (完売フラグがたっている場合は強制的に×)
			if( soldOutF == "1" ){

				returnArray[ "aki_sign" ] = stockSign[ languageNo - 1 ][ 2 ];	// ×

			}
			else{

				if( akiNum > standardAkiNum ){
					returnArray[ "aki_sign" ] = stockSign[ languageNo - 1 ][ 0 ];	// ○
				}
				else if( 0 < akiNum && akiNum <= standardAkiNum ){
					returnArray[ "aki_sign" ] = stockSign[ languageNo - 1 ][ 1 ];	// △
				}
				else{
					returnArray[ "aki_sign" ] = stockSign[ languageNo - 1 ][ 2 ];	// ×
				}

			}

			break;

		}

	}

	// プランタイプ
	var planType = parseInt( tmpPlanData.plan_type );

	// プラン在庫適用フラグ
	var planAkiFlg = parseInt( tmpPlanData.plan_aki_flg );

	// 指定した年月日の料金を取得する
	for( var ii=0; ii<tmpPlanData.prices.length; ii++ ){

		// 指定した年月日でかつ以下のステータスの場合
		// ・0:準備中
		// ・1:予約可能
		// ・2:メール問
		// ・3:休止(満室)
		if( tmpDateYYYYMMDD == tmpPlanData.prices[ ii ].price_date ){

			// プラン在庫を適用する場合
			if( planAkiFlg == '1' ){

				// プラン在庫を取得する
				planAkiNum = tmpPlanData.prices[ ii ].aki_plan_num;

				// 部屋在庫が○の場合でも、プラン在庫が足りない場合は△にする
				if( 0 < planAkiNum && planAkiNum <= standardAkiNum && returnArray[ "aki_sign" ] == stockSign[ languageNo - 1 ][ 0 ] ){
					returnArray[ "aki_sign" ] = stockSign[ languageNo - 1 ][ 1 ];	// △
				}
				// 部屋在庫が○や△の場合でも、プラン在庫がない場合は×にする
				if( planAkiNum <= 0 && ( returnArray[ "aki_sign" ] == stockSign[ languageNo - 1 ][ 0 ] || returnArray[ "aki_sign" ] == stockSign[ languageNo - 1 ][ 1 ] ) ){
					returnArray[ "aki_sign" ] = stockSign[ languageNo - 1 ][ 2 ];	// ×
				}

			}

			// プランタイプに応じて取得する料金を変える
			// (ルームチャージ・団体の場合は1名様料金とする)
			if( planType == 1 || planType == 2 ){
				returnArray[ "price" ] = tmpPlanData.prices[ ii ].price_1;
			}
			else{

				var tmpPriceE = eval( "tmpPlanData.price_" + tmpUserNum )
				var tmpPriceH = eval( "tmpPlanData.price_" + tmpUserNum + "_h" )

				if( tmpPriceE != undefined && tmpPriceE.length > 0 && tmpPriceE != "0" ||
				    tmpPriceH != undefined && tmpPriceH.length > 0 && tmpPriceH != "0" ){
					returnArray[ "price" ] = eval( "tmpPlanData.prices[ ii ].price_" + tmpUserNum );
				}

			}

			if( tmpPlanData.prices[ ii ].price_status == "0" || tmpPlanData.prices[ ii ].price_status == "1" || tmpPlanData.prices[ ii ].price_status == "2" ){

				// 料金ステータスが準備中の場合
				if( tmpPlanData.prices[ ii ].price_status == "0" ){
					returnArray[ "aki_sign" ] = stockSign[ languageNo - 1 ][ 4 ];
				}
				// 料金ステータスが問い合わせの場合
				else if( tmpPlanData.prices[ ii ].price_status == "2" ){
					returnArray[ "aki_sign" ] = stockSign[ languageNo - 1 ][ 5 ];
				}

			}
			else if( tmpPlanData.prices[ ii ].price_status == "3" ){

				returnArray[ "aki_sign" ] = stockSign[ languageNo - 1 ][ 2 ];

			}

			break;

		}


	}

//if( tmpDateYYYYMMDD == "2010/7/1" ){
//	alert( returnArray[ "aki_sign" ] + " " + returnArray[ "price" ] );
//}

	// 料金が設定されていない場合は設定なしとする
	// (ただし、満室状態の場合は記号の変更は行わない)
	if( returnArray[ "price" ] == undefined || returnArray[ "price" ] == "0" ){
		//20101108 欽山対応　プランの料金設定がない（0円指定）場合はハイフン表示
//		if( returnArray[ "aki_sign" ] != stockSign[ languageNo - 1 ][ 2 ] ){
			returnArray[ "aki_sign" ] = stockSign[ languageNo - 1 ][ 3 ];	// -
//		}
		returnArray[ "price" ] = "";
	}

//if( tmpDateYYYYMMDD == "2010/7/1" ){
//	alert( returnArray[ "aki_sign" ] );
//}

	// 今日から受付締め切り日時を加算したとき
	// 引数で指定した年月日を超えている場合は、在庫・料金を非表示にする
	var closedDate = new Date();
	if( closedDate.getTime() > ( tmpDate.getTime() - tmpClosedDay * 60 * 60 * 24 * 1000 + tmpClosedHour * 60 * 60 * 1000 ) ){
		returnArray[ "aki_sign" ] = stockSign[ languageNo - 1 ][ 3 ];	// -
		returnArray[ "price" ] = "";
	}

	// 在庫があり、料金が設定されている場合は
	// 予約画面へのURLを記載
	if( ( returnArray[ "aki_sign" ] == stockSign[ languageNo - 1 ][ 0 ] || returnArray[ "aki_sign" ] == stockSign[ languageNo - 1 ][ 1 ] ) && returnArray[ "price" ] != undefined ){

		var sActionFile = "form.asp";
		//20110524 予約導線改良
		if( kaiinFlag == "1" && tmpYoyakuRoot != "YES" ){
			sActionFile = "form_login.asp";
		}

		var sPrvParm = "";
		if( prvParam == "1" ){
			sPrvParm = "YES";
		}

		if(domainName == "rsv.longinghouse.jp"){
			returnArray[ "url" ] = "https://rsv.longinghouse.jp/asp/489/" + sActionFile + "?id=" + tmpYadoId + "&plan=" + tmpPlanData.plan_id + "&room=" + tmpRoomData.room_id + "&year=" + tmpDate.getFullYear() + "&month=" + ( tmpDate.getMonth() + 1 ) + "&day=" + tmpDate.getDate() + "&kid=" + tmpKumiId + "&gp=YES&ty=" + tyParam + "&list=YES&lan=" + lanValue[ languageNo - 1 ] + "&uid=" + tmpUrlId + "&mo=" + memberOnlyFlg + "&meo=" + magazineOnlyFlg + "&prv=" + sPrvParm + "&ap=" + tmpAirport + "&apg=" + tmpAirportGoing + "&apr=" + tmpAirportReturn + "&u_n=" + tmpUserNum + planDetailQuery + "#ypro_form_login_a";
		}else{
			returnArray[ "url" ] = "https://www.489pro.com/asp/489/" + sActionFile + "?id=" + tmpYadoId + "&plan=" + tmpPlanData.plan_id + "&room=" + tmpRoomData.room_id + "&year=" + tmpDate.getFullYear() + "&month=" + ( tmpDate.getMonth() + 1 ) + "&day=" + tmpDate.getDate() + "&kid=" + tmpKumiId + "&gp=YES&ty=" + tyParam + "&list=YES&lan=" + lanValue[ languageNo - 1 ] + "&uid=" + tmpUrlId + "&mo=" + memberOnlyFlg + "&meo=" + magazineOnlyFlg + "&prv=" + sPrvParm + "&ap=" + tmpAirport + "&apg=" + tmpAirportGoing + "&apr=" + tmpAirportReturn + "&u_n=" + tmpUserNum + planDetailQuery + "#ypro_form_login_a";
		}

	}

	// プランの開始日と終了日の間の日付に限り表示
	// (間に無い場合はURLを指定しない)
	var tmpPlanStartDate = new Date( tmpPlanData.start_date );
	var tmpPlanEndDate = new Date( tmpPlanData.end_date );
	if( tmpDate.getTime() < tmpPlanStartDate.getTime() || tmpPlanEndDate.getTime() < tmpDate.getTime() ){
		returnArray[ "url" ] = undefined;
		returnArray[ "aki_sign" ] = stockSign[ languageNo - 1 ][ 3 ];	// -
		returnArray[ "price" ] = "";
	}

	// 戻り値を設定
	return returnArray;

	// 指定した年月日の料金
//alert( returnArray[ "aki_sign" ] );
}

/**
 * data JSONPデータ (Object)
 * formName フォームの名前 (String)
 * startDate 現在の表示開始日 (Date)
 * selectRoom 選択された部屋 (Number)
 * selectPlan 選択されたプラン (Number)
 * selectUser 選択された人数 (Number)
 * dispRoomF 空室カレンダー表示項目（部屋名） (String)
 * dispPlanF 空室カレンダー表示項目（プラン名） (String)
 * dispPlanBtnF 空室カレンダー表示項目（プラン詳細ページへのボタン） (String)
 * planNum 初期表示したプランの数 (Number)
 * specifyKumiId 組合ID
 * prevNextFlag >0：後の期間、<0：前の期間、=0:現在の期間 (Number)
 */
function getLink( data, formName, startDate, selectRoom, selectPlan, selectUser, dispRoomF, dispPlanF, dispPlanBtnF, planNum, specifyKumiId, prevNextFlag ){

	//------------------------------------------------------------------
	// クエリ文字列を作成するために必要なデータを作成する
	//------------------------------------------------------------------

	// テーブルの開始年月日と終了年月日
	var setStartDate = new Date();
	var setEndDate   = new Date();

	// 1週間後
	if( prevNextFlag > 0 ){
		setStartDate.setTime( startDate.getTime() + 7 * 24 * 60 * 60 * 1000 );
	}
	// 1週間前
	else if( prevNextFlag < 0 ){
		setStartDate.setTime( startDate.getTime() - 7 * 24 * 60 * 60 * 1000 );
	}
	// 現在
	else{
		setStartDate.setTime( startDate.getTime() );
	}
	setEndDate.setTime( setStartDate.getTime() + 6 * 24 * 60 * 60 * 1000 );

	// 年月日 YYYY/MM/DD
	var tmpStartDateYYYYMMDD = setStartDate.getFullYear() + "/" + ( setStartDate.getMonth() + 1 ) + "/" + setStartDate.getDate();
	var tmpEndDateYYYYMMDD = setEndDate.getFullYear() + "/" + ( setEndDate.getMonth() + 1 ) + "/" + setEndDate.getDate();

	// 入力データ
	var tmpInputData = "id=" + formName + "%2Cstart_date=" + tmpStartDateYYYYMMDD + "%2Cend_date=" + tmpEndDateYYYYMMDD + "%2Cselect_room=" + selectRoom + "%2Cselect_plan=" + selectPlan + "%2Cuser_num=" + selectUser + "%2Cinit_flag=0%2Cdisp_cal_room=" + dispRoomF + "%2Cdisp_cal_plan=" + dispPlanF + "%2Cdisp_cal_plan_btn=" + dispPlanBtnF + "%2Cinit_plan_num=" + planNum  + "%2Ckid=" + specifyKumiId;

	//------------------------------------------------------------------
	// クエリ文字列を作成する
	//------------------------------------------------------------------

	// クエリ文字列
	var query = ""

	// クエリデータ
	var queryArray = new Array( new Array( data.yado_id, "id" ),
	                            new Array( selectRoom, "roomId" ),
	                            new Array( null, "planId" ),
	                            new Array( data.group_id, "groupId" ),
	                            new Array( tmpStartDateYYYYMMDD, "startDate" ),
	                            new Array( tmpEndDateYYYYMMDD, "endDate" ),
	                            new Array( tmpInputData, "input_data" ) );

	// クエリ文字列を生成する(クエリデータがある場合に限り設定)
	for( var ii=0; ii<queryArray.length; ii++ ){

		if( queryArray[ ii ][ 0 ] != undefined && queryArray[ ii ][ 0 ] != null ){

			if( query == "" ){
				query = queryArray[ ii ][ 1 ] + "=" + queryArray[ ii ][ 0 ];
			}
			else{
				query = query + "&" + queryArray[ ii ][ 1 ] + "=" + queryArray[ ii ][ 0 ];
			}

		}

	}

	// 予約プロAPIに接続
	if(domainName == "rsv.longinghouse.jp"){
		var url = "http://rsv.longinghouse.jp/asp/api/ypro/v2/ypro_stocksearch_api.asp?" + query + "&mo=" + memberOnlyFlg + "&meo=" + magazineOnlyFlg + "&yr=" + data.yoyaku_root + "&prv=" + prvParam + "&callback=?"
	}else{
		var url = "http://www.489pro.com/asp/api/ypro/v2/ypro_stocksearch_api.asp?" + query + "&mo=" + memberOnlyFlg + "&meo=" + magazineOnlyFlg + "&yr=" + data.yoyaku_root + "&prv=" + prvParam + "&callback=?"
	}

	return( url );

//	alert( url );
//	$.getJSON( url, function (){} );



}

// セルをアクティブにします
function enableCell( cellName ){

	var tmpCellName = cellName.replace( "cell_", "" );
	var tmpCellInfo = tmpCellName.split( "_" );

	var selectCel = document.getElementById( cellName );
	var topCel    = document.getElementById( "cell_" + tmpCellInfo[ 0 ] + "_0_" + tmpCellInfo[ 2 ] );
	var leftCel0  = document.getElementById( "cell_" + tmpCellInfo[ 0 ] + "_" + tmpCellInfo[ 1 ] + "_0" );
	var leftCel1  = document.getElementById( "cell_" + tmpCellInfo[ 0 ] + "_" + tmpCellInfo[ 1 ] + "_1" );
	var leftCelD  = document.getElementById( "cell_" + tmpCellInfo[ 0 ] + "_" + tmpCellInfo[ 1 ] + "_d" );

	selectCel.style.backgroundColor = "#C23301";
	selectCel.style.color = "#FFFFFF";
	topCel.style.backgroundColor = "#323232";
	topCel.style.color = "#FFFFFF";
	if( leftCel0 != undefined && leftCel0 != null ){
		leftCel0.style.backgroundColor = "#323232";
		leftCel0.style.color = "#FFFFFF";
	}
	if( leftCel1 != undefined && leftCel1 != null ){
		leftCel1.style.backgroundColor = "#323232";
		leftCel1.style.color = "#FFFFFF";
	}
	if( leftCelD != undefined && leftCelD != null ){
		leftCelD.style.backgroundColor = "#323232";
		leftCelD.style.color = "#FFFFFF";
	}

	// 親ノードについても同様の処理をする
	selectCel = selectCel.parentNode;
	topCel    = topCel.parentNode;
	if( leftCel0 != undefined && leftCel0 != null ){
		leftCel0  = leftCel0.parentNode;
	}
	if( leftCel1 != undefined && leftCel1 != null ){
		leftCel1  = leftCel1.parentNode;
	}
	if( leftCelD != undefined && leftCelD != null ){
		leftCelD  = leftCelD.parentNode;
	}

	selectCel.style.backgroundColor = "#C23301";
	selectCel.style.color = "#FFFFFF";
	topCel.style.backgroundColor = "#323232";
	topCel.style.color = "#FFFFFF";
	if( leftCel0 != undefined && leftCel0 != null ){
		leftCel0.style.backgroundColor = "#323232";
		leftCel0.style.color = "#FFFFFF";
	}
	if( leftCel1 != undefined && leftCel1 != null ){
		leftCel1.style.backgroundColor = "#323232";
		leftCel1.style.color = "#FFFFFF";
	}
	if( leftCelD != undefined && leftCelD != null ){
		leftCelD.style.backgroundColor = "#323232";
		leftCelD.style.color = "#FFFFFF";
	}

}

// セルを非アクティブにします
function disableCell( cellName ){

	var tmpCellName = cellName.replace( "cell_", "" );
	var tmpCellInfo = tmpCellName.split( "_" );

	var selectCel = document.getElementById( cellName );
	var topCel    = document.getElementById( "cell_" + tmpCellInfo[ 0 ] + "_0_" + tmpCellInfo[ 2 ] );
	var leftCel0  = document.getElementById( "cell_" + tmpCellInfo[ 0 ] + "_" + tmpCellInfo[ 1 ] + "_0" );
	var leftCel1  = document.getElementById( "cell_" + tmpCellInfo[ 0 ] + "_" + tmpCellInfo[ 1 ] + "_1" );
	var leftCelD  = document.getElementById( "cell_" + tmpCellInfo[ 0 ] + "_" + tmpCellInfo[ 1 ] + "_d" );

	selectCel.style.backgroundColor = "";
	selectCel.style.color = "";
	topCel.style.backgroundColor = "";
	topCel.style.color = "";
	if( leftCel0 != undefined && leftCel0 != null ){
		leftCel0.style.backgroundColor = "";
		leftCel0.style.color = "";
	}
	if( leftCel1 != undefined && leftCel1 != null ){
		leftCel1.style.backgroundColor = "";
		leftCel1.style.color = "";
	}
	if( leftCelD != undefined && leftCelD != null ){
		leftCelD.style.backgroundColor = "";
		leftCelD.style.color = "";
	}

	// 親ノードについても同様の処理をする
	selectCel = selectCel.parentNode;
	topCel    = topCel.parentNode;
	if( leftCel0 != undefined && leftCel0 != null ){
		leftCel0  = leftCel0.parentNode;
	}
	if( leftCel1 != undefined && leftCel1 != null ){
		leftCel1  = leftCel1.parentNode;
	}
	if( leftCelD != undefined && leftCelD != null ){
		leftCelD  = leftCelD.parentNode;
	}

	selectCel.style.backgroundColor = "";
	selectCel.style.color = "";
	topCel.style.backgroundColor = "";
	topCel.style.color = "";
	if( leftCel0 != undefined && leftCel0 != null ){
		leftCel0.style.backgroundColor = "";
		leftCel0.style.color = "";
	}
	if( leftCel1 != undefined && leftCel1 != null ){
		leftCel1.style.backgroundColor = "";
		leftCel1.style.color = "";
	}
	if( leftCelD != undefined && leftCelD != null ){
		leftCelD.style.backgroundColor = "";
		leftCelD.style.color = "";
	}

}

// セルをアクティブにします
function enableLeftCell( cellName ){

	var tmpCellName = cellName.replace( "cell_", "" );
	var tmpCellInfo = tmpCellName.split( "_" );

	var leftCel0 = document.getElementById( "cell_" + tmpCellInfo[ 0 ] + "_" + tmpCellInfo[ 1 ] + "_0" );
	var leftCel1 = document.getElementById( "cell_" + tmpCellInfo[ 0 ] + "_" + tmpCellInfo[ 1 ] + "_1" );
	var leftCelD = document.getElementById( "cell_" + tmpCellInfo[ 0 ] + "_" + tmpCellInfo[ 1 ] + "_d" );

	if( leftCel0 != undefined && leftCel0 != null ){
		leftCel0.style.backgroundColor = "#323232";
		leftCel0.style.color = "#FFFFFF";
	}
	if( leftCel1 != undefined && leftCel1 != null ){
		leftCel1.style.backgroundColor = "#323232";
		leftCel1.style.color = "#FFFFFF";
	}
	if( leftCelD != undefined && leftCelD != null ){
		leftCelD.style.backgroundColor = "#323232";
		leftCelD.style.color = "#FFFFFF";
	}

	// 親ノードについても同様の処理をする
	if( leftCel0 != undefined && leftCel0 != null ){
		leftCel0 = leftCel0.parentNode;
	}
	if( leftCel1 != undefined && leftCel1 != null ){
		leftCel1 = leftCel1.parentNode;
	}
	if( leftCelD != undefined && leftCelD != null ){
		leftCelD = leftCelD.parentNode;
	}

	if( leftCel0 != undefined && leftCel0 != null ){
		leftCel0.style.backgroundColor = "#323232";
		leftCel0.style.color = "#FFFFFF";
	}
	if( leftCel1 != undefined && leftCel1 != null ){
		leftCel1.style.backgroundColor = "#323232";
		leftCel1.style.color = "#FFFFFF";
	}
	if( leftCelD != undefined && leftCelD != null ){
		leftCelD.style.backgroundColor = "#323232";
		leftCelD.style.color = "#FFFFFF";
	}

}

// セルを非アクティブにします
function disableLeftCell( cellName ){

	var tmpCellName = cellName.replace( "cell_", "" );
	var tmpCellInfo = tmpCellName.split( "_" );

	var leftCel0 = document.getElementById( "cell_" + tmpCellInfo[ 0 ] + "_" + tmpCellInfo[ 1 ] + "_0" );
	var leftCel1 = document.getElementById( "cell_" + tmpCellInfo[ 0 ] + "_" + tmpCellInfo[ 1 ] + "_1" );
	var leftCelD = document.getElementById( "cell_" + tmpCellInfo[ 0 ] + "_" + tmpCellInfo[ 1 ] + "_d" );

	if( leftCel0 != undefined && leftCel0 != null ){
		leftCel0.style.backgroundColor = "";
		leftCel0.style.color = "";
	}
	if( leftCel1 != undefined && leftCel1 != null ){
		leftCel1.style.backgroundColor = "";
		leftCel1.style.color = "";
	}
	if( leftCelD != undefined && leftCelD != null ){
		leftCelD.style.backgroundColor = "";
		leftCelD.style.color = "";
	}

	// 親ノードについても同様の処理をする
	if( leftCel0 != undefined && leftCel0 != null ){
		leftCel0 = leftCel0.parentNode;
	}
	if( leftCel1 != undefined && leftCel1 != null ){
		leftCel1 = leftCel1.parentNode;
	}
	if( leftCelD != undefined && leftCelD != null ){
		leftCelD = leftCelD.parentNode;
	}

	if( leftCel0 != undefined && leftCel0 != null ){
		leftCel0.style.backgroundColor = "";
		leftCel0.style.color = "";
	}
	if( leftCel1 != undefined && leftCel1 != null ){
		leftCel1.style.backgroundColor = "";
		leftCel1.style.color = "";
	}
	if( leftCelD != undefined && leftCelD != null ){
		leftCelD.style.backgroundColor = "";
		leftCelD.style.color = "";
	}

}

// セルをアクティブにします
function enableThisCell( cellName ){

	var thisCel = document.getElementById( cellName );

	thisCel.style.backgroundColor = "#323232";
	thisCel.style.color = "#FFFFFF";

	// 親ノードについても同様の処理をする
	thisCel = thisCel.parentNode;

	thisCel.style.backgroundColor = "#323232";
	thisCel.style.color = "#FFFFFF";

}

// セルを非アクティブにします
function disableThisCell( cellName ){

	var thisCel = document.getElementById( cellName );

	thisCel.style.backgroundColor = "";
	thisCel.style.color = "";

	// 親ノードについても同様の処理をする
	thisCel = thisCel.parentNode;

	thisCel.style.backgroundColor = "";
	thisCel.style.color = "";

}



// (すべての変数に格納する値は0オリジンとする) 
function myFormatNumber(x) { // 引数の例としては 95839285734.3245
    var s = "" + x; // 確実に文字列型に変換する。例では "95839285734.3245"
    var p = s.indexOf("."); // 小数点の位置を0オリジンで求める。例では 11
    if (p < 0) { // 小数点が見つからなかった時
        p = s.length; // 仮想的な小数点の位置とする
    }
    var r = s.substring(p, s.length); // 小数点の桁と小数点より右側の文字列。例では ".3245"
    for (var i = 0; i < p; i++) { // (10 ^ i) の位について
        var c = s.substring(p - 1 - i, p - 1 - i + 1); // (10 ^ i) の位のひとつの桁の数字。例では "4", "3", "7", "5", "8", "2", "9", "3", "8", "5", "9" の順になる。
        if (c < "0" || c > "9") { // 数字以外のもの(符合など)が見つかった
            r = s.substring(0, p - i) + r; // 残りを全部付加する
            break;
        }
        if (i > 0 && i % 3 == 0) { // 3 桁ごと、ただし初回は除く
            r = "," + r; // カンマを付加する
        }
        r = c + r; // 数字を一桁追加する。
    }
    return r; // 例では "95,839,285,734.3245"
}

