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 onMapClick()
{
	map.getInfoWindow().hide();
}

function createMarker(map, lat, lng, icon, zindex, html)
{
	var point = new GLatLng(lat, lng);
	var option = {icon: icon, zIndexProcess: function(){return zindex;}};
	var marker = new GMarker(point, option);

	if(html){
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml(html);
		});
	}

	return marker;
}

/*
function addMarker(map, lat, lng, icon)
{
	var point = new GLatLng(lat, lng);
	var marker = new GMarker(point, icon);

	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.511387, 139.928055), 14, G_NORMAL_MAP);
	map.enableDoubleClickZoom();
	map.enableContinuousZoom();

	map.addControl(new GLargeMapControl());
//	map.addControl(new GMapTypeControl());
//	map.addControl(new GOverviewMapControl());

	GEvent.addListener(map, 'click', onMapClick);

	var markermgr = new GMarkerManager(map);

	var markerList = [
		[37.523200, 139.917700, 'ic.png', 165, 45, 2, 22],
		[37.517900, 139.918700, 'r49.png', 95, 115, 46, 2],
		[37.517912, 139.933178, 'kitayanagihara.png', 135, 70, 2, 2],
		[37.498397, 139.928629, 'yubinkyoku.png', 136, 71, 2, 2],
		[37.496574, 139.925796, 'parking.png', 180, 45, 178, 22],
		[37.497230, 139.925846, 'daie.png', 151, 76, 147, 72],
		[37.497280, 139.926746, 'tiger.png', 110, 87, 13, 85]
	];

	for(i=0; i<markerList.length ;i++){
		var latitude, longitude, filename, width, height, anchor_x, anchor_y;
		latitude  = markerList[i][0];
		longitude = markerList[i][1];
		filename  = markerList[i][2];
		width     = markerList[i][3];
		height    = markerList[i][4];
		anchor_x  = markerList[i][5];
		anchor_y  = markerList[i][6];

		var icon = new GIcon();
		icon.image = 'img/' + filename;
		icon.iconSize = new GSize(width, height);
		icon.iconAnchor = new GPoint(anchor_x, anchor_y);
		icon.infoWindowAnchor = new GPoint(anchor_x, anchor_y);

		map.addOverlay(createMarker(map, latitude, longitude, icon, 10));
	}

	{
		var icon = new GIcon();
		icon.image = 'img/detail.png';	//詳細地図
		icon.iconSize = new GSize(100, 100);
		icon.iconAnchor = new GPoint(50, 50);

		var marker = createMarker(map, 37.496574, 139.926333, icon, 0);
		GEvent.addListener(marker, "click", function() {
			map.setCenter(new GLatLng(37.496574, 139.926333), 18, G_NORMAL_MAP);
		});

		markermgr.addMarker(marker, 13, 15);
	}


	var pointList = [
		[37.523315, 139.917709],	//インター出口
		[37.523148, 139.917648],	//インター出口2
		[37.517990, 139.918762],	//観音前交差点
		[37.517971, 139.923706],
		[37.517963, 139.925705],
		[37.518047, 139.929413],
		[37.517998, 139.933136],
		[37.516743, 139.932999],
		[37.514961, 139.932129],
		[37.513729, 139.931656],
		[37.513035, 139.931519],
		[37.512360, 139.931534],
		[37.511665, 139.931656],
		[37.509815, 139.932663],
		[37.509090, 139.932770],
		[37.506962, 139.932388],	//サティ前
		[37.498428, 139.928635],	//郵便局前

		[37.498693, 139.927620],	//大町四ツ角
		[37.497082, 139.926877],	//うるしや工芸前
		[37.497387, 139.925802],	//ダイエー中町店前
		[37.497031, 139.925630],
		[37.496625, 139.925555],	//駐車場前
		[37.496603, 139.925692]		//駐車場
	];

	var pointList2 = [
		[37.496653, 139.925992],
		[37.496630, 139.926658],
		[37.496513, 139.926652],
		[37.496535, 139.925980],
		[37.496653, 139.925992]
	];

	var pointsForLine = [];
	for(i=0; i<pointList.length ;i++){
		pointsForLine.push(new GPoint(pointList[i][1], pointList[i][0]));
	}
	map.addOverlay(new GPolyline(pointsForLine, '#ff0000', 12));

	var pointsForLine2 = [];
	for(i=0; i<pointList2.length ;i++){
		pointsForLine2.push(new GPoint(pointList2[i][1], pointList2[i][0]));
	}
	map.addOverlay(new GPolyline(pointsForLine2, '#ff0000', 2));

	GEvent.trigger(map, 'moveend');
}

// load時のイベントリスナーをセットする
addListener(window, 'load', onLoad, false);

