var __ZOOM_CONTROLLER = false;
var __MAPTYPE_CONTROLLER = false;
var __ZOOM_DEFAULT = 15;
var __ZOOM_MIN = 10;
var __ONLOAD = false;
var __MAP_ID = 'map';
var __ICON = true;

var Geo;
var placement = new Array();
var markers = new Array();

function Ncvb_GSetup()
{

	if( GBrowserIsCompatible()){
		//GMAPインスタンス作成
		var Geo = new GMap2( document.getElementById(__MAP_ID));
		Geo.addControl(new GLargeMapControl());
		Geo.setCenter( new GLatLng( placement[0][0], placement[0][1]), __ZOOM_DEFAULT );
		//GEOコーダーインスタンス作成
		var geocoder = new GClientGeocoder();

		var icon = Ncvb_GIcon(1);
		var html = Ncvb_Html(1);
		
		if (placement[0][0] == 0) {
			geocoder.getLatLng( placement[1][3], 
				function (point) {
					if (!point) {
						alert(placement[1][3] + "が見つかりません");
					} else {
						
						//console.log(placement[1][3]);
						//document.gmap.map.value = point.lng() + "/" + point.lat();
						Geo.setCenter(point, __ZOOM_DEFAULT );
						Geo.clearOverlays();
						var marker = Ncvb_GMarker( point, icon, html );
						Geo.addOverlay(marker);
						//Geo.setCenter(point, 17);
					}
				}
			);
		} /*else {
		  console.log(placement[0][0] + "/" + placement[0][1] + ":" + __ZOOM_DEFAULT);
			var point = new GLatLng( placement[0][0], placement[0][1])
			Geo.setCenter( point, __ZOOM_DEFAULT );
			Geo.clearOverlays();
			var marker = Ncvb_GMarker( point, icon, html );
			Geo.addOverlay(marker);
			//map.addControl( new GSmallMapControl());
			//if(__ZOOM_CONTROLLER) Geo.addControl( new GSmallZoomControl());
			//if(__MAPTYPE_CONTROLLER) Geo.addControl( new GMapTypeControl());
		}*/	
		
		if(__ICON){
			var i = 1;
			while( i < placement.length ){
				var icon = Ncvb_GIcon(i);
				var point = new GLatLng( placement[i][0], placement[i][1] );
				var html = Ncvb_Html(i);
				var marker = Ncvb_GMarker( point, icon, html );
				markers.push(marker);
				Geo.addOverlay(marker);
				i++;
			}
		}
		
		__ONLOAD = true;
	}
}
				
/*	function refresh()
{
	map.clearOverlays();
	Ncvb_GSetup();
}*/

function Ncvb_GPanTo( index )
{
	if(__ONLOAD){
		zoom = Geo.getZoom();
		Geo.closeInfoWindow();
		if( zoom < __ZOOM_MIN ){
			Geo.setCenter( new GLatLng( placement[index][0], placement[index][1] ), __ZOOM_DEFAULT );
		}else{
			Geo.panTo( new GLatLng( placement[index][0], placement[index][1] ), zoom );
		}
	}
}

function Ncvb_GPanToView( index )
{
	Geo.closeInfoWindow();	
	Ncvb_GPanTo(index);
	markers[index-1].openInfoWindowHtml( Ncvb_Html(index));
}

function Ncvb_GMarker( point, icon, html )
{
	var marker = new GMarker( point, icon );
	GEvent.addListener( marker, 'click', function()
	{
		marker.openInfoWindowHtml(html);
	});

	return marker;
}

function Ncvb_GIcon( index )
{
	var icon = new GIcon();
	icon.image = "/images/icon_map_"+ index +".png";	// 絶対パスだと表示されないのは何故・・・
	icon.shadow = "/images/icon_map_shadow.png";		// 絶対パスだと表示されないのは何故・・・
	icon.iconSize = new GSize( 20, 26 );
	icon.shadowSize = new GSize( 30, 21 );
	icon.iconAnchor = new GPoint( 10, 26 );
	//icon.iconAnchor = new GPoint( 10, 0 );
	icon.infoWindowAnchor = new GPoint( 10, 0 );

	return icon;
}

function Ncvb_Html( index )
{
	var data = placement[index];
	var html = '<div class="maptext">名前：'+ data[2] + '</div>';
	html += '<div class="maptext">住所：'+ data[3] + '</div>';

	return html;
}