    var top = "";   //IE対策

    function initialize() {
      markerList = new Array();
      htmlList = new Array();
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("gmap"), {size:new GSize(760,630)});
        map.setCenter(new GLatLng(36.226619, 138.180542), 9);
        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);
                addMarker(1);
                addMarker(2);
                addMarker(3);
                addMarker(4);
                addMarker(5);
                addMarker(6);
                addMarker(7);
                addMarker(8);
                addMarker(9);
            }
        }
        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 img = (place[i].getElementsByTagName("img").length != 0) ? place[i].getElementsByTagName("img")[0].firstChild.nodeValue : '';
                    var kuratxt = (place[i].getElementsByTagName("kuratxt").length != 0) ? place[i].getElementsByTagName("kuratxt")[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 hours = (place[i].getElementsByTagName("hours").length != 0) ? place[i].getElementsByTagName("hours")[0].firstChild.nodeValue : '';
                    var holiday = (place[i].getElementsByTagName("holiday").length != 0) ? place[i].getElementsByTagName("holiday")[0].firstChild.nodeValue : '';
                    var test = (place[i].getElementsByTagName("test").length != 0) ? place[i].getElementsByTagName("test")[0].firstChild.nodeValue : '';
                    var study = (place[i].getElementsByTagName("study").length != 0) ? place[i].getElementsByTagName("study")[0].firstChild.nodeValue : '';
                    var sales = (place[i].getElementsByTagName("sales").length != 0) ? place[i].getElementsByTagName("sales")[0].firstChild.nodeValue : '';
                    var numberpeople = (place[i].getElementsByTagName("numberpeople").length != 0) ? place[i].getElementsByTagName("numberpeople")[0].firstChild.nodeValue : '';
                    var restaurant = (place[i].getElementsByTagName("restaurant").length != 0) ? place[i].getElementsByTagName("restaurant")[0].firstChild.nodeValue : '';
                    var parking = (place[i].getElementsByTagName("parking").length != 0) ? place[i].getElementsByTagName("parking")[0].firstChild.nodeValue : '';
                    var bus = (place[i].getElementsByTagName("bus").length != 0) ? place[i].getElementsByTagName("bus")[0].firstChild.nodeValue : '';
                    var mail = (place[i].getElementsByTagName("mail").length != 0) ? place[i].getElementsByTagName("mail")[0].firstChild.nodeValue : '';
                    var others = (place[i].getElementsByTagName("others").length != 0) ? place[i].getElementsByTagName("others")[0].firstChild.nodeValue : '';
                    var hp = (place[i].getElementsByTagName("hp").length != 0) ? place[i].getElementsByTagName("hp")[0].firstChild.nodeValue : '';
                    
                    if (place[i].getElementsByTagName("img").length != 0) {
                    var kuraimg = '<div class="pr_fleft" style="padding-bottom:10px;"><img src="' + img + '"></div>';
                    }else{
                    var kuraimg = '';
                    }
                    
                    if (place[i].getElementsByTagName("hp").length != 0) {
                    var titlelink = '<a href="' + hp + '" target="_blank">' + title + '</a>';
                    }else{
                    var titlelink = title;
                    }
                    
                    if (place[i].getElementsByTagName("mail").length != 0) {
                    var mailto = '<a href="mailto:' + mail + '"><img src="./img/inquiry.jpg"></a>';
                    }else{
                    var mailto = '';
                    }
                    
					var addresstr = '<tr><th>所在地</th><td>' + address + '</td></tr>';
                    
                    if (place[i].getElementsByTagName("tel").length != 0) {
                    var teltr = '<tr><th>電話番号</th><td>' + tel + '</td></tr>';
                    }else{
                    var teltr = '';
                    }
                    if (place[i].getElementsByTagName("fax").length != 0) {
                    var faxtr = '<tr><th>FAX</th><td>' + fax + '</td></tr>';
                    }else{
                    var faxtr = '';
                    }
                    if (place[i].getElementsByTagName("hours").length != 0) {
                    var hourstr = '<tr><th>営業時間</th><td>' + hours + '</td></tr>';
                    }else{
                    var hourstr = '';
                    }
                    if (place[i].getElementsByTagName("holiday").length != 0) {
                    var holidaytr = '<tr><th>定休日</th><td>' + holiday + '</td></tr>';
                    }else{
                    var holidaytr = '';
                    }
                    if (place[i].getElementsByTagName("test").length != 0) {
                    var testtr = '<tr><th>試飲</th><td>' + test + '</td></tr>';
                    }else{
                    var testtr = '';
                    }
                    if (place[i].getElementsByTagName("study").length != 0) {
                    var studytr = '<tr><th>蔵見学</th><td>' + study + '</td></tr>';
                    }else{
                    var studytr = '';
                    }
                    if (place[i].getElementsByTagName("sales").length != 0) {
                    var salestr = '<tr><th>直売</th><td>' + sales + '</td></tr>';
                    }else{
                    var salestr = '';
                    }
                    if (place[i].getElementsByTagName("numberpeople").length != 0) {
                    var numbertr = '<tr><th>人数</th><td>' + numberpeople + '</td></tr>';
                    }else{
                    var numbertr = '';
                    }
                    if (place[i].getElementsByTagName("restaurant").length != 0) {
                    var restauranttr = '<tr><th>飲食施設</th><td>' + restaurant + '</td></tr>';
                    }else{
                    var restauranttr = '';
                    }
                    if (place[i].getElementsByTagName("parking").length != 0) {
                    var parkingtr = '<tr><th>駐車可能台数</th><td>' + parking + '</td></tr>';
                    }else{
                    var parkingtr = '';
                    }                    
                    if (place[i].getElementsByTagName("bus").length != 0) {
                    var bustr = '<tr><th>観光バスの台数</th><td>' + bus + '</td></tr>';
                    }else{
                    var bustr = '';
                    }
                    if (place[i].getElementsByTagName("others").length != 0) {
                    var otherstr = '<tr><th>その他</th><td>' + others + '</td></tr>';
                    }else{
                    var otherstr = '';
                    }
                    createMarker(latitude, longitude, createHtml(titlelink, kuraimg, kuratxt, addresstr, teltr, faxtr, hourstr, holidaytr, testtr, studytr, salestr, numbertr, restauranttr, parkingtr, bustr, otherstr, mailto), number);
                }
            }
    }
    //HTML部分
    function createHtml(titlelink, kuraimg, kuratxt, addresstr, teltr, faxtr, hourstr, holidaytr, testtr, studytr, salestr, numbertr, restauranttr, parkingtr, bustr, otherstr, mailto) {
        var html = '<div class="infowindow"><div class="title">' + kuraimg + '<div class="fright"><h5>' + titlelink + '</h5><p>' + kuratxt + '</p></div></div><table id="infotal">' + addresstr + teltr + faxtr + hourstr + holidaytr + testtr + studytr + salestr + numbertr + restauranttr + parkingtr + bustr + otherstr + '</table>' + '<div class="font_gmap" style="padding-top:5px;">' + mailto + '</div>' + '</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 = createCustomIcon(point, './img/icon1.png', './img/shadow-icon.png');
        map.addOverlay(marker);
        markerList.push(marker);
        GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml(htmlText);
            map.setCenter(point);
            //map.setZoom(15);
        }); 
    }
    
    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 moveNakano() {
		var point = new GLatLng(36.742044,138.3694503);
		map.setCenter(point);
		map.setZoom(11);
}
	function moveNagano() {
		var point = new GLatLng(36.6485496,138.1942432);
		map.setCenter(point);
 		map.setZoom(11);
}
	function moveUeda() {
		var point = new GLatLng(36.4019115,138.2488888);
		map.setCenter(point);
   		map.setZoom(11);
}
	function moveSaku() {
		var point = new GLatLng(36.2488683,138.4768306);
		map.setCenter(point);
   		map.setZoom(11);
}
	function moveSuwa() {
		var point = new GLatLng(36.0391417,138.1141816);
		map.setCenter(point);
   		map.setZoom(11);
}
	function moveIna() {
		var point = new GLatLng(35.827481,137.9540801);
		map.setCenter(point);
   		map.setZoom(11);
}
	function moveIida() {
		var point = new GLatLng(35.5146999,137.8218215);
		map.setCenter(point);
   		map.setZoom(11);
}
	function moveKiso() {
		var point = new GLatLng(35.84272553046423,137.6913070678711);
		map.setCenter(point);
   		map.setZoom(11);
}
	function moveMatumoto() {
		var point = new GLatLng(36.2380381,137.9720341);
		map.setCenter(point);
   		map.setZoom(11);
}
	function moveKitaazumino() {
		var point = new GLatLng(36.3029426,137.899632);
		map.setCenter(point);
   		map.setZoom(11);
}
    function reset() {
        clearMarker();
        
        markerList = [];
        htmlList = [];
    }

function gmapcate(){
	var hash = window.location.hash;
	hash = hash.split("?");
	hash = hash[0].split("#");
	switch(hash[1]){
		case 'nakano': initialize();moveNakano(); break;
		case 'nagano': initialize();moveNagano(); break;
		case 'ueda': initialize();moveUeda(); break;
		case 'saku': initialize();moveSaku(); break;
		case 'suwa': initialize();moveSuwa(); break;
		case 'ina': initialize();moveIna(); break;
		case 'iida': initialize();moveIida(); break;
		case 'kiso': initialize();moveKiso(); break;
		case 'matsumoto': initialize();moveMatumoto(); break;
		case 'kitaazumi': initialize();moveKitaazumino(); break;
		default : initialize(); break;
	}
}
