var markerCenter = null;

function ms_mapLoad(mapId)
{
    if (ms_mapBrowserIsCompatible()) 
    {
      return new GMap2(document.getElementById(mapId));
    }
    return null;
}

function ms_mapAddCoord(map, longitude, latitude, text, markerImage, markerTextOnHover) 
{
	if (ms_mapBrowserIsCompatible()) 
	{
        var markerIcon = new GIcon(G_DEFAULT_ICON);
        markerIcon.image = markerImage;
        markerIcon.iconAnchor = new GPoint(10, 34);
		var markerOptions = { icon:markerIcon, title: markerTextOnHover };        
		
		var point = new GLatLng(latitude, longitude);
	    var marker = new GMarker(point, markerOptions);
	    
        if (text != '')
        	GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(text);});
	    
	    map.addOverlay(marker);
	}
}

function ms_mapSetCenter(map, longitude, latitude, zoom) 
{
	if (ms_mapBrowserIsCompatible()) 
	{
	    map.setCenter(new GLatLng(latitude, longitude), zoom);
	}
}

function ms_mapBrowserIsCompatible()
{
	return GBrowserIsCompatible();
}

function ms_mapFindCoordinates(map, address)
{
  var geocoder = null;
  geocoder = new GClientGeocoder();

  if (geocoder) 
  {
    geocoder.getLatLng(
      address,
      function(point) {
        if (!point) {
          alert(address + " ej funnen");
        } else {
          ms_mapSetCenter(map, point.x, point.y, map.getZoom());
          var marker = new GMarker(point);
          map.addOverlay(marker);
          marker.openInfoWindowHtml(address);
          document.getElementById("longitude").value = point.x;
          document.getElementById("latitude").value = point.y;
          document.getElementById("zoom").value = map.getZoom();
        }
      }
    );
  }
}

function ms_mapAddControls(map)
{
	if (ms_mapBrowserIsCompatible)
	{
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
	}
}

function ms_mapFindCoordMoveEvent(map)
{
	GEvent.addListener(map, "moveend", function() 
	{
	    document.getElementById("centerLongitude").value = map.getCenter().lng();
	    document.getElementById("centerLatitude").value = map.getCenter().lat();
	    document.getElementById("zoom").value = map.getZoom();
	    
	    if (markerCenter != null)
		    map.removeOverlay(markerCenter);
	    
	    var point = new GLatLng(map.getCenter().lat(), map.getCenter().lng());
        var marker = new GMarker(point);
	    map.addOverlay(marker);
	    markerCenter = marker;
   });
}
