﻿//<![CDATA[
var sidebar_html = "";
var gmarkers = [];
var htmls = [];
var i = 0;
var map;
var xml_filename = ["./xml/rekishi001.xml"]
	
// =========アイコン==========
var baseIcon = new GIcon();
baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
baseIcon.iconSize = new GSize(20, 34);
baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
baseIcon.infoShadowAnchor = new GPoint(18, 25);

//name はサイトバー用のテキスト

function createMarker(point, name, html) {
	var marker;
	var icon = new GIcon(baseIcon);
	var letter = String.fromCharCode("A".charCodeAt(0) + i);
	icon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";

	marker = new PdMarker(point, icon);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);
	});

	gmarkers[i] = marker;
    htmls[i] = html;
    sidebar_html += '<a href="javascript:myclick(' + i + ')">' + letter + " " + name + '<\/a><br />';
    i++;
	return marker;
}

function myclick(i) {
        gmarkers[i].openInfoWindowHtml(htmls[i]);
}

function onLoad() {
	map = new GMap2(document.getElementById("map"));
	// 地図が表示されたときの位置（緯度,経度）
	map.setCenter(new GLatLng(36.08215883908188, 140.2040433883667), 14);
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GOverviewMapControl());
	map.setMapType(G_NORMAL_MAP);

	var request = GXmlHttp.create();
	request.open("GET", xml_filename[0], 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++) {
			    var lat = parseFloat(markers[i].getAttribute("lat"));
			    var lng = parseFloat(markers[i].getAttribute("lng"));
			    var point = new GLatLng(lat,lng);
			    var html = markers[i].getAttribute("html");
			    var sidebarname = markers[i].getAttribute("sidebarname");
			
			    var marker = createMarker(point,sidebarname,html);
			    map.addOverlay(marker);
		    }
		    document.getElementById("sidebar").innerHTML = sidebar_html;
		    
			//URLの引数でアイテムが指定されている場合（ ?item=[item_id] )
			if( location.search.match( /[&\?]item=([a-zA-Z0-9_-]+)/ ) ){
				var default_item = RegExp.$1;
				myclick(parseInt(default_item -1));
		    }
		}
	}
	request.send(null);
	

}
function onReLoad( cate_num ) {
	delete gmarkers;
	sidebar_html = "";
	delete htmls;
	i = 0;
	delete map;

	map = new GMap2(document.getElementById("map"));
	// 地図が表示されたときの位置（緯度,経度）
	map.setCenter(new GLatLng(36.08215883908188, 140.2040433883667), 14);
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GOverviewMapControl());
	map.setMapType(G_NORMAL_MAP);
	
	var request = GXmlHttp.create();
	read_filename = xml_filename[ cate_num ];
	request.open("GET", read_filename, 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++) {
			    var lat = parseFloat(markers[i].getAttribute("lat"));
			    var lng = parseFloat(markers[i].getAttribute("lng"));
			    var point = new GLatLng(lat,lng);
			    var html = markers[i].getAttribute("html");
			    var sidebarname = markers[i].getAttribute("sidebarname");
			
			    var marker = createMarker(point,sidebarname,html);
			    map.addOverlay(marker);
		    }
		    document.getElementById("sidebar").innerHTML = sidebar_html;
		}
	}
	request.send(null);

}
//]]>
    
