var map = null;
var geocoder = null;
var icon = null;

function load(dir_path, form_name, lon_value, lat_value) {

	var lon = lon_value;
	var lat = lat_value;

	map = new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(lat,lon), 14);
	map.addControl(new GLargeMapControl());
	map.addControl(new GOverviewMapControl());
	map.addControl(new GMapTypeControl());
	geocoder = new GClientGeocoder();
	
	icon = new GIcon();
	icon.image = dir_path +"js/cross.png";
	icon.iconSize = new GSize(100, 100);
	icon.iconAnchor = new GPoint(50, 50);
	var marker = new GMarker(map.getCenter(), icon);
	map.addOverlay(marker);
	
	GEvent.addListener(map, "move", function() { 
	   map.clearOverlays()
	   marker = new GMarker(map.getCenter(), icon);
	   map.addOverlay(marker);
	   showLatLon(form_name);
	});
	
	showLatLon= function (form_name){

	    var pointc = map.getCenter()
	    document.forms[form_name].lon.value=pointc.x;
	    document.forms[form_name].lat.value=pointc.y;
	    document.forms[form_name].lon_disp.value=pointc.x;
	    document.forms[form_name].lat_disp.value=pointc.y;

	}
	
}

function loadByButton(dir_path, form_name, lon_value, lat_value) {

	var lon = lon_value;
	var lat = lat_value;

	map = new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(lat,lon), 14);
	map.addControl(new GLargeMapControl());
	map.addControl(new GOverviewMapControl());
	map.addControl(new GMapTypeControl());
	geocoder = new GClientGeocoder();
	
	icon = new GIcon();
	icon.image = dir_path +"js/cross.png";
	icon.iconSize = new GSize(100, 100);
	icon.iconAnchor = new GPoint(50, 50);
	var marker = new GMarker(map.getCenter(), icon);
	map.addOverlay(marker);
	
    showLatLon(form_name);

	showLatLon= function (form_name){

	    var pointc = map.getCenter()
	    document.forms[form_name].lon.value=pointc.x;
	    document.forms[form_name].lat.value=pointc.y;
	    document.forms[form_name].lon_disp.value=pointc.x;
	    document.forms[form_name].lat_disp.value=pointc.y;

	}
	
}


function loadDisableDragging(dir_path, form_name, lon_value, lat_value) {

	var lon = lon_value;
	var lat = lat_value;

	map = new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(lat,lon), 14);
	map.addControl(new GSmallZoomControl());
	map.addControl(new GMapTypeControl());
    map.disableDragging();
	geocoder = new GClientGeocoder();
	
	icon = new GIcon();
	icon.image = dir_path +"js/cross.png";
	icon.iconSize = new GSize(100, 100);
	icon.iconAnchor = new GPoint(50, 50);
	var marker = new GMarker(map.getCenter(), icon);
	map.addOverlay(marker);
	
	GEvent.addListener(map, "move", function() { 
	   map.clearOverlays()
	   marker = new GMarker(map.getCenter(), icon);
	   map.addOverlay(marker);
	   showLatLon(form_name);
	});
	
	showLatLon= function (form_name){

	    var pointc = map.getCenter()
	    document.forms[form_name].lon.value=pointc.x;
	    document.forms[form_name].lat.value=pointc.y;
	    document.forms[form_name].lon_disp.value=pointc.x;
	    document.forms[form_name].lat_disp.value=pointc.y;

	}
	
}


function loadWithMarker(lon_value, lat_value, title_value, space_value) {

	var lon     = lon_value;
	var lat     = lat_value;
	var title   = title_value;
	var space   = space_value;

    if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
    	map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(lat,lon), 15);
		var point = new GLatLng(lat,lon);
		var marker = new GMarker(point);
		map.addOverlay(marker);
		var offset = new GSize(0, -20);
		GEvent.addListener(marker,"click",function(){
			map.openInfoWindowHtml(point, '<p style="font-size:90%;font-weight: bold;">'+title+'<br />'+space+'</p>', offset)
		})
	}
}

function showAddress(address) {
	if (geocoder) {
		geocoder.getLatLng(
		address,
		function (point) {
			if (!point) {
				alert(address + " \u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002");
			} else {
				map.setCenter(point, 14);
				var marker = new GMarker(point, icon);
				map.addOverlay(marker);
			}
		}
		);
	}
}