//大分類が選択されたとき
function chCtg(url){
	url += "/ext/1";
	new Ajax.Request(url, { method: 'get', onComplete: createSctgSelect });
}

//小分類プルダウン作成
function createSctgSelect(httpObj){
	var tmp = eval("("+httpObj.responseText+")");
	var json = tmp.sctg_list;
	var id = tmp.elmt_id;

	//プルダウン初期化
	var element = document.getElementById(id);
	while(element.hasChildNodes()){
		element.removeChild(element.firstChild);
	}
	var obj = document.getElementById(id).options;
	obj[0] = new Option("-");
	obj[0].value = 0;

	//プルダウン作成
	i=1;
	while(json[i-1] != null){
		obj[i] = new Option(json[i-1].name);
		obj[i].value = json[i-1].id;
		i++;
	}
	//obj[0].selected=true;
}

function loadMap(){
	mnmap = new MachinaviMap("mn_map", 140.9161376953125, 39.65645604812829, 8);
	mnmap.loadMap();
}

//検索方法を選択したとき
function showhide(id){

	if(document.getElementById("image")!=null){
		document.getElementById("image").style.display = "none";
	}
	if(document.getElementById("srch_area")!=null){
		document.getElementById("srch_area").style.display = "block";
	}
	if(document.getElementById("mn_map")!=null){
		document.getElementById("mn_map").style.display = "none";
	}
	if(document.getElementById("mn_list_area")!=null){
		document.getElementById("mn_list_area").style.display = "none";
		document.getElementById("mn_list").innerHTML = "";
		document.getElementById("mn_page_links").innerHTML = "";
		document.getElementById("mn_srch_hit_num").innerHTML = "";
	}
	if(document.getElementById("detail")!=null){
		document.getElementById("detail").style.display = "none";
	}
	if(document.getElementById("etc")!=null){
		document.getElementById("etc").style.display = "none";
	}
	if(document.getElementById("alt_info")!=null){
		document.getElementById("alt_info").style.display = "none";
	}
	if(document.getElementById("info")!=null){
		document.getElementById("info").style.display = "block";
	}
	
	if(id=="ctg_srch"){
		document.getElementById("ctg_srch").style.display = "block";
		document.getElementById("area_srch").style.display = "none";
		document.getElementById("sctg_srch").style.display = "none";
		document.getElementById("detail_srch").style.display = "none";
	}else if(id=="area_srch"){
		document.getElementById("ctg_srch").style.display = "none";
		document.getElementById("area_srch").style.display = "block";
		document.getElementById("sctg_srch").style.display = "none";
		document.getElementById("detail_srch").style.display = "none";
	}else if(id=="sctg_srch"){
		document.getElementById("ctg_srch").style.display = "none";
		document.getElementById("area_srch").style.display = "none";
		document.getElementById("sctg_srch").style.display = "block";
		document.getElementById("detail_srch").style.display = "none";
		if(document.getElementById("info")!=null){
			document.getElementById("info").style.display = "none";
		}
	}else if(id=="detail_srch"){
		document.getElementById("ctg_srch").style.display = "none";
		document.getElementById("area_srch").style.display = "none";
		document.getElementById("sctg_srch").style.display = "none";
		document.getElementById("detail_srch").style.display = "block";
	}else{
		document.getElementById("ctg_srch").style.display = "none";
		document.getElementById("area_srch").style.display = "none";
		document.getElementById("sctg_srch").style.display = "none";
		document.getElementById("detail_srch").style.display = "none";
	}
	
	
	
	/*document.getElementById("srch_area").style.display = "block";
	document.getElementById("default").style.display = "none";
	document.getElementById("mn_map").style.display = "none";
	document.getElementById("mn_list").style.display = "none";
	document.getElementById("mn_page_links").style.display = "none";
	document.getElementById("mn_srch_hit_num").style.display = "none";
	if(document.getElementById("detail")!=null){
		document.getElementById("detail").style.display = "none";
	}
	if(document.getElementById("rcm_list")!=null){
		document.getElementById("rcm_list").style.display = "none";
	}*/
}

function execSrch(url, srch_str, ctg_id, sctg_id, area_id, lang){
	loading("block");
	
	var obj = document.getElementById("contents");
	var y = obj.offsetTop;
	scrollTo(0,y); 
	
	if(document.getElementById("image")!=null){
		document.getElementById("image").style.display = "none";
	}
	if(document.getElementById("main")!=null){
		document.getElementById("main").style.display = "none";
	}
	if(document.getElementById("etc")!=null){
		document.getElementById("etc").style.display = "none";
	}

	/*if(document.getElementById("detail")!=null){
		document.getElementById("detail").style.display = "none";
	}*/

 	if(srch_str != null){
 		srch_str = encodeURIComponent(srch_str);
 		srch_str = srch_str.replace("%E3%80%80", "%20");
  	}

 	document.getElementById("srch_area").style.display = "none";

	pm.setSrchVal(srch_str, ctg_id, sctg_id, area_id, lang);
	pm.setPageNum(1);

	url += "/srch_str/"+ srch_str +"/ctg_id/"+ ctg_id + "/sctg_id/" + sctg_id + "/area_id/" + area_id +"/lang/" + lang;

	new Ajax.Request(url, { method: 'get', onComplete: createMnMap });
}

function getCenterLatLng(json){
	var i=0, max_lat=0, max_lng=0, min_lat=999, min_lng=999;

	i=0;
	while(json[i] != null){
		lng = parseFloat(json[i].lon_d) + (parseFloat(json[i].lon_m) / 60) + (parseFloat(json[i].lon_s) / 60 / 60);
		lat = parseFloat(json[i].lat_d) + (parseFloat(json[i].lat_m) / 60) + (parseFloat(json[i].lat_s) / 60 / 60);
		if(lat >= 20 && lat <= 46 && lat != 0 && lng >= 122 && lng <= 154 && lng != 0){
			if(max_lat < lat){
				max_lat = lat;
			}

			if(min_lat > lat){
				min_lat = lat;
			}

			if(max_lng < lng){
				max_lng = lng;
			}

			if(min_lng > lng){
				min_lng = lng;
			}
		}
		i++;
	}

	//中心算出
	var res = Array();
	res.lng = (max_lng + min_lng)/2;
	res.lat = (max_lat + min_lat)/2;
	
	var distance = getGeoDistance(max_lat,max_lng,min_lat,min_lng,10);

		
		if(distance > 100){
			res.zoom = 8;
		}else if(distance > 60){
			res.zoom = 9;
		}else if(distance > 30){
			res.zoom = 10;
		}else if(distance > 10){
			res.zoom = 11;
		}else if(distance > 5){
			res.zoom = 12;
		}else if(distance > 2.5){
			res.zoom = 13;
		}else{
			res.zoom = 14;
		}

	return res; 
}

//二点間の距離を取得
function getGeoDistance(lat1,lng1,lat2,lng2,decimal){
	// 引数　decimal は小数点以下の桁数
	if( (Math.abs(lat1-lat2) < 0.00001) && (Math.abs(lng1-lng2) < 0.00001) ){
		distance = 0;
	}else{
		lat1 = lat1*Math.PI/180;lng1 = lng1*Math.PI/180;
		lat2 = lat2*Math.PI/180;lng2 = lng2*Math.PI/180;
	
		A = 6378140;
		B = 6356755;
		F = (A-B)/A;
	
		P1 = Math.atan((B/A)*Math.tan(lat1));
		P2 = Math.atan((B/A)*Math.tan(lat2));
	
		X = Math.acos( Math.sin(P1)*Math.sin(P2) + Math.cos(P1)*Math.cos(P2)*Math.cos(lng1-lng2) );
		L = (F/8)*( (Math.sin(X)-X)*Math.pow((Math.sin(P1) + Math.sin(P2)),2)/Math.pow(Math.cos(X/2) ,2) - (Math.sin(X)-X)*Math.pow(Math.sin(P1)-Math.sin(P2),2)/Math.pow(Math.sin(X),2) );
	
		distance = A*(X+L);
		decimal_no=Math.pow(10,decimal);
		distance = Math.round(decimal_no*distance/1000)/decimal_no;
	}
	return distance;
}

var loadmap_flag = 0;
//マップを作成
function createMnMap(httpObj){
	loading("none");
	if(loadmap_flag != 1){
		loadMap();
		loadmap_flag = 1;
	}
	document.getElementById("mn_map").style.display = "block";
	document.getElementById("mn_list_area").style.display = "block";

	if(httpObj.responseText=="" || httpObj.responseText==null){
		document.getElementById("mn_map").innerHTML = no_data_msg;
		return;
	}

	var tmp = eval("("+httpObj.responseText+")");
	var json = tmp.spot_list;

	var res = getCenterLatLng(json);

	var total = tmp.total;
	var lng = res.lng;
	var lat = res.lat;
	var zoom = res.zoom;

	//ページ切り替えリンク作成
	pm.createMnListPageLinks(total, pm.getPageNum());
	pm.removeDispArea();
	document.getElementById("mn_page_links").style.display = "block";

	createMnList(json);
	document.getElementById("mn_srch_hit_num").innerHTML = "検索結果："+ total +"件";
	
	/*if(map_flag==1){
		mapeed = new MachinaviMapeed("mn_map", lat, lng, zoom, "ベースURL");
		mapeed.loadMap();
	}else{*/
		//mnmap = new MachinaviMap("mn_map", lng, lat, zoom);
		//mnmap.loadMap();
		mnmap.dispMarkerByJson(json);
		mnmap.setCenter(new GLatLng(lat, lng), parseInt(zoom));
	//}
}

//マーカーの表示を切り替え
function chMnMapMarker(httpObj){
	loading("none");
	document.getElementById("mn_map").style.display = "block";
	
	var tmp = eval("("+httpObj.responseText+")");
	var json = tmp.spot_list;

	var res = getCenterLatLng(json);
	
	var total = tmp.total;
	var lng = res.lng;
	var lat = res.lat;
	var zoom = res.zoom;
	
	pm.removeDispArea();
	
	createMnList(json);

	/*if(map_flag==1){
		mapeed = new MachinaviMapeed("mn_map", lat, lng, zoom, "ベースURL");
		mapeed.loadMap();
	}else{*/
		//mnmap = new MachinaviMap("mn_map", lng, lat, zoom);
		//mnmap.loadMap();
		mnmap.dispMarkerByJson(json);
		mnmap.setCenter(new GLatLng(lat, lng), parseInt(zoom));
	//}
}

//観光情報リストを作成
function createMnList(json){
	document.getElementById("mn_list").style.display = "block";
	var	str = '<div">';

	var i=0;
	while(json[i] != null){
		var icon = json[i].icon.replace("glass","icon");
		str += '<span id="mn_spot_text'+ json[i].primary_key +'"><img class="AlphaPng" src="'+ icon +'" alt="icon" width="30px">'
				+'<a href="'+ json[i].detail_url +"/srch_str/"+ pm.getSrchStr()
				+"/ctg_id/"+ pm.getCtgId() +"/sctg_id/"+ pm.getSctgId()
				+"/area_id/"+ pm.getAreaId() +"/page_num/"+ pm.getPageNum() +"/lang/"+ pm.getLang() 
				+'">'+ json[i].title +'</a></span><br />';
		//str += '<div id="mn_spot_text'+ json[i].primary_key +'"><a href="'+ json[i].detail_url +'/rcm_srch/1/">'+ json[i].title +'</a></div><br />';
		i++;
	}
	document.getElementById("mn_list").innerHTML = str + "</div>";
}

//詳細検索でダブルクリックするとテキスト検索で誤作動するので
//任意の場所でダブルクリック禁止する
function submitStop(e){
	if (!e) var e = window.event;
	if(e.keyCode == 13)
	return false;
}

function loading(display){
	document.getElementById("nowload").style.display= display;
}

