
//変数設定
cookieName = 'toplocale';         // Cookie名
Debug = false;                    // デバッグフラグ true = "Firebug Console に出力"
var int_ticket_addEvent_flg = false;

function init_int_ticket() {

	int_ticket = new formControll(document.TABLE);

	int_ticket.init = function() {

		/***************************************************************************
		// 各プルダウンの読み込み　@resouce from int_db.js
		***************************************************************************/

		this.formView.createPulldown("depApo", ApoList[CntCode]);		// 出発空港

		this.formView.createPulldown("arrApo", ApoList["JPN"]);					// 到着空港

		var tempList = day_list.slice(0, getDaylength());
		tempList.unshift({value:"", text:"--日"});

		this.formView.createPulldown("wayToMonth", month_list);						// 搭乗日時：往路：月
		this.formView.createPulldown("wayToDay", tempList);							// 　　　　　　　：日

		this.formView.createPulldown("wayBackMonth", month_list);					// 搭乗日時：復路：月
		this.formView.createPulldown("wayBackDay", tempList);						// 　　　　　　　：日

		this.formView.createPulldown("adultCount", persons_list.slice(1, 10));		// 人数：大人
		this.formView.createPulldown("childCount", persons_list.slice(0, 9));		// 　　：子供
		this.formView.createPulldown("babyCount", persons_list.slice(0, 10));		// 　　：幼児	

		this.formView.createPulldown("seatKind", intSeat_list);						// クラス


		/***************************************************************************
		// 各エレメントの初期値のセット
		***************************************************************************/

		var date  = new Date();
		this.formView.setPulldown("wayToMonth", date.getMonth()+1);					// 搭乗日時：往路：月
		this.formView.setPulldown("wayToDay", "");									// 　　　　　　　：日
		this.resetDay("wayToMonth", {value:"", text:"--日"});

		this.formView.setPulldown("wayBackMonth", date.getMonth()+1);				// 搭乗日時：復路：月
		this.formView.setPulldown("wayBackDay", "");								// 　　　　　　　：日

		this.formView.setPulldown("adultCount", 1);									// 人数：大人
		this.formView.setPulldown("childCount", 0);									// 　　：子供
		this.formView.setPulldown("babyCount", 0);									// 　　：幼児	

		// いつもの情報設定
		var _int_seatKind = (seatKind == "") ? "Y" : seatKind;
		this.formView.setPulldown("seatKind", _int_seatKind); 						// クラス	

		// デフォルトセット
		this.formView.setPulldown("depApo", defDepCode);								// 出発空港
		this.formView.setPulldown("arrApo", defArrCode);								// 到着空港

		// いつもの情報設定
		var _depApo1 = (arrApo1 == "") ? "---" : arrApo1;
		this.formView.setPulldown("depApo", _depApo1);								// 出発空港

		// おすすめ情報はuseful.js内にてセット

		// いつもの情報設定
		var _arrApo1 = (depApo1 == "") ? "---" : depApo1;
		this.formView.setPulldown("arrApo", _arrApo1);								// 到着空港

		this.formView.setCodeApo("depApoCode", this.formView.getValue("depApo"));   // 出発空港コード
		this.formView.setCodeApo("arrApoCode", this.formView.getValue("arrApo"));   // 到着空港コード

		/***************************************************************************
		// 各エレメントのイベントのセット
		***************************************************************************/

		// 空港プルダウン変更　=>　空港コードを表示
		this.apoListener = function(eventObj) {
					
			var evt = this.getEventTarget(eventObj);
			if(!evt) evt = eventObj;
			var val = this.formView.getValue(evt);
			if(val == "NOP") val = "";
			
			this.formView.setCodeApo(this.formView.nextElement(evt), val);		
		};

		// 到着空港プルダウン変更　=>　valueが"IDX"の場合その次を表示
		this.depApo = function(evt, val, targetElem) {
			
			if(val == "NOP") {
			
				this.formView.setSelectedIndex(evt, 0);
				val = this.formView.getValue(evt);
			}
			
			if(val == "IDX") {
				
				this.formView.setSelectedIndex(evt, this.formView.getSelectedIndex(evt)+1);
			}					
			this.apoListener(evt);
		};

		// 到着空港プルダウン変更　=>　valueが"IDX"の場合その次を表示
		this.arrApo = function(evt, val, targetElem) {
			
			if(val == "NOP") {
			
				this.formView.setSelectedIndex(evt, 0);
				val = this.formView.getValue(evt);
			}
			
			if(val == "IDX") {
				
				this.formView.setSelectedIndex(evt, this.formView.getSelectedIndex(evt)+1);
			}					
			this.apoListener(evt);
		};		
		
		
		// 搭乗日時：往路：月プルダウン変更　=>　往路：日を1日に設定　=>　復路：月日を3日後に設定
		this.wayToMonth = function(evt, val, targetElem) {
					
			this.formView.setPulldown(targetElem, 1);
			this.relationListener(targetElem);// 往路：日プルダウンのイベント呼び出し
		};		
		

		// 搭乗日時：往路：日プルダウン変更　=>　復路：月日を3日後に設定
		this.wayToDay = function(evt, val, targetElem) {

			var toMonth = this.formView.previousElement(evt);			// 往路：月
			var backMonth = targetElem;									// 復路：月
			this.setMonthDay(toMonth, evt, backMonth, 3, {value:"", text:"--日"});
			// 日付プルダウンに曜日付加
			//this.formView.addWeekPulldown(evt);
			//this.formView.addWeekPulldown("wayBackDay");
		};

		// 搭乗日時：復路：月プルダウン変更　=>　復路：日を1日に設定
		this.wayBackMonth = function(evt, val, targetElem) {

			this.formView.setPulldown(targetElem, 1);
			this.resetDay(evt, {value:"", text:"--日"});
			// 日付プルダウンに曜日付加
			//this.formView.addWeekPulldown("wayBackDay");
		};

		// イベントの追加（一度追加したら追加しない）
		if(int_ticket_addEvent_flg == false){
			// 空港プルダウン変更　=>　空港コードを表示
			this.addEvent("depApo", "change", this.delegate(this, this.apoListener));
			this.addEvent("arrApo", "change", this.delegate(this, this.apoListener));
			// 到着空港プルダウン変更　=>　valueが"IDX"の場合その次を表示
			this.addEvent("depApo", "change", this.delegate(this, this.relationListener));
			this.addEvent("arrApo", "change", this.delegate(this, this.relationListener));
			// 搭乗日時：往路：月プルダウン変更　=>　往路：日を1日に設定　=>　復路：月日を3日後に設定
			this.addEvent("wayToMonth", "change", this.delegate(this, this.relationListener));
			// 搭乗日時：往路：日プルダウン変更　=>　復路：月日を3日後に設定
			this.addEvent("wayToDay", "change", this.delegate(this, this.relationListener));
			// 搭乗日時：復路：月プルダウン変更　=>　復路：日を1日に設定
			this.addEvent("wayBackMonth", "change", this.delegate(this, this.relationListener));		
			// フォーム送信イベント
			//this.addEvent(document.getElementById("BtnIntTkHtTk"), "click", this.delegate(this, this.submitForm));

			int_ticket_addEvent_flg = true;
		}


		// フォーム送信の前処理
		/*
		this.submitBefore = function() {

			with (this.form) {
				wayToMonth.options[wayToMonth.selectedIndex].value     = Number(wayToMonth.value);
				wayToDay.options[wayToDay.selectedIndex].value         = Number(wayToDay.value);
				wayBackMonth.options[wayBackMonth.selectedIndex].value = Number(wayBackMonth.value);
				wayBackDay.options[wayBackDay.selectedIndex].value     = Number(wayBackDay.value);
			}

		};
		*/

	}

	int_ticket.init();

}

window.onload = function() {

		// おすすめ情報
		switch (CntCode) {
			case "CHN":
				loadUse();
				break;
		}

}

// 二度フラグ
ticSubmited = false;

// フォーム送信
function TicOnSubmit() {
	
    with (document.TABLE) {
        wayToMonth.options[wayToMonth.selectedIndex].value     = Number(wayToMonth.value);
        wayToDay.options[wayToDay.selectedIndex].value         = Number(wayToDay.value);
        wayBackMonth.options[wayBackMonth.selectedIndex].value = Number(wayBackMonth.value);
        wayBackDay.options[wayBackDay.selectedIndex].value     = Number(wayBackDay.value);
    }

    if (ticSubmited) return false;
    ticSubmited = true;
    return true;
}
