//------------------------------------------------------------------------------------------------
//Variable
//------------------------------------------------------------------------------------------------
var sClassName = "";
var flight_area_name = "flight_body";
var checkChar = "○";
var box_name = "Box";

//------------------------------------------------------------------------------------------------
//■お知らせの表示
//------------------------------------------------------------------------------------------------
function pop(nPos) {
	sBody = "";
	sBody += '<span class="TopicsTitle">'+arTitle[nPos]+'</span>';
	sBody += '<span class="TopicsDate">'+arDate[nPos]+'</span>';
	sBody += '<span class="TopicsBody">'+arBody[nPos]+'</span>';
	if (arUrl[nPos] != "") {
		if (arUrlTitle[nPos] == "") {arUrlTitle[nPos] = arUrl[nPos];}
		sBody += '<span class="TopicsUrl"><a href="'+arUrl[nPos]+'" target="_blank" onclick="Glayer.hideAlert();">'+arUrlTitle[nPos]+'</a></span>';
	}

	Glayer.showAlert(sBody);

	return false;
}

//------------------------------------------------------------------------------------------------
//■料金カレンダーのクリック
//------------------------------------------------------------------------------------------------
function flight_open(id, price_id, class_name) {
	if (id == "" || id == null || price_id == "" || price_id == null) {return false;}	//ID指定がないセルはだめ

	var cell = document.getElementById(id);
	var price = cell.childNodes[1].innerText;
	
	Glayer.show();
	var nWidth = 520;
	var nHeight = 550;

	//領域の生成
	var element = document.createElement("div");
	element.id = flight_area_name;
	element.className = "frame"+class_name;

	//表示位置の設定
	element.style.width = nWidth + "px";
	element.style.height = nHeight + "px";
	element.style.left = (getBrowserScrollWidth() + ((getBrowserWidth() - nWidth) / 2)) + "px";
	element.style.top  = (getBrowserScrollHeight() + ((getBrowserHeight() - nHeight) / 2)) + "px";

	//データ出力

	//基本データ
	var sType = id.charAt(0);
	var sDate = id.substring(1);
	ar = sDate.split("-");

	//タイトル
	ele = document.createElement("div");
	ele.className = "title";
	ele.innerHTML = "～フライトをご選択ください～";
	element.insertBefore(ele, null);
	ele = document.createElement("div");
	ele.className = "title";
	ele.innerHTML = "出発日：" + ar[0] + "年" + ar[1] + "月" + ar[2] + "日";
	element.insertBefore(ele, null);

	//ヘッダー -> 中間に
	ele = document.createElement("div");
	ele.className = "header";
	ele.innerHTML = "<a href=\"javascript:void(0);\" onclick=\"return flight_close();\">[閉じる]</a>";
	element.insertBefore(ele, null);

	//フライトヘッダ
	rowElement = document.createElement("div");
	rowElement.className = "flight_row_header frh"+class_name;
	element.insertBefore(rowElement, null);

	ele = document.createElement("div");
	ele.className = "flight_name";
	ele.innerHTML = "ご利用便";
	rowElement.insertBefore(ele, null);

	ele = document.createElement("div");
	ele.className = "flight_time";
	ele.innerHTML = "区間及び出発／到着時刻";
	rowElement.insertBefore(ele, null);

	ele = document.createElement("div");
	ele.className = "flight_price";
	ele.innerHTML = "料金";
	rowElement.insertBefore(ele, null);

	brElement = document.createElement("br");
	brElement.className = "clear";
	rowElement.insertBefore(brElement, null);

	//フライト
	nRow = 0;
	for (i in arFlight[sType]) {
		//料金がない場合は選ばせない
		if (!arPrice[sType][price_id][arFlight[sType][i]["group_no"]]) {
			nPrice = "------";
			bNothing = false;
		} else {
			nPrice = arPrice[sType][price_id][arFlight[sType][i]["group_no"]];
			bNothing = true;
		}
		//1行分のエレメント
		rowElement = document.createElement("div");
		rowElement.className = "flight_row";
		altrow = "";
		if (nRow % 2 == 1) {altrow = " alt_row"+class_name};
		rowElement.className += altrow;
		if (nRow % 5 == 0) {rowElement.className += " line_row"};
		element.insertBefore(rowElement, null);
		
		//区間文字列
		//出発時刻 出発地 → 到着時刻 到着地
		sRoute = "";
		sRoute2 = "";
		for (n in arPattern) {
			if (arPattern[n]["name"] == arFlight[sType][i]["name"]) {
				//期間指定無し->デフォルト
				if (arPattern[n]["date_from"] == "" && arPattern[n]["date_to"] == "") {
					sRoute = arPattern[n]["route"];
					sRoute2 = arPattern[n]["route2"];
				//両期間指定で入っている->完全範囲
				} else if (arPattern[n]["date_from"] != "" && arPattern[n]["date_to"] != "") {
					if (arPattern[n]["date_from"] <= sDate && sDate <= arPattern[n]["date_to"]) {
						sRoute = arPattern[n]["route"];
						sRoute2 = arPattern[n]["route2"];
						break;
					}
				//片方だけ入っている
				} else {
					//Fromのみ指定で該当
					if (arPattern[n]["date_from"] <= sDate && arPattern[n]["date_to"] == "") {
						sRoute = arPattern[n]["route"];
						sRoute2 = arPattern[n]["route2"];
						break;
					//Toのみ指定で該当
					} else if (arPattern[n]["date_from"] == "" && sDate <= arPattern[n]["date_to"]) {
						sRoute = arPattern[n]["route"];
						sRoute2 = arPattern[n]["route2"];
						break;
					}
				}
			}
		}
		if (sRoute == "") {
			sRoute="* * ⇒ * *";
			sRoute2="* * ⇒ * *";

		}
		
		//カラム（便名）
		ele = document.createElement("div");
		ele.className = "flight_name";
		if (bNothing) {
			ele.innerHTML = "<a class=\""+altrow+"\" href=\"javascript:void(0);\" onclick=\"return flight_select('"+sType+"','"+sDate+"','"+arFlight[sType][i]["name"]+"','"+sRoute+"','"+nPrice+"', '"+arFlight[sType][i]["id"]+"','"+price_id+"','"+sRoute2+"');\">"+arFlight[sType][i]["name"]+"</a>";
		} else {
			ele.innerHTML = arFlight[sType][i]["name"];
		}
		rowElement.insertBefore(ele, null);
		//カラム（区間＆時刻）
		ele = document.createElement("div");
		ele.className = "flight_time";
		ele.innerHTML = sRoute;
		rowElement.insertBefore(ele, null);
		//カラム（金額）
		ele = document.createElement("div");
		ele.className = "flight_price";
		ele.innerHTML = nPrice+"円";
		rowElement.insertBefore(ele, null);
		//改行文字
		brElement = document.createElement("br");
		brElement.className = "clear";
		rowElement.insertBefore(brElement, null);
		
		nRow++;
	}

	// body要素にdivエレメントを追加
	var bodyElement = document.getElementsByTagName("body").item(0);
	bodyElement.appendChild(element);

}

//------------------------------------------------------------------------------------------------
//■フライトの選択
//------------------------------------------------------------------------------------------------
function flight_select(tp, dt, nm, tm, pr, fid, pid, tm2) {
	var ele;
	var item;
	var tid;

	if (tp == return_code) {
		plus = selFlight;
	} else {
		plus = 0;
	}
	for (i=0;i<selFlight;i++) {
		no = i + plus;
		ele = document.getElementById(box_name + no);
		ele2 = document.getElementById(box_name + no + "_2");
		if (ele == null || ele2 == null) {
			alert("表示エリアの取得に失敗しました。");
			return flight_close();
		}
		//すでに選択済みのエリアは処理しない
		s = ele.innerHTML;
		if (s.charAt(0) != checkChar) {
			ele.innerHTML = checkChar+"第"+(i+1)+"希望　"+dt+"　"+nm+"便　"+tm+"　"+pr+"円　<a href=\"javascript:void(0);\" onclick=\"return flight_delete('"+box_name+no+"',"+(i+1)+");\">削除</a>";
			ele2.innerHTML = ele.innerHTML;
			
			//フォームに設定
			tid = document.getElementById("tid");
			item = document.getElementById(box_name + no + "Tid");
			item.value = tid.innerText;
			item = document.getElementById(box_name + no + "Fid");
			item.value = fid;
			item = document.getElementById(box_name + no + "Pid");
			item.value = pid;
			item = document.getElementById(box_name + no + "Date");
			item.value = dt;
			item = document.getElementById(box_name + no + "Flight");
			item.value = nm;
			item = document.getElementById(box_name + no + "Route");
			item.value = tm;
			item = document.getElementById(box_name + no + "Route2");
			item.value = tm2;
			item = document.getElementById(box_name + no + "Price");
			item.value = pr;
			item = document.getElementById(box_name + no + "Type");
			item.value = tp;
			item = document.getElementById(box_name + no + "Pr");
			item.value = (i+1);

			return flight_close();
		}
	}

	//選択がいっぱい
	alert("片道で選択できる便数は最大"+selFlight+"件です。");

	return flight_close();
}

//------------------------------------------------------------------------------------------------
//■選択フライトの削除
//------------------------------------------------------------------------------------------------
function flight_delete(id, pr) {
	var ele;
	var item;

	ele = document.getElementById(id);
	ele2 = document.getElementById(id + "_2");
	ele.innerHTML = "－第"+pr+"希望";
	ele2.innerHTML = ele.innerHTML;

	//フォームもクリア
	item = document.getElementById(id + "Tid");
	item.value = "";
	item = document.getElementById(id+ "Fid");
	item.value = "";
	item = document.getElementById(id + "Pid");
	item.value = "";
	item = document.getElementById(id + "Date");
	item.value = "";
	item = document.getElementById(id + "Flight");
	item.value = "";
	item = document.getElementById(id + "Route");
	item.value = "";
	item = document.getElementById(id + "Route2");
	item.value = "";
	item = document.getElementById(id + "Price");
	item.value = "";
	item = document.getElementById(id + "Type");
	item.value = "";
	item = document.getElementById(id + "Pr");
	item.value = "";

	return false;
}

//------------------------------------------------------------------------------------------------
//■フライトダイアログのclose
//------------------------------------------------------------------------------------------------
function flight_close() {
	var bodyElement = document.getElementsByTagName("body").item(0);
	var ele = document.getElementById(flight_area_name);
	bodyElement.removeChild(ele);

	Glayer.hide();
	
	return false;
}

//------------------------------------------------------------------------------------------------
//■料金カレンダーのマウスアウト
//------------------------------------------------------------------------------------------------
function cal_out(id) {
	if (id != "") {
		var ele = document.getElementById(id);
		ele.className = sClassName;
		sClassName = "";
	}
}

//------------------------------------------------------------------------------------------------
//■料金カレンダーのマウスオーバー
//------------------------------------------------------------------------------------------------
function cal_over(id) {
	if (id != "") {
		var ele = document.getElementById(id);
		sClassName = ele.className;
		ele.className += " cal_over";
	}
}

//------------------------------------------------------------------------------------------------
//画面幅の取得
//------------------------------------------------------------------------------------------------
function getBrowserWidth() {
	var nWidth = 0;

	if ( window.innerWidth ) {
		nWidth = window.innerWidth;
	} else if ( document.documentElement && document.documentElement.clientWidth != 0 ) {
		nWidth = document.documentElement.clientWidth;
	} else if ( document.body ) {
		nWidth = document.body.clientWidth;
	}

	return nWidth;
}

//------------------------------------------------------------------------------------------------
//画面高の取得
//------------------------------------------------------------------------------------------------
function getBrowserHeight() {
	var nHeight = 0;
	
	if ( window.innerHeight ) {
		nHeight = window.innerHeight;
	} else if ( document.documentElement && document.documentElement.clientHeight != 0 ) {
		nHeight = document.documentElement.clientHeight;
	} else if ( document.body ) {
		nHeight = document.body.clientHeight;
	}

	return nHeight;
}

//------------------------------------------------------------------------------------------------
//スクロール幅の取得
//------------------------------------------------------------------------------------------------
function getBrowserScrollWidth() {
	return document.documentElement.scrollLeft || document.body.scrollLeft;
}

//------------------------------------------------------------------------------------------------
//スクロール高の取得
//------------------------------------------------------------------------------------------------
function getBrowserScrollHeight() {
	return document.documentElement.scrollTop || document.body.scrollTop;
}


//------------------------------------------------------------------------------------------------
//問い合わせフォームへ
//------------------------------------------------------------------------------------------------
function goRequest(cnt) {
	var box;
	var tp = document.getElementById("RequestWayType");
	var g = 0;
	var r = 0;
	var gDt = "";
	var rDt = "";
	var dt;
	var gDtCnt = 0;
	var rDtCnt = 0;

	//cntは片道で選択できる最大便数
	for (n=0;n<(cnt*2);n++) {
		box = document.getElementById(box_name + n + "Type");
		//往路
		if (box.value == going_code) {
			g++;
			//最も新しい日を取得
			dt = document.getElementById(box_name + n + "Date");
			if (dt.value != "" && gDt != dt.value) {gDtCnt++;}
			if (gDt == "" || gDt < dt.value) {
				gDt = dt.value;
			}
		//復路
		} else if (box.value == return_code) {
			r++;
			//最も古い日を取得
			dt = document.getElementById(box_name + n + "Date");
			if (dt.value != "" && rDt != dt.value) {rDtCnt++;}
			if (rDt == "" || rDt > dt.value) {
				rDt = dt.value;
			}
		}
	}

	//１件も問い合わせが無い場合はだめ
	if (g == 0 && r == 0) {
		alert("ご希望の便を最低１便お選びください。");
		return false;
	}

	//往復タイプの場合はいろいろチェック
	if (tp.value == routing_code) {
		//往復タイプの場合は往復ともに選択が必要
		if (g == 0 || r == 0) {
			alert("往復タイプの商品は往路・復路それぞれで最低１便お選びください。");
			return false;
		}

		//期間指定が妥当かどうかのチェック
		minCount = document.getElementById("staycount").innerText;
		if (minCount == "") {minCount = 0;}
		maxCount = document.getElementById("maxcount").innerText;
		if (maxCount == "") {maxCount = 365;}
		//日数の差
		gg = new Date(gDt.replace("-", "/") + " 00:00:00");
		rr = new Date(rDt.replace("-", "/") + " 00:00:00");
		diff = (rr.getTime() - gg.getTime()) / (24 * 60 * 60 * 1000);
		//往路・復路ともに出発日が同一の場合は明確に日付チェックが可能
		if (gDtCnt == 1 && rDtCnt == 1) {
			if (diff < 0) {		//往復の日が逆転はだめ
				alert("必ず往路出発日以降に復路出発日をご指定ください。");
				return false;
			}
			if (diff < minCount) {		//往復の間がminCount泊未満
				alert("往路出発日と復路出発日の間に最低"+minCount+"泊以上必要です。");
				return false;
			}
			if (maxCount <= diff) {		//往復の間がmaxCount泊以上
				alert("往路出発日から"+maxCount+"日以内帰着の復路出発日をご選択ください。");
				return false;
			}
		//２つ以上の出発日指定がある場合は警告のみ
		} else {
			if (diff < 0 || diff < minCount || maxCount <= diff) {
				return window.confirm("お選びの往復日程によっては組み合わせられない場合がございます。よろしいですか？");
			}
		}
	}

	//document.getElementById("RequestRequestType").value = request_type;
	return window.confirm("お問い合わせ・ご予約の入力フォームに移ります。よろしいですか？");
}

//------------------------------------------------------------------------------------------------
//問い合わせフォーム－送付先へのコピー
//------------------------------------------------------------------------------------------------
function request_sending_set() {
	request_item_copy("RequestLastName", "RequestSendingLastName");
	request_item_copy("RequestFirstName", "RequestSendingFirstName");
	request_item_copy("RequestZipNo", "RequestSendingZipNo");
	request_item_copy("RequestKen", "RequestSendingKen");
	request_item_copy("RequestAddress1", "RequestSendingAddress1");
	request_item_copy("RequestAddress2", "RequestSendingAddress2");
	request_item_copy("RequestTel", "RequestSendingTel");
}

//------------------------------------------------------------------------------------------------
//問い合わせフォーム－搭乗者へのコピー
//------------------------------------------------------------------------------------------------
function request_pax_set() {
	request_item_copy("RequestLastNameKana", "PaxLastName0");
	request_item_copy("RequestFirstNameKana", "PaxFirstName0");
	request_item_copy("RequestAge", "PaxAge0");
	request_item_copy("RequestSex男", "PaxSex0男", true);
	request_item_copy("RequestSex女", "PaxSex0女", true);
}

//------------------------------------------------------------------------------------------------
//問い合わせフォーム－項目コピー
//------------------------------------------------------------------------------------------------
function request_item_copy(fromID, toID, check) {
	var from = document.getElementById(fromID);
	var to = document.getElementById(toID);

	if (from != null && to != null) {
		if (check) {	//チェック系
			//to.setAttribute("checked", from.getAttribute("checked"));
			to.checked = from.checked;
		} else {
			to.value = from.value;
		}
	}
}

//------------------------------------------------------------------------------------------------
//問い合わせフォーム－利用規約同意動作
//------------------------------------------------------------------------------------------------
function confirm_enable(obj, id) {
	var btn = document.getElementById(id);

	if (obj.checked) {	//同意
		btn.removeAttribute("disabled");
	} else {	//不同意
		btn.setAttribute("disabled", true);
	}
}

//------------------------------------------------------------------------------------------------
//問い合わせフォーム－コピペ制御
//------------------------------------------------------------------------------------------------
/*function okdown(event) {
	if(document.all) {
		if((window.event.keyCode == 86 && window.event.ctrlKey) || (window.event.keyCode ==45 && window.event.shiftKey)) {
		return false;
		}
	}else{
		if((event.which == 86 && event.ctrlKey) || (event.which == 45 && event.shiftKey)) {
		return false;
		}
	}
}
function onkdn(target) {
	target.onkeydown = okdown;
}*/

