﻿//宿泊日
this.CAL_LIST_ID = "dyn_cal_list";

this.CAL_LIST_NAME_ID = "dyn_cal_list_";
this.CAL_LIST_P_ID = "dyn_cal_list_n";
this.CAL_LIST_N_ID = "dyn_cal_list_nn";

this.STAY_TXT_ID = "dyn_stay_txt";
this.ADULT_NUM_ID = "dyn_adult_num";
this.CHILD_NUM_ID = "dyn_child_num";
this.ROOM_NUM_ID = "dyn_room_num";
this.BADGET_MIN_ID = "dyn_badget_min";
this.BADGET_MAX_ID = "dyn_badget_max";
this.MEAL_TXT_ID = "dyn_meal_txt";
this.ROOM_TYPE_ID = "dyn_room_tye";
this.HOTEL_TYPE_ID = "dyn_hotel_type";
this.KODAWARI_TXT_ID = "dyn_kodawari_txt";
this.DATE_CHECK_ID = "datecheck";
this.BADGET_TBL = "dyn_badget_tbl";

var MAX_PERSON_COUNT = 7;

function OnLoad(nInitAdult, nInitChild, nInitInfant) {
	
	// サイドバー検索 - 人数選択の初期値
	SetPersonCount('frmSearchItem', 'select0', 7);
	SetPersonCount('frmSearchItem', 'select1', 7);
	SetPersonCount('frmSearchItem', 'select2', 0);
	document.frmSearchItem.select0.selectedIndex = String(nInitAdult);
	document.frmSearchItem.select0.onchange();
	document.frmSearchItem.select1.selectedIndex = String(nInitChild);
	document.frmSearchItem.select1.onchange();
	document.frmSearchItem.select2.selectedIndex = String(nInitInfant);
	document.frmSearchItem.select2.onchange();
}

// 指定のセレクトオブジェクトのOPTION要素を指定の数に設定する
// パラメータ
//	strFormName(String)	: フォーム名
//	strObjName(String)	: オブジェクト名
//	nCount(Number)			: 要素数
function SetPersonCount(strFormName, strObjName, nCount) {
	var nLen;
	var nCnt;
	var objSelect;

	objSelect = window.document.forms[strFormName].elements[strObjName];
	
	// 指定値までオプションを追加する
	nLen = objSelect.length;
	for (nCnt=nLen; nCnt<=nCount; nCnt++) {
		objSelect.options[nCnt] = new Option(String(nCnt)+"人", String(nCnt));
	}
	
	// 指定値より多い分を削除する
	for (nCnt=nCount+1; nCnt<nLen; nCnt++) {
		objSelect.options[nCount+1] = null;
	}
}


// 大人人数の選択が変更された時のイベントハンドラ
// パラメータ
//	strFormName(String)		: フォーム名称
//	strAdultName(String)	: 大人人数選択用オブジェクト名称
//	strChildName(String)	: 子供人数選択用オブジェクト名称
//	strInfantName(String)	: 幼児人数選択用オブジェクト名称
function OnChange_AdultCount(strFormName, strAdultName, strChildName, strInfantName) {
	var objAdult, objChild, objInfant;
	
	// オブジェクト取得
	objAdult = window.document.forms[strFormName].elements[strAdultName];
	objChild = window.document.forms[strFormName].elements[strChildName];
	objInfant = window.document.forms[strFormName].elements[strInfantName];

	// 大人 < 幼児 の場合警告
	if (objAdult.value < objInfant.value) {
		alert('幼児1人に対して大人は1人以上必要です。');
		objInfant.selectedIndex = objAdult.selectedIndex;
	}
	
	// 子供のプルダウンを 7-大人の選択人数 に変更する
	SetPersonCount(strFormName, strChildName, MAX_PERSON_COUNT-objAdult.value);

	// 幼児のプルダウンを 大人の選択人数 に変更する
	SetPersonCount(strFormName, strInfantName, Number(objAdult.value));
}


// 子供人数の選択が変更された時のイベントハンドラ
// パラメータ
//	strFormName(String)		: フォーム名称
//	strAdultName(String)	: 大人人数選択用オブジェクト名称
//	strChildName(String)	: 子供人数選択用オブジェクト名称
//	strInfantName(String)	: 幼児人数選択用オブジェクト名称
function OnChange_ChildCount(strFormName, strAdultName, strChildName, strInfantName) {
	var objChild;
	
	// オブジェクト取得
	objChild = window.document.forms[strFormName].elements[strChildName];

	// 大人のプルダウンを 7-子供の選択人数 に変更する
	SetPersonCount(strFormName, strAdultName, MAX_PERSON_COUNT-objChild.value);
}


// 幼児人数の選択が変更された時のイベントハンドラ
// パラメータ
//	strFormName(String)		: フォーム名称
//	strAdultName(String)	: 大人人数選択用オブジェクト名称
//	strChildName(String)	: 子供人数選択用オブジェクト名称
//	strInfantName(String)	: 幼児人数選択用オブジェクト名称
function OnChange_InfantCount(strFormName, strAdultName, strChildName, strInfantName) {
	var objAdult, objInfant;
	
	// オブジェクト取得
	objAdult = window.document.forms[strFormName].elements[strAdultName];
	objInfant = window.document.forms[strFormName].elements[strInfantName];

	// 大人のプルダウンより多ければ警告
	if (objAdult.value < objInfant.value) {
		alert('幼児1人に対して大人は1人以上必要です。');
		return;
	}
}

// サイド検索：ONLINE予約
function ssDOl(strFormName){
	document.forms[strFormName].dOl.checked = true;
}

// サイド検索：リクエスト予約
function ssDReq(strFormName){
	document.forms[strFormName].dReq.checked = true;
}

// ソート処理
function sendSort(SortValue){
	var formN = document.forms["frmSort"];
	var hdnN  = "hdnSort"
	formN[hdnN].value = SortValue;
	formN.submit();
}

/****************************/
//出発日＆現地出発日
/****************************/

/****************************/
this.dateTxts = [this.Y_TXT_ID, this.M_TXT_ID, this.D_TXT_ID,this.YMD_TXT_ID, this.STAY_TXT_ID, this.ROOM_NUM_ID];

function enableStayDate(CalSelect){
	document.frmSearchItem.dateChgArea.value=CalSelect;
}


/****************************/
function calHideFocus(evt){
	var evt = (evt) ? evt : ((window.event)? event :null);
	var target = (evt.target) ? evt.target : evt.srcElement;
	if(!checkPalNode(target, "dyn_cal", 0)){
		closeCalendar();
	}
}
/****************************/
function checkPalNode(pObj, pClass, pNum){
	if(pNum>9){
		return false;
	}else{
		if(pObj.className==pClass){
			return true;
		}else{
			if(pObj.parentNode){
				return checkPalNode(pObj.parentNode, pClass, pNum+1);
			}else{
				return false;
			}
		}
	}
	
}
// >> added kiwamiUI 2006/10/18
/****************************/
function checkPalNodeId(pObj, pId){
	if(pObj.id==pId){
		return true;
	}else{
		if(pObj.parentNode){
			return checkPalNodeId(pObj.parentNode, pId);
		}else{
			return false;
		}
	}
}
// << added kiwamiUI 2006/10/18
/****************************/
this.calHideList = [this.BADGET_TBL];

function showCalendar(CalSelect){
	
		closeCalAll(); 
		var cal = document.getElementById(this.CAL_LIST_ID);
		cal.style.display = "block";
		hideItems(this.calHideList);
	
		if(isNN || isFF){
			cal.style.cssText = "-moz-opacity: 0; display:block;";
		}else{
		}
		this.fadeObj = cal;
		
		fadeIn();
		
}

/****************************/
this.sId;
this.fadeObj;
function fadeIn(){
	if(isNN || isFF){
		var op = this.fadeObj.style.cssText;
		op = op.split("opacity: ").join("");
		op = op.split("; display: block;").join("");
		op = parseFloat(op);
		try{
			if(op<0.9){
				this.fadeObj.style.cssText = "-moz-opacity: "+(op+(1 - op)/3)+"; display:block;";
				this.sId = setTimeout("fadeIn()", 100);
			}else{
				this.fadeObj.style.cssText = "-moz-opacity: 1; display:block;";
				clearTimeout(this.sId);
			}
		}catch(e){
		}
	}else{
		var op = this.fadeObj.style.filter;
		op = op.split("alpha(opacity=").join("");
		op = op.split(")").join("");
		op = parseInt(op);
		try{
			if(op<100){
				this.fadeObj.style.filter = "alpha(opacity="+(op+(100 - op)/2)+")";
				clearTimeout(this.sId);
				this.sId = setTimeout("fadeIn()", 100);
			}else{
				this.fadeObj.style.filter = "alpha(opacity=100)";
				clearTimeout(this.sId);
			}
		}catch(e){
		}
	}
}
this.calListLen = 5;
function closeCalAll(){
	document.getElementById(this.CAL_LIST_ID).style.display = "none";
	for(var i=1; i<this.calListLen; i++){
	}
}
/****************************/
function closeCalendar(){
	
	closeCalAll();
	visibleItems(this.calHideList);
	btnBlink();
	document.onmousedown = null;
		
}
/****************************/
function setStayDate(pY, pM, pD){

	
	if(pM<10){pM="0"+pM};  //月が一桁の時0を付けて二桁にします
	if(pD<10){pD="0"+pD};  //日が一桁の時0を付けて二桁にします
	
	//現在の選択箇所
	var setId = document.frmSearchItem.dateChgArea.value;
	var thisForm = document.frmSearchItem.elements[setId].value;
	thisForm = pY + "/" + pM + "/" + pD;
	document.getElementById(setId).value = pY + "/" + pM + "/" + pD;
	closeCalendar();
	
	// onchangeが定義されているなら呼び出す
	if (document.getElementById(setId).onchange != null) {
		document.getElementById(setId).onchange();
	}
}


/************************/
function moveCalender(pNum){
	closeCalAll();
	if(pNum==0){

		document.getElementById(this.CAL_LIST_ID_IN).style.display = "block";
		document.getElementById(this.CAL_LIST_ID_OUT).style.display = "block";
	}else{
		document.getElementById(this.CAL_LIST_NAME_ID+pNum).style.display = "block";
	}
}


/****************************/
function setOptionSelected(pSelObj, pIdx){
	var ops = pSelObj.parentNode.getElementsByTagName("option");
	var len = ops.length;
	for(var i=0; i<len; i++){
		if(i==pIdx){
			ops[i].selected = true;
		}else{
			ops[i].selected = false;
		}
	}
}

/************************************************
** utility **
************************************************/

/****************************/
function visibleItems(pArr){
	var len = pArr.length;
	for(var i=0; i<len; i++){
		var obj = document.getElementById(pArr[i]);
		if(obj){
			obj.style.visibility = "visible";
		}
	}
}
/****************************/
function hideItems(pArr){
	var len = pArr.length;
	for(var i=0; i<len; i++){
		var obj = document.getElementById(pArr[i]);
		if(obj){
			obj.style.visibility = "hidden";
		}
	}
}/****************************/
this.blinkArr = new Array();
this.btnObj;
this.defBtnImg;
this.blinkBtnImg;
function setBtnBlink(pBtnId, pDefImg, pBlinkImg){
	uaPreload(pBlinkImg);
	this.btnObj = document.getElementById(pBtnId);
	this.defBtnImg = pDefImg;
	this.blinkBtnImg = pBlinkImg;

	for(var i=3; i<arguments.length; i++){
		this.blinkArr[i-3] = arguments[i];
		this.blinkArr[arguments[i]] = getFormValue(arguments[i]);
	}
}
/****************************/
function btnBlink(){
	var len = this.blinkArr.length;
	for(var i=0; i<len; i++){
		var defVal = getFormValue(this.blinkArr[i]);
		var curVal = this.blinkArr[this.blinkArr[i]];
		if(defVal!=curVal){
			this.btnObj.src = this.blinkBtnImg;
			return true;
		}
	}
	if(this.btnObj)
	this.btnObj.src = this.defBtnImg;
	return true;
}

/****************************/
function btnBlink(){
	var len = this.blinkArr.length;
	for(var i=0; i<len; i++){
		var defVal = getFormValue(this.blinkArr[i]);
		var curVal = this.blinkArr[this.blinkArr[i]];
		if(defVal!=curVal){
			this.btnObj.src = this.blinkBtnImg;
			return true;
		}
	}
	if(this.btnObj)
	this.btnObj.src = this.defBtnImg;
	return true;
}
/****************************/
function getFormValue(pId){
	var obj = document.getElementById(pId);
	var tag = obj.tagName;
	switch(tag.toLowerCase()){
		case "input" :
			var type = obj.getAttribute("type");
			switch(type.toLowerCase()){
				case "text" : return obj.value; break;
				case "radio" : return obj.checked; break;
				case "checkbox" : return obj.checked; break;
			}
			break;
		case "textarea" : return obj.value; break;
		case "select" : 
			var idx = obj.selectedIndex;
			var ops = obj.getElementsByTagName("option");
			return ops[idx].value;
		break;
		case "div" :;
		case "td" :;
		case "span" : return obj.innerHTML;
	}
}
function uaRO(pObj, pPath){
	var tag = pObj.tagName;
	switch(tag.toLowerCase()){
		case "img" : pObj.src = pPath; break;
		case "input" : 
					var type = pObj.getAttribute("type");
					if(type.toLowerCase()=="image"){
						pObj.src = pPath;
					}
					break;
	}
}
function uaPreload(){
	var len = arguments.length;
	this.imgStore = new Array();
	for(var i=0; i<len; i++){
		imgStore[i] = new Image();
		imgStore[i].src = arguments[i];
	}
}
/****************************/
var isMac = false;
var isWin = false;
var isUnix = false;
var isNN = false;
var isIE = false;
var isFF = false;
var isOpera = false;
var brVer = null;

/****************************/
/* ブラウザエージェントプロパティ */
function checkEnv(){
	isMac = (navigator.userAgent.indexOf("Mac") != -1);
	isWin = (navigator.userAgent.indexOf("Win") != -1);
	isUnix = (navigator.userAgent.indexOf("X11") != -1);

	isNN = (navigator.appName.indexOf("Netscape") != -1);
	isIE = (navigator.appName.indexOf("Internet Explorer") != -1);
	isFF = (navigator.userAgent.indexOf("Firefox") != -1);
	isOpera = (navigator.userAgent.indexOf("Opera") != -1);

	brVer = (parseInt(navigator.appVersion));

}
checkEnv();

