
//マップ用JSのオンロードイベント
function jsOnload_map(){
	startUp();

}
//マップ用JSのアンロードイベント
function jsUnload_map(){
	GUnload();
}

/***
* 共通変数宣言部
*
*/
var map;
var mk;
var cnt;

var sidebar_html = "";
var gmarkers = [];
var htmls = [];
var mark_id = [];
var gmarkers_act = [];

var sidebar2_html = "";
var gmarkers2 = [];
var htmls2 = [];

/* 緯度経度表示 */
/*
function PositionBox() {}
PositionBox.prototype = new GControl();
PositionBox.prototype.initialize = function(map) {
	var container = document.createElement("div");
	var box = document.createElement("div");
	box.style.backgroundColor = "white";
	box.style.color           = "black";
	box.style.fontSize        = "smaller";
	box.style.border          = "1px solid black"; 
	box.style.padding         = "1px 6px";
	
	container.appendChild(box);
	
	PositionBox.prototype.getDefaultPosition = function() {
	  return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(7, 28));
	}

	function showCenter() {
		function shortForm(x) { return Math.floor(x*1000)/1000; }
			var p = map.getCenter();
			box.innerHTML = "(" + shortForm(p.lat()) + ", " + shortForm(p.lng()) + ")";
	}

	showCenter();
	GEvent.addListener(map, "moveend", showCenter);
	map.getContainer().appendChild(container);
	return container;

}
*/

/* 物件アイコン指定 */
var hIcon = new GIcon();
hIcon.image = "../../images/map_icon/HousingDefault.png";
hIcon.iconSize = new GSize(25, 60);
hIcon.shadowSize = new GSize(30, 60);
hIcon.iconAnchor = new GPoint(9, 50);
hIcon.infoWindowAnchor = new GPoint(9, 2);
hIcon.infoShadowAnchor = new GPoint(18, 25);


/* 学校アイコン指定 */
var shIcon = new GIcon();
shIcon.image = "../../images/map_icon/School.png";
shIcon.iconSize = new GSize(20, 20);
shIcon.shadowSize = new GSize(37, 50);
shIcon.iconAnchor = new GPoint(9, 50);
shIcon.infoWindowAnchor = new GPoint(9, 2);
shIcon.infoShadowAnchor = new GPoint(18, 25);


/***
* プロシージャ
*
*/
	function startUp(){
		//map= new GMap2(document.getElementById("map"));
		//map = null;
		map= new GMap2($("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GScaleControl());
		map.addControl(new GOverviewMapControl());
		map.setCenter(new GLatLng(34.667,135.453),9);
		//map.addControl(new PositionBox() );      // !!!
	}
	
	function createHousingMarker(point,label,id, html,index) {
		var letter = String.fromCharCode("A".charCodeAt(0) + index);
		var icon = new GIcon(hIcon);
		var icon2 = new GIcon(hIcon);
		//アクティブなアイコンの指定。
		icon2.image = "../../images/map_icon/HousingOnmouse.png";
		
		var marker = new GMarker(point, icon);
		var marker2 = new GMarker(point, icon2);
		
		gmarkers[index] = marker;
		gmarkers_act[index] = marker2;
		//ポインタクリック時のイベントをフック。
		GEvent.addListener(gmarkers[index], "click", function() {
			map.removeOverlay(gmarkers[index]);
			map.addOverlay(gmarkers_act[index]);
			gmarkers_act[index].openInfoWindowHtml('<div style="white-space:nowrap;margin-top:3px;">'+html+'<\/div>', '"Marker <b>" + letter + "<\/b>"');
			//リストから物件を指定。
			setListRoom(mark_id[index]);
		});
		//情報ウィンドウクローズ時のイベントをフック。
		GEvent.addListener(gmarkers[index], "infowindowclose", function() {
			//ポインタをノンアクティブに。
			map.removeOverlay(gmarkers_act[index]);
			map.addOverlay(gmarkers[index]);
		});
		//情報ウィンドウクローズ時のイベントをフック。
		GEvent.addListener(gmarkers_act[index], "infowindowclose", function() {
			//ポインタをノンアクティブに。
			map.removeOverlay(gmarkers_act[index]);
			map.addOverlay(gmarkers[index]);
		});
		return marker;
	}
	
	/*
	function ChangeDefMarker(index){
		map.removeOverlay(marker);
		map.addOverlay(marker2);
	}
	function ChangeSubMarker(index){
		map.removeOverlay(marker2);
		map.addOverlay(marker);
	}
	*/
	/**
	*	MAPの書き換え処理。
	*/
	function setMap(){
		map.clearOverlays();
		get_json_Map_Housing();
	}
	
	/**
	*	ポインタの指定。
	*/
	function setPointer(sid){
		//情報ウィンドウを閉じる。
		map.closeInfoWindow();
		
		for(var i=0 ; i < mark_id.length ; i++){
			if(mark_id[i] == sid){
				//特定マーカーの情報ウィンドウを開く。
				if(gmarkers[i]){
					map.removeOverlay(gmarkers[i]);
					map.addOverlay(gmarkers_act[i]);
					gmarkers[i].openInfoWindowHtml('<div style="white-space:nowrap;margin-top:3px;">'+ htmls[i] +'<\/div>', '"Marker <b>" + letter + "<\/b>"');
				}else{
					gmarkers_act[i].openInfoWindowHtml('<div style="white-space:nowrap;margin-top:3px;">'+ htmls[i] +'<\/div>', '"Marker <b>" + letter + "<\/b>"');
					//alert("マーカーなし");
				}
				return;
				break;
			}
		}
	}
	
	/**
	 * マップ用JSONデータを取得する。
	 */
	function get_json_Map_Housing() {
	  //ポスト用データの格納。
	  $('action').value = 'map';
	  new Ajax.Request (
	    cJURL_LIST,
	    {
	    	method: 'POST',
	    	parameters: Form.serialize("fSearch"),
	    	onComplete: addMarkerByHousing
	    });
	}

	//物件アイコンの追加
	function addMarkerByHousing(data){
		//JSONデータの読込
		var gb;
		var i;
		
		if(data.responseText == "none"){
			map.clearOverlays();
			startUp();
			return;
		}
		eval("var obj = " + data.responseText);
		if(obj.center.Name != null){
			map.setCenter(new GLatLng(obj.center.loc_Latitude, obj.center.loc_Longitude));
			map.setZoom(14);
		}
		if(obj.list.length <= 0){
			startUp();
			return;
		}
		for (i=0;i<obj.list.length;i++){
			var latitude = parseFloat(obj.list[i].loc_Latitude);
			var longitude = parseFloat(obj.list[i].loc_Longitude);
			var point    = new GLatLng(latitude,  longitude);
			if( i==0 ){
				gb = new GLatLngBounds( point, point );
				first = 0;
			}else{
				gb.extend( point );
			}
			
			//html記述
			var point = new GLatLng(latitude,  longitude );
			var label = obj.list[i].HousingName;
			//var html = '<span class="info">' + label + '</span><br /><br />' + obj.list[i].Address + '<br />';
		    var html = '';
			html += '<div class="fuki_list" >';
			html += '	<div class="fuki_list_l">';
			html += '		<div class="fuki_list_title">' + label + '</div>';
			html += '		<div class="fuki_list_address">' + obj.list[i].Address + '</div>';
			html += '		<div class="fuki_list_station">' + obj.list[i].H_Station[0].RailName + '&nbsp;';
			html += '		' + obj.list[i].H_Station[0].StationName + '&nbsp;';
			html += '		' + obj.list[i].H_Station[0].Distance;
			html += '		</div>';
			if(obj.list[i].NewFlg == "1"){
				html += '			<img id="list_img_new" src="../../images/search/img_new.gif" alt="新着" border="0" >';
			}
			if(obj.list[i].RecomFlg == "1"){
				html += '			<img id="list_img_recom" src="../../images/search/img_recom.gif" alt="おすすめ" border="0" >';
			}

			html += '	</div>';
			html += '</div>';
			var marker = createHousingMarker(point, label, obj.list[i].sID, html, i);
			//createHousingMarker(point, label, obj.list[i].sID, html, i);
			
			mark_id[i] = obj.list[i].sID;
			htmls[i] = html;
			sidebar_html += html;
			map.addOverlay(marker);
		}
		
		//map.setZoom(5);
		//map.setCenter(gb.getCenter(),map.getBoundsZoomLevel( gb ));
		map.setCenter(gb.getCenter());
		if(map.getBoundsZoomLevel( gb ) > 15){
			map.setZoom(15);
		}else{
			map.setZoom(map.getBoundsZoomLevel( gb ) - 1);
		}
		/*
		if($("get_select_sid").value != ""){
			//マップのポインタ指定を行う。
			setPointer($("get_select_sid").value);
		}
		*/
	}
