var map = null;
var geocoder = null;
var mapAreasArray = new Array();
var mapIcon = new GIcon();
var markers = [];
mapIcon.image = "http://beta.golfonline.dk/assets/uploads/bestigbjerge/marker.png";
  mapIcon.iconSize = new GSize(38, 40);
mapIcon.shadowSize = new GSize(0, 0);
mapIcon.iconAnchor = new GPoint(19, 38);
markerOptions = { icon:mapIcon };

$(".map-overlay-close").live('click', function() {
  var overlay = $("#map-overlay");
  overlay.hide();
});

function loadGoogleMap(hideControls, center, zoom)
{
  if (GBrowserIsCompatible())
  {
    map = new GMap2(document.getElementById("map-canvas"));
  if (hideControls == false)
  {
      map.addControl(new GLargeMapControl()); 
      map.addControl(new GMapTypeControl()); 
  }
  
    map.setCenter(center, zoom);

    GEvent.addListener(map, 'zoomend', function(oldLevel, newLevel)
    {
    var overlay = $("#map-overlay");
          if (overlay != null)
          {
            overlay.hide();
          }
    });
    geocoder = new GClientGeocoder();
  }
}

function addPoints(allPoints)
{
  for (var i = 0; i < allPoints.length; i++)
  {
    AddGeoPoint(allPoints[i]);
  }
  var mapOverlay = $("#map-overlay");
  if (mapOverlay != null)
  {
    $(mapOverlay).appendTo(map.getPane(G_MAP_FLOAT_SHADOW_PANE));
    //$(map.getPane(G_MAP_FLOAT_SHADOW_PANE)).appendChild(mapOverlay);
  }
}

function displayPoint(marker, p) {
    map.panTo(marker.getLatLng());
    var overlay = $("#map-overlay");
    $("#map-overlay #map-overlay-thumb").attr('src', p.Thumb);
    $("#map-overlay #map-overlay-header").html(p.Name);
    $("#map-overlay #map-overlay-height").html(p.Height);
    $("#map-overlay #map-overlay-link").html('<a href="'+p.URL+'">Læs mere om bjerget</a>');
    
    var markerOffset = map.fromLatLngToDivPixel(marker.getLatLng());

  overlay.css({
    "top" : (markerOffset.y - (overlay.height() - 11)) + "px",
      "left" : (markerOffset.x + 18) + "px",
      "display" : "block"
  })
}

function AddGeoPoint(p)
{
  var point = new GLatLng(p.Lat, p.Lng);
  var marker = new GMarker(point, markerOptions);
  map.addOverlay(marker);

  var overlay = $("#map-overlay");

  if (overlay != null)
  {
    marker.infowindowhtml =
      p.Headline;
  
    GEvent.addListener(marker, 'click', function()
    {
      displayPoint(marker, p);
    });
  }
}

