function FAir_ShowMonth(name){
	var mdate = FT_DateObject(8);
	var year = mdate.getFullYear();
	var month = mdate.getMonth() + 1;
	var selected = "";
	document.write('<select id=',name,'>');
	
	for (var i=month;i<month+13;i++){
		t_m = (i>12)?i%12:i;
		t_y = year + Math.floor((i-1)/12);
		val = t_y + "/" + t_m;
		txt = t_y + "年" + t_m + "月";
		
		if (t_m == month && year == t_y)
			selected = "selected";
		else
			selected = "";
		
		document.write('<option value=\"' + val + '\" '+selected+ '>' + txt + '<\/option>');
	}
	document.write('<\/select>');
}

function FAir_ShowDay(name){
	var mdate = FT_DateObject(8);
	var date = mdate.getDate();
	var selected = "";
	document.write('<select id=',name,'>');
	for (var i=1;i<=31;i++){
		if (i == date)
			selected = "selected";
		else
			selected = "";
		txt = i;
		document.write('<option value=' + i + ' '+selected+ '>' + txt + '<\/option>');
	}
	document.write('<\/select>');
}

function FAir_setPortJP(name){
	var htmlObj = document.getElementById(name);
	i=1;
	for(var key in FAir_japan){
		htmlObj.options[i] = new Option(FAir_japan[key],key);
		i++;
	}
}

function FAir_setArea(name){
	htmlObj = document.getElementById(name);
	
	var i=1;
	for(var key in FAir_area){
		if (!FAir_area[key].j)
			continue;
		htmlObj.options[i] = new Option(FAir_area[key].j,key);
		i++;
	}
}

function FAir_setCountry(name,areaNum){
	htmlObj = document.getElementById(name);
	
	FT_clearOptions(htmlObj);
	
	if (!areaNum)
		return;
	
	items = FAir_area[areaNum].i;
	
	FT_setItems(htmlObj,items,FAir_country);
}

function FAir_setState(name,countryNum){
	htmlObj = document.getElementById(name);
	FT_clearOptions(htmlObj);
	
	if (!countryNum)
		return;
	
	if (!FAir_country[countryNum].s)
		return;
	
	items = FAir_country[countryNum].s;
	
	FT_setItems(htmlObj,items,FAir_state);
}

function FAir_setCity(name,countryNum){
	htmlObj = document.getElementById(name);
	FT_clearOptions(htmlObj);
	
	if (!countryNum)
		return;
	
	if (FAir_country[countryNum].i){
		items = FAir_country[countryNum].i;
		FAir_setItems2(htmlObj,items,FAir_city);
	}else if (FAir_country[countryNum].s){
		states = FAir_country[countryNum].s;
		var allCity = new Array();
		
		for (var i=0;i<states.length;i++){
			st = FAir_state[states[i]];
			allCity = allCity.concat(st.i);
		}
		
		allCity.sort(FAir_compareCity);
		FAir_setItems2(htmlObj,allCity,FAir_city);
	}
}

function FAir_compareCity(a,b){
	return (FAir_city[a].j > FAir_city[b].j)?1:-1;
}

function FAir_setCityState(name,stateNum){
	htmlObj = document.getElementById(name);
	FT_clearOptions(htmlObj);
	
	if (!stateNum)
		return;
	
	if (!FAir_state[stateNum].i)
		return;
	
	items = FAir_state[stateNum].i;
	
	FAir_setItems2(htmlObj,items,FAir_city);
	
}

function FAir_showMans(name,isZero){
	var result="";
	
	result+="<select id=\""+name+"\">";
	for (var i=0;i<=9;i++){
		if (isZero || i!=0)
			result+="<option value='"+i+"'>"+i+"</option>";
	}
	result+="</select>";
	
	document.write(result);
	return;
}

function FAir_showOption(name,array){
	var result="",val;
	
	result+="<select id=\""+name+"\">";
	result+="<option value=''>指定しない</option>";
	
	for (var key in array){
		val = array[key].j;
		result+="<option value='"+array[key].c+"'>"+val+"</option>";
	}
	result+="</select>";
	
	document.write(result);
	return;
}

function FAir_areaChanged(obj,mode){
	areaNum = FT_getSelectedValue(obj);
	
	FAir_clearOptionsLevel(2);
	
	var add = (mode == 2)?"R":"";
	FAir_setCountry("FAirCountry"+add,areaNum);
}

function FAir_countryChanged(obj,mode){
	countryNum = FT_getSelectedValue(obj);
	
	FAir_clearOptionsLevel(3);
	
	var add = (mode == 2)?"R":"";
	FAir_setState("FAirState"+add,countryNum);
	FAir_setCity("FAirCity"+add,countryNum);
}

function FAir_stateChanged(obj,mode){
	stateNum = FT_getSelectedValue(obj);
	
	var add = (mode == 2)?"R":"";
	
	if (!stateNum){
		FAir_clearOptionsLevel(4);
		countryNum = FT_getSelectValue("FAirCountry"+add);
		FAir_setCity("FAirCity"+add,countryNum);
	}else{
		FAir_setCityState("FAirCity"+add,stateNum);
	}
}

function FAir_cityChanged(obj){
	
}

function FAir_clearOptionsLevel(num){
	if (num <= 4){
		obj = document.getElementById("FAirCity");
		FT_clearOptions(obj);
	}
	
	if (num <= 3){
		obj = document.getElementById("FAirState");
		FT_clearOptions(obj);
	}
	
	if (num <= 2){
		obj = document.getElementById("FAirCountry");
		FT_clearOptions(obj);
	}

}

function FAir_setItems2(htmlObj,items,dataArr){
	for (var i=0;i<items.length;i++){
		key = items[i];
		if (!dataArr[key])
			continue;
		htmlObj.options[i+1] = new Option(dataArr[key].j,dataArr[key].c);
	}
}

function FAir_checkReturn(){
	var obj = document.getElementById("FAirReturn");
	
	if (!obj)
		return;
	
	if (obj.checked){
		var month1 = document.getElementById("FAirF1Month").selectedIndex;
		var day1 = document.getElementById("FAirF1Day").selectedIndex;
		var month2 = document.getElementById("FAirF2Month").selectedIndex;
		var day2 = document.getElementById("FAirF2Day").selectedIndex;
		
		if (month1 > month2 || (month1 == month2 && day1 > day2)){
			alert("日付を正しく指定して下さい。");
			return false;
		}

		date = FT_getSelectValue("FAirF2Month") + "/" + FT_getSelectValue("FAirF2Day");
		
		FAir_setHidden("F2Date",date);
		FAir_setHidden("F2Time",FT_getSelectValue("FAirF2Time"));
		
		var F1Des = document.getElementById("F1Des").value;
		FAir_setHidden("F2Dep",F1Des);
		FAir_setHidden("F2Des",FT_getSelectValue("FAirF1Dep"));
		FAir_setHidden("SearchType","CT");
		
	}else{
		FAir_setHidden("F2Date","");
		FAir_setHidden("F2Time","");
		FAir_setHidden("F2Dep","");
		FAir_setHidden("F2Des","");
		FAir_setHidden("SearchType","OW");
	}
	
	return true;
}

function FAir_submit(){
	FAir_resetHiddenAll();
	
	if (document.getElementById("FAirRound").checked){
		if (!FAir_RoundCheck())
			return;
	}else{
		if (!FAir_noRoundCheck())
			return;
	}
	
	FAir_setHidden("PaxAD",FT_getSelectValue("FAirMan"));
	FAir_setHidden("PaxCH",FT_getSelectValue("FAirChild"));
	FAir_setHidden("PaxIN",FT_getSelectValue("FAirInfant"));
	
	FAir_setHidden("CA",FT_getSelectValue("FAirLines"));
	FAir_setHidden("TicketType",FT_getSelectValue("FAirSeat"));
	
	document.FAirForm.submit();
}

function FAir_resetHiddenAll(){
	FAir_resetHidden(1);
	FAir_resetHidden(2);
	FAir_resetHidden(3);
	FAir_resetHidden(4);
	FAir_resetHidden(5);
	FAir_resetHidden(6);
}

function FAir_resetHidden(num){
	FAir_setHidden("F"+num+"Date","");FAir_setHidden("F"+num+"Time","");FAir_setHidden("F"+num+"Dep","");FAir_setHidden("F"+num+"Des","");	
}

function FAir_noRoundCheck(){
	var date;
	
	date = FT_getSelectValue("FAirF1Month") + "/" + FT_getSelectValue("FAirF1Day");
	
	FAir_setHidden("F1Date",date);
	FAir_setHidden("F1Time",FT_getSelectValue("FAirF1Time"));
	FAir_setHidden("F1Dep",FT_getSelectValue("FAirF1Dep"));
	
	switch(FAir_tabNum){
	case 1:
		val = document.getElementById("FAirCityPickup").value;
		FAir_setHidden("F1Des",val);
		break;
	case 2:
		FAir_setHidden("F1Des",FT_getSelectValue("FAirCity"));
		break;
	}
	
	if (!FAir_checkReturn())
		return false;
	
	if (!document.getElementById("F1Dep").value || !document.getElementById("F1Des").value){
		alert("出発地、到着地を指定して下さい。");
		return false;
	}
	
	return true;
}

function FAir_RoundCheck(){
	var arr_length=0;
	
	for (var i=0;i<FAirRouteList.length;i++){
		if (FAirRouteList[i])
			arr_length++;
	}
	route = FAirRouteList[arr_length-1];
	
	if (route){
		if (!FAir_isJPPort(route[4])){
			alert("到着空港は国内の空港を指定下さい。");
			return false;
		}
	}else{
		alert("路線を追加してください。");
		return false;
	}
	
	FAir_setHiddenRAuto(1);
	FAir_setHiddenRAuto(2);
	FAir_setHiddenRAuto(3);
	FAir_setHiddenRAuto(4);
	FAir_setHiddenRAuto(5);
	FAir_setHiddenRAuto(6);
	
	return true;
}

function FAir_setHiddenRAuto(num){
	route = FAirRouteList[num-1];
	
	if (route){
		date = route[0] + "/" + route[1];
		FAir_setHidden("F"+num+"Date",date);
		FAir_setHidden("F"+num+"Dep",route[2]);
		FAir_setHidden("F"+num+"Des",route[4]);
	}
}
	
function FAir_setHidden(formName,value){
	if (document.getElementById(formName))
		document.getElementById(formName).value = value;
}

function FAirPortsInit(){
	obj = document.getElementById("FAirPorts");
	FAirPortsHTML = obj.innerHTML;
	obj.innerHTML = "";
	
	FAirPort_save[0] = new Array();
	FAirPort_save[1] = new Array();
	return;
}

function FAirPortsSelect(actionNum){
	FT_setValueSelect("FAirAreaR",FAirPort_save[actionNum]["area"]);
	
	FAir_setCountry("FAirCountryR",FAirPort_save[actionNum]["area"]);
	FT_setValueSelect("FAirCountry",FAirPort_save[actionNum]["country"]);
	
	
	FAir_setState("FAirStateR",FAirPort_save[actionNum]["country"]);
	FT_setValueSelect("FAirStateR",FAirPort_save[actionNum]["state"]);
	
	
	if (FAirPort_save[0]["state"]){
		FAir_setCityState("FAirCityR",FAirPort_save[actionNum]["state"]);
	}else{
		FAir_setCity("FAirCityR",FAirPort_save[actionNum]["country"]);
	}
	
	FT_setValueSelect("FAirCityR",FAirPort_save[actionNum]["city"]);
	
	return;
}


function FAirShowPorts(name,isShow,actionNum){
	var html = "";
	
	var obj;
	obj=document.getElementById("FAirPortSelection");
	
	if (obj){
		obj=obj.parentNode;
		obj.innerHTML = html;
	}
	
	if (name)
		obj=document.getElementById(name);
	
	if (obj){
		if (isShow){
			html = FAirPortsHTML;
			obj.innerHTML = html;
			FAirPortsSelect(actionNum);
			FAir_selNumR = actionNum;
		}else{
			obj.innerHTML = html;
		}
	}
}

function FAir_documentClick(e){
	if (!FT_containElement(e,"FAirPortSelection")){
		if (!FT_containElement(e,"FAirF1DesR") && !FT_containElement(e,"FAirF1DepR")){
			FAirShowPorts("",false);
		}
	}
}

function FAir_init(){
	
	FAir_setPortJP("FAirF1Dep");
	
	FAir_setArea("FAirArea");
	
	areaNum = FT_getSelectValue("FAirArea");
	FAir_setCountry("FAirCountry",areaNum);
	
	countryNum = FT_getSelectValue("FAirCountry");
	
	FAir_setCity("FAirCity",countryNum);
	FAir_setState("FAirState",countryNum);
	
	FAir_initR();
}


function FAir_showPickup(name){
	var result="";
	var cities;
	
	result+= "<table>";
	for (var i=0;i < FAir_pickup.length;i++){
		 cities = FAir_pickup[i];
		 
		 result+="<tr><td class='FAir_pickup_area'>"+cities[0]+"</td><td class='FAir_pickup_detail'>";
		 
		 for (var j=0;j<cities[1].length;j++){
			if (FAir_city[cities[1][j]]){
		 		code = FAir_city[cities[1][j]].c;
		 		value = FAir_city[cities[1][j]].j;
		 		result+="<div class='FAir_pickup_city'><input type='radio' name='pickup_city' onClick='FAir_setPickup(\""+code+"\");'>"+ value +"</div>";
		 	}
		 }
		 
		 result+="</td></tr>";
	}
	
	result+= "</table>";
	
	document.write(result);
}

function FAir_setPickup(code){
	document.getElementById("FAirCityPickup").value = code;
}

//Searchbox Layout
function FAir_toggleTab(num){
	var tab1,tab2;
	var show1,show2;
	
	FAir_tabNum = num;
	
	switch(num){
	case 1:
		tab1 = "air_tab_menu1.gif";
		tab2 = "air_tab_menu2b.gif";
		show1 = "block";show2 = "none";
		break;
	case 2:
		tab1 = "air_tab_menu1b.gif";
		tab2 = "air_tab_menu2.gif";
		show1 = "none";show2 = "block";
		break;
	}
	document.getElementById("FAir_tab1").src= "images/"+tab1;
	document.getElementById("FAir_tab2").src= "images/"+tab2;
	
	document.getElementById("FAir_cityPickup").style.display = show1;
	document.getElementById("FAir_cityAll").style.display = show2;
}

function FAir_changePanel(num){
	var show1,show2;
	
	FAir_panelNum = num;
	
	switch(num){
	case 2:
		show1 = "none";show2 = "block";
		break;
	default:
		show1 = "block";show2 = "none";
		break;
	}
	
	document.getElementById("FAir_Panel1").style.display = show1;
	document.getElementById("FAir_Panel2").style.display = show2;
}


//Round
function FAir_initR(){
	FAir_setPortJP("FAirJapanR");
	
	FAir_setArea("FAirAreaR");
	
	areaNum = FT_getSelectValue("FAirAreaR");
	FAir_setCountry("FAirCountryR",areaNum);
	
	countryNum = FT_getSelectValue("FAirCountryR");
	
	FAir_setCity("FAirCityR",countryNum);
	FAir_setState("FAirStateR",countryNum);
	
	FAirPortsInit();	//Last
	document.onclick = FAir_documentClick;
	
	FAirRouteList = new Array(0,0,0,0,0,0);
	FAir_showRouteR();
	
	//Change Panel Auto
	round = document.getElementById("FAirRound").checked;
	round = (round)?2:0;
	FAir_changePanel(round);
}

function FAir_cityRChanged(obj){
	var cityVal = FT_getSelectedValue(obj);
	var cityText = FT_getSelectedText(obj);
	
	var name = (FAir_selNumR == 1)?"FAirF1DesR":"FAirF1DepR"
	var selectObj = document.getElementById(name);
	
	FT_clearOptions(selectObj);
	
	selectObj.options[1] = new Option(cityText,cityVal);
	selectObj.selectedIndex = 1;
	
	FAirShowPorts("",false);
}

function FAir_removeR(){
	var res = confirm("この区間を削除してもよろしいですか？");
	
	if (res){
		if (!FAirRouteList[FAir_listSelectedNum])
			FAirRouteList[FAir_listSelectedNum-1]=0;
		else
			alert("途中の区間を削除できません。");
	}
	
	FAir_listSelectedNum--;
	FAir_listSelectedNum = (FAir_listSelectedNum < 1)?1:FAir_listSelectedNum;
	
	FAir_showRouteR();
}

function FAir_setR(){
	
	var num = FAir_listSelectedNum-2;
	
	if (!FAirRouteList[num] && num >= 0){
		alert("前の区間の指定がありません。");
		return;
	}
	
	var month,day,dep,depText,des,desText;
	month = FT_getSelectValue("FAirF1MonthR");
	day = FT_getSelectValue("FAirF1DayR");
	
	dep = FT_getSelectValue("FAirF1DepR");
	depText = FT_getSelectedText(document.getElementById("FAirF1DepR"));
	des = FT_getSelectValue("FAirF1DesR");
	desText = FT_getSelectedText(document.getElementById("FAirF1DesR"));
	
	if (FAir_listSelectedNum==1){
		if (!FAir_isJPPort(dep)){
			alert("出発空港は国内の空港を指定下さい。");
			return;			
		}
	}
	
	if (!dep || !des){
		alert("出発地、到着地を指定して下さい。");
		return;
	}
	
	FAirRouteList[FAir_listSelectedNum-1] = new Array(month,day,dep,depText,des,desText);
	
	FAir_listSelectedNum++;
	FAir_listSelectedNum = (FAir_listSelectedNum > 6)?6:FAir_listSelectedNum;
	
	FAir_showRouteR();
	FAri_setNextR();
}

function FAri_setNextR(){
	var obj = document.getElementById("FAirF1DesR").options[1];
	var option = new Option(obj.text,obj.value);
	document.getElementById("FAirF1DepR").options[1] = option;
	document.getElementById("FAirF1DepR").selectedIndex=1;
	document.getElementById("FAirF1DesR").options[1] = null;
}
	
function FAir_showRouteR(){
	var route,num,ins;
	
	for (var i=0;i < FAirRouteList.length;i++){
		route = FAirRouteList[i];
		num = i+1;
		
		if (route)
			ins = route[0] + "/" + route[1] + "&nbsp;&nbsp;"+ route[3] + " → " + route[5];
		else
			ins = "指定なし";
		
		if (num != FAir_listSelectedNum)
			ins = "<a href='JavaScript:FAir_modifyR("+num+")'>" + ins + "</a>";
		
		document.getElementById("FAir_rout"+num).innerHTML =ins;
	}
}

function FAir_modifyR(num){
	before = num-1;
	
	if (!FAirRouteList[before-1] && before != 0){
		for (var i=1;i<FAirRouteList.length;i++){
			if (!FAirRouteList[i-1])
				break;
		}
		num = i;
	}
	
	route = FAirRouteList[num-1];
	
	FAir_listSelectedNum = num;
	
	if (route){
		document.getElementById("FAirF1DepR").options[1] = new Option(route[3],route[2]);
		document.getElementById("FAirF1DesR").options[1] = new Option(route[5],route[4]);
		document.getElementById("FAirF1DepR").selectedIndex = 1;
		document.getElementById("FAirF1DesR").selectedIndex = 1;
		FT_setValueSelect("FAirF1MonthR",route[0]);
		FT_setValueSelect("FAirF1DayR",route[1]);
	}else{
		document.getElementById("FAirF1DepR").options[1] = null;
		document.getElementById("FAirF1DesR").options[1] = null;
	}
	
	FAir_showRouteR();
}
function FAir_city2RChanged(obj){
	var cityVal = FT_getSelectedValue(obj);
	var cityText = FT_getSelectedText(obj);
	
	var name = (FAir_selNumR == 1)?"FAirF1DesR":"FAirF1DepR"
	var selectObj = document.getElementById(name);
	
	FT_clearOptions(selectObj);
	
	selectObj.options[1] = new Option(cityText,cityVal);
	selectObj.selectedIndex = 1;
	
	FAirShowPorts("",false);
}

function FAir_togglePort(num){
	var show1,show2;
	
	FAir_portNum = num;
	
	switch(num){
	case 1:
		show1 = "block";show2 = "none";
		break;
	case 2:
		show1 = "none";show2 = "block";
		break;
	}
	
	document.getElementById("FAirPortsAbroad").style.display = show1;
	document.getElementById("FAirPortsJapan").style.display = show2;
}

function FAir_isJPPort(code){	
	for (var key in FAir_japan){
		if (key == code)
			return true;
	}
	
	return false;
}
	
//Global
var FAir_tabNum=1;
var FAir_panelNum=1;
var FAir_portNum=1;
var FAir_selNumR=1;
var FAir_listSelectedNum=1;

var FAirRouteList = new Array();
var FAirPortsHTML = "";
var FAirPort_save = new Array();

