/************************************************
 Google Map表示
 2007.07.17: 初版
*************************************************/

// 初期表示座標


var m_globalPos03= new Array("35.618066","139.706102");

// 各マーカー座標


var m_localPos03 = new Array(
"35.618066, 139.706102"
);


// マーカー数（各マーカー座標と同数を設定）


var m_makerNum02 = 1;

// 初期ズーム値（小さいほど広域: 0～17）


var minZoom02 = 17;
var maxZoom02 = 18;

// マップコントロール
var isMapControl02 = true;	// ズームイン/アウト


var isMapType02 = true;		// マップタイプ切替

// サムネイル地図
var isOverview02 = true;
var overWidth02 = 120;
var overHeight02 = 80;

// 情報ウィンドウの表示（フリーセルでは不要）


var isInfo02 = false;

// 情報ウィンドウを初期画面から表示
var isOpenInfo02 = false;


// Google Map使用可能環境


var isGoogle02 = true;

// Google Mapオブジェクト関係


var m_pMap02 = "";
var m_pCenter02 = "";

// 各マーカーポインタ
var m_pMarker02 = new Array(m_makerNum02);

// ふきだし情報
var m_infoName02 = "map_info.html";
var m_pInfo02 = new Array(m_makerNum02);

// 情報ウィンドウ内容
var contents02 = "";


/************************************************
 Google Map初期化処理: initMap()
*************************************************/
function initMap03() {
	// Google Map使用可能環境か確認


	 if (!GBrowserIsCompatible()) {
		document.getElementById('map03').innerHTML='ご利用の環境ではこのマップをご覧いただけません。';
		isGoogle02 = 0;	// Google Map使用不可
		return;
	}

	// 地図の生成 - GMap2
	m_pMap02 = new GMap2(document.getElementById("map03"));
	// ダブルクリックでズーム
	m_pMap02.enableDoubleClickZoom();
	// 上記ズーム時の連続ズーム
	m_pMap02.enableContinuousZoom(); 

	// 座標情報（GPoint）の生成
	lon02 = m_globalPos03[0];
	lat02 =  m_globalPos03[1];
	m_pCenter02 = new GLatLng(lon02, lat02);

	// 座標情報を元に地図を表示 - GMap2
	m_pMap02.setCenter(m_pCenter02, minZoom02);

	// マーカー表示
	for (j = 0; j < m_makerNum02; j++) {
		lon02 = m_localPos03[j].split(',')[0];
		lat02 = m_localPos03[j].split(',')[1];
		pPoint02 = new GLatLng(lon02, lat02);
		m_pMarker02[j] = new GMarker(pPoint02);
		m_pMap02.addOverlay(m_pMarker02[j]);
	}
	// マップコントロール
	if (isMapControl02) {
		m_pMap02.addControl(new GLargeMapControl());
	}
	// マップタイプ切替
	if (isMapType02) {
		m_pMap02.addControl(new GMapTypeControl());
	}
	// サムネイル
	if (isOverview02) {
		m_pMap02.addControl(new GOverviewMapControl(new GSize(overWidth,overHeight)));
	}

	// 情報ウィンドウ関連処理（フリーセルでは不要）


	if (isInfo02) {
		// 情報ウィンドウ内の情報取得イベント登録
		pRequest02 = GXmlHttp.create();
		pRequest02.open("GET", m_infoName02, true);

		// 情報ウィンドウ内の情報取得


		// onreadystatechangeが変更される毎に判別
		pRequest02.onreadystatechange = function () {
			// readyState値は4で受信完了


			if (pRequest02.readyState == 4) {
				res02 = pRequest02.responseText;
				for (i = 0; i < m_makerNum02; i++) {
					//m_pInfo[i] = res.split('\n')[i];
					m_pInfo02[i] = res02.split('</table>')[i];
				}
				// 初期表示時に情報ウィンドウを表示（同時に複数は表示できない）


				if (isOpenInfo02) {
					m_pMarker02[0].openInfoWindowHtml(m_pInfo02[0]);
				}
			}
		};
		// コールバック
		pRequest02.send(null);
		// マーカークリック時のイベント登録
		initEvent02();
	}
}


/************************************************
 Google Mapイベント登録: initEvent()
*************************************************/
function initEvent03() {
	// マーカークリックで情報ウィンドウを表示するイベントを登録
	GEven02t.addListener(m_pMarker02[0], "click", function() {
		//pMap.openInfoWindowHtml(pMap.getCenterLatLng(), contents);
		//pMarker.showMapBlowup();
		m_pMarker02[0].openInfoWindowHtml(m_pInfo02[0]);

	});
}


/************************************************
 Google Map移動処理: moveMap(地図番号)
*************************************************/
function moveMap(num) {
	if (!isGoogle) { return; }
	for (i = 0; i < m_makerNum; i++) {
		if (i == num) {
			lon = m_localPos[i].split(',')[0];
			lat = m_localPos[i].split(',')[1];
			pPoint = new GLatLng(lon, lat);
			m_pMarker[i].openInfoWindowHtml(m_pInfo[i]);
			break;
		}
	}
	m_pMap.panTo(pPoint);
}


/************************************************
 Google Map拡大処理: zoomMap(地図番号)
*************************************************/
function zoomMap(num) {
	if (!isGoogle) { return; }
	for (i = 0; i < m_makerNum; i++) {
		if (i == num) {
			lon = m_localPos[i].split(',')[0];
			lat = m_localPos[i].split(',')[1];
			pPoint = new GLatLng(lon, lat);
			// 情報ウィンドウ関連処理（フリーセルでは不要）


			if (isInfo) {
				m_pMarker[i].openInfoWindowHtml(m_pInfo[i]);
			}
			break;
		}
	}
	m_pMap.setCenter(pPoint, maxZoom);
}


/************************************************
 Google Mapを初期表示へ戻す: centerMap()
*************************************************/
function centerMap() {
	if (!isGoogle) { return; }
	// 情報ウィンドウ関連処理（フリーセルでは不要）


	// 情報ウィンドウを閉じる
	if (isInfo) {
		m_pMap.closeInfoWindow();
	}
	// Mapを初期表示に戻す


	m_pMap.setCenter(m_pCenter, minZoom);
}


/************************************************
 イベント関数を登録（本体）


*************************************************/
var addListener = function(elm, type, func) {
//	if (!elm) { return false; }
	if (elm.addEventListener) {	// W3C準拠ブラウザ（addEventListenerが存在）


		elm.addEventListener(type, func, false);
	}
	else if (elm.attachEvent) {	// Internet Explorer
		elm.attachEvent('on' + type, func);
	}
//	else { return false; }
//	return true;
};


/************************************************
 イベント関数を登録（コール側）


*************************************************/
// windowオブジェクトにloadイベントが発生したら初期化関数を実行


addListener(window, "load", initMap03);