function FHotel_ShowMonth(name){
	var mdate = FHotel_DateObject();
	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 + "月";
		document.write('<option value=' + val + ' '+selected+ '>' + txt + '<\/option>');
	}
	document.write('<\/select>');
}

function FHotel_ShowDay(name){
	var mdate = FHotel_DateObject();
	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 FHotel_DateObject(){
	var mdate = new Date();
	var tm = mdate.getTime() + 25*24*60*60*1000;
	mdate.setTime(tm);
	return mdate;
}

function FHotel_ShowStay(name){
	document.write('<select id=',name,'>');
	for (var i=1;i<=14;i++){
		txt = i;
		document.write('<option value=' + i + '>' + txt + '<\/option>');
	}
	document.write('<\/select>');
}

function FHotel_setArea(name){
	htmlObj = document.getElementById(name);
	i=1;
	for(key in FHotel_area){
		if (!FHotel_area[key].j)
			continue;
		htmlObj.options[i] = new Option(FHotel_area[key].j,key);
		i++;
	}
}

function FHotel_setCountry(name,areaNum){
	htmlObj = document.getElementById(name);
	
	clearOptions(htmlObj);
	
	if (!areaNum)
		return;
	
	items = FHotel_area[areaNum].i;
	
	FHotel_setItems(htmlObj,items,FHotel_country);
}

function FHotel_setState(name,countryNum){
	htmlObj = document.getElementById(name);
	clearOptions(htmlObj);
	
	if (!countryNum)
		return;
	
	if (!FHotel_country[countryNum].s)
		return;
	
	items = FHotel_country[countryNum].s;
	
	FHotel_setItems(htmlObj,items,FHotel_state);
}

function FHotel_setCity(name,countryNum){
	htmlObj = document.getElementById(name);
	clearOptions(htmlObj);
	
	if (!countryNum)
		return;
	
	if (FHotel_country[countryNum].i){
		items = FHotel_country[countryNum].i;
		FHotel_setItems2(htmlObj,items,FHotel_city);
	}else if (FHotel_country[countryNum].s){
		states = FHotel_country[countryNum].s;
		var allCity = new Array();
		
		for (var i=0;i<states.length;i++){
			st = FHotel_state[states[i]];
			allCity = allCity.concat(st.i);
		}
		
		allCity.sort(compareCity);
		FHotel_setItems2(htmlObj,allCity,FHotel_city);
	}
}

function compareCity(a,b){
	return (FHotel_city[a] > FHotel_city[b])?1:-1;
}

function FHotel_setCityState(name,stateNum){
	htmlObj = document.getElementById(name);
	clearOptions(htmlObj);
	
	if (!stateNum)
		return;
	
	if (!FHotel_state[stateNum].i)
		return;
	
	items = FHotel_state[stateNum].i;
	
	FHotel_setItems2(htmlObj,items,FHotel_city);
	
}

function FHotel_setLocation(name,cityNum){
	htmlObj = document.getElementById(name);
	clearOptions(htmlObj);
	
	if (!cityNum)
		return;
	
	if (!FHotel_location[cityNum])
		return;
	
	items = FHotel_location[cityNum];
	
	FHotel_setLocationValue(htmlObj,items);
}

function FHotel_setLocationValue(htmlObj,items){
	var i = 1;
	for (var key in items){
		value = items[key];
		htmlObj.options[i] = new Option(value,key);
		i++;
	}
}

function FHotel_areaChanged(obj){
	areaNum = getSelectedValue(obj);
	
	if (!areaNum)
		clearOptionsLevel(2);
	
	FHotel_setCountry("FHotelCountry",areaNum);
}

function FHotel_countryChanged(obj){
	countryNum = getSelectedValue(obj);
	
	if (!countryNum)
		clearOptionsLevel(3);
	
	FHotel_setState("FHotelState",countryNum);
	FHotel_setCity("FHotelCity",countryNum);
}

function FHotel_stateChanged(obj){
	stateNum = getSelectedValue(obj);
	
	if (!stateNum){
		clearOptionsLevel(4);
		countryNum = getSelectValue("FHotelCountry");
		FHotel_setCity("FHotelCity",countryNum);
	}else{
		FHotel_setCityState("FHotelCity",stateNum);
	}
}

function FHotel_cityChanged(obj){
	cityNum = getSelectedValue(obj);
	
	if (!cityNum){
		FHotel_setLocation("FHotelLocation",cityNum);
	}else{
		FHotel_setLocation("FHotelLocation",cityNum);
	}
}

function FHotel_init(){
	FHotel_setArea("FHotelArea");
	
	areaNum = getSelectValue("FHotelArea");
	FHotel_setCountry("FHotelCountry",areaNum);
	
	countryNum = getSelectValue("FHotelCountry");
	
	FHotel_setCity("FHotelCity",countryNum);
	FHotel_setState("FHotelState",countryNum);
	FHotel_setLocation("FHotelLocation",0);
	
	/* Set param */
	var param = new Array();
	param["areacd"] = 4;
	param["countrycd"] = 250;
	param["statecd"] = "";
	param["citycd"] = 45;
	
	FHotel_select(param);
}

/*
	var param = new Array();
	param["areacd"]
	param["countrycd"]
	param["statecd"]
	param["citycd"]
	param["location"]
	
	param["month"]
	param["day"]
	
	param["stay"]
	param["roomtype"]
	
	param["hotelname"]
	param["price"]
	param["rank"]

*/
function FHotel_select(param){
	//Set parameter in research
	
	//Place
	setValueSelect("FHotelArea",param["areacd"]);
	
	FHotel_setCountry("FHotelCountry",param["areacd"]);
	setValueSelect("FHotelCountry",param["countrycd"]);
	
	FHotel_setState("FHotelState",param["countrycd"]);
	setValueSelect("FHotelState",param["statecd"]);
	
	obj = document.getElementById("FHotelState");
	FHotel_stateChanged(obj);
	setValueSelect("FHotelCity",param["citycd"]);
	
	FHotel_setLocation("FHotelLocation",param["citycd"]);
	setValueSelect("FHotelLocation",param["location"]);
	
	//Etc
	setValueSelect("FHotelInMonth",param["month"]);
	setValueSelect("FHotelInDay",param["day"]);
	
	setValueSelect("FHotelDayStay",param["stay"]);
	setValueSelect("FHotelRoomType",param["roomtype"]);
	
	setValueText("FHotelSearchName",param["hotelname"]);
	
	setValueSelect("FHotelRange",param["price"]);
	setValueSelect("FHotelRank",param["rank"]);
	
}

function clearOptionsLevel(num){
	if (num <= 5){
		obj = document.getElementById("FHotelLocation");
		clearOptions(obj);
	}
	
	if (num <= 4){
		obj = document.getElementById("FHotelCity");
		clearOptions(obj);
	}
	
	if (num <= 3){
		obj = document.getElementById("FHotelState");
		clearOptions(obj);
	}
	
	if (num <= 2){
		obj = document.getElementById("FHotelCountry");
		clearOptions(obj);
	}

}

/* Common */
function FHotel_setItems(htmlObj,items,dataArr){
	for (var i=0;i<items.length;i++){
		key = items[i];
		if (!dataArr[key].j)
			continue;
		htmlObj.options[i+1] = new Option(dataArr[key].j,key);
	}
}

function FHotel_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],key);
	}
}

function setValueSelect(name,value){
	if (value){
		obj = document.getElementById(name);
		
		for (var i=0;i<obj.options.length;i++){
			if (obj.options[i].value == value){
				obj.selectedIndex = i;
				return;
			}
		}
	}
	return;
}

function setValueText(name,value){
	if (value){
		obj = document.getElementById(name);
		obj.value = value;
	}
	return;
}

function getSelectedValue(obj){
	return obj.options[obj.selectedIndex].value;
}

function getSelectValue(name){
	obj = document.getElementById(name);
	return obj.options[obj.selectedIndex].value;
}

function clearOptions(obj){
	var i;
	
	opts = obj.options.length-1;
	
	for (i=opts;i>0;i--){
		obj.options[i] = null;
	}
	
	obj.selectedIndex = 0;
}

function FHotel_submit(){
	FHotel_setHidden("FHotelInMonth","in_Month");
	FHotel_setHidden("FHotelInDay","in_Day");
	FHotel_setHidden("FHotelDayStay","day_stay");
	FHotel_setHidden("FHotelArea","areaMenu");
	FHotel_setHidden("FHotelCountry","w_CO");
	FHotel_setHidden("FHotelState","stateMenu");
	FHotel_setHidden("FHotelCity","CIID");
	FHotel_setHidden("FHotelRoomType","room_type");
	FHotel_setHidden("FHotelSearchName","seach_name");
	FHotel_setHidden("FHotelLocation","search_location");
	FHotel_setHidden("FHotelRange","range");
	FHotel_setHidden("FHotelRank","rank");
	
	FHotel_setHidden("","ref_id");
	FHotel_setHidden("","ref_time");
	
	if (!document.FHotelForm["CIID"].value){
		alert("都市を選択して下さい。");
		return;
	}
		
	document.FHotelForm.submit();
}

function FHotel_setHidden(idName,formName){
	if (!idName)
		return;
	var obj = document.getElementById(idName);
	document.FHotelForm[formName].value = obj.value;
}

window.onload = FHotel_init;

