﻿
// Hilfsfunktionen
function stripPx(value) {
	if (isNumeric(value))
		return parseFloat(value);
	if (value == "") 
		return 0;
	return parseFloat(value.substring(0, value.length - 2));
}

function GetMapObject(outerDivName)
{
//	var outerDiv = document.getElementById("outerDiv");
//	return outerDiv.mapobject;
	return globalMapObj;
}

function GetSliderObject(outerDivName)
{
	var slider = document.getElementById("slider");
	return slider;
}

// Map-Klasse
var globalMapObj = null;
var req;
var requestActive=false;
var ajaxQueue=new Queue();
var lastPosX=0;
var lastPosY=0;
var lastMasstab=750000;
var scaleFactor=3780;
var arrTourstreckeKoordReal = new Array();


function GeoGravityMap()
{
    this.urlAnzeigeTest = "";
	this.poiCatVisibilityMap={};
	this.dragging = false;
	this.mouseDown = false;
	this.draggingVis = false; // Visitenkarte
	this.ktop=0;
	this.kleft=0;
	this.dragStartTop;
	this.dragStartLeft;
	this.viewportWidth = 450;
	this.viewportHeight = 450;
	this.tileSize = 256;
	this.tilesOverViewportH = parseInt(this.viewportHeight/this.tileSize+1);
	this.tilesOverViewportW = parseInt(this.viewportWidth/this.tileSize+1);
	this.dimmed=false;
	this.dimopacity=30;
	this.maxZoomLevel=4;//<%=maxZoomLevel%>;
	this.lastClickedItem="";
	this.zoomTimer=0;
	this.iPoiIdAktuell = 0;
	
	this.bZoom = false;
	
	this.center = new Array(0,0); // HH
	this.arrAdressuebergabe = "";//<%= getAufrufPositionierung() %>;
		
	this.map="hamburg";
	this.zoomlevel=3;
	this.iPoiAnzeige = 0;
	this.aufziehmodus=false;

	// Routing / Touren
	this.clickMode=0;
	this.currentTour=00;
	this.lastXpunktTour=00;
	this.currentTouren=new Array(0);
	this.currentTourenAnzahl=0;//Anzahl der zusätzlichen Touren
	this.currentTourenloeschen=true;//Flagg, damit beim zoomen nciht gelöscht wird
	this.startPoint=new Array(0,0);
	this.endPoint=new Array(0,0);
    this.iCanvasMin = 0;
    this.iCanvasMax = 0;
    this.TourPoi=false; //Sollen die POI der Tour gezeigt werden
    this.currentCenterX = 0;
    this.currentCenterY = 0;
    this.currentZoom = -1;
    
	
	// Distanzmessung
	this.measureDistanceMode=false;
	this.measureClickNum=0;
	this.measureStartX=0;
	this.measureStartY=0;
	
	// Eichung
	this.meterX = 5.295;
	this.meterY = -5.295;
	this.links = 2000000;
	this.unten = 7000000;
		
	// Übersichtskarte
//	this.omX= 1944.12219521558180;
//	this.omY=-2037.17645309382620;
//	this.oL=3245020;
//	this.oU=5930659;
//	this.oW=127;
//	this.oH=120;

    this.omX= 1328.90230642994990000;  
	this.omY=-1328.90230642994950000;
	this.oL=3236614;
	this.oU=5951415;
	this.oW=212;
	this.oH=230;
	
	// Menüeinträge
	this.iMenueHoehe = 0;
	this.bMenueLaden = true;
	this.bMenueSichtbar = false;
	this.arrMenueKat = new Array;
	this.iAnzahlKategorien = 0;
	this.strPoiKatGewaehltGesamt ="0"; // Beinhaltet alle Gewählten PoiKategorien in einem String mit ; getrennt
	
	//Mediathek
	this.iMediaid=0;
	this.Medialink= new Object();
	this.xPunktelink= new Object();
	this.Mediakatid=new Array(); //die gewählten Kategorien zwischen speichern
	this.strMediaKatGewaehltGesamt="0"; // Beinhaltet alle Gewählten PoiKategorien in einem String mit ; getrennt
	
	this.Layertype=1;// 1=POI, 2=Media --was ist gerade gewählt, wichtig beim bewegen der Karte
	this.loading=0;
	this.transLayerTimeout;
	this.transLayerTimeoutTime=3000;
	
	this.m_massstabarray=new Array(25000,50000,100000,250000,750000);
	
/*	this.arrWMS = new Array("http://geoservice.geobasis-bb.de/ows/dnm25.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=land,ort,gruen,lwas,fwas,haus,nfwas,nort&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false",
	    "http://geoservice.geobasis-bb.de/ows/dnm100.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&FORMAT=image/png&LAYERS=kreis,ozen,mzen,uzen,lwas,fwas,nozen,nmzen,nuzen,nfwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm100.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&FORMAT=image/png&LAYERS=kreis,ozen,mzen,uzen,lwas,fwas,nozen,nmzen,nuzen,nfwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm250.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=kreis,orte,korte,lwas,fwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm250.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=kreis,orte,korte,lwas,fwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false",
	    // Ebahn
	    "http://geoservice.geobasis-bb.de/ows/dnm25.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=land,ort,gruen,lwas,fwas,str,haus,nfwas,nort&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false",
	    "http://geoservice.geobasis-bb.de/ows/dnm100.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&FORMAT=image/png&LAYERS=kreis,ozen,mzen,uzen,lwas,fwas,ebahn,kstr,lstr,bstr,astr,nozen,nmzen,nuzen,nfwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm100.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&FORMAT=image/png&LAYERS=kreis,ozen,mzen,uzen,lwas,fwas,ebahn,kstr,lstr,bstr,astr,nozen,nmzen,nuzen,nfwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm250.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=kreis,orte,korte,lwas,fwas,ebahn,lstr,bstr,astr&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm250.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=kreis,orte,korte,lwas,fwas,ebahn,lstr,bstr,astr&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false",
	    // Wald
	    "http://geoservice.geobasis-bb.de/ows/dnm25.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=land,ort,wald,gruen,lwas,fwas,haus,nfwas,nort&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false",
	    "http://geoservice.geobasis-bb.de/ows/dnm100.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&FORMAT=image/png&LAYERS=kreis,wald,ozen,mzen,uzen,lwas,fwas,nozen,nmzen,nuzen,nfwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm100.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&FORMAT=image/png&LAYERS=kreis,wald,ozen,mzen,uzen,lwas,fwas,nozen,nmzen,nuzen,nfwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm250.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=kreis,wald,orte,korte,lwas,fwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm250.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=kreis,wald,orte,korte,lwas,fwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false",
	    // Wald + EBahn
	    "http://geoservice.geobasis-bb.de/ows/dnm25.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=land,ort,wald,gruen,lwas,fwas,ebahn,str,haus,nfwas,nort&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false",
	    "http://geoservice.geobasis-bb.de/ows/dnm100.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&FORMAT=image/png&LAYERS=kreis,wald,ozen,mzen,uzen,lwas,fwas,ebahn,kstr,lstr,bstr,astr,nozen,nmzen,nuzen,nfwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm100.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&FORMAT=image/png&LAYERS=kreis,wald,ozen,mzen,uzen,lwas,fwas,ebahn,kstr,lstr,bstr,astr,nozen,nmzen,nuzen,nfwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm250.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=kreis,wald,orte,korte,lwas,fwas,ebahn,lstr,bstr,astr&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm250.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=kreis,wald,orte,korte,lwas,fwas,ebahn,lstr,bstr,astr&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false");
	this.iLayer = 15; // Der normale Layer wird + diese Zahl genommen um den richtigen WMS zu bestimmen*/
	this.arrWMS = new Array("http://geoservice.geobasis-bb.de/ows/dnm25.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=land,ort,gruen,lwas,fwas,haus,nfwas,nort&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX=3{x1},{y1},3{x2},{y2}&copyright=false",
	    "http://geoservice.geobasis-bb.de/ows/dnm100.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&FORMAT=image/png&LAYERS=kreis,ozen,mzen,uzen,lwas,fwas,nozen,nmzen,nuzen,nfwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX=3{x1},{y1},3{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm100.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&FORMAT=image/png&LAYERS=kreis,ozen,mzen,uzen,lwas,fwas,nozen,nmzen,nuzen,nfwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX=3{x1},{y1},3{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm250.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=kreis,orte,korte,lwas,fwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX=3{x1},{y1},3{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm250.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=kreis,orte,korte,lwas,fwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX=3{x1},{y1},3{x2},{y2}&copyright=false",
	    // Ebahn
	    "http://geoservice.geobasis-bb.de/ows/dnm25.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=land,ort,gruen,lwas,fwas,str,haus,nfwas,nort&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX=3{x1},{y1},3{x2},{y2}&copyright=false",
	    "http://geoservice.geobasis-bb.de/ows/dnm100.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&FORMAT=image/png&LAYERS=kreis,ozen,mzen,uzen,lwas,fwas,ebahn,kstr,lstr,bstr,astr,nozen,nmzen,nuzen,nfwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX=3{x1},{y1},3{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm100.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&FORMAT=image/png&LAYERS=kreis,ozen,mzen,uzen,lwas,fwas,ebahn,kstr,lstr,bstr,astr,nozen,nmzen,nuzen,nfwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX=3{x1},{y1},3{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm250.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=kreis,orte,korte,lwas,fwas,ebahn,lstr,bstr,astr&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX=3{x1},{y1},3{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm250.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=kreis,orte,korte,lwas,fwas,ebahn,lstr,bstr,astr&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX=3{x1},{y1},3{x2},{y2}&copyright=false",
	    // Wald
	    "http://geoservice.geobasis-bb.de/ows/dnm25.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=land,ort,wald,gruen,lwas,fwas,haus,nfwas,nort&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX=3{x1},{y1},3{x2},{y2}&copyright=false",
	    "http://geoservice.geobasis-bb.de/ows/dnm100.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&FORMAT=image/png&LAYERS=kreis,wald,ozen,mzen,uzen,lwas,fwas,nozen,nmzen,nuzen,nfwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX=3{x1},{y1},3{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm100.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.1&FORMAT=image/png&LAYERS=kreis,wald,ozen,mzen,uzen,lwas,fwas,nozen,nmzen,nuzen,nfwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX=3{x1},{y1},3{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm250.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=kreis,wald,orte,korte,lwas,fwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX=3{x1},{y1},3{x2},{y2}&copyright=false", 
	    "http://geoservice.geobasis-bb.de/ows/dnm250.php?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&FORMAT=image/png&LAYERS=kreis,wald,orte,korte,lwas,fwas&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX=3{x1},{y1},3{x2},{y2}&copyright=false",
	    // Wald + EBahn
	    
	    "http://onmaps.de/ggwms3?service=wms&version=1.1.1&request=getmap&bgcolor=0xffffe6&format=image/png&transparent=false&srs=epsg:25833&layers=ATKIS-Karte_bb,ATKIS-Strassentexte&truecolor=false&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&kid=927e81135d530c473b2e155bc67791b8&styles=bb,gg",
	    "http://onmaps.de/ggwms3?service=wms&version=1.1.1&request=getmap&bgcolor=0xffffe6&format=image/png&transparent=false&srs=epsg:25833&layers=ATKIS-Karte_bb,ATKIS-Strassentexte&truecolor=false&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&kid=927e81135d530c473b2e155bc67791b8&styles=bb,gg", 
	    "http://onmaps.de/ggwms3?service=wms&version=1.1.1&request=getmap&bgcolor=0xffffe6&format=image/png&transparent=false&srs=epsg:25833&layers=ATKIS-Karte_bb,ATKIS-Strassentexte&truecolor=false&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&kid=927e81135d530c473b2e155bc67791b8&styles=bb,gg", 
	    "http://onmaps.de/ggwms3?service=wms&version=1.1.1&request=getmap&bgcolor=0xffffe6&format=image/png&transparent=false&srs=epsg:25833&layers=ATKIS-Karte_bb,ATKIS-Strassentexte&truecolor=false&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&kid=927e81135d530c473b2e155bc67791b8&styles=bb,gg", 
	    "http://onmaps.de/ggwms3?service=wms&version=1.1.1&request=getmap&bgcolor=0xffffe6&format=image/png&transparent=false&srs=epsg:25833&layers=ATKIS-Karte_bb,ATKIS-Strassentexte&truecolor=false&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&kid=927e81135d530c473b2e155bc67791b8&styles=bb,gg");
	this.iLayer = 15; // Der normale Layer wird + diese Zahl genommen um den richtigen WMS zu bestimmen
	
	// Legende
	this.iShowLegende = 0; // 0 = Legende noch nicht erstellt, 1 = Legende gerade sichtbar, 2 = Legende unsichtbar  
	// Suchfunktion
    this.m_center = new Array(0,0);
    this.m_wmsBase = "";
    this.m_mapBase = "";
    this.m_usingWMS = false;
    this.m_usingWMSUebersichtskarte = false;
    
    this.m_poiCategoryOverlayVisible = false;
    // Slider
    this.isDrag = false;
    this.yoben = 0;  
    
    this.onmapmouseclick = function(x,y,px,py) {};
    this.onmapmousemove = function(x,y) {};
    this.onpoiclick = function() {};
    this.onpoiclickSuche = function() {};
    this.onbahnhofclick = function() {};
    this.onmediaclick = function() {};
    this.onxpclick = function() {};
    this.Suchergebnis = new Array;
    this.toggleevents=function(){};
    this.setCenterById=function(){};
    
    this.homeX = 0;
    this.homeY = 0;
    this.homeScale = 0;
    this.ScaleMatchTab = new Array(25000, 50000, 100000, 250000, 750000);
    this.WMSLayers = new Array();

    this.lastX = 0;
    this.lastY = 0;
    this.lastScale = 0;
    this.arrPoiUebersichtKat = new Array();
    
    //Begrenzung der Karte        
    this.XMinLeft = 3247511; 
    this.YMinLeft = 5689001;       
    this.XMaxLeft = 3485462;   
    this.YMaxLeft = 5936686;
    this.XMinTop = 3247511;
    this.YMinTop = 5936686;     
    this.XMaxTop = 3485462;
    this.YMaxTop = 5689001;
    

// diese Funktion gibt den Abstand in m zwischen den Kartenpunkten und den Punkten,
    // die nötig sind, um jeden Punkt zu zentrieren
    this.getXCalibration=function()
    {
        var i = this.meterX * this.viewportWidth / 2;    
        return i;
    }
    
    // diese Funktion gibt den Abstand in m zwischen den Kartenpunkten und den Punkten,
    // die nötig sind, um jeden Punkt zu zentrieren
    this.getYCalibration=function()
    {
        var i = this.meterX * this.viewportHeight / 2;    
        return i;
    }
    
    // diese Funktion gibt die kleinste Pixelkoordinate für 'left' zurück
    this.getMinLeft=function()
    {
		var pixelPos = this.TransformGeoCoordToInnerDiv(this.XMinLeft-this.getXCalibration(), this.YMinLeft-this.getYCalibration());
        var i = pixelPos[0];
        return -i;
    }

    // diese Funktion gibt die größte Pixelkoordinate für 'left' zurück
    this.getMaxLeft=function()
    {
		var pixelPos = this.TransformGeoCoordToInnerDiv(this.XMaxLeft+this.getXCalibration(), this.YMaxLeft+this.getYCalibration());
        var i = pixelPos[0]-this.viewportWidth;
        return -i;
    }
    
    // diese Funktion gibt die kleinste Pixelkoordinate für 'top' zurück
    this.getMinTop=function()
    {
		var pixelPos = this.TransformGeoCoordToInnerDiv(this.XMinTop-this.getXCalibration(), this.YMinTop+this.getYCalibration());
        var i = pixelPos[1];
        return -i;
    }
    
    // diese Funktion gibt die größte Pixelkoordinate für 'top' zurück
    this.getMaxTop=function()
    {
		var pixelPos = this.TransformGeoCoordToInnerDiv(this.XMaxTop+this.getXCalibration(), this.YMaxTop-this.getYCalibration());
        var i = pixelPos[1]-this.viewportHeight;
        return -i;
    }
    
    this.checkLeftTop=function(show)
    {
        //return;
        var innerDiv = document.getElementById("innerDiv");
        var left = stripPx(innerDiv.style.left);
        var top  = stripPx(innerDiv.style.top);
        if( show ){
            alert("Left,Top in:"+left+","+top);
        }
        var leftMin = this.getMinLeft();
        var leftMax = this.getMaxLeft();
        var topMin = this.getMinTop();
        var topMax = this.getMaxTop();
        if( show ){
            alert("leftMin,leftMax,topMin,topMax:"+leftMin+","+leftMax+":"+topMin+","+topMax);
        }
        if( left < leftMax )
            left = leftMax;
        if( left > leftMin )
            left = leftMin;
        if( top < topMax )
            top = topMax;
        if( top > topMin )
            top = topMin;
        if( show ){
            alert("Left,Top out:"+left+","+top);
        }
        innerDiv.style.left = left + "px";
        innerDiv.style.top  = top + "px";
    }

    this.moveMap=function(x,y)
    {
        var innerDiv = document.getElementById("innerDiv");
        innerDiv.style.top = parseFloat(innerDiv.style.top) + y+"px";
        innerDiv.style.left = parseFloat(innerDiv.style.left) + x+"px";
        
        GetMapObject(this.id).checkLeftTop(false);
        GetMapObject(this.id).CheckTiles();
        GetMapObject(this.id).UpdateUebersichtskarte();
    }


  this.LoadTour=function(tourID)
  {
        var timestamp= new Date().getTime();
        var url = "./mapcontrol/ajax/LoadTour.aspx?zoom="+ this.bZoom +"&x="+this.links+"&y="+this.unten+"&w="+this.meterX+"&h="+this.meterY+"&tourId="+tourID+"&vW="+ theMap.viewportWidth +"&vH="+theMap.viewportHeight+"&CenterX="+this.currentCenterX+"&CenterY="+this.currentCenterY+"&zoomlevel="+this.currentZoom+"&noCache="+timestamp;
	    loadXMLDoc(url,this);
	    
	    //Tour2 entfernen wenn vorhanden 
	    if(this.currentTouren.length>0 && this.currentTourenloeschen){
	    
	        for(var i=0;i<this.currentTourenAnzahl;i++){
        
	        if(document.getElementById('tour'+this.currentTouren[i])!=null)
	        document.getElementById('tour'+this.currentTouren[i]).parentNode.removeChild(document.getElementById('tour'+this.currentTouren[i]));
	        }
	    }
        //Alles zurücksetzen	    
	    if (this.currentTourenloeschen){
	        this.currentTourenAnzahl=0;
	        this.currentTouren= new Array();
            KreuzungspunkteArray=new Array();
            Kreuzungspunkteliste="";
            this.lastXpunktTour=00;
            document.getElementById("d_informationen_reiter_kreuzungspunkte").style.display='none';
            document.getElementById("d_informationen_reiter_downloads").style.display='block';  
            this.currentCenterX=0;
            this.currentCenterY=0;
            this.currentZoom=-1;
	    }
	    

	    
	    if(this.currentTour!=tourID){
	        url = "./mapcontrol/ajax/GetTourorte.aspx?tourId="+tourID;
    	    loadXMLDoc(url,this);
    	    url = "./mapcontrol/auswertungen.aspx?name=TOUR&id="+tourID+"&Felder=3";
    	    loadXMLDoc(url,this);
    	    this.currentTour=tourID;
	    }
	    
            KreuzungspunkteAnzeigen(true);
            document.getElementById('Kreuzungspunkte').checked=true;
	    
  }
  
 this.LoadTourNoCenter=function(tourID)
  {
        var timestamp= new Date().getTime();
        var url = "./mapcontrol/ajax/LoadTour.aspx?zoom="+ this.bZoom +"&x="+this.links+"&y="+this.unten+"&w="+this.meterX+"&h="+this.meterY+"&tourId="+tourID+"&vW="+ theMap.viewportWidth +"&vH="+theMap.viewportHeight+"&CenterX="+this.currentCenterX+"&CenterY="+this.currentCenterY+"&zoomlevel="+this.currentZoom+"&noCache="+timestamp;
	    loadXMLDoc(url,this);
	    
	    //Tour2 entfernen wenn vorhanden 
	    if(this.currentTouren.length>0 && this.currentTourenloeschen){
	    
	        for(var i=0;i<this.currentTourenAnzahl;i++){
        
	        if(document.getElementById('tour'+this.currentTouren[i])!=null)
	        document.getElementById('tour'+this.currentTouren[i]).parentNode.removeChild(document.getElementById('tour'+this.currentTouren[i]));
	        }
	    }
        //Alles zurücksetzen	    
	    if (this.currentTourenloeschen){
	        this.currentTourenAnzahl=0;
	        this.currentTouren= new Array();
            KreuzungspunkteArray=new Array();
            Kreuzungspunkteliste="";
            this.lastXpunktTour=00;
            document.getElementById("d_informationen_reiter_kreuzungspunkte").style.display='none';
            document.getElementById("d_informationen_reiter_downloads").style.display='block';  
            this.currentCenterX=0;
            this.currentCenterY=0;
            this.currentZoom=-1;
	    }
	    

	    
	    if(this.currentTour!=tourID){
	        url = "./mapcontrol/ajax/GetTourorte.aspx?tourId="+tourID+"&setposition=false";
    	    loadXMLDoc(url,this);
    	    url = "./mapcontrol/auswertungen.aspx?name=TOUR&id="+tourID+"&Felder=3";
    	    loadXMLDoc(url,this);
    	    this.currentTour=tourID;
	    }
	    
            KreuzungspunkteAnzeigen(true);
            document.getElementById('Kreuzungspunkte').checked=true;
	    
  }
 
  this.LoadTourAll=function(tourID)
  {
        
        if(document.getElementById('Gesamtstreckennetz').checked){
	    var url = "./mapcontrol/ajax/LoadTourAll.aspx?x="+this.links+"&y="+this.unten+"&w="+this.meterX+"&h="+this.meterY;
	    loadXMLDoc(url,this);
	    }else{
            //alle Touren löschen	    
	        var innerDiv = document.getElementById("innerDiv");
		    var imgs = innerDiv.getElementsByTagName("div");
		    var imgsLen = imgs.length;
		    for (i = 0; i < imgsLen; i++) {
			    var id = imgs[i].getAttribute("id");
			    if (id.substr(0,4)=="tour")//Diese nicht löschen
			    {
				    innerDiv.removeChild(imgs[i]);
				    i--;
				    imgsLen = imgs.length;
			    }
		    }
	    
	    this.LoadTour(this.currentTour);
	    
	    }
        
  }
  
  
  //Prüft ob suchbegriff im Array vorhanden.
  this.isinArray=function(array,suchbegriff){
      var i_isinArray=0, inArray=false;
      
      for(i_isinArray=0;i_isinArray<array.length;i_isinArray++){
          if(array[i_isinArray]==suchbegriff){
            inArray=true;
            break;    
          }
      }
  return inArray;
  }
  
  
  //Zweite Tour laden bei Kreuzungspunkten
   this.LoadTour2=function(tourID)
  {
        var timestamp= new Date().getTime();
	    var url = "./mapcontrol/ajax/LoadTour.aspx?x="+this.links+"&y="+this.unten+"&w="+this.meterX+"&h="+this.meterY+"&tourId="+tourID+"&canvas="+tourID+"&vW="+ theMap.viewportWidth +"&vH="+theMap.viewportHeight+"&CenterX="+this.currentCenterX+"&CenterY="+this.currentCenterY+"&zoomlevel="+this.currentZoom+"&noCache="+timestamp;
	    loadXMLDoc(url,this);
	    
	    if(!this.isinArray(this.currentTouren,tourID)){
	        url = "./mapcontrol/auswertungen.aspx?name=TOUR&id="+tourID+"&Felder=3";
    	    loadXMLDoc(url,this);
    	    this.currentTouren[this.currentTourenAnzahl++]=tourID;
	    }
	    
            KreuzungspunkteAnzeigen(true);
            document.getElementById('Kreuzungspunkte').checked=true;
           // showBox('');
	        
//	        if(document.getElementById("XPContainer"+document.getElementById("Abzweigungsid").innerHTML)==null){
//	            var div=document.createElement("div");
//	            div.id="XPContainer"+document.getElementById("Abzweigungsid").innerHTML;
//	            div.innerHTML=document.getElementById("XPUeberschrift").innerHTML;
//	            div.className="XPContainer";
//	            document.getElementById("XPunkte_Container").appendChild(div);
//	            div.onclick=XPunkteClicks;
//	        }
  }
  

  this.GetTouren=function(tourID)
  {
        var url = "./mapcontrol/ajax/GetTours.aspx?tourId="+tourID;
 }
    
  this.UpdateLast=function()
  {
    var center = this.GetCenter();
    this.lastX = center[0];
    this.lastY = center[1];
    this.lastScale = parseInt(this.meterX)*scaleFactor;
    if (this.lastScale == 0)
        this.lastScale = 5000;
    this.lastScale = this.MatchScale(this.lastScale);
  }  

  this.GoLast=function()
  {
    if (this.lastX == 0)
        return;
    this.SetCenter(this.lastX,this.lastY);
    var massstabAnzeige = document.getElementById("massstabAnzeige");
    massstabAnzeige.value = this.lastScale;
    this.MassstabSetzen();
  }
  
  
    // Berechnet welcher Massstab von der Tabelle ScaleMatchTab genommen wird
  this.MatchScale=function(oldScale)
  {
    var i=0;
    var iRetval = 0;
    if (oldScale < 10000){
        iRetval = 10000;// Kleiner als 10000 geht nicht
        
    }
    oldScale = parseInt(Math.round(oldScale/5000)*5000);
    var iAbstand = 0;
    var iAbstandAlt = 0;
        
    for (i=0;i<this.ScaleMatchTab.length;i++)
    {
        // Abstand berechnen zwischen dem angeforderten Maßstab und dem Maßstab in der Tabelle
        iAbstand = parseInt(oldScale) - parseInt(this.ScaleMatchTab[i]);
        if(parseInt(iAbstand)<0)
            iAbstand = parseInt(iAbstand)*-1; // Minuswerte verhindern
        
        // Prüfen ob ein Massstab genau getroffen wurde
        if(parseInt(iAbstand) == 0){
            iRetval = parseInt(oldScale); 
            break;
        }
        else if(i!=0){ // Ermitteln welcher Maßstab am nächsten liegt, nicht machen in der ersten runde
            if(parseInt(iAbstandAlt)<parseInt(iAbstand)){
                iRetval = parseInt(this.ScaleMatchTab[i-1]);
                break;
            }
        }
        iAbstandAlt = parseInt(iAbstand);
    }
    
    // Wenn kein Scale ermittelt wurde soll der höchste rausgesucht werden
    if(iRetval==0)
        iRetval = parseInt(this.ScaleMatchTab[this.ScaleMatchTab.length-1]);
    return iRetval;

  }

  this.PrintAsPDF=function()
  {
    if (this.m_usingWMS)
    {
		var innerDiv = document.getElementById("innerDiv");
		var x1 = stripPx(innerDiv.style.left);
		var y1 = stripPx(innerDiv.style.top);

        var mapX=this.links-parseInt(x1*this.meterX);
        var mapY=this.unten-parseInt(y1*this.meterY);
        location.href="./mapcontrol/ajax/PrintMap.aspx?wms="+escape(this.m_wmsBase)+"&x="+mapX+"&y="+mapY+"&mX="+this.meterX+"&mY="+this.meterY+"&w="+this.viewportWidth+"&h="+this.viewportHeight+"&scale="+this.scale;
    }
  }
  
  this.GoHome=function()
  {
    this.UpdateLast();
    if (this.homeX != 0)
    {
        this.SetCenter(this.homeX,this.homeY);
    }
    if (this.homeScale != 0)
    {
        var massstabAnzeige = document.getElementById("massstabAnzeige");
        massstabAnzeige.value = this.homeScale;
        this.MassstabSetzen();    
    }
  }
  
  this.SetHome=function(x,y,scale)
  {
      this.homeX=x;
      this.homeY=y;
      this.homeScale=scale;
  }
      
  this.GetCenter=function()
  {
        var innerDiv = document.getElementById("innerDiv");
		ktop=stripPx(innerDiv.style.top);
		kleft=stripPx(innerDiv.style.left);

		var mapCenterPx = -(kleft - (this.viewportWidth / 2));
		var mapCenterPy = -(ktop - (this.viewportHeight / 2));

		var xneu = mapCenterPx * this.meterX + this.links;
		var yneu = mapCenterPy * this.meterY + this.unten;

		var koords = new Array(parseInt(xneu),parseInt(yneu));
		return koords;
  }
  
  this.ReloadMap=function()
  {
    var center = this.GetCenter();
    this.toggleZoom();
    this.SetCenter(center[0],center[1]);
    this.AdjustSlider();
    this.RecalcWMSOverview();
  }
  
  this.SetCenter=function(x,y)
  {
  		this.UpdateLast();
		var xpix = 0;
		var ypix = 0;
		if (this.m_usingWMS == true)
		{
		    xpix = (x - this.links) / this.meterX - this.viewportWidth / 2;
		    ypix = (y - this.unten) / this.meterY - this.viewportHeight / 2;
		} else {
		    xpix = (x - this.links) / this.meterX - this.viewportWidth / 2;
		    ypix = (y - this.unten) / this.meterY - this.viewportHeight / 2;
		}
		
		ktop = -parseInt(ypix);
		kleft = -parseInt(xpix);
		var innerDiv = document.getElementById("innerDiv");
		innerDiv.style.top = parseInt(ktop)+"px";
		innerDiv.style.left = parseInt(kleft)+"px";
		this.UpdateUebersichtskarte();        
		this.RecalcWMSOverview();
		this.CheckTiles();
  }
  
  
  function SetCenter2(x,y)
  {
		this.UpdateLast();
		var xpix = 0;
		var ypix = 0;
		if (this.m_usingWMS == true)
		{
		    xpix = (x - this.links) / this.meterX - this.viewportWidth / 2;
		    ypix = (y - this.unten) / this.meterY - this.viewportHeight / 2;
		} else {
		    xpix = (x - this.links) / this.meterX - this.viewportWidth / 2;
		    ypix = (y - this.unten) / this.meterY - this.viewportHeight / 2;
		}
		
		ktop = -parseInt(ypix);
		kleft = -parseInt(xpix);
		var innerDiv = document.getElementById("innerDiv");
		innerDiv.style.top = parseInt(ktop)+"px";
		innerDiv.style.left = parseInt(kleft)+"px";
		this.UpdateUebersichtskarte();        
		this.RecalcWMSOverview();
		this.CheckTiles();
  }
  
  this.ShowOverview=function(state)
  {
  }
  
  this.SetTileSize=function(sz)
  {
    this.tileSize = sz;
  }
    // WMS-Funktionen
  this.SetWMSBase=function(wmsBase)
  {
	this.m_usingWMS=true;
	this.m_wmsBase=wmsBase;
  }

  // WMS-Layer bereinigen und IMG's löschen  
  this.DeleteAllImages=function()
  {
        var innerDiv = document.getElementById("innerDiv");
		var imgs = innerDiv.getElementsByTagName("div");
		var imgsLen = imgs.length;
		for (i = 0; i < imgsLen; i++) {
			var id = imgs[i].getAttribute("id");
			if (id.substr(0,4)!="tour"  && id != "route")//Diese nicht löschen
			{
				innerDiv.removeChild(imgs[i]);
				i--;
				imgsLen = imgs.length;
			}
		}
  }
    
  // WMS-Funktionen für Übersichtskarte
  this.SetWMSBaseUebersichtskarte=function(bUseWms)
  {
	this.m_usingWMSUebersichtskarte = bUseWms;
  }
  
  // Fügt einen neuen Layer hinzu (z.B. Strassen) der automatisch dargestellt wird
  this.AddWMSLayer=function(wmsLayer)
  {
    this.DeleteAllImages();
	this.WMSLayers[this.WMSLayers.length]=wmsLayer;
  }
  
  // Löscht alle Layer 
  this.RemoveWMSLayers=function()
  {
    this.WMSLayers=new Array();
    this.DeleteAllImages();
  }
  
  // Sagt dem WMS wie MeterX und MeterY zu berechnen sind
  this.SetWMSResolution=function(resInMetersX,resInMetersY,reload)
  {
    if (reload)
    {
	    var center = this.GetCenter();
	    this.meterX=resInMetersX;
	    this.meterY=resInMetersY;
	    this.toggleZoom();
	    this.SetCenter(center[0],center[1]);
    } else {
        this.meterX = resInMetersX;
        this.meterY = resInMetersY;
    }
    this.AdjustSlider();
    this.RecalcWMSOverview();
  }

  // Mapfile-Funktionen
  
  // Stellt den Viewer auf eine Basiskarte um
  this.SetMapBase=function(mapBase)
  {
	this.m_usingWMS = false;
	this.m_mapBase = mapBase;
  }
  
  // Stellt den Boundingboxzoom ein
	this.ToggleBereichsZoom=function()
	{
		this.aufziehmodus=!this.aufziehmodus;
		this.measureClickNum=0;
	}
	
	// Messfunktion
	this.ToggleMeasureDistance=function()
	{
		this.measureDistanceMode = !this.measureDistanceMode;
		this.measureClickNum=0;
	}

    // Dimmen der Karte
	this.ToggleDim=function()
	{
		this.dimmed = !this.dimmed;
		
		var outerDiv = document.getElementById("outerDiv");
		if (this.dimmed)
		{
			outerDiv.style.backgroundColor="#000000";
			
		} else {
			outerDiv.style.backgroundColor="#dddddd";
		}

		var innerDiv = document.getElementById("innerDiv");
		var divs = innerDiv.getElementsByTagName("div");
		var divNum = 0;
		while (divNum < divs.length)
		{    
			var imgs = divs[divNum].getElementsByTagName("img");
			var i=0;
			for (i=0;i<imgs.length;i++)
			{
				if (imgs[i].id=="maptile")
				{
				    if (!this.dimmed)
				    {
					    imgs[i].style.filter = ""; 
					    imgs[i].style.opacity = 1; 
				    }
				    else
				    {
					    imgs[i].style.opacity = "."+this.dimopacity; 
					    imgs[i].style.filter = "Alpha(opacity="+this.dimopacity+", style=0)"; 
				    }
				} else {
				    break;
				}
			}
			divNum++;
		}
	}

    // Mausrad zum Zoomen abfragen
	this.CheckWheel=function(event)
	{
	   
//		if (event.wheelDelta > 0)
//		{
//			GetMapObject(this.id).ZoomIn();
//		} else {
//			GetMapObject(this.id).ZoomOut();
//		}
		
		
		  var delta = 0;
        if (!event) /* For IE. */
                event = window.event;
        if (event.wheelDelta) { /* IE/Opera. */
                delta = event.wheelDelta/120;
                /** In Opera 9, delta differs in sign as compared to IE.
                 */
                if (window.opera)
                        delta = -delta;
        } else if (event.detail) { /** Mozilla case. */
                /** In Mozilla, sign of delta is different than in IE.
                 * Also, delta is multiple of 3.
                 */
                delta = -event.detail/3;
        }

        if(delta<0){
            setZoom(m_zoomid+1);
            document.getElementById('massstabAnzeige').value=theMap.m_massstabarray[m_zoomid];
            theMap.SetWMSBase(theMap.arrWMS[m_zoomid+theMap.iLayer]);
            MassstabSetzen();
            
//            GetMapObject(this.id).ZoomOut();
        }else{
            setZoom(m_zoomid-1);
            document.getElementById('massstabAnzeige').value=theMap.m_massstabarray[m_zoomid];
            theMap.SetWMSBase(theMap.arrWMS[m_zoomid+theMap.iLayer]);
            MassstabSetzen();
            
//            GetMapObject(this.id).ZoomIn();
        }
		
		
	}
	
	// Setzt den Massstab
	this.MassstabSetzen = function(){
	    this.UpdateLast();
	    var strMassstab = document.getElementById("massstabAnzeige").value;
	    var dMeterX = strMassstab * (13.229/50000);
	    var center = this.GetCenter();
	    this.meterX=dMeterX;
	    this.meterY=-dMeterX;
	    this.toggleZoom();
	    this.SetCenter(center[0],center[1]);
	    this.AdjustSlider();
	    
	    this.currentTourenloeschen=false;
	        if(GetMapObject(this.id).currentTour!=00)
	            this.LoadTour(GetMapObject(this.id).currentTour);
        this.currentTourenloeschen=true;

	    if(GetMapObject(this.id).currentTourenAnzahl!=0)
	    for(var i=0;i<GetMapObject(this.id).currentTourenAnzahl;i++)
	        this.LoadTour2(GetMapObject(this.id).currentTouren[i]);
	}
	
	// Massstabstext einstellen
	this.UpdateMasstab=function()
	{
	    var masstabText = document.getElementById("masstabkm");
	    var masstabWidth = document.getElementById("masstabwidth");
	    var mWidth =0;
	    if (this.meterX*100 < 1)
	    {
	        mWidth = 1/this.meterX;
	        masstabText.innerHTML = "&nbsp;1 m";
	    } else if (this.meterX*100 < 5)
	    {
	        mWidth = 5/this.meterX;
	        masstabText.innerHTML = "&nbsp;5 m";
	    } else if (this.meterX*100 < 10)
	    {
	        mWidth = 10/this.meterX;
	        masstabText.innerHTML = "&nbsp;10 m";
	    } else if (this.meterX*100 < 50)
	    {
	        mWidth = 50/this.meterX;
	        masstabText.innerHTML = "&nbsp;50 m";
	    } else if (this.meterX*100 < 100)
	    {
	        mWidth = 100/this.meterX;
	        masstabText.innerHTML = "&nbsp;100 m";
	    } else if (this.meterX*100 < 500)
	    {
	        mWidth = 500/this.meterX;
	        masstabText.innerHTML = "&nbsp;500 m";
	    } else if (this.meterX*100 < 1000)
	    {
	        mWidth = 1000/this.meterX;
	        masstabText.innerHTML = "&nbsp;1 km";
	    } else if (this.meterX*100 < 5000)
	    {
	        mWidth = 5000/this.meterX;
	        masstabText.innerHTML = "&nbsp;5 km";
	    } else if (this.meterX*100 < 10000)
	    {
	        mWidth = 10000/this.meterX;
	        masstabText.innerHTML = "&nbsp;10 km";
	    } else if (this.meterX*100 < 50000)
	    {
	        mWidth = 50000/this.meterX;
	        masstabText.innerHTML = "&nbsp;50 km";
	    } else if (this.meterX*100 < 100000)
	    {
	        mWidth = 100000/this.meterX;
	        masstabText.innerHTML = "&nbsp;100 km";
	    } else if (this.meterX*100 < 500000)
	    {
	        mWidth = 500000/this.meterX;
	        masstabText.innerHTML = "&nbsp;500 km";
	    } else if (this.meterX*100 < 1000000)
	    {
	        mWidth = 1000000/this.meterX;
	        masstabText.innerHTML = "&nbsp;1000 km";
	    }
	    document.getElementById("massstabAnzeige").value = Math.round(this.meterX/(13.229/50000));
	    masstabWidth.style.width = mWidth+"px";
	}
  
  this.imgErrorHandlerempty=function(evt) {
  }
  
  this.imgErrorHandler=function(evt) {
  
      var src=this.src;
      this.onerror=globalMapObj.imgErrorHandlerempty;
      this.src='';
      this.src=src;
  }

  
  
  // Prüft die einzelnen gezogenen Karten
  this.CheckTiles=function()
  {
		//window.status = "Loading Tiles..."
		var newmap=false;//Wenn neue Kachel dazugekommen, dann auch Poi neu laden
		var visibleTiles = this.getVisibleTiles();
		var innerDiv = document.getElementById("innerDiv");
		var visibleTilesMap = {};
		var numTiles = visibleTiles.length;
		var i=0;
		for (i = 0; i < numTiles; i++) {
			var tileArray = visibleTiles[i];
			var tileName = "?ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel;
			visibleTilesMap[tileName] = true;
			var div = document.getElementById(tileName);
			if (!div) {
			    newmap=true;
				div = document.createElement("div");
				div.setAttribute("id", tileName);
				var iL=0;
				var numLayers = this.WMSLayers.length+1;
				// Schleife über die zuschaltbaren Layer, beim ersten Durchlauf wird der normale WMS geladen
				for (iL=0;iL<numLayers;iL++)
				{
				    var img = document.createElement("img");
    				
				    // Geokoordinaten des Bereiches ermitteln
				    var mapx1 = (tileArray[0] * this.tileSize);
				    var mapy1 = (tileArray[1] * this.tileSize);
				    var mapx2 = (tileArray[0] * this.tileSize)+this.tileSize;
				    var mapy2 = (tileArray[1] * this.tileSize)+this.tileSize;                
				    var x1T = parseInt(mapx1 * this.meterX + this.links);
				    var y1T = parseInt(mapy1 * this.meterY + this.unten);
				    var x2T = parseInt(mapx2 * this.meterX + this.links);
				    var y2T = parseInt(mapy2 * this.meterY + this.unten);
				    var x1 = Math.min(x1T,x2T);
				    var x2 = Math.max(x1T,x2T);
				    var y1 = Math.min(y1T,y2T);
				    var y2 = Math.max(y1T,y2T);
				    var scale = parseInt(this.meterX)*scaleFactor;
				    if (scale == 0)
				        scale = 25000;
				    scale = this.MatchScale(scale);

				    var wmsUrl="";
				    // Abfrage ob ein WMS benutzt wird
				    if (this.m_usingWMS)
				    {
				        // erster Durchlauf = normale Karte
				        if (iL==0)
				        {
    				        wmsUrl = this.m_wmsBase;
				        } else { // 2. oder mehrere Durchläufe = Layer die über die Karte gelegt werden laden
    				        wmsUrl = this.WMSLayers[iL-1]; // -1 weil erst beim 2. Durchlauf
				        }
				        wmsUrl = wmsUrl.replace(/{h}/g,this.tileSize+"");
				        wmsUrl = wmsUrl.replace(/{w}/g,this.tileSize+"");
				      
				        //Der WMS gibt bei 0 keine Karte zurück, daher eine Überprüfung
				        if(x1-3000000!=0)
				            wmsUrl = wmsUrl.replace(/{x1}/g,(x1-3000000)+"");
				        else
				            wmsUrl = wmsUrl.replace(/{x1}/g,(1)+"");
				            
				        wmsUrl = wmsUrl.replace(/{y1}/g,y1+"");
				        
				        //Der WMS gibt bei 0 keine Karte zurück, daher eine Überprüfung
				        if(x2-3000000!=0)
				            wmsUrl = wmsUrl.replace(/{x2}/g,(x2-3000000)+"");
				        else
				            wmsUrl = wmsUrl.replace(/{x2}/g,(1)+"");
				            
				        wmsUrl = wmsUrl.replace(/{y2}/g,y2+"");
				        wmsUrl = wmsUrl.replace(/{s}/g,scale+"");				        
				        img.src = wmsUrl;
				        
				        var geoX = x1+(x2-x1)/2;
				        var geoY = y1+(y2-y1)/2;
				        
                	    //var url='http://heatmapcollector.i-ventions.de/CollectClick.aspx?geox='+geoX+'&geoy='+geoY+"&scale="+scale+"&tourid="+this.currentTour; /*Your URL here*/
                	    var url='http://hm-stat.i-ventions.de/CollectClick.aspx?geox='+geoX+'&geoy='+geoY+"&scale="+scale+"&tourid="+this.currentTour+"&domainid=5&kundenid=5"; /*Your URL here*/
			            var img2 = document.createElement("img");
                        img2.style.width = "1px";
                        img2.style.height = "1px";
                        img2.onerror=this.imgErrorHandler;
                        img2.src = url;
                        
				        
				    } else {
    				    img.src = "GetKachel.aspx" + tileName+"&map="+map;
    				    wmsUrl="GetKachel.aspx" + tileName+"&map="+map;
				    }
    				
				    img.style.position = "absolute";
				    img.style.left = (tileArray[0] * this.tileSize) + "px";
				    img.style.top = (tileArray[1] * this.tileSize) + "px";
				    img.style.width = this.tileSize + "px";
				    img.style.height = this.tileSize + "px";   
			        img.style.zIndex = 10+iL;
			        img.onerror=this.imgErrorHandler;//Wenn Bild nicht geladen werden konnte
			        // Dimmen abfragen
				    if (!this.dimmed)
				    {
					    img.style.filter = ""; 
					    if (iL==0)
					        img.style.backgroundColor="transparent";                
				    }
				    else
				    {
				        img.style.opacity = "."+this.dimopacity; 
					    img.style.filter = "Alpha(opacity="+this.dimopacity+", style=0)"; 
					    if (iL==0)
					        img.style.backgroundColor="#000000";
				    }
					if (iL==1)
					{
					    //img.style.opacity = ".99"; 
					    //img.style.filter = "Alpha(opacity=99, style=0)"; 				    
					    //img.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+wmsUrl+"');";
					}
					img.id="maptile";
				    div.appendChild(img);
				}

/*
               if(this.Layertype==1)
				var url = "./mapcontrol/ajax/GetPOILayer.aspx?x1="+x1+"&y1="+y1+"&x2="+x2+"&y2="+y2+"&ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel+"&mx="+parseInt(this.meterX)+"&poiKatIds="+this.strPoiKatGewaehltGesamt+"&usingWMS="+this.m_usingWMS;
				
				var url = "./mapcontrol/ajax/GetMediaLayer.aspx?x1="+x1+"&y1="+y1+"&x2="+x2+"&y2="+y2+"&ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel+"&mx="+parseInt(this.meterX)+"&MediaKatIds="+this.iMediaid+"&usingWMS="+this.m_usingWMS;
				loadXMLDoc(url,this);				
*/				
				
				innerDiv.appendChild(div);
				
			}
			
		}

            if(newmap)
                PoiKategorienAnzeigen();//nur wenn neue Kachel dazugekommen
                
       //   MedienAnzeigen();
       //     KreuzungspunkteAnzeigen(false);

		var imgs = innerDiv.getElementsByTagName("div");
		var imgsLen = imgs.length;
		for (i = 0; i < imgsLen; i++) {
			var id = imgs[i].getAttribute("id");
			if (id.substr(0,4)!="tour" && id != "route")// nicht löschen
			{
				if (!visibleTilesMap[id]) {
					innerDiv.removeChild(imgs[i]);
					i--;
					imgsLen = imgs.length;
				}
			}
		}
		//window.status = "Finished."
		setPOIIcon();
  }
  
  // Zoomt raus
	this.ZoomOut=function()
	{
	    if (this.m_usingWMS == false)
	    {
		    if (this.zoomlevel<this.maxZoomLevel)
		    {
			    this.center = this.getCenter();
			    this.zoomlevel=this.zoomlevel+1;
			    this.toggleZoom();
			    this.updateEichung();
			    this.measureDistanceMode=false;
			    var dist1 = document.getElementById("dist1");
			    var dist2 = document.getElementById("dist2");
			    var distText = document.getElementById("distText");
			    distText.innerHTML="";
			    var distText2 = document.getElementById("distText2");
			    distText2.innerHTML="";
			    dist1.style.visibility="hidden";        
			    dist2.style.visibility="hidden";        
		    }
		} else {
		    if (this.meterX >= 655.36)
		        return false;
		    var center = this.GetCenter();
		    this.meterX=this.meterX*2;
		    this.meterY=this.meterY*2;
		    this.toggleZoom();
		    this.SetCenter(center[0],center[1]);
		    this.AdjustSlider();
		}
	}
	
	
	
	
	// Setzt den Zoom
	this.toggleZoom=function()
	{
		//this.updateZoomButtons();
		var innerDiv = document.getElementById("innerDiv");
		var imgs = innerDiv.getElementsByTagName("div");
		while (imgs.length > 1)
		{
			innerDiv.removeChild(imgs[0]);
		}
		//this.setMassstab();
	}

    // SliderPos geht von 0 bis 17 (18 Stufen) wird in BB nicht gebraucht
    this.ZoomBySlider=function(sliderPos)
    {
	    var center = this.GetCenter();
        this.meterX = Math.pow(2,sliderPos)/100;
        this.meterY = -Math.pow(2,sliderPos)/100;
	    this.toggleZoom();
	    this.SetCenter(center[0],center[1]);        
    }
    
    // Zoomt rein
	this.ZoomIn=function()
	{
	    if (this.m_usingWMS == false)
	    {
		    if (this.zoomlevel>0)
		    {
			    this.center = this.GetCenter();
			    this.zoomlevel=this.zoomlevel-1;
			    this.toggleZoom();
			    this.updateEichung();
			    this.measureDistanceMode=false;
			    var dist1 = document.getElementById("dist1");
			    var dist2 = document.getElementById("dist2");
			    var distText = document.getElementById("distText");
			    distText.innerHTML="";
			    var distText2 = document.getElementById("distText2");
			    distText2.innerHTML="";
			    dist1.style.visibility="hidden";        
			    dist2.style.visibility="hidden";        
		    }
		} else {
		    if (this.meterX <= 0.67)
		        return false;
		    var center = this.GetCenter();
		    this.meterX=this.meterX/2;
		    this.meterY=this.meterY/2;
		    this.toggleZoom();
		    this.SetCenter(center[0],center[1]);
		    this.AdjustSlider();
		}
		//this.updateZoomButtons();
		//this.updateZoomAnzeige(); // Dreieck verschieben
	}
	
	// Setzt die Messfunktion
	this.measureDistanceClick=function(clickLeft,clickTop)
	{
		if (!event) event = window.event;

		var innerDiv = document.getElementById("innerDiv");
		var top1 = -stripPx(innerDiv.style.top);
		var left1 = -stripPx(innerDiv.style.left);

		var outerDiv = document.getElementById("outerDiv");
		var clickY = -stripPx(outerDiv.offsetTop)+clickTop;
		var clickX = -stripPx(outerDiv.offsetLeft)+clickLeft;

		var xneu = left1+clickX;
		var yneu = top1+clickY;
		
		var dist1 = document.getElementById("dist1");
		var dist2 = document.getElementById("dist2");
		
		var ptToPxFactor = 0.75;
		if (this.measureClickNum == 0)
		{
			dist1.from.x = parseInt(clickX*ptToPxFactor);
			dist1.from.y = parseInt(clickY*ptToPxFactor);
			dist2.from.x = parseInt(clickX*ptToPxFactor);
			dist2.from.y = parseInt(clickY*ptToPxFactor);

			dist1.to.x = parseInt(clickX*ptToPxFactor);
			dist1.to.y = parseInt(clickY*ptToPxFactor);
			dist2.to.x = parseInt(clickX*ptToPxFactor);
			dist2.to.y = parseInt(clickY*ptToPxFactor); 
			this.measureClickNum++;
			this.measureStartX = xneu;
			this.measureStartY = yneu;
		} else {
			dist1.to.x = clickX*ptToPxFactor;
			dist1.to.y = clickY*ptToPxFactor;
			dist2.to.x = clickX*ptToPxFactor;
			dist2.to.y = clickY*ptToPxFactor; 
			
			var distText = document.getElementById("distText");            
			var dx = clickX - stripPx(dist1.from.x)/ptToPxFactor;
			var dy = clickY - stripPx(dist1.from.y)/ptToPxFactor;
			var entf = Math.round(Math.sqrt(Math.abs(dx*this.meterX*dx*this.meterX)+Math.abs(dy*this.meterY*dy*this.meterY)));
			if (entf < 1000)
			{
				distText.innerHTML = entf+" m";
			}
			if (entf >= 1000)
			{
				distText.innerHTML = Math.round(entf/10)*10/1000+" km";
			}
			distText.style.top = yneu+20;
			distText.style.left = xneu;

			var distText2 = document.getElementById("distText2");            
			distText2.innerHTML = distText.innerHTML;
			distText2.style.top = yneu+21;
			distText2.style.left = xneu+1;
		}
		dist1.style.visibility="visible";        
		dist2.style.visibility="visible";        
	}
	
	// Zeigt die sichtbaren teile/Kacheln
	this.getVisibleTiles=function()
  {
		var innerDiv = document.getElementById("innerDiv");
		var mapX = stripPx(innerDiv.style.left);
		var mapY = stripPx(innerDiv.style.top);
		var startX = Math.abs(Math.floor(mapX / this.tileSize))-1;//-(tilesOverViewportW-1);
		var startY = Math.abs(Math.floor(mapY / this.tileSize))-1;//-(tilesOverViewportH);
		var tilesX = Math.ceil(this.viewportWidth / this.tileSize)+1; // (this.tilesOverViewportW-1)+ (this.tilesOverViewportW);
		var tilesY = Math.ceil(this.viewportHeight / this.tileSize)+1; // (this.tilesOverViewportH-1)+ (this.tilesOverViewportH);
	
		var visibleTileArray = [];
		var counter = 0;
		for (var x = startX; x < (tilesX + startX); x++)
		{
			for (var y = startY; y < (tilesY + startY); y++)
			{
				visibleTileArray[counter++] = [x, y];
			}
		}
		return visibleTileArray;
  }   
  
  // Initalisiert die map
  this.Init=function()
  {
	var winW = 630, winH = 460;
	if (parseInt(navigator.appVersion)>3) {
	 if (navigator.appName=="Netscape") {
	  winW = window.innerWidth;
	  winH = window.innerHeight;
	 }
	 if (navigator.appName.indexOf("Microsoft")!=-1) {
	  winW = document.documentElement.offsetWidth;
	  winH = document.documentElement.offsetHeight;
	 }
	}

	this.setInnerDivSize('2000px', '1400px');
	var outerDiv = document.getElementById("outerDiv");
	outerDiv.onmousedown = this.startMove;
	outerDiv.onmousemove = this.processMove;
	outerDiv.onmouseup = this.stopMove;
	outerDiv.ondragstart = function() { return false; }
	outerDiv.ondblclick = this.doubleClickMap;
//	outerDiv.style.height=(winH-80)+"px";
	outerDiv.mapobject = this;
    globalMapObj = this;
	var innerDiv = document.getElementById("innerDiv");
	innerDiv.onmousewheel = this.CheckWheel;
	
	if (window.addEventListener)
        /** DOMMouseScroll is for mozilla. */
        innerDiv.addEventListener('DOMMouseScroll', this.CheckWheel, false);


	var legende = document.getElementById("Legende");
	legende.onmousedown = this.stopMove;//function() { return false; }
	legende.onmousemove = this.stopMove;//function() { return false; }
	legende.onmouseup = this.stopMove;//function() { return false; }
	legende.ondragstart = this.stopMove;//function() { return false; }

	var mapoverview = document.getElementById("mapoverview");
	mapoverview.onmousedown = this.startMoveOverview;
	mapoverview.onmousemove = this.processMoveOverview;
	mapoverview.onmouseup = this.stopMoveOverview;
	mapoverview.onclick = this.clickOverview;
	mapoverview.ondragstart = function() { return false; }

	//window.onresize = windowResize; 
//	this.viewportHeight = winH-80;
	
	if (this.m_usingWMS == false)
	{
	    this.updateEichung();
	}
	
//	var slider = document.getElementById("slider");
//    slider.onmousedown = this.mouseDownSlider;
//    slider.onmouseup = this.mouseUpSlider;
//    slider.onmousemove = this.mouseMoveSlider;	
//    slider.ondragstart = function() { return false; }
//    
//	var sliderContainer = document.getElementById("sliderContainer");
//    sliderContainer.onmousedown = function() { return false; }
//    sliderContainer.onmouseup = function() { return false; }
//    sliderContainer.onmousemove = function() { return false; }
//    sliderContainer.ondragstart = function() { return false; }
//	
	this.CheckTiles();
	//this.updateZoomButtons();
	this.initMenue();
  }  
    // Liest die POI-Kategorien aus
    this.initMenue = function(){
        var url = "./mapcontrol/ajax/GetPOICategories.aspx";
        loadXMLDoc(url, this);
    }
	// Transformiert lokale Koordinaten in Geokoordinaten
	this.TransformMousePosToGeoCoord=function(x,y)
	{
		var innerDiv = document.getElementById("innerDiv");
		var mtop=stripPx(innerDiv.style.top);
		var mleft=stripPx(innerDiv.style.left);
		var mapOPx = -(mleft - x);
		var mapOPy = -(mtop - y);
		var x1 = mapOPx * this.meterX + this.links; 
		var y1 = mapOPy * this.meterY + this.unten; 
		return new Array(x1,y1);
	}

  this.doubleClickMap=function(event)
  {
        if (!event) event = window.event;
        
//            var x1=event.clientX;
//            var y1=event.clientY;
            var outerDiv = document.getElementById("outerDiv");
		    var y1 = -stripPx(outerDiv.offsetTop)+event.clientY;
		    var x1 = -stripPx(outerDiv.offsetLeft)+event.clientX;
            var xy=GetMapObject(this.id).TransformMousePosToGeoCoord(x1,y1);
            
            document.getElementById("suche_koord_x").value=parseInt(xy[0]);
            document.getElementById("suche_koord_y").value=parseInt(xy[1]);
            
            document.getElementById("d_suche_koordxy").innerHTML="Koordinate: "+parseInt(xy[0])+" "+parseInt(xy[1]);   
           
            var url = "./mapcontrol/ajax/OrtbyKoord.aspx?koord_x="+parseInt(xy[0])+"&koord_y="+parseInt(xy[1]);
	        loadXMLDoc(url, theMap);
	            
            if(document.getElementById("d_menue_suche").style.display=="none")
            showSuche();
  }

  this.startMove=function(event)
  {
		// notwendig für IE
		if (!event) event = window.event;
		GetMapObject(this.id).dragStartLeft = event.clientX;
		GetMapObject(this.id).dragStartTop = event.clientY;
		GetMapObject(this.id).UpdateLast();

		if (GetMapObject(this.id).aufziehmodus)
		{
			var aufziehDiv = document.getElementById("selectbereich");
			if (GetMapObject(this.id).measureClickNum == 1)
			{
				GetMapObject(this.id).aufziehmodus=0;
				// Position, Größe und Zentrum des Bereiches hier fangen
				var x1 = stripPx(aufziehDiv.style.left);
				var y1 = stripPx(aufziehDiv.style.top);
				
				var divPos = GetMapObject(this.id).TransformMousePosToGeoCoord(x1,y1);
				
				var ax = divPos[0];
				var ay = divPos[1];
				var aw = stripPx(aufziehDiv.style.width)*GetMapObject(this.id).meterX;
				var ah = stripPx(aufziehDiv.style.height)*GetMapObject(this.id).meterY;
				
				var outerDiv = document.getElementById("outerDiv");
				var pw = stripPx(outerDiv.offsetWidth);
				var ph = stripPx(outerDiv.offsetHeight);
				
				//if (aw < 0)
				    //aw=0;
				if (pw < 0)
				    pw=0;
				//if (ah < 0)
				    //ah=0;
				if (ph < 0)
				    ph=0;
				
				if (GetMapObject(this.id).m_usingWMS==true)
				{
				    // WMS Modus
				    var centerX = divPos[0]+aw/2;
				    var centerY = divPos[1]+ah/2;
				    var meterNeu = Math.max(pw/stripPx(aufziehDiv.style.width),ph/stripPx(aufziehDiv.style.height));
				    GetMapObject(this.id).meterX = GetMapObject(this.id).meterX/meterNeu;
				    GetMapObject(this.id).meterY = GetMapObject(this.id).meterY/meterNeu;
				    GetMapObject(this.id).toggleZoom();
				    GetMapObject(this.id).SetCenter(centerX,centerY);
				    GetMapObject(this.id).AdjustSlider();
				} else {
				    loadXMLDoc("./GetBestMapForArea.aspx?getMapData1&baseMap="+GetMapObject(this.id).map+"&ax="+ax+"&ay="+ay+"&aw="+aw+"&ah="+ah+"&pw="+pw+"&ph="+ph,GetMapObject(this.id));
				}
				// Karte pos, Bereich dichtmachen
				aufziehDiv.style.width="0px";
				aufziehDiv.style.height="0px";
				aufziehDiv.style.left="-100px";
				aufziehDiv.style.top="-100px";
				
			}
			if (GetMapObject(this.id).measureClickNum == 0)
			{
				GetMapObject(this.id).measureClickNum++;
				aufziehDiv.style.width="0px";
				aufziehDiv.style.height="0px";
			} 
		}
		else if (!GetMapObject(this.id).measureDistanceMode)
		{
			var innerDiv = document.getElementById("innerDiv");
			innerDiv.style.cursor = "move";
			GetMapObject(this.id).ktop = stripPx(innerDiv.style.top);
			if (innerDiv.style.top == "")
				GetMapObject(this.id).ktop = 0;
			
			GetMapObject(this.id).kleft = stripPx(innerDiv.style.left);
			if (innerDiv.style.left == "")
				GetMapObject(this.id).kleft = 0;
			
			GetMapObject(this.id).mouseDown = true;
		} else {
			if (GetMapObject(this.id).measureClickNum == 0)
			{
				GetMapObject(this.id).measureDistanceClick(GetMapObject(this.id).dragStartLeft,GetMapObject(this.id).dragStartTop);
			}
			else
			{
				GetMapObject(this.id).measureDistanceMode=false;
				var dist1 = document.getElementById("dist1");
				var dist2 = document.getElementById("dist2");
				var distText = document.getElementById("distText");
				distText.innerHTML="";
				var distText2 = document.getElementById("distText2");
				distText2.innerHTML="";
				dist1.style.visibility="hidden";        
				dist2.style.visibility="hidden";        
			}
		}
		return false;
	}
	
  this.processMove=function(event)
  {		
		if (!event) event = window.event; // für IE
		var x1 = event.clientX;
		var y1 = event.clientY;
		    
    	var outerDiv = document.getElementById("outerDiv");
		if (GetMapObject(this.id).measureDistanceMode)
		{
			if (GetMapObject(this.id).measureClickNum==1)
			{
				GetMapObject(this.id).measureDistanceClick(event.clientX,event.clientY);
			}
		} else if (GetMapObject(this.id).aufziehmodus)
		{
			var innerDiv = document.getElementById("innerDiv");
			var top1 = 0;//-stripPx(innerDiv.style.top);
			var left1 = 0;//-stripPx(innerDiv.style.left);

			var clickY = -stripPx(outerDiv.offsetTop)+event.clientY;
			var clickX = -stripPx(outerDiv.offsetLeft)+event.clientX;

			var xneu = left1+clickX;
			var yneu = top1+clickY;
			var aufziehDiv = document.getElementById("selectbereich");
			if (GetMapObject(this.id).measureClickNum==0)
			{
				aufziehDiv.style.left=xneu+"px";
				aufziehDiv.style.top=yneu+"px";
			}
			if (GetMapObject(this.id).measureClickNum==1)
			{
				var l = stripPx(aufziehDiv.style.left);
				var t = stripPx(aufziehDiv.style.top);
				var w = xneu - l;
				var h = yneu - t;
				if (h < 0)
				    h = 0;
				if (w < 0)
				    w = 0;
				aufziehDiv.style.width=w+"px";
				aufziehDiv.style.height=h+"px";
			}
		} else {
		    if (GetMapObject(this.id).mouseDown == true)
		    {
		        GetMapObject(this.id).dragging = true;
		    } else {
		        return false;
		    }

		    // Slider-Moves
    		if (GetMapObject(this.id).isDrag == true)
	    	    return false;			
			var innerDiv = document.getElementById("innerDiv");
			if (GetMapObject(this.id).dragging) {
			   innerDiv.style.top = parseFloat(GetMapObject(this.id).ktop) + (event.clientY - GetMapObject(this.id).dragStartTop)+"px";
			   innerDiv.style.left = parseFloat(GetMapObject(this.id).kleft) + (event.clientX - GetMapObject(this.id).dragStartLeft)+"px";
//			   GetMapObject(this.id).CheckTiles();
			   var uebersichtskarte = document.getElementById("uebersichtskarte");
			   GetMapObject(this.id).checkLeftTop(false);
			   GetMapObject(this.id).UpdateUebersichtskarte();
			   //if (uebersichtskarte.style.visibility=="visible")
			   //{
				 // GetMapObject(this.id).UpdateUebersichtskarte();
			   //}
			}
		}     
	}

	this.stopMove = function(event)
	{
//	debugger;
		if (!event) event = window.event; // für IE
		var a = 1;
		var x1 = event.clientX;
		var y1 = event.clientY;
		var xyPos = GetMapObject(this.id).TransformMousePosToGeoCoord(x1,y1);
		GetMapObject(this.id).onmapmousemove(xyPos[0],xyPos[1]);   
        GetMapObject(this.id).mouseDown=false;
		if (GetMapObject(this.id).measureDistanceMode==true)
		{
		    GetMapObject(this.id).dragging = false;
		    return false;
		} else if (GetMapObject(this.id).aufziehmodus==true)
		{
		    GetMapObject(this.id).dragging = false;
		    return false;
		}
		if (GetMapObject(this.id).dragging == false)
		{
		    var x1 = event.clientX;
		    var y1 = event.clientY;
		    var xyPos = GetMapObject(this.id).TransformMousePosToGeoCoord(x1,y1);
		    GetMapObject(this.id).onmapmouseclick(xyPos[0],xyPos[1],x1,y1);   
		}
		var innerDiv = document.getElementById("innerDiv");
		innerDiv.style.cursor = "";
		GetMapObject(this.id).dragging=false;
		GetMapObject(this.id).CheckTiles();
	}
	
	this.startMoveOverview=function(event)
	{
		return false;
	}
	
	this.stopMoveOverview=function(event)
	{
		return false;
	}

	this.processMoveOverview=function(event)
	{
		return false;
	}
	
	this.clickOverview=function(event)
	{
        if(GetMapObject(this.id).m_usingWMSUebersichtskarte==false)
        {
            if (!event) event = window.event;
            var overview = document.getElementById("mapoverview");
            var mtop = event.clientY-stripPx(overview.offsetTop)-stripPx(overview.offsetParent.offsetTop)-stripPx(overview.offsetParent.offsetParent.offsetTop);
            var mleft = event.clientX-stripPx(overview.offsetLeft)-stripPx(overview.offsetParent.offsetLeft)-stripPx(overview.offsetParent.offsetParent.offsetLeft);

//            var mtop;
//            var mleft;

//            if (!event){
//            event = window.event;
//                mtop = event.offsetY;
//                mleft = event.offsetX;
//            }else{
//                mtop = event.layerY;
//                mleft = event.layerX;
//            }
            
            var innerDiv = document.getElementById("innerDiv");
            var x1 = mleft * GetMapObject(this.id).omX + GetMapObject(this.id).oL; 
            var y1 = mtop * GetMapObject(this.id).omY + GetMapObject(this.id).oU; 
            theMap.SetCenter(x1,y1);
            return false;
        }
        else{
		    
		    var mtop;
            var mleft;

            if (!event){
            event = window.event;
                mtop = event.offsetY;
                mleft = event.offsetX;
            }else{
                mtop = event.layerY;
                mleft = event.layerX;
            }
		    
		    var innerDiv = document.getElementById("innerDiv");
		    var x1 = mleft * GetMapObject(this.parentElement.parentElement.id).omX + GetMapObject(this.parentElement.parentElement.id).oL; 
		    var y1 = mtop * GetMapObject(this.parentElement.parentElement.id).omY + GetMapObject(this.parentElement.parentElement.id).oU; 
		    GetMapObject(this.parentElement.parentElement.id).SetCenter(x1,y1);
		    return false;
		}
	}

	this.RecalcWMSOverview=function()
	{
        if (this.m_usingWMS && this.m_usingWMSUebersichtskarte)
		{
    		var x1 = this.GetCenter()[0];
    		var y1 = this.GetCenter()[1];
    		var outerdiv = document.getElementById("outerDiv");
            var scale = parseInt(this.meterX*6)*scaleFactor;
			if (scale == 0)
			    scale = 5000;
    		scale = this.MatchScale(scale);

			var meterX = this.meterX;
			var meterY = this.meterY;
		    var wmsUrl = this.m_wmsBase;
		    
		    this.omX = meterX*24*2;
		    this.omY = meterY*24*2;
		    this.oL = x1-meterX*24*180;
		    this.oU = y1-meterY*24*120;
		    
		    wmsUrl = wmsUrl.replace(/{h}/g,"120");
		    wmsUrl = wmsUrl.replace(/{w}/g,"180");
		    wmsUrl = wmsUrl.replace(/{x1}/g,(x1-meterX*24*180-3000000)+"");
		    wmsUrl = wmsUrl.replace(/{y1}/g,y1+meterY*24*120+"");
		    wmsUrl = wmsUrl.replace(/{x2}/g,(x1+meterX*24*180-3000000)+"");
		    wmsUrl = wmsUrl.replace(/{y2}/g,y1-meterY*24*120+"");
		    wmsUrl = wmsUrl.replace(/{s}/g,scale+"");
		    this.UpdateUebersichtskarte();
		}
		else{
		
		}
	}
	
	this.setInnerDivSize=function(width, height) 
	{
		var innerDiv = document.getElementById("innerDiv");
		innerDiv.style.width = width;
		innerDiv.style.height = height;
	}
	
	// Slider
    this.mouseDownSlider=function(e) {
       GetMapObject(this.parentElement.parentElement.ID).isDrag = true;
       var ty = parseInt(this.style.top);
       if (document.all) {
          GetMapObject(this.parentElement.parentElement.ID).yoben = event.clientY + document.body.scrollTop - ty;
       }
       else {
          GetMapObject(this.parentElement.parentElement.ID).yoben = e.pageY - ty;
       }
       return false;
    }

    this.mouseUpSlider=function(e)
    {
       GetMapObject(this.parentElement.parentElement.ID).isDrag = false;
       if (document.all)
       {
           y = event.clientY + document.body.scrollTop;
       } else {
           y = e.pageY;
       }
       y = Math.max(0, Math.min(y-18 - GetMapObject(this.parentElement.parentElement.id).yoben, 80));
       y = parseInt(y/8);
       GetMapObject(this.parentElement.parentElement.ID).ZoomBySlider(y+6);
       GetMapObject(this.parentElement.parentElement.ID).UpdateMasstab();
       return false;
    }

    // Slider verändern.
    this.mouseMoveSlider=function(e) {
       if (GetMapObject(this.parentElement.parentElement.ID).isDrag) {
          if (document.all) {
             y = event.clientY + document.body.scrollTop;
          }
          else {
             y = e.pageY;
          }
          y = Math.max(0, Math.min(y-18 - GetMapObject(this.parentElement.parentElement.id).yoben, 80));
          y = parseInt(y/8)*8;
          this.style.top = y+18;
       }
       return false;
    }	
    
    this.AdjustSlider=function()
    {
//        var sliderPos = parseInt(Math.log(this.meterX*100)/(Math.log(2))-6)*8;
//        var slider = document.getElementById("slider");
//        slider.style.top = sliderPos+18;
        this.UpdateMasstab();
        this.RecalcWMSOverview();
    }
    
    this.UpdateUebersichtskarte=function()
	{        
		var myArea = document.getElementById("myarea");

		var innerDiv = document.getElementById("innerDiv");
		var mtop=stripPx(innerDiv.style.top);
		var mleft=stripPx(innerDiv.style.left);
		
		var mapOPx = -(mleft);
		var mapOPy = -(mtop);
		var x1 = mapOPx * this.meterX + this.links;   // oben links
		var y1 = mapOPy * this.meterY + this.unten;   // --- "" ---

		mapOPx = -mleft+this.viewportWidth;
		mapOPy = -mtop+this.viewportHeight;
		var x2 = mapOPx * this.meterX + this.links;   // unten links
		var y2 = mapOPy * this.meterY + this.unten;   // --- "" ---

		// xy1/2 enthalten jetzt die Geokoordinaten des sichtbaren Bereiches

		var xpix = (x1 - this.oL) / this.omX;
		var ypix = (y1 - this.oU) / this.omY;
		mtop = this.oH-parseInt(ypix); 
		mleft = this.oW-parseInt(xpix);        

		xpix = (x2 - this.oL) / this.omX;
		ypix = (y2 - this.oU) / this.omY;
		var top1 = this.oH-parseInt(ypix);
		var left1 = this.oW-parseInt(xpix);        

		var oheight = parseInt(mtop)-parseInt(top1);
		var owidth = parseInt(mleft)-parseInt(left1);

		var myBottom = parseInt(mtop)-parseInt(oheight);
		var myLeft = this.oW-(parseInt(mleft));
		myArea.style.bottom = myBottom+"px";
		myArea.style.left = myLeft+"px";

		myArea.style.height = oheight+"px";
		myArea.style.width = owidth+"px";
		
		if ((myLeft < 0) || (myBottom+oheight < 0))
		{
		    this.RecalcWMSOverview();
		}
		if ((myLeft+owidth > 180) || (myBottom+oheight > 120))
		{
		    this.RecalcWMSOverview();
		}
	}
	
	// Setzt einen Punkt und zentriert den Pro
	this.SetFixedPOIAt=function(x,y, bild, pid)
	{
	
		var pixelPos = this.TransformGeoCoordToInnerDiv(x,y);
		var innerDiv = document.getElementById("innerDiv");
		if (innerDiv != null)
		{
			var img2=document.getElementById(pid);
			if (img2 == null)
			{
				img2 = document.createElement("img");
				innerDiv.appendChild(img2);
			}
			img2.src = bild;
			img2.style.position = "absolute";
			img2.style.left = pixelPos[0]-19 + "px";
			img2.style.top = pixelPos[1]-25 + "px";
			img2.style.cursor="pointer";
			img2.style.zIndex=100;
/*			if (bild=="ziel.gif")
				img2.alt="Ziel";
			if (bild=="start.gif")
				img2.alt="Startpunkt";*/
			img2.id=pid;
		}
	}
		
	// Transformiert lokale Koordinaten in Geokoordinaten
	this.TransformGeoCoordToInnerDiv=function(x,y)
	{
		var innerDiv = document.getElementById("innerDiv");
		var x1=x-this.links;
		x1=parseInt(x1/this.meterX);
		var y1=y-this.unten;
		y1=parseInt(y1/this.meterY);
		return new Array(x1,y1);
	  }		
	
	this.AdressenSuchen=function(argOrt, argStrasseBegriff, argHausNr){
	    var url = "./mapcontrol/ajax/GetAdresssuche.aspx?Ort="+escape(argOrt)+"&StrasseBegriff="+escape(argStrasseBegriff)+"&HausNr="+escape(argHausNr);
        loadXMLDoc(url, this);
        
	}
	this.ShowSuchergebnis=function(){
        //document.getElementById("myPanel").style.visibility="hidden";
        var divSuche = document.getElementById("SuchergebnisAnzeige");
        var strTmp = "<div style=\"position:absolute; top:-1px; left:384px; width:10px; border:solid 1px red; vertical-align:middle; text-align:center; cursor:hand; cursor:pointer;\" onclick=\"document.getElementById('SuchergebnisAnzeige').style.visibility='hidden';\">X</div><b>Suchergebnisse</b><br>Ihre Anfrage hat mehrere Ergebnisse zurückgeliefert<br>";
        var i = 0;
        var strTmpArt = "";
        var strStrasseTmp = "";
        var strKoordX = "";
        var strKoordY = "";
        while(i<this.arrSuche.length){
            // Gefundene POI
            if(i==0){
                strKoordX = this.arrSuche[i][2];
                strKoordY = this.arrSuche[i][3];
            }
            if((this.arrSuche[i][0]=="poi1" || this.arrSuche[i][0]=="poi2") && strTmpArt!="poi"){
                strTmpArt = "poi";
                strTmp+= "<br><i><b>Thematisches Ergebnis</b></i>";
                strTmp+="<ul style='margin:0px; padding-left:18px;'>";
            }
            // Gefundene Strassen und Hausnummern
            else if((this.arrSuche[i][0]=="strasse1_hsNr" || this.arrSuche[i][0]=="strasse2_hsNr") && strTmpArt!="adressen"){
                if(i!=0)
                   strTmp += "</ul>";
                strTmpArt = "adressen";
                strTmp+= "<br><i><b>Kartographisches Ergebnis:</b></i>";
                strTmp+="<ul style='margin:0px; padding-left:18px;'>";
            }
            else{
                
            }
            
            // Es werden POI angezeigt
            if(this.arrSuche[i][0]=="poi1" || this.arrSuche[i][0]=="poi2"){
                strTmp += "<li class='Suchergebnisliste' onclick='theMap.centerSuche(\""+this.arrSuche[i][2]+"\", \""+this.arrSuche[i][3]+"\");'>"+this.arrSuche[i][1]+"</li>";
            }
            // Es werden Strassen und Hausnummern angezeigt
            else if(this.arrSuche[i][0]=="strasse1_hsNr" || this.arrSuche[i][0]=="strasse2_hsNr" || this.arrSuche[i][0]=="ort"){
                if(strStrasseTmp!=this.arrSuche[i][4]){
                    if(strStrasseTmp!="")
                        strTmp += "</select></td></tr></table></li>";                
                    if(this.arrSuche[i][5]!=""){
                        strTmp += "<li class='Suchergebnisliste'><table width='300' cellpadding='0' cellspacing='0'><tr valign='bottom'><td onclick='theMap.setCenterHausNr(\"selAdresssuche"+i+"\", \""+this.arrSuche[i][2]+"\", \""+this.arrSuche[i][3]+"\")'>"+this.arrSuche[i][4]+"</td><td align='right'>";
                        strTmp += " <select class='Hausnummersuche' style='width:80px' id='selAdresssuche"+i+"' onchange='theMap.setCenterHausNr(\"selAdresssuche"+i+"\", \"\", \"\");'>";
                    }
                    else{ // Keine Hausnummer
                        strTmp += "<li class='Suchergebnisliste'><table width='300' cellpadding='0' cellspacing='0'><tr valign='bottom'><td onclick='theMap.setCenterHausNr(\"\", \""+this.arrSuche[i][2]+"\", \""+this.arrSuche[i][3]+"\")'>"+this.arrSuche[i][4]+"</td><td align='right'>";
                    }
                }
                if(this.arrSuche[i][5]!="")
                    strTmp += "<option value='"+this.arrSuche[i][2]+";"+this.arrSuche[i][3]+"'>"+this.arrSuche[i][5]+"</option>";
                strStrasseTmp = this.arrSuche[i][4];
            }
            i++;
        }
        if(strStrasseTmp!=""){
            strTmp += "</select></td></tr></table></li></ul>";
            if(strKoordX != "") // es wurde nur eine einzige Strasse gefunden
                this.centerSuche(strKoordX, strKoordY);
        }
        divSuche.innerHTML = strTmp; // Feld füllen
        divSuche.style.visibility="visible";
        
        
    }
    
    this.setCenterHausNr = function(argValue, argKoordX, argKoordY){
        if(argValue==""){
            this.centerSuche(argKoordX, argKoordY);
        }
        else{
            var strKoord = document.getElementById(argValue).value;
            if(strKoord!=""){
                var arrKoordinaten = strKoord.split(';');
                this.centerSuche(arrKoordinaten[0], arrKoordinaten[1]);
            }
            else{
                this.centerSuche(argKoordX, argKoordY);
            }
        }
    }
    
    this.centerSuche = function(x, y){
        this.arrSucheGewaehlt = new Array(x, y);
        this.SetCenter(x, y);
        var punkt = new Array(x, y);
        this.setFixedSucheAt(punkt, "pointer.gif");
    }

	// Setzt den Pointer der Suche und zentriert den Browser
	this.setFixedSucheAt = function(punkt, bild)
	{
		var pixelPos = this.TransformGeoCoordToInnerDiv(punkt[0],punkt[1]);
		var innerDiv = document.getElementById("innerDiv");
		if (innerDiv != null)
		{
			var img2=document.getElementById(bild);
			if (img2 == null)
			{
				img2 = document.createElement("img");
				innerDiv.appendChild(img2);
			}
			img2.src = "mapcontrol/images/"+bild;
			img2.style.position = "absolute";
			img2.style.left = pixelPos[0]-19 + "px";
			img2.style.top = pixelPos[1]-25 + "px";
			img2.style.cursor="pointer";
			img2.style.zIndex=10;
			if (bild=="ziel.gif")
				img2.alt="Ziel";
			if (bild=="start.gif")
				img2.alt="Startpunkt";
			img2.id=bild;
		}
	}

	// Holt die POIs zu den gewählten Kategorien
	this.checkTilesPoikatChange = function() {
	
	//debugger;
	     
//	      var strPoiKatGewaehltGesamt2="";

//        for(var i = 0; i<arrMenueKat2.length; i++){
//            if(arrMenueKat2[i][4]==true){
//			    if(strPoiKatGewaehltGesamt2=="")
//				    strPoiKatGewaehltGesamt2=arrMenueKat2[i][1];
//			    else
//				    strPoiKatGewaehltGesamt2 += ";"+arrMenueKat2[i][1];
//            }
//        }
	     
		window.status = "Loading Tiles..."
	
		var visibleTiles = this.getVisibleTiles();
		this.loading=visibleTiles.length;
		var innerDiv = document.getElementById("innerDiv");
		var visibleTilesMap = {};
		
		    for (i = 0; i < visibleTiles.length ; i++) {
			    var tileArray = visibleTiles[i];
			    var tileName = "?ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel;
    //			if(this.strPoiKatGewaehltGesamt==""){
				    var div = document.getElementById(tileName);
				    if (div) {
					    var imgs = div.getElementsByTagName("img");
					    while (imgs.length > 1)
					    {
					        if (imgs[imgs.length-1].id != "maptile")
						        div.removeChild(imgs[imgs.length-1]);
						    else
						        break;
					    }
				    }
    //			}

       

       if(this.strPoiKatGewaehltGesamt!="" || this.TourPoi==true || suchePOIids!=""){ 
       
       	document.getElementById('transparentLayer').style.visibility='visible';
		this.transLayerTimeout=window.setTimeout("document.getElementById('transparentLayer').style.visibility='hidden';", this.transLayerTimeoutTime);
			visibleTilesMap[tileName] = true;
			var mapx1 = (tileArray[0] * this.tileSize);
			var mapy1 = (tileArray[1] * this.tileSize);
			var mapx2 = (tileArray[0] * this.tileSize)+this.tileSize;
			var mapy2 = (tileArray[1] * this.tileSize)+this.tileSize;
			
			var x1 = parseInt(mapx1 * this.meterX + this.links);
			var y1 = parseInt(mapy1 * this.meterY + this.unten);

			var x2 = parseInt(mapx2 * this.meterX + this.links);
			var y2 = parseInt(mapy2 * this.meterY + this.unten);
			
			var url = "./mapcontrol/ajax/GetPOILayer.aspx?x1="+x1+"&y1="+y1+"&x2="+x2+"&y2="+y2+"&ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel+"&mx="+parseInt(this.meterX)+"&poiKatIds="+this.strPoiKatGewaehltGesamt+"&usingWMS="+this.m_usingWMS+"&suchePoiids="+suchePOIids+"&poikatsuche=&sucheAktiv="+sucheAktiv;
			if(this.TourPoi==true)
			url+="&Tourid="+this.currentTour;
			loadXMLDoc(url, this);
			
		}
		}
        setPOIIcon();
		window.status = "Finished."
	}
	
	
	
	
	
	
		// Holt die Medien zu den gewählten Kategorien
	this.getMedia = function() {
		window.status = "Loading Media..."
		
		var visibleTiles = this.getVisibleTiles();
		
		this.loading=visibleTiles.length;
		var innerDiv = document.getElementById("innerDiv");
		var visibleTilesMap = {};
		for (i = 0; i < visibleTiles.length & this.iMediaid!=""; i++) {
			var tileArray = visibleTiles[i];
			var tileName = "?ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel;

				var div = document.getElementById(tileName);

			visibleTilesMap[tileName] = true;
			var mapx1 = (tileArray[0] * this.tileSize);
			var mapy1 = (tileArray[1] * this.tileSize);
			var mapx2 = (tileArray[0] * this.tileSize)+this.tileSize;
			var mapy2 = (tileArray[1] * this.tileSize)+this.tileSize;
			
			var x1 = parseInt(mapx1 * this.meterX + this.links);
			var y1 = parseInt(mapy1 * this.meterY + this.unten);

			var x2 = parseInt(mapx2 * this.meterX + this.links);
			var y2 = parseInt(mapy2 * this.meterY + this.unten);
			
			document.getElementById('transparentLayer').style.visibility='visible';
		    this.transLayerTimeout=window.setTimeout("document.getElementById('transparentLayer').style.visibility='hidden';", this.transLayerTimeoutTime);
			
			var url = "./mapcontrol/ajax/GetMediaLayer.aspx?x1="+x1+"&y1="+y1+"&x2="+x2+"&y2="+y2+"&ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel+"&mx="+parseInt(this.meterX)+"&MediaKatIds="+this.iMediaid+"&usingWMS="+this.m_usingWMS;
			loadXMLDoc(url, theMap);
		}

		window.status = "Finished."
	}
		
		// Holt die Medien zu den gewählten Kategorien
	this.getBahnhof = function() {
		window.status = "Loading Bahnhöfe..."
		
		var visibleTiles = this.getVisibleTiles();
		this.loading=visibleTiles.length;
		var innerDiv = document.getElementById("innerDiv");
		var visibleTilesMap = {};
		for (i = 0; i < visibleTiles.length;i++) {
			var tileArray = visibleTiles[i];
			var tileName = "?ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel;

				var div = document.getElementById(tileName);

			visibleTilesMap[tileName] = true;
			var mapx1 = (tileArray[0] * this.tileSize);
			var mapy1 = (tileArray[1] * this.tileSize);
			var mapx2 = (tileArray[0] * this.tileSize)+this.tileSize;
			var mapy2 = (tileArray[1] * this.tileSize)+this.tileSize;
			
			var x1 = parseInt(mapx1 * this.meterX + this.links);
			var y1 = parseInt(mapy1 * this.meterY + this.unten);

			var x2 = parseInt(mapx2 * this.meterX + this.links);
			var y2 = parseInt(mapy2 * this.meterY + this.unten);
			document.getElementById('transparentLayer').style.visibility='visible';
		this.transLayerTimeout=window.setTimeout("document.getElementById('transparentLayer').style.visibility='hidden';", this.transLayerTimeoutTime);
		
			var url = "./mapcontrol/ajax/GetBahnhofLayer.aspx?x1="+x1+"&y1="+y1+"&x2="+x2+"&y2="+y2+"&ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel+"&mx="+parseInt(this.meterX)+"&usingWMS="+this.m_usingWMS;
			loadXMLDoc(url, this);
		}

		window.status = "Finished."
	}		
		
		
    // Holt die Kreuzungspunkte zu der gewählten Tour
	this.getKreuzungspunkte = function(deleteIcons) {
		window.status = "Loading Kreuzungspunkte...";
		
		var visibleTiles = this.getVisibleTiles();
		this.loading=visibleTiles.length;
		var innerDiv = document.getElementById("innerDiv");
		var visibleTilesMap = {};
		for (i = 0; i < visibleTiles.length; i++) {
			var tileArray = visibleTiles[i];
			var tileName = "?ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel;

				var div = document.getElementById(tileName);

            if(deleteIcons){
				if (div) {
					var imgs = div.getElementsByTagName("img");
					while (imgs.length > 1)
					{
					    if (imgs[imgs.length-1].id != "maptile" && imgs[imgs.length-1].id.indexOf("xp")!=-1)
						    div.removeChild(imgs[imgs.length-1]);
						else
						    break;
					}
				}
            }
			visibleTilesMap[tileName] = true;
			var mapx1 = (tileArray[0] * this.tileSize);
			var mapy1 = (tileArray[1] * this.tileSize);
			var mapx2 = (tileArray[0] * this.tileSize)+this.tileSize;
			var mapy2 = (tileArray[1] * this.tileSize)+this.tileSize;
			
			var x1 = parseInt(mapx1 * this.meterX + this.links);
			var y1 = parseInt(mapy1 * this.meterY + this.unten);

			var x2 = parseInt(mapx2 * this.meterX + this.links);
			var y2 = parseInt(mapy2 * this.meterY + this.unten);
			var weiteretouren="";
			if(this.currentTourenAnzahl>0){
			    for(var j=0;j<this.currentTourenAnzahl;j++){
//    			var url = "./mapcontrol/ajax/GetKreuzungspunkteLayer.aspx?x1="+x1+"&y1="+y1+"&x2="+x2+"&y2="+y2+"&ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel+"&mx="+parseInt(this.meterX)+"&tourid="+this.currentTouren[j]+"&usingWMS="+this.m_usingWMS;
//			    loadXMLDoc(url, this);

		         weiteretouren+=";"+this.currentTouren[j];
			    }	
            		
            
			}
			
			if(this.currentTour!="" && this.currentTour!=0){
			document.getElementById('transparentLayer').style.visibility='visible';
		    this.transLayerTimeout=window.setTimeout("document.getElementById('transparentLayer').style.visibility='hidden';", this.transLayerTimeoutTime);
		
			var url = "./mapcontrol/ajax/GetKreuzungspunkteLayer.aspx?x1="+x1+"&y1="+y1+"&x2="+x2+"&y2="+y2+"&ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel+"&mx="+parseInt(this.meterX)+"&tourid="+this.currentTour+""+weiteretouren+"&usingWMS="+this.m_usingWMS;
			loadXMLDoc(url, this);
			}

		}

		window.status = "Finished."
	}
	
	
	
	
	this.setPoiKat = function(argPoiKat, argAusgeklappt){
		var bEinstellung = true;
		this.strPoiKatGewaehltGesamt = "";
		for(var i = 0; i<this.iAnzahlKategorien; i++){
			if(argPoiKat==this.arrMenueKat[i][1]){
				if(this.arrMenueKat[i][4]==true)
					bEinstellung = false;
				else
					bEinstellung = true;
				this.arrMenueKat[i][4] = bEinstellung;
			}
			// Wenn einen Hauptkategorie ausgeschaltet wurde sollen alle unterkategorien 
			// davon den gleichen Wert erhalten
			if(argPoiKat==this.arrMenueKat[i][3])
			{
				this.arrMenueKat[i][4] = bEinstellung;
				this.setPOICategory(this.arrMenueKat[i][1],bEinstellung);
			}
			// String für die Sammelicons zusammenfügen, aufgrund dessen die POI neu geladen werden
			if(this.arrMenueKat[i][4]==true){
				if(this.strPoiKatGewaehltGesamt=="")
					this.strPoiKatGewaehltGesamt=this.arrMenueKat[i][1];
				else
					this.strPoiKatGewaehltGesamt += ";"+this.arrMenueKat[i][1];
			}
		}
		this.menueAusklappen(argAusgeklappt);
		this.checkTilesPoikatChange();
	}
	
    // argAusgeklappt wird nicht benötigt, ist nur eine Variable um anzuzeigen welcher Teil des Menüs ausgeklappt ist oder nicht (beispiel hamburg)
    this.menueAusklappen = function(argAusgeklappt){
        var obj = document.getElementById("menueInhalt");
        var strMenueText = "<table class=text border='0' cellspacing='1' cellpadding='1'><colgroup><col width='20'><col width='30'><col width='200'></colgroup>";
        var idx = 0;
        for(var i = 0; i<this.iAnzahlKategorien; i++){
            strMenueText += "<tr>";
            if(this.arrMenueKat[i][4]==true)
                strMenueText += "<td valign=center class='checkbox'><input type='checkbox' onclick='theMap.arrMenueKat["+i+"][4] = document.form1.Pois"+i+".checked;PoiKategorienAnzeigen2();' name='Pois" + i + "' title='" + this.arrMenueKat[i][2] + "' checked></td>";
            else
                strMenueText += "<td valign=center class='checkbox'><input type='checkbox' onclick='theMap.arrMenueKat["+i+"][4] = document.form1.Pois"+i+".checked;PoiKategorienAnzeigen2();' name='Pois" + i + "' title='" + this.arrMenueKat[i][2] + "'></td>";
            strMenueText += "<td align='center'><img border=0 align='absmiddle' src='mapcontrol/images/icons/" +this.arrMenueKat[i][5]+ "' onclick='document.form1.Pois"+i+".checked = !document.form1.Pois"+i+".checked;theMap.arrMenueKat["+i+"][4] = document.form1.Pois"+i+".checked;PoiKategorienAnzeigen2();' style='cursor:hand;'></td>";
            strMenueText += "<td><a onclick='document.form1.Pois"+i+".checked = !document.form1.Pois"+i+".checked; theMap.arrMenueKat["+i+"][4] = document.form1.Pois"+i+".checked;PoiKategorienAnzeigen2();' style='font-size:11px; color:black;' style='cursor:hand;'>"+this.arrMenueKat[i][2] + "</a></td></tr>";
        }
            obj.innerHTML = strMenueText+"</table>";
     }
     

}

    function showPoiZuKategorie(argPoiKatId){
        loadXMLDoc("./mapcontrol/ajax/GetPoiUebersicht.aspx?PoiKatId="+argPoiKatId+"&SpracheId=0");
    }
    
    function loadXMLDoc(url,obj) 
	{
		if (requestActive==false)
		{
			requestActive=true;
			if (window.XMLHttpRequest) {
				req = new XMLHttpRequest();
				req.onreadystatechange = function(a){processReqChange(obj)};
				req.open("GET", url, true);
				req.send(null);
			} else if (window.ActiveXObject) {
				req = new ActiveXObject("Microsoft.XMLHTTP");
				if (req) {
					req.onreadystatechange = function(a){processReqChange(obj)};
					req.open("GET", url, true);
					req.send();
				}
			}
		} else {
			ajaxQueue.enqueue(url);
		}
	}

    function getXMLObject(httpRequest)
    {
        var xmlObj = null;
        if (window.ActiveXObject) 
        {
            xmlObj = httpRequest.responseXML;
///////////////////////////////////////////////////////////////////
//    diese Version ist langsamer !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!            
//            var xmlObj = new ActiveXObject("Microsoft.XMLDOM");
//            xmlObj.loadXML(httpRequest.responseText);
        } else if (document.implementation) {
            // für Modzilla 
            xmlObj = (new DOMParser()).parseFromString(httpRequest.responseText, "text/xml");
        }
        
        return xmlObj;
    }    
    

    function processReqChange(thisObj) 
	{
	
		if (req.readyState==4)
		{
		  if (req.status==200)
		  {
             xmlObj = getXMLObject(req);
             if( xmlObj == null )
             {
                    return;
             }
             
             
             
             if (xmlObj.getElementsByTagName("MEDIA").length > 0)
			{   //Anzeige der POI      
			    
			    visitenkarte=new Array();
			    for(var i=0;i<xmlObj.getElementsByTagName("Mediadaten").length;i++){
			          var POI  = xmlObj.getElementsByTagName("Mediadaten")[i];
			          visitenkarte[i]=new Array();
			          visitenkarte[i][0]=POI.getAttribute("NAME");  
			          visitenkarte[i][1]="";
  		              visitenkarte[i][2]=POI.getAttribute("MEDIACONTENT");
			    }
			    
			    document.getElementById("d_lightbox_text").innerHTML="Informationen";
			    if(visitenkarte.length>1)
			        document.getElementById("d_lightbox_right").style.display="block";
			    else
			        document.getElementById("d_lightbox_right").style.display="none";
			        
			        document.getElementById("d_lightbox_left").style.display="none";
			        
			    if(visitenkarte[0][1]!="")
			    document.getElementById("d_lightbox_top2").innerHTML="<img src='"+visitenkarte[0][1]+"' style='padding-left:10px;padding-right:5px;padding-top:5px;'> "+visitenkarte[0][0];
			    else
			    document.getElementById("d_lightbox_top2").innerHTML="<div style='padding-right:5px' /> "+visitenkarte[0][0];
			    			    
			    document.getElementById("d_lightbox_content_big").innerHTML=visitenkarte[0][2];
			    document.getElementById("d_lightbox_content_big").style.display="block";
			    document.getElementById("d_lightbox_content_small").style.display="none";
			    document.getElementById("d_lightbox_service").style.display="none";
			    visitenkarte_seite=0;
			    visitenkarte_typ="big";
			    
			    var aktuelleSeite=visitenkarte_seite+1;
                var SeitenAnzahl=visitenkarte.length;
                document.getElementById("d_lightbox_seitenzahl").innerHTML="Seite "+aktuelleSeite+" von "+SeitenAnzahl;
                document.getElementById("d_lightbox_seitenzahl").style.display="block";
			    document.getElementById("d_lightbox_print_link").style.display="none";
			    document.getElementById("d_lightbox_btn_merken").style.display="none";
			    document.getElementById("d_lightbox_layer").style.display="block";
			    //showBox("poianzeige");
			    //POIAnzeige(false);
			}
             
            
            
            
            
            if (xmlObj.getElementsByTagName("InfoTexte").length > 0){
            
            
                var LightboxHintergrund = document.getElementById("d_lightbox_layerbg");
                var obj=document.getElementById("d_lightbox_layer");
                var nOpacity = 50;
                obj.style.margin = "0px";
                if (bIsIE)
                {
                    LightboxHintergrund.style.zoom = "1";
                    LightboxHintergrund.style.filter = "Alpha(opacity=" + nOpacity + ",style=0)";
                }
                else
                    LightboxHintergrund.style.opacity = nOpacity / 100;
                    
                    document.getElementById("d_lightbox_top2").innerHTML="";
                    document.getElementById("d_lightbox_text").innerHTML=xmlObj.getElementsByTagName("InfoTexte")[0].getAttribute("Title");
    	
		            document.getElementById("d_lightbox_right").style.display="none";
		            document.getElementById("d_lightbox_seitenzahl").style.display="none";
		            document.getElementById("d_lightbox_left").style.display="none";
    		        
			        document.getElementById("d_lightbox_content_big").innerHTML=xmlObj.getElementsByTagName("InfoTexte")[0].getAttribute("Text");
			        document.getElementById("d_lightbox_content_big").style.display="block";
			        document.getElementById("d_lightbox_content_small").style.display="none";
			        document.getElementById("d_lightbox_service").style.display="none";
			        document.getElementById("d_lightbox_print_link").style.display="none";
			        document.getElementById("d_lightbox_btn_merken").style.display="none";
			        visitenkarte_seite=0;
			        visitenkarte_typ="big";
    			    
			        document.getElementById("d_lightbox_layer").style.display="block";
            
            
            
            }
            
           if (xmlObj.getElementsByTagName("bahnhofvisitenkarte").length > 0)
			{   //Anzeige der POI      
			    
			    visitenkarte=new Array();
			    			    
			    for(var i=0;i<xmlObj.getElementsByTagName("BAHNHOFdaten").length;i++){
			          var POI  = xmlObj.getElementsByTagName("BAHNHOFdaten")[i];
			          visitenkarte[i]=new Array();
			          visitenkarte[i][0]=POI.getAttribute("NAME");  
			          visitenkarte[i][1]=POI.getAttribute("SYMBOL");
			          visitenkarte[i][2]=POI.getAttribute("BAHNHOFCONTENT");
			    }
			    
			    document.getElementById("d_lightbox_text").innerHTML="Informationen";
			    if(visitenkarte.length>1)
			        document.getElementById("d_lightbox_right").style.display="block";
			    else
			        document.getElementById("d_lightbox_right").style.display="none";
			        
			        document.getElementById("d_lightbox_left").style.display="none";
			        
			    if(visitenkarte[0][1]!="")
			    document.getElementById("d_lightbox_top2").innerHTML="<img src='"+visitenkarte[0][1]+"' style='padding-left:10px;padding-right:5px;padding-top:5px;'> "+visitenkarte[0][0];
			    else
			    document.getElementById("d_lightbox_top2").innerHTML="<div style='padding-right:5px' /> "+visitenkarte[0][0];
			    document.getElementById("d_lightbox_content_big").innerHTML=visitenkarte[0][2];
			    document.getElementById("d_lightbox_content_big").style.display="block";
			    document.getElementById("d_lightbox_content_small").style.display="none";
			    document.getElementById("d_lightbox_service").style.display="none";
			    visitenkarte_seite=0;
			    visitenkarte_typ="big";
			    
			    var aktuelleSeite=visitenkarte_seite+1;
                var SeitenAnzahl=visitenkarte.length;
                document.getElementById("d_lightbox_seitenzahl").innerHTML="Seite "+aktuelleSeite+" von "+SeitenAnzahl;
                document.getElementById("d_lightbox_seitenzahl").style.display="block";
                document.getElementById("d_lightbox_print_link").style.display="none";
                document.getElementById("d_lightbox_btn_merken").style.display="none";
			    document.getElementById("d_lightbox_layer").style.display="block";
			    //showBox("poianzeige");
			    //POIAnzeige(false);
			    
			    
			}
    
            if (xmlObj.getElementsByTagName("poivisitenkarte").length > 0)
			{   //Anzeige der POI      
			    
			    visitenkarte=new Array();
			    			    
			    for(var i=0;i<xmlObj.getElementsByTagName("POIdaten").length;i++){
			          var POI  = xmlObj.getElementsByTagName("POIdaten")[i];
			          visitenkarte[i]=new Array();
			          visitenkarte[i][0]=POI.getAttribute("NAME");  
			          visitenkarte[i][1]=POI.getAttribute("SYMBOL");
			          visitenkarte[i][2]=POI.getAttribute("POICONTENT");
			          visitenkarte[i][3]=xmlObj.getElementsByTagName("poivisitenkarte")[0].getAttribute("POIIDS");
			          visitenkarte[i][4]=POI.getAttribute("BESCHREIBUNG");
			    }
			    
			    document.getElementById("d_lightbox_text").innerHTML="Informationen";
			    if(visitenkarte.length>1)
			        document.getElementById("d_lightbox_right").style.display="block";
			    else
			        document.getElementById("d_lightbox_right").style.display="none";
			        
			        document.getElementById("d_lightbox_left").style.display="none";
			        
			    if(visitenkarte[0][1]!="")
			    document.getElementById("d_lightbox_top2").innerHTML="<img src='"+visitenkarte[0][1]+"' style='padding-left:10px;padding-right:5px;padding-top:5px;'> "+visitenkarte[0][0];
			    else
			    document.getElementById("d_lightbox_top2").innerHTML="<div style='padding-right:5px' /> "+visitenkarte[0][0];
			    document.getElementById("d_lightbox_content_small").innerHTML=visitenkarte[0][2];
			    document.getElementById("d_lightbox_content_small").style.display="block";
			    document.getElementById("d_lightbox_content_big").style.display="none";
			    document.getElementById("d_lightbox_service").style.display="block";
			    visitenkarte_seite=0;
			    
	            var aktuelleSeite=visitenkarte_seite+1;
                var SeitenAnzahl=visitenkarte.length;
                document.getElementById("d_lightbox_seitenzahl").innerHTML="Seite "+aktuelleSeite+" von "+SeitenAnzahl;
                document.getElementById("d_lightbox_print_link").href="/mapcontrol/ajax/printPOI.aspx?PoiId="+visitenkarte[0][3];
                document.getElementById("d_lightbox_print_link").style.display="inline";
                document.getElementById("d_lightbox_btn_merken").style.display="block";
                document.getElementById("d_lightbox_print_merkerliste").style.display="none";
                document.getElementById("d_lightbox_delete_merkerliste").style.display="none";
                

                    if(typeof merkerliste2[currentTourId]=='undefined' || typeof merkerliste2[currentTourId][visitenkarte[visitenkarte_seite][3].split(',')[visitenkarte_seite]]=='undefined'){
                        document.getElementById("d_lightbox_btn_merken").onclick=merkerlisteAdd;
                        document.getElementById("d_lightbox_btn_merken").alt="Zum Merken hier klicken.";
                        document.getElementById("d_lightbox_btn_merken").title="Zum Merken hier klicken.";
                        document.getElementById("d_lightbox_btn_merken").style.backgroundImage="url(/design/merken.png)";
                    }else{
			            document.getElementById("d_lightbox_btn_merken").onclick=merkerlisteRemove;
			            document.getElementById("d_lightbox_btn_merken").alt="POI ist gemerkt.";
			            document.getElementById("d_lightbox_btn_merken").title="POI ist gemerkt.";
                        document.getElementById("d_lightbox_btn_merken").style.backgroundImage="url(/design/merken2.png)";
			            
			            }                    

                document.getElementById("d_lightbox_seitenzahl").style.display="block";
			    visitenkarte_typ="small";
			    
			    //print.png
			    //alert("visitenkarte");
			    document.getElementById("d_lightbox_layer").style.display="block";
			    //showBox("poianzeige");
			    //POIAnzeige(false);
			    
			    
			}
             
            if (xmlObj.getElementsByTagName("poiansicht").length > 0)
			{   //Anzeige der POI      
			    document.getElementById('poiinhalt').innerHTML=xmlObj.getElementsByTagName("poiansicht")[0].getAttribute("info");
			    showBox("poianzeige");
			    //POIAnzeige(false);
			}
            
            if (xmlObj.getElementsByTagName("bahnhofansicht").length > 0)
			{   //Bahnhöfe werden im selben Div wie die Poi angezeigt      
			    document.getElementById('poiinhalt').innerHTML=xmlObj.getElementsByTagName("bahnhofansicht")[0].getAttribute("info");
			    showBox("poianzeige");
			    //POIAnzeige(false);
			}
             
			// Hallotest
			if (xmlObj.getElementsByTagName("kategorien").length > 0)
			{
				var strMenueInhalt = "";
				var iZaehler = 0;
				var tmpHauptkat = "";
				var tmpKategorietyp = "";
				var tmpKatName = "";
				var tmpZaehler= 0;
				
				for(var i = 0; i<xmlObj.getElementsByTagName("kategorie").length; i++){
					var objElement = xmlObj.getElementsByTagName("kategorie")[i];
					if(objElement.getAttribute("kategorietyp")=="hauptkat"){
						tmpHauptkat = objElement.getAttribute("id");
						tmpSymbol = objElement.getAttribute("symbol");
						tmpKategorietyp= objElement.getAttribute("kategorietyp");
						tmpKatName = objElement.getAttribute("name");
						tmpZaehler = iZaehler;
					    theMap.arrMenueKat[iZaehler] = new Array(objElement.getAttribute("kategorietyp"), objElement.getAttribute("id"), objElement.getAttribute("name"), "noUkat", false, objElement.getAttribute("symbol"));
					    //Suche
					  //  thisObj.arrMenueKat2[iZaehler] = new Array(objElement.getAttribute("kategorietyp"), objElement.getAttribute("id"), objElement.getAttribute("name"), "noUkat", false, objElement.getAttribute("symbol"));
					}
					else{
						theMap.arrMenueKat[iZaehler] = new Array(objElement.getAttribute("kategorietyp"), objElement.getAttribute("id"), objElement.getAttribute("name"), tmpHauptkat, false, objElement.getAttribute("symbol"));
						theMap.arrMenueKat[tmpZaehler] = new Array(tmpKategorietyp, tmpHauptkat, tmpKatName, "ukat", false, tmpSymbol);
					    //Suche
					    //thisObj.arrMenueKat2[iZaehler] = new Array(objElement.getAttribute("kategorietyp"), objElement.getAttribute("id"), objElement.getAttribute("name"), tmpHauptkat, false, objElement.getAttribute("symbol"));
						//thisObj.arrMenueKat2[tmpZaehler] = new Array(tmpKategorietyp, tmpHauptkat, tmpKatName, "ukat", false, tmpSymbol);
					}
					iZaehler++;
				}
				theMap.iAnzahlKategorien = iZaehler;
				theMap.bMenueLaden = false;
				theMap.menueAusklappen("");
			//	thisObj.menueAusklappenSuche("");
			}
			
			if (xmlObj.getElementsByTagName("kategorienSuche").length > 0)
			{
				var strMenueInhalt = "";
				var iZaehler = 0;
				var tmpHauptkat = "";
				var tmpKategorietyp = "";
				var tmpKatName = "";
				var tmpZaehler= 0;
				
				for(var i = 0; i<xmlObj.getElementsByTagName("kategorieSuche").length; i++){
					var objElement = xmlObj.getElementsByTagName("kategorieSuche")[i];
					if(objElement.getAttribute("kategorietyp")=="hauptkat"){
						tmpHauptkat = objElement.getAttribute("id");
						tmpSymbol = objElement.getAttribute("symbol");
						tmpKategorietyp= objElement.getAttribute("kategorietyp");
						tmpKatName = objElement.getAttribute("name");
						tmpZaehler = iZaehler;
					    //Suche
					    arrMenueKat2[iZaehler] = new Array(objElement.getAttribute("kategorietyp"), objElement.getAttribute("id"), objElement.getAttribute("name"), "noUkat", false, objElement.getAttribute("symbol"));
					}
					else{
						//Suche
					    arrMenueKat2[iZaehler] = new Array(objElement.getAttribute("kategorietyp"), objElement.getAttribute("id"), objElement.getAttribute("name"), tmpHauptkat, false, objElement.getAttribute("symbol"));
						arrMenueKat2[tmpZaehler] = new Array(tmpKategorietyp, tmpHauptkat, tmpKatName, "ukat", false, tmpSymbol);
					}
					iZaehler++;
				}
                iAnzahlKategorienSuche = iZaehler;
				menueAusklappenSuche("");
			}
			
			// Adresssuche
            if (xmlObj.getElementsByTagName("adresspoisuche").length > 0)
            {
                thisObj.arrSuche = new Array();
                for(var i = 0; i<xmlObj.getElementsByTagName("punkt").length; i++){
                    var objElement = xmlObj.getElementsByTagName("punkt")[i];
                    thisObj.arrSuche[i] = new Array(objElement.getAttribute("bezeichner"),
                    objElement.getAttribute("name"),
                    objElement.getAttribute("koordx"),
                    objElement.getAttribute("koordy"),
                    objElement.getAttribute("strasse"),
                    objElement.getAttribute("hausNr"));
                }
                if(thisObj.arrSuche.length==0)
                    alert("Keine Einträge zu Ihrem Sucheintrag gefunden");
                else if(thisObj.arrSuche.length==1)
                    setTimeout("theMap.centerSuche('"+thisObj.arrSuche[0][2]+"', '"+thisObj.arrSuche[0][3]+"');", 1);
                else
                    thisObj.ShowSuchergebnis();
            }

			if (xmlObj.getElementsByTagName("mapcommand").length > 0)
			{			
				// Eichung erhalten
				var cx = parseFloat(xmlObj.getElementsByTagName("mapcommand")[0].getAttribute("cx"));
				var cy = parseFloat(xmlObj.getElementsByTagName("mapcommand")[0].getAttribute("cy"));
				var currentlevel = parseFloat(xmlObj.getElementsByTagName("mapcommand")[0].getAttribute("level"));
				setCenter(cx,cy);
				center = new Array(cx,cy); // HH
				zoomlevel=currentlevel;
				toggleZoom();
				updateEichung();
			}	
			
			if (xmlObj.getElementsByTagName("result").length > 0)
			{			
				// Eichung erhalten
				links = parseFloat(xmlObj.getElementsByTagName("result")[0].getAttribute("x"));
				unten = parseFloat(xmlObj.getElementsByTagName("result")[0].getAttribute("y"));
				meterY = parseFloat(xmlObj.getElementsByTagName("result")[0].getAttribute("h"));
				meterX = parseFloat(xmlObj.getElementsByTagName("result")[0].getAttribute("w"));
				if(arrAdressuebergabe.length>1)
					centerSuche(arrAdressuebergabe[0], arrAdressuebergabe[1]);
				else if (center)
					setCenter(center[0],center[1]);	
				if (currentTour != 0)
				{
					var url = "GetTourDisplay.aspx?x="+links+"&y="+unten+"&w="+meterX+"&h="+meterY+"&tourId="+currentTour;
					loadXMLDoc(url,thisObj);
					if (startPoint[0] != 0)
					{
						setFixedPOIAt(startPoint,"start.gif");
						var sx = startPoint[0];
						var sy = startPoint[1];
						if (endPoint[0] != 0)        
						{
							var ex = endPoint[0];
							var ey = endPoint[1];
							var url = "GetRoute.aspx?x="+links+"&y="+unten+"&w="+meterX+"&h="+meterY+"&tourId=213&sx="+sx+"&sy="+sy+"&ex="+ex+"&ey="+ey;
							loadXMLDoc(url,thisObj);
						}
					}
					if (endPoint[0] != 0)
					{
						setFixedPOIAt(endPoint,"ziel.gif");
					}
				}
				if (zoomlevel < 2)
				{
					setSmallOverview();
				}
				else
				{
					setLargeOverview();
				}                	
			}	
			
            // Visitenkarte
            if (xmlObj.getElementsByTagName("poiuebersichtkategorie").length > 0)
            {
                var objElement = xmlObj.getElementsByTagName("poiuebersichtkategorie")[0];
                var arrPoiUebersichtKat = new Array();
                for(var i = 0; i<xmlObj.getElementsByTagName("poidaten").length; i++){
                    var objElement = xmlObj.getElementsByTagName("poidaten")[i];
                    arrPoiUebersichtKat[i] = new Array(objElement.getAttribute("poiId"), // 0
                    objElement.getAttribute("name"),
                    objElement.getAttribute("strasse"),
                    objElement.getAttribute("hausNr"),
                    objElement.getAttribute("plz"),
                    objElement.getAttribute("ort"), // 5
                    objElement.getAttribute("adressZusatz"),
                    objElement.getAttribute("telefon"),
                    objElement.getAttribute("telefax"),
                    objElement.getAttribute("bild"),
                    objElement.getAttribute("logo"), // 10
                    objElement.getAttribute("koord_x"),
                    objElement.getAttribute("koord_y"),
                    objElement.getAttribute("info"),
                    objElement.getAttribute("beschreibung")); // 14
                }
                theMap.arrPoiUebersichtKat = arrPoiUebersichtKat;
                setTimeout("PoiUebersichtKatFuellen();", 1);
            }

            if (xmlObj.getElementsByTagName("XpunktTourinfo").length > 0)			
			{	
            
                var sTourenname= xmlObj.getElementsByTagName("XpunktTourinfo")[0].getAttribute("TOURNAME")+" (ca. "+xmlObj.getElementsByTagName("XpunktTourinfo")[0].getAttribute("LAENGE")+" km)";
			    var sTourenBild= xmlObj.getElementsByTagName("XpunktTourinfo")[0].getAttribute("BILD");
			    if(sTourenBild==null || sTourenBild=="null")
			        sTourenBild = "";
			    if(sTourenBild!=""){
			        sTourenBild = "<img src='"+sTourenBild+"' title='"+sTourenname+"' style='float:left; padding-right:5px;'>";
			    }
/*			    var sTourinfo = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("INFO");
			    if(sTourinfo==null || sTourinfo=="null")
			        sTourinfo = "";*/
			    var sTourbeschreibung = xmlObj.getElementsByTagName("XpunktTourinfo")[0].getAttribute("BESCHREIBUNG");
			    if(sTourbeschreibung==null || sTourbeschreibung=="null")
			        sTourbeschreibung = "";
			        
                var Tourinfo = document.createElement("div");

			    var DivTourenName = document.createElement("div");
			        DivTourenName.id="Tourname";
			        DivTourenName.title="Name/Länge der Tour";
			        DivTourenName.innerHTML=sTourenname;
			        
			    var DivBeschreibung=document.createElement("div");
			        DivBeschreibung.title="Beschreibung der Tour";
			        DivBeschreibung.id="Tourenbeschreibung";
			        DivBeschreibung.innerHTML=sTourenBild+sTourbeschreibung;
			    
                    Tourinfo.appendChild(DivTourenName);
                    Tourinfo.appendChild(DivBeschreibung);
                    TourInformationen["Tourinfo"]=Tourinfo;
                    document.getElementById("infos").removeChild(document.getElementById("infos").firstChild);
                    document.getElementById("infos").appendChild(Tourinfo);
                    
                    if(theMap.lastXpunktTour!=00)                    
                        Tourids["Tourinfo"]=theMap.lastXpunktTour;
                    else
                        Tourids["Tourinfo"]=currentTourId;
            }

			if (xmlObj.getElementsByTagName("tourinfo").length > 0)			
			{	

			    var strKoordinaten = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("koordinaten");
			    var sTourenname= xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("TOURNAME")+" (ca. "+xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("LAENGE")+" km)";
			    var sTourenBild= xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("BILD");
			    var canvasid= xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("CANVAS");//1. oder 2. Tour etc. 1.="" 2.="2"...
			    var canvasheight= xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("CANVASHEIGHT");//1. oder 2. Tour etc. 1.="" 2.="2"...
			    if(sTourenBild==null || sTourenBild=="null")
			        sTourenBild = "";
			    if(sTourenBild!=""){
			        sTourenBild = "<img src='"+sTourenBild+"' title='"+sTourenname+"' style='float:left; padding-right:5px;'>";
			    }
			    
			     if(xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("zoomlevel") != null)
			    {
			        var XKoord = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("XKoord");
			        var YKoord = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("YKoord");
			      
			        setZoom((xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("zoomlevel")));
                    theMap.SetWMSBase(theMap.arrWMS[parseInt(m_zoomid)+parseInt(theMap.iLayer)]);
                    document.getElementById('massstabAnzeige').value=theMap.m_massstabarray[m_zoomid];
                    MassstabSetzen();
			        
			        if((XKoord!=-1) && (YKoord != -1))
			          theMap.SetCenter(XKoord,YKoord);
			            
			        theMap.bZoom = false;
			      
			        
			        
			    }			
			    
/*			    var sTourinfo = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("INFO");
			    if(sTourinfo==null || sTourinfo=="null")
			        sTourinfo = "";*/
			    var sTourbeschreibung = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("BESCHREIBUNG");
			    if(sTourbeschreibung==null || sTourbeschreibung=="null")
			        sTourbeschreibung = "";
			    //document.getElementById("Tourenbeschreibung").innerHTML = sTourenBild + sTourbeschreibung;
			   // document.getElementById("Tourname").innerHTML = sTourenname;
			    
			    var Tourinfo = document.createElement("div");

			    var DivTourenName = document.createElement("div");
			        DivTourenName.id="Tourname";
			        DivTourenName.title="Name/Länge der Tour";
			        DivTourenName.innerHTML=sTourenname;
			        DivTourenName.style.fontSize="13px";
			        DivTourenName.style.fontWeight="bold";
			        
			    var DivBeschreibung=document.createElement("div");
			        DivBeschreibung.title="Beschreibung der Tour";
			        DivBeschreibung.id="Tourenbeschreibung";
			        DivBeschreibung.innerHTML=sTourenBild+sTourbeschreibung;
			    
                    Tourinfo.appendChild(DivTourenName);
                    Tourinfo.appendChild(DivBeschreibung);
                    TourInformationen["Tourinfo"]=Tourinfo;
                    document.getElementById("infos").removeChild(document.getElementById("infos").firstChild);
                    document.getElementById("infos").appendChild(Tourinfo);
                    
                    Tourids["Name"]=xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("TOURNAME");                 
                    Tourids["Tourinfo"]=currentTourId;
                    
			    
				var innerDiv = document.getElementById("innerDiv");
				var div = document.getElementById("tour"+canvasid)
				if (div == null)
				{
					div = document.createElement("div");
					div.id = "tour"+canvasid;
				}
				try
				{
					div.innerHTML = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("CANVASES");//xmlObj.getElementsByTagName("tourinfo")[0].firstChild.nodeValue;
				} catch(e)
				{
					div.innerHTML = "";
					alert("Diese Tour ist leer!");
				}
				innerDiv.appendChild(div);
                // Funktion zum malen einer Route in Firefox
                if(strKoordinaten!="-"){
    			    var strKoordinatenreal = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("koordinatenreal");
    			    var iMaxX = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("MaxX");
    			    var iMaxY = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("MaxY");
    			    var iMinX = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("MinX");
    			    var iMinY = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("MinY");
    			    var Style = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("Style");
    			    var fgcolor = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("fgcolor");
    			    var bgcolor = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("bgcolor");
    			    
    			    // Tour im Firefox zeichnen 
                    TourZeichnenCanvas(strKoordinaten, iMaxX, iMaxY, iMinX, iMinY, strKoordinatenreal, Style, fgcolor, bgcolor,canvasid,canvasheight);
                }
                showreiter('Tourinfo','d_informationen_reiter_touren');
			}	

    	if (xmlObj.getElementsByTagName("tourinfo2").length > 0)
			{	
			alert("tz2");
			    var strKoordinaten = xmlObj.getElementsByTagName("tourinfo2")[0].getAttribute("koordinaten");
			    var sTourenname= xmlObj.getElementsByTagName("tourinfo2")[0].getAttribute("TOURNAME")+" (ca. "+xmlObj.getElementsByTagName("tourinfo2")[0].getAttribute("LAENGE")+" km)";
			    var sTourenBild= xmlObj.getElementsByTagName("tourinfo2")[0].getAttribute("BILD");
			    if(sTourenBild==null || sTourenBild=="null")
			        sTourenBild = "";
			    if(sTourenBild!=""){
			        sTourenBild = "<img src='"+sTourenBild+"' title='"+sTourenname+"' style='float:left; padding-right:5px;'>";
			    }
/*			    var sTourinfo = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("INFO");
			    if(sTourinfo==null || sTourinfo=="null")
			        sTourinfo = "";*/
			    var sTourbeschreibung = xmlObj.getElementsByTagName("tourinfo2")[0].getAttribute("BESCHREIBUNG");
			    if(sTourbeschreibung==null || sTourbeschreibung=="null")
			        sTourbeschreibung = "";
			    document.getElementById("Tourenbeschreibung").innerHTML = sTourenBild + sTourbeschreibung;
			    document.getElementById("Tourname").innerHTML = sTourenname;
				var innerDiv = document.getElementById("innerDiv");
				var div = document.getElementById("tour2")
				if (div == null)
				{
					div = document.createElement("div");
					div.id = "tour2";
				}
				try
				{
					div.innerHTML = xmlObj.getElementsByTagName("tourinfo2")[0].firstChild.nodeValue;
				} catch(e)
				{
					div.innerHTML = "";
					alert("Diese Tour ist leer!");
				}
				innerDiv.appendChild(div);
                // Funktion zum malen einer Route in Firefox
                if(strKoordinaten!="-"){
    			    var strKoordinatenreal = xmlObj.getElementsByTagName("tourinfo2")[0].getAttribute("koordinatenreal");
    			    var iMaxX = xmlObj.getElementsByTagName("tourinfo2")[0].getAttribute("MaxX");
    			    var iMaxY = xmlObj.getElementsByTagName("tourinfo2")[0].getAttribute("MaxY");
    			    var iMinX = xmlObj.getElementsByTagName("tourinfo2")[0].getAttribute("MinX");
    			    var iMinY = xmlObj.getElementsByTagName("tourinfo2")[0].getAttribute("MinY");
    			    var Style = xmlObj.getElementsByTagName("tourinfo2")[0].getAttribute("Style");
    			    var fgcolor = xmlObj.getElementsByTagName("tourinfo2")[0].getAttribute("fgcolor");
    			    var bgcolor = xmlObj.getElementsByTagName("tourinfo2")[0].getAttribute("bgcolor");
    			    
    			    // Tour im Firefox zeichnen 
                    TourZeichnenCanvas2(strKoordinaten, iMaxX, iMaxY, iMinX, iMinY, strKoordinatenreal, Style, fgcolor, bgcolor);
                }
			}
			
			if (xmlObj.getElementsByTagName("Events_alphabetisch").length > 0)			
			{
			    var info="<div id='eventdaten'><table class='sort'><tr><td style='width:150px;'>Sortierung der Orte:</td><td><div class='sortOn' >-Alphabetisch</div></td></tr>"
                      +"<tr><td></td><td><div class='sortOff' onclick=\"showreiter('Events2');\">-nach Tourenverlauf</div></td></tr></table> <br><br>";
			
			    Orte=xmlObj.getElementsByTagName("Events_alphabetisch")[0].getElementsByTagName("Ort");
			
			    for(i=0;i<Orte.length;i++){
			    var objOrt=Orte[i];
			    
			    info+="<div class='clear'> <div id='"+objOrt.getAttribute("Ortid")+"' onClick='toggleEvents("+objOrt.getAttribute("Ortid")+")' class='EventOrt'>"
			          +objOrt.getAttribute("Ortname")
			          +"</div>"  
			          +"<div class='SetEventortCenter' id='"+objOrt.getAttribute("X")+"_"+objOrt.getAttribute("Y")+"' onClick='SetCenterById("+objOrt.getAttribute("X")+","+objOrt.getAttribute("Y")+")'> "
			          +"(Zeige in Karte) "
			          +"</div>"
			          +"</div>"
			          
			          +"<div id='E_"+objOrt.getAttribute("Ortid")+"' style='display:none;' class='Eventinfo'>";
			          
			          for(j=0;j<objOrt.getElementsByTagName("Event").length;j++){
			          
			          
			            var eventObj=objOrt.getElementsByTagName("Event")[j]; 
			            info+="<div class='Events'>"
			                +"<div class='Eventtitel' onclick='SetCenterById("+eventObj.getAttribute("X")+","+eventObj.getAttribute("Y")+");'>"+eventObj.getAttribute("Titel")+"</div>"
			                +"<div class='Eventbeschreibung'>"+eventObj.firstChild.nodeValue+"<br><br>";

                        if(eventObj.getAttribute("vonDatum")!=eventObj.getAttribute("bisDatum"))
			                info+="<b>Datum:</b>"+eventObj.getAttribute("vonDatum")+" bis "+eventObj.getAttribute("bisDatum")+"<br>";
			            else
			                info+="<b>Datum:</b>"+eventObj.getAttribute("vonDatum")+"<br>";
			            
			            if(eventObj.getAttribute("vonZeit")!="" && eventObj.getAttribute("vonZeit")!=eventObj.getAttribute("bisZeit") && eventObj.getAttribute("bisZeit")!="")
			                info+="<b>Uhrzeit:</b>"+eventObj.getAttribute("vonZeit")+" bis "+eventObj.getAttribute("bisZeit")+"<br>";
			            else if(eventObj.getAttribute("vonZeit")!="")
			                info+="<b>Uhrzeit:</b>"+eventObj.getAttribute("vonZeit")+"<br>";
			                            
			            info+="</div><br><a class='Eventlink' href='http://www.reiseland-brandenburg.de/pages/event_suche.htm?showid="+eventObj.getAttribute("Eventid")+"' target='_blank'>Weitere Informationen zum Event</a><br><br>";
			            
			           info+="</div>";
			          }
			          info+="</div></div>";
			         
			    }
			    var div=document.createElement("div");
			    div.innerHTML=info;
			    
			    if(xmlObj.getElementsByTagName("Events_alphabetisch")[0].getElementsByTagName("Ort").length==0){
			         div.innerHTML="<div style='font-size:12px'><br>Keine Events vorhanden</div>";
			    }
			          			          
                document.getElementById("infos").removeChild(document.getElementById("infos").firstChild);
			    document.getElementById("infos").appendChild(div);
			    
			    TourInformationen["Events"]=div;
			    Tourids["Events"]=xmlObj.getElementsByTagName("Events_alphabetisch")[0].getAttribute("tourid");			    
			
			}
			
			
			if (xmlObj.getElementsByTagName("Events_oertlich").length > 0)			
			{
			
		        var info="<div id='eventdaten'><table  onclick=\"showreiter('Events');\" class='sort'><tr><td style='width:150px;' >Sortierung der Orte:</td><td><div class='sortOff' >-Alphabetisch</div></td></tr>"
                      +"<tr><td></td><td><div class='sortOn' >-nach Tourenverlauf</div></td></tr></table> <br><br>";
			    
			    Orte=xmlObj.getElementsByTagName("Events_oertlich")[0].getElementsByTagName("Ort");
			
			    for(i=0;i<Orte.length;i++){
			    var objOrt=Orte[i];
			    
			    info+="<div class='clear'> <div id='"+objOrt.getAttribute("Ortid")+"' onClick='toggleEvents("+objOrt.getAttribute("Ortid")+")' class='EventOrt'>"
			          +objOrt.getAttribute("Ortname")
			          +"</div>"  
			          +"<div class='SetEventortCenter' id='"+objOrt.getAttribute("X")+"_"+objOrt.getAttribute("Y")+"' onClick='SetCenterById("+objOrt.getAttribute("X")+","+objOrt.getAttribute("Y")+")'> "
			          +"(Zeige in Karte) "
			          +"</div>"
			          +"</div>"
			          
			          +"<div id='E_"+objOrt.getAttribute("Ortid")+"' style='display:none;' class='Eventinfo'>";
			          
			          for(j=0;j<objOrt.getElementsByTagName("Event").length;j++){
			          
			          
			            var eventObj=objOrt.getElementsByTagName("Event")[j]; 
			            info+="<div class='Events'>"
			                +"<div class='Eventtitel' onclick='SetCenterById("+eventObj.getAttribute("X")+","+eventObj.getAttribute("Y")+");'>"+eventObj.getAttribute("Titel")+"</div>"
			                +"<div class='Eventbeschreibung'>"+eventObj.firstChild.nodeValue+"<br>";

                        if(eventObj.getAttribute("vonDatum")!=eventObj.getAttribute("bisDatum"))
			                info+="<b>Datum:</b>"+eventObj.getAttribute("vonDatum")+" bis "+eventObj.getAttribute("bisDatum")+"<br>";
			            else
			                info+="<b>Datum:</b>"+eventObj.getAttribute("vonDatum")+"<br>";
			            
			            if(eventObj.getAttribute("vonZeit")!="" && eventObj.getAttribute("vonZeit")!=eventObj.getAttribute("bisZeit") && eventObj.getAttribute("bisZeit")!="")
			                info+="<b>Uhrzeit:</b>"+eventObj.getAttribute("vonZeit")+" bis "+eventObj.getAttribute("bisZeit")+"<br>";
			            else if(eventObj.getAttribute("vonZeit")!="")
			                info+="<b>Uhrzeit:</b>"+eventObj.getAttribute("vonZeit")+"<br>";
			                            
			            info+="</div><br><a class='Eventlink' href='http://www.reiseland-brandenburg.de/pages/event_suche.htm?showid="+eventObj.getAttribute("Eventid")+"' target='_blank'>Weitere Informationen zum Event</a><br><br>";
			            
			           info+="</div>";
			          }
			          info+="</div></div>";
			         
			    }
			    var div=document.createElement("div");
			    div.innerHTML=info;
			    
			    TourInformationen["Events2"]=div;
			    Tourids["Events2"]=xmlObj.getElementsByTagName("Events_alphabetisch")[0].getAttribute("tourid");
			}
			
			
			
			if (xmlObj.getElementsByTagName("Pauschalen").length > 0)			
			{
			    var Pauschalen = document.createElement("div")
			    
			    for(i=0;i<xmlObj.getElementsByTagName("Pauschale").length;i++){
			    
			    var Pauschale=xmlObj.getElementsByTagName("Pauschale")[i];
			    
			    var Titel="<br>"+Pauschale.getAttribute("Titel");
			    var Beschreibung=Pauschale.getAttribute("Beschreibung");
			    var Link=Pauschale.getAttribute("Link");
			    
			    var div=document.createElement("div");
			        
			    var divTitel=document.createElement("div");
			        divTitel.className="TitelDiv";
			        divTitel.innerHTML=Titel;
			        
			    var divBeschreibung=document.createElement("div");
			        divBeschreibung.className="BeschreibungDiv";
			        divBeschreibung.innerHTML=Beschreibung;
			        
			    var divLink=document.createElement("div");
			        if(Link!="" && Link!="http://")
			        divLink.innerHTML="<a href='"+Link+"' target='_blank' class='Linkclass'>weitere Informationen</a>";
			    
//			    var divZentrieren=document.createElement("div");
//			        divZentrieren.id=Pauschale.getAttribute("X")+"_"+Pauschale.getAttribute("Y");
//			        divZentrieren.setAttribute('onClick', "SetCenterById("+Pauschale.getAttribute("X")+","+Pauschale.getAttribute("Y")+")");
//			        divZentrieren.className="SetOrtCenter";
//			        divZentrieren.innerHTML=" (Zeige in Karte)"; 
			        
			   var divZentrieren="<div id='"+Pauschale.getAttribute("X")+"_"+Pauschale.getAttribute("Y")+"' onClick='SetCenterById("+Pauschale.getAttribute("X")+","+Pauschale.getAttribute("Y")+")' class='SetOrtCenter'>(Zeige in Karte)</div>";  
			           
			        
			    var divcontainer=document.createElement("div");
			        divcontainer.appendChild(divTitel);  
			        divcontainer.innerHTML+=divZentrieren;  
			    
			        Pauschalen.appendChild(divcontainer);    
			        Pauschalen.appendChild(divBeschreibung);
			        Pauschalen.appendChild(divLink);
			        Pauschalen.appendChild(document.createElement("br"));
			    
			    }
			    
			    if(xmlObj.getElementsByTagName("Pauschale").length==0){
			        Pauschalen.innerHTML="<div style='font-size:12px'><br>Keine Pauschalen vorhanden</div>";
			    }
			    
			    document.getElementById("infos").removeChild(document.getElementById("infos").firstChild);
                document.getElementById("infos").appendChild(Pauschalen);      
			    
			    TourInformationen["Pauschalen"]=Pauschalen;
			    Tourids["Pauschalen"]=xmlObj.getElementsByTagName("Pauschalen")[0].getAttribute("tourid");
			}
			
			if (xmlObj.getElementsByTagName("Downloads").length > 0)			
			{
		    	var Downloads = document.createElement("div")
		    	
			    for(i=0;i<xmlObj.getElementsByTagName("Download").length;i++){
			        var Download=xmlObj.getElementsByTagName("Download")[i];
			        var Beschreibung="<div>"+Download.getAttribute("Beschreibung")+"</div>";
			        var Link=Download.getAttribute("Link");
			        Downloads.innerHTML+=Beschreibung+Link+"<br><br>";
			    }
    			
    			if(xmlObj.getElementsByTagName("Download").length==0){
			        Downloads.innerHTML="<div style='font-size:12px'><br>Keine aktuellen Informationen vorhanden</div>";
			    }
			    
			    
			    document.getElementById("infos").removeChild(document.getElementById("infos").firstChild);
                document.getElementById("infos").appendChild(Downloads);      
			    
			    TourInformationen["Downloads"]=Downloads;
			    Tourids["Downloads"]=xmlObj.getElementsByTagName("Downloads")[0].getAttribute("tourid");
			
			}
			
			
			if (xmlObj.getElementsByTagName("Aktuelles").length > 0)			
			{
			
			    var Aktuelles = document.createElement("div")
			        
			    
			    for(i=0;i<xmlObj.getElementsByTagName("Aktuell").length;i++){
			    
			    var Aktuell=xmlObj.getElementsByTagName("Aktuell")[i];
			    
			    var Titel="<br><br><br>"+Aktuell.getAttribute("Titel");
			    var Beschreibung=Aktuell.getAttribute("Beschreibung");
			    var Link=Aktuell.getAttribute("Link");
			    
			    var div=document.createElement("div");
			        
			    var divTitel=document.createElement("div");
			        divTitel.innerHTML=Titel;
			        divTitel.className="TitelDiv";
			        
			    var divBeschreibung=document.createElement("div");
			        divBeschreibung.className="BeschreibungDiv";
			        divBeschreibung.innerHTML=Beschreibung;
			        
			    var divLink=document.createElement("div");
			        if(Link!="" && Link!="http://")
			        divLink.innerHTML="<a href='"+Link+"' target='_blank' class='Linkclass'>weitere Informationen</a>";
			    
//			    var divZentrieren=document.createElement("div");
//			        divZentrieren.id=Aktuell.getAttribute("X")+"_"+Aktuell.getAttribute("Y");
//			        //divZentrieren.onclick=thisObj.setCenterById;  
//			        divZentrieren.setAttribute('onClick', "SetCenterById("+Aktuell.getAttribute("X")+","+Aktuell.getAttribute("Y")+")");
//			        divZentrieren.className="SetOrtCenter";
//			        divZentrieren.innerHTML=" (Zeige in Karte)";  
			        
			        
			         var divZentrieren="<div id='"+Aktuell.getAttribute("X")+"_"+Aktuell.getAttribute("Y")+"' onClick='SetCenterById("+Aktuell.getAttribute("X")+","+Aktuell.getAttribute("Y")+")' class='SetOrtCenter'>(Zeige in Karte)</div>";  
			        
			        
			    var divcontainer=document.createElement("div");
			        divcontainer.appendChild(divTitel);  
			        divcontainer.innerHTML+=divZentrieren;  
			    
			        Aktuelles.appendChild(divcontainer);    
			        Aktuelles.appendChild(divBeschreibung);
			        Aktuelles.appendChild(divLink);
			        Aktuelles.appendChild(document.createElement("br"));
			    
			    }
			    
			    if(xmlObj.getElementsByTagName("Aktuell").length==0){
			        Aktuelles.innerHTML="<div style='font-size:12px'><br>Keine aktuellen Informationen vorhanden</div>";
			    }
			    
			    document.getElementById("infos").removeChild(document.getElementById("infos").firstChild);
                document.getElementById("infos").appendChild(Aktuelles);      
			    
			    TourInformationen["Aktuelles"]=Aktuelles;
			    Tourids["Aktuelles"]=xmlObj.getElementsByTagName("Aktuelles")[0].getAttribute("tourid");
			}
			
            if (xmlObj.getElementsByTagName("touren").length > 0)
			{	
			
			    for(var i=0;i<xmlObj.getElementsByTagName("toureninfoall").length;i++){
    			    
			        var strKoordinaten = xmlObj.getElementsByTagName("toureninfoall")[i].getAttribute("koordinaten");
			        var sTourenname= xmlObj.getElementsByTagName("toureninfoall")[i].getAttribute("TOURNAME")+" (ca. "+xmlObj.getElementsByTagName("toureninfoall")[i].getAttribute("LAENGE")+" km)";
			        var sTourenBild= xmlObj.getElementsByTagName("toureninfoall")[i].getAttribute("BILD");
			         var canvasid= xmlObj.getElementsByTagName("toureninfoall")[i].getAttribute("CANVAS");//1. oder 2. Tour etc. 1.="" 2.="2"...
			        if(sTourenBild==null || sTourenBild=="null")
			            sTourenBild = "";
			        if(sTourenBild!=""){
			            sTourenBild = "<img src='"+sTourenBild+"' title='"+sTourenname+"' style='float:left; padding-right:5px;'>";
			        }
    /*			    var sTourinfo = xmlObj.getElementsByTagName("tourinfo")[i].getAttribute("INFO");
			        if(sTourinfo==null || sTourinfo=="null")
			            sTourinfo = "";*/
			        var sTourbeschreibung = xmlObj.getElementsByTagName("toureninfoall")[i].getAttribute("BESCHREIBUNG");
			        if(sTourbeschreibung==null || sTourbeschreibung=="null")
			            sTourbeschreibung = "";
			        document.getElementById("Tourenbeschreibung").innerHTML = sTourenBild + sTourbeschreibung;
			        document.getElementById("Tourname").innerHTML = sTourenname;
				    var innerDiv = document.getElementById("innerDiv");
				    var div = document.getElementById("tour"+canvasid)
				    if (div == null)
				    {
					    div = document.createElement("div");
					    div.id = "tour"+canvasid;
				    }
				    try
				    {
                       // debugger;				    
				      //  var hintergrund=xmlObj.getElementsByTagName("toureninfoall")[i].firstChild.nodeValue;
                                        
					    div.innerHTML = xmlObj.getElementsByTagName("toureninfoall")[i].firstChild.nodeValue;//+hintergrund;
					    
				    } catch(e)
				    {
					    div.innerHTML = "";
					   // alert("Diese Tour ist leer!");
				    }
				    innerDiv.appendChild(div);
                    // Funktion zum malen einer Route in Firefox
                    if(strKoordinaten!="-"){
    			        var strKoordinatenreal = xmlObj.getElementsByTagName("toureninfoall")[i].getAttribute("koordinatenreal");
    			        var iMaxX = xmlObj.getElementsByTagName("toureninfoall")[i].getAttribute("MaxX");
    			        var iMaxY = xmlObj.getElementsByTagName("toureninfoall")[i].getAttribute("MaxY");
    			        var iMinX = xmlObj.getElementsByTagName("toureninfoall")[i].getAttribute("MinX");
    			        var iMinY = xmlObj.getElementsByTagName("toureninfoall")[i].getAttribute("MinY");
    			        var Style = xmlObj.getElementsByTagName("toureninfoall")[i].getAttribute("Style");
    			        var fgcolor = xmlObj.getElementsByTagName("toureninfoall")[i].getAttribute("fgcolor");
    			        var bgcolor = xmlObj.getElementsByTagName("toureninfoall")[i].getAttribute("bgcolor");
        			    
    			        // Tour im Firefox zeichnen 
    			        TourZeichnenCanvas(strKoordinaten, iMaxX, iMaxY, iMinX, iMinY, strKoordinatenreal, Style, fgcolor, bgcolor,canvasid);
                        
                    }
                
                }
                
			}

            if (xmlObj.getElementsByTagName("tourinfo_start").length > 0)
			{	
			    var strKoordinaten = xmlObj.getElementsByTagName("tourinfo_start")[0].getAttribute("koordinaten");
			    var sTourenname= xmlObj.getElementsByTagName("tourinfo_start")[0].getAttribute("TOURNAME")+" (ca. "+xmlObj.getElementsByTagName("tourinfo_start")[0].getAttribute("LAENGE")+" km)";
			    var sTourenBild= xmlObj.getElementsByTagName("tourinfo_start")[0].getAttribute("BILD");
			    if(sTourenBild==null || sTourenBild=="null")
			        sTourenBild = "";
			    if(sTourenBild!=""){
			        sTourenBild = "<img src='"+sTourenBild+"' title='"+sTourenname+"' style='float:left; padding-right:5px;'>";
			    }
/*			    var sTourinfo = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("INFO");
			    if(sTourinfo==null || sTourinfo=="null")
			        sTourinfo = "";*/
			    var sTourbeschreibung = xmlObj.getElementsByTagName("tourinfo_start")[0].getAttribute("BESCHREIBUNG");
			    if(sTourbeschreibung==null || sTourbeschreibung=="null")
			        sTourbeschreibung = "";
			    document.getElementById("d_info_touren_content").innerHTML = sTourenBild + sTourbeschreibung;
			    
			    //document.getElementById("Tourname").innerHTML = sTourenname;
				var innerDiv = document.getElementById("mapoverview");
				var div = document.getElementById("smalltour")
				if (div == null)
				{
					div = document.createElement("div");
					div.id = "smalltour";
				}
				try
				{
					div.innerHTML = xmlObj.getElementsByTagName("tourinfo_start")[0].firstChild.nodeValue;
					
				} catch(e)
				{
					div.innerHTML = "";
					alert("Diese Tour ist leer!");
				}
				innerDiv.appendChild(div);
                // Funktion zum malen einer Route in Firefox
                if(strKoordinaten!="-"){
    			    var strKoordinatenreal = xmlObj.getElementsByTagName("tourinfo_start")[0].getAttribute("koordinatenreal");
    			    var iMaxX = xmlObj.getElementsByTagName("tourinfo_start")[0].getAttribute("MaxX");
    			    var iMaxY = xmlObj.getElementsByTagName("tourinfo_start")[0].getAttribute("MaxY");
    			    var iMinX = xmlObj.getElementsByTagName("tourinfo_start")[0].getAttribute("MinX");
    			    var iMinY = xmlObj.getElementsByTagName("tourinfo_start")[0].getAttribute("MinY");
    			    var Style = xmlObj.getElementsByTagName("tourinfo_start")[0].getAttribute("Style");
    			    var fgcolor = xmlObj.getElementsByTagName("tourinfo_start")[0].getAttribute("fgcolor");
    			    var bgcolor = xmlObj.getElementsByTagName("tourinfo_start")[0].getAttribute("bgcolor");
    			    
    			    // Tour im Firefox zeichnen 
                    TourZeichnenCanvas_start(strKoordinaten, iMaxX, iMaxY, iMinX, iMinY, strKoordinatenreal, Style, fgcolor, bgcolor);
                }
                
			}




			if (xmlObj.getElementsByTagName("routeinfo").length > 0)
			{			
			    var strKoordinaten = xmlObj.getElementsByTagName("routeinfo")[0].getAttribute("koordinaten");
				var innerDiv = document.getElementById("innerDiv");

				var div = document.getElementById("route")
				if (div == null)
				{
					div = document.createElement("div");
					div.id = "route";
				}
				try
				{
					div.innerHTML = xmlObj.getElementsByTagName("routeinfo")[0].firstChild.nodeValue;
				} catch(e)
				{
					div.innerHTML = "";
					alert("Route kann nicht ermittelt werden!\r\nGibt es eine Verbindung zwischen Start- und Zielpunkt?");                
				}
                if(strKoordinaten=="-")
                    innerDiv.appendChild(div);
                else{ // Firefox
                    
                    var Style = xmlObj.getElementsByTagName("routeinfo")[0].getAttribute("Style");
    			    var fgcolor = xmlObj.getElementsByTagName("routeinfo")[0].getAttribute("fgcolor");
    			    var bgcolor = xmlObj.getElementsByTagName("routeinfo")[0].getAttribute("bgcolor");
                    RoutingZeichnenCanvas(strKoordinaten, Style, fgcolor, bgcolor);
                }
			}	


            if (xmlObj.getElementsByTagName("Gewinnspiel").length > 0)
			{	
			    if(xmlObj.getElementsByTagName("success").length>0){
			        document.getElementById("Gewinnspiel").innerHTML="<br><br><center>Teilnahme erfolgreich.</center><br><br>";
			    }
			    
			    if(xmlObj.getElementsByTagName("error").length>0){
			        document.getElementById("gewinnspiel_fehler").innerHTML=xmlObj.getElementsByTagName("error")[0].getAttribute("error");
			    }
			
			
			}


			if (xmlObj.getElementsByTagName("tourauswahl").length > 0)
			{			
				try
				{
					document.getElementById("selTourAuswahl").innerHTML = xmlObj.getElementsByTagName("tourauswahl")[0].getAttribute("touren");
				} catch(e)
				{
					alert("Keine weiteren Touren gefunden");                
				}
			}	
			
			
			if (xmlObj.getElementsByTagName("tourorte").length > 0)
			{	
					
				try
				{
				    document.getElementById("d_Tourenorte_content2").innerHTML = xmlObj.getElementsByTagName("tourorte")[0].getAttribute("orte");
					document.getElementById("d_Tourenorte_content").innerHTML = xmlObj.getElementsByTagName("tourorte")[0].getAttribute("orte");
					if(xmlObj.getElementsByTagName("tourorte")[0].getAttribute("pos")=="true")
					GetMapObject(this.id).SetCenter(xmlObj.getElementsByTagName("tourorte")[0].getAttribute("startx"), xmlObj.getElementsByTagName("tourorte")[0].getAttribute("starty"));
				} catch(e)
				{
					document.getElementById("d_Tourenorte_content").innerHTML = "Keine orte an der Tour";               
					document.getElementById("d_Tourenorte_content2").innerHTML = "Keine orte an der Tour";
				}
			}	
			
			if (xmlObj.getElementsByTagName("poi").length > 0)
			{
				var strTestId = "";
				for (var i=0;i<xmlObj.getElementsByTagName("poi").length;i++)
				{
					// POIs erhalten
					var kx=xmlObj.getElementsByTagName("poi")[i].getAttribute("kx");
					var ky=xmlObj.getElementsByTagName("poi")[i].getAttribute("ky");
					
					var tileName = "?ky="+ky+"&kx="+kx+"&level="+thisObj.zoomlevel;
    
					var div = document.getElementById(tileName);
					// POIs einfügen hier
					if (div != null)
					{
						var id=xmlObj.getElementsByTagName("poi")[i].getAttribute("id");
						if(id!="0"){
							strTestId+=";"+id+";";
							var elId = document.getElementById(id);
							if(elId == null){
								var icon=xmlObj.getElementsByTagName("poi")[i].getAttribute("icon");
								var x=xmlObj.getElementsByTagName("poi")[i].getAttribute("x");
								var y=xmlObj.getElementsByTagName("poi")[i].getAttribute("y");
								var name=xmlObj.getElementsByTagName("poi")[i].getAttribute("name");
								var cat=xmlObj.getElementsByTagName("poi")[i].getAttribute("cat");
								var customId=xmlObj.getElementsByTagName("poi")[i].getAttribute("customid");
								x=x-thisObj.links;
								y=y-thisObj.unten;
								x=x/thisObj.meterX;
								y=y/thisObj.meterY;
								var img2 = document.createElement("img");
								img2.src = icon;
								img2.style.position = "absolute";
								img2.style.left = x-12 + "px";
								img2.style.top = y-12 + "px";
								img2.style.cursor="pointer";
								img2.style.zIndex=210;
								img2.onclick=thisObj.onpoiclick;
								img2.alt=name;
								img2.title=name;
								img2.id=id;
								img2.customId=customId;
								img2.name=cat;
								div.appendChild(img2);
							}
						}
					}
					try{
						var imgs3 = div.getElementsByTagName("img");
						while(idx<imgs3.length)
						{
							if(strTestId.replace(";"+imgs3[idx].id+";", "")==strTestId){
                                if (imgs3[idx].id != "maptile")
                                {
								    div.removeChild(imgs3[idx]);
                                }
							}
							else{
								idx++;
							}
						}
					}
					catch(err){
						//alert("Ladefehler:"+err);
					}
					
				}
				
				
				
			 theMap.loading-=1;
		     if(theMap.loading<=0){
		     document.getElementById('transparentLayer').style.visibility='hidden';
		     window.clearTimeout(this.transLayerTimeout);
		     }
		     setPOIIcon();
		     
			}
			
			if (xmlObj.getElementsByTagName("bahnhof").length > 0)
			{
				var strTestId = "";
				for (var i=0;i<xmlObj.getElementsByTagName("bahnhof").length;i++)
				{
					// POIs erhalten
					var kx=xmlObj.getElementsByTagName("bahnhof")[i].getAttribute("kx");
					var ky=xmlObj.getElementsByTagName("bahnhof")[i].getAttribute("ky");
					
					var tileName = "?ky="+ky+"&kx="+kx+"&level="+thisObj.zoomlevel;
    
					var div = document.getElementById(tileName);
					// POIs einfügen hier
					if (div != null)
					{
						var id=xmlObj.getElementsByTagName("bahnhof")[i].getAttribute("id");
						if(id!="0"){
							strTestId+=";"+id+";";
							var elId = document.getElementById(id);
							if(elId == null){
								var icon=xmlObj.getElementsByTagName("bahnhof")[i].getAttribute("icon");
								var x=xmlObj.getElementsByTagName("bahnhof")[i].getAttribute("x");
								var y=xmlObj.getElementsByTagName("bahnhof")[i].getAttribute("y");
								var name=xmlObj.getElementsByTagName("bahnhof")[i].getAttribute("name");
								var cat=xmlObj.getElementsByTagName("bahnhof")[i].getAttribute("cat");
								var customId=xmlObj.getElementsByTagName("bahnhof")[i].getAttribute("customid");
								x=x-thisObj.links;
								y=y-thisObj.unten;
								x=x/thisObj.meterX;
								y=y/thisObj.meterY;
								var img2 = document.createElement("img");
								img2.src = icon;
								img2.style.position = "absolute";
								img2.style.left = x-12 + "px";
								img2.style.top = y-12 + "px";
								img2.style.cursor="pointer";
								img2.style.zIndex=210;
								img2.onclick=thisObj.onbahnhofclick;
								img2.alt=name;
								img2.title=name;
								img2.id=id;
								img2.customId=customId;
								img2.name=cat;
								div.appendChild(img2);
							}
						}
					}
					try{
						var imgs3 = div.getElementsByTagName("img");
						while(idx<imgs3.length)
						{
							if(strTestId.replace(";"+imgs3[idx].id+";", "")==strTestId){
                                if (imgs3[idx].id != "maptile")
                                {
								    div.removeChild(imgs3[idx]);
                                }
							}
							else{
								idx++;
							}
						}
					}
					catch(err){
						//alert("Ladefehler:"+err);
					}
					
				}
			 theMap.loading-=1;
		     if(theMap.loading<=0){
		     document.getElementById('transparentLayer').style.visibility='hidden';
		     window.clearTimeout(this.transLayerTimeout);
		     }
		     
			}
			
			
			//MedienLayer anzeigen
			if (xmlObj.getElementsByTagName("media").length > 0)
			{
				var strTestId = "";
				for (var i=0;i<xmlObj.getElementsByTagName("media").length;i++)
				{
					// POIs erhalten
					var kx=xmlObj.getElementsByTagName("media")[i].getAttribute("kx");
					var ky=xmlObj.getElementsByTagName("media")[i].getAttribute("ky");
					
					var tileName = "?ky="+ky+"&kx="+kx+"&level="+thisObj.zoomlevel;
    
					var div = document.getElementById(tileName);
					// Media einfügen hier
					if (div != null)
					{
						var id=xmlObj.getElementsByTagName("media")[i].getAttribute("id");
						if(id!="0"){
							strTestId+=";"+id+";";
							var elId = document.getElementById(id);
							if(elId == null){
								var icon=xmlObj.getElementsByTagName("media")[i].getAttribute("icon");
								var x=xmlObj.getElementsByTagName("media")[i].getAttribute("x");
								var y=xmlObj.getElementsByTagName("media")[i].getAttribute("y");
								var name=xmlObj.getElementsByTagName("media")[i].getAttribute("name");
								var cat=xmlObj.getElementsByTagName("media")[i].getAttribute("cat");
								var customId=xmlObj.getElementsByTagName("media")[i].getAttribute("customid");
								x=x-thisObj.links;
								y=y-thisObj.unten;
								x=x/thisObj.meterX;
								y=y/thisObj.meterY;
								var img2 = document.createElement("img");
								img2.src = icon;
								img2.style.position = "absolute";
								img2.style.left = x-12 + "px";
								img2.style.top = y-12 + "px";
								img2.style.cursor="pointer";
								img2.style.zIndex=208;
								img2.onclick=thisObj.onmediaclick;
								img2.alt=name;
								img2.title=name;
								img2.id="m"+id;
								img2.customId=customId;
								theMap.Medialink["m"+id]=customId;
								img2.name=cat;
								div.appendChild(img2);
							}
						}
					}
					try{
						var imgs3 = div.getElementsByTagName("img");
						while(idx<imgs3.length)
						{
							if(strTestId.replace(";"+imgs3[idx].id+";", "")==strTestId){
                                if (imgs3[idx].id != "maptile")
                                {
								    div.removeChild(imgs3[idx]);
                                }
							}
							else{
								idx++;
							}
						}
					}
					catch(err){
						//alert("Ladefehler:"+err);
					}
					
				}
				
				
			
			 theMap.loading-=1;
		        if(theMap.loading<=0){
		        document.getElementById('transparentLayer').style.visibility='hidden';
		        window.clearTimeout(this.transLayerTimeout);
		        }
				
			}
			
			if (xmlObj.getElementsByTagName("XpunkteDaten").length > 0)
			{
			
			
			for (var i=0;i<xmlObj.getElementsByTagName("Xpunkte").length;i++)
			{
			
			var xpid=xmlObj.getElementsByTagName("Xpunkte")[i].getAttribute("Abzweigungsid");
			if(KreuzungspunkteArray[xpid]==null){
			    KreuzungspunkteArray[xpid]=new Array();
			    Kreuzungspunkteliste+=","+xpid;    
			    KreuzungspunkteArray[xpid][0]=xmlObj.getElementsByTagName("Xpunkte")[i].getAttribute("Ueberschrift")
			    KreuzungspunkteArray[xpid][1]=xmlObj.getElementsByTagName("Xpunkte")[i].firstChild.nodeValue;    
			}
			document.getElementById("d_information_box").style.display="block";
			document.getElementById("d_inforamtionen_header").style.display="block";
			
			
			}
			
			var Xpunkte = document.createElement("div");
			Xpunkte.innerHTML="<br><div style='float:right' class='d_Ausgangstour' onclick='ausgangsTour();'>zur Ausgangstour</div><br style='clear:both;'><br>";

            Xpunktearr=Kreuzungspunkteliste.split(",");
            for(var j=1;j<Xpunktearr.length;j++){
                Xpunkte.innerHTML+=KreuzungspunkteArray[Xpunktearr[j]][0]+KreuzungspunkteArray[Xpunktearr[j]][1];
           
            }
            		    
            document.getElementById("infos").removeChild(document.getElementById("infos").firstChild);
            document.getElementById("infos").appendChild(Xpunkte); 
            
        
           for(var j=1;j<Xpunktearr.length;j++){
                document.getElementById("Kreuzungspunkt_"+Xpunktearr[j]).style.display='none';
           }
           
            document.getElementById("Kreuzungspunkt_"+xpid).style.display='block';
			
		   for(var i=0; i<theMap.currentTourenAnzahl;i++){
               document.getElementById("chk_Tour_"+theMap.currentTouren[i]).checked=true;
           }
           
           showreiterKreuzungspunkte(false);
			
			/*
			    if(xmlObj.getElementsByTagName("XpunkteDaten")[0].getAttribute("Hinweis")!=null)
			        document.getElementById("XPHinweis").innerHTML=xmlObj.getElementsByTagName("XpunkteDaten")[0].getAttribute("Hinweis");
			    if(xmlObj.getElementsByTagName("XpunkteDaten")[0].getAttribute("Ueberschrift")!=null)
			        document.getElementById("XPUeberschrift").innerHTML=xmlObj.getElementsByTagName("XpunkteDaten")[0].getAttribute("Ueberschrift");
			    if(xmlObj.getElementsByTagName("XpunkteDaten")[0].getAttribute("Abzweigungsid")!=null)
			        document.getElementById("Abzweigungsid").innerHTML=xmlObj.getElementsByTagName("XpunkteDaten")[0].getAttribute("Abzweigungsid");
			    
			       document.getElementById("XPcontentright").innerHTML=xmlObj.getElementsByTagName("XpunkteDaten")[0].firstChild.nodeValue;
			        
			    showBox('xPunkte');
			    
			    */
			}
			
					//xPunkteLayer anzeigen
			if (xmlObj.getElementsByTagName("xpunkte").length > 0)
			{
				var strTestId = "";
				for (var i=0;i<xmlObj.getElementsByTagName("xpunkte").length;i++)
				{
					// POIs erhalten
					var kx=xmlObj.getElementsByTagName("xpunkte")[i].getAttribute("kx");
					var ky=xmlObj.getElementsByTagName("xpunkte")[i].getAttribute("ky");
					
					var tileName ;
					if(thisObj!=null)
					    tileName= "?ky="+ky+"&kx="+kx+"&level="+thisObj.zoomlevel;
					else
					    tileName= "?ky="+ky+"&kx="+kx+"&level=3";
    
					var div = document.getElementById(tileName);
					// Xpunkte einfÃ¼gen hier
					if (div != null)
					{
						var id=xmlObj.getElementsByTagName("xpunkte")[i].getAttribute("id");
						if(id!="0"){
							strTestId+=";"+id+";";
							var elId = document.getElementById(id);
							if(elId == null){
								var icon=xmlObj.getElementsByTagName("xpunkte")[i].getAttribute("icon");
								var x=xmlObj.getElementsByTagName("xpunkte")[i].getAttribute("x");
								var y=xmlObj.getElementsByTagName("xpunkte")[i].getAttribute("y");
								var name=xmlObj.getElementsByTagName("xpunkte")[i].getAttribute("name");
								var cat=xmlObj.getElementsByTagName("xpunkte")[i].getAttribute("cat");
								var customId=xmlObj.getElementsByTagName("xpunkte")[i].getAttribute("customid");
								x=x-theMap.links;
								y=y-theMap.unten;
								x=x/theMap.meterX;
								y=y/theMap.meterY;
								var img2 = document.createElement("img");
								img2.src = "mapcontrol/images/icons/xpunkte.png";
								img2.style.position = "absolute";
								img2.style.left = x-12 + "px";
								img2.style.top = y-12 + "px";
								img2.style.cursor="pointer";
								img2.style.zIndex=206;
								img2.onclick=theMap.onxpclick;
								img2.alt=name;
								img2.title=name;
								img2.id="xp"+id;
								img2.customId=customId;
								theMap.Medialink[id]=customId;
								img2.name=cat;
								div.appendChild(img2);
							}
						}
					}
					try{
						var imgs3 = div.getElementsByTagName("img");
						while(idx<imgs3.length)
						{
							if(strTestId.replace(";"+imgs3[idx].id+";", "")==strTestId){
                                if (imgs3[idx].id != "maptile")
                                {
								    div.removeChild(imgs3[idx]);
                                }
							}
							else{
								idx++;
							}
						}
					}
					catch(err){
						//alert("Ladefehler:"+err);
					}
					
				}
				
				
			
			 theMap.loading-=1;
		        if(theMap.loading<=0){
		        document.getElementById('transparentLayer').style.visibility='hidden';
		        window.clearTimeout(this.transLayerTimeout);
		        }
				
			}
			if (xmlObj.getElementsByTagName("SuchergebnissOrtbyKoord").length > 0)
			{
			    if(xmlObj.getElementsByTagName("Ort").length>0){
    		        document.getElementById('suche_ortsname').value=xmlObj.getElementsByTagName("Ort")[0].getAttribute("Name");
			    }
			
			}
			
			if (xmlObj.getElementsByTagName("SuchergebnissOrt").length > 0)
			{
			    if(xmlObj.getElementsByTagName("Ort").length>0){
			        var div="<div><b>Bitte Ort auswählen!</b></div>";
			        for(var i=0;i<xmlObj.getElementsByTagName("Ort").length;i++){
			            
			            div+="<div class='pointer' onclick='setOrt(\""+xmlObj.getElementsByTagName("Ort")[i].getAttribute("Name")+"\",\""+xmlObj.getElementsByTagName("Ort")[i].getAttribute("Ortid")+"\",\""+xmlObj.getElementsByTagName("Ort")[i].getAttribute("Koord_x")+"\",\""+xmlObj.getElementsByTagName("Ort")[i].getAttribute("Koord_y")+"\")'>"+xmlObj.getElementsByTagName("Ort")[i].getAttribute("Name")+"</div>";
			        }
    			    document.getElementById("Ortsergebnisse").innerHTML=div;
    			    document.getElementById("Ortsergebnisse").style.display="block";
			    
			    }else{
			        document.getElementById("Ortsergebnisse").innerHTML="Kein Ort gefunden.";
			        document.getElementById("Ortsergebnisse").style.display="block";
			    }
			
			}
			
			if (xmlObj.getElementsByTagName("Suchergebniss").length > 0)
			{
			
			   
			    
			    
			    
			    var SuchergebnissTour="";
			    var SuchergebnissPOI="";
			    var SuchergebnissPOI2="";
			    suchePOIids="";
			    
			    var innerDiv= document.getElementById("innerDiv");
			    var div=innerDiv.getElementsByTagName("div");
			    
			    for(var i=0;i<div.length;i++){
			     if(div[i].id!=null && div[i].id.indexOf("tour")!=-1){
	                    div[i].parentNode.removeChild(div[i]);
	                    i--;
	                    }
	                    
	             }
			    
			    
//			    if(xmlObj.getElementsByTagName("Suchergebniss")[0].getAttribute("showOrt")=="True"){
//			    
//			        var Ort=xmlObj.getElementsByTagName("Ort");
//			    
//			        if(Ort.length==0)
//			            document.getElementById("SucheErgebniss").innerHTML="Kein Treffer gefunden";
//			        else if(Ort.length==1)
//			            showSuchtreffer(Ort[0].getAttribute("Koord_x"),Ort[0].getAttribute("Koord_y"),"","");
//			        else{
//			            for(var iOrt=0;iOrt<xmlObj.getElementsByTagName("Ort").length;iOrt++)
//			                Suchergebniss+="<div onclick='showSuchtreffer("+Ort[iOrt].getAttribute("Koord_x")+","+Ort[iOrt].getAttribute("Koord_y")+",\"\",\"\");' class='pointer'>"+Ort[iOrt].getAttribute("Name")+"</div>";
//			            
//			            document.getElementById("SucheErgebniss").innerHTML=Suchergebniss;
//			         }   
//			    
//			    }else{
			        for(var iOrt=0;iOrt<xmlObj.getElementsByTagName("Ort").length;iOrt++){
    			    
    			        theMap.SetCenter(xmlObj.getElementsByTagName("Ort")[0].getAttribute("Koord_x"), xmlObj.getElementsByTagName("Ort")[0].getAttribute("Koord_y"));
    			        
    			        var selRadius=document.getElementById("suche_radius");
                        var Radius=selRadius.options[selRadius.selectedIndex].value;
    			        if(Radius>4)
    			            new_zoomlevel=2;
    			        else
    			            new_zoomlevel=1;
    			        
    			        setZoom(new_zoomlevel);
    			        document.getElementById('massstabAnzeige').value=theMap.m_massstabarray[m_zoomid];
    			        theMap.SetWMSBase(theMap.arrWMS[m_zoomid+theMap.iLayer]);
    			        MassstabSetzen();
    			    
			            var Ort=xmlObj.getElementsByTagName("Ort")[iOrt];
			          //  Suchergebniss+="<div style='font-size:13px;font-weight:bold;'>"+Ort.getAttribute("Name")+"</div>";
    			    
			            if(Ort.getElementsByTagName("Tour").length>0)
			                  document.getElementById("suche_tour_anzahl").innerHTML=Ort.getElementsByTagName("Tour").length+" Treffer";
			                else
			                  document.getElementById("suche_tour_anzahl").innerHTML="keine Treffer";
			                
			            for(var iTour=0;iTour<Ort.getElementsByTagName("Tour").length;iTour++){    
			                var Tour=Ort.getElementsByTagName("Tour")[iTour];
			                SuchergebnissTour+="<div style='padding-left:20px;padding-bottom:6px;' class='pointer' onclick='showSuchtreffer(\"\",\"\","+Tour.getAttribute("tourid")+",\"\")'>"+Tour.getAttribute("name")+"</div>";
			                LoadALLTourSuche(Tour.getAttribute("tourid"));
			            }
			            
			            
    			    
    			        
                        if(Ort.getElementsByTagName("POI").length>0)
		                  document.getElementById("suche_poi_anzahl").innerHTML=Ort.getElementsByTagName("POI").length+" Treffer";
		                else
		                  document.getElementById("suche_poi_anzahl").innerHTML="keine Treffer";
		                  
			            for(var iPOI=0;iPOI<Ort.getElementsByTagName("POI").length;iPOI++){    
			                var POI=Ort.getElementsByTagName("POI")[iPOI];
			                SuchergebnissPOI+="<div style='padding-left:20px;padding-bottom:6px;' class='pointer' onclick='showSuchtreffer(\"\",\"\",\"\",new Array("+POI.getAttribute("poiid")+","+POI.getAttribute("koord_x")+","+POI.getAttribute("koord_y")+",\""+POI.getAttribute("symbol")+"\",\"Suchergebniss\"))'>"+POI.getAttribute("name")+"</div>";
			                if(suchePOIids!="")
			                    suchePOIids+=","+POI.getAttribute("poiid");
			                else
			                    suchePOIids=POI.getAttribute("poiid");
			            }
			            
			            
			            if(Ort.getElementsByTagName("POI2").length>0)
		                  document.getElementById("suche_poi2_anzahl").innerHTML=Ort.getElementsByTagName("POI2").length+" Treffer";
		                else
		                  document.getElementById("suche_poi2_anzahl").innerHTML="keine Treffer";
		                  
			            for(var iPOI=0;iPOI<Ort.getElementsByTagName("POI2").length;iPOI++){    
			                var POI=Ort.getElementsByTagName("POI2")[iPOI];
			                SuchergebnissPOI2+="<div style='padding-left:20px;padding-bottom:6px;' class='pointer' onclick='showSuchtreffer(\"\",\"\",\"\",new Array("+POI.getAttribute("poiid")+","+POI.getAttribute("koord_x")+","+POI.getAttribute("koord_y")+",\""+POI.getAttribute("symbol")+"\",\"Suchergebniss\"))'>"+POI.getAttribute("name")+"</div>";
			                if(suchePOIids!="")
			                    suchePOIids+=","+POI.getAttribute("poiid");
			                else
			                    suchePOIids=POI.getAttribute("poiid");
			            }
			            
    			        
			        }
			        document.getElementById("d_suchetouren_content").innerHTML=SuchergebnissTour;
			        document.getElementById("d_suchepoi_content").innerHTML=SuchergebnissPOI;
			        document.getElementById("d_suchepoi2_content").innerHTML=SuchergebnissPOI2;
			        
			        if(Ort.getElementsByTagName("Tour").length>0)
			            menueSuche('d_suchetouren');
			        else if(Ort.getElementsByTagName("POI").length>0){
			            menueSuche('d_suchepoi');

			            }
		            
 			            PoiKategorienAnzeigen();
		           
			}
			
	
			
			
			
			
			requestActive=false;
			if (ajaxQueue.length() > 0)
			{
				var url=ajaxQueue.dequeue();
//				var a = ""+thisObj;
				
				//loadXMLDoc(url,thisObj);
                setTimeout(function(){loadXMLDoc(url,thisObj)},1);
				//setTimeout(thisObj+"loadXMLDoc('"+url+"');",1);
			}
		  }
		  else
		  {
			alert("Problem retrieving XML data");
		  }
		}
		
    }
	

	function setSmallOverview()
	{
		omX= 271.44056978382326;
		omY=-265.95000331177988;
		oL=3547929;
		oU=5957566;
		var mapoverview = document.getElementById("mapoverview");
		//mapoverview.style.backgroundImage="url('images/uebersichtskarte_map.gif')";
		updateUebersichtskarte();
	}

	function setLargeOverview()
	{
		omX= 3592.9629;
		omY=-2907.6212;
		oL=3338362;
		oU=6113751;
		var mapoverview = document.getElementById("mapoverview");
	//	mapoverview.style.backgroundImage="url('images/uebersichtskarte_map_gross.gif')";
		updateUebersichtskarte();
	}


	
	
	// Setzt den Click-Mode fürs Routing
	//0=nix
	//1=Start
	//2=Ziel
	//3=Zwischenpunkt
	function setRoutingClickMode(mode)
	{
		clickMode = mode;
	}
			
	function tourClicked(event)
	{
		// notwendig für IE
		if (!event) event = window.event;
		var outerDiv = document.getElementById("outerDiv");
		var y = -stripPx(outerDiv.offsetTop)+event.clientY;
		var x = -stripPx(outerDiv.offsetLeft)+event.clientX;
		var gc = TransformMousePosToGeoCoord(x,y);
		
		switch(clickMode)
		{
			case 1:
				startPoint[0]=gc[0];
				startPoint[1]=gc[1];
				setFixedPOIAt(startPoint,"start.gif");
				break;
			case 2:
				endPoint[0]=gc[0];
				endPoint[1]=gc[1];
				setFixedPOIAt(endPoint,"ziel.gif");
				break;
			case 3:
				// Hier:Zwischenpunkt hinzufügen
			break;
		}
	}
	
	// Startet das Routing
	function startRouting()
	{
		if (startPoint[0] != 0)
		{
			var sx = startPoint[0];
			var sy = startPoint[1];
			if (endPoint[0] != 0)        
			{
				var ex = endPoint[0];
				var ey = endPoint[1];
				var url = "GetRoute.aspx?x="+links+"&y="+unten+"&w="+meterX+"&h="+meterY+"&tourId=213&sx="+sx+"&sy="+sy+"&ex="+ex+"&ey="+ey;
				loadXMLDoc(url);
			}
			else
			{
				alert("Kein Ziel gesetzt!");
			}
		}
		else
		{
			alert("Kein Startpunkt gesetzt!");
		}
	}
	
	// visibility: boolean
	// categoryid: int
	function setPOICategory(categoryId, visibility)
	{
		var theVisibility = "hidden";
		if (visibility==true)
			theVisibility="visible";
		
		poiCatVisibilityMap[categoryId]=theVisibility;
		
		var innerDiv = document.getElementById("innerDiv");
		var divs = innerDiv.getElementsByTagName("div");
		for (i = 0; i < divs.length; i++)
		{
			var images = divs[i].getElementsByTagName("img");
			for (j = 0; j < images.length; j++)
			{
				var cat = images[j].getAttribute("name");
				if (parseInt(cat) == parseInt(categoryId))
				{
					images[j].style.visibility=theVisibility;
				}
			}
		}
	}        

	

	// Zeigt den Maßsstab an
	function setMassstab(){
		m1 = document.getElementById("massstab"); // Massstab
		m2 = document.getElementById("massstab_schatten"); // Schatten
		/*if(zoomlevel==0){
			m1.innerHTML = "1:37.500";
			m2.innerHTML = "1:37.500";
		}
		else if(zoomlevel==1){
			m1.innerHTML = "1:75.000";
			m2.innerHTML = "1:75.000";
		}
		else if(zoomlevel==2){
			m1.innerHTML = "1:150.000";
			m2.innerHTML = "1:150.000";
		}
		else if(zoomlevel==3){
			m1.innerHTML = "1:300.000";
			m2.innerHTML = "1:300.000";
		}
		else if(zoomlevel==4){
			m1.innerHTML = "1:600.000";
			m2.innerHTML = "1:600.000";
		}*/
		updateZoomAnzeige()
	}
	
	function toggleMap(mapname, levels)
	{
		center = getCenter();
		map = mapname;
		maxZoomLevel = levels;
		zoomlevel=0;
		toggleZoom();
		updateEichung();
		updateZoomButtons();
		setMassstab(); // Dreieck verschieben, massstab benennen
	}

	function updateZoomButtons()
	{
		return;
		if (zoomlevel == 0)
		{
			document.getElementById("btnZoomIn").disabled=true;
			document.getElementById("btnZoomOut").disabled=false;
		} else {
			if (zoomlevel == maxZoomLevel)
			{
				document.getElementById("btnZoomIn").disabled=false;
				document.getElementById("btnZoomOut").disabled=true;
			} else {
				document.getElementById("btnZoomIn").disabled=false;
				document.getElementById("btnZoomOut").disabled=false;
			}
		}
	}
	
	// Verschiebt das Dreieck über den Zoom-Buttons
	function updateZoomAnzeige(){
		if(zoomlevel==0)
			document.getElementById("zoomAnzeige").style.left= "32px";
		else{
			document.getElementById("zoomAnzeige").style.left= (30 - (zoomlevel*Math.round((30/maxZoomLevel))))+"px";
		}
		
		// Zeigt den Pointer wenn eine Suche ausgeführt wurde
		try{
			if(arrSucheGewaehlt.length==2){
				setTimeout('setFixedSucheAt(arrSucheGewaehlt, "pointer.gif");', 1000);
			}
		}
		catch(Exception){}
	}    
		
	function toggleOverview()
	{
		var uebersichtskarte = document.getElementById("uebersichtskarte");
		if (uebersichtskarte.style.visibility == "visible")
		{
			uebersichtskarte.style.visibility="hidden";
			ButtonKlickHintergrund("bgUebersichtskarte", "images/uebersichtskarte.gif");
			ButtonKlickText("txtUebersichtskarte", "ausklappen");
		} else {
			uebersichtskarte.style.visibility="visible";
			ButtonKlickHintergrund("bgUebersichtskarte", "images/uebersichtskarte_00.gif");
			ButtonKlickText("txtUebersichtskarte", "einklappen");
			updateUebersichtskarte();
		}
	}

	
	function updateEichung()
	{
		loadXMLDoc("./GetKachel.aspx?getMapData=1&map="+map+"&level="+zoomlevel);
	}
	
	function POIClick(event) {  
	      
		if (!event) event = window.event;
		var visitenkarte = document.getElementById("visitenkarte");
		var showVisitenkarte = 0;
		var srcElementId = "";
		if (!event.srcElement)
			srcElementId = event.target.id;
		else
			srcElementId = event.srcElement.id;
		iPoiAnzeige = 0;
		if (srcElementId == lastClickedItem)
		{
			if (visitenkarte.style.visibility == "visible")
			{
				showVisitenkarte = 0;
			}
			else {
				showVisitenkarte = 1;
			}
		}
		else
		{
			loadXMLDoc("./GetVisitenkarte.aspx?poiId="+srcElementId+"&spracheId="+strSpracheId+"&poiAnzeige="+iPoiAnzeige);
			showVisitenkarte = 1;
		} 
		VisitenkarteBeenden(); // Schließen der Visitenkarte
		var outerDiv = document.getElementById("outerDiv");
		var x = event.clientX;//-outerDiv.offsetLeft;
		var y = event.clientY;//-outerDiv.offsetTop;
		setTimeout("MoveVisitenkarte("+x+", "+y+", "+showVisitenkarte+");",200);
		lastClickedItem = srcElementId;
		//if (!event) event = window.event;
		//dragStartLeft = event.clientX;
		//dragStartTop = event.clientY;
		//document.form1.submit();
		return false;
	}    
	
	function ShowLegende(){
		var legende = document.getElementById('Legende');
		if(iShowLegende==0 || legende.innerHTML==""){
			var strTmp = "<table><tr><td colspan='2'><b>Legende Highlight-Kategorien</b></td></tr>";
			for(var i = 0; i<iAnzahlKategorien; i++){
				if(i==0)
					strTmp += "<tr><td><img src='images/icons/sammel-poi.gif' width='12px'></td><td>&nbsp;Sammlung mehrerer Highlights</td></tr>";
				if(arrMenueKat[i][3]== "ukat" || arrMenueKat[i][3]=="noUkat"){
					strTmp += "<tr><td><img src='images/icons/"+arrMenueKat[i][5]+"' width='12px'></td><td>&nbsp;"+arrMenueKat[i][2]+"</td></tr>";
				}
				else{
					strTmp += "<tr><td><img src='images/icons/"+arrMenueKat[i][5]+"' width='12px'></td><td><nobr><i>&nbsp;&nbsp;-&nbsp;&nbsp;"+arrMenueKat[i][2]+"</i></nobr></td></tr>";
				}
			}
			strTmp += "</table>";
			strTmp += "<div style='position:absolute; top:-1px; left:224px; width:10px; border:solid 1px red; vertical-align:middle; text-align:center; cursor:hand; cursor:pointer;' onclick='ShowLegende();'>X</div>";
			legende.innerHTML = strTmp;
			legende.style.visibility="visible";
			iShowLegende=1;
		}
		else if(iShowLegende==1){
			legende.style.visibility="hidden";
			iShowLegende = 2;
		}
		else{
			legende.style.visibility="visible";
			document.getElementById('Merkerliste').style.visibility="hidden";
			ButtonKlick('imgNotizen', 'images/notizen.gif');
			iShowLegende = 1;
		}
			
	}
	

    function getms(start, stop)
    {
        var s1 = (stop.getMinutes()*60*100) + (stop.getSeconds()*1000) + stop.getMilliseconds();
        var s2 = (start.getMinutes()*60*100) + (start.getSeconds()*1000) + start.getMilliseconds();
        return parseInt(s1-s2);
    }
    

    //Funktion zum zeichnen der Touren im Firefox
    function TourZeichnenCanvas(strKoordinaten, iMaxX, iMaxY, iMinX, iMinY, strKoordinatenReal, Style, fgcolor, bgcolor,canvasid,canvasheight)
    { 
    
    var canvasheight2=canvasheight*3;
    
    var count_x=Math.ceil((iMaxX-iMinX)/canvasheight);
    var count_y=Math.ceil((iMaxY-iMinY)/canvasheight);
    
    for(x=1;x<=count_x;x++){
        for(y=1;y<=count_y;y++){
    
    
    //        var start = new Date();
            // Die Koordinaten stehen alle in einem String und müssen getrennt werden
            var arrKoordinaten = strKoordinaten.split(";;;");
            
            // Canvas erzeugen wenn es noch nicht existiert
            var canvas = document.getElementById("canvas"+canvasid+"_"+x+"_"+y);
            if(canvas==null){
                canvas = document.createElement("canvas");
                canvas.id="canvas"+canvasid+"_"+x+"_"+y;
            }
            // Höhe/Breite anhand der übergebenen Koordinaten bestimmen
    //        canvas.setAttribute('width', (iMaxX-iMinX+10)+''); 
    //        canvas.setAttribute('height', (iMaxY-iMinY+10)+'');
            
            var z=3*x;
            
//            canvas.style.backgroundColor="#"+z+z+z;
//            canvas.style.opacity = 50 / 100;
//            canvas.title="x:"+x+" y:"+y;
            var diffX=parseInt(iMinX)+parseInt((x-1)*canvasheight);
            var diffY=parseInt(iMinY)+parseInt((y-1)*canvasheight);
            
            // Zeichnen anfangen
            var ctx = canvas.getContext("2d");       
            var gezeichnetekoordinaten="";
            // gelbe Linie
            ctx.beginPath();
            ctx.lineWidth=6;
            ctx.strokeStyle = bgcolor;
            var iZaehlerKoordinaten = 0;
            var gezeichnet=false;
    //        var debuggString="";
            for(var i = 0; i<arrKoordinaten.length; i++){
                arrKoordinatenPaare = arrKoordinaten[i].split(";;");
                var move=true;
                for(idx = 0; idx<arrKoordinatenPaare.length; idx++){
                
                        arrKoords = arrKoordinatenPaare[idx].split(";");
                        
                        arrKoords[0]=parseInt(arrKoords[0]);
                        arrKoords[1]=parseInt(arrKoords[1]);
                        
                        var xtodraw=(arrKoords[0]-diffX+5);
                        var ytodraw=(arrKoords[1]-diffY+5)
                        
                  if(xtodraw>(-1)*(canvasheight2) && xtodraw<canvasheight2 && ytodraw>(-1)*(canvasheight2) && ytodraw<canvasheight2){

                        if(move==true){
                            ctx.moveTo(xtodraw,ytodraw );
           //                 debuggString+="ctx.moveTo("+xtodraw+","+ytodraw+");";
                            move=false;
                            }
                        else{
                            ctx.lineTo(xtodraw, ytodraw);
                            //debuggString+="ctx.lineTo("+xtodraw+", "+ytodraw+");";
                            }
                            iZaehlerKoordinaten++;
                   
                    
                    gezeichnet=true;       
                   }
                }
                
                
            }
            ctx.stroke();
            ctx.closePath();
         if(q.get("debugg")){
         
         //   document.getElementById("d_test").innerHTML=debuggString;
    
        
        }

//            if(x==5 && y==6){
//              document.getElementById('d_test').innerHTML=gezeichnetekoordinaten;
//              document.getElementById('d_test').style.display='block';
//              }
            
            
            if(gezeichnet){
            // blaue Linie
            ctx.strokeStyle = fgcolor;
            ctx.lineWidth=3;
            ctx.beginPath();
            arrTourstreckeKoord = new Array(iZaehlerKoordinaten);
            iZaehlerKoordinaten = 0;
            for(var i = 0; i<arrKoordinaten.length; i++){
                arrKoordinatenPaare = arrKoordinaten[i].split(";;");
                var move=true;
                for(var idx = 0; idx<arrKoordinatenPaare.length; idx++){
                    arrKoords = arrKoordinatenPaare[idx].split(";");
                    arrKoords[0]=parseInt(arrKoords[0]);
                    arrKoords[1]=parseInt(arrKoords[1]);
                    //arrTourstreckeKoord[iZaehlerKoordinaten] = new Array((arrKoords[0]), (arrKoords[1]));
                    
                   if((arrKoords[0]-diffX)>(-1)*(canvasheight2) && (arrKoords[0]-diffX)<canvasheight2 && (arrKoords[1]-diffY)>(-1)*(canvasheight2) && (arrKoords[1]-diffY)<canvasheight2){
                    
                        if(move==true){
                           ctx.moveTo((arrKoords[0]-diffX+5), (arrKoords[1]-diffY+5));
                           move=false;
                        }
                        else
                            ctx.lineTo((arrKoords[0]-diffX+5), (arrKoords[1]-diffY+5));
                      //      iZaehlerKoordinaten++;
                                
                   }
                }
            }
            ctx.stroke();
            ctx.closePath();
            
            var iXPosCanvas = (iMinX-5)+(x-1)*canvasheight;
            var iYPosCanvas = (iMinY-5)+(y-1)*canvasheight;
            canvas.style.left =  iXPosCanvas + "px";
            canvas.style.top =  iYPosCanvas+ "px";
            }else{
            
            canvas.parentNode.removeChild(canvas);
            }            
//            arrKoordinatenPaare = strKoordinatenReal.split(";;");
//            for(i = 0; i<arrKoordinatenPaare.length; i++){
//                arrKoords = arrKoordinatenPaare[i].split(";");
//                arrTourstreckeKoordReal[i] = new Array(arrKoords[0], arrKoords[1]);
//            }
            iCanvasMinX = iMinX;
            iCanvasMinY = iMinY;
            iCanvasMaxX = iMaxX;
            iCanvasMaxY = iMaxY;
    //        var stop = new Date();
//        alert( "Zeit:" + getms(start,stop));
        }
    }
  }
    
    
    //Funktion zum zeichnen der Tour2 im Firefox //Kreuzungspunkttour
    function TourZeichnenCanvas2(strKoordinaten, iMaxX, iMaxY, iMinX, iMinY, strKoordinatenReal, Style, fgcolor, bgcolor)
    { 
//        var start = new Date();
        // Die Koordinaten stehen alle in einem String und müssen getrennt werden
        var arrKoordinaten = strKoordinaten.split(";;;");
        
        // Canvas erzeugen wenn es noch nicht existiert
        var canvas = document.getElementById("canvas2");
        if(canvas==null){
            canvas = document.createElement("canvas");
            canvas.id="canvas2";
        }
        // Höhe/Breite anhand der übergebenen Koordinaten bestimmen
        canvas.setAttribute('width', (iMaxX-iMinX+10)+''); 
        canvas.setAttribute('height', (iMaxY-iMinY+10)+'');
        
        
        // Zeichnen anfangen
        var ctx = canvas.getContext("2d");       

        // gelbe Linie
        ctx.beginPath();
        ctx.lineWidth=6;
        ctx.strokeStyle = bgcolor;
        var iZaehlerKoordinaten = 0;
        for(var i = 0; i<arrKoordinaten.length; i++){
            arrKoordinatenPaare = arrKoordinaten[i].split(";;");
            for(idx = 0; idx<arrKoordinatenPaare.length; idx++){
            
                arrKoords = arrKoordinatenPaare[idx].split(";");
                if(idx==0)
                    ctx.moveTo((arrKoords[0]-iMinX+5), (arrKoords[1]-iMinY+5));
                else
                    ctx.lineTo((arrKoords[0]-iMinX+5), (arrKoords[1]-iMinY+5));
                    iZaehlerKoordinaten++;
            }
        }
        ctx.stroke();
        ctx.closePath();
        
        // blaue Linie
        ctx.strokeStyle = fgcolor;
        ctx.lineWidth=3;
        ctx.beginPath();
        arrTourstreckeKoord = new Array(iZaehlerKoordinaten);
        iZaehlerKoordinaten = 0;
        for(var i = 0; i<arrKoordinaten.length; i++){
            arrKoordinatenPaare = arrKoordinaten[i].split(";;");
            for(var idx = 0; idx<arrKoordinatenPaare.length; idx++){
                arrKoords = arrKoordinatenPaare[idx].split(";");
                arrTourstreckeKoord[iZaehlerKoordinaten] = new Array((arrKoords[0]), (arrKoords[1]));
                if(idx==0)
                    ctx.moveTo((arrKoords[0]-iMinX+5), (arrKoords[1]-iMinY+5));
                else
                    ctx.lineTo((arrKoords[0]-iMinX+5), (arrKoords[1]-iMinY+5));
                iZaehlerKoordinaten++;
            }
        }
        ctx.stroke();
        ctx.closePath();
        
        var iXPosCanvas = (iMinX-5);
        var iYPosCanvas = (iMinY-5);
        canvas.style.left =  iXPosCanvas + "px";
        canvas.style.top =  iYPosCanvas+ "px";
        
        arrKoordinatenPaare = strKoordinatenReal.split(";;");
        for(i = 0; i<arrKoordinatenPaare.length; i++){
            arrKoords = arrKoordinatenPaare[i].split(";");
            arrTourstreckeKoordReal[i] = new Array(arrKoords[0], arrKoords[1]);
        }
        iCanvasMinX = iMinX;
        iCanvasMinY = iMinY;
        iCanvasMaxX = iMaxX;
        iCanvasMaxY = iMaxY;
//        var stop = new Date();
//        alert( "Zeit:" + getms(start,stop));
  }
    
     function TourZeichnenCanvas_start(strKoordinaten, iMaxX, iMaxY, iMinX, iMinY, strKoordinatenReal, Style, fgcolor, bgcolor)
    { 
    
//        var start = new Date();
        // Die Koordinaten stehen alle in einem String und müssen getrennt werden
        var arrKoordinaten = strKoordinaten.split(";;;");
        
        // Canvas erzeugen wenn es noch nicht existiert
        var canvas = document.getElementById("smallcanvas");
        if(canvas==null){
            canvas = document.createElement("canvas");
            canvas.id="smallcanvas";
        }
        // Höhe/Breite anhand der übergebenen Koordinaten bestimmen
        canvas.setAttribute('width', (iMaxX-iMinX+10)+''); 
        canvas.setAttribute('height', (iMaxY-iMinY+10)+'');
        
        
        // Zeichnen anfangen
        var ctx = canvas.getContext("2d");       

        // gelbe Linie
        ctx.beginPath();
        ctx.lineWidth=6;
        ctx.strokeStyle = bgcolor;
        var iZaehlerKoordinaten = 0;
        for(var i = 0; i<arrKoordinaten.length; i++){
            arrKoordinatenPaare = arrKoordinaten[i].split(";;");
            for(idx = 0; idx<arrKoordinatenPaare.length; idx++){
            
                arrKoords = arrKoordinatenPaare[idx].split(";");
                if(idx==0)
                    ctx.moveTo((arrKoords[0]-iMinX+5), (arrKoords[1]-iMinY+5));
                else
                    ctx.lineTo((arrKoords[0]-iMinX+5), (arrKoords[1]-iMinY+5));
                    iZaehlerKoordinaten++;
            }
        }
        ctx.stroke();
        ctx.closePath();
        
        // blaue Linie
        ctx.strokeStyle = fgcolor;
        ctx.lineWidth=3;
        ctx.beginPath();
        arrTourstreckeKoord = new Array(iZaehlerKoordinaten);
        iZaehlerKoordinaten = 0;
        for(var i = 0; i<arrKoordinaten.length; i++){
            arrKoordinatenPaare = arrKoordinaten[i].split(";;");
            for(var idx = 0; idx<arrKoordinatenPaare.length; idx++){
                arrKoords = arrKoordinatenPaare[idx].split(";");
                arrTourstreckeKoord[iZaehlerKoordinaten] = new Array((arrKoords[0]), (arrKoords[1]));
                if(idx==0)
                    ctx.moveTo((arrKoords[0]-iMinX+5), (arrKoords[1]-iMinY+5));
                else
                    ctx.lineTo((arrKoords[0]-iMinX+5), (arrKoords[1]-iMinY+5));
                iZaehlerKoordinaten++;
            }
        }
        ctx.stroke();
        ctx.closePath();
        
        
        var iXPosCanvas = (iMinX);
        var iYPosCanvas = (iMinY);
        
        
        /*
        var iXPosCanvas = (iMinX-document.getElementById('px').value);
        var iYPosCanvas = (iMinY-document.getElementById('py').value);
        */
        
        canvas.style.left =  iXPosCanvas + "px";
        canvas.style.top =  iYPosCanvas+ "px";
        canvas.style.zIndex=1000;
        //  alert(iXPosCanvas+" "+iYPosCanvas);
        
        arrKoordinatenPaare = strKoordinatenReal.split(";;");
        for(i = 0; i<arrKoordinatenPaare.length; i++){
            arrKoords = arrKoordinatenPaare[i].split(";");
            arrTourstreckeKoordReal[i] = new Array(arrKoords[0], arrKoords[1]);
        }
        iCanvasMinX = iMinX;
        iCanvasMinY = iMinY;
        iCanvasMaxX = iMaxX;
        iCanvasMaxY = iMaxY;
//        var stop = new Date();
//        alert( "Zeit:" + getms(start,stop));
  }
    
    
    
    
    
    
    
    
    
    function RoutingZeichnenCanvas(strKoordinaten, Style, fgcolor, bgcolor){
        // Die Koordinaten stehen alle in einem String und müssen getrennt werden
        var arrKoordinaten = strKoordinaten.split(";;;");
        // Canvas erzeugen wenn es noch nicht existiert
        var canvas = document.getElementById("canvas");

        // Zeichnen anfangen
        var ctx = canvas.getContext("2d");
        ctx.beginPath();
        ctx.lineWidth=2;
        ctx.strokeStyle = fgcolor;
        for(var i = 0; i<arrKoordinaten.length; i++){
            arrKoordinatenPaare = arrKoordinaten[i].split(";;");
            for(var idx = 0; idx<arrKoordinatenPaare.length; idx++){
                arrKoords = arrKoordinatenPaare[idx].split(";");
                if(idx==0)
                    ctx.moveTo((arrKoords[0]-iCanvasMinX+5), (arrKoords[1]-iCanvasMinY+5));
                else
                    ctx.lineTo((arrKoords[0]-iCanvasMinX+5), (arrKoords[1]-iCanvasMinY+5));
            }
        }
        ctx.stroke();
        ctx.closePath();
    }
    
    function checkKlickAufTour(event){
        var outerDiv = document.getElementById("outerDiv");
        var y = -(stripPx(outerDiv.offsetParent.offsetParent.offsetTop)+stripPx(outerDiv.offsetParent.offsetTop))+event.clientY;
        var x = -(stripPx(outerDiv.offsetParent.offsetParent.offsetParent.offsetLeft)+stripPx(outerDiv.offsetParent.offsetParent.offsetLeft)+stripPx(outerDiv.offsetParent.offsetLeft))+event.clientX;
        var gc = TransformMousePosToGeoCoord(x,y);
//        var x=stripPx(document.getElementById("innerDiv").style.top);
//        var y=stripPx(document.getElementById("innerDiv").style.left);
        var iStrecke = 100;
        var iStreckeNeu = 100;
        var iKoordinaten = 0;
        var ix = 0;
        var iy = 0;
        for(var i = 0; i<arrTourstreckeKoord.length; i++){
            ix = (gc[0]-arrTourstreckeKoordReal[i][0]);
            if(ix<0)
                ix = ix*-1;
            iy = (gc[1]-arrTourstreckeKoordReal[i][1]);
            if(iy<0)
                iy = iy*-1;
            iStreckeNeu =  ix + iy;
            if(iStreckeNeu<iStrecke){
            
                iStrecke = iStreckeNeu;
                iKoordinaten = i;
            }
        }
        if(iStrecke<100){
            var gc = TransformMousePosToGeoCoord(x,y);
            switch(clickMode)
            {
                case 1:
                    startPoint[0]=arrTourstreckeKoordReal[iKoordinaten][0];
                    startPoint[1]=arrTourstreckeKoordReal[iKoordinaten][1];
                    setFixedPOIAt(arrTourstreckeKoordReal[iKoordinaten],"start.gif");
                    break;
                case 2:
                    endPoint[0]=arrTourstreckeKoordReal[iKoordinaten][0];
                    endPoint[1]=arrTourstreckeKoordReal[iKoordinaten][1];
                    setFixedPOIAt(arrTourstreckeKoordReal[iKoordinaten],"ziel.gif");
                    break;
                case 3:
                    zwischenpunkte.push(arrTourstreckeKoordReal[iKoordinaten]);
                    setFixedPOIAt(arrTourstreckeKoordReal[iKoordinaten],"zwstop.gif");
                    
                    var liste = document.getElementById("zwliste");
                    var strOption = "<option value='"+gc+"' id='"+zwpCounter+"'>Zwischenpunkt</option>"; 
                    liste.innerHTML = liste.innerHTML + strOption;
                    zwpCounter++;
                break;
            }
        }
    }  
