    var map = "";   //IE対策

    function initialize() {
      markerList = new Array();
      htmlList = new Array();
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("gmap"));
        map.setCenter(new GLatLng(36.16199328548835, 138.05145263671875), 10);
        map.addControl(new GLargeMapControl());
        map.addControl(new GScaleControl());
        map.addControl(new GMapTypeControl());
        map.addControl(new GOverviewMapControl());
        map.addControl(new GScaleControl());
        
        request = GXmlHttp.create();
        request.open("GET", "./maplist.xml", true);
        request.onreadystatechange = function() {
            if ((request.readyState == 4) && (request.status == 200)) {
                addMarker(0);
            }
        }
        request.send(null);
      }
    }
    
    function addMarker(number) {
            if (number == undefined) {
                number = 0;
            }
            
            var xmlDoc = request.responseXML;
            var genre = xmlDoc.documentElement.getElementsByTagName("genre");
            
            var name = genre[number].getAttribute("name");
            var place = genre[number].getElementsByTagName("place");
            for (var i = 0; i < place.length; i++) {
                //if ((place[i].hasAttribute("latitude")) && (place[i].hasAttribute("longitude"))) { ←　IEにはhasAttributeがない
                if ((place[i].getAttribute("latitude")!=null) && (place[i].getAttribute("longitude")!=null)) {
                    var latitude = parseFloat(place[i].getAttribute("latitude"));
                    var longitude = parseFloat(place[i].getAttribute("longitude"));

                    var title = (place[i].getElementsByTagName("title").length != 0) ? place[i].getElementsByTagName("title")[0].firstChild.nodeValue : '';
                    var postal = (place[i].getElementsByTagName("postal").length != 0) ? place[i].getElementsByTagName("postal")[0].firstChild.nodeValue : '';
                    var address = (place[i].getElementsByTagName("address").length != 0) ? place[i].getElementsByTagName("address")[0].firstChild.nodeValue : '';
                    var tel = (place[i].getElementsByTagName("tel").length != 0) ? place[i].getElementsByTagName("tel")[0].firstChild.nodeValue : '';
                    var fax = (place[i].getElementsByTagName("fax").length != 0) ? place[i].getElementsByTagName("fax")[0].firstChild.nodeValue : '';
                    var postalHtml = (postal != '') ? '〒' + postal + '<br />' : '';
                
                    createMarker(latitude, longitude, createHtml(title, postalHtml, address, tel, fax), number);
                }
            }
    }
    
    //HTML部分
    function createHtml(title, postal, address, tel, fax) {
        var html = '<span>' + title + '</span><br /><span class="str03">' + postal + address + '</span><div class="tel_box">' + tel + '<br />' + fax + '</div>';
        htmlList.push(html);
        return html;
    }
    
    function zoomMarker(number) {
        markerList[number].openInfoWindowHtml(htmlList[number]);
        map.setCenter(markerList[number].getPoint(),16);
    }
    
    function createMarker(lat, lng, htmlText, number){
        var point = new GLatLng(lat, lng);
        var marker = new GMarker(point);

        map.addOverlay(marker);
        markerList.push(marker);
        GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml(htmlText);
        }); 
    }
    
    function createCustomIcon(point, iconFile, shadowFile) {
        var icon = new GIcon();
        icon.image = iconFile;
        icon.shadow = shadowFile;
        icon.iconSize = new GSize(24.0, 29.0);
        icon.shadowSize = new GSize(39.0, 29.0);
        icon.iconAnchor = new GPoint(12.0, 14.0);
        icon.infoWindowAnchor = new GPoint(12.0, 14.0);
        var marker = new GMarker(point, icon);
        return marker;
    }
    
    function clearMarker() {
        map.clearOverlays();
    }
    
    function center() {
        map.setCenter(GLatLng(36.577765, 138.167839), 12);
    }
    
    function reset() {
        clearMarker();
        center();
        
        markerList = [];
        htmlList = [];
    }

