
//------------------------------------------------
//
// Setting
//
//------------------------------------------------
//グローバル変数
var map;

//------------------------------------------------
//
// Model
//
//------------------------------------------------
function setMapObj(elmObj)
{
	//グローバル変数にセット
	map = new GMap2(elmObj);
}
function setMapOptionObj()
{
	map.addControl(new GLargeMapControl());
	map.addControl(new GScaleControl());
	//マップ切り替えの地図・航空写真の切り替え追加
	map.addControl(new GMapTypeControl());
}
function initialSettingCenter(lat, lng)
{
	//map.setCenter(new GLatLng(lat, lng), 15);
	//map.setCenter(new GLatLng(lat, lng), 5);
	map.setCenter(new GLatLng(lat, lng), 13);
}
function moveCenter(lat, lng)
{
	map.setZoom(14);
	map.panTo(new GLatLng(lat, lng));
}
function getMarker(lat, lng, name)
{
	var mkObj = new GMarker(new GLatLng(lat, lng));
	map.addOverlay(mkObj);
	GEvent.addListener(mkObj, "click", function() {
		var tabList = [
			new GInfoWindowTab("NAME", name)
		];
		mkObj.openInfoWindowTabsHtml(tabList);
	});
	return mkObj;
}
/*
function getMarker(lat, lng, name, url)
{
	var mkObj = new GMarker(new GLatLng(lat, lng));
	map.addOverlay(mkObj);
	GEvent.addListener(mkObj, "click", function() {
		var tabList = [
			new GInfoWindowTab("NAME", name)
			,
			new GInfoWindowTab("URL", "<a href=\"" + url + "\" target=\"_blank\">" + url + "</a>")
		];

		mkObj.openInfoWindowTabsHtml(tabList);
	});
	return mkObj;
}
*/
/*
function getMarker(lat, lng, name, url, zip, add, tel)
{
	var mkObj = new GMarker(new GLatLng(lat, lng));
	map.addOverlay(mkObj);
	GEvent.addListener(mkObj, "click", function() {
		var tabList = [
			new GInfoWindowTab("NAME", name)
			,
			new GInfoWindowTab("INFO", "<a href=\"" + url + "\" target=\"_blank\">" + url + "</a>" + "<p>〒" + zip + "</p>" + "<p>" + add + "</p>" + "<p>TEL : " + tel + "</p>")
			//,
			//new GInfoWindowTab("INFO", "<p>〒" + zip + "</p>" + "<p>" + add + "</p>" + "<p>TEL : " + tel + "</p>")
		];

		mkObj.openInfoWindowTabsHtml(tabList);
	});
	return mkObj;
}
*/
//----------------------------
//クリックイベント
//----------------------------
function setClickEvent()
{
	GEvent.addListener(
		map,
		'click',
		function (overlay, point) {
			if (point) {
				document.getElementById('click_lat').value = point.y;
				document.getElementById('click_lng').value = point.x;
				//マーカーを出してみる
				//getMarker(point.y, point.x, "クリック地点", "http://asso392.net");
				//マーカーに二点間距離を表示
				//var distance = getDistance(point.y, point.x);
				getMarker(point.y, point.x, "Lat:" + point.y + "<br />" + "Lng:" + point.x);
				//moveCenter(point.y, point.x);
			}
		}
	);
}
//----------------------------
//ジオコーディング
//----------------------------
function setGeoObj()
{
	// GClientGeocoderを初期化
	geocoder = new GClientGeocoder();
}
function getGeoLatLng(address)
{
	if (geocoder) {
		geocoder.getLatLng(
			address,
			function(point) {
				if (!point) {
					//alert(address + " not found");
				} else {
					//マーカーを表示
					//var distance = getDistance(point.lat(), point.lng());
					getMarker(point.lat(), point.lng(), "入力された住所<br />" + address + "<br />" + "Lat:" + point.lat() + "<br />" + "Lng:" + point.lng());
					moveCenter(point.lat(), point.lng());
					document.getElementById('click_lat').value = point.lat();
					document.getElementById('click_lng').value = point.lng();
				}
			}
		);
	}
}

//------------------------------------------------
//
// Control
//
//------------------------------------------------
//メモリリーク対策
window.onunload = function ()
{
	//Google Maps 使用可否チェック
	if (GBrowserIsCompatible()) {
		GUnload;
	}
}

