﻿var map;
var smark = null;
var cross_icon;
var cross_marker;
var infoTabs;
var marker;

function init_map()
{
	if( !GBrowserIsCompatible() ){
		return;
	}
	map = new GMap2(document.getElementById("map"));
	// マップタイプコントローラを追加する
	map.addControl( new GMenuMapTypeControl() );
	// マップコントローラを付ける
	map.addControl( new GLargeMapControl() );
	// マップオーバービューコントローラを付ける
	//var miniMap = new GOverviewMapControl( new GSize(200,150) );
	//map.addControl( miniMap );
	//スケールコントローラ(尺度定規)を付ける
	map.addControl( new GScaleControl() );
	// 階層式のマップタイプコントローラ
	map.addControl(new GHierarchicalMapTypeControl());
	
	// 地図の緯度経度を指定する
	map.setCenter(new GLatLng(init_ido, init_kdo), init_zoom);

	// マーカーを追加
	marker = new GMarker( new GLatLng(init_ido, init_kdo) );
	map.addOverlay( marker );
	// マーカーのタブ付きの吹き出しを準備する
	var infoTabs = [
		new GInfoWindowTab("", init_text)
		];
	// マーカーをクリックしたら、タブ付きの吹き出しを表示する
	GEvent.addListener( marker, "click", function() {
		marker.openInfoWindowTabsHtml(infoTabs);
	});
	// マーカーのタブを表示する
	marker.openInfoWindowTabsHtml(infoTabs);

	// 十字アイコンの作成
	cross_icon = new GIcon();
	cross_icon.image = "http://googlemaps.googlermania.com/uploads/cross_marker.gif";
	cross_icon.iconSize = new GSize(39, 39);
	cross_icon.iconAnchor = new GPoint(20, 20);
//	var option = {
//		icon  : cross_icon,		//アイコン = cross_icon
//		clickable : false		//クリック = 不可
//	};
	// 地図に十字マークを登録しておく
	cross_marker = new GMarker( map.getCenter(), cross_icon );
	map.addOverlay( cross_marker );

	// 地図のズーム変更時イベントを制御する
	GEvent.addListener( map, "zoomend", map_zoomend );

	// イベントの登録 : 地図が移動中のとき、呼び出されるようにする
	GEvent.addListener( map, "move", map_move );

	// 地図がクリックイベントを制御する
	//GEvent.addListener( map, "click", map_click );

}

// 地図クリック時の処理
function map_click( overlay, point )
{
	if( overlay == null ){
		// 地図をクリック
		confirm( point.lat() + "," + point.lng() );
//		map.setCenter( point );
		return;
	}else{
		// オブジェクトをクリック
	}
}

// 地図移動時の処理
function map_move()
{
	cross_marker.setPoint( map.getCenter() );
	var lat = map.getCenter().lat();
	var lon = map.getCenter().lng();
	if( map_mode == 1 ){
		document.all.item("ido").value = lat;
		document.all.item("kdo").value = lon;
	}
}

// 縮尺変更時の処理
function map_zoomend( oldLevel, newLevel )
{
	if( map_mode == 1 ){
		document.all.item("zoom").value = newLevel;
	}
}

function showAddress(address)
{
	geocoder = new GClientGeocoder();
	geocoder.getLatLng(
		address,
		function(point){
			if( !point ){
				alert( address + " は見つかりませんでした。" );
			}else{
				map.setCenter( point, 13 );
				if( smark == null ){
					smark = new GMarker( point );
					map.addOverlay( smark );
				}else{
					smark.setLatLng( point );
					smark.show();
				}
			}
		}
	);
}

function fncReturnLatLon()
{
	var lat = map.getCenter().lat();
	var lon = map.getCenter().lng();
	
	window.opener.document.all.item("google_map_lat").value = lat;
	window.opener.document.all.item("google_map_lon").value = lon;

	window.close();
}

