﻿//<![CDATA[
//■ID名
var div_gmap		= 'map';
//■GoogleMapsオブジェクト
var map;			//GoogleMapオブジェクト
var geo;			//ジオコーディングオブジェクト
//■オブジェクト表示
var icon=[];		//アイコンオブジェクト
var eventsOld;		//イベント：削除用
//■初期位置
var o_latitude			= '22.540583132190495';
var o_longitude			= '114.08612966537475';
var o_zoom				= '17';

//■マーカーをドラッグで移動できるようにする。
var d_draggable = true;

//*===============================================================
//○初期化
//*===============================================================
//*  関数：initialize
//*---------------------------------------------------------------
//*  引数：(I/-) なし
//*---------------------------------------------------------------
//*  戻り：なし
//*---------------------------------------------------------------
//*  記述：任意
//*---------------------------------------------------------------
//*［備考］
//*===============================================================
$( document ).ready(
	function() {
		//◆Google Mapsが利用できるブラウザかどうか判断
		if ( GBrowserIsCompatible() ) {
			//◇利用可能
			//□ジオコーディングのインスタンス化
			geo = new GClientGeocoder();
			//□地図のインスタンスを作成
			map = new GMap2( document.getElementById( div_gmap ));
			//□移動/縮尺ボタンをつける
			map.addControl( new GLargeMapControl()    , new GControlPosition( G_ANCHOR_TOP_LEFT  , new GSize( 2 , 2 ) ) );
			//□地図/衛星写真 切り替え
			map.addControl( new GMapTypeControl()     , new GControlPosition( G_ANCHOR_TOP_RIGHT , new GSize( 2 , 2 ) ) );
			//□ズームイン時にスムーズ
			map.enableContinuousZoom();
			//□ダブルクリック時にズームイン
			//map.enableDoubleClickZoom();
			//□ドラッグ禁止
			//map.disableDragging();
			//□初期表示位置を設定
			map.setCenter( new GLatLng( parseFloat( o_latitude ) , parseFloat( o_longitude ) ) , parseInt( o_zoom , 10 ) );
			//□マウススクロール時にズームイン・ズームアウト
			map.enableScrollWheelZoom();
			GEvent.addDomListener( document.getElementById( div_gmap ) , 'DOMMouseScroll' , cancelEvent );
			GEvent.addDomListener( document.getElementById( div_gmap ) , 'mousewheel'     , cancelEvent );
			
			var marker	= new GMarker( new GLatLng( parseFloat( o_latitude  ) , parseFloat( o_longitude ) ) , {draggable:d_draggable} );
			map.addOverlay( marker );
			eventsOld = GEvent.addListener( marker , 'dragend' , function(){
				var obj_point= marker.getPoint();
				$( '#object_latitude'  ).val( obj_point.lat() );
				$( '#object_longitude' ).val( obj_point.lng() );
			});
			$( '#object_latitude'  ).val( o_latitude  );
			$( '#object_longitude' ).val( o_longitude );
			
			GEvent.addListener(map, "click", function(overlay,point){
				// クリック時にテキストボックスに経度・緯度を表示
				document.f_map.object_latitude.value  = point.y;
				document.f_map.object_longitude.value = point.x;
				
				// アイコン初期化
				map.clearOverlays();
				// アイコン表示
				var marker	= new GMarker( point , {draggable:true} );
				map.addOverlay( marker );
				eventsOld = GEvent.addListener( marker , 'dragend' , function(){
					var obj_point= marker.getPoint();
					$( '#object_latitude'  ).val( obj_point.lat() );
					$( '#object_longitude' ).val( obj_point.lng() );
				});
			});
		}
	}
);

//*===============================================================
//○マウススクロール処理
//*===============================================================
//*  関数：cancelEvent
//*---------------------------------------------------------------
//*  引数：(I/-) なし
//*---------------------------------------------------------------
//*  戻り：なし
//*---------------------------------------------------------------
//*  記述：任意
//*---------------------------------------------------------------
//*［備考］
//*===============================================================
function cancelEvent( event ){
	var e	= event;
	if (typeof e.preventDefault  == 'function') {
		e.preventDefault();
	}
	if (typeof e.stopPropagation == 'function') {
		e.stopPropagation();
	}
	if ( window.event ) {
		window.event.cancelBubble	= true;
		window.event.returnValue	= false;
	}
}


//*===============================================================
//○ジオコード処理
//*===============================================================
//*  関数：getGecode
//*---------------------------------------------------------------
//*  引数：(I/-) なし
//*---------------------------------------------------------------
//*  戻り：なし
//*---------------------------------------------------------------
//*  記述：任意
//*---------------------------------------------------------------
//*［備考］
//*===============================================================
function getGecode() {
	if ( geo ) {
		geo.getLatLng(
			$( '#address' ).val(),
			function( point ) {
				if ( point ) {
					map.clearOverlays();
					if ( eventsOld != '______array' && eventsOld != '' ) {
						GEvent.removeListener( eventsOld );
					}
					
					map.setCenter( point , 16 );
					var marker	= new GMarker( point , {draggable:true} );
					map.addOverlay( marker );
					$( '#object_latitude'  ).val( point.y );
					$( '#object_longitude' ).val( point.x );
					
					eventsOld = GEvent.addListener( marker , 'dragend' , function(){
						var obj_point= marker.getPoint();
						$( '#object_latitude'  ).val( obj_point.lat() );
						$( '#object_longitude' ).val( obj_point.lng() );
					});
				} else {
					alert( $( '#address' ).val() + 'は見つかりませんでした' );
				}
			}
		);
	}
}
//]]>