    var map;
    var icon = [];
    var geocode;
    var orgm;
    var retry = 0;
    var markerReq = createRequestObj();
    var compat = GBrowserIsCompatible();

    //<![CDATA[

    function initMap () {
      map = new GMap2 ( document.getElementById("maparea") );
      map.addControl ( new GSmallMapControl() );
      map.addControl ( new GMapTypeControl() );
      map.enableScrollWheelZoom();
      for ( var x = 0; x <= 4; x++ ) {
        icon[x] = new GIcon();
        switch ( x ) {
	case 0:
	  icon[x].image = "http://www.parkscout.de/pics/google_hom2.png"; 
	  break;
	case 1:
	  icon[x].image = "http://www.parkscout.de/pics/google_frei2.png"; 
	  break;
	case 2:
	  icon[x].image = "http://www.parkscout.de/pics/google_zoo2.png"; 
	  break;
	case 3:
	  icon[x].image = "http://www.parkscout.de/pics/google_bad2.png"; 
	  break;
	case 4:
	  icon[x].image = "http://www.parkscout.de/pics/google_fer2.png"; 
	  break;
	}
        icon[x].iconSize = new GSize(14, 21); 
        icon[x].iconAnchor = new GPoint(7,18); 
        icon[x].infoWindowAnchor = new GPoint(22,1);
      }
    }

    function showMap ( center ) {
      orgm = center;
      if ( compat ) {
        initMap();
        geocode = new GClientGeocoder();
        geocode.setBaseCountryCode("de");
        geocode.getLatLng( center, centerOnMap );
      }
    }

    function showCoord ( lng, lat ) {
      if ( compat ) {
        initMap();
        var point = new GLatLng( lat, lng );
        document.getElementById("gpt").value = point;
        map.setCenter ( point, 14 );
        var marker = new GMarker ( point, {title:parkname,clickable:false,icon:icon[0]} );
        map.addOverlay ( marker );
        marker.openInfoWindowHtml ( "<b>"+parkname+"</b><br>"+address );
        sendRequest( markerReq,'/ajax/pullMarkers/pid/'+pid, replyMarkers );
      }
    }

    function showAddress ( address, city ) {
      orgm = address + ", " + city;
      if ( compat ) {
        initMap();
        geocode = new GClientGeocoder();
        geocode.setBaseCountryCode("de");
        geocode.getLatLng( orgm, centerOnPark );
      }
    }

    function centerOnMap ( point ) {
      if ( point ) {
        map.setCenter ( point, 14 );
        sendRequest( markerReq,requestStr, replyMarkers );
      } else if ( retry == 0 ) {
        geocode.getLatLng( orgm, centerOnMap );
        retry = 1;
      }
    }

    function centerOnPark ( point ) {
      if ( point ) {
        document.getElementById("gpt").value = point;
        map.setCenter ( point, 14 );
        var marker = new GMarker ( point, {title:parkname,clickable:false,icon:icon[0]} );
        map.addOverlay ( marker );
        marker.openInfoWindowHtml ( "<b>" + parkname + "</b><br>"+address );
        sendRequest( markerReq,'/ajax/pullMarkers/pid/'+pid, replyMarkers );
      } else if ( retry == 0 ) {
        geocode.getLatLng( orgm, centerOnPark );
        retry = 1;
      }
    }

function createMarker ( point, link, type ) {

      var marker = new GMarker ( point, {icon:icon[type]} );
      GEvent.addListener ( marker, 'click', function() { location.href = "http://www.parkscout.de/parkinfo/" + link; } );
      return ( marker );
    }

    function replyMarkers() {
      if ( markerReq.readyState == 4 ) {     
        var getit = markerReq.responseText;
        var objects = getit.split('@@@');
        var bounds = map.getBounds();
        if ( getit != "" ) {
          for ( var x = 0; x < objects.length; x++ ) {
            var object = objects[x].split('#');
            var point = new GLatLng( object[2], object[1] );
            map.addOverlay ( createMarker ( point, object[3], object[5] ) );
            document.getElementById('mtgt_unnamed_'+x).setAttribute('tooltip','delay=[0] cssbody=[ttheadernont] header=['+object[0]+'] body=['+object[4]+'<br><b>'+object[6]+'</b><br><br>Klick für Parkinfos]');
            if ( x < zmax ) bounds.extend ( point );
          }
          var zoom = map.getBoundsZoomLevel ( bounds );
          map.setZoom ( zoom );
        }
      }
    }

    //]]>


