﻿    function load(xmlfile) {
 		map = new GMap2(document.getElementById("gmap"));
		map.clearOverlays;
		map.addControl(new GLargeMapControl());
   		getxml(xmlfile);
   		ctrlObj = new GScaleControl();
   		map.addControl(ctrlObj);
   		GEvent.addListener(map, "click", function(overlay, point) {
   				if (point) {
   					document.getElementById('click_lat').value = point.x;
   					document.getElementById('click_long').value = point.y;
   					map.panTo(point);
   				}
   			}
   		);
   		GEvent.addListener(map, "moveend", function() {
   				document.getElementById('click_lat').value = (map.getCenter()).lng();
   				document.getElementById('click_long').value = (map.getCenter()).lat();
   			}
   		);
 		gGeo = new GClientGeocoder();
   	};

	function getxml(xmlfile) {
		httpObj = GXmlHttp.create();
		httpObj.open("get", xmlfile);
		httpObj.onreadystatechange = function() {
		if ((httpObj.readyState == 4) && (httpObj.status == 200)) addMarker();
		}
		httpObj.send(null);
	}
	
    function addMarker() {
		var xmlData = httpObj.responseXML;
   		var ctls = xmlData.getElementsByTagName("ctl");
		var xanchor = parseFloat(ctls[0].getAttribute("xanchor") );
   		var yanchor = parseFloat(ctls[0].getAttribute("yanchor") );
   		var zoomlevel = parseFloat(ctls[0].getAttribute("zoomlevel") );

   		var places = xmlData.getElementsByTagName("place");
   		for( var ix=0; ix < places.length ; ix++ ) {
   			var latitude = parseFloat(places[ix].getAttribute("latitude") ) - yanchor;
   			var longitude = parseFloat(places[ix].getAttribute("longitude") - xanchor);
   			var point = new GLatLng( latitude, longitude );
			if (ix == 0) {
				map.setCenter(point, zoomlevel);
			}
			var html = "<div style='width:200px; white-space; nowrap;'>";
      		if( places[ix].getElementsByTagName("title").length != 0 ) {
        		html += "<b>";
        		var title = places[ix].getElementsByTagName("title")[0].firstChild.nodeValue;
        		if( places[ix].getElementsByTagName("link").length != 0 ) {
         			var link = places[ix].getElementsByTagName("link")[0].firstChild.nodeValue;
          			html += "<a href='" + link + "'>" + title + "</a>";
        		}
        	else html += title;
        		html += "</b><br>";
      		}
      		if( places[ix].getElementsByTagName("description").length != 0 ) {
        		html += "<font size='-1'>";
        		html += places[ix].getElementsByTagName("description")[0].firstChild.nodeValue;
        		html += "</font><br>";
      		}
      		html += "<br><br></div>";
			markerInfo( ix, point, html );
		}
    }

    function markerInfo(ix,point,html) {
 	  	if (ix > 0) {
 	  		var myicon = new GIcon();
      		myicon.image = "../img/10002270410.gif";
      		myicon.iconSize = new GSize(27, 27);
   	  		myicon.iconAnchor = new GPoint(14, 27);
   	  		myicon.infoWindowAnchor = new GPoint(14, 10);
	  		var marker = new GMarker(point, myicon);
  			if( html != "" ) {
  	    		GEvent.addListener(marker, "click", function() {
        		marker.openInfoWindowHtml(html);
    			});
			}
      		map.addOverlay(marker);
  		}
    }

	function searchPoint() {
		document.getElementById("result").innerHTML = "検索中です...";
		var address = document.getElementById("geoName").value;
		gGeo.getLatLng(address, checkGeo);
	}

	function checkGeo(point) {
		if (point) {
			map.setCenter(point, 15);
			document.getElementById('click_lat').value = point.x;
			document.getElementById('click_long').value = point.y;
			document.getElementById("result").innerHTML = "";
		}else{
			document.getElementById("result").innerHTML = "見つかりませんでした";
		}
	}

	function hsearch(){
		txt = document.in_form.x.value;
		if (txt == "") {
			alert ("経度が入力されていません");
			return;
		}
		for (i=0; i<txt.length; i++) {
			c = txt.charAt(i);
			if ("0123456789.-".indexOf(c, 0) < 0) {
				alert ("経度に正しくない値が入力されています");
				return;
			}
		}
		txt = document.in_form.y.value;
		if (txt == "") {
			alert ("緯度が入力されていません");
			return;
		}
		for (i=0; i<txt.length; i++) {
			c = txt.charAt(i);
			if ("0123456789.-".indexOf(c, 0) < 0) {
				alert ("緯度に正しくない値が入力されています");
				return;
			}
		}
		document.hotel_search.addr.value = document.in_form.addr.value;
		document.hotel_search.x.value = document.in_form.x.value;
    	document.hotel_search.y.value = document.in_form.y.value;
    	document.hotel_search.r.value = document.in_form.r.value;
    	document.hotel_search.submit();
	}
