//-- 変数定義
var map;
var point;

/**
 * GMAP表示
 * 
 */
function dispGMap(mapId, mapIdo, mapKeido, mapZoom, mapWidth, mapHeight, flgDrag, mapCenterIdo, mapCenterKeido) {
	
	//-- 初期値設定
	if (mapZoom == undefined || isNaN(mapZoom)) { mapZoom = 17; }
	if (mapWidth == undefined) { mapWidth = 500; }
	if (mapHeight == undefined) { mapHeight = 500; }
	if (flgDrag == undefined || typeof flgDrag != 'boolean') { flgDrag = false; }
	if (mapCenterIdo == undefined) { mapCenterIdo = mapIdo; }
	if (mapCenterKeido == undefined) { mapCenterKeido = mapKeido; }
	
	//-- Google Maps API
	map = new GMap2(document.getElementById(mapId), {size:new GSize(mapWidth, mapHeight)});
	point = new GLatLng(mapIdo, mapKeido);
	var center = new GLatLng(mapCenterIdo, mapCenterKeido);
	map.setCenter(center, mapZoom);
	
	//-- コントロール追加
	if (mapHeight > 300) {
		map.addControl(new GLargeMapControl());
	} else if (mapHeight > 100) {
		map.addControl(new GSmallMapControl());
	} else {
		map.addControl(new GSmallZoomControl());
	}
	if (mapWidth > 400) {
		map.addControl(new GScaleControl());
	}
	if (mapWidth >= 400 && mapHeight >= 300) {
		map.addControl(new GMapTypeControl());
	} else {
		map.addControl(new GHierarchicalMapTypeControl());
	}
	
	//-- マウスホイールによる拡大縮小を有効にする
	map.enableScrollWheelZoom();
	map.enableContinuousZoom();
	
	//-- コントローラーのズーム範囲を指定
	var maptypeAry = map.getMapTypes();
	for (var i = 0; i < maptypeAry.length; i++) {
		maptypeAry[i].getMinimumResolution = function() { return 8; };
		if (maptypeAry[i].uc == 'm') {
			maptypeAry[i].getMaximumResolution = function() { return 22; };
		}
	}
	
	//-- マーカー表示
	if (flgDrag) {
		//-- ドラッグ可
		var marker = new GMarker(point, {draggable: true, bouncy: false});
		
		//-- 各イベントに関連付け
		GEvent.addListener(marker, "dragstart", function() { map.closeInfoWindow(); });
		GEvent.addListener(marker, "drag", function() {
				var p = marker.getLatLng();
				//-- 画面表示部分
				document.getElementById('span_keido').innerHTML = p.lng();
				document.getElementById('span_ido').innerHTML = p.lat();
			});
		GEvent.addListener(marker, "dragend", function() {
				var p = marker.getLatLng();
				//-- メッセージ表示
				marker.openInfoWindowHtml("経度：" + p.lng() + "<br>緯度：" + p.lat());
				//-- HIDDENの値などを変更
				document.form1['map_keido'].value = p.lng();
				document.form2['map_keido'].value = p.lng();
				document.form1['map_ido'].value = p.lat();
				document.form2['map_ido'].value = p.lat();
				//-- 画面表示部分
				document.getElementById('span_keido').innerHTML = p.lng();
				document.getElementById('span_ido').innerHTML = p.lat();
			});
		
	} else {
		//-- ドラッグ不可
		var marker = new GMarker(point);
	}
	
	map.addOverlay(marker);
}

/**
 * マーカーの追加
 * 
 */
function addMarker(infoAry) {
	
	var addPint = new GLatLng(infoAry.IDO, infoAry.KEIDO);
	
	if (infoAry.ICON == undefined || infoAry.ICON == '') {
		
		var addMarker = new GMarker(addPint);
		
	} else {
		
		var icon = new GIcon();
		icon.image = infoAry.ICON;
		icon.iconSize = new GSize(20,20);
		icon.iconAnchor = new GPoint(10, 10);
		icon.infoWindowAnchor = new GPoint(10, 10);
		
		var addMarker = new GMarker(addPint, {icon:icon, title:infoAry.NAME});
	}
	
	var infoText = '<small><tt>[<a href="' + infoAry.GENRE_URL + '" title="ジャンル一覧を見る" target="_blank">' + infoAry.GENRE + '</a>]</tt></small><br>'
				 + '<a href="' + infoAry.URL + '" title="詳細情報を見る" target="_blank"><big><b>' + infoAry.NAME + '</b></big></a>';
	
	GEvent.addListener(addMarker, 'click', function() {
		addMarker.openInfoWindowHtml(infoText);
	});
	
	map.addOverlay(addMarker);
}

/**
 * 地図を元の位置に戻す
 * 
 */
function returnPosition(mapZoom) {
	//-- 初期値設定
	if (mapZoom == undefined || !isNaN(mapZoom)) { mapZoom = 17; }
	
	map.setCenter(point, mapZoom);
}

/**
 * 印刷ページ表示
 * 
 */
function dispPrint() {
	var p = map.getCenter();
	var zoom = map.getZoom();
	window.open("print.html?p=" + p.lat() + "," + p.lng() + "&zoom=" + zoom, '印刷ページ');
}


