var map;

var PromoControl = function(url, src) {
	this.url_ = url;
	this.src_ = src;
};

PromoControl.prototype = new GControl(true);

PromoControl.prototype.initialize = function(map) {
	var container = document.createElement("div");
	container.innerHTML =
		'<img style="cursor:pointer" '
		+ 'src="' + this.src_ + '"'
		+ ' border="0" title="for-runners\nService f&uuml;r L&auml;ufer">';
	
	url = this.url_;
	
	GEvent.addDomListener(container, "click", function() {
		document.location = url;
	});
	
	map.getContainer().appendChild(container);
	
	return container;
};

PromoControl.prototype.getDefaultPosition = function() {
	return new GControlPosition(
		G_ANCHOR_TOP_RIGHT, new GSize(-3, -6));
};

function changeBodyClass(from, to) {
	document.body.className =
		document.body.className.replace(from, to);
	return false;
}


    function genMap(mapName, punkte, markers, logo, mapType) {
        
        //Container für Karte hole
        map = new GMap2(document.getElementById(mapName));
        
        //Rechteck um die Punkte erzeugen
        var bounds = new GLatLngBounds();
        for (i = 0; i < punkte.length; i++) {
            
          bounds.extend(punkte[i]);
        }
        
        if (logo != null) {
			map.addControl(new PromoControl("http://www.for-runners.de", logo));
        }
        
        // Google Controls
//        map.addControl(new GSmallZoomControl());
        
        //Karte justieren
        map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds), mapType);

        // Strecke zeichnen
        map.addOverlay(new GPolyline(punkte,"#0080ff",4));

        //Marker aufnehmen
        placeMarkers(map, markers);
        
        return map;
        
    }
    
    function placeMarkers(map, markers) {
        
        for (i = 0; i < markers.length; i++) {
            
          var myMarker = markers[i];
          var icon = new GIcon();
          icon.image = myMarker.image;
          icon.iconSize = myMarker.iconSize ;
          icon.iconAnchor = myMarker.iconAnchor;
        
          var marker = new GMarker(new GLatLng(myMarker.latitude, myMarker.longitude), icon);
          map.addOverlay(marker);

        }
		
		
    }
    function getPunkte(name) {
        var strecke = document.getElementById(name);
        var trkseg = strecke.documentElement.childNodes(1).childNodes(2);
        
        var punkte = [];

        for(i=0;i<trkseg.childNodes.length;i++)
        {
           with(trkseg.childNodes(i))
           {
             punkte[i] = new GLatLng(getAttribute("lat"), getAttribute("lon"));
           }
        }
        
        return punkte;
    }

  

function addMarker(latitude, longitude, description) {
    
    var marker = new GMarker(new GLatLng(latitude,longitude));
    GEvent.addListener(marker, "click", 
    function() {marker.openInfoWindowHtml(description)}
);
    map.addOverlay(marker);
        
}




