/*******************************************************************************
 * 初期化
 * 
 *******************************************************************************/

//カレンダー表示（IE6以下、Safari3以下は表示しない）
if ((underMSIE6()) || (underSafari3())) {
	document.getElementById("calImg1").style.display = "none";
	document.getElementById("calImg2").style.display = "none";
} else {
	Debug = false;
	PCP_t = new PopupCalendarProperties();
	var moneMonth = parseInt(embMonth) - 1;
	var DU_t = new DateUtil(embYear, moneMonth, embDay, PCP_t);
	var cal2 = new PopupCalendar("cal2", "calid2", "wayBackMonth", "wayBackDay", "2", "calImg2", "0px", "0px", "", 0, 0, "0", document.TABLE, "", 0, DU_t);
	var cal1 = new PopupCalendar("cal1", "calid1", "wayToMonth", "wayToDay", "1", "calImg1", "0px", "0px", "", 0, 0, "1", document.TABLE, cal2, 3, DU_t);
	var CalendarContoroller = new CalendarContoroller(cal1, cal2);

}

//現在日の取得
var nowYs = new Date();
var nowY = nowYs.getFullYear();

//初期化
//changeTab("ticket");

//モジュール切り替え（航空券）
function changeTicketTab(unit) {

	switch(unit) {

		case "RoundTrip":
			document.getElementById("intSrch03").checked = true;
			document.getElementById("intSrch04").checked = false;
			if (document.getElementById("Srch_rt") != null) { // 「検索方法」削除対策
				document.getElementById("Srch_rt").style.display = 'block';
			}
			document.getElementById("Search_o").style.display = 'block';
	// 検索オプションの作成（リスト内容は_int_seatKindによる）
	SeatValue = document.getElementById("Seat_ticket").value;
	if (document.getElementById("Options_ticket") != null) {
			if (document.getElementById("Srch_rt") != null) { // 「検索方法」削除対策
		if (document.getElementById("intSrch01").checked == true) { // 指定日
		if ((SeatValue == "Y") || (SeatValue == "C")) {// エコノミーとビジネスクラスのみ表示
			document.getElementById("Options_area01").style.display = 'block';
			// リストの内容を更新
			var Options_ticket = new listTag("Options_ticket", intOptions_list[SeatValue], "", false);
		} else {// ファーストクラスは非表示
			document.getElementById("Options_area01").style.display = 'none';
		}
		}
			} else {
		if ((SeatValue == "Y") || (SeatValue == "C")) {// エコノミーとビジネスクラスのみ表示
			document.getElementById("Options_area01").style.display = 'block';
			// リストの内容を更新
			var Options_ticket = new listTag("Options_ticket", intOptions_list[SeatValue], "", false);
		} else {// ファーストクラスは非表示
			document.getElementById("Options_area01").style.display = 'none';
		}
			}
	}
		break;

		case "OneWay":
			document.getElementById("intSrch03").checked = false;
			document.getElementById("intSrch04").checked = true;
			if (document.getElementById("Srch_rt") != null) { // 「検索方法」削除対策
			document.getElementById("Srch_rt").style.display = 'none';
			}
			document.getElementById("Search_o").style.display = 'none';
			if (document.getElementById("Options_area01") != null) {
				document.getElementById("Options_area01").style.display = 'none';
			}
		break;

		default:
			document.getElementById("intSrch03").checked = true;
			document.getElementById("intSrch04").checked = false;
			if (document.getElementById("Srch_rt") != null) { // 「検索方法」削除対策
			document.getElementById("Srch_rt").style.display = 'block';
			}
			document.getElementById("Search_o").style.display = 'block';
			document.getElementById("Options_area01").style.display = 'block';
	// 検索オプションの作成（リスト内容は_int_seatKindによる）
	SeatValue = document.getElementById("Seat_ticket").value;
	if (document.getElementById("Options_ticket") != null) {
			if (document.getElementById("Srch_rt") != null) { // 「検索方法」削除対策
		if (document.getElementById("intSrch01").checked == true) { // 指定日
		if ((SeatValue == "Y") || (SeatValue == "C")) {// エコノミーとビジネスクラスのみ表示
			document.getElementById("Options_area01").style.display = 'block';
			// リストの内容を更新
			var Options_ticket = new listTag("Options_ticket", intOptions_list[SeatValue], "", false);
		} else {// ファーストクラスは非表示
			document.getElementById("Options_area01").style.display = 'none';
		}
		}
			} else {
		if ((SeatValue == "Y") || (SeatValue == "C")) {// エコノミーとビジネスクラスのみ表示
			document.getElementById("Options_area01").style.display = 'block';
			// リストの内容を更新
			var Options_ticket = new listTag("Options_ticket", intOptions_list[SeatValue], "", false);
		} else {// ファーストクラスは非表示
			document.getElementById("Options_area01").style.display = 'none';
		}
			}
	}
		break;

	}
}

// 「指定日のみ」「前後3日」切り替え
function ModuleChange(kind) {

	//検索オプション（Options_area01）の切り替え
	if (document.getElementById("Options_area01") != null) {
		var SeatValue = document.getElementById("Seat_ticket").value;
		switch(kind) {
			case "nom":
				if ((SeatValue == "Y") || (SeatValue == "C")) {// エコノミーとビジネスクラスのみ表示
					document.getElementById("Options_area01").style.display = 'block';
					var Options_ticket = new listTag("Options_ticket", intOptions_list[SeatValue], "", false);
				} else {
					document.getElementById("Options_area01").style.display = 'none';
				}
			break;
			case "add":
				document.getElementById("Options_area01").style.display = 'none';
			break;
			default:
				if ((SeatValue == "Y") || (SeatValue == "C")) {// エコノミーとビジネスクラスのみ表示
					document.getElementById("Options_area01").style.display = 'block';
					var Options_ticket = new listTag("Options_ticket", intOptions_list[SeatValue], "", false);
				} else {
					document.getElementById("Options_area01").style.display = 'none';
				}
			break;
		}
	}

	//プロモーションコード（Options_area02）の切り替えが発生する北米のみ対応
	if (document.getElementById("Options_area02") != null) {
		switch(kind) {
			case "nom":
				document.getElementById("Options_area02").style.display = 'block';
			break;
			case "add":
				document.getElementById("Options_area02").style.display = 'none';
			break;
			default:
				document.getElementById("Options_area02").style.display = 'block';
			break;
		}
	}

}

//------------------------------------------------------------------------航空券
function ticketInit() {

	//初期化
	document.getElementById("intSrch03").checked = true;
	changeTicketTab("RoundTrip");

	//初期化
	if((typeof defEur != "undefined") && defEur == true) {
			if (document.getElementById("Srch_rt") != null) { // 「検索方法」削除対策
		document.getElementById("intSrch02").checked = true;
		ModuleChange("add");
		} else {
		ModuleChange("nom");
		}
	}else{
			if (document.getElementById("Srch_rt") != null) { // 「検索方法」削除対策
		document.getElementById("intSrch01").checked = true;
		}
		ModuleChange("nom");
	}

	//初期値変数
	var _month1 = embMonth;
	var _day1 = "";
	var _days3_reMonth = "";
	var _days3_reDay = "";
	var _int_members1 = "";
	var _int_members2 = "";
	var _int_members3 = "";
	var _int_seatKind = "";
	var _int_option = "";
	var _trip_ticket = "06";
	var _monthCal = "";

	//初期値設定：日付取得 3日後取得
	var Days3 = new Array();
	Days3 = getDays(3, embYear, embMonth, embDay);
	Days3["day"] = "";
	_days3_reMonth = Days3["month"];
	if (_month1.length == 1) {
		_month1 = "0" + String(_month1);
	}

	// いつもの設定：搭乗クラス
	if (seatKind == "") {
		_int_seatKind = "Y";
	} else {
		_int_seatKind = seatKind;
	}

	if (_month1.length == 1) {
		_month1 = "0" + String(_month1);
	}

	if (_day1.length == 1) {
		_day1 = "0" + String(_day1);
	}

	if (_days3_reMonth.length == 1) {
		_days3_reMonth = "0" + String(_days3_reMonth);
	}

	if (_days3_reDay.length == 1) {
		_days3_reDay = "0" + String(_days3_reDay);
	}

	//モジュール初期化
	var toDay_ticket = new dayTag("toDay_ticket", "ja", "", _month1);
	var toMonth_ticket = new monthTag("toMonth_ticket", "ja", true, "-", "", _month1, toDay_ticket);
	var backDay_ticket = new dayTag("backDay_ticket", "ja", "", _days3_reMonth);
	var backMonth_ticket = new monthTag("backMonth_ticket", "ja", true, "-", "", _month1, backDay_ticket);
	var Members1_ticket = new listTag("Members1_ticket", intMembers_list, _int_members1, false);
	var Members2_ticket = new listTag("Members2_ticket", intMembers8_list, _int_members2, true);
	var Members3_ticket = new listTag("Members3_ticket", intMembers_list, _int_members3, true);
	var Seat_ticket = new listTag("Seat_ticket", intSeat_list, _int_seatKind, false);

	// 検索オプションの作成（リスト内容は_int_seatKindによる）
	if((typeof defEur == "undefined") || (defEur != true)) {
		if (document.getElementById("Options_ticket") != null) {
			if ((_int_seatKind == "Y") || (_int_seatKind == "C")) {// エコノミーとビジネスクラスのみ表示
				document.getElementById("Options_area01").style.display = 'block';
				// リストの内容を更新
				var Options_ticket = new listTag("Options_ticket", intOptions_list[_int_seatKind], _int_option, false);
			} else {// ファーストクラスは非表示
				if (document.getElementById("Options_area01") != null) {
					document.getElementById("Options_area01").style.display = 'none';
				}
			}
		}
	}
	
	//日の再ロード（履歴のセット）
	toDay_ticket.ZeroDay = true;
	toDay_ticket.defaultValue = _day1;
	toDay_ticket.onLoad();
	backDay_ticket.ZeroDay = true;
	backDay_ticket.defaultValue = _days3_reDay;
	backDay_ticket.onLoad();

	//カレンダー年
	var CalYear = Days3["year"];

	//クラスオーバーライド
	var monthMove = false;
	toDay_ticket.onChangeOverride = function() {

		// 20120229対応-------------------------
		var GoMonth = document.getElementById("toMonth_ticket").value;
		var GoDay = document.getElementById("toDay_ticket").value;
		var GoYear = getCorrectYear(embYear, GoMonth, embMonth);
		var dayList = new Array();
		dayList = createDayList(GoYear, GoMonth, true);
		createDropDown("toDay_ticket", dayList, false);
		setDropDown("toDay_ticket", GoDay);
		addWeekDropDown(GoMonth, "toDay_ticket");
		//---------------------------------

		var Days = new Array();
		if ((document.getElementById("toDay_ticket").value == "") || (monthMove == true)) {
			setDropDown("toDay_ticket", "01");
		}
		// 20120229対応-------------------------
		Days = getDays(3, GoYear, document.getElementById("toMonth_ticket").value, document.getElementById("toDay_ticket").value);
		if (parseInt(Days["month"], 10) == parseInt(embMonth, 10)) {
			Days["year"] = parseInt(embYear, 10);
		}
		//---------------------------------
		document.getElementById("backMonth_ticket").value = Days["month"];

		if (monthMove == true) {
			Days["day"] = "04";
		}

		// 20120229対応-------------------------
		if (String(Days["month"]).length == 1) {
			var DmonthZERO = "0" + String(Days["month"]);
		} else {
			var DmonthZERO = String(Days["month"]);
		}
		var SelectDate29 = String(Days["year"]) + String(DmonthZERO);
		if (String(embMonth).length == 1) {
			var SmonthZERO = "0" + String(embMonth);
		} else {
			var SmonthZERO = String(embMonth);
		}
		var NowDate29 = String(embYear) + String(SmonthZERO);
		var SelectYear29 = getCorrectYear(Days["year"], SelectDate29, NowDate29);
		var dayList = new Array();
		dayList = createDayList(SelectYear29, Days["month"], true);
		createDropDown("backDay_ticket", dayList, false);
		setDropDown("backDay_ticket", Days["day"]);
		addWeekDropDown(Days["month"], "backDay_ticket");
		//---------------------------------

		monthMove = false;
	}
	toMonth_ticket.onChangeOverride = function() {
		monthMove = true;
		toDay_ticket.onChange();
	}
	backMonth_ticket.onChangeOverride = function() {
		// 20120229対応-------------------------
		var BackMonth = document.getElementById("backMonth_ticket").value;
		var BackDay = document.getElementById("backDay_ticket").value;
		var BackYear = getCorrectYear(embYear, BackMonth, embMonth);
		var dayList = new Array();
		dayList = createDayList(BackYear, BackMonth, true);
		createDropDown("backDay_ticket", dayList, false);
		setDropDown("backDay_ticket", BackDay);
		addWeekDropDown(BackMonth, "backDay_ticket");
		//---------------------------------
	}

	// クラスを変更したら、検索オプションのリスト内容が更新される。
	Seat_ticket.onChangeOverride = function() {
		if (document.getElementById("intSrch03").checked == true) { // 往路
			if (document.getElementById("Srch_rt") != null) { // 「検索方法」削除対策
		if (document.getElementById("intSrch01").checked == true) { // 指定日
			if (document.getElementById("Options_ticket") != null) {// 検索オプションの存在チェック
				// クラスのvalueを取得
				var ClassValue = document.getElementById("Seat_ticket").value;
				if ((ClassValue == "Y") || (ClassValue == "C")) {// エコノミーとビジネスクラスのみ表示
					document.getElementById("Options_area01").style.display = 'block';
					// リストの内容を更新
					createDropDown("Options_ticket", intOptions_list[ClassValue], false);
				} else {// ファーストクラスは非表示
					document.getElementById("Options_area01").style.display = 'none';
				}
			}
		}
			} else {
			if (document.getElementById("Options_ticket") != null) {// 検索オプションの存在チェック
				// クラスのvalueを取得
				var ClassValue = document.getElementById("Seat_ticket").value;
				if ((ClassValue == "Y") || (ClassValue == "C")) {// エコノミーとビジネスクラスのみ表示
					document.getElementById("Options_area01").style.display = 'block';
					// リストの内容を更新
					createDropDown("Options_ticket", intOptions_list[ClassValue], false);
				} else {// ファーストクラスは非表示
					document.getElementById("Options_area01").style.display = 'none';
				}
			}
			}
		}
	}

}

/*******************************************************************************
 * Submit関数
 * 
 *******************************************************************************/
//------------------------------------------------------------------------航空券
function ticketSubmit(strGet) {

	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);
	}

	// LANGパラメータの付加
	var LANG = "";
	if (typeof CntCode != "undefined") {
		if (CntCode != "") {
			LANG += "&CONNECTION_KIND=" + CntCode;
		}
	}
	//if (document.getElementById("Options_ticket") != null) {
		LANG += "&LANG=" + LANG_PARAM;
	//}

	//遷移先の変更
	if (document.getElementById("intSrch04").checked == true) {
		// 運賃カレンダー
		document.getElementById("TABLE").action = log_url['int_tic_sub2_2'] + "?rand=" + strGet + LANG;
	} else {
			if (document.getElementById("Srch_rt") != null) { // 「検索方法」削除対策
	if (document.getElementById("intSrch02").checked == true){
		//指定日+-3日間
		document.getElementById("TABLE").action = log_url['int_tic_sub3'] + "?rand=" + strGet + LANG;
	} else {
		//指定日のみ
		document.getElementById("TABLE").action = log_url['int_tic_sub'] + "?rand=" + strGet + LANG;
	}
			} else {
		document.getElementById("TABLE").action = log_url['int_tic_sub3'] + "?rand=" + strGet + LANG;
			}
	}

	return true;

}

function ClassChange() {
}


/*******************************************************************************
 * 汎用関数
 * 
 *******************************************************************************/
//画面ロード
window.onload=function(){
	// モジュール（空港以外）
	ticketInit();
	// モジュール（空港）
	loadInit();
	// おすすめ情報
	if (typeof CntCode != "undefined") {
		switch (CntCode) {
			case "CHN":
				loadUse();
				break;
			default:
				break;
		}
	}
}

