
var map=null;
var icon_4k=null;
var icon_park=null;

var polyline_zufahrt=null;

var polylines = new Array(
  // Anfahrt Autobahnanschluss    
  new GPolyline.fromEncoded({
    color: "#ff0000",
    weight: 10,
    points: "gq_vH}p}sAoAqYOgb@zAoVeCiTK{QgJMAmIRsI{Aq@s@iGaAfLw@K",
    levels: "BBBBBBBBBBBBB",
    zoomFactor: 32,
    numLevels: 4
  }),
  // Weg Bahnhof
  new GPolyline.fromEncoded({
    color: "#0000ff",
    weight: 5,
    points: "yq`vHqq_tAYwDzBsBK_k@vCTnBqYcAI",
    levels: "BBBBBBB",
    zoomFactor: 32,
    numLevels: 4
  })      
);

var parkplaetze = new Array( 
  new Array(50.96246778582251, 13.942208290100098, "<b>Markt</b><br>Kostenpflichtig 0,50 EUR pro halbe Stunde,<br>max. 1 Stunde<br><a href=\"#\" onClick=\"return showZufahrt('ke`vHgnbtAsBd]hAZwAdBYnD{Gi@}Ey@_@c@Ik@CmEJyKhBLdCf@NcCd@B','BBBBBBBBBBBBBBB');\">Zufahrt anzeigen</a>"),
  new Array(50.960440540894744, 13.944042921066284, "<b>Dr.-Wilhelm-Külz-Str.</b><br>3 Plätze, Parkscheibe"),
  new Array(50.960339176326414, 13.944536447525024, "<b>Tischerplatz</b><br>kostenlose Parkplätze"),
  new Array(50.960589208528305, 13.944225311279297, "<b>Obere Burgstraße</b><br>5 Plätze, Parkscheibe"),
  new Array(50.96367057600145, 13.944504261016846, "<b>Am Zwinger</b><br>Kostenpflichtig 0,50 EUR pro Stunde<br><a href=\"#\" onClick=\"return showZufahrt('ke`vHgnbtAsBd]hAZwAdBYnD{Gi@}Ey@_@c@Ik@CmEJyKXcP','BBBBBBBBBBBB');\">Zufahrt anzeigen</a>")
);
var parkplaetze_marker = new Array();

function initMap() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map"));
    
    if (location.href.indexOf("4kanfahrt.html")>0) {
      map.addControl(new GLargeMapControl());
      map.addControl(new GMapTypeControl());
      map.addControl(new GOverviewMapControl());
    } else {
      map.addControl(new GSmallMapControl());
    }
    map.setCenter(new GLatLng(50.960994663292944, 13.939247131347656), 15);
    map.enableScrollWheelZoom();

        
    icon_4k = new GIcon();
    icon_4k.image = "/assets/marker_4koepfe.png";
    icon_4k.shadow = "/assets/marker_4koepfe_shadow.png";
    icon_4k.iconSize = new GSize(47, 59);
    icon_4k.shadowSize = new GSize(88, 59);
    icon_4k.iconAnchor = new GPoint(36, 59);
    icon_4k.infoWindowAnchor = new GPoint(40, 2);
    icon_4k.infoShadowAnchor = new GPoint(18, 25);           
    
    icon_park = new GIcon();
    icon_park.image = "/assets/marker_parkplatz.png";
    icon_park.shadow = "/assets/marker_parkplatz_shadow.png";
    icon_park.iconSize = new GSize(21, 32);
    icon_park.shadowSize = new GSize(44, 32);
    icon_park.iconAnchor = new GPoint(15, 32);
    icon_park.infoWindowAnchor = new GPoint(15, 2);
    icon_park.infoShadowAnchor = new GPoint(10, 25);          
    
    createParkplaetze()


    var point=new GLatLng(50.96082572423766, 13.942111730575562);
    //var marker=createMarker(point, "<b>4koepfe Büro</b><br>Gerichtsstraße 4<br>01796 Pirna", icon_4k);
    var marker=createMarker(point, null, icon_4k);
    map.addOverlay(marker);
    
    //marker.openInfoWindowHtml("<b>4koepfe Büro</b><br>Gerichtsstraße 4<br>01796 Pirna");
  }
}

function createMarker(point, html, icon) {
  var marker = new GMarker(point, icon);
  if (html!=null) {
    GEvent.addListener(marker, "click", function() {
      marker.openInfoWindowHtml(html);
    });
  }
  return marker;      
}

function showPoly(n, show) {
    
    if (show) {
      if (!polylines[n]._visible) {
        map.addOverlay(polylines[n]);  
      }
      polylines[n]._visible=true;
    } else {
      if (polylines[n]._visible) {
        map.removeOverlay(polylines[n]);
      }
      polylines[n]._visible=false;        
    }
}

function showParkplaetze(show) {
  var bounds = new GLatLngBounds();

  for (var i=0; i<parkplaetze_marker.length; i++) {
    if (show) {
      if (!parkplaetze_marker[i]._visible) {
        map.addOverlay(parkplaetze_marker[i]);
      }
      parkplaetze_marker[i]._visible=true;
      bounds.extend(parkplaetze_marker[i].getPoint());
    } else {
      if (parkplaetze_marker[i]._visible) {
        map.removeOverlay(parkplaetze_marker[i]);
      }
      parkplaetze_marker[i]._visible=false;
    }
  }
  
  if (!show) {
    if (polyline_zufahrt) {
      map.removeOverlay(polyline_zufahrt);
      polyline_zufahrt=null;
    }
    map.closeInfoWindow();
  }
  
  
  if (1<0 && show) {
    // Kartenausschnitt so einstellen, dass alle Marker zu sehen sind
    map.setZoom(map.getBoundsZoomLevel(bounds));
    var clat = (bounds.getNorthEast().lat() + bounds.getSouthWest().lat()) /2;
    var clng = (bounds.getNorthEast().lng() + bounds.getSouthWest().lng()) /2;
    map.setCenter(new GLatLng(clat,clng));
  }
}

function createParkplaetze() {
  for (var i=0; i<parkplaetze.length; i++) {
    var marker=createMarker(new GLatLng(parkplaetze[i][0], parkplaetze[i][1]), parkplaetze[i][2], icon_park);
    parkplaetze_marker.push(marker);
  }
}

function showZufahrt(points, levels) {
  if (polyline_zufahrt) {
    map.removeOverlay(polyline_zufahrt);
    polyline_zufahrt=null;
  }

  polyline_zufahrt=new GPolyline.fromEncoded({
    color: "#00ff00",
    weight: 10,
    points: points,
    levels: levels,
    zoomFactor: 32,
    numLevels: 4
  });     
  map.addOverlay(polyline_zufahrt);
  return false;
}

