function genMap(location,dinoname,dinothumb,sponsor,urlsponsor) {
	var map = new GMap2(document.getElementById('map'));
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	var geocoder = new GClientGeocoder();
	geocoder.getLatLng(
		location,
	  function(label) {
	  	if (!label) {
	  		alert(location + " wurde nicht gefunden!");
	  	} else {
	  		map.setCenter(label, 13);
	  		var marker = new GMarker(label);
	  		var myHTML = "<img src='" + dinothumb + "' /><br><strong>" + dinoname + "</strong><br>" + location + "<br><a href='http://maps.google.de/maps?hl=de&ie=UTF8&q=D%C3%BCrerhaus+Gie%C3%9Fen&fb=1&cid=0,0,8261065458048564223&z=16&iwloc=A' target='_blank'>Route berechnen</a><br><br>Sponsored by: <a href='" + urlsponsor + "' target='_blank'>" + sponsor + "</a>";
	  		map.addOverlay(marker);
	  		marker.openInfoWindowHtml(myHTML);
	  		
	  		GEvent.addListener(marker, "click", function() { 
            marker.openInfoWindowHtml(myHTML); 
         	});
	  	}
	  }
	);
}

var locations = {};

    function load(url) {
      var map = new GMap2(document.getElementById("map"));
      map.setCenter(new GLatLng(50.58730340911776, 8.674499988555908), 15);
      map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());

      GDownloadUrl(url, function(data) {
        var xml = GXml.parse(data);
        var markers = xml.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < markers.length; i++) {
          var name = markers[i].getAttribute("name");
          var address = markers[i].getAttribute("address");
          var dinothumb = markers[i].getAttribute("dinothumb");
          //var sponsor = markers[i].getAttribute("sponsor");
          var urlsponsor = markers[i].getAttribute("urlsponsor");
          var logosponsor = markers[i].getAttribute("logosponsor");
          var type = markers[i].getAttribute("type");
          var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                  parseFloat(markers[i].getAttribute("lng")));
          //var store = {latlng: latlng, name: name, address: address, dinothumb: dinothumb, sponsor: sponsor, urlsponsor: urlsponsor, logosponsor: logosponsor, type: type};
          var store = {latlng: latlng, name: name, address: address, dinothumb: dinothumb, urlsponsor: urlsponsor, logosponsor: logosponsor, type: type};
          var latlngHash = (latlng.lat().toFixed(6) + "" + latlng.lng().toFixed(6));
          latlngHash = latlngHash.replace(".","").replace(".", "").replace("-","");
          if (locations[latlngHash] == null) {
            locations[latlngHash] = []
          }
          locations[latlngHash].push(store);
        }
        for (var latlngHash in locations) {
          var stores = locations[latlngHash];
          if (stores.length > 1) {
            map.addOverlay(createClusteredMarker(stores));
          } else {
            map.addOverlay(createMarker(stores));
          }
         }
      });
    }

    function createMarker(stores) {
      var store = stores[0];
      //var newIcon = MapIconMaker.createMarkerIcon({width: 32, height: 32, primaryColor: "#ff0000"});
      
      var newIcon = new GIcon();
      newIcon.image = "/inc/img/markerDino.png";
      newIcon.iconSize = new GSize(20, 28);
      newIcon.shadow = "/inc/img/markerDinoShadow.png";
      newIcon.shadowSize = new GSize(37, 27);
      newIcon.iconAnchor = new GPoint(5, 34);
      newIcon.infoWindowAnchor = new GPoint(5, 2);
      newIcon.transparent = "mytran.png";
      newIcon.printImage = "mymarkerie.gif";
      newIcon.mozPrintImage = "mymarkerff.gif";
      newIcon.printShadow = "myshadow.gif";
      newIcon.imageMap=[9,0,6,1,4,2,2,4,0,8,0,12,1,14,2,16,5,
       19,7,23,8,26,9,30,9,34,11,34,11,30,12,26,13,24,14,21,
       16,18,18,16,20,12,20,8,18,4,16,2,15,1,13,0];
      
      var marker = new GMarker(store.latlng, {icon: newIcon});
      //var html = "<b>" + store.name + "</b> <br/>" + store.address;
      var html = "<img src='" + store.dinothumb + "' /><br><strong>" + store.name + "</strong><br>" + store.address + "<br><br><br>Präsentiert von<br> <a href='" + store.urlsponsor + "' target='_blank'><img src='/inc/img/logos/" + store.logosponsor + "' /></a>";
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }

    function createClusteredMarker(stores) {
      //var newIcon = MapIconMaker.createMarkerIcon({width: 44, height: 44, primaryColor: "#ff0000"});
      
      var newIcon = new GIcon();
      newIcon.image = "/inc/img/markerDino.png";
      newIcon.iconSize = new GSize(30, 42);
      newIcon.shadow = "/inc/img/markerDinoShadow.png";
      newIcon.shadowSize = new GSize(36, 34);
      newIcon.iconAnchor = new GPoint(5, 34);
      newIcon.infoWindowAnchor = new GPoint(5, 2);
      newIcon.transparent = "mytran.png";
      newIcon.printImage = "mymarkerie.gif";
      newIcon.mozPrintImage = "mymarkerff.gif";
      newIcon.printShadow = "myshadow.gif";
      newIcon.imageMap=[9,0,6,1,4,2,2,4,0,8,0,12,1,14,2,16,5,
       19,7,23,8,26,9,30,9,34,11,34,11,30,12,26,13,24,14,21,
       16,18,18,16,20,12,20,8,18,4,16,2,15,1,13,0];
      
      var marker = new GMarker(stores[0].latlng, {icon: newIcon});
      var html = "";
      for (var i = 0; i < stores.length; i++) {
        html += "<b>" + stores[i].name + "</b> <br/>" + stores[i].address + "<br/>Präsentiert von " + stores[i].sponsor + "<br/><br/>";
      }
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }