    //<![CDATA[
	var map = null;	
	var geocoder = null;
	function fill () {
//		GDownloadUrl("http://www.smavel.com/karten/generate_marker.xml", function(data) {
		GDownloadUrl("http://www.smavel.com/karten/generate_marker.php", function(data) {
			var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName("marker");
			//Karte auf 0 Zoom setzen wenn Übersichtskarten angezeigt werden soll
			if (status == 'welt') {
				map.setCenter(new GLatLng(0.0,0.0), 1);
			}
			for (var i = 0; i < markers.length; i++) {
				switch (status) {
				  case "welt":
					//Dropdown Einträge anlegen / Marker setzen
					if (markers[i].getAttribute("type") == 'kontinent') {
						document.karte.kontinent.options[document.karte.kontinent.length] = 
						new Option(markers[i].getAttribute("name"),markers[i].getAttribute("value"));
						//Kontinent Marker setzen
						var marker = createMarker(new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng")))
						, markers[i].getAttribute("name"), markers[i].getAttribute("value"), markers[i].getAttribute("type"));
						map.addOverlay(marker);						
					}
					if (markers[i].getAttribute("type") == 'land') {
						document.karte.land.options[document.karte.land.length] = 
						new Option(markers[i].getAttribute("name"),markers[i].getAttribute("value"));
					}					
					if (markers[i].getAttribute("type") == 'stadt') {
						document.karte.stadt.options[document.karte.stadt.length] = 
						new Option(markers[i].getAttribute("name"),markers[i].getAttribute("value"));
					}										
					break;
				 case "kontinent":
					//Karte setzen wenn Marker der richtige ist
					if (markers[i].getAttribute("name") == value) {
						map.setCenter(new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng"))), 
						parseInt(markers[i].getAttribute("zoom")));
					}
					if (markers[i].getAttribute("type") == 'kontinent') {
						document.karte.kontinent.options[document.karte.kontinent.length] = 
						new Option(markers[i].getAttribute("name"),markers[i].getAttribute("value"));
					}		
					if (markers[i].getAttribute("name") == kontinent) {
						document.karte.kontinent.selectedIndex = document.karte.kontinent.length-1;
					}					
					if (markers[i].getAttribute("type") == 'land' && markers[i].getAttribute("kontinent") == kontinent) {
						document.karte.land.options[document.karte.land.length] = 
						new Option(markers[i].getAttribute("name"),markers[i].getAttribute("value"));
						//Land Marker setzen
						var marker = createMarker(new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng")))
						, markers[i].getAttribute("name"), markers[i].getAttribute("value"), markers[i].getAttribute("type"));
						map.addOverlay(marker);							
					}					
					if (markers[i].getAttribute("type") == 'stadt' && markers[i].getAttribute("kontinent") == kontinent) {
						document.karte.stadt.options[document.karte.stadt.length] = 
						new Option(markers[i].getAttribute("name"),markers[i].getAttribute("value"));
					}									
					break;
				  
				  case "land":
					//Karte setzen wenn Marker der richtige ist
					if (markers[i].getAttribute("name") == value) {				  
						map.setCenter(new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng"))), 
						parseInt(markers[i].getAttribute("zoom")));
					}
					if (markers[i].getAttribute("type") == 'kontinent') {
						document.karte.kontinent.options[document.karte.kontinent.length] = 
						new Option(markers[i].getAttribute("name"),markers[i].getAttribute("value"));
					}
					if (markers[i].getAttribute("name") == kontinent) {
						document.karte.kontinent.selectedIndex = document.karte.kontinent.length-1;
					}	
					if (markers[i].getAttribute("type") == 'land' && markers[i].getAttribute("kontinent") == kontinent) {
						document.karte.land.options[document.karte.land.length] = 

						new Option(markers[i].getAttribute("name"),markers[i].getAttribute("value"));
					}	
					if (markers[i].getAttribute("name") == land) {
						document.karte.land.selectedIndex = document.karte.land.length-1;
					}	
					if (markers[i].getAttribute("type") == 'stadt' && markers[i].getAttribute("land") == land) {
						document.karte.stadt.options[document.karte.stadt.length] = 
						new Option(markers[i].getAttribute("name"),markers[i].getAttribute("value"));
						//Stadt Marker setzen
						var marker = createMarker(new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng")))
						, markers[i].getAttribute("name"), markers[i].getAttribute("value"), markers[i].getAttribute("type"));
						map.addOverlay(marker);							
					}																									
					break;
				  
				  case "stadt":
					//Karte setzen wenn Marker der richtige ist
					if (markers[i].getAttribute("name") == value) {				  
						map.setCenter(new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng"))), 
						parseInt(markers[i].getAttribute("zoom")));
					}
					if (markers[i].getAttribute("type") == 'kontinent') {
						document.karte.kontinent.options[document.karte.kontinent.length] = 
						new Option(markers[i].getAttribute("name"),markers[i].getAttribute("value"));
					}
					if (markers[i].getAttribute("name") == kontinent) {
						document.karte.kontinent.selectedIndex = document.karte.kontinent.length-1;
					}
					if (markers[i].getAttribute("type") == 'land' && markers[i].getAttribute("kontinent") == kontinent) {
						document.karte.land.options[document.karte.land.length] = 
						new Option(markers[i].getAttribute("name"),markers[i].getAttribute("value"));
					}	
					if (markers[i].getAttribute("name") == land) {
						document.karte.land.selectedIndex = document.karte.land.length-1;
					}	
					if (markers[i].getAttribute("type") == 'stadt' && markers[i].getAttribute("land") == land) {
						document.karte.stadt.options[document.karte.stadt.length] = 
						new Option(markers[i].getAttribute("name"),markers[i].getAttribute("value"));
					}	
					if (markers[i].getAttribute("name") == stadt) {
						document.karte.stadt.selectedIndex = document.karte.stadt.length-1;
					}																				
					break;
				  default:
					//alert("Sie bleiben leider dumm");
				  break;
				  }
			}	
		});
	}

	
	var smavelicon = new GIcon(); 
    smavelicon.image = 'http://www.smavel.com/karten/smavel-pin.png';
    smavelicon.shadow = '';
    smavelicon.iconSize = new GSize(23, 25);
    smavelicon.shadowSize = new GSize(23, 25);
    smavelicon.iconAnchor = new GPoint(5, 25);
    smavelicon.infoWindowAnchor = new GPoint(5, 1);

    function load() {
	if (document.body_loaded != '1')
	  return setTimeout("load()", 200);
		if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		//map.setMapType(G_HYBRID_TYPE);
		//setTimeout("fill()", 2500);
		map.addControl(new GSmallZoomControl());
		fill();	
		//map.setCenter(new GLatLng(0.0,0.0), 0);
		//map.disableDragging();
		//map.disableDoubleClickZoom();
      }
    }
	
    function createMarker(point, name, value, type) {
	  var marker = new GMarker(point, smavelicon);
      var html = "<b>" + name + "</b>";
      ewindow = new EWindow(map, E_STYLE_7); map.addOverlay(ewindow);
	  GEvent.addListener(marker, 'click', function() {
		//location='gmap_reisen.php?destination='+value;
		location='http://www.smavel.com/reiseziele/'+value+'/';
      });
	  GEvent.addListener(marker, 'mouseover', function() {
		ewindow.openOnMarker(marker,html)
		//openInfoWindowHtml(marker,html)
      });

	  GEvent.addListener(marker, 'mouseout', function() {
		ewindow.hide();
      });	  
      return marker;
    }
    
// Version 0.0  Initial version 
// Version 0.1  10/10/2006 Added E_STYLE_7 
// Version 0.2  17/05/2007 Added .isHidden() and .supportsHide()
// Version 0.3  14/09/2007 added .zindex()


      function EStyle(stemImage, stemSize, boxClass, boxOffset) {
        this.stemImage = stemImage;
        this.stemSize = stemSize;
        this.boxClass = boxClass;
        this.boxOffset = boxOffset;
        //this.border = border;
        
        // Known fudge factors are:
        // Firefox (1.0.6 and 1.5)    5, -1
        // IE 6.0                     0, -1
        // Opera 8.54                 3, -1
        // Opera 9 prev               4, -1
        // Netscape (7.2, 8.0)        5, -1
        // Safari                     5, -1        
        
        var agent = navigator.userAgent.toLowerCase();
        
        var fudge = 3;  // assume Netscape if no match found
       
        if (agent.indexOf("opera") > -1) {
          fudge = 3;
        }   
        if (agent.indexOf("firefox") > -1) {
          fudge = 2;
        }   
        if (agent.indexOf("safari") > -1) {
          fudge = 5;
        }   
        if ((agent.indexOf("msie") > -1) && (agent.indexOf("opera") < 1)){
          fudge = 0;
        }
        this.fudge = fudge;
      }
      
      var E_STYLE_7 = new EStyle("http://www.smavel.com/karten/smavel-bubble.png", new GSize(22,22),  "estyle7", new GPoint(0,20));


      function EWindow(map,estyle) {
        // parameters
        this.map=map;
        this.estyle=estyle;
        // internal variables
        this.visible = false;
        // browser - specific variables
        this.ie = false;
        var agent = navigator.userAgent.toLowerCase();
        if ((agent.indexOf("msie") > -1) && (agent.indexOf("opera") < 1)){ this.ie = true} else {this.ie = false}
      } 
      
      EWindow.prototype = new GOverlay();

      EWindow.prototype.initialize = function(map) {
        var div1 = document.createElement("div");
        div1.style.position = "absolute";
        map.getPane(G_MAP_FLOAT_SHADOW_PANE).appendChild(div1);
        var div2 = document.createElement("div");
        div2.style.position = "absolute";
        div2.style.width = this.estyle.stemSize.width+"px";
        map.getPane(G_MAP_FLOAT_SHADOW_PANE).appendChild(div2);
        this.div1 = div1;
        this.div2 = div2;
      }

      EWindow.prototype.openOnMap = function(point, html, offset) {
        this.offset = offset||new GPoint(0,0);
        this.point = point;
        this.div1.innerHTML = '<div class="' + this.estyle.boxClass + '"><nobr>' + html + '</nobr></div>';
        if (this.ie && this.estyle.stemImage.toLowerCase().indexOf(".png")>-1) {
          var loader = "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+this.estyle.stemImage+"', sizingMethod='scale');";
          this.div2.innerHTML = '<div style="height:' +this.estyle.stemSize.height+ 'px; width:'+this.estyle.stemSize.width+'px; ' +loader+ '" ></div>';
        } else {
          this.div2.innerHTML = '<img src="' + this.estyle.stemImage + '" width="' + this.estyle.stemSize.width +'" height="' + this.estyle.stemSize.height +'">';
        }
        var z = GOverlay.getZIndex(this.point.lat());
        this.div1.style.zIndex = z;
        this.div2.style.zIndex = z+1;
        this.visible = true;
        this.show();
        this.redraw(true);
      }
      
      EWindow.prototype.openOnMarker = function(marker,html) {
        var vx = marker.getIcon().iconAnchor.x - marker.getIcon().infoWindowAnchor.x;
        var vy = marker.getIcon().iconAnchor.y - marker.getIcon().infoWindowAnchor.y;
        this.openOnMap(marker.getPoint(), html, new GPoint(vx,vy));
      }
      

      EWindow.prototype.redraw = function(force) {
        if (!this.visible) {return;}
        var p = this.map.fromLatLngToDivPixel(this.point);
        this.div2.style.left   = (p.x + this.offset.x) + "px";
        this.div2.style.bottom = (-p.y + this.offset.y -this.estyle.fudge) + "px";
        this.div1.style.left   = (p.x + this.offset.x + this.estyle.boxOffset.x) + "px";
        this.div1.style.bottom = (-p.y + this.offset.y + this.estyle.boxOffset.y) + "px";
      }

      EWindow.prototype.remove = function() {
        this.div1.parentNode.removeChild(this.div1);
        this.div2.parentNode.removeChild(this.div2);
        this.visible = false;
      }

      EWindow.prototype.copy = function() {
        return new EWindow(this.map, this.estyle);
      }

      EWindow.prototype.show = function() {
        this.div1.style.display="";
        this.div2.style.display="";
        this.visible = true;
      }
      
      EWindow.prototype.hide = function() {
        this.div1.style.display="none";
        this.div2.style.display="none";
        this.visible = false;
      }
      
      EWindow.prototype.isHidden = function() {
        return !this.visible;
      }
      
      EWindow.prototype.supportsHide = function() {
        return true;
      }

      EWindow.prototype.zindex = function(zin) {
        var z = GOverlay.getZIndex(this.point.lat());
        this.div1.style.zIndex = z+zin;
        this.div2.style.zIndex = z+1+zin;
      }
	//]]>