var		l_clsMap;
var		l_aryPos;
var		l_lngPos;

l_aryPos = new Array
(
	new Array(35.175141, 136.934066, 'スタート地点：<BR /><B>有限会社パテンティックソフトウェア</B>'),
	new Array(35.174615, 136.933712, ''),
	new Array(35.173852, 136.933068, ''),
	new Array(35.173115, 136.931942, ''),
	new Array(35.171344, 136.937606, ''),
	new Array(35.169099, 136.936963, ''),
	new Array(35.165678, 136.936415, ''),
	new Array(35.162714, 136.935933, ''),
	new Array(35.159425, 136.935310, ''),
	new Array(35.156530, 136.934817, ''),
	new Array(35.153583, 136.934323, ''),
	new Array(35.149609, 136.933669, ''),
	new Array(35.146029, 136.933529, ''),
	new Array(35.140897, 136.933261, ''),
	new Array(35.140555, 136.927446, ''),
	new Array(35.140371, 136.923519, '目的地：<BR /><B>ローソン 滝子町店</B>'),
	new Array(35.140081, 136.918305, ''),
	new Array(35.144345, 136.917844, ''),
	new Array(35.147503, 136.917511, ''),
	new Array(35.150346, 136.917275, ''),
	new Array(35.153135, 136.916910, ''),
	new Array(35.156056, 136.916224, ''),
	new Array(35.158082, 136.918005, ''),
	new Array(35.160819, 136.920279, ''),
	new Array(35.163345, 136.922554, ''),
	new Array(35.165845, 136.925440, ''),
	new Array(35.168187, 136.927682, ''),
	new Array(35.169371, 136.927768, ''),
	new Array(35.171712, 136.929656, ''),
	new Array(35.173265, 136.930901, ''),
	new Array(35.174449, 136.931888, ''),
	new Array(35.176264, 136.932285, ''),
	new Array(35.176053, 136.933497, ''),
	new Array(35.175711, 136.934259, ''),
	new Array(35.175141, 136.934066, 'ゴール地点：<BR /><B>有限会社パテンティックソフトウェア</B>')
);

//
//	メイン・ルーチン
//
function	DoGMap()
{
	var	bolRet	= false;

	//	Googleマップを初期化する。
	l_clsMap = new GMap(document.getElementById("map"));
	l_clsMap.addControl(new GSmallMapControl());

	//	ポインタを初期化する。
	l_lngPos = 0;

	//	現在ポインタを表示する。
	MoveTo(0);

	//	正常終了。
	bolRet = true;

	//	処理結果を返す。
	return bolRet;
}

//
//	「<<戻る」
//
function	DoPrev()
{
	if (l_lngPos <= 0)
	{
		alert('スタート地点です。');

		return false;
	}
	else
	{
		//	前のポインタに移動する。
		return MoveTo(-1);
	}
}

//
//	「進む>>」
//
function	DoNext()
{
	if ((l_aryPos.length - 1) <= l_lngPos)
	{
		alert('ゴール地点です。');

		return false;
	}
	else
	{
		//	次のポインタに移動する。
		return MoveTo(+1);
	}
}

//
//	ポインタを移動する。
//
function MoveTo(lngMoveTo)
{
	var lngPos;
	var	bolRet	= false;

	//	ポインタを移動する。
	l_lngPos = l_lngPos + lngMoveTo;

	//	表示位置を移動する。
	if (l_lngPos == 0)
    	l_clsMap.centerAndZoom(new GPoint(l_aryPos[l_lngPos][1], l_aryPos[l_lngPos][0]), 0);
	else
    	l_clsMap.recenterOrPanToLatLng(new GPoint(l_aryPos[l_lngPos][1], l_aryPos[l_lngPos][0]));

	//	マーカーを表示する。
	AddMarker(l_clsMap, l_aryPos[l_lngPos][1], l_aryPos[l_lngPos][0], CalcDistance(l_lngPos) + 'Km<BR />' + l_aryPos[l_lngPos][2]);

	//	正常終了。
	bolRet = true;

	//	処理結果を返す。
	return bolRet;
}

//
//	マーカーを追加する。
//
function	AddMarker(clsMap, lat, lng, html)
{
	var point	= new GPoint(lat, lng);
	var marker	= new GMarker(point);
	var	bolRet	= false;

	GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html); });
	clsMap.addOverlay(marker);

	if (html != '')
		marker.openInfoWindowHtml(html);

	//	正常終了。
	bolRet = true;

	//	処理結果を返す。
	return bolRet;
}

//
//	移動距離を計算する。
//
function	CalcDistance(lngPos)
{
	var		dblX;
	var		dblY;
	var		dblTotal;
	var		lnhIdx;

	if (lngPos == 0)
	{
		//	移動していない場合は0Kmを返す。
		return 0;
	}
	else
	{
		//	移動距離を計算する。

		dblTotal = 0.0;
		for (lngIdx = 1; lngIdx <= lngPos; lngIdx++)
		{
			dblX = Math.abs(l_aryPos[lngIdx][0] - l_aryPos[lngIdx - 1][0]);
			dblY = Math.abs(l_aryPos[lngIdx][1] - l_aryPos[lngIdx - 1][1]);
			dblTotal += Math.sqrt((dblX * dblX) + (dblY * dblY));
		}

		dblTotal *= 3600;									//	秒に変換
		dblTotal *= 30.0;									//	1秒=30mとして換算。
		dblTotal /= 1000.0;									//	Kmに換算。
		dblTotal = Math.round(dblTotal * 100.0) / 100.0;	//	小数点以下２桁で四捨五入

		//	移動距離を返す。
		return dblTotal;
	}
}

