//////////////////////////////////////////////////////////////////////
// Google Maps API
//////////////////////////////////////////////////////////////////////
var AUTO_STOP;						// オートスクロール利用時自動停止判定フラグ
window.onload = function () {
	// 対応チェック
	if (GBrowserIsCompatible()) {
		//////////////////////////////////////////////////////////////////////
		// 初期設定
		//////////////////////////////////////////////////////////////////////
		// 変数定義
		mapObj = '';		// マップオブジェクト（グローバル定義）
		var httpObj;
		var cnt = 0;
		var infoFlag   = 1;	// ウィンドウ処理状況フラグ
		var lngMk;			// 表示中マーカーObj（ウィンドウON/OFF制御用）
		var latMk;			// 表示中マーカーObj（ウィンドウON/OFF制御用）
		var LOADING    = 1;	// 重複ローディング所処理回避用
		var TgtNUM     = '0'; // 詳細モード時の自動情報ウィンドウ表示（全マーカー表示時の選択中番号）
		// URI定義
		var uriXML     = "markers21.xml";
		var uriCGI     = "javascript:void(0);";
		// 配列変数定義
		var AryID      = new Array();
		var AryLNG     = new Array();
		var AryLAT     = new Array();
		var AryICON    = new Array();
		var AryNAME    = new Array();
		var AryMARKER  = new Array();
		var AryURI     = new Array();
		var AryDESC    = new Array();
		var AryI_ORG   = new Array();
		var AryW_ORG   = new Array();
		var AryH_ORG   = new Array();
		var AryI_TNB   = new Array();
		var AryW_TNB   = new Array();
		var AryH_TNB   = new Array();
		var AryTHMODE  = new Array();
		var AryLKMODE  = new Array();
		// 初期値代入
		var ZOOM      = 12;					// ズームレベル
		var ZOOM_URI  = 12;					// ズームレベル（座標指定時のデフォルト値）
		var LNG       = 139.76708739995956;	// 東京
		var LAT       = 35.68109984994216;
		var TYPE      = "G_NORMAL_MAP";		// マップ種類
		var MODE      = 1;					// 表示モード（1=指定マーカーのみ/2=全て）
		var CONTROL   = 1;					// コントロール（1=標準/2=+-ボタン/+-ボタンのみ）
		var ID;
		var IDs = new Array();
		// 特殊動作設定
		var THRESHOLD = 0;					// アイコン表示開始のしきい値（0=OFF/ZOOMレベル）
		var INITVIEW  = 1;					// 初期ロード時のアイコン表示（1=表示/2=非表示）※URL指定利用時は強制表示
		var JPMODE    = 2;					// 直ジャンプモード時の動作（1=直ジャンプ/2=情報ウィンドウ表示）
		var BLANK     = 1;					// 直ジャンプモード時のリンクモード（1=同一ウィンドウ/2=新規ウィンドウ）
		var WIN_TYPE  = 2;					// URL指定がない時のウィンドウ表示方法（1=データリクエスト/2=情報ウィンドウ/3=ウィンド非表示）
		var DEF_WIN   = 1;					// 詳細モード時の情報ウィンドウ自動表示（1=表示/2=非表示）
		// オートスクロール
//		var AUTO_STOP;						// オートスクロール利用時自動停止判定フラグ
		var AUTO_SC  = 2;					// オートスクロールモード（1=ON/2=OFF）
		var SC_TIME  = 5000;				// 切替間隔（ms）
		var INIT_ID  = 0;					// 表示開始位置（データファイルの上から何番目）
		var AUTO_RND = 2;					// ランダム表示（1=する/2=しない）
		var AUTO_WIN = 2;					// 情報ウィンドウ種（0=表示なし/1=リクエスト実行/2=ベーシック版）
		var AUTO_MKR = 1;					// マーカーのクリックで停止するか（1=する/2=しない）
		var AUTO_CLK = 1;					// 画面上のクリックで停止するか（1=する/2=しない）※ドラッグ移動は対象外/ウィンドウクリックでも停止する
		//////////////////////////////////////////////////////////////////////
		// JSのSRC引数から座標等を取得 ⇒ 各種差替え
		//////////////////////////////////////////////////////////////////////
		var MAP_MODE;
		var NO_LINK;
		$A(document.getElementsByTagName("script")).findAll(function(s) {
			return (s.src && s.src.match(/map\d+\.js(\#.*)?$/))
		}).each(function(s) {
			s.src.match(/(.*\/)?map\d+\.js\#MODE=(.*)&LNG=(.*)&LAT=(.*)&TYPE=(.*)&ZOOM=(.*)&VMODE=(.*)/, "i");
			MAP_MODE = RegExp.$2;
			LNG = RegExp.$3 > 0 ? RegExp.$3 : LNG;
			LAT = RegExp.$4 > 0 ? RegExp.$4 : LAT;
			TYPE = RegExp.$5 ? RegExp.$5 : TYPE;
			ZOOM = RegExp.$6 > 0 ? RegExp.$6 : ZOOM;
			ZOOM_URI = RegExp.$6 > 0 ? RegExp.$6 : ZOOM_URI;
			MODE = RegExp.$7 ? RegExp.$7 : MODE;
			ZOOM = parseInt(ZOOM);
			ZOOM_URI = parseInt(ZOOM_URI);
			MODE = parseInt(MODE);
		});
		// 一覧/詳細画面用に調整
		if (MAP_MODE == 'DETAIL') {
			AUTO_SC = 2; //オートスクロール強制OFF
			NO_LINK = 1; //詳細を見るボタンOFF
		} else if (MAP_MODE == 'LIST') {
			MODE = 2; //全マーカー表示固定
		}
		//////////////////////////////////////////////////////////////////////
		// 関数定義
		//////////////////////////////////////////////////////////////////////
		// アイコン表示準備
		function addMarker (mapObj) {
			var area = mapObj.getBounds();
			var ArySpMARKER = new Array();
			// しきい値範囲外であればマーカー削除 ⇒ 戻る
			if (THRESHOLD && THRESHOLD > mapObj.getZoom()) {
				for (i=0; i<=AryMARKER.length-1; i++) {
					mapObj.removeOverlay(AryMARKER[i]);		// 画面外のマーカー削除
				}
				AryMARKER = []; // 変数初期化
				return;
			}
			// 表示中アイコン削除（画面範囲外のもののみ）
			for (i=0; i<=AryMARKER.length-1; i++) {
				if (area.contains(AryMARKER[i].getPoint())) {
					ArySpMARKER.push(AryMARKER[i]);			// 表示中のマーカーObj確保
				} else {
					mapObj.removeOverlay(AryMARKER[i]);		// 画面外のマーカー削除
				}
			}
			AryMARKER = []; // 変数初期化
			// 新規表示
			for (i=0; i<=AryLNG.length-1; i++) {
				var p = new GLatLng(AryLAT[i], AryLNG[i]);
				if (area.contains(p)) {
					var flg = '';
					for (j=0; j<=ArySpMARKER.length-1; j++) {
						np = ArySpMARKER[j].getPoint();
						if (p.equals(np)) {
							flg = 1;
							break;
						}
					}
					// 表示が無い場合は追加
					if (flg != 1) selectMarker(mapObj, p, AryID[i], AryICON[i], AryNAME[i], AryURI[i], AryDESC[i], AryI_ORG[i], AryW_ORG[i], AryH_ORG[i], AryI_TNB[i], AryW_TNB[i], AryH_TNB[i], AryTHMODE[i], AryLKMODE[i]);
				}
			}
			// 新規表示分に既存表示分を連結
			AryMARKER = AryMARKER.concat(ArySpMARKER);
			ArySpMARKER = []; // 変数初期化
		}
		// アイコン画面内表示選択処理
		function selectMarker (mapObj, p, id, icon, name, uri, desc, i_org, w_org, h_org, i_tnb, w_tnb, h_tnb, thmode, lkmode) {
			var marker;
			//////////////////////////////////////////////////////////////////////
			// カスタムアイコン定義（marker指定がある場合のみ）
			//////////////////////////////////////////////////////////////////////
			if (icon) {
				iconObj = new GIcon();
				iconObj.image = "/wscms/theme/def_1_orange/img/map/" + icon + ".png";
				if (icon == 1) {
					iconObj.shadow = "/wscms/theme/def_1_orange/img/map/shadow_l.png";
					iconObj.iconSize = new GSize(46, 69);
					iconObj.shadowSize = new GSize(60, 69);
					iconObj.iconAnchor = new GPoint(22, 69);
					iconObj.infoWindowAnchor = new GPoint(0, 0);
					// この２つを定義しないと、情報画面を開いた際に
					// ウィンドウの影になっている部分がクリックに反応しない。
					// （正確にはボタンではなく地図をクリックしてしまう⇒ウィンドウが消えてしまう）
					// よってカスタムアイコン時は適切なクリック範囲を指定する必要がある。
					iconObj.transparent = "/wscms/theme/def_1_orange/img/map/mask_l.png"; // IE要（同じ形の画像、透明度1%の以上画像）
					iconObj.imageMap = [5,26,5,16,10,9,18,4,29,4,37,9,42,17,42,27,30,48,25,65,22,65,16,48,5,26]; // IE以外
				} else {
					iconObj.shadow = "/wscms/theme/def_1_orange/img/map/shadow_s.png";
					iconObj.iconSize = new GSize(23, 40);
					iconObj.shadowSize = new GSize(37, 40);
					iconObj.iconAnchor = new GPoint(11, 40);
					iconObj.infoWindowAnchor = new GPoint(0, 0);
					// この２つを定義しないと、情報画面を開いた際に
					// ウィンドウの影になっている部分がクリックに反応しない。
					// （正確にはボタンではなく地図をクリックしてしまう⇒ウィンドウが消えてしまう）
					// よってカスタムアイコン時は適切なクリック範囲を指定する必要がある。
					iconObj.transparent = "/wscms/theme/def_1_orange/img/map/mask_s.png"; // IE以外（同じ形の画像、透明度1%の以上画像）
					iconObj.imageMap = [0,8,7,0,15,0,23,9,23,14,14,31,14,36,9,36,9,32,0,15,0,8]; // IE以外
				}
				marker = new GMarker(p, { icon:iconObj, title:name });
			// 標準アイコン利用
			} else {
				marker = new GMarker(p, { title:name });
			}
			//////////////////////////////////////////////////////////////////////
			mapObj.addOverlay(marker);
			AryMARKER.push(marker); // 削除用にObj確保
			GEvent.addListener(marker, 'click', function () {
				// オートスクロール停止
				if (AUTO_MKR == 1) AUTO_STOP = 1;
				// URL指定なし：情報ウィンドウ表示（データリクエスト）
				if (!uri && WIN_TYPE == 1) {
					// 表示中が無ければ
					var mkPoint = marker.getPoint();
					if (infoFlag == 1 || (infoFlag != 2 && mkPoint.lng() != lngMk && mkPoint.lng() != latMk)) {
						mapObj.closeInfoWindow();
						viewWindow(mapObj, p, id, marker);
					// 表示されていれば（ローディングは除く）
					} else if (infoFlag == 3) {
						infoFlag = 1;
						mapObj.closeInfoWindow();
					}
				// URL指定なし：情報ウィンドウ表示（ベーシック）
				} else if (!uri && WIN_TYPE == 2) {
					// 表示中が無ければ
					var mkPoint = marker.getPoint();
					if (infoFlag == 1 || (infoFlag != 2 && mkPoint.lng() != lngMk && mkPoint.lng() != latMk)) {
						mapObj.closeInfoWindow();
						viewBasicWindow(mapObj, p, id, marker, name, uri, desc, i_org, w_org, h_org, i_tnb, w_tnb, h_tnb, thmode, lkmode);
					// 表示されていれば（ローディングは除く）
					} else if (infoFlag == 3) {
						infoFlag = 1;
						mapObj.closeInfoWindow();
					}
				// URL指定あり：情報ウィンドウなし
				} else if (uri && JPMODE == 1) {
					if (BLANK == 1) window.location.href = uri;
					if (BLANK == 2) window.open(uri);
				// URL指定あり：情報ウィンドウあり
				} else if (uri && JPMODE == 2) {
					// 表示中が無ければ
					var mkPoint = marker.getPoint();
					if (infoFlag == 1 || (infoFlag != 2 && mkPoint.lng() != lngMk && mkPoint.lng() != latMk)) {
						mapObj.closeInfoWindow();
						viewBasicWindow(mapObj, p, id, marker, name, uri, desc, i_org, w_org, h_org, i_tnb, w_tnb, h_tnb, thmode, lkmode);
					// 表示されていれば（ローディングは除く）
					} else if (infoFlag == 3) {
						infoFlag = 1;
						mapObj.closeInfoWindow();
					}
				}
			});
			// ダブルクリックで中心点に移動
			GEvent.addListener(marker, 'dblclick', function () {
				var mk2Point = marker.getPoint();
				mapObj.panTo(new GLatLng(mk2Point.lat(), mk2Point.lng()));
			});
			//document.getElementById("check").innerHTML = ++cnt;
		}
		// 情報ウィンドウ表示関数（データリクエスト）
		function viewWindow (mapObj, p, id, mk) {
			// HTTPリクエスト
			httpObj.open("GET", uriCGI+id, true);
			httpObj.onreadystatechange = function() {
				// ローディング中フラグ（クリック禁止）
				infoFlag = 2;
				// ローディング表示（重複ローディング回避フラグセット）
				//if (LOADING == 1) {
				mapObj.openInfoWindowHtml(p, '<div style="width: 238px; padding: 10px 0px;"><div align="center"><img src="/wscms/theme/def_1_orange/img/map/loading.gif" width="60" height="39" border="0" alt="LOADING" title="LOADING" /></div></div>');
				LOADING = 2;
				//}
				// 情報表示
				if (httpObj.readyState == 4 && httpObj.status == 200) {
					// オープン中フラグ
					infoFlag = 3;
					// 重複ローディング回避フラグリセット
					LOADING = 1;
					// 現在のマーカーObj確保
					var mkPoint = mk.getPoint();
					lngMk = mkPoint.lng();
					latMk = mkPoint.lat();
					// 情報ウィンドウ表示
					var html = httpObj.responseText;
					mapObj.openInfoWindowHtml(p, html);
					// ローディング画像削除
					//mapObj.removeOverlay(mm);
				}
			}
			httpObj.send('');
		}
		// 情報ウィンドウ表示関数（ベーシック）
		function viewBasicWindow (mapObj, p, id, mk, name, uri, desc, i_org, w_org, h_org, i_tnb, w_tnb, h_tnb, thmode, lkmode) {
			// オープン中フラグ
			infoFlag = 3;
			// 重複ローディング回避フラグリセット
			LOADING = 1;
			// 現在のマーカーObj確保
			var mkPoint = mk.getPoint();
			lngMk = mkPoint.lng();
			latMk = mkPoint.lat();
			// 情報ウィンドウ表示
			var tab1 = '';
			var tab2 = '';
			var tabs = '';
			var snap = '';
			var link = '';
			var tgtmode = '';
			//var href1 = '';
			//var href2 = '';
			if (BLANK == 2) {
				tgtmode = ' target="_blank"';
			} else {
				tgtmode = ' target="_parent"';
			}
			if (uri) {
				if (lkmode == 'blank') tgtmode = ' target="_blank"';
				var btname = '';
				if (!lkmode) {
					btname = !NO_LINK ? '詳細をみる' : '';
				} else if (lkmode == 'file') {
					btname = 'ダウンロード';
				} else {
					btname = 'リンク先へ移動';
				}
				if (btname) link = '<div align="right"><a href="' + uri + '"' + tgtmode + '>' + btname + '</a></div></div></div>';
			}
			tab1 = new GInfoWindowTab("基本情報", '<div style="width: 250px; padding: 10px 0px;"><div align="left"><span class="fu1b" style="color: #478830;">' + name + '</span><br />' + desc + '<br />' + link);
			if (thmode && i_tnb) {
				snap = '<img src="' + i_tnb + '" width="' + w_tnb + '" height="' + h_tnb + '" border="0" alt="" title="" />';
				//href1 = '<a href="' + i_org + '" rel="lightbox" title="' + name + '">';
				//href2 = '</a>';
			} else if (i_org) {
				snap = '<img src="' + i_org + '" width="' + w_org + '" height="' + h_org + '" border="0" alt="' + name + '" title="" />';
			}
			if (snap) {
				//tab2 = new GInfoWindowTab("イメージ", href1 + '<div align="center">' + snap + '</div>' + href2);
				tab2 = new GInfoWindowTab("イメージ", '<div align="center">' + snap + '</div>');
				tabs = [tab1, tab2];
			} else {
				tabs = [tab1];
			}
			mapObj.openInfoWindowTabsHtml(p, tabs);
		}
		//////////////////////////////////////////////////////////////////////
		// マップ表示関数
		//////////////////////////////////////////////////////////////////////
		function viewMap () {
			// マップオブジェクト生成
			mapObj = new GMap2(document.getElementById("map"));
			// 詳細モードなら情報ウィンドウ自動表示
			if (MAP_MODE == 'DETAIL' && DEF_WIN == '1') {
				var info_p = new GLatLng(LAT, LNG);
				var info_mk = new GMarker(info_p, {});
				viewBasicWindow(mapObj, info_p, '', info_mk, AryNAME[TgtNUM], AryURI[TgtNUM], AryDESC[TgtNUM], AryI_ORG[TgtNUM], AryW_ORG[TgtNUM], AryH_ORG[TgtNUM], AryI_TNB[TgtNUM], AryW_TNB[TgtNUM], AryH_TNB[TgtNUM], AryTHMODE[TgtNUM], AryLKMODE[TgtNUM]);
			}
			// オートスクロールOFF or URLによるID指定モード or 検索モード
			if (AUTO_SC != 1 || url.match(/id=(.*)/, "i") || url.match(/sk=(.*)/, "i")) {
				// 中心座標＆解像度
				mapObj.setCenter(new GLatLng(LAT, LNG), ZOOM);
				// マップの種類
				mapObj.setMapType( eval(TYPE) );
				// コントロールボタン
				if (CONTROL == 1) mapObj.addControl(new GLargeMapControl());
				if (CONTROL == 2) mapObj.addControl(new GSmallMapControl());
				if (CONTROL == 3) mapObj.addControl(new GSmallZoomControl());
				// 地図・衛星写真切り替えボタン
				mapObj.addControl(new GMapTypeControl());
				// アイコン表示（初期表示）
				if (INITVIEW == 1) {
					addMarker(mapObj);
				// 非表示の場合でもURLによる指定表示時は表示
				} else if (INITVIEW == 2 && url.match(/id=(.*)/, "i")) {
					addMarker(mapObj);
				}
			//////////////////////////////////////////////////////////////////////
			// オートスクロール関連
			//////////////////////////////////////////////////////////////////////
			} else if (AUTO_SC == 1) {
				var nowID;
				var cntRUN;
				// メイン
				function viewAutoScroll () {
					// クリック動作があれば停止
					if (AUTO_STOP) { 
						clearInterval(TimerID);
					// 順次表示処理
					} else {
						// ランダム表示
						if (AUTO_RND == 1) {
							for (i=0; i<=100; i++) {
								INIT_ID = Math.floor( Math.random() * (AryID.length) );
								if (nowID != INIT_ID) {
									nowID = INIT_ID;
									break;
								}
							}
						}
						var psc = new GLatLng(AryLAT[INIT_ID], AryLNG[INIT_ID]);
						var mksc = new GMarker(psc, {});
						// 初回ロード時のみ最初の座標でOBJ生成
						if (!cntRUN) {
							// 中心座標＆解像度
							mapObj.setCenter(psc, ZOOM);
							// マップの種類
							mapObj.setMapType( eval(TYPE) );
							// コントロールボタン
							if (CONTROL == 1) mapObj.addControl(new GLargeMapControl());
							if (CONTROL == 2) mapObj.addControl(new GSmallMapControl());
							if (CONTROL == 3) mapObj.addControl(new GSmallZoomControl());
							// 地図・衛星写真切り替えボタン
							mapObj.addControl(new GMapTypeControl());
							// マーカー表示
							addMarker(mapObj);
							cntRUN = 1;
						}
						// 移動開始
						mapObj.panTo(psc);
						// 情報ウィンドウ
						if (AUTO_WIN == 1) {
							viewWindow (mapObj, psc, AryID[INIT_ID], mksc);
						} else if (AUTO_WIN == 2) {
							viewBasicWindow (mapObj, psc, AryID[INIT_ID], mksc, AryNAME[INIT_ID], AryURI[INIT_ID], AryDESC[INIT_ID], AryI_ORG[INIT_ID], AryW_ORG[INIT_ID], AryH_ORG[INIT_ID], AryI_TNB[INIT_ID], AryW_TNB[INIT_ID], AryH_TNB[INIT_ID], AryTHMODE[INIT_ID], AryLKMODE[INIT_ID])
						}
						// カウント調整
						if (AUTO_RND != 1) INIT_ID = INIT_ID == AryID.length - 1 ? 0 : INIT_ID + 1;
					}
					// クリックでオートスクロール停止
					if (AUTO_CLK == 1) {
						GEvent.addListener(mapObj, 'click', function () {
							AUTO_STOP = 1;
						});
					}
				}
				// 初期表示
				viewAutoScroll();
				// 定期表示
				var TimerID = setInterval( function () { viewAutoScroll(); }, SC_TIME );
			}
			//////////////////////////////////////////////////////////////////////
			// アイコン表示（移動時）
			GEvent.addListener(mapObj, 'moveend', function () {
				//var nowZoom = mapObj.getZoom();
				//if (nowZoom >= 14) {
					//document.getElementById("check").innerHTML = cnt = 0;
					addMarker(mapObj);
				//}
			});
		}
		//////////////////////////////////////////////////////////////////////
		//////////////////////////////////////////////////////////////////////
		// メイン処理
		//////////////////////////////////////////////////////////////////////
		// URLからの経度・緯度取得（指定時のみ）
		var url = location.href;
		if (url.match(/id=(.*)&m=(.*)&t=(.*)&z=(.*)/, "i")) {
			ID    = RegExp.$1;
			IDs   = ID.split(",");
			MODE  = RegExp.$2;
			//TYPE  = RegExp.$3 == 2 ? 'G_SATELLITE_MAP' : 'G_NORMAL_MAP';
			TYPE  = RegExp.$3 == 2 ? 'G_SATELLITE_MAP' : RegExp.$3 == 3 ? 'G_HYBRID_MAP' : 'G_NORMAL_MAP';
			ZOOM  = RegExp.$4 ? parseInt(RegExp.$4) : ZOOM_URI;
		}
		// HTTPオブジェクト生成
		try {
			if (window.XMLHttpRequest) {
				httpObj = new XMLHttpRequest();
			} else if (window.ActiveXObject) {
				httpObj = new ActiveXObject("Microsoft.XMLHTTP");
			} else {
				httpObj = false;
			}
		} catch (e) {
			httpObj = false;
		}
		// エラー処理
		if (!httpObj) {
			viewError();
			return false;
		}
		// HTTPリクエスト
		httpObj.open("GET", uriXML, true);
		httpObj.onreadystatechange = function() {
			if (httpObj.readyState == 4 && httpObj.status == 200) {
				var xmlDoc = httpObj.responseXML;
				var item = xmlDoc.documentElement.getElementsByTagName("item");
				for (i=0; i<=item.length - 1; i++) {
					var HITflg = 0;
					// MODE==1なら指定座標とのヒットチェック
					if (MODE == 1) {
						if (item[i].getAttribute("lng") == LNG && item[i].getAttribute("lat") == LAT) HITflg++;
						//for (j=0; j<=IDs.length - 1; j++) {
							//if (IDs[j] == item[i].getAttribute("id")) HITflg++;
						//}
					}
					// 詳細モード時の自動情報ウィンドウ表示（全マーカー表示時の選択中番号）
					if (MODE == 2 && item[i].getAttribute("lng") == LNG && item[i].getAttribute("lat") == LAT) TgtNUM = i;
					// MODE==2またはヒット項目があればセット
					if (MODE == 2 || HITflg == 1) {
						AryID.push(item[i].getAttribute("id"));
						AryLNG.push(item[i].getAttribute("lng"));
						AryLAT.push(item[i].getAttribute("lat"));
						AryICON.push(item[i].getAttribute("marker"));
						AryNAME.push(item[i].getAttribute("name"));
						AryURI.push(item[i].getAttribute("url"));
						AryDESC.push(item[i].getAttribute("desc"));
						AryI_ORG.push(item[i].getAttribute("i_org"));
						AryW_ORG.push(item[i].getAttribute("w_org"));
						AryH_ORG.push(item[i].getAttribute("h_org"));
						AryI_TNB.push(item[i].getAttribute("i_tnb"));
						AryW_TNB.push(item[i].getAttribute("w_tnb"));
						AryH_TNB.push(item[i].getAttribute("h_tnb"));
						AryTHMODE.push(item[i].getAttribute("thmode"));
						AryLKMODE.push(item[i].getAttribute("lkmode"));
					}
					// 中心座標の確保（複数登録時は最初の座標のみ対象）
					if (IDs[0] && IDs[0] == item[i].getAttribute("id")) {
						LNG = item[i].getAttribute("lng");
						LAT = item[i].getAttribute("lat");
					}
				}
				// マップの表示
				viewMap();
				// URLからの件枠ワード取得⇒検索
				var url = location.href;
				if (url.match(/sk=(.*)/, "i")) {
					sWord   = RegExp.$1;
					geoSearch(sWord);
					//return false;
				}
			}
		}
		httpObj.send('');
	// ブラウザ対応チェック（エラー）
	} else {
		viewError();
		return false;
	}
	//////////////////////////////////////////////////////////////////////
	// エラー表示
	//////////////////////////////////////////////////////////////////////
	function viewError () {
		document.getElementById("map").innerHTML = 
			'<div align="center"><span style="color: red;"><br />GoogleMapsAPIを利用できません</span></div>';
		return false;
	}
	//////////////////////////////////////////////////////////////////////
}
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Google Geocoding API（住所検索）
//////////////////////////////////////////////////////////////////////
// 変数定義
rmObj = '';
// 初期値代入
var ZOOM_SEARCH = 17;	// ズームレベル
var SICON       = 0;	// 検索結果の「標準」マーカー表示（1=表示/2=非表示）
// Geoコーディングオブジェクト生成
gGeo = new GClientGeocoder();
// 検索メイン処理
function geoSearch(sWord_21) {
	// ローディング表示
	parent.document.getElementById("statusGeo_21").innerHTML = '<span class="status" style="margin: 2px 0px 0px 0px;text-align: center;"><img src="/wscms/theme/def_1_orange/img/cmn/loading_mini.gif" width="13" height="13" border="0" alt="検索中" title="検索中" /></span>';
	// URL検索ワードが有ればURLデコード
	if (sWord_21) {
		sWord_21 = unescape(sWord_21);
		parent.document.getElementById("sWord_21").value = sWord_21;
	}
	// URL検索ワードが無ければフォームから取得
	if (!sWord_21) var sWord_21 = parent.document.getElementById("sWord_21").value;
	// 検索実行
	gGeo.getLatLng(sWord_21, onGeoSearch);
}
// 検索完了時に呼ばれるコールバック関数
function onGeoSearch(point) {
	if (point) {
		// ローディングリセット
		parent.document.getElementById("statusGeo_21").innerHTML = '';
		// 中心に移動
		mapObj.setCenter(point, ZOOM_SEARCH);
		// マーカー表示
		if (SICON == 1) {
			mapObj.removeOverlay(rmObj);
			rmObj = new GMarker(point);
			mapObj.addOverlay(rmObj);
		}
		// オートスクロール停止
		AUTO_STOP = 1;
	} else {
		parent.document.getElementById("statusGeo_21").innerHTML = 
			'<span class="text-vermilion">[&nbsp;見つかりません&nbsp;]</span>';
		return false;
	}
}
//////////////////////////////////////////////////////////////////////

