window.onload = function(){
	initMap();
}
window.onunload = GUnload;


var map;
var gmarkers = [];
var htmls = [];
var mp;
var positions;

function initMap(){
	
	//xmlをgeocoderで利用するための変数(geocoderを使わないなら不要)
	var n=[];
	var m=0;
	var l=0;
	var mname = []; //my name
	var madd = []; //address
	var minfo01 = []; //infomation
	var link01 = []; //Official Site
	var mimage = []; //image file
	var mx = []; //x
	var my = []; //y
	var header = []; //header
	var info_html = []; //output for info window
	var mst = []; //searchtext
	var st = []; //最終的な検索文
	var mh = []; //ヘッダー

//環境判定
	if (GBrowserIsCompatible()) {
	
		var baseIcon = new GIcon();
		baseIcon.shadow = "/image/map/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);
	
		var links_html = "";
		var i = 0;
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl(true));
		map.setCenter(new GLatLng(35.09793137979344,139.07532691955566), 15);
		map.enableScrollWheelZoom();
		map.enableContinuousZoom();
		map.addControl(new GScaleControl());
		
		//point:座標, label:分類見出し, html:情報ウィンドウ内容, index:通し番号
		function createMarker(point,label,name,html,site_url,index) {
			index = parseInt(index);
			var div = parseInt(i/26);
			var mod = i%26;
			var id = String.fromCharCode("A".charCodeAt(0) + mod);
			
			var icon = new GIcon(baseIcon);
			icon.image = "/image/map/marker" + index + ".png";
			var marker = new GMarker(point, icon);
			GEvent.addListener(marker, "click", function() {
				marker.openInfoWindowHtml('<div class="infoWin" style="width:300px;" >' + html + '</div>', '"Marker <strong>" + letter + "</strong>"');

			});
			gmarkers[i] = marker;
			htmls[i] = html;
			if(label != ""){
				links_html += '<h3 class="label">' + label + '</h3><p><a href="' + site_url + '" target="_blank" onmouseover="onMouseOpenWindow(' + i + ')" onmouseout="myout()">' + index + '.' + name + '</a></p>';
			}else{
				links_html += '<p><a href="' + site_url + '" target="_blank" onmouseover="onMouseOpenWindow(' + i + ')" onmouseout="myout()">' + index + '.' + name + '<\/a></p>';
			}
			i++;
			return marker;
		}
		
		//マーカー座標の読み込み(xmlから)
		var httpObj;
		var msec = (new Date()).getTime();
		httpObj = GXmlHttp.create();
		httpObj.open("GET", "./yado.xml?cache=" + msec);
		httpObj.onreadystatechange = function() {
			if((httpObj.readyState == 4) && (httpObj.status == 200)) {						
				var xmlData = httpObj.responseXML;
				positions = xmlData.getElementsByTagName("point");

				for (var j=0; j<positions.length; j++) {
					var mp;
					mname[j] = positions[j].getElementsByTagName("name")[0].firstChild.nodeValue;
					madd[j] = positions[j].getElementsByTagName("address")[0].firstChild.nodeValue;
					minfo01[j] = positions[j].getElementsByTagName("info01")[0].firstChild.nodeValue;
					link01[j] = positions[j].getElementsByTagName("link01")[0].firstChild.nodeValue;
					mimage[j] = positions[j].getElementsByTagName("image")[0].firstChild.nodeValue;
					
					//緯度mx, 経度my
					mx[j] = positions[j].getElementsByTagName("x")[0].firstChild.nodeValue;
					my[j] = positions[j].getElementsByTagName("y")[0].firstChild.nodeValue;
					mh[j] = positions[j].getElementsByTagName("header")[0].firstChild.nodeValue;
					header[j] = '';
					if(mh[j]!=0){
						header[j] = mh[j];
					}
					
info_html[j] = '<h3 style="margin:0px;padding:2px;">' + mname[j] + '&nbsp;<a href="' + link01[j] + '" target="_blank">宿のページへ</a>' +
'</h3><p style="font:bold;" >住所：' + madd[j] + '</p><p>' + 
'<img alt="' + mname[j] + '" src="' + mimage[j] +
'" style="padding:1px;margin:1px;border:1px solid #CCCCCC;width:120px;height:90px;float:right;"/>'+minfo01[j] +'</p>';

					mp = new GLatLng(my[j], mx[j]);
					var marker = createMarker(mp, header[j], mname[j], info_html[j],link01[j], j);

					map.addOverlay(marker);					
				}
				document.getElementById('map_links').innerHTML = links_html;
			}
		}
		httpObj.send(null);
	}
}

var timerID;
	function onMouseOpenWindow(i) {
		timerID=setTimeout(function(){gmarkers[i].openInfoWindowHtml('<div class="infoWin" style="width:300px;" >' + htmls[i] + '</div>')}, 200);
	}

	function myout() {
		clearTimeout(timerID);
	}

	function Adentro(i) { 
		map.setCenter(gmarkers[i].point,17);
	}

	function Fuera(i) { 
		map.setCenter(gmarkers[i].point,12); 
	} 
	
