
// include google-maps
var s = document.getElementsByTagName("script");
var gmapApiKey = "ABQIAAAAMNlMYTMe15IKVSF_0TVzDxSHS6Ym2tIgltuofTjQ49GKSrbXmhTH_GI-7RafozVvzMe_3zAVLOP5KA";
for (var i = 0; i < s.length; i++) {
	if (s[i].src && s[i].src.match(/hw_main[0-9a-zA-Z\-_]*\.js(\?.*)?$/)) {
		var match = s[i].src.match(/\?.*gmapkey=([a-zA-Z0-9\-_]*)/);
		if (match) {
			gmapApiKey = match[1];
		}
	}
}
s = null;
document.write('<script language="javascript" src="http://maps.google.com/maps?file=api&amp;v=2&amp;hl=ja&amp;key=' +gmapApiKey + '" type="text/javascript" charset="utf-8"></script>');


// GoogleMapsピンJavaScript
var _GoogleMaps = {

	// マップを格納する
	maps: {},

	// ピンを格納する
	pins: {},

	// マップを追加する関数
	addMap: function(elementId, options)
	{
		var map = this.maps[elementId] = new GMap2(document.getElementById(elementId));
		options.width = parseInt(options.width);
		options.height = parseInt(options.height);
		options.longitude = parseFloat(options.longitude);
		options.latitude = parseFloat(options.latitude);
		options.zoom = parseInt(options.zoom);
		options.maptype = parseInt(options.maptype);
		options.mapcontrol = parseInt(options.mapcontrol);

		if (options.typecontrol == "true") options.typecontrol = true;
		else if (options.typecontrol == "false") options.typecontrol = false;
		if (options.dragging == "true") options.dragging = true;
		else if (options.dragging == "false") options.dragging= false;
		if (options.zoombutton == "true") options.zoombutton = true;
		else if (options.zoombutton == "false") options.zoombutton = false;

		// 位置を設定
		map.setCenter(new GLatLng(options.latitude, options.longitude), options.zoom);

		/// マップタイプの設定
		try {
			switch (options.maptype) {
				case 0 :
					map.setMapType(G_NORMAL_MAP);
					break;
				case 1 :
					map.setMapType(G_SATELLITE_MAP);
					break;
				case 2 :
					map.setMapType(G_HYBRID_MAP);
					break;
			}
		} catch(e) {
 			alert(e.toString());
		}

		/// マップコントロールの設定
 		try {
	 		switch (Number(options.mapcontrol)) {
				case 1 :
					map.addControl(new GSmallZoomControl());
					break;
				case 2 :
					map.addControl(new GSmallMapControl());
					break;
				case 3 :
					map.addControl(new GLargeMapControl());

					if (navigator.userAgent.indexOf('Gecko') > -1
						&& navigator.userAgent.indexOf('KHTML') == -1) {
						setTimeout('_GoogleMaps.fixMapControl("' + elementId + '")', 700);
					}
					break;
			}
 		} catch(e) {
 			alert(e.toString());
 		}

		/// タイプコントロールの設定
		try {
			if (options.typecontrol) {
				map.addControl(new GMapTypeControl());
			}
		} catch(e) {
 			alert(e.toString());
		}

		/// ドラッグの設定
		if (options.dragging) {
			map.enableDragging();
		}
	},

	fixMapControl: function(elementId)
	{
		// FF2用バグ対策
		var ctrl;
		try {
			ctrl = document.getElementById(elementId);
			if (typeof(ctrl) != 'object' || typeof(ctrl.childNodes) == 'undefined'
				|| ctrl.childNodes.length < 4 || ctrl.childNodes[3].childNodes.length < 4) {
				setTimeout('_GoogleMaps.fixMapControl("' + elementId + '")', 700);
			}
			var zix = this.getStyle(ctrl, 'z-index');
			var c2 = ctrl.childNodes[3];
			var c3 = c2.childNodes[3];
			ctrl = c3;
			c2 = c3 = null;
			var zix2 = this.getStyle(ctrl.previousSibling.previousSibling, 'z-index');
			zix = parseInt(zix2.match(/^[0-9]+$/) ? zix2 : zix);
			ctrl.previousSibling.style.zIndex = zix + 1;
			ctrl.style.zIndex = zix + 2;
		} catch(e) {
//			alert(e.toString());
		} finally {
			ctrl = null;
		}
	},


	getStyle: function(ele, property, pseudo)
	{
		if (ele.currentStyle) { //IE or Opera
			return ele.currentStyle[property];
		} else if (getComputedStyle) { //Mozilla or Opera
			return document.defaultView.getComputedStyle(ele, pseudo).getPropertyValue(property);
		}
		return '';
	},

	// ピンを追加する関数
	addPin: function(mapId, options)
	{
		if (typeof(this.maps[mapId]) == 'undefined') {
			return;
		}
	
		// GoogleMapインスタンス取り出し
		var map = this.maps[mapId];

		var pin = this.pins[mapId + ':' + options.pin_id] = {};

		/// Markerの作成
		var point = new GLatLng(options.latlng[0],options.latlng[1]);

		/// MarkerICONを作成する
		var icon = new GIcon();
		icon.image = 'http://image.hotweb.bz/file/common/img/' + options.icon_data.filename;
		icon.iconSize = new GSize(options.icon_data.width - 0,
			options.icon_data.height - 0);
		icon.shadow = 'http://image.hotweb.bz/file/common/img/' + options.icon_data.shadowFilename,
		icon.shadowSize = new GSize(options.icon_data.shadowWidth - 0,
			options.icon_data.shadowHeight - 0);
		icon.iconAnchor = new GPoint(options.icon_data.iconAnchorX - 0,
			options.icon_data.iconAnchorY - 0);
		icon.infoWindowAnchor = new GPoint(options.icon_data.infoWindowAnchorX - 0,
			options.icon_data.infoWindowAnchorY - 0);
		icon.infoShadowAnchor = new GPoint(options.icon_data.infoShadowAnchorX - 0,
			options.icon_data.infoShadowAnchorY - 0);
		
		pin.marker = new GMarker(point, { icon:icon });
		/// Markerにイベントを登録する
		/// クリック
		GEvent.bind(pin.marker, 'click', pin, function() {
			/// 情報ウインドウの表示
			/// マーカーの場所を取得する
			var latlng = this.marker.getPoint();
			/// マーカーを中央に配置する
			map.setCenter(latlng);
			/// 情報ウインドウを表示する
			if (this.html) this.marker.openInfoWindowHtml(this.html);
		});

		/// Markerの表示
		map.addOverlay(pin.marker);

		/// 情報ウインドウのHTMLを設定する
		options.description = options.description.replace(new RegExp("(\r\n|\n|\r)", "gi"), "<br />");   /// 説明
		pin.html = '<div class="infoHtml"><div class="gmap_title" >';
		if (options.url != '') {
			pin.html += '<a href="' + options.url + '" target="_blank"><strong>'
				+ _escapeHTML(options.title) + '</strong></a>';
		} else {
			pin.html += '<strong>' + _escapeHTML(options.title) + '</strong>';
		}
		pin.html += '</div><div class="gmap_address" >' + _escapeHTML(options.address)
			+ '</div><div class="gmap_url" ><a href="' + _escapeHTML(options.url)
			+ '" target="_brank" />' + options.url
			+ '</a></div><div class="gmap_phone" >' + _escapeHTML(options.telephone)
			+ '</div><div class="gmap_comment" >' + _escapeHTML(options.description)
			+ '</div></div>';
	}

};


function _page_onload() {
	_GoogleMaps.addMap('hw-8Iip5veQfdkkH', {"width":620,"height":383,"longitude":"140.87319016456604","latitude":"38.26113138987741","zoom":"17","maptype":"0","mapcontrol":"3","typecontrol":"true","dragging":"true","zoombutton":"true"});
	_GoogleMaps.addPin('hw-8Iip5veQfdkkH', {"pin_id":"1","pin_type":"4","latlng":["38.2608742","140.8716281"],"title":"\u3057\u3083\u3076\u3057\u3083\u3076\u30fb\u3059\u304d\u713c\u304d\u306e\u548c\u559c","address":"\u5bae\u57ce\u770c\u4ed9\u53f0\u5e02\u9752\u8449\u533a\u4e00\u756a\u753a\u4e09\u4e01\u76ee4-26 \u3088\u308d\u3065\u5712\u30d3\u30eb5F","url":"","telephone":"022-261-5566","description":"","draggable":false,"icon_data":{"group":"1","previewFilename":"window\/pin_40_nomal_gold.png","previewWidth":"40","previewHeight":"40","filename":"window\/pin_34_nomal_gold.png","width":"20","height":"34","shadowFilename":"window\/mm_34_shadow.png","shadowWidth":"37","shadowHeight":"34","iconAnchorX":"10","iconAnchorY":"34","infoWindowAnchorX":"10","infoWindowAnchorY":"0","infoShadowAnchorX":"0","infoShadowAnchorY":"0"}});

}

function _escapeHTML(str)
{
	return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
}

// attach onload-event
if (window.addEventListener) {
	window.addEventListener("load", _page_onload, false);
} else if(window.attachEvent) {
	window.attachEvent("onload", _page_onload);
}




