var map;

function preloadImages()
{
	if(document.images){
		if(!document.preloadedimages)
			document.preloadedimages = new Array();
		var i, j = document.preloadedimages.length, file = preloadImages.arguments;
		for(i=0; i<file.length; i++){
			document.preloadedimages[j] = new Image;
			document.preloadedimages[j++].src = file[i];
		}
	}
}

function roundNum(num)
{
	return Math.round(num * 10000) / 10000;
}

function updateStatus()
{
/*	bounds = map.getBounds();
	point = map.getCenter();
	zoom = map.getZoom();
	document.getElementById('status').innerHTML =
		'<h2>状態</h2>'
		+ '<dl>'
		+ '<dt>表示範囲</dt>'
		+ '<dd>' + roundNum(bounds.getNorthEast().lat()) + ', ' + roundNum(bounds.getNorthEast().lng()) + ' -<br />' + roundNum(bounds.getSouthWest().lat()) + ', ' + roundNum(bounds.getSouthWest().lng()) + '</dd>'
		+ '<dt>中心座標</dt>'
		+ '<dd>' + roundNum(point.lat()) + ', ' + roundNum(point.lng()) + '</dd>'
		+ '<dt>ズームレベル</dt>'
		+ '<dd>' + zoom + '</dd>'
		+ '</dl>';*/
}

function onMapClick()
{
	map.getInfoWindow().hide();
}

function addMarker(map, lat, lng, icon)
{
	var point = new GLatLng(lat, lng);
	var marker = new GMarker(point, icon);

/*	// Show this markers index in the info window when it is clicked
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);
	});
*/	map.addOverlay(marker);
}

function showMapBlowup(map, lat, lng)
{
	map.showMapBlowup(new GLatLng(lat, lng));
}

function setCenter(map, lat, lng, zoomLevel)
{
	map.setCenter(new GLatLng(lat, lng), zoomLevel);
}

function resetBounds(map)
{
	map.centerAndZoom(new GPoint(139.9328, 37.3800), 9);
}


// イベントリスナー登録
function addListener(elem, eventType, func, cap) {
    if(elem.addEventListener) {
        elem.addEventListener(eventType, func, cap);
    } else if(elem.attachEvent) {
        elem.attachEvent('on' + eventType, func);
    } else {
        alert('ご利用のブラウザーはサポートされていません。');
        return false;
    }
}

function onLoad()
{
	map = new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(37.498321, 139.944778), 13, G_NORMAL_MAP);
	map.enableDoubleClickZoom();
	map.enableContinuousZoom();

	map.addControl(new GLargeMapControl());
//	map.addControl(new GMapTypeControl());
//	map.addControl(new GOverviewMapControl());

	GEvent.addListener(map, 'moveend', updateStatus);
	GEvent.addListener(map, 'click', onMapClick);

	var markerList = [
		[37.5232, 139.9177, 'ic.png', 165, 46, 2, 22],
		[37.5179, 139.9187, 'r49.png', 98, 98, 22, 2],
		[37.518321, 139.940811, 'gonohara.png', 199, 46, 2, 23],
//		[37.488948, 139.940972, 'tsurugajo.png', 133, 98, 131, 2],
//		[37.488208, 139.949899, 'yatsurogamae.png', 145, 98, 2, 96],
		[37.482572, 139.956819, 'onseniriguchi.png', 114, 74, 2, 70],
		[37.480256, 139.960064, 'takinoyu.png', 128, 79, 125, 2]
	];

	for(i=0; i<markerList.length ;i++){
		var icon = new GIcon();
		icon.image = 'icon/' + markerList[i][2];
		icon.iconSize = new GSize(markerList[i][3], markerList[i][4]);
		icon.iconAnchor = new GPoint(markerList[i][5], markerList[i][6]);
		icon.infoWindowAnchor = new GPoint(markerList[i][5], markerList[i][6]);

		addMarker(map, markerList[i][0], markerList[i][1], icon);
	}

	var pointList = new Array(
		new Array(37.5232, 139.9177),	//インター出口
		new Array(37.5230, 139.9177),	//インター出口2
		new Array(37.5179, 139.9187),	//観音前交差点
		new Array(37.517913, 139.926167),	//荒九田交差点
		new Array(37.517896, 139.933162),	//北柳原交差点
		new Array(37.517708, 139.937904),	//電激倉庫前
		new Array(37.518321, 139.940811),	//郷之原交差点
		new Array(37.514824, 139.942099),	//ヨークベニマル一簣店前
		new Array(37.512611, 139.942206),	//不動川橋交差点
		new Array(37.507700, 139.941498),	//会津若松警察署前
		new Array(37.504960, 139.941460),	//マクドナルド前
		new Array(37.500908, 139.942968),	//モスバーガー前
		new Array(37.498755, 139.943258),	//トヨタ前
/*
		new Array(37.488948, 139.940972),	//宝文館前
		new Array(37.487791, 139.948204),	//セブンイレブン前
*/
		new Array(37.494063, 139.942186),	//ガリバー前
		new Array(37.488208, 139.949899),	//奴郎ヶ前交差点
		new Array(37.484377, 139.953568),	//東山郵便局前
		new Array(37.482478, 139.956819),	//温泉入り口交差点
		new Array(37.481022, 139.958954),	//温泉入り口1
		new Array(37.480839, 139.959630),	//温泉入り口2
		new Array(37.480299, 139.960166),	//温泉入り口3
		new Array(37.480256, 139.960064)	//瀧の湯
	);
	var pointsForLine = new Array();
	for(i=0; i<pointList.length ;i++){
		pointsForLine.push(new GPoint(pointList[i][1], pointList[i][0]));
	}
	map.addOverlay(new GPolyline(pointsForLine, '#ff0000', 12));

	GEvent.trigger(map, 'moveend');
}

// load時のイベントリスナーをセットする
addListener(window, 'load', onLoad, false);

