    var map;
    var mgr;
    var allmarkers = [];
        
    function initialize(lat, lng, zoom) {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(parseFloat(lat), parseFloat(lng)), parseInt(zoom));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.addControl(new GOverviewMapControl()); // Kleiner Kartenausschnitt unten rechts
        mgr = new MarkerManager(map, {trackMarkers:true});
        window.setTimeout(addMarkers, 0);
      }
    }
    
        // Marker Properties:
        var buildingsIcon = new GIcon();
        buildingsIcon.image = "/custom/_gfx/icons/buildings_icon.png";
        buildingsIcon.shadow = "/custom/_gfx/icons/iconshadow.png";
        buildingsIcon.iconSize = new GSize(24, 24);
        buildingsIcon.shadowSize = new GSize(32, 32);
        buildingsIcon.iconAnchor = new GPoint(12, 24);
        buildingsIcon.infoWindowAnchor = new GPoint(9, 2);
        buildingsIcon.infoShadowAnchor = new GPoint(18, 25);
        
        var streetsIcon = new GIcon();
        streetsIcon.image = "/custom/_gfx/icons/streets_icon.png";
        streetsIcon.shadow = "/custom/_gfx/icons/iconshadow.png";
        streetsIcon.iconSize = new GSize(24, 24);
        streetsIcon.shadowSize = new GSize(32, 32);
        streetsIcon.iconAnchor = new GPoint(12, 24);
        streetsIcon.infoWindowAnchor = new GPoint(9, 2);
        streetsIcon.infoShadowAnchor = new GPoint(18, 25);
        
        var cityIcon = new GIcon();
        cityIcon.image = "/custom/_gfx/icons/city_icon.png";
        cityIcon.shadow = "/custom/_gfx/icons/iconshadow.png";
        cityIcon.iconSize = new GSize(24, 24);
        cityIcon.shadowSize = new GSize(32, 32);
        cityIcon.iconAnchor = new GPoint(12, 24);
        cityIcon.infoWindowAnchor = new GPoint(9, 2);
        cityIcon.infoShadowAnchor = new GPoint(18, 25);
        
        var icons = [];
        icons[0] = buildingsIcon;
        icons[1] = streetsIcon;
        icons[2] = cityIcon;
    
    
    
            //create markers function:
            function createMarker(point,name,html,icontype) {
                var marker = new GMarker(point,icons[icontype]);
                //In allmarkers Array speichern:
                allmarkers.push(marker);
                marker.type = icontype;
              
                //Eventlistener adden:
                GEvent.addListener(marker, "click", function() {
                  marker.openInfoWindowHtml(html);
                });
                return marker;
            }
          
        
        function addMarkers(obj){
         
                  // Kartendaten aus map.xml lesen
                  //var path = "/custom/xml/map.xml";
                  var path = "/orte"
                  myguid = new Date().valueOf() + "_" + Math.random();
                  path = path + "?sm=1&g=" + myguid
                  GDownloadUrl(path, function(data) {
                  
                      var xmlDoc = GXml.parse(data);
                      // Durch alle marker tags loopen:
                      var markers = xmlDoc.documentElement.getElementsByTagName("marker");
                        
                      for (var i = 0; i < markers.length; i++) {
                          //Marker nur setzen wenn Längen und BReitengrad vorhanden!!
                          if (markers[i].getAttribute("lat") != '' && markers[i].getAttribute("lng") != ''){
                              var icontype = parseInt(markers[i].getAttribute("icontype"));
                              var lat = parseFloat(markers[i].getAttribute("lat"));
                              var lng = parseFloat(markers[i].getAttribute("lng"));
                              var point = new GLatLng(lat,lng);
                              var html = "<div class=\"address\">" + markers[i].getAttribute("html") + "</div>";  
                              var label = markers[i].getAttribute("label");
                              var address = markers[i].getElementsByTagName("address")[0];
    
                              // marker setzen:
                              //alert(lat);
                              
                                var marker = createMarker(point,label,html,icontype);
                                map.addOverlay(marker);
                             
                          }
                      }
                      
                  
                  });
    
    }
    
   
   function Markers(obj){
   markertype = obj.value; 
       
	   if (obj.checked==false) { // hide the marker
	      for (var i=0;i<allmarkers.length;i++) {
      
	         if (allmarkers[i].type==markertype)  {
	            map.removeOverlay(allmarkers[i]);
	         }
	      }
	   } else { // show the marker again
	      for (var i=0;i<allmarkers.length;i++) {
	         if (allmarkers[i].type==markertype)  {
	            map.addOverlay(allmarkers[i]);
	         }
	      }
	   }
	}