// Erwartet diese globalen Variablen:
//    window.MARKER_HTML     = '<div z-index:5><strong><span class="fs14">Adresse</span></strong><br/><span class="fs12"><% s.strasse %><br><% s.plz %> <% s.ort %><br><br><b>Routenplaner</b> --> Startadresse:</span><div style="padding-top:0.5em;"><form action="http://maps.google.com/maps" method="get" target = "_blank" style="width:14.0625em;" onSubmit="valueconcat()"><input type="text" SIZE=40 MAXLENGTH=60 name="saddr" id="saddr" style="width:12em;" value="" /><input type="hidden" name="daddr" value="<% s.strasse %> <% s.plz %> <% s.ort %><% IF (s.land == 'D') %>, Germany<% END %><% IF (s.land == 'A') %>, Austria<% END %><% IF (s.land == 'L') %>, Luxemburg<% END %>"/>&nbsp;<INPUT value="Los!" TYPE="SUBMIT"></form></div></div>':
//    window.KNOWN_COORDS    = '<% s.google_map_pos %>' 
//    window.LOCATION_STRING = "<% s.strasse %> <% s.plz %> <% s.ort %><% IF (s.land == 'D') %>, Germany<% END %><% IF (s.land == 'A') %>, Austria<% END %><% IF (s.land == 'L') %>, Luxemburg<% END %>"
    

	function makeBaseIcon() {
    	// Create a base icon for all of our markers that specifies the
        // shadow, icon dimensions, etc.
        var baseIcon = new GIcon();
        baseIcon.iconSize = new GSize(25, 24);
        baseIcon.iconAnchor = new GPoint(0, 0);
        baseIcon.infoWindowAnchor = new GPoint(20, 5);
        
        return baseIcon;
    }
    
    // Creates a marker whose info window displays the letter corresponding
    // to the given index.
    function createMarker(map, point, index) {
    	
    	var baseIcon = makeBaseIcon()
    
    	// Create a lettered icon for this point using our icon class
        var letteredIcon = new GIcon(baseIcon);
        letteredIcon.image = "/s/pics/content/suche/vkst/maker.png";

        // Set up our GMarkerOptions object
        var markerOptions = { 
        	icon: letteredIcon
        };
        var marker = new GMarker(point, markerOptions);

        GEvent.addListener(marker, "click", function() {
        	marker.openInfoWindowHtml(window.MARKER_HTML);
        });
        
        return marker;
    }
    
    function makeMap(callback) {
    	
    	var map = new GMap2(document.getElementById("map"));
    	
    	map.addControl(new GSmallMapControl());
    	
        map.addControl(new GMapTypeControl());
       
		if(window.KNOWN_COORDS.length == 2 ) { 
			var coordinates = new GLatLng(window.KNOWN_COORDS[0], window.KNOWN_COORDS[1]);
			map.setCenter(coordinates, 13);
			callback(map, coordinates)
		} 
		else {
			var geoCoder = new GClientGeocoder()
			geoCoder.getLatLng(
				window.LOCATION_STRING, 
				function coordinateCallback (coordinates) {
					if(!coordinates) {
						alert("Es konnten leider keine Koordinaten ermittelt werden!")
					}
					map.setCenter(coordinates, 13);
					callback(map, coordinates)
				});
		}
    }
    
    function initialize() {
    	if (GBrowserIsCompatible()) {
      		makeMap(function (map, location) {
      			var marker = createMarker(map, location, 0);
       			map.addOverlay(marker);
       			marker.openInfoWindowHtml(window.MARKER_HTML);
      		})
		}
    }