
var reloadMarkerEvent;
var map;

function load() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(
			new GMapTypeControl(),
		    new GControlPosition(G_ANCHOR_TOP_RIGHT,
		    new GSize(10,10)));
		map.setCenter(new GLatLng(36.705663020513555, 137.76159691810608), 5);
		displayMark(map);
		reloadMarkerEvent = GEvent.addListener(map, "moveend", reloadMark);
	}
}

function reloadMark() {
	map.clearOverlays();
	displayMark(map);
}

function displayMark(map){
	var url = 'json.php';
	new Ajax.Request(url, {
		method: "get",
		onCreate:function(httpObj){
		},
		onSuccess:function(httpObj){
			var json_string = httpObj.responseText;
			var responsePoints = eval("("+json_string+")");
			var i;
			var points = [];
			var marker = [];
			var resLen = responsePoints.length;
			i = 0;
			for (i=0;i<resLen;i++)
			{
				points[i] = new GLatLng(parseFloat(responsePoints[i]['center_lat']),parseFloat(responsePoints[i]['center_lng']));
				var text = '<a href="/' + responsePoints[i]['game_id'] + '" target="_blank">' + responsePoints[i]['name'] + '</a>'; 
				addMarker(map, points[i], text);
			}
		},
		onFailure:function(httpObj){
				alert('エラーで読み込めませんでした');
			}
		});
}

function addMarker( map, p, text ) {
	var marker = new GMarker(p);
	var wattingEvent;
	GEvent.addListener( marker, "click", function() {
		GEvent.removeListener(reloadMarkerEvent);
		marker.openInfoWindowHtml(text);
		var wattingEvent = GEvent.addListener(map, "moveend", function() {
			reloadMarkerEvent = GEvent.addListener(map, "moveend", reloadMark);			
			GEvent.removeListener(wattingEvent);		
			});
		});
	map.addOverlay(marker);
	return marker;
}
