var map = null;
var icons = new Array();
var markers = new Array();

function load(point_x,point_y,point_z) {
    if (GBrowserIsCompatible()) {
    //Gmap2
    map = new GMap2(document.getElementById("map"));
    
    var centerPoint = new GLatLng(point_y, point_x);
    map.setCenter(centerPoint, point_z,G_NORMAL_MAP);
	
    //map.addControl(new GScaleControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GLargeMapControl());
	
	//NNの場合は縮小地図を表示しない
	if (window.navigator.userAgent.indexOf("Netscape") >= 0){
	}else{
		var overviewControl = new GOverviewMapControl(new GSize(150, 150));
		map.addControl(overviewControl);
	}

	GEvent.addListener(map, "moveend", function() {
		move(point_x,point_y,point_z);
	});
	move(point_x,point_y,point_z);
	
    }else{
    	alert("お使いのブラウザではmappers.jpはご利用できません。");
    }
}
function resetPosition(){
		map.recenterOrPanToLatLng(new GPoint(127.72979736328125, 26.4926986519394));
}
function move(point_x,point_y,point_z){
	var center = map.getCenter()
	point_x = center.x;
	point_y = center.y;
	zoom =map.getZoom();
	
	var latLngStr = "http://www.mappers.jp/mappers_"+point_x+"_"+point_y+"_"+zoom+"\n";
	document.urlform.url.value = latLngStr;
	
	//記事一覧
	addMarkerMove(point_x,point_y,point_z);
}
function addMarker(lat, lng, id,ico) {
	var mapIcon = new GIcon();
	mapIcon.iconSize = new GSize(27,27);
	mapIcon.shadowSize = new GSize(36,27);
	mapIcon.iconAnchor = new GPoint(9, 27);
	mapIcon.shadowAnchor = new GPoint(9, 27);
	mapIcon.infoWindowAnchor = new GPoint(9, 0);
	mapIcon.infoShadowAnchor = new GPoint(18, 27);
	mapIcon.image = ico+'.gif';
	mapIcon.shadow = ico+'_shadow.png';
	
	var point = new GPoint(lat, lng);
	var marker = new GMarker(point,mapIcon);

	// Show this marker's index in the info window when it is clicked
	GEvent.addListener(marker, "click", function() {
		var html = "";
		var request = GXmlHttp.create();
		request.open('GET', "index_map_marker.php?map_trackback_id=" + id, true);
		request.onreadystatechange = function() {
			if (request.readyState == 4) {
				html = request.responseText;
				if(html != ""){
					marker.openInfoWindowHtml(html);
				}
			}
		}
		request.send(null);

	});
	map.addOverlay(marker);
	
	return marker;
}
	function addMarkerMove(point_x,point_y,point_z) {
	var wbounds = map.getBounds();
	var sw = wbounds.getSouthWest();
	var ne = wbounds.getNorthEast();
	maxX = ne.lng();
	maxY = ne.lat();
	minX = sw.lng();
	minY = sw.lat();

	var rss_link = document.getElementById("rss_link");
	rss_link.href = 'index_map_marker.php?mode=add&minX='+minX+'&minY='+minY+'&maxX='+maxX+'&maxY='+maxY+'&rss=1';
	
	var request = GXmlHttp.create();
	request.open('GET','index_map_marker.php?mode=add&minX='+minX+'&minY='+minY+'&maxX='+maxX+'&maxY='+maxY, true);
	var newArray = new Array();
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var html = request.responseText;
			if(html != ""){
				var lines = html.split("\n");
				var inner_html = "";
				for(var i=0;i<lines.length;i++){
					var line = lines[i];
					if(line != ""){
						var prms = line.split(",");
						if(markers[prms[2]] == undefined){
							var marker = addMarker(prms[0],prms[1],prms[2],prms[3]);
							markers[prms[2]] = marker;
							if(prms[2] == 'zzz'||( Math.round((prms[0] - point_x)*Math.pow(10,12)) == 0 && Math.round((prms[1] - point_y)*Math.pow(10,12)) == 0  )){
								popupMarker(prms[2]);
							}
						}
						inner_html += "<div class='entry_item'>";
						inner_html += "<a href='javascript:popupMarker("+prms[2]+")' title='"+prms[7]+"'>";
						inner_html += "<img src='"+prms[3]+".gif'>";
						inner_html += "</a>";
						inner_html += "<div class='title'>";
						inner_html += "<a href='javascript:popupMarker("+prms[2]+")' title='"+prms[7]+"'>";
						inner_html += prms[4];
						inner_html += "</a>";
						inner_html += "</div>";
						inner_html += "<div class='adate'>";
						inner_html += prms[8];
						inner_html += "</div>";
						inner_html += "</div>";
					}
				}
				var entry_list = document.getElementById("entry_list");
				entry_list.innerHTML = inner_html;
			}
		}
	}
	request.send(null);
	return newArray;
}
	function popupMarker(id){
	marker = markers[id];
	var html = "";
	var request = GXmlHttp.create();
	request.open('GET', "index_map_marker.php?map_trackback_id="+id, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			html = request.responseText;
			if(html != ""){
				marker.openInfoWindowHtml(html);
			}
		}
	}
	request.send(null);
}
