var map;
var loaded;
function loadKml(url) {
  if (GBrowserIsCompatible()) {
    if (!map) map = new GMap2(document.getElementById('map'));
    map.setCenter(new GLatLng(0, 0), 1);
    map.addControl(new GLargeMapControl());
    map.disableInfoWindow();
    map.enableContinuousZoom();

    var geoXml = new GGeoXml(url, function() {
      map.savePosition();
      if (map.getZoom() > 15) map.setZoom(15);
      loaded = true;
      if (lat) setMarker(lat, lng);
    });
    map.addOverlay(geoXml);
    geoXml.gotoDefaultViewport(map);
    map.setMapType(G_SATELLITE_MAP);
  }
}

var lastMarker;
var lastMarker2;
var lat;
var lng;
function setMarker(latitude, longitude) {
  if (GBrowserIsCompatible()) {
    lat = latitude;
    lng = longitude;
    if (!loaded) return;
    if (lastMarker) map.removeOverlay(lastMarker);
    if (lastMarker2) map.removeOverlay(lastMarker2);
    var icon = new GIcon();
    icon.image = "http://maps.google.com/mapfiles/kml/shapes/placemark_circle.png";
    icon.iconSize = new GSize(32, 32);
    icon.shadowSize = new GSize(0, 0);
    icon.iconAnchor = new GPoint(15, 15);
    icon.infoWindowAnchor = new GPoint(32, 0);
    var point = new GLatLng(latitude, longitude);
    var marker = new GMarker(point, {icon : icon, zIndexProcess : function () {return 999;}});
    lastMarker2 = marker;
    map.addOverlay(marker, icon);
    marker.show();
    
    icon = new GIcon();
    icon.image = "imgs/markers/point.gif";
    icon.iconSize = new GSize(8, 8);
    icon.shadowSize = new GSize(0, 0);
    icon.iconAnchor = new GPoint(4, 2);
    icon.infoWindowAnchor = new GPoint(8, 0);
    point = new GLatLng(latitude, longitude);
    marker = new GMarker(point, {icon : icon, zIndexProcess : function () {return 1000;}});
    lastMarker = marker;
    map.addOverlay(marker, icon);
    marker.show();
    
    map.panTo(new GLatLng(latitude, longitude));
  }
}

