
YAHOO.namespace("reservation.calendar");
var holidaysJson = null;

function init() {
	var today = new Date();
	today.setTime(today.getTime() + (7 * 1000 * 60 * 60 * 24));
	YAHOO.reservation.calendar.cal1 = new YAHOO.widget.CalendarGroup("cal1","cal1Container", {
		mindate: (today.getMonth() + 1) + '/' + today.getDate() + '/' + today.getFullYear(), 
		START_WEEKDAY: 0, title:"Please select the check-in:", close:true
	} );
	YAHOO.reservation.calendar.cal2 = new YAHOO.widget.CalendarGroup("cal2","cal2Container", {
		mindate: (today.getMonth() + 1) + '/' + today.getDate() + '/' + today.getFullYear(), 
		START_WEEKDAY: 0, title:"Please select the check-out:", close:true
	} );

	// cal1
	// Correct formats for Japan: yyyy/mm/dd, mm/dd, yyyy/mm
	YAHOO.reservation.calendar.cal1.cfg.setProperty("MDY_YEAR_POSITION", 1);
	YAHOO.reservation.calendar.cal1.cfg.setProperty("MDY_MONTH_POSITION", 2);
	YAHOO.reservation.calendar.cal1.cfg.setProperty("MDY_DAY_POSITION", 3);

	YAHOO.reservation.calendar.cal1.cfg.setProperty("MY_YEAR_POSITION", 1);
	YAHOO.reservation.calendar.cal1.cfg.setProperty("MY_MONTH_POSITION", 2);

/*
	// Date labels for Japanese locale
	YAHOO.reservation.calendar.cal1.cfg.setProperty("MONTHS_SHORT",   ["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"]);
	YAHOO.reservation.calendar.cal1.cfg.setProperty("MONTHS_LONG",    ["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"]);
	YAHOO.reservation.calendar.cal1.cfg.setProperty("WEEKDAYS_1CHAR", ["\u65E5", "\u6708", "\u706B", "\u6C34", "\u6728", "\u91D1", "\u571F"]);
	YAHOO.reservation.calendar.cal1.cfg.setProperty("WEEKDAYS_SHORT", ["\u65E5", "\u6708", "\u706B", "\u6C34", "\u6728", "\u91D1", "\u571F"]);
	YAHOO.reservation.calendar.cal1.cfg.setProperty("WEEKDAYS_MEDIUM",["\u65E5", "\u6708", "\u706B", "\u6C34", "\u6728", "\u91D1", "\u571F"]);
	YAHOO.reservation.calendar.cal1.cfg.setProperty("WEEKDAYS_LONG",  ["\u65E5", "\u6708", "\u706B", "\u6C34", "\u6728", "\u91D1", "\u571F"]);
*/			
	// cal2
	// Correct formats for Japan: yyyy/mm/dd, mm/dd, yyyy/mm
	YAHOO.reservation.calendar.cal2.cfg.setProperty("MDY_YEAR_POSITION", 1);
	YAHOO.reservation.calendar.cal2.cfg.setProperty("MDY_MONTH_POSITION", 2);
	YAHOO.reservation.calendar.cal2.cfg.setProperty("MDY_DAY_POSITION", 3);

	YAHOO.reservation.calendar.cal2.cfg.setProperty("MY_YEAR_POSITION", 1);
	YAHOO.reservation.calendar.cal2.cfg.setProperty("MY_MONTH_POSITION", 2);

/*
	// Date labels for Japanese locale
	YAHOO.reservation.calendar.cal2.cfg.setProperty("MONTHS_SHORT",   ["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"]);
	YAHOO.reservation.calendar.cal2.cfg.setProperty("MONTHS_LONG",    ["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"]);
	YAHOO.reservation.calendar.cal2.cfg.setProperty("WEEKDAYS_1CHAR", ["\u65E5", "\u6708", "\u706B", "\u6C34", "\u6728", "\u91D1", "\u571F"]);
	YAHOO.reservation.calendar.cal2.cfg.setProperty("WEEKDAYS_SHORT", ["\u65E5", "\u6708", "\u706B", "\u6C34", "\u6728", "\u91D1", "\u571F"]);
	YAHOO.reservation.calendar.cal2.cfg.setProperty("WEEKDAYS_MEDIUM",["\u65E5", "\u6708", "\u706B", "\u6C34", "\u6728", "\u91D1", "\u571F"]);
	YAHOO.reservation.calendar.cal2.cfg.setProperty("WEEKDAYS_LONG",  ["\u65E5", "\u6708", "\u706B", "\u6C34", "\u6728", "\u91D1", "\u571F"]);
*/			
	var selectHandlerCal1 = function(type, args, obj) {
		var dates = args[0];
		var date = dates[0];
		var year = date[0], month = date[1], day = date[2];
		var str_date = year + '/' + month + '/' + day;
		$('checkin').value = str_date;
		YAHOO.reservation.calendar.cal1.hide();
		setEstimate();
	};

	var deselectHandlerCal1 = function(type, args, obj) {
		//$('checkin').value = '';
		//setEstimate();
	};

	showCal1 = function(e) {
		var pos = Position.cumulativeOffset($('checkin'));
		var x = (pos[0] - 160) + 'px';
		var y = (pos[1] + 30) + 'px';
		//e = e || window.event;
		//var x = (Event.pointerX(e) - 100) + 'px';
		//var y = (Event.pointerY(e) + 30) + 'px';
		Element.setStyle('cal1Container', {
										 position: 'absolute',
										 left: x,
										 top: y
										 });
		YAHOO.reservation.calendar.cal2.hide();
		YAHOO.reservation.calendar.cal1.deselectAll();
		YAHOO.reservation.calendar.cal1.addRenderer($('checkin').value, YAHOO.reservation.calendar.cal1.renderCellStyleHighlight1);
		YAHOO.reservation.calendar.cal1.addRenderer($('checkout').value, YAHOO.reservation.calendar.cal1.renderCellStyleHighlight2);
		YAHOO.reservation.calendar.cal1.render();
		YAHOO.reservation.calendar.cal1.show();
	};
	
	YAHOO.reservation.calendar.cal1.selectEvent.subscribe(selectHandlerCal1, YAHOO.reservation.calendar.cal1, true);
	YAHOO.reservation.calendar.cal1.deselectEvent.subscribe(deselectHandlerCal1, YAHOO.reservation.calendar.cal1, true);
	YAHOO.util.Event.addListener("checkin", "click", showCal1);
	
	
	var selectHandlerCal2 = function(type, args, obj) {
		var dates = args[0];
		var date = dates[0];
		var year = date[0], month = date[1], day = date[2];
		var str_date = year + '/' + month + '/' + day;
		$('checkout').value = str_date;
		YAHOO.reservation.calendar.cal2.hide();
		setEstimate();
	};

	var deselectHandlerCal2 = function(type, args, obj) {
		//$('checkout').value = '';
		//setEstimate();
	};

	showCal2 = function(e) {
		var pos = Position.cumulativeOffset($('checkout'));
		var x = (pos[0] - 160) + 'px';
		var y = (pos[1] + 30) + 'px';
		//e = e || window.event;
		//var x = (Event.pointerX(e) - 100) + 'px';
		//var y = (Event.pointerY(e) + 30) + 'px';
		Element.setStyle('cal2Container', {
										 position: 'absolute',
										 left: x,
										 top: y
										 });
		YAHOO.reservation.calendar.cal1.hide();
		YAHOO.reservation.calendar.cal2.deselectAll();
		YAHOO.reservation.calendar.cal2.addRenderer($('checkin').value, YAHOO.reservation.calendar.cal2.renderCellStyleHighlight1);
		YAHOO.reservation.calendar.cal2.addRenderer($('checkout').value, YAHOO.reservation.calendar.cal2.renderCellStyleHighlight2);
		YAHOO.reservation.calendar.cal2.render();
		YAHOO.reservation.calendar.cal2.show();
	};
	
	YAHOO.reservation.calendar.cal2.selectEvent.subscribe(selectHandlerCal2, YAHOO.reservation.calendar.cal2, true);
	YAHOO.reservation.calendar.cal2.deselectEvent.subscribe(deselectHandlerCal2, YAHOO.reservation.calendar.cal2, true);
	YAHOO.util.Event.addListener("checkout", "click", showCal2);
	
	//YAHOO.reservation.calendar.cal1.addRenderer("5/29", YAHOO.reservation.calendar.cal1.renderBodyCellRestricted);
	//YAHOO.reservation.calendar.cal1.addRenderer("2007/5/1-2007/5/7", YAHOO.reservation.calendar.cal1.renderCellStyleHighlight3);

/*
	var feed = holidaysJson.feed;
	var entries = feed.entry || [];
	var holidays = [];

	for (var i = 0; i < feed.entry.length; ++i) {
		var entry = feed.entry[i];
		var title = entry.title.$t;
		var start = entry['gd$when'][0].startTime;
		holidays.push(start.replace(/-/g, '/'));
	}
	YAHOO.reservation.calendar.cal1.addRenderer(holidays.join(','), YAHOO.reservation.calendar.cal1.renderCellStyleHighlight3);
	YAHOO.reservation.calendar.cal2.addRenderer(holidays.join(','), YAHOO.reservation.calendar.cal2.renderCellStyleHighlight3);
*/

	// シーズナリティ
	// A
	//YAHOO.reservation.calendar.cal1.addRenderer("12/31,1/1,1/2,8/13,8/14,8/15,8/16", YAHOO.reservation.calendar.cal1.renderCellStyleHighlight1);
	// B
	//YAHOO.reservation.calendar.cal1.addRenderer("5/3,5/4,5/5", YAHOO.reservation.calendar.cal1.renderCellStyleHighlight1);
	// C
	//YAHOO.reservation.calendar.cal1.addRenderer("", YAHOO.reservation.calendar.cal1.renderCellStyleHighlight1);
	// D
	//YAHOO.reservation.calendar.cal1.addRenderer("", YAHOO.reservation.calendar.cal1.renderCellStyleHighlight1);

	YAHOO.reservation.calendar.cal1.render();
	YAHOO.reservation.calendar.cal2.render();
	
}

YAHOO.util.Event.addListener(window, "load", init);

function handleJson(json) {
		holidaysJson = json;
}
function setHoliday(root) {
}

function activeRoom(e, index) {
	var roomObj = document.getElementsByClassName('room-box', 'rooms');
	roomObj.each(function(obj){
		Element.removeClassName(obj, 'active');
	});
	Element.addClassName(e, 'active');
	$('selected-choice-room').value = index;
	$('selected-choice-room-title').innerHTML = roomsData[index]["title"].replace('<br />', ' ');
	$('selected-choice-room-title2').innerHTML = roomsData[index]["title"].replace('<br />', ' ');
	$('type').value = "choice";
	
	setEstimate();
}

function activeMeal(e, index) {
	var mealObj = document.getElementsByClassName('meal-box', 'meals');
	mealObj.each(function(obj){
		Element.removeClassName(obj, 'active');
	});
	Element.addClassName(e, 'active');
	$('selected-choice-meal').value = index;
	$('selected-choice-meal-title').innerHTML = mealsData[index]["title"].replace('<br />', ' ');
	$('selected-choice-meal-title2').innerHTML = mealsData[index]["title"].replace('<br />', ' ');
	$('type').value = "choice";
	
	setEstimate();
}

function activePlan(e, index) {
	var planObj = document.getElementsByClassName('plan-box', 'plans');
	planObj.each(function(obj){
		Element.removeClassName(obj, 'active');
	});
	Element.addClassName(e, 'active');
	$('selected-plan').value = index;
	$('selected-plan-title').innerHTML = plansData[index]["title"].replace('<br />', ' ');
	$('selected-plan-title2').innerHTML = plansData[index]["title"].replace('<br />', ' ');
	$('type').value = "plan";
	
	setEstimate();
}

function actionConfirm() {
	
	if (!inputCheck()) {
		return false;
	}
	
	$('confirm-checkin').innerHTML = $('checkin').value;
	$('submit-checkin').value = $('checkin').value;

	$('confirm-checkout').innerHTML = $('checkout').value;
	$('submit-checkout').value = $('checkout').value;

	$('confirm-adult').innerHTML = $('adult').value;
	$('submit-adult').value = $('adult').value;

	$('confirm-child').innerHTML = $('child').value || "None";
	$('submit-child').value = $('child').value || "None";

	$('confirm-child-meal').innerHTML = $('child-meal').value || "None";
	$('submit-child-meal').value = $('child-meal').value || "None";

	if ($('type').value == "plan") {
		$('submit-type').value = '1';
		Element.show('confirm-type-plan');
		Element.hide('confirm-type-choice');
		
		var planData = plansData[parseInt($('selected-plan').value)];
		$('confirm-plan').innerHTML = planData["title"];
		$('submit-plan').value = planData["title"].replace('<br />', ' ');
		
		$('confirm-estimate').innerHTML = $('plan-estimate').value;
		$('submit-estimate').value = $('plan-estimate').value;
	} else {
		$('submit-type').value = '2';
		Element.hide('confirm-type-plan');
		Element.show('confirm-type-choice');

		var roomData = roomsData[parseInt($('selected-choice-room').value)];
		var mealData = mealsData[parseInt($('selected-choice-meal').value)];
		$('confirm-room').innerHTML = roomData["title"];
		$('submit-room').value = roomData["title"].replace('<br />', ' ');
		$('confirm-meal').innerHTML = mealData["title"];
		$('submit-meal').value = mealData["title"].replace('<br />', ' ');
		
		$('confirm-estimate').innerHTML = $('choice-estimate').value;
		$('submit-estimate').value = $('choice-estimate').value;
	}
	
	$('confirm-name').innerHTML = $('name').value;
	$('submit-name').value = $('name').value;

	$('confirm-country').innerHTML = $('country').value;
	$('submit-country').value = $('country').value;

	$('confirm-mail').innerHTML = $('mail').value;
	$('submit-mail').value = $('mail').value;

	$('confirm-phone').innerHTML = $('phone').value;
	$('submit-phone').value = $('phone').value;

	$('confirm-text').innerHTML = $('text').value || "None";
	$('submit-text').value = $('text').value || "None";

	

	Dialog.confirm($('confirm-form-box').innerHTML, 
								 {width:500, okLabel: "Send", cancelLabel: "Cancel", 
								 className:"alphacube",
								 id: "confirmDialog",
								 cancel:function(win) {return false;},
								 ok:function(win) {$('confirm-form').submit(); return true;}
								});
	//Dialog.confirm($('confirm-form-box').innerHTML, {className:"alphacube", width:500, height:600, top:100, left:100,
	//																			okLabel: "送信", cancelLabel: "キャンセル",
	//																			onOk:function(win){
	//																				$('confirm-form').submit(); return false;}});
	
}

var errorMessage = "";
function inputCheck() {
	var returnValue = true;
	errorMessage = "";

	if ($('checkin').value == "") {
		errorMessage += "The staying day (check-in) is not input.<br>";
		Element.addClassName('checkin', 'onError');
		if (returnValue) {
			$('checkin').focus();
		}
		returnValue = false;
	} else {
		var checkin = new Date(Date.parse($('checkin').value));
		if (checkin == 'Invalid Date') {
			errorMessage += "The staying day (check-in) is not correct.<br>";
			Element.addClassName('checkin', 'onError');
			if (returnValue) {
				$('checkin').focus();
			}
			returnValue = false;
		} else {
			Element.removeClassName('checkin', 'onError');
		}
	}

	if ($('checkout').value == "") {
		errorMessage += "The staying day (check-out) is not input.<br>";
		Element.addClassName('checkout', 'onError');
		if (returnValue) {
			$('checkout').focus();
		}
		returnValue = false;
	} else {
		var checkout = new Date(Date.parse($('checkout').value));
		if (checkout == 'Invalid Date') {
			errorMessage += "The staying day (check-out) is not correct.<br>";
			Element.addClassName('checkout', 'onError');
			if (returnValue) {
				$('checkout').focus();
			}
			returnValue = false;
		} else {
			Element.removeClassName('checkout', 'onError');
		}
	}

	if ($('checkin').value != "" && $('checkout').value != "") {
		var checkin = new Date(Date.parse($('checkin').value));
		var checkout = new Date(Date.parse($('checkout').value));
		if (checkin != 'Invalid Date' && checkout != 'Invalid Date') {
			if (checkin >= checkout) {
				errorMessage += "The staying day (check-out) is not correct.<br>";
				Element.addClassName('checkout', 'onError');
				if (returnValue) {
					$('checkout').focus();
				}
				returnValue = false;
			} else {
				Element.removeClassName('checkout', 'onError');
			}
		}
	}
	
	if ($('adult').value == "") {
		errorMessage += "The number of staying (adult) has not been selected.<br>";
		Element.addClassName('adult', 'onError');
		if (returnValue) {
			$('adult').focus();
		}
		returnValue = false;
	} else {
		Element.removeClassName('adult', 'onError');
	}

	if ($('child').value != "" && $('child-meal').value == "") {
		errorMessage += "The child's meal has not been selected.<br>";
		Element.addClassName('child-meal', 'onError');
		if (returnValue) {
			$('child-meal').focus();
		}
		returnValue = false;
	} else {
		Element.removeClassName('child-meal', 'onError');
	}

	if ($('type').value == "plan" && $('selected-plan').value == "") {
		errorMessage += "The plan has not been selected.<br>";
		//Element.addClassName('plans', 'onError');
		//if (returnValue) {
		//	$('plans').focus();
		//}
		returnValue = false;
	} else {
		//Element.removeClassName('plans', 'onError');
	}
	
	if ($('type').value == "choice" && $('selected-choice-room').value == "") {
		errorMessage += "The room has not been selected.<br>";
		//Element.addClassName('rooms', 'onError');
		//if (returnValue) {
		//	$('rooms').focus();
		//}
		returnValue = false;
	} else {
		//Element.removeClassName('rooms', 'onError');
	}

	if ($('type').value == "choice" && $('selected-choice-meal').value == "") {
		errorMessage += "Meal has not been selected.<br>";
		//Element.addClassName('meals', 'onError');
		//if (returnValue) {
		//	$('meals').focus();
		//}
		returnValue = false;
	} else {
		//Element.removeClassName('meals', 'onError');
	}


	if ($('name').value == "") {
		errorMessage += "The name is not input.<br>";
		Element.addClassName('name', 'onError');
		if (returnValue) {
			$('name').focus();
		}
		returnValue = false;
	} else {
		Element.removeClassName('name', 'onError');
	}

	if ($('country').value == "") {
		errorMessage += "The country is not input.<br>";
		Element.addClassName('country', 'onError');
		if (returnValue) {
			$('country').focus();
		}
		returnValue = false;
	} else {
		Element.removeClassName('country', 'onError');
	}

	if ($('mail').value == "") {
		errorMessage += "The E-mail is not input.<br>";
		Element.addClassName('mail', 'onError');
		if (returnValue) {
			$('mail').focus();
		}
		returnValue = false;
	} else {
		if (!$('mail').value.match(/^[\w\._-]+@[\w\.-]+\.\w{2,}$/)) {
			errorMessage += "The E-mail is not correct.<br>";
			Element.addClassName('mail', 'onError');
			if (returnValue) {
				$('mail').focus();
			}
			returnValue = false;
		} else {
			Element.removeClassName('mail', 'onError');
			if ($('mail').value != $('reMail').value) {
				errorMessage += "The confirmation E-mail is not correct.<br>";
				Element.addClassName('reMail', 'onError');
				if (returnValue) {
					$('reMail').focus();
				}
				returnValue = false;
			} else {
				Element.removeClassName('reMail', 'onError');
			}
		}
	}

	if ($('phone').value == "") {
		errorMessage += "The telephone number is not input.<br>";
		Element.addClassName('phone', 'onError');
		if (returnValue) {
			$('phone').focus();
		}
		returnValue = false;
	} else {
		Element.removeClassName('phone', 'onError');
	}


	if (errorMessage == "") {
		Element.hide('errorMessageArea');
	} else {
		$('errorMessage').innerHTML = errorMessage;
		Element.show('errorMessageArea');
	}
	return returnValue;
}


var roomsData = [];
var mealsData = [];
var plansData = [];

function setReservationData() {
	var xotree = new XML.ObjTree();
	xotree.force_array = ["room", "meal", "plan"];
	
	var tree = xotree.parseHTTP("reservation.xml");
	var elem;
	
	if ($('type').value == 'choice') {
		Element.addClassName('navi2', 'current');
		Element.removeClassName('navi1', 'current');
		Element.hide('type-plan');
		Element.show('type-choice');
	} else {
		Element.addClassName('navi1', 'current');
		Element.removeClassName('navi2', 'current');
		//Element.hide('type-choice');
		Element.show('type-plan');
	}
	
	if ($('checkin').value) {
		var season = getSeason($('checkin').value);
		$('season-plan').innerHTML = season;
		//$('season-choice').innerHTML = season;
		$('season-plan2').innerHTML = season;
		//$('season-choice2').innerHTML = season;
	}
	
	/*
	// rooms
	elem = $('rooms');
	for (var i=0; i < tree.reservation.rooms.room.length; i++) {
		var divtag = document.createElement("div");
		divtag.setAttribute("id", "room_" + i);
		if (i == parseInt($('selected-choice-room').value)) {
			divtag.className = "room-box active";
			$('selected-choice-room-title').innerHTML = tree.reservation.rooms.room[i].title.replace('<br />', ' ');
			$('selected-choice-room-title2').innerHTML = tree.reservation.rooms.room[i].title.replace('<br />', ' ');
		} else {
			divtag.className = "room-box";
		}
		divtag.onclick = function() { activeRoom(this, parseInt(this.id.replace('room_',''))) };
		divtag.onmouseover = function() { Element.addClassName(this, 'over') };
		divtag.onmouseout = function() { Element.removeClassName(this, 'over') };
		
			var ptag = document.createElement("p");
			ptag.className = "room-title";
			
				var spantag = document.createElement("span");
				spantag.setAttribute("id", "tooltip_room_" + i);
				spantag.innerHTML = tree.reservation.rooms.room[i].title;
				ptag.appendChild(spantag);

			divtag.appendChild(ptag);
			
			var ptag = document.createElement("p");
			ptag.className = "room-image";
			
				var atag = document.createElement("a");
				atag.setAttribute("href", tree.reservation.rooms.room[i].image);
				atag.setAttribute("rel", "lightbox[rooms]");
				atag.setAttribute("title", tree.reservation.rooms.room[i].imageTitle);
				ptag.appendChild(atag);

					var imgtag = document.createElement("img");
					imgtag.setAttribute("src", tree.reservation.rooms.room[i].imageThumb);
					atag.appendChild(imgtag);

			divtag.appendChild(ptag);
			
			var ptag = document.createElement("p");
			ptag.className = "room-comment";
			
				var spantag = document.createElement("span");
				spantag.innerHTML = tree.reservation.rooms.room[i].comment;
				ptag.appendChild(spantag);

			divtag.appendChild(ptag);
			
		elem.appendChild(divtag);
		
		var divtag = document.createElement("div");
		divtag.setAttribute("id", "tooltip_content_room_" + i);
		divtag.className = "tooltip_content_room";
		//divtag.setAttribute("style", "display:none");
		
			var divtag2 = document.createElement("div");
			divtag2.className = "tooltip_content";
			divtag2.innerHTML = tree.reservation.rooms.room[i].tooltip;
			divtag.appendChild(divtag2);
		
		elem.appendChild(divtag);
		
		TooltipManager.addHTML("tooltip_room_" + i, "tooltip_content_room_" + i);
		
		roomsData[i] = {title: tree.reservation.rooms.room[i].title, 
										seasonA: tree.reservation.rooms.room[i].cost.seasonA,
										seasonB: tree.reservation.rooms.room[i].cost.seasonB,
										seasonC: tree.reservation.rooms.room[i].cost.seasonC,
										seasonD: tree.reservation.rooms.room[i].cost.seasonD};
	}

	// meals
	elem = $('meals');
	for (var i=0; i < tree.reservation.meals.meal.length; i++) {
		var divtag = document.createElement("div");
		divtag.setAttribute("id", "meal_" + i);
		if (i == parseInt($('selected-choice-meal').value)) {
			divtag.className = "meal-box active";
			$('selected-choice-meal-title').innerHTML = tree.reservation.meals.meal[i].title.replace('<br />', ' ');
			$('selected-choice-meal-title2').innerHTML = tree.reservation.meals.meal[i].title.replace('<br />', ' ');
		} else {
			divtag.className = "meal-box";
		}
		divtag.onclick = function() { activeMeal(this, parseInt(this.id.replace('meal_',''))) };
		divtag.onmouseover = function() { Element.addClassName(this, 'over') };
		divtag.onmouseout = function() { Element.removeClassName(this, 'over') };
		
			var ptag = document.createElement("p");
			ptag.className = "meal-title";
			
				var spantag = document.createElement("span");
				spantag.setAttribute("id", "tooltip_meal_" + i);
				spantag.innerHTML = tree.reservation.meals.meal[i].title;
				ptag.appendChild(spantag);

			divtag.appendChild(ptag);
			
			var ptag = document.createElement("p");
			ptag.className = "meal-image";
			
				var atag = document.createElement("a");
				atag.setAttribute("href", tree.reservation.meals.meal[i].image);
				atag.setAttribute("rel", "lightbox[meals]");
				atag.setAttribute("title", tree.reservation.meals.meal[i].imageTitle);
				ptag.appendChild(atag);

					var imgtag = document.createElement("img");
					imgtag.setAttribute("src", tree.reservation.meals.meal[i].imageThumb);
					atag.appendChild(imgtag);

			divtag.appendChild(ptag);
			
			var ptag = document.createElement("p");
			ptag.className = "meal-comment";
			
				var spantag = document.createElement("span");
				spantag.innerHTML = tree.reservation.meals.meal[i].comment;
				ptag.appendChild(spantag);

			divtag.appendChild(ptag);
			
		elem.appendChild(divtag);
		
		var divtag = document.createElement("div");
		divtag.setAttribute("id", "tooltip_content_meal_" + i);
		divtag.className = "tooltip_content_meal";
		//divtag.setAttribute("style", "display:none");
		
			var divtag2 = document.createElement("div");
			divtag2.className = "tooltip_content";
			divtag2.innerHTML = tree.reservation.meals.meal[i].tooltip;
			divtag.appendChild(divtag2);
		
		elem.appendChild(divtag);
		
		TooltipManager.addHTML("tooltip_meal_" + i, "tooltip_content_meal_" + i);
		
		mealsData[i] = {title: tree.reservation.meals.meal[i].title, 
										cost: tree.reservation.meals.meal[i].cost};
	}
	*/
	
	// plans
	elem = $('plans');
	for (var i=0; i < tree.reservation.plans.plan.length; i++) {
		var divtag = document.createElement("div");
		divtag.setAttribute("id", "plan_" + i);
		if (i == parseInt($('selected-plan').value)) {
			divtag.className = "plan-box active";
			$('selected-plan-title').innerHTML = tree.reservation.plans.plan[i].title.replace('<br />', ' ');
			$('selected-plan-title2').innerHTML = tree.reservation.plans.plan[i].title.replace('<br />', ' ');
		} else {
			divtag.className = "plan-box";
		}
		
		divtag.onclick = function() { activePlan(this, parseInt(this.id.replace('plan_',''))) };
		divtag.onmouseover = function() { Element.addClassName(this, 'over') };
		divtag.onmouseout = function() { Element.removeClassName(this, 'over') };
		
			var ptag = document.createElement("p");
			ptag.className = "plan-title";
			
				var spantag = document.createElement("span");
				spantag.setAttribute("id", "tooltip_plan_" + i);
				spantag.innerHTML = tree.reservation.plans.plan[i].title;
				ptag.appendChild(spantag);

			divtag.appendChild(ptag);
			
			var ptag = document.createElement("p");
			ptag.className = "plan-image";
			
				var atag = document.createElement("a");
				atag.setAttribute("href", tree.reservation.plans.plan[i].imageRoom);
				atag.setAttribute("rel", "lightbox[plans]");
				atag.setAttribute("title", tree.reservation.plans.plan[i].imageTitleRoom);
				ptag.appendChild(atag);

					var imgtag = document.createElement("img");
					imgtag.setAttribute("src", tree.reservation.plans.plan[i].imageThumbRoom);
					atag.appendChild(imgtag);

				var atag = document.createElement("a");
				atag.setAttribute("href", tree.reservation.plans.plan[i].imageMeal);
				atag.setAttribute("rel", "lightbox[plans]");
				atag.setAttribute("title", tree.reservation.plans.plan[i].imageTitleMeal);
				ptag.appendChild(atag);

					var imgtag = document.createElement("img");
					imgtag.setAttribute("src", tree.reservation.plans.plan[i].imageThumbMeal);
					atag.appendChild(imgtag);

			divtag.appendChild(ptag);
			
			var ptag = document.createElement("p");
			ptag.className = "plan-comment";
			
				var spantag = document.createElement("span");
				spantag.innerHTML = tree.reservation.plans.plan[i].comment;
				ptag.appendChild(spantag);

			divtag.appendChild(ptag);
			
		elem.appendChild(divtag);
		
		var divtag = document.createElement("div");
		divtag.setAttribute("id", "tooltip_content_plan_" + i);
		divtag.className = "tooltip_content_plan";
		//divtag.setAttribute("style", "display:none");
		
			var divtag2 = document.createElement("div");
			divtag2.className = "tooltip_content";
			divtag2.innerHTML = tree.reservation.plans.plan[i].tooltip;
			divtag.appendChild(divtag2);
		
		elem.appendChild(divtag);
		
		TooltipManager.addHTML("tooltip_plan_" + i, "tooltip_content_plan_" + i);
		
		plansData[i] = {title: tree.reservation.plans.plan[i].title, 
										seasonA: tree.reservation.plans.plan[i].cost.seasonA,
										seasonB: tree.reservation.plans.plan[i].cost.seasonB,
										seasonC: tree.reservation.plans.plan[i].cost.seasonC,
										seasonD: tree.reservation.plans.plan[i].cost.seasonD};
	}

}
//Event.observe(window, "load", setReservationData, true);

function setEstimate() {
	var estimateChoice = 0;
	var estimatePlan = 0;
	
	if (($('checkin').value && $('checkout').value) == false || 
			($('adult').selectedIndex != 0) == false) {
		//$('choice-estimate').value = 0 + 'yen';	
		$('plan-estimate').value = 0 + 'yen';	
		//$('choice-estimate2').value = 0 + 'yen';	
		$('plan-estimate2').value = 0 + 'yen';	
		return;
	}
	
	var checkin = new Date(Date.parse($('checkin').value));
	var checkout = new Date(Date.parse($('checkout').value));
	var stayCount = (checkout - checkin) / 1000 / 60 / 60 / 24;
	$('submit-staycount').value = stayCount;
	//alert(stayCount);
	
	var season = getSeason($('checkin').value);
	$('season-plan').innerHTML = season;
	//$('season-choice').innerHTML = season;
	$('season-plan2').innerHTML = season;
	//$('season-choice2').innerHTML = season;
	
	var adult = $('adult').selectedIndex;
	var child = $('child').selectedIndex;
	var childMeal = $('child-meal').selectedIndex;
	
	var people = 0;
	if (childMeal == 1) {
		people = adult;
		if (adult == 1 && child >= 2) {
			people = adult + Math.floor(child / 2);
		}
	} else {
		people = adult + child;
	}
	
	/*
	// choice
	if ($('selected-choice-room').value != "" && $('selected-choice-meal').value) {
		var cost = 0;
		var roomData = roomsData[parseInt($('selected-choice-room').value)];
		var mealData = mealsData[parseInt($('selected-choice-meal').value)];
		
		var costs;
		if (season == 'A') {
			costs = roomData["seasonA"];
		} else if (season == 'B') {
			costs = roomData["seasonB"];
		} else if (season == 'C') {
			costs = roomData["seasonC"];
		} else {
			costs = roomData["seasonD"];
		}
		//alert(costs);
		if (people == 1) {
			cost = parseInt(costs.split(',')[0]);
		} else if (people == 2) {
			cost = parseInt(costs.split(',')[1]);
		} else if (people == 3) {
			cost = parseInt(costs.split(',')[2]);
		} else {
			cost = parseInt(costs.split(',')[3]);
		}
		//alert(cost);
		
		cost += parseInt(mealData["cost"]);
		
		if (childMeal == 0) {
			estimateChoice = (cost * adult) * stayCount;
		} else if (childMeal == 1) {
			var costChild = (cost - 100) / 1.05;
			estimateChoice = ((cost * adult) + (((costChild * 0.5) * 1.05) * child)) * stayCount;
		} else {
			var costChild = (cost - 100) / 1.05;
			estimateChoice = ((cost * adult) + (((costChild * 0.7) * 1.05) * child)) * stayCount;
		}
		
	} else {
		estimateChoice = 0
	}
	*/
	
	// plan
	if ($('selected-plan').value != "") {
		var cost = 0;
		var planData = plansData[parseInt($('selected-plan').value)];
		
		var costs;
		if (season == 'A') {
			costs = planData["seasonA"];
		} else if (season == 'B') {
			costs = planData["seasonB"];
		} else if (season == 'C') {
			costs = planData["seasonC"];
		} else {
			costs = planData["seasonD"];
		}
		//alert(costs);
		if (people == 1) {
			cost = parseInt(costs.split(',')[0]);
		} else if (people == 2) {
			cost = parseInt(costs.split(',')[1]);
		} else if (people == 3) {
			cost = parseInt(costs.split(',')[2]);
		} else {
			cost = parseInt(costs.split(',')[3]);
		}
		//alert(cost);
		
		if (childMeal == 0) {
			estimatePlan = (cost * adult) * stayCount;
		} else if (childMeal == 1) {
			var costChild = (cost - 100) / 1.05;
			estimatePlan = ((cost * adult) + (((costChild * 0.5) * 1.05) * child)) * stayCount;
		} else {
			var costChild = (cost - 100) / 1.05;
			estimatePlan = ((cost * adult) + (((costChild * 0.7) * 1.05) * child)) * stayCount;
		}
		
	} else {
		estimatePlan = 0
	}
	
	//$('choice-estimate').value = addCommas(estimateChoice) + 'yen';	
	$('plan-estimate').value = addCommas(estimatePlan) + 'yen';	
	//$('choice-estimate2').value = addCommas(estimateChoice) + 'yen';	
	$('plan-estimate2').value = addCommas(estimatePlan) + 'yen';	
}

function getSeason(strDate) {
	if (strDate) {
		var d = new Date(Date.parse(strDate));
		var currentDate = (d.getMonth() + 1) + '/' + d.getDate();
		for (var i = 0; i < seasonA.length; i++) {
			if (currentDate == seasonA[i]) {
				return 'A';
			}
		}
		for (var i = 0; i < seasonB.length; i++) {
			if (currentDate == seasonB[i]) {
				return 'B';
			}
		}
		for (var i = 0; i < seasonC.length; i++) {
			if (currentDate == seasonC[i]) {
				return 'C';
			}
		}
		for (var i = 0; i < seasonD.length; i++) {
			if (currentDate == seasonD[i]) {
				return 'D';
			}
		}
	}
	
	return null;
}

var seasonA = [
  '12/31',
  '1/1',
  '1/2',
  '8/13',
  '8/14',
  '8/15',
  '8/16'
];
var seasonB = [
  '2/9',
  '2/10',
  '2/11',
  '2/12',
  '5/3',
  '5/4',
  '5/5',
  '7/17',
  '7/18',
  '7/19',
  '7/20',
  '7/21',
  '7/22',
  '7/23',
  '7/24',
  '7/25',
  '7/26',
  '7/27',
  '7/28',
  '7/29',
  '7/30',
  '7/31',
  '8/1',
  '8/2',
  '8/3',
  '8/4',
  '8/5',
  '8/6',
  '8/7',
  '8/8',
  '8/9',
  '8/10',
  '8/11',
  '8/12',
  '8/17',
  '8/18',
  '8/19',
  '8/20',
  '8/21',
  '8/22',
  '8/23',
  '8/24',
  '8/25',
  '8/26',
  '8/27',
  '8/28',
  '8/29',
  '8/30',
  '8/31'
];
var seasonC = [
  '2/1',
  '2/2',
  '2/3',
  '2/4',
  '2/5',
  '2/6',
  '2/7',
  '2/8',
  '2/9',
  '2/10',
  '2/11',
  '2/12',
  '2/13',
  '2/14',
  '2/15',
  '2/16',
  '2/17',
  '2/18',
  '2/19',
  '2/20',
  '2/21',
  '2/22',
  '2/23',
  '2/24',
  '2/25',
  '2/26',
  '2/27',
  '2/28',
  '2/29',
  '4/29',
  '4/30',
  '5/1',
  '5/2',
  '5/21',
  '5/22',
  '5/23',
  '5/24',
  '5/25',
  '5/26',
  '5/27',
  '5/28',
  '5/29',
  '5/30',
  '5/31',
  '6/1',
  '6/2',
  '6/3',
  '6/4',
  '6/5',
  '6/6',
  '6/7',
  '6/8',
  '6/9',
  '6/10',
  '6/11',
  '6/12',
  '6/13',
  '6/14',
  '6/15',
  '6/16',
  '6/17',
  '6/18',
  '6/19',
  '6/20',
  '6/21',
  '6/22',
  '6/23',
  '6/24',
  '6/25',
  '6/26',
  '6/27',
  '6/28',
  '6/29',
  '6/30',
  '7/1',
  '7/2',
  '7/3',
  '7/4',
  '7/5',
  '7/6',
  '7/7',
  '7/8',
  '7/9',
  '7/10',
  '7/11',
  '7/12',
  '7/13',
  '7/14',
  '7/15',
  '7/16',
  '9/1',
  '9/2',
  '9/3',
  '9/4',
  '9/5',
  '9/6',
  '9/7',
  '9/8',
  '9/9',
  '9/10',
  '9/11',
  '9/12',
  '9/13',
  '9/14',
  '9/15',
  '9/16',
  '9/17',
  '9/18',
  '9/19',
  '9/20',
  '9/21',
  '9/22',
  '9/23',
  '9/24',
  '9/25',
  '9/26',
  '9/27',
  '9/28',
  '9/29',
  '9/30',
  '10/1',
  '10/2',
  '10/3',
  '10/4',
  '10/5',
  '10/6',
  '10/7',
  '10/8',
  '10/9',
  '10/10',
  '10/11',
  '10/12',
  '10/13',
  '10/14',
  '10/15',
  '10/16'
];
var seasonD = [
  '1/3',
  '1/4',
  '1/5',
  '1/6',
  '1/7',
  '1/8',
  '1/9',
  '1/10',
  '1/11',
  '1/12',
  '1/13',
  '1/14',
  '1/15',
  '1/16',
  '1/17',
  '1/18',
  '1/19',
  '1/20',
  '1/21',
  '1/22',
  '1/23',
  '1/24',
  '1/25',
  '1/26',
  '1/27',
  '1/28',
  '1/29',
  '1/30',
  '1/31',
  '3/1',
  '3/2',
  '3/3',
  '3/4',
  '3/5',
  '3/6',
  '3/7',
  '3/8',
  '3/9',
  '3/10',
  '3/11',
  '3/12',
  '3/13',
  '3/14',
  '3/15',
  '3/16',
  '3/17',
  '3/18',
  '3/19',
  '3/20',
  '3/21',
  '3/22',
  '3/23',
  '3/24',
  '3/25',
  '3/26',
  '3/27',
  '3/28',
  '3/29',
  '3/30',
  '3/31',
  '4/1',
  '4/2',
  '4/3',
  '4/4',
  '4/5',
  '4/6',
  '4/7',
  '4/8',
  '4/9',
  '4/10',
  '4/11',
  '4/12',
  '4/13',
  '4/14',
  '4/15',
  '4/16',
  '4/17',
  '4/18',
  '4/19',
  '4/20',
  '4/21',
  '4/22',
  '4/23',
  '4/24',
  '4/25',
  '4/26',
  '4/27',
  '4/28',
  '5/6',
  '5/7',
  '5/8',
  '5/9',
  '5/10',
  '5/11',
  '5/12',
  '5/13',
  '5/14',
  '5/15',
  '5/16',
  '5/17',
  '5/18',
  '5/19',
  '5/20',
  '10/17',
  '10/18',
  '10/19',
  '10/20',
  '10/21',
  '10/22',
  '10/23',
  '10/24',
  '10/25',
  '10/26',
  '10/27',
  '10/28',
  '10/29',
  '10/30',
  '10/31',
  '11/1',
  '11/2',
  '11/3',
  '11/4',
  '11/5',
  '11/6',
  '11/7',
  '11/8',
  '11/9',
  '11/10',
  '11/11',
  '11/12',
  '11/13',
  '11/14',
  '11/15',
  '11/16',
  '11/17',
  '11/18',
  '11/19',
  '11/20',
  '11/21',
  '11/22',
  '11/23',
  '11/24',
  '11/25',
  '11/26',
  '11/27',
  '11/28',
  '11/29',
  '11/30',
  '12/1',
  '12/2',
  '12/3',
  '12/4',
  '12/5',
  '12/6',
  '12/7',
  '12/8',
  '12/9',
  '12/10',
  '12/11',
  '12/12',
  '12/13',
  '12/14',
  '12/15',
  '12/16',
  '12/17',
  '12/18',
  '12/19',
  '12/20',
  '12/21',
  '12/22',
  '12/23',
  '12/24',
  '12/25',
  '12/26',
  '12/27',
  '12/28',
  '12/29',
  '12/30'
];


String.prototype.trim = function() {
   return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
   return this.replace(/^\s+/g,"");
}
String.prototype.rtrim = function() {
   return this.replace(/\s+$/g,"");
}

function addCommas(nStr) {
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

