var map;										// 地図インスタンス
var points = new Array();						// 座標データのリスト
var markers = new Array();						// マーカーのリスト

// 地図を表示する関数
function showMap(centerX, centerY, zoom)
{
	// ブラウザの対応を確認して表示
	if ( GBrowserIsCompatible() )
	{
		map = new GMap(document.getElementById("googlemap"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GScaleControl());
		map.centerAndZoom(new GPoint(centerX, centerY), zoom);
		for ( i=0; i<points.length; i++ )
		{
			var point = new GPoint(points[i][0], points[i][1]);
			markers[i] = createMarker(point, i);
			map.addOverlay(markers[i]);

			// ズームの調整
			bound = map.getBoundsLatLng();
			if ( (points[i][0] > bound.maxX) ||(bound.minX > points[i][0]) )
			{
				zoomOut();
			}
			bound = map.getBoundsLatLng();
			if ( (points[i][1] > bound.maxY) || (bound.minY > points[i][1]) )
			{
				zoomOut();
			}
		}

		if ( points.length == 1 )				// 座標が1つのときだけ吹き出しを出す
		{
			openInfoWindow(0);
		}
	}
//	else
//	{
//		document.getElementById("googlemap").innerHTML = '<p style="font-size:14px;">Google マップの仕様により、お使いのブラウザでは地図を表示することができません。<br />'
//			+'なお、現在対応しているブラウザは以下の通りです。</p>'
//			+'<ul class="listDisk">'
//			+'<li>IE 6.0 以降　(Windows)</li>'
//			+'<li>Firefox 0.8 以降　(Windows, Mac, Linux)</li>'
//			+'<li>Safari 1.2.4 以降　(Mac)</li>'
//			+'<li>Netscape 7.1 以降　(Windows, Mac, Linux)</li>'
//			+'<li>Mozilla 1.4 以降　(Windows, Mac, Linux)</li>'
//			+'<li>Opera 8.02 以降　(Windows, Mac, Linux)</li>'
//			+'</ul>';
//	}
}

// マーカーを追加する
function createMarker(point, index)
{
	var marker = new GMarker(point);
	// クリックイベント
	GEvent.addListener(marker, 'click', function() { openInfoWindow(index); });

	return marker;
}

function openInfoWindow(index)
{
	// 吹き出しの中身。XHTML。
	var html = '<div id="mapName">' + points[index][2] + '</div><div id="mapAddress">' + points[index][3] + '</div><div id="mapTelNumber">TEL：' + points[index][4] + '</div>'

	markers[index].openInfoWindowHtml('<div id="mapBalloon">' + html + '</div>');
}

// ズームイン
function zoomIn()
{
	var zoomLevel = map.getZoomLevel();
	zoomLevel -= 1;
	if ( zoomLevel < 0 )
	{
		zoomLevel = 0;
	}
	map.zoomTo(zoomLevel);
}

// ズームアウト
function zoomOut()
{
	var zoomLevel = map.getZoomLevel();
	zoomLevel += 1;
	if ( zoomLevel > 17 )
	{
		zoomLevel = 17;
	}
	map.zoomTo(zoomLevel);
}
