if(GBrowserIsCompatible()){

	var gmarkers = new Array();
	var gmap;
	//var directions;
	//var memberId;
	this.onload = function(){
		gmap = new GMap2(document.getElementById("map"));
		//gmap.addControl(new GSmallMapControl());
		gmap.addControl(new GLargeMapControl());
		gmap.addControl(new GScaleControl());
		gmap.addControl(new GOverviewMapControl());
		gmap.addControl(new GMapTypeControl());
		gmap.enableDoubleClickZoom();
		gmap.enableContinuousZoom();
		//gmap.enableScrollWheelZoom();
		gmap.setCenter(new GLatLng(37.8888, 137.8888), 5);
		//directions = new GDirections(gmap, document.getElementById('route'));
		
		//getLoginMember();

	}
	function createMarker(id,lat,lng,name,brand,comment,address,tel,url,logo,img){
		var point = new GLatLng(lat,lng);
		var marker = new GMarker(point);
		GEvent.addListener(marker, "click",
			function(){
				var html = "<div style=\"margin:0;padding:0;background-color:white;color:black;text-align:left;\">";
				if(name.length > 0){
					html += "<p style=\"margin:0;padding:2px;font-size:12pt;\">";
					html += name;
					html += "</p>";
				}
				if(brand.length > 0){
					html += "<p style=\"margin:0;padding:4px;font-size:10pt;background-color:#F0FFF0;color:#224422;\">";
					html += brand;
					html += "</p>";
				}
				if(comment.length > 0){
					html += "<p style=\"margin:0;padding:4px;font-size:10pt;background-color:#F0F0FF;color:#222244;\">";
					if(parseInt(logo) > 0){
						html += "<img src=\"./image/"+id+"/logo.png\" alt=\"[IMG]\" style=\"float:right;width:128px;height:128px;\" />";
					}
					html += comment;
					html += "<br style=\"clear:right;\" /></p>";
				}
				if(address.length > 0){
					html += "<p style=\"margin:0;padding:2px;font-size:10pt;\">";
					html += address;
					html += "</p>";
				}
				if(tel.length > 0){
					html += "<p style=\"margin:0;padding:2px;font-size:10pt;\">";
					html += "TEL:&nbsp;" + tel;
					html += "</p>";
				}
				if(url.length > 0){
					html += "<p style=\"margin:0;padding:2px;font-size:10pt;\">";
					//html += "<a href=\"" + url + "\">ホームページへ</a>";
					html += "<a href=\"javascript:jump("+ id +",'"+ url +"');\">" + url + "</a>";
					html += "</p>";
				}
				html += "</div>";
				z = gmap.getZoom();
				zi = z + 1; if(zi > 17){ z = 17; }
				zo = z - 1; if(zi < 0){ z = 0; }
				html += "<p style=\"margin:0;padding:2px;font-size:8pt;color:gray;text-align:left;\">";
				html += "[<a href=\"javascript:viewMarker("+id+","+zi+");\">Zoom In</a>]";
				html += "&nbsp;-&nbsp;"
				html += "[<a href=\"javascript:viewMarker("+id+","+zo+");\">Zoom Out</a>]";
				html += "</p>";
				if(img.length > 0){
					var a = img.split(',');
					var its = new Array();
					for(i = 0; i < a.length; i += 5){
						var tab = "<div style=\"margin:0;padding:4px;text-align:center;font-size:8pt;color:black;\">";
						if(a[i]){
							tab += "<img src=\""+a[i]+"\" alt=\"IMAGE\"";
							if(a[i+1]){ tab += " width=\""+a[i+1]+"\""; }
							if(a[i+2]){ tab += " height=\""+a[i+2]+"\""; }
							tab += " />";
						}
						if(a[i+3]){ tab = "<a href=\""+a[i+3]+"\">"+tab+"</a>"; }
						if(a[i+4]){ tab += "<p style=\"margin:0;padding:4px;\">"+a[i+4]+"</p>"; }
						tab += "</div>";
						its.push(tab);
					}
					var tabs = [new GInfoWindowTab("詳細",html)];
					for(i = 0; i < its.length; i++){
						tabs.push(new GInfoWindowTab("画像",its[i]));
					}
					marker.openInfoWindowTabsHtml(tabs,{maxWidth:300});
				}else{
					marker.openInfoWindowHtml(html,{maxWidth:280});
				}});
		return marker;
	}
	function loadKuramotoXML(url,openid,openzoom){
		//gmap.clearOverlays();
		var request = GXmlHttp.create();
		request.open("GET", url, true);
		request.onreadystatechange = function(){
			if(request.readyState == 4 && request.status == 200){
				var xmlDoc = request.responseXML;
				var markers = xmlDoc.documentElement.getElementsByTagName("marker");
				for(var i = 0; i < markers.length; i++){
					var id = parseInt(markers[i].getAttribute("id"));
					var lat = parseFloat(markers[i].getAttribute("lat"));
					var lng = parseFloat(markers[i].getAttribute("lng"));
					var name = markers[i].getAttribute("name");
					var brand = markers[i].getAttribute("brand");
					var comment = markers[i].getAttribute("comment");
					var address = markers[i].getAttribute("address");
					var tel = markers[i].getAttribute("tel");
					var url = markers[i].getAttribute("url");
					var logo = markers[i].getAttribute("logo");
					var img = markers[i].getAttribute("img");
					if(! gmarkers[id]){
						var marker = createMarker(id,lat,lng,name,brand,comment,address,tel,url,logo,img);
						gmap.addOverlay(marker);
						gmarkers[id] = marker;
						if(openid == id){
							gmap.setCenter(marker.point,openzoom);
							GEvent.trigger(marker,'click');
						}
					}
				}
			}
		};
		request.send(null);
	}
	function viewMarker(id,zoom){
		if(gmarkers[id]){
			gmap.setCenter(gmarkers[id].point,zoom);
			GEvent.trigger(gmarkers[id],'click');
		}
	}
	function viewIdMarker(id,zoom){
		if(gmarkers[id]){
			gmap.setCenter(gmarkers[id].point,zoom);
			GEvent.trigger(gmarkers[id],'click');
		}else{
			loadKuramotoXML('./area-xml.cgi?id='+id,id,zoom);
		}
	}
	function viewNewMarker(id,zoom){
		if(gmarkers[id]){
			gmap.setCenter(gmarkers[id].point,zoom);
			GEvent.trigger(gmarkers[id],'click');
		}else{
			loadKuramotoXML('./area-xml.cgi?no=new',id,zoom);
		}
	}
	function viewSearchMarker(id,zoom,keywords){
		if(gmarkers[id]){
			gmap.setCenter(gmarkers[id].point,zoom);
			GEvent.trigger(gmarkers[id],'click');
		}else{
			loadKuramotoXML("./area-xml.cgi?search=1&amp;keywords="+encodeURI(keywords),id,zoom);
		}
	}
	function clickArea(area){
		loadKuramotoXML("./area-xml.cgi?no="+area,0,0);
		switch(area){
		case 0 : gmap.setCenter(new GLatLng(37.8888, 137.8888), 5); break; // すべて
		case 1 : gmap.setCenter(new GLatLng(32.7777, 131.1111), 8); break; // 九州
		case 2 : gmap.setCenter(new GLatLng(33.6666, 133.5555), 8); break; // 四国
		case 3 : gmap.setCenter(new GLatLng(34.8888, 133.1111), 7); break; // 中国
		case 4 : gmap.setCenter(new GLatLng(34.6666, 135.4444), 8); break; // 近畿
		case 5 : gmap.setCenter(new GLatLng(36.3333, 137.8888), 7); break; // 中部
		case 6 : gmap.setCenter(new GLatLng(35.8888, 139.6666), 8); break; // 関東
		case 7 : gmap.setCenter(new GLatLng(38.9999, 140.7777), 7); break; // 東北
		case 8 : gmap.setCenter(new GLatLng(43.3333, 142.5555), 7); break; // 北海道
		}
	}

	// ルート検索
	function dispRoute(){
		var from = document.getElementById("from").value;
		var to = document.getElementById("to").value;

		directions.clear();
		document.getElementById('route').innerHTML = "";

		if (from && to) {
			str = 'from: ' + from + ' to: ' + to;
			directions.load(str, {locale: 'ja_JP',travelMode: G_TRAVEL_MODE_DRIVING});
		    GEvent.addListener(directions, "error", onGDirectionsError);
			document.getElementById("btn_print").style.visibility = "visible";
		} else {
			var str = "";
			if (!from && to) {
				str += "出発地";
			} else if (from && !to) {
				str += "目的地";
			} else {
				str += "出発地、目的地";
			}
			document.getElementById('route').innerHTML = "<br /><div>" + str + "が入力されていません。</div>";
		}
	}

	// ルート検索クリア
	function clearRoute(){
		directions.clear();
		document.routeSearch.from.value = "";
		document.routeSearch.to.value = "";
		document.getElementById("btn_print").style.visibility = "hidden";

		document.getElementById('route').innerHTML = "";
	}

	// ここからのルート(ルート検索FROM)にセット
	function setFrom(address){
		document.routeSearch.from.value = address;
	}

	// ここへのルート(ルート検索TO)にセット
	function setTo(address) {
		document.routeSearch.to.value = address;
	}

	function onGDirectionsError(){ 
		var errCode = directions.getStatus().code;
		if (errCode == G_GEO_UNKNOWN_ADDRESS) {
			document.getElementById('route').innerHTML = "<br /><div>場所を特定できませんでした。<ul>"+
														"<li>地名・住所が正しく入力されていない可能性があります。</li>"+
														"<li>地図上の酒蔵情報から、ルートに設定することができます。</li>"+
														"</ul></div>" ;
			document.getElementById("btn_print").style.visibility = "hidden";
		}
	}

	function print(){
		var from = escape(document.getElementById("from").value);
		var to = escape(document.getElementById("to").value);
		var param = "print.cgi?from=" + from + "&to=" + to;
		window.open(param, "", "width=1000,height=600,status,resizable,scrollbars,toolbar,menubar,location");
	}

	function getLoginMember(){
		var request = GXmlHttp.create();
		request.open("GET", "loginMenber.cgi", true);
		request.onreadystatechange = function(){
			if(request.readyState == 4 && request.status == 200){
				var xmlDoc = request.responseXML;
				var memberIds = xmlDoc.documentElement.getElementsByTagName("member-id");
				if(memberIds.length == 1){
					memberId = parseInt(memberIds[i].getAttribute("memberId"));
				}else{
					memberId = 0;
				}
			}
		};
		request.send(null);
	}
}

