

var map;
var marker_set;
var html_set;
var alias_set;
var lng_set;
var lat_set;
var request;


function startMap(centerE, centerN, zm, maxZM) {

	marker_set = new Array(1000);
	html_set = new Array(1000);
	alias_set = new Array(1000);
	lng_set = new Array(1000);
	lat_set = new Array(1000);


	map = new GMap(document.getElementById("map"));
	map.setMapType(G_NORMAL_MAP);
	//map.addControl(new GMapTypeControl());
	map.addControl(new GLargeMapControl());
	//map.addControl(new GSmallMapControl());
	map.addControl(new GScaleControl());
	map.addControl(new GMapTypeControl());
	map.centerAndZoom(new GPoint(centerE, centerN), zm);

	request = GXmlHttp.create();
	request.open("GET", "./mapxml.cgi"
		, true);

	request.onreadystatechange = function () {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
			var markers = xmlDoc.documentElement.getElementsByTagName("marker");

			for (var i=0; i < markers.length; i++) {

				lng_set[i] = markers[i].getAttribute("lng");
				lat_set[i] = markers[i].getAttribute("lat");

				// 同じ経緯度のマーカーがあるかチェック
				var same_num = (-1);
//				for(var j=0 ; j<i ; j++){
//					if(lng_set[i]==lng_set[j] && lat_set[i]==lat_set[j]){
//						same_num = j;	//同じ経緯度のマーカーのナンバーを保存
//						break;
//					}
//				}

				var point = new GPoint(parseFloat(markers[i].getAttribute("lng")),
					parseFloat(markers[i].getAttribute("lat"))
				);

				var marker = createMarker(point, i, same_num,
					markers[i].getAttribute("link"), markers[i].getAttribute("img"),
					markers[i].getAttribute("station"),markers[i].getAttribute("rent"),
					markers[i].getAttribute("madori")
				);
				map.addOverlay(marker);
			}
		}
	}

	request.send(null);

	// 拡大制限
	GEvent.addListener(map, "zoom", function(oldZoomLevel, newZoomLevel) {
		var intZoom = map.getZoomLevel();
		if(intZoom < maxZM){
			map.zoomTo(oldZoomLevel);
		}
	});

}

	var count = 1;

function createMarker(point,index,same_index,link,img,station,rent,madori) {

	var html = "";

	// 他のマーカーと同じ位置であれば、以前のマーカーを一度削除し、
	// 以前のマーカーのhtmlを継承する
	if(same_index>=0){
		count++;
//		map.removeOverlay(marker_set[same_index]);
//		html = html_set[same_index] +
//			"<hr style='width:250px; color:#555555; text-align:center;' />";
	}

	var ico = "./search_r/ico/icon_red.png";

	icon = new GIcon();
	icon.image = ico; 
	icon.shadow = "./search_r/ico/icon_shadow.png"; 
	icon.iconSize = new GSize(20, 34);
	icon.shadowSize = new GSize(37, 37);
	icon.iconAnchor = new GPoint(10, 34);
	icon.infoWindowAnchor = new GPoint(10, 1);
	var marker = new GMarker(point, icon);

	html = '<div style="width:400px;">';

	html = html + '<img src="' + img + '" style="float:left; margin-left:5px;" hspace="5" vspace="5">';

	html = html + "<span style='font-size:10pt;line-height:150%;'>" +
		'<a href="' + link + '">■詳細</a>' +
		"<br />沿線 / " + station + 
		"<br />賃料 / " + rent + 
		"<br />間取 / " + madori + 
		'</div>';


	GEvent.addListener(marker, "click", function(){ marker.openInfoWindowHtml(html); });

	// 以前のマーカーと同じ位置の場合、マーカーナンバーを以前のナンバーにする
	// その上で、alias_setを使って、ナンバーのエイリアス設定を行う
	if(same_index>=0){
		marker_set[same_index] = marker;
		html_set[same_index] = html;
		alias_set[index] = same_index;
	}else{
		marker_set[index] = marker;
		html_set[index] = html;
		alias_set[index] = -1;
	}

	return marker;
}

function moveMarker(i){
	map.zoomTo(2);

	if (alias_set[i]>=0) {
		marker_set[alias_set[i]].openInfoWindowHtml(html_set[alias_set[i]]);
	} else {
		marker_set[i].openInfoWindowHtml(html_set[i]);
	}

}
