﻿    var theMap = new GeoGravityMap();

    //var q = new Querystring();
    var DivCenterStartLeft = 0;
    
    var poiCatVisibilityMap={};
    var req;
    var dragging = false;
    var topVar =0;
    var leftVar=0;
    var dragStartTop;
    var dragStartLeft;
    var viewportWidth = 630;
    var viewportHeight = 460;
    var tileSize = 300;
    var tilesOverViewportH = parseInt(viewportHeight/tileSize+1);
    var tilesOverViewportW = parseInt(viewportWidth/tileSize+1);
    var dimmed=false;
    var dimopacity=60;
    var maxZoomLevel=5; //5
    var lastClickedItem="";
    var zoomTimer=0;
    var requestActive=false;
    var iPoiIdAktuell = 0;
    var iCanvasMin = 0;
    var iCanvasMax = 0;
  
    var setCenterwithZoomout=0;//herauszoomen wenn nötig

    var map="bis";
   
    // Routing / Touren
    var clickMode=0;
    var startPoint=new Array(0,0);
    var endPoint=new Array(0,0);
    var zwischenpunkte = new List();
    var zwpCounter=0;
    
    // Distanzmessung
    var measureDistanceMode=false;
    var measureClickNum=0;
    var measureStartX=0;
    var measureStartY=0;
    var ajaxQueue=new Queue();
    
    // Eichung
    var meterX=58.4373333;
    var meterY=-58.4373333;
    var unten=0;
    var links=0;
    var xSize=0;
    var ySize=0; 
    
    // Übersichtskarte, wird aus der tfw-Datei eingetragen
    var omX= 2889.0676; 
    var omY=-2854.1546;
    var oL=3315588;
    var oU=6001005;
    var oW=130; // Breite der Übersichtskarte
    var oH=121; // Höhe der Übersichtskarte
    
    // Übersichtskarte Stadtplan, wird aus der tfw-Datei eingetragen
    var omX_stadtplan= 52.3052278905061;
    var omY_stadtplan=-52.0597745619388;
    var oL_stadtplan=3468173;
    var oU_stadtplan=5941489;
    var oW_stadtplan=150; // Breite der Übersichtskarte
    var oH_stadtplan=242; // Höhe der Übersichtskarte
    
    // Menüeinträge Hallotest
    var iMenueHoehe = 0;
    var bMenueLaden = true;
    var bMenueSichtbar = false;
    var bAlleAuswaehlenSichtbar = true;
    var arrMenueKat = new Array;
    var iAnzahlKategorien = 0;
    
    
    // Merkerliste
    var arrMerkerliste = new Array();
    var iMerkerlisteAnzahl = 0;
  
    // Visitenkarte
    var arrVisitenkarte = new Array();
    var strSpracheId = "0";
    
    var strPoiKatGewaehltGesamt = "0";
    
    var arrMenueKat = new Array();
    var bMassstabGewaehlt = false; // Beim Ausblenden der Tour wird geprüft ob der Massstab verändert wurde und die Tour neu geladen werden muß

   //Adresssuche
    var arrSuche = new Array();
    var arrSucheGewaehlt = new Array();
    var arrTourstreckeKoord = new Array(); // sämtliche Koordinaten der Tour zur Abfrage
    var arrTourstreckeKoordReal = new Array();
    
    // Bewegen der Karte
    var topDrag  = 0;
    var leftDrag = 0;
    var topMove = 0;
    var leftMove = 0;
    var bRun = false;
    
    //Zustandsvariablen (Touren, Suche etc. an / aus)
    var searchIsOn = false;
    var navigationIsOn = false;
    
    var isGerman=true;    
    var Lang = 1; //Aktuelle Sprache (1 = Deutsch, 2 = English, ...) 
    
    var isLuftbild = false;

    function changeLanguage(l)
    {     
        Lang = l;  
        if(Lang == 1)
            isGerman;
        else
            !isGerman;
        
        refreshLanguage();        
        createLanguageFlags();
        SetHilfetext("");
    }
    function createLanguageFlags()
    {
        var div = document.getElementById('languages');
        var tmp = ""
            for(var i=0; i< Flags.length;++i)
            {
                tmp += "<img id='imgFlag"+(i+1)+"' style='height:10px;width:16px;border:solid 1px black;' alt="+Flags[i]+" title="+Flags[i]+" src=images/lang_"+(i+1)+".jpg onclick='changeLanguage("+(i+1)+");'/>"
            }
         div.innerHTML = tmp;
         document.getElementById('imgFlag'+Lang).style.border = "solid 1px white";      
    }
    function refreshLanguage()
    {
        if (Lang == 1)
            document.getElementById('header_left').src = "Bilder.aspx?lan=de&sitelogo=1";
        else
            document.getElementById('header_left').src = "Bilder.aspx?lan=en&sitelogo=1";

        document.getElementById('impressum').innerHTML=Content[Lang]["Impressum"].replace("\'","'");
        document.getElementById('anleitung').innerHTML=Content[Lang]["Anleitung"].replace("\'","'");
        document.getElementById('flag').src="images/lang_"+Lang+".jpg";
        document.getElementById('btn_Luftbild').innerHTML=Languages[Lang]["btn_Luftbild"];
        document.getElementById('btn_Luftbild').title=Languages[Lang]["btn_Luftbild"];
        document.getElementById('ContainerMenueUebersicht').innerHTML=Languages[Lang]["ContainerMenueUebersicht"];
        document.getElementById('ContainerMenueUebersicht').title=Languages[Lang]["ContainerMenueUebersicht"];
        document.getElementById('btnAdresssuche').innerHTML=Languages[Lang]["btnAdresssuche"];
        document.getElementById('btnAdresssuche').title=Languages[Lang]["btnAdresssuche"];
        document.getElementById('buttonReisplaner').innerHTML=Languages[Lang]["buttonReisplaner"];
        document.getElementById('buttonReisplaner').title=Languages[Lang]["buttonReisplaner"];
        document.getElementById('reiseZahl').innerHTML=Languages[Lang]["reiseZahl"];
        document.getElementById('reiseZahl').title=Languages[Lang]["reiseZahl"];
        document.getElementById('shopVerlinkung').innerHTML=Languages[Lang]["shopVerlinkung"];
        document.getElementById('shopVerlinkung').title=Languages[Lang]["shopVerlinkung"];
        document.getElementById('BISTourVerlinkung').innerHTML=Languages[Lang]["BISTourVerlinkung"];
        document.getElementById('BISTourVerlinkung').title=Languages[Lang]["BISTourVerlinkung"];
        document.getElementById('LiegeplVerlinkung').innerHTML=Languages[Lang]["LiegeplVerlinkung"];
        document.getElementById('LiegeplVerlinkung').title=Languages[Lang]["LiegeplVerlinkung"];
        document.getElementById('buttonDimmen').innerHTML=Languages[Lang]["buttonDimmen"];
        document.getElementById('buttonDimmen').title=Languages[Lang]["buttonDimmen"];
        document.getElementById('ContainerPoiKatBeschriftung').innerHTML=Languages[Lang]["ContainerPoiKatBeschriftung"];
        document.getElementById('ContainerPoiKatBeschriftung').title=Languages[Lang]["ContainerPoiKatBeschriftung"];
        setMassstab();
        document.getElementById('TourRegionAuswahlDiv').innerHTML=Languages[Lang]["TourRegionAuswahlDiv"];
        document.getElementById('TourRegionAuswahlDiv').title=Languages[Lang]["TourRegionAuswahlDiv"];
//        document.getElementById('TourKategorieAuswahlDiv').innerHTML=Languages[Lang]["TourKategorieAuswahlDiv"];
//        document.getElementById('TourKategorieAuswahlDiv').title=Languages[Lang]["TourKategorieAuswahlDiv"];
        document.getElementById('TourenAnzeigeDiv').innerHTML=Languages[Lang]["TourenAnzeigeDiv"];
        document.getElementById('TourenAnzeigeDiv').title=Languages[Lang]["TourenAnzeigeDiv"];
        document.getElementById('OrteAnzeigeDiv').innerHTML=Languages[Lang]["OrteAnzeigeDiv"];
        document.getElementById('OrteAnzeigeDiv').title=Languages[Lang]["OrteAnzeigeDiv"];
        document.getElementById('inputPoiKatAusblenden').innerHTML=Languages[Lang]["inputPoiKatAusblenden"];
        document.getElementById('inputPoiKatAusblenden').title=Languages[Lang]["inputPoiKatAusblenden"];
        document.getElementById('buttonAllePOIsAusschalten').innerHTML=Languages[Lang]["buttonAllePOIsAusschalten"];
        document.getElementById('buttonAllePOIsAusschalten').title=Languages[Lang]["buttonAllePOIsAusschalten"];
        document.getElementById('buttonAllePOIsEinschalten').innerHTML=Languages[Lang]["buttonAllePOIsEinschalten"];
        document.getElementById('buttonAllePOIsEinschalten').title=Languages[Lang]["buttonAllePOIsEinschalten"];
//        document.getElementById('buttonAnleitung').innerHTML=Languages[Lang]["buttonAnleitung"];
        document.getElementById('butAnleitungOn').innerHTML=Languages[Lang]["buttonAnleitung"];
        document.getElementById('butAnleitungOff').innerHTML=Languages[Lang]["butImpressumOff"];
        document.getElementById('butImpressumOn').innerHTML=Languages[Lang]["butImpressumOn"];
        document.getElementById('butImpressumOff').innerHTML=Languages[Lang]["butImpressumOff"];
        document.getElementById('printTourPDF').innerHTML=Languages[Lang]["printTourPDF"];
        document.getElementById('buttonPoiOnTour').innerHTML=Languages[Lang]["buttonPoiOnTour"];
        document.getElementById('buttonHideTour').innerHTML=Languages[Lang]["buttonHideTour"];
        document.getElementById('reiseplanerTitle').innerHTML=Languages[Lang]["reiseplanerTitle"];
        document.getElementById('butTagebuchErstellen').innerHTML=Languages[Lang]["butTagebuchErstellen"];
        document.getElementById('adresssucheTitle').innerHTML=Languages[Lang]["adresssucheTitle"];
        document.getElementById('suchwort').innerHTML=Languages[Lang]["suchwort"];
        document.getElementById('strasse').innerHTML=Languages[Lang]["strasse"];
        document.getElementById('ort').innerHTML=Languages[Lang]["ort"];
        document.getElementById('adresse').innerHTML=Languages[Lang]["adresse"];
        document.getElementById('chPOI').innerHTML=Languages[Lang]["chPOI"];
        document.getElementById('btnSuchergebnis_0').innerHTML=Languages[Lang]["btnSuchergebnis_0"];
        document.getElementById('ZwischenpunktAuswahl').innerHTML=Languages[Lang]["ZwischenpunktAuswahl"];
        document.getElementById('btnStartpunktRoutingSetzen').innerHTML=Languages[Lang]["btnStartpunktRoutingSetzen"];
        document.getElementById('btnZwischenpunktSetzen').innerHTML=Languages[Lang]["btnZwischenpunktSetzen"];
        document.getElementById('btnZwischenpunktLoeschen').innerHTML=Languages[Lang]["btnZwischenpunktLoeschen"];
        document.getElementById('btnEndpunktRoutingSetzen').innerHTML=Languages[Lang]["btnEndpunktRoutingSetzen"];
        document.getElementById('btnEndpunktRoutingLoeschen').innerHTML=Languages[Lang]["btnEndpunktRoutingLoeschen"];
        document.getElementById('btnStartRouting').innerHTML=Languages[Lang]["btnStartRouting"];
        document.getElementById('visitenkarteTitle').innerHTML=Languages[Lang]["visitenkarteTitle"];
        document.getElementById('btnInfosImg').innerHTML=Languages[Lang]["btnInfosImg"];
        document.getElementById('btnBuchenImg').innerHTML=Languages[Lang]["btnBuchenImg"];
        document.getElementById('btnMerkeImg').innerHTML=Languages[Lang]["btnMerkeImg"];
        document.getElementById('btnDruckenImg').innerHTML=Languages[Lang]["btnDruckenImg"];
        document.getElementById('anzeigenTitle').innerHTML=Languages[Lang]["anzeigenTitle"];
        document.getElementById('karteEinAus').innerHTML=Languages[Lang]["karteEinAus"];
        document.getElementById('massstabEinAus').innerHTML=Languages[Lang]["massstabEinAus"];
        document.getElementById('poiKatEinAus').innerHTML=Languages[Lang]["poiKatEinAus"];
        document.getElementById('tourEinAus').innerHTML=Languages[Lang]["tourEinAus"];
        document.getElementById('tourwahlEinAus').innerHTML=Languages[Lang]["tourwahlEinAus"];   
        document.getElementById('HilfeEinAus').innerHTML=Languages[Lang]["HilfeEinAus"];                             
        document.getElementById('alleEinAus').innerHTML=Languages[Lang]["alleEinAus2"];
        document.getElementById('buttonShowTourInfo').innerHTML=Languages[Lang]["buttonShowTourInfo2"];
    }
    
    function SetHilfetext(argHilfetext){
        if(argHilfetext=="" ||argHilfetext=="buttonReisplaner")
            document.getElementById("Hilfe").innerHTML = Languages[Lang]["HilfeHilfe"];
        else
            document.getElementById("Hilfe").innerHTML = Languages[Lang][argHilfetext+"Hilfe"];
    }
    function toggleHelp()
    {
        if(document.getElementById('Hilfe').style.display=="none")
        {
            document.getElementById('Hilfe').style.display="block";
            document.getElementById('HilfeBG').style.display="block";
        }
        else
        {
            document.getElementById('Hilfe').style.display="none";
            document.getElementById('HilfeBG').style.display="none";
        }
    }
    function stripPx(value) {
        if (isNumeric(value))
            return parseFloat(value);
        if (value == "") 
            return 0;
        return parseFloat(value.substring(0, value.length - 2));
    }
    
    function menuButtonMouseover(button)
    {
        document.getElementById(button).style.backgroundColor = TopMenuMouseOverBGfarbe;
        document.getElementById(button).style.color = TopMenuMouseOverFarbe;
    }
    function menuButtonMouseout(button)
    {
        document.getElementById(button).style.backgroundColor = TopMenuMouseOutBGFarbe;
        document.getElementById(button).style.color = TopMenuMouseOutFarbe;
    }
    
    function showElement(element) {
        
        if (document.getElementById(element).style.backgroundColor.toLowerCase() == ElementeBGANfarbe.toLowerCase())
            showElementOff(element);
            else
            showElementOn(element);
    }
    function showAllElements()
    {
        if (document.getElementById('alleEinAus').style.backgroundColor.toLowerCase() == ElementeBGANfarbe.toLowerCase()) {
            document.getElementById('alleEinAus').style.backgroundColor = ElementeBGAUSfarbe;
            document.getElementById('alleEinAus').style.color = elementschriftfarbeaus;
            document.getElementById('alleEinAus').innerHTML = Languages[Lang]["alleEinAus"];
            showElementOff('karteEinAus');
            showElementOff('massstabEinAus');
            showElementOff('poiKatEinAus');
            showElementOff('tourEinAus');
            showElementOff('tourwahlEinAus');
            showElementOff('HilfeEinAus');
        }
        else{
            document.getElementById('alleEinAus').style.backgroundColor = ElementeBGANfarbe;
            document.getElementById('alleEinAus').style.color = elementschriftfarbean;
            document.getElementById('alleEinAus').innerHTML = Languages[Lang]["alleEinAus2"];

            showElementOn('karteEinAus');
            showElementOn('massstabEinAus');
            showElementOn('poiKatEinAus');
            showElementOn('tourEinAus');
            showElementOn('tourwahlEinAus');
            showElementOn('HilfeEinAus');
        }
    }
    
    function showElementOff(element)
    {
        var div;
        
        if(element=='karteEinAus')
            div='karteUndZoom';
        if(element=='massstabEinAus')
            div='KoordAnzeige';
        if(element=='poiKatEinAus')
            div='ContainerPoiKat';
        if(element=='tourEinAus')
            div='tourbeschreibung';
        if(element=='tourwahlEinAus')
            div='auswahlfelder';   
        if(element=='HilfeEinAus')
            div='Hilfe';

        if (document.getElementById('alleEinAus').style.backgroundColor.toLowerCase() == ElementeBGANfarbe.toLowerCase())
            {
                document.getElementById('alleEinAus').style.backgroundColor = ElementeBGAUSfarbe;
                document.getElementById('alleEinAus').style.color = elementschriftfarbeaus;
                document.getElementById('alleEinAus').innerHTML = Languages[Lang]["alleEinAus"];
            }
            document.getElementById(element).style.backgroundColor = ElementeBGAUSfarbe;
            document.getElementById(element).style.color = elementschriftfarbeaus;
            document.getElementById(div).style.display = 'none';
            document.getElementById(div+"BG").style.display = 'none';
    }
    
    function showElementOn(element)
    {
        var div;
        
        if(element=='karteEinAus')
            div='karteUndZoom';
        if(element=='massstabEinAus')
            div='KoordAnzeige';
        if(element=='poiKatEinAus')
            div='ContainerPoiKat';
        if(element=='tourEinAus')
            div='tourbeschreibung';
        if(element=='tourwahlEinAus')
            div='auswahlfelder';   
        if(element=='HilfeEinAus')
            div='Hilfe';

        document.getElementById(element).style.backgroundColor = ElementeBGANfarbe;
        document.getElementById(element).style.color = elementschriftfarbean;
        if (document.getElementById('karteEinAus').style.backgroundColor.toLowerCase() == ElementeBGANfarbe.toLowerCase() && document.getElementById('massstabEinAus').style.backgroundColor.toLowerCase() == ElementeBGANfarbe.toLowerCase() && document.getElementById('poiKatEinAus').style.backgroundColor.toLowerCase() == ElementeBGANfarbe.toLowerCase() && document.getElementById('tourEinAus').style.backgroundColor.toLowerCase() == ElementeBGANfarbe.toLowerCase() && document.getElementById('tourwahlEinAus').style.backgroundColor.toLowerCase() == ElementeBGANfarbe.toLowerCase() && document.getElementById('HilfeEinAus').style.backgroundColor.toLowerCase() == ElementeBGANfarbe.toLowerCase())
                {
                    document.getElementById('alleEinAus').style.backgroundColor = ElementeBGANfarbe;
                    document.getElementById('alleEinAus').style.color = elementschriftfarbean;
                    document.getElementById('alleEinAus').innerHTML = Languages[Lang]["alleEinAus2"];
                }
            document.getElementById(div).style.display = 'block';
            document.getElementById(div+"BG").style.display = 'block';
    }
    
    function showImpressum()
    {
        hideAnleitung();
        document.getElementById('impressum').style.visibility='visible';
        document.getElementById('butImpressumOn').style.visibility='hidden';
        document.getElementById('butImpressumOff').style.visibility='visible';
    }
    function hideImpressum()
    {
        document.getElementById('impressum').style.visibility='hidden';
        document.getElementById('butImpressumOn').style.visibility='visible';
        document.getElementById('butImpressumOff').style.visibility='hidden';
    }
    function showAnleitung()
    {
        hideImpressum();
        document.getElementById('anleitung').style.visibility='visible';
        document.getElementById('butAnleitungOn').style.visibility='hidden';
        document.getElementById('butAnleitungOff').style.visibility='visible';
    }
    function hideAnleitung()
    {
        document.getElementById('anleitung').style.visibility='hidden';
        document.getElementById('butAnleitungOn').style.visibility='visible';
        document.getElementById('butAnleitungOff').style.visibility='hidden';
    }
    
    function isExistsFlaechenDiv(sFlaechenID)
    {
        Flaechendiv = document.getElementById(sFlaechenID);
        
        if(Flaechendiv != null)
            return true;
        
        return false;
    }
    
    
    function GetCanvasID(sString)
    {
        var sBack = "";
        var nStart;
        var nEnde; 
        var sSearch = "<canvas id='";  
        nStart = sString.indexOf(sSearch);
        if (nStart != -1)
        {
            sString = sString.substring(nStart + sSearch.length);
            nEnde = sString.indexOf("'");
            
            if (nEnde==-1)
                nEnde = sString.length;
                
           sBack = sString.substring(0, nEnde); 
        }
            
        return sBack;
    }
    
    
    // diese Funktion gibt die kleinste Pixelkoordinate für 'left' zurück
    function getMinLeft()
    {
        return (xSize - viewportWidth) * -1;
    }

    // diese Funktion gibt die größte Pixelkoordinate für 'left' zurück
    function getMaxLeft()
    {
        return 0;
    }
    
    // diese Funktion gibt die kleinste Pixelkoordinate für 'top' zurück
    function getMinTop()
    {
        return (ySize - viewportHeight) * -1;
    }
    
    // diese Funktion gibt die größte Pixelkoordinate für 'top' zurück
    function getMaxTop()
    {
        return 0;
    }
    
    function checkLeftTop() {
        
        var innerDiv = document.getElementById("innerDiv");
        var leftLoc = stripPx(innerDiv.style.left);
        var topLoc  = stripPx(innerDiv.style.top);
        var leftMin = getMinLeft();
        var leftMax = getMaxLeft();
        var topMin = getMinTop();
        var topMax = getMaxTop();
//        if( left > leftMax )
//            left = leftMax;
//        if( left < leftMin )
//            left = leftMin;
//        if( top > topMax )
//            top = topMax;
//        if( top < topMin )
//            top = topMin;
        
        if(setCenterwithZoomout==1 && zoomlevel==0 && leftLoc != stripPx(innerDiv.style.left) && topLoc  != stripPx(innerDiv.style.top)){ 
            ZoomOut();   
            checkLeftTop();
        }else{    
        innerDiv.style.left = leftLoc + "px";
        innerDiv.style.top  = topLoc + "px";
        }
    }
    
    function Test()
    {
    }
    
    function ScrollTop()
    {
	    var ret = document.body.scrollTop;
        if (ret == 0)
        {
            if (window.pageYOffset)
                ret = window.pageYOffset;
            else
                ret = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
        }
        return ret;
    }

    function ScrollLeft()
    {
        var ret = document.body.scrollLeft;
        if (ret == 0)
        {
            if (window.pageXOffset)
                ret = window.pageXOffset;
            else
                ret = (getParentElement(document.body)) ? getParentElement(document.body).scrollLeft : 0;
        }
        return ret;
    }
    
    function GetOffsetTop(obj)
    {
    
        var bordertop=0;
        if(!isNaN(parseInt(obj.style.borderTopWidth)))
            bordertop=parseInt(obj.style.borderTopWidth)
        var topLoc = parseInt(obj.offsetTop);
            topLoc+=bordertop;
        var o = obj.offsetParent;
        
        while(o != null)
        {
        var bordertop2=0;
            if( o.tagName != "FORM" && o.tagName != undefined){
                if(!isNaN(parseInt(o.style.borderTopWidth)))
                    bordertop=parseInt(o.style.borderTopWidth)
                topLoc += parseInt(o.offsetTop);
                topLoc += bordertop2;
                
                }
            o = o.offsetParent;
        }
        
        return topLoc;   // 205
    }
    
     function _GetOffsetTop(obj)
    {
        var topLoc = parseInt(obj.offsetTop);
        var o = getParentElement(obj);
        
        while(o != null)
        {
            if( o.tagName != "FORM" && o.tagName != undefined)
                topLoc += parseInt(o.offsetTop);
            o = getParentElement(o);
        }
        
        return topLoc;   // 205
    }
    
    
    
    function getParentElement(obj)
    {
        if (obj.parentElement != undefined)
            return obj.parentElement;
        
        return obj.parentNode;
    }
    
    function GetOffsetLeft(obj)
    {
    
        var borderleft=0;
        if(!isNaN(parseInt(obj.style.borderLeftWidth)))
            borderleft=parseInt(obj.style.borderLeftWidth)
        var leftLoc = parseInt(obj.offsetLeft);
            leftLoc +=borderleft;
      
        var o = obj.offsetParent;
        
        while(o != null)
        {
            var borderleft2=0;
            
            if(o.tagName != "FORM" && o.tagName != undefined){
             
                leftLoc += parseInt(o.offsetLeft);
                if(!isNaN(parseInt(o.style.borderLeftWidth)))
                    borderleft2=parseInt(o.style.borderLeftWidth)
                leftLoc += borderleft2;
             }
            o = o.offsetParent;
        }
        
        return leftLoc;   // 235
    }
    
    function _GetOffsetLeft(obj)
    {
        var leftLoc = parseInt(obj.offsetLeft);
        var o = getParentElement(obj);
        
        while(o != null)
        {
            if(o.tagName != "FORM" && o.tagName != undefined)
                leftLoc += parseInt(o.offsetLeft);
            o = getParentElement(o);
        }
        
        return leftLoc;   // 235
    }
   
    // Starten der Adresssuche
    function SucheStarten(){
        var strValue = "";
        var i;
        // Abfrage der Radiobuttons zum Auswählen POI- oder Adresssuche
        for(i=0; i < document.forms[0].adressselect.length; i++)
        {
          if(document.forms[0].adressselect[i].checked)
          {
             strValue = document.forms[0].adressselect[i].value;
             break;
          }
        }
        var strTmp = document.getElementById("AdressenInput").value;
        if(strTmp=="" && strTmp==" " && strTmp=="  ")
        {
            alert('Bitte geben sie einen Wert in das Suchfeld ein!');
        }
        else if(strValue == "adresse")
        {
            var strTmpOrt = document.getElementById("AdressenInputOrt").value;
            var strTmpStrasse = document.getElementById("AdressenInputStrasse").value;
            if(strTmpStrasse.length == 1 )
            {
                alert('Bitte geben Sie mindestens 2 Buchstaben als Straßennamen ein!');
            }
            else if(!strTmpStrasse.length < 2 && (strTmpOrt.length < 2 || strTmpOrt == "" || strTmpOrt == " " || strTmpOrt == "  "))
            {
                alert('Bitte geben Sie mindestens 2 Buchstaben als Ortsnamen ein!');
            } 
            else
                theMap.AdressenSuchen(document.getElementById("AdressenInputOrt").value, document.getElementById("AdressenInputStrasse").value);
        }
        else
        {
            strTmp = strTmp.replace("&", "!----!");
            var url = "./Adresssuche.aspx?name="+strTmp+"&Suchoption="+strValue;
            loadXMLDoc(encodeURI(url));
        }
    }
    
    
    function AuswahlAdressePoi()
    {
        for(i=0; i < document.forms[0].adressselect.length; i++)
        {
          if(document.forms[0].adressselect[i].checked)
          {
             strValue = document.forms[0].adressselect[i].value;
             break;
          }
        }
        if(strValue == "adresse")
        {
            document.getElementById("tableAdresse").style.display="block";
            document.getElementById("tablePoi").style.display="none";
        }
        else
        {
            document.getElementById("tablePoi").style.display="block";
            document.getElementById("tableAdresse").style.display="none";
        }
    }
    
    // Anzeige des Suchergebnisses
    function ShowSuchergebnis(){
        var divSuche = document.getElementById("SuchergebnisAnzeige");
        var strTmp = "";//<div style=\"position:absolute; top:1px; height:11px; width:11px; left:215px; background-image:url(/images/x.gif);background-repeat:no-repeat;border:solid 1px white; vertical-align:middle; text-align:left; cursor:hand; cursor:pointer; font-family:arial;\" onclick=\"document.getElementById('SuchergebnisAnzeige').style.visibility='hidden';\"></div><b>Suchergebnisse</b><br>Ihre Anfrage hat mehrere Ergebnisse zurückgeliefert<br><br>";
        var i = 0;
        var strTmpArt = "";
        var strStrasseTmp = "";
        var strKoordX = "";
        var strKoordY = "";
     
        while(i<arrSuche.length){
            // Gefundene POI
            if(i==0){
                strKoordX = arrSuche[i][4];
                strKoordY = arrSuche[i][5];
                centerSuche(strKoordX, strKoordY);
            }
            // Gefundene Strassen und Hausnummern
            if(i%2==0)
                strTmp += "<li class='Adressstyle' style='background-color:white;' onclick='centerSuche(\""+arrSuche[i][4]+"\",\""+arrSuche[i][5]+"\");'>"+arrSuche[i][0];  
            else
                strTmp += "<li class='Adressstyle' style='background-color:#E3E8EB;' onclick='centerSuche(\""+arrSuche[i][4]+"\",\""+arrSuche[i][5]+"\");'>"+arrSuche[i][0];  
            if(arrSuche[i][1] != "")
                strTmp = strTmp + " "+arrSuche[i][1]+", "+arrSuche[i][2]+" "+arrSuche[i][3]+"</li>";
            else
                strTmp = strTmp + " "+arrSuche[i][2]+" "+arrSuche[i][3]+"</li>";
            
            i++;
        }
        strTmp += "</il>";
        divSuche.innerHTML = strTmp; // Feld füllen
        divSuche.style.visibility="visible";
    }

            
   // Zentriert die Suche
    function centerSuche(x, y){
        arrSucheGewaehlt = new Array(x, y);
        setCenterwithZoomout=1;
        if (zoomlevel==0 && (x > 3468141.948) && (x < 3477603.101) && (y > 5927996.971) && (y < 5942003.103))
            {
                m_usingWMS=false;
                toggleZoom();
                center = new Array(x,y);
                updateEichung();
                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";
                setMassstab();
                //Die Übersichtskarte des Stadtplans sichtbar machen
                document.getElementById("uebersichtskarteStadtplan").style.visibility="visible";
                document.getElementById("uebersichtskarte_schatten").style.visibility="visible";
            }
            else
            {
                 // außerhalb vom Stadtplan
                 m_usingWMS=true;
                 toggleZoom();
                 SetWMSBase(arrWMS[zoomlevel]);
                 setMeter();
                 //LoadTour();
                 setMassstab();
                 document.getElementById("uebersichtskarteStadtplan").style.visibility="hidden";
                 document.getElementById("uebersichtskarte_schatten").style.visibility="hidden";

                 if(document.getElementById("adresssuche").style.display=="block")
                    setFixedSucheAt(arrSucheGewaehlt, "pointer.gif");
            }
        setCenter(x, y);
        setCenterwithZoomout=0;
        var punkt = new Array(x, y);
        setFixedSucheAt(punkt, "pointer.gif");
   }
      // Setzt den Pointer der Suche und zentriert den Browser
    function setFixedSucheAt(punkt, bild)
    {
        var pixelPos = TransformGeoCoordToInnerDiv(punkt[0],punkt[1]);
        var innerDiv = document.getElementById("innerDiv");
        try{
            if (innerDiv != null)
            {
                var img2=document.getElementById(bild);
                if (img2 == null)
                {
                    img2 = document.createElement("img");
                    innerDiv.appendChild(img2);
                }
                img2.src = "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.visibility = "visible";
                if (bild=="pointer.gif")
                    img2.onclick = PointerClick;
                img2.style.zIndex=100;
                if (bild=="ziel.gif")
                    img2.alt="Ziel";
                if (bild=="start.gif")
                    img2.alt="Startpunkt";
                img2.id=bild;
            }
        }
        catch(Exception){
        
        }
    }
    
     function PointerClick(event) 
     { 
        document.getElementById("pointer.gif").style.visibility="hidden";
     }

// Setzt einen Punkt und zentriert den Pro
    function setFixedSuchePOIAt(arrPoi)
    {
        if(arrPoi.length>=6){
            var pixelPos = TransformGeoCoordToInnerDiv(arrPoi[0], arrPoi[1]);
            var innerDiv = document.getElementById("innerDiv");
            if (innerDiv != null)
            {
                var img2=document.getElementById(arrPoi[2]);
                if (img2 == null)
                {
                    img2 = document.createElement("img");
                    innerDiv.appendChild(img2);
                }
                img2.src = arrPoi[5];
                img2.style.position = "absolute";
                img2.style.left = pixelPos[0]-6 + "px";
                img2.style.top = pixelPos[1]-12 + "px";
                img2.style.position = "absolute";
                img2.style.cursor="pointer";
                img2.style.zIndex=99;
                img2.onclick=POIClick;
                img2.alt=arrPoi[3];
                img2.title=arrPoi[3];
                img2.id=arrPoi[2];
                img2.name=arrPoi[4];
                centerSuche(arrPoi[0], arrPoi[1]);
            }
            else
            {
                setTimeout("setFixedSuchePOIAt(arrPoiIdSuche);", 3)
            }
        }
    }
    function setFixedSuchePOIAt2(arrPoi)
    {
        if(arrPoi.length>=6){
            var pixelPos = TransformGeoCoordToInnerDiv(arrPoi[0], arrPoi[1]);
            var innerDiv = document.getElementById("innerDiv");
            if (innerDiv != null)
            {
                var img2=document.getElementById(arrPoi[2]);
                if (img2 == null)
                {
                    img2 = document.createElement("img");
                    innerDiv.appendChild(img2);
                }
                img2.src = arrPoi[5];
                img2.style.position = "absolute";
                img2.style.left = pixelPos[0]-6 + "px";
                img2.style.top = pixelPos[1]-12 + "px";
                img2.style.position = "absolute";
                img2.style.cursor="pointer";
                img2.style.zIndex=99;
                img2.onclick=POIClick;
                img2.alt=arrPoi[3];
                img2.title=arrPoi[3];
                img2.id=arrPoi[2];
                img2.name=arrPoi[4];
            }
            else
            {
                setTimeout("setFixedSuchePOIAt(arrPoiIdSuche);", 3)
            }
        }
    }
    function PoiNeuwaehlen(argEinAus){
        strPoiKatGewaehltGesamt = "";
        bAlleAuswaehlenSichtbar = false;
        for(var i = 0; i<iAnzahlKategorien; i++){
            arrMenueKat[i][4] = argEinAus;
            // Nur wenn alle an sind muss die Variable zusammengefügt werden
            if(argEinAus==true){
                bAlleAuswaehlenSichtbar = true;
                if(i==0)
                    strPoiKatGewaehltGesamt = arrMenueKat[i][1];
                else
                    strPoiKatGewaehltGesamt += ";"+arrMenueKat[i][1];
            }
        }
        document.getElementById("chkPoiKatAusblenden").checked = false;
        menueAusklappen("");
        checkTilesPoikatChange();
        if(argEinAus){
            document.getElementById("ContainerPoiKatAusschalten").style.visibility = "visible";
            document.getElementById("ContainerPoiKatEinschalten").style.visibility = "hidden";
        }
        else{
            document.getElementById("ContainerPoiKatAusschalten").style.visibility = "hidden";
            document.getElementById("ContainerPoiKatEinschalten").style.visibility = "visible";
        }
    }
    
    // Fügt der Merkerliste einen neuen Eintrag hinzu
    function AddMerkerliste(){
        var bMerkerlisteZufuegen = true;
        // Herausfinden ob der Eintrag schon in der Merkerliste vorhanden ist
        arrPoiIdGewaehlt = arrVisitenkarte[20].split(',');
        var iZaehler = 0;
        for(var i = 0; i<iMerkerlisteAnzahl; i++){
            if(arrMerkerliste[i][20]==iPoiIdAktuell){
                bMerkerlisteZufuegen = false;
                
                //DelMerkerliste(arrMerkerliste[i][20]);
                break;
            }
        }
        if(bMerkerlisteZufuegen==true){
            arrMerkerliste[iMerkerlisteAnzahl] = new Array(arrVisitenkarte[0], arrVisitenkarte[1], arrVisitenkarte[2], arrVisitenkarte[3], arrVisitenkarte[4], arrVisitenkarte[5], arrVisitenkarte[6], arrVisitenkarte[7], arrVisitenkarte[8], arrVisitenkarte[9], arrVisitenkarte[10], arrVisitenkarte[11], arrVisitenkarte[12], arrVisitenkarte[13], arrVisitenkarte[14], arrVisitenkarte[15], arrVisitenkarte[16], arrVisitenkarte[17], arrVisitenkarte[18], arrVisitenkarte[19], iPoiIdAktuell, arrVisitenkarte[21]);
            iMerkerlisteAnzahl++;
            var strTmpText = "<ul>";
            for(var i = 0; i<iMerkerlisteAnzahl; i++){
                strTmpText += '<li>'+arrMerkerliste[i][0]+' (<span class="MerkerlisteLoeschen" onclick="DelMerkerliste(\''+arrMerkerliste[i][20]+'\')">X</span>)</li>';
            }
            strTmpText+="</ul>";
            document.getElementById('MerkerlisteInhaltScroll').innerHTML=strTmpText;
            if(isGerman)
                document.getElementById('btnMerkeImg').innerHTML = "< Gemerkt >";
                else
                document.getElementById('btnMerkeImg').innerHTML = "< Saved >";
        }
        else{
            if(isGerman)
                document.getElementById('btnMerkeImg').innerHTML = "< Merken >";
                else
                document.getElementById('btnMerkeImg').innerHTML = "< Save >";
            }

        document.getElementById('spanPoiAnzahl').innerHTML = iMerkerlisteAnzahl;
    }
    
    function DelMerkerliste(argPoiId){
        var bMerkerlisteKopieren = false;
        var strTmpText = "<ul>";
        for(var i = 0; i<(iMerkerlisteAnzahl-1); i++){
            if(arrMerkerliste[i][20]==argPoiId){
                bMerkerlisteKopieren = true;
            }
            // Wenn die zu löschende POIId = die PoiId des Arrays ist werden alle nachfolgenden POIs des Arrays eine Position nach vorne gerückt
            if(bMerkerlisteKopieren==true){
                arrMerkerliste[i] = new Array(arrMerkerliste[(i+1)][0], arrMerkerliste[(i+1)][1], arrMerkerliste[(i+1)][2], arrMerkerliste[(i+1)][3], arrMerkerliste[(i+1)][4], arrMerkerliste[(i+1)][5], arrMerkerliste[(i+1)][6], arrMerkerliste[(i+1)][7], arrMerkerliste[(i+1)][8], arrMerkerliste[(i+1)][9], arrMerkerliste[(i+1)][10], arrMerkerliste[(i+1)][11], arrMerkerliste[(i+1)][12], arrMerkerliste[(i+1)][13], arrMerkerliste[(i+1)][14], arrMerkerliste[(i+1)][15], arrMerkerliste[(i+1)][16], arrMerkerliste[(i+1)][17], arrMerkerliste[(i+1)][18], arrMerkerliste[(i+1)][19], arrMerkerliste[(i+1)][20], arrMerkerliste[(i+1)][21]);
            }
            strTmpText += '<li>'+arrMerkerliste[i][0]+'(<span class="MerkerlisteLoeschen" onclick="DelMerkerliste(\''+arrMerkerliste[i][20]+'\')">X</span>)</li>';
        }
        strTmpText+="</ul>";
        document.getElementById('MerkerlisteInhaltScroll').innerHTML=strTmpText;
        iMerkerlisteAnzahl--;
        document.getElementById('spanPoiAnzahl').innerHTML = iMerkerlisteAnzahl;
    }
    
//------------------- 
    function ShowAllToursInKatByRegion()
    {
        var strTourIdTmp="";
        var sTourID="";
       // if(argRegionId == "alle")
         var strTourauswahl="";
            
        var strSelected = "";
        
        argRegionId=="alle";  
        arrTourNachRegion = bubbleSort(arrTourNachRegion, 0)
        

        for(var i = 0; i<arrTourNachRegionId.length; i++){
            if(argRegionId == arrTourNachRegion[i][1] || argRegionId=="alle"){
                if(strTourIdTmp != arrTourNachRegion[i][2]){
                    if(arrTourNachRegion[i][2]==currentTourId)
                    {
                        strSelected = " selected";
                        sTourID = arrTourNachRegion[i][2];
                    }
                    else
                        strSelected = "";
                    strTourauswahl += "<option value='"+arrTourNachRegion[i][2]+"'"+strSelected+">"+arrTourNachRegion[i][0]+"</option>";
                    strTourIdTmp = arrTourNachRegion[i][2];
                }
            }
        }
        
        
        var strTourauswahl2 = "<select onchange='javascript:setTour(this.value);' style='width:300px;'>";
        //else
        //    var strTourauswahl = "<select onchange='javascript:setTour(this.value);javascript:ShowKatNachTour(this.value);' style='width:300px;'>";
        if(argRegionId != currentRegionId && argRegionId!="alle"){
            if(strTourauswahl=="")
                strTourauswahl2 += "<option value='' selected>---</option>";
            else
                if(isGerman)
                    strTourauswahl2 += "<option value='' selected>Bitte Tour auswählen</option>";
                    else
                    strTourauswahl2 += "<option value='' selected>Please choose Tour</option>";
        }
        
        strTourauswahl =strTourauswahl2+strTourauswahl+"</select>";
	    document.getElementById("TourenAnzeige").innerHTML=strTourauswahl;
	    //currentRegionId=argRegionId;
	    
	    showOrt(sTourID); 

    }
//------------------------------
    
// Zeigt die Touren in einer Selectbox an, abhängig von der tourkategorie
    function ShowKatNachTour(argTourId)
    {
        var strKatIdTmp="";
        var strSelectKatId="";
        var strTourauswahl = "<select onchange='javascript:ShowTourNachKat(this.value);' style='width:180px;'>";
        var strSelected = "";
        strTourauswahl += "<option value='region'>---</option>";
        arrTourNachRegion = bubbleSort(arrTourNachRegion, 4)
        for(var i = 0; i<arrTourNachRegion.length; i++){
            if(arrTourNachRegion[i][2]==argTourId)
                strSelectKatId=arrTourNachRegion[i][3]
        }
        for(var i = 0; i<arrTourNachRegion.length; i++){
            if(currentRegionId == arrTourNachRegion[i][1] || currentRegionId=="alle"){
                 if(strKatIdTmp!=arrTourNachRegion[i][3]){  
                    if(strSelectKatId == arrTourNachRegion[i][3]){
                        if(arrTourNachRegion[i][2]==argTourId){
                            strSelected = " selected";
                            strTourauswahl += "<option value='"+arrTourNachRegion[i][3]+"'"+strSelected+">"+arrTourNachRegion[i][4]+"</option>";
                        }
                    }
                    else{
                        strSelected = "";
                        strTourauswahl += "<option value='"+arrTourNachRegion[i][3]+"'"+strSelected+">"+arrTourNachRegion[i][4]+"</option>";
                        strKatIdTmp=arrTourNachRegion[i][3];
                    }
                }                        
            }
        }
        strTourauswahl += "</select>";
	    document.getElementById("TourKategorieAuswahl").innerHTML=strTourauswahl;
	}
 
  // Zeigt die Touren in einer Selectbox an, abhängig von der tourkategorie
    function ShowTourNachKat(argKatId)//start 309
    {
        var sTourID = "";
        //if(argKatId=="region"){
          //  var strTourauswahl = "<select onchange='javascript:setTour(this.value);javascript:ShowKatNachTour(this.value);' style='width:300px;'>";
        //}
        //else{
        var strTourauswahl="";    
        var strSelected = "";
        
        arrTourNachRegion = bubbleSort(arrTourNachRegion, 0)
        
        if(argKatId == "region"){
        var strTourIdTmp="";
            for(var i = 0; i<arrTourNachRegionId.length; i++){
                if(currentRegionId == arrTourNachRegion[i][1]){
                    if(strTourIdTmp != arrTourNachRegion[i][2]){
                        strSelected = "";
                        strTourauswahl += "<option value='"+arrTourNachRegion[i][2]+"'"+strSelected+">"+arrTourNachRegion[i][0]+"</option>";
                        strTourIdTmp = arrTourNachRegion[i][2];
                    }
                }
            }    
        }
        else{
            for(var i = 0; i<arrTourNachRegion.length; i++){
                if(argKatId == arrTourNachRegion[i][3]){
                    if(currentRegionId == arrTourNachRegion[i][1]){
                        if(arrTourNachRegion[i][2]==currentTourId)
                        {
                            strSelected = " selected";
                            sTourID = arrTourNachRegion[i][2];
                        }
                        else
                            strSelected = "";
                        strTourauswahl += "<option value='"+arrTourNachRegion[i][2]+"'"+strSelected+">"+arrTourNachRegion[i][0]+"</option>";
                   }
                }
            }
        }
        
        
        var strTourauswahl2 = "<select onchange='javascript:setTour(this.value);' style='width:300px;'>";
        //}
        if(argKatId != currentKatId && argKatId!="alle"){// || argKatId == "region"){
            if(strTourauswahl=="")
                strTourauswahl2 += "<option value='leer' selected>---</option>";
            else
                if(isGerman)
                    strTourauswahl2 += "<option value='leer' selected>Bitte Tour auswählen</option>";
                    else
                    strTourauswahl2 += "<option value='leer' selected>Please choose Tour</option>";
        }
        
        strTourauswahl =strTourauswahl2 +strTourauswahl+"</select>";
	    document.getElementById("TourenAnzeige").innerHTML=strTourauswahl;
	    currentKatId=argKatId;
	    showOrt(sTourID);
	    
    }
 
 
  // Zeigt die Touren in einer Selectbox an, abhängig von der tourkategorie
    function ShowKatNachRegion(argRegionId)
    {
        var strKatIdTmp="";
        var strSelectKatId = "";
        if(argRegionId == "alle")
            var strTourauswahl = "<select onchange='javascript:ShowTouren(this.value);' style='width:180px;'>";
        else
            var strTourauswahl = "<select onchange='javascript:ShowTourNachKat(this.value);' style='width:180px;'>";
        if(argRegionId != currentRegionId){// && argRegionId!="alle"){
            if(isGerman)
                strTourauswahl += "<option value='region' selected>Alle Touren</option>";
                else
                strTourauswahl += "<option value='region' selected>All Tours</option>";
        }
        var strSelected = "";
        //for(var i = 0; i<arrTourNachRegion.length; i++){
          //  if(arrTourNachRegion[i][2]==currentTourId && arrTourNachRegion[i][1] == argRegionId)
            //    strSelectKatId=arrTourNachRegion[i][3]
        //}
        var TempArray = new Array();
        arrTourNachRegion = bubbleSort(arrTourNachRegion, 3)
        for(var i = 0; i<arrTourNachRegion.length; i++){
            if(argRegionId == arrTourNachRegion[i][1] || argRegionId=="alle"){
                if(strKatIdTmp!=arrTourNachRegion[i][3]) {   
                    TempArray.push(arrTourNachRegion[i]);
                    strKatIdTmp = arrTourNachRegion[i][3];
                }   
            }
        }
        TempArray = bubbleSort(TempArray, 4)
        for(var i = 0; i<TempArray.length; i++){
            //if(strSelectKatId==TempArray[i][3]){
              //  strSelected = " selected";
               // strTourauswahl += "<option value='"+TempArray[i][3]+"'"+strSelected+">"+TempArray[i][4]+"</option>";
            //}
            //else{
                strSelected = "";
                strTourauswahl += "<option value='"+TempArray[i][3]+"'"+strSelected+">"+TempArray[i][4]+"</option>";
            //}
        }

        if(argRegionId == "alle"){
            if(isGerman)
                strTourauswahl += "<option value='alle' selected>Alle Touren</option>";
                else
                strTourauswahl += "<option value='alle' selected>All Tours</option>";
        }
        
        
        strTourauswahl += "</select>";
	    document.getElementById("TourKategorieAuswahl").innerHTML=strTourauswahl;
	    currentRegionId=argRegionId;
    }
 
    
      
    
  // Zeigt die Touren in einer Selectbox an, abhängig von der tourkategorie
    function ShowTourenNachRegion(argRegionId)
    {
//        var strTourIdTmp="";
//        var sTourID="";
       if(argRegionId == "")
            argRegionId = "0";
            
       var strTourauswahl="";            
//            
//        var strSelected = "";
//          
//        arrTourNachRegion = bubbleSort(arrTourNachRegion, 0)
//        

//        for(var i = 0; i<arrTourNachRegionId.length; i++){
//            if(argRegionId == arrTourNachRegion[i][1] || argRegionId=="alle"){
//                if(strTourIdTmp != arrTourNachRegion[i][2]){
//                    if(arrTourNachRegion[i][2]==currentTourId)
//                    {
//                        strSelected = " selected";
//                        sTourID = arrTourNachRegion[i][2];
//                    }
//                    else
//                        strSelected = "";
//                    strTourauswahl += "<option value='"+arrTourNachRegion[i][2]+"'"+strSelected+">"+arrTourNachRegion[i][0]+"</option>";
//                    strTourIdTmp = arrTourNachRegion[i][2];
//                }
//            }
//        }

        strTourauswahl = eval("region_"+argRegionId);
        
        var strTourauswahl2 = "<select onchange='javascript:setTour(this.value);' style='width:300px;'>";
        //else
        //    var strTourauswahl = "<select onchange='javascript:setTour(this.value);javascript:ShowKatNachTour(this.value);' style='width:300px;'>";
        if(argRegionId != currentRegionId && argRegionId!="0"){
            if(strTourauswahl=="")
                strTourauswahl2 += "<option value='' selected>---</option>";
            else
                if(isGerman)
                    strTourauswahl2 += "<option value='' selected>Bitte Tour auswählen</option>";
                    else
                    strTourauswahl2 += "<option value='' selected>Please choose Tour</option>";
        }
        
        strTourauswahl =strTourauswahl2+strTourauswahl+"</select>";
	    document.getElementById("TourenAnzeige").innerHTML=strTourauswahl;
	    //currentRegionId=argRegionId;
	    
//	    showOrt(sTourID); 
    }
 
    
    function bubbleSort(MyArray, nDim)
    {
        var PaarSortiert;
        var temp;
        
        do
        {
            PaarSortiert = true; 
            for(var i = 0; i<MyArray.length-1; i++){
                if (MyArray[i][nDim] > MyArray[i + 1][nDim])
                { 
                    temp = MyArray[i];
                    MyArray[i] = MyArray[i + 1];
                    MyArray[i + 1] = temp;

                    PaarSortiert = false;
                }  
            }
         } while (!PaarSortiert);
         
         return MyArray;
    }
 
      
     // Zeigt die Touren in einer Selectbox an, abhängig von der tourkategorie
    function ShowTouren(argTourKategorie)
    {       
        //Die Tour wird angzeigt
        var sTourID
        var strTourauswahl ="";
        
        var strSelected = "";
        for(var i = 0; i<arrTourNurId.length; i++){
            if(argTourKategorie == arrTourId[arrTourNurId[i]][6] || argTourKategorie=="alle"){
                if(arrTourNurId[i]==currentTourId)
                {
                    strSelected = " selected";
                    sTourID = arrTourNurId[i];
                }   
                else
                    strSelected = "";
                strTourauswahl += "<option value='"+arrTourNurId[i]+"'"+strSelected+">"+arrTourId[arrTourNurId[i]][0]+"</option>";
            }
        }
        
        var strTourauswahl2 = "<select onchange='javascript:setTour(this.value);' style='width:300px;'>";
        if(argTourKategorie != arrTourId[currentTourId][6] && argTourKategorie!="alle"){
            if(strTourauswahl=="")
                strTourauswahl2 += "<option value='' selected>---</option>";
            else
                strTourauswahl2 += "<option value='' selected>Bitte Tour auswählen</option>";
        }
        
        strTourauswahl =strTourauswahl2+strTourauswahl+"</select>";
	    document.getElementById("TourenAnzeige").innerHTML=strTourauswahl;
	    currentKatId=argTourKategorie; 
	    
	    showOrt(sTourID); 	   
    }
    
    
    function showOrt(sTourID)
    {
        var bFund = false;
        var bFirstRun = true;
        var strSelected = "";
        
        //Der Ort wird angezeigt
	    var strOrt=""
	    
        
        for(var i = 0; i<arrOrtSortiertNachOrtId.length; i++){
            
                if (arrOrtSortiertNachOrtId[i][1] == sTourID)
                {
                    /*if(bFirstRun)
                        strSelected = " selected";
                    else*/
                        strSelected = "";
                    
                    bFund = true;
                    bFirstRun = false;
                    
                    strOrt += "<option value='"+arrOrtSortiertNachOrtId[i][3] + ";" + arrOrtSortiertNachOrtId[i][4] +"'"+strSelected+">"+arrOrtSortiertNachOrtId[i][2]+"</option>"; 
                }
        }
        
        //if (!bFund)
          //  strOrt += "<option value='' selected>---</option>";
        
        var strOrt2 = "<select onchange='javascript:setOrt(this.value);' style='width:300px;'>";
        
        if(strOrt=="")
            strOrt2 += "<option value='' selected>---</option>";
        else
            strOrt2 += "<option value='' selected>Bitte Ort auswählen</option>";
        
        strOrt = strOrt2+strOrt+"</select>";
	    document.getElementById("OrteAnzeige").innerHTML=strOrt; 
    }
    
    
//    function setTourDetail(){
//        var tdU = document.getElementById('TourDetailUeberschrift');
//        var tdB = document.getElementById('TourDetailBeschreibung');
//        if( (tdU != null)  && (tdB != null) && (currentTourId > 0) )
//        {
//            tdU.innerHTML=arrTourId[currentTourId][0];
//            
//            if(arrTourId[currentTourId][1]!="")
//                tdB.innerHTML='<i>'+arrTourId[currentTourId][1]+"</i><br><br><table cellpadding='0' cellspacing='0' border='0' style='border-collapse:collapse;'><tr><td>"+arrTourId[currentTourId][2]+"</td><td valign='top'><img style='' src='Bilder.aspx?logo=1&id="+currentTourId+"' /></td></tr></table><br><br>";
//            else
//                tdB.innerHTML="<table cellpadding='0' cellspacing='0' border='0' style='border-collapse:collapse;'><tr><td>"+arrTourId[currentTourId][2]+"</td><td valign='top'><img style='' src='Bilder.aspx?logo=1&id="+currentTourId+"' /></td></tr></table><br><br>";
//       }
//    }

    function showTourInfo()
    {
    if(document.getElementById("TourDetailBeschreibung").style.display == 'none')
       {
        document.getElementById("TourDetailBeschreibung").style.display = 'block';
        document.getElementById("RouteDetailBeschreibung").style.display = 'none';
        document.getElementById('buttonShowTourInfo').innerHTML=Languages[Lang]["buttonShowTourInfo"];
        }
        else
       {
        document.getElementById("TourDetailBeschreibung").style.display = 'none';
        document.getElementById("RouteDetailBeschreibung").style.display = 'block';
        document.getElementById('buttonShowTourInfo').innerHTML=Languages[Lang]["buttonShowTourInfo2"];
       }       
    }
    
    function setTourDetail(){
        var tdU = document.getElementById('TourDetailUeberschrift');
        var tdB = document.getElementById('TourDetailBeschreibung');
        if( (tdU != null)  && (tdB != null) && (currentTourId > 0) )
        {
            var name ="";
            if(arrTourId[currentTourId][4] == "" || arrTourId[currentTourId][4] == null)
            {
                name = arrTourId[currentTourId][0];
            }
            else
            {
                name = arrTourId[currentTourId][0]+" ("+arrTourId[currentTourId][4]+" km)";
            }
            tdU.innerHTML=arrTourId[currentTourId][0];
            if(arrTourId[currentTourId][5]!="")
            {   
                //damit der Tourname neben dem TourLogo mittig und in mehreren Zeilen erscheint, 
                //wird das Logo und der Name hier einzeln in einer Tabelle angezeigt und aus der InfoBeschreibung rausgefiltert.
                
                if(arrTourId[currentTourId][1]!="")
                    tdB.innerHTML='<i>'+arrTourId[currentTourId][1]+"</i><br><br><table><colgroup><col width='90'><col width='150'></colgroup><tr><td><img style='width:80px; vertical-align:middle;' src='Bilder.aspx?logo=1&id="+currentTourId+"' /></td><td style='color:#3769A6; font-family:Arial, Verdana, Sans-Serif; font-size:12px; font-weight:bold;'>"+name+"</td></tr><tr></tr><tr><td style='color:#3769A6; font-family:Arial, Verdana, Sans-Serif; font-size:12px;' colspan='2'>"+arrTourId[currentTourId][2]+"</td></tr></table><br><br>";
                else
                    tdB.innerHTML="<table><colgroup><col width='90'><col width='150'></colgroup><tr><td><img style='width:80px; vertical-align:middle;' src='Bilder.aspx?logo=1&id="+currentTourId+"' /></td><td style='color:#3769A6; font-family:Arial, Verdana, Sans-Serif; font-size:12px; font-weight:bold;'>"+name+"</td></tr><tr></tr><tr><td style='color:#3769A6; font-family:Arial, Verdana, Sans-Serif; font-size:12px;' colspan='2'>"+arrTourId[currentTourId][2]+"</td></tr></table><br><br>";
            }
            else
            {
                if(arrTourId[currentTourId][1]!="")
                    tdB.innerHTML='<i>'+arrTourId[currentTourId][1]+"</i><br><br><b>"+name+"</b><br><br>"+arrTourId[currentTourId][2]+'<br><br>';
                else
                    tdB.innerHTML="<b>"+name+"</b><br><br>"+arrTourId[currentTourId][2]+'<br><br>';
            }
       }
    }
    
    
    function TagebuchAnzeigen()
    {
	    if(document.getElementById('reisetagebuchUebersicht').style.visibility=='visible')
		    document.getElementById('reisetagebuchUebersicht').style.visibility='hidden';
	    else
		    document.getElementById('reisetagebuchUebersicht').style.visibility='visible';
    }
    
    function VCardAnzeigen()
    {
		if(document.getElementById('divVisitenkarte').style.visibility=='visible'){
			document.getElementById('divVisitenkarte').style.visibility='hidden';
			document.getElementById("poiImage").style.visibility = 'hidden';
            document.getElementById("btnBuchenImg").style.visibility = 'hidden';
            document.getElementById("btnInfosImg").style.visibility = 'hidden';
            document.getElementById("btnMerkeImg").style.visibility = 'hidden';
            document.getElementById("btnDruckenImg").style.visibility = 'hidden';
		}
		else{
			document.getElementById('divVisitenkarte').style.visibility='visible';
			document.getElementById("poiImage").style.visibility = 'hidden';
    	}
	}
	function toggleAnleitung()
	{
	    if(isGerman){
	        document.getElementById('AnleitungEnglish').style.visibility='hidden';	            
	        
	        if(document.getElementById('AnleitungDeutsch').style.visibility=='visible')
	            document.getElementById('AnleitungDeutsch').style.visibility='hidden';	            
	        else
                document.getElementById('AnleitungDeutsch').style.visibility='visible';
                	            
	        document.getElementById('buttonAnleitung').innerHTML='Anleitung';
            document.getElementById('buttonAnleitung').innerHTML='schliessen';
        }else
        {
            document.getElementById('AnleitungDeutsch').style.visibility=='hidden';
            
  	        if(document.getElementById('AnleitungEnglish').style.visibility=='visible')
        	    document.getElementById('AnleitungEnglish').style.visibility='hidden';
        	    else
        	    document.getElementById('AnleitungEnglish').style.visibility='visible';
	        
	        document.getElementById('buttonAnleitung').innerHTML='Manual';
	        document.getElementById('buttonAnleitung').innerHTML='close';
        }
	}
    function toggleNavigation()
    {
        if(navigationIsOn)
            OpenTourenuebersicht();
        else
            OpenTourennavigation();
        navigationIsOn = !navigationIsOn;
    }
	function OpenTourennavigation()
	{
		document.getElementById("ContainerPoiKat").style.visibility="hidden";
		document.getElementById("ContainerPoiKatBG").style.visibility="hidden";
		document.getElementById("menueInhalt").style.visibility="hidden";
		document.getElementById("ContainerTournavigation").style.visibility="visible";
		document.getElementById("ContainerTournavigationBG").style.visibility="visible";
//		document.getElementById("ContainerMenueNavigation").style.visibility="visible";
//		document.getElementById("ContainerMenueUebersicht").style.visibility="hidden";
		document.getElementById("btnStartRouting").style.visibility="visible";
		document.getElementById("btnStartpunktRoutingSetzen").style.visibility="visible";
		document.getElementById("btnStartpunktRoutingLoeschen").style.visibility="visible";
		document.getElementById("ZwischenpunktAuswahl").style.visibility="visible";
		document.getElementById("btnZwischenpunktSetzen").style.visibility="visible";
		document.getElementById("btnZwischenpunktLoeschen").style.visibility="visible";
		document.getElementById("btnEndpunktRoutingSetzen").style.visibility="visible";
		document.getElementById("btnEndpunktRoutingLoeschen").style.visibility="visible";
	    document.getElementById("ContainerPoiKatAusschalten").style.visibility="hidden";
	    document.getElementById("ContainerPoiKatEinschalten").style.visibility="hidden";
        document.getElementById("adresssuche").style.visibility="hidden";
        document.getElementById("SuchergebnisAnzeige").style.visibility="hidden";
//        document.getElementById("btnAdresssuche_1").style.visibility="hidden";
//        document.getElementById("btnAdresssuche").style.visibility="visible";
    }

	function OpenTourenuebersicht(){
		document.getElementById("ContainerPoiKat").style.visibility="visible";
		document.getElementById("ContainerPoiKatBG").style.visibility="visible";
		document.getElementById("menueInhalt").style.visibility="visible";
		document.getElementById("ContainerTournavigation").style.visibility="hidden";
		document.getElementById("ContainerTournavigationBG").style.visibility="hidden";
//		document.getElementById("ContainerMenueNavigation").style.visibility="hidden";
//		document.getElementById("ContainerMenueUebersicht").style.visibility="visible";
		document.getElementById("btnStartRouting").style.visibility="hidden";
		document.getElementById("btnStartpunktRoutingSetzen").style.visibility="hidden";
		document.getElementById("btnStartpunktRoutingLoeschen").style.visibility="hidden";
		document.getElementById("btnZwischenpunktSetzen").style.visibility="hidden";
		document.getElementById("btnZwischenpunktLoeschen").style.visibility="hidden";
		document.getElementById("ZwischenpunktAuswahl").style.visibility="hidden";
        document.getElementById("btnEndpunktRoutingSetzen").style.visibility="hidden";
		document.getElementById("btnEndpunktRoutingLoeschen").style.visibility="hidden";
		if(bAlleAuswaehlenSichtbar!=false){
		    document.getElementById("ContainerPoiKatAusschalten").style.visibility="visible";
		    document.getElementById("ContainerPoiKatEinschalten").style.visibility="hidden";
		}
		else{
		    document.getElementById("ContainerPoiKatAusschalten").style.visibility="hidden";
		    document.getElementById("ContainerPoiKatEinschalten").style.visibility="visible";
		}
        document.getElementById("adresssuche").style.visibility="hidden";
        document.getElementById("SuchergebnisAnzeige").style.visibility="hidden";
//        document.getElementById("btnAdresssuche_1").style.visibility="hidden";
//        document.getElementById("btnAdresssuche").style.visibility="visible";
	}

	function OpenAdresssuche(){
		document.getElementById("ContainerPoiKat").style.visibility="visible";
		document.getElementById("ContainerPoiKatBG").style.visibility="visible";
		document.getElementById("menueInhalt").style.visibility="visible";
		document.getElementById("ContainerTournavigation").style.visibility="hidden";
		document.getElementById("ContainerTournavigationBG").style.visibility="hidden";
		document.getElementById("ContainerMenueNavigation").style.visibility="hidden";
		document.getElementById("ContainerMenueUebersicht").style.visibility="visible";
		document.getElementById("btnStartRouting").style.visibility="hidden";
		document.getElementById("btnStartpunktRoutingSetzen").style.visibility="hidden";
		document.getElementById("btnStartpunktRoutingLoeschen").style.visibility="hidden";
		document.getElementById("btnZwischenpunktSetzen").style.visibility="hidden";
		document.getElementById("btnZwischenpunktLoeschen").style.visibility="hidden";
		document.getElementById("ZwischenpunktAuswahl").style.visibility="hidden";
        document.getElementById("btnEndpunktRoutingSetzen").style.visibility="hidden";
		document.getElementById("btnEndpunktRoutingLoeschen").style.visibility="hidden";
	    document.getElementById("ContainerPoiKatAusschalten").style.visibility="hidden";
	    document.getElementById("ContainerPoiKatEinschalten").style.visibility="hidden";
        document.getElementById("adresssuche").style.visibility="visible";
        document.getElementById("SuchergebnisAnzeige").style.visibility="visible";
//        document.getElementById("btnAdresssuche_1").style.visibility="visible";
//        document.getElementById("btnAdresssuche").style.visibility="hidden";
	}

    function toggleSearch()
    {
        if(searchIsOn)
            OpenTourenuebersicht();
        else
            OpenAdresssuche();
        searchIsOn = !searchIsOn;
    }
        
    function setTour(argTourId){
       
        var sTourID = "";
        if(argTourId != ""){
            if(document.getElementById("chkTourAusblenden").checked==true){
                document.getElementById("chkTourAusblenden").checked = false;
                if(bIsIE==true){
                    try{
                        document.getElementById("tour").style.visibility = "visible";
                    }
                    catch(Exception){}
                }
                else{
                    try{
                        document.getElementById("canvas").style.visibility = "visible";
                    }
                    catch(Exception){}
                }
            }
            center = new Array(arrTourId[argTourId][7],arrTourId[argTourId][8]);
            try{
                document.getElementById("route").innerHTML="";
            }
            catch(err){}
            DeleteStartpoint();
            DeleteEndpoint();

            var liste = document.getElementById("zwliste");
            var idx=1;
            while (idx<liste.options.length)
            {
                var idOfItem = "zwstop"+liste.options[idx].id;
                try{
                    liste.options.remove(idx); 
                }
                catch(err){
                    var strOptions = "<option value=''>----</option>";
                    liste.innerHTML = strOptions;
                }
                zwischenpunkte.removeAt(idx);
            }
            var innerDiv = document.getElementById("innerDiv");
            var imgs = innerDiv.getElementsByTagName("img");
            var i = 0;
            while (i<imgs.length)
            {
                if(imgs[i].name.replace("zwstop", "")!=imgs[i].name)
                    innerDiv.removeChild(imgs[i]);
                else
                    i++;
            }    
            
            currentTourId = argTourId;
            setTourDetail();
            try
            {
                if(document.getElementById("TourRegionAuswahl").value =="alle")
                {
                    if(document.getElementById("TourKategorieAuswahl").value == "alle")
                        ShowTouren("alle");
                    else
                        ShowTouren(arrTourId[argTourId][6]);
                }
                
                /*else
                {
                    ShowTourenNachRegion(currentRegionId);
                    if(document.getElementById("TourKategorieAuswahl").value != "alle")
                        ShowKatNachTour(currentTourId);
                }*/
            }
            catch(Exception){}
            //debugger;
//            if(zoomlevel == 0 && ((center[0] > 3468141.948) && (center[0] < 3477603.101) && (center[1] > 5927996.971) && (center[1] < 5942003.103)))
//            {
//                updateEichung();
//            }
//            else
//            {
//                center = new Array(arrTourId[argTourId][7],arrTourId[argTourId][8]);
//			    setCenter(center[0],center[1]);
//                LoadTour();
//                m_usingWMS=true;
//            }

            
                 
            if (zoomlevel==0 && (center[0] > 3468141.948) && (center[0] < 3477603.101) && (center[1] > 5927996.971) && (center[1] < 5942003.103))
            {
                m_usingWMS=false;
                toggleZoom();
                updateEichung();
                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";
                setMassstab();
                //Die Übersichtskarte des Stadtplans sichtbar machen
                document.getElementById("uebersichtskarteStadtplan").style.visibility="visible";
                document.getElementById("uebersichtskarte_schatten").style.visibility="visible";
            }
            else
            {
                 // außerhalb vom Stadtplan
                 m_usingWMS=true;
                 toggleZoom();
                 SetWMSBase(arrWMS[zoomlevel]);
                 setMeter();
                 //center = new Array(arrTourId[argTourId][7],arrTourId[argTourId][8]);
                 setCenter(center[0],center[1]);
                 LoadTour();
                 setMassstab();
                 document.getElementById("uebersichtskarteStadtplan").style.visibility="hidden";
                 document.getElementById("uebersichtskarte_schatten").style.visibility="hidden";

                 if(document.getElementById("adresssuche").style.display=="block")
                    setFixedSucheAt(arrSucheGewaehlt, "pointer.gif");
            }
            
            
            //updateEichung();
            if(document.getElementById("chkTourpoiZeigen").checked==true)
                checkTilesPoikatChange();
        }
        
        showOrt(currentTourId);
    }
    
    
    //Es wird zu dem jeweiligen Ort gesprungen
    function setOrt(argKoordinaten){
        var arrKoord = argKoordinaten.split(";");
        if(arrKoord[0] != null && arrKoord[1] != null)
        {
            setCenterwithZoomout=1;
            setCenter(arrKoord[0], arrKoord[1]);  
            setCenterwithZoomout=0;
        }
    }
    
    function FlaecheOver(obj)
    {       
        var ToolTippText = document.getElementById("ToolTippText");
                
        ToolTippText.innerHTML = obj.attributes["FlaechenName"].value;
        document.getElementById("FlaechenToolTipp").style.visibility="visible";
    }
    
    function FlaecheMove(event)
    {
        if(!event)event=window.event;
        var outerDiv = document.getElementById("outerDiv");
        var MouseX = event.clientX-GetOffsetLeft(outerDiv)+ScrollLeft();
        var MouseY = event.clientY-GetOffsetTop(outerDiv)+ScrollTop();
        
        document.getElementById("FlaechenToolTipp").style.left = MouseX + "px";
        document.getElementById("FlaechenToolTipp").style.top = (MouseY - 16)+ "px";
    }
    
    function FlaecheOut()
    {
        document.getElementById("FlaechenToolTipp").style.visibility="hidden";
    }
    
    function FlaecheUp(obj)
    {
		var url = "./GetFlaecheVisitenkarte.aspx?id=" + obj.attributes["FlaechenID"].value;
        loadXMLDoc(url);
    }
      
    // Bearbeitet den Klick in die Übersichtskarte
    function clickOverview(event)
    {
    
        if (!event) event = window.event;
        var overview = document.getElementById("mapoverview");
        var arrScrolling=showScrolling();
        var mtop = event.clientY-stripPx(overview.offsetTop)-stripPx(overview.offsetParent.offsetTop)+stripPx(arrScrolling[1])-117; //-142
        var mleft = event.clientX-stripPx(overview.offsetLeft)-stripPx(overview.offsetParent.offsetLeft)-stripPx(overview.offsetParent.offsetParent.offsetLeft)-stripPx(overview.offsetParent.offsetParent.offsetParent.offsetLeft)+stripPx(arrScrolling[0]);
        var innerDiv = document.getElementById("innerDiv");
        var x1 = mleft * omX + oL; 
        var y1 = mtop * omY + oU; 
        setCenter(x1,y1);
        return false;
    }
    
    // Bearbeitet den Klick in die Übersichtskarte Stadtplan
    function clickOverview_stadtplan(event)
    {
        if (!event) event = window.event;
        var overview = document.getElementById("mapoverviewStadtplan");
        var arrScrolling=showScrolling();
        var mtop = event.clientY-stripPx(overview.offsetTop)-stripPx(overview.offsetParent.offsetTop)+stripPx(arrScrolling[1])-120; //-145
        var mleft = event.clientX-stripPx(overview.offsetLeft)-stripPx(overview.offsetParent.offsetLeft)-stripPx(overview.offsetParent.offsetParent.offsetLeft)-stripPx(overview.offsetParent.offsetParent.offsetParent.offsetLeft)+stripPx(arrScrolling[0]);
        var innerDiv = document.getElementById("innerDiv");
        var x1 = mleft * omX_stadtplan + oL_stadtplan; 
        var y1 = mtop * omY_stadtplan + oU_stadtplan; 
        setCenter(x1,y1);
        return false;
    }
    
    function showScrolling(){
        var x,y;
        if (self.pageYOffset) // all except Explorer
        {
	        x = self.pageXOffset;
	        y = self.pageYOffset;
        }
        else if (document.documentElement && document.documentElement.scrollTop)
	        // Explorer 6 Strict
        {
	        x = document.documentElement.scrollLeft;
	        y = document.documentElement.scrollTop;
        }
        else if (document.body) // all other Explorers
        {
	        x = document.body.scrollLeft;
	        y = document.body.scrollTop;
        }
        var arrRetval = new Array(x, y);
        return arrRetval;
}
    
    
    // Aktualisiert das blaue Quadrat auf der Übersichtskarte
    function updateUebersichtskarte()
    {        
        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 * meterX + links;   // oben links
        var y1 = mapOPy * meterY + unten;   // --- "" ---

        mapOPx = -mleft-viewportWidth;
        mapOPy = -mtop-viewportHeight;

        var x2 = mapOPx * meterX + links;   // unten links
        var y2 = mapOPy * meterY + unten;   // --- "" ---
                
        // xy1/2 enthalten jetzt die Geokoordinaten des sichtbaren Bereiches
        
        var xpix = (x1 - oL) / omX;
        var ypix = (y1 - oU) / omY;
        
        // Lage berechnen errechnen
        mtop = oH-parseInt(ypix); 
        mleft = oW-parseInt(xpix);        

        xpix = (x2 - oL) / omX;
        ypix = (y2 - oU) / omY;
        var top1 = oH-parseInt(ypix);
        var left1= oW-parseInt(xpix);        

        var oheight = Math.abs(parseInt(mtop)-parseInt(top1));
        var owidth = Math.abs(parseInt(mleft)-parseInt(left1));
               
        myArea.style.bottom = parseInt(mtop)-parseInt(oheight)+"px";
        myArea.style.left = oW-(parseInt(mleft))+"px";

        myArea.style.height = oheight+"px";
        myArea.style.width = owidth+"px";
    }
    
    // Aktualisiert das blaue Quadrat auf der Übersichtskarte !!!Stadtplan!!!
    function updateUebersichtskarte_stadtplan()
    {        
        var myArea = document.getElementById("myareaStadtplan");

        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 * meterX + links;   // oben links
        var y1 = mapOPy * meterY + unten;   // --- "" ---

        mapOPx = -mleft-viewportWidth;
        mapOPy = -mtop-viewportHeight;

        var x2 = mapOPx * meterX + links;   // unten links
        var y2 = mapOPy * meterY + unten;   // --- "" ---
                
        // xy1/2 enthalten jetzt die Geokoordinaten des sichtbaren Bereiches
        
        var xpix = (x1 - oL_stadtplan) / omX_stadtplan;
        var ypix = (y1 - oU_stadtplan) / omY_stadtplan;
        
        // Lage berechnen errechnen
        mtop = oH_stadtplan-parseInt(ypix); 
        mleft = oW_stadtplan-parseInt(xpix);        

        xpix = (x2 - oL_stadtplan) / omX_stadtplan;
        ypix = (y2 - oU_stadtplan) / omY_stadtplan;
        var top1 = oH_stadtplan-parseInt(ypix);
        var left1= oW_stadtplan-parseInt(xpix);        

        var oheight = Math.abs(parseInt(mtop)-parseInt(top1));
        var owidth = Math.abs(parseInt(mleft)-parseInt(left1));
        
        myArea.style.bottom = parseInt(mtop)-parseInt(oheight)+"px";
        myArea.style.left = oW_stadtplan-(parseInt(mleft))+"px";

        myArea.style.height = oheight+"px";
        myArea.style.width = owidth+"px";
    }
    
    
    // Setzt den Click-Mode fürs Routing
    //0=nix
    //1=Start
    //2=Ziel
    //3=Zwischenpunkt
    function setRoutingClickMode(mode)
    {
        clickMode = mode;
    }
    
    // TODO: Zwischenpunkt-Liste hier leeren und neu aufbauen
    function DeleteZwischenpoint()
    {
        var liste = document.getElementById("zwliste");
        var idx = liste.selectedIndex;
        if (idx == 0)
            return;
        var idOfItem = "zwstop"+liste.options[idx].id;
        liste.remove(idx); 
        zwischenpunkte.removeAt(idx);

        var innerDiv = document.getElementById("innerDiv");
        var imgs = innerDiv.getElementsByTagName("img");
        var i = 0;
        while (i<imgs.length)
        {
            if(imgs[i].name==idOfItem)
                innerDiv.removeChild(imgs[i]);
            i++;
        }        
    }
    
    function moveMap(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";
        checkLeftTop();
        
        checkTiles();
        if ((zoomlevel==1) || (zoomlevel==2) || (zoomlevel==3)|| (zoomlevel==4) || (zoomlevel==5))
        {
            updateUebersichtskarte();
        }
        else
        {
            updateUebersichtskarte_stadtplan();
        }
    }
    
    // Transformiert lokale Koordinaten in Geokoordinaten
    function TransformMousePosToGeoCoord(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 * meterX + links; 
        var y1 = mapOPy * meterY + unten; 
        return new Array(x1,y1);
    }
    
    // Transformiert lokale Koordinaten in Geokoordinaten
    function TransformGeoCoordToInnerDiv(x,y)
    {
        var innerDiv = document.getElementById("innerDiv");
        var x1=x-links;
        x1=parseInt(x1/meterX);
        var y1=y-unten;
        y1=parseInt(y1/meterY);
        return new Array(x1,y1);
    }
    
    function setFixedPOIAt(punkt, bild)
    {
    
        var pixelPos = TransformGeoCoordToInnerDiv(punkt[0],punkt[1]);
        var innerDiv = document.getElementById("innerDiv");
        if (innerDiv != null)
        {
            var img2=document.getElementById(bild);
            if (img2 == null || bild == "zwstop.gif")
            {
                img2 = document.createElement("img");
                innerDiv.appendChild(img2);
            }
            img2.src = "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=300;
            if (bild=="ziel.gif")
                img2.alt="Ziel";
            if (bild=="start.gif")
                img2.alt="Startpunkt";
            if (bild=="zwstop.gif")
                img2.alt="Zwischenpunkt";
            img2.id=bild;
            if (bild == "zwstop.gif")
                img2.name="zwstop"+zwpCounter;
        }
    }
    
    function tourClicked(event)
    {
    
    
        // notwendig für IE
        if (!event) event = window.event;
        var outerDiv = document.getElementById("outerDiv");
        var arrScrolling = showScrolling();
        
        var y = -(stripPx(outerDiv.offsetParent.offsetParent.offsetTop)+stripPx(outerDiv.offsetParent.offsetTop)+144)+event.clientY+stripPx(arrScrolling[1]);
        var x = -(stripPx(outerDiv.offsetParent.offsetParent.offsetParent.offsetLeft)+stripPx(outerDiv.offsetParent.offsetParent.offsetLeft)+stripPx(outerDiv.offsetParent.offsetLeft))+event.clientX+stripPx(arrScrolling[0]);
       
        y=-(GetOffsetTop(outerDiv))+event.clientY+parseInt(arrScrolling[1]);
        x=-(GetOffsetLeft(outerDiv))+event.clientX+parseInt(arrScrolling[0]);
       
        var gc = TransformMousePosToGeoCoord(x,y);
        
        switch(clickMode)
        {
            case 1:
                document.getElementById('btnStartpunktRoutingSetzen').style.color='green';
                startPoint[0]=gc[0];
                startPoint[1]=gc[1];
                setFixedPOIAt(startPoint,"start.gif");
                break;
            case 2:
                document.getElementById('btnEndpunktRoutingSetzen').style.color='green';
                endPoint[0]=gc[0];
                endPoint[1]=gc[1];
                setFixedPOIAt(endPoint,"ziel.gif");
                break;
            case 3:
                document.getElementById('btnZwischenpunktSetzen').style.color='green';
                zwischenpunkte.push(gc);
                setFixedPOIAt(gc,"zwstop.gif");
                
                var liste = document.getElementById("zwliste");
                var oOption = document.createElement("OPTION"); 
                oOption.text="Zwischenpunkt"; 
                oOption.value=gc; 
                oOption.id=zwpCounter;
                liste.add(oOption);                 
                zwpCounter++;
            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="+currentTourId+"&sx="+sx+"&sy="+sy+"&ex="+ex+"&ey="+ey;
                for (var i=0;i<zwischenpunkte.size();i++)
                {
                    url=url+"&zw"+i+"x="+zwischenpunkte.getAt(i)[0];
                    url=url+"&zw"+i+"y="+zwischenpunkte.getAt(i)[1];
                }
                loadXMLDoc(url);
                document.getElementById('btnStartpunktRoutingSetzen').style.color='#003173';
                document.getElementById('btnZwischenpunktSetzen').style.color='#003173';
                document.getElementById('btnEndpunktRoutingSetzen').style.color='#003173';
            }
            else
            {
                alert("Kein Ziel gesetzt!");
            }
        }
        else
        {
            alert("Kein Startpunkt gesetzt!");
        }
    }
    
    // visibility: boolean
    // categoryid: int
    function setPOICategory(categoryId, visibility)
    {
        var theVisibility = "hidden";
        if (visibility)
            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("cat");
                if (cat == categoryId)
                {
                    images[j].style.visibility=theVisibility;
                }
            }
        }
    }        

    // visibility: boolean
    // categoryid: int
    function setPOICategoryAlle(arrCategoryId, visibility)
    {
        var theVisibility = "hidden";
        if (visibility)
            theVisibility="visible";
        for(idx = 0; idx<arrCategoryId.length; idx++){
            var test = arrCategoryId[idx];
            poiCatVisibilityMap[test]=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("cat");
                    if (cat == test)
                    {
                        images[j].style.visibility=theVisibility;
                    }
                }
            }
        }
    }        
    
    function startMoveOverview(event)
    {
    }
    
    function stopMoveOverview(event)
    {
    }

    function processMoveOverview(event)
    {
    }
    
    function isNumeric(sText) {

        if (sText == "")
            return false;
            
        var ValidChars = "0123456789.-";
        var IsNumber=true;
        var Char;

        for (i = 0; i < sText.length && IsNumber == true; i++) 
        { 
            Char = sText.charAt(i); 
            if (ValidChars.indexOf(Char) == -1) 
            {
                IsNumber = false;
            }
        }
       return IsNumber;   
   }
   
   function PoiAusdrucken(){
		var url = "PdfMerkerListe.aspx?PoiId="+iPoiIdAktuell+"&wms="+escape(theMap.m_wmsBase)+"&lmin="+theMap.XMinLeft + " " + theMap.YMinLeft +"&lmax="+theMap.XMaxLeft + " " + theMap.YMaxLeft+"&tmin="+theMap.XMinTop + " " + theMap.YMinTop+"&tmax="+theMap.XMaxTop + " " + theMap.YMaxTop;
    	wndMerkerliste = winOpen(url,"wndMerkerliste",400,300,"status=no,toolbar=no,menubar=no,location=no,resizable=no,dependent=yes");
    }

    function getCenter()
    {
        var innerDiv = document.getElementById("innerDiv");
        topVar=stripPx(innerDiv.style.top);
        leftVar=stripPx(innerDiv.style.left);

        var mapCenterPx = -(leftVar - (viewportWidth / 2));
        var mapCenterPy = -(topVar - (viewportHeight / 2));

        var xneu = mapCenterPx * meterX + links;
        var yneu = mapCenterPy * meterY + unten;
        
        var koords = new Array(parseInt(xneu),parseInt(yneu));
        return koords;
    }
    
    function setCenter(x, y)
    {
        var xpix = (x - links) / meterX - viewportWidth / 2;
        var ypix = (y - unten) / meterY - viewportHeight / 2;
        
        topVar = -parseInt(ypix);
        leftVar = -parseInt(xpix);
        var innerDiv = document.getElementById("innerDiv");
        innerDiv.style.top = parseInt(topVar) + "px";
        innerDiv.style.left = parseInt(leftVar)+ "px";
        checkLeftTop();
        checkTiles();
        if ((zoomlevel==1) || (zoomlevel==2) || (zoomlevel==3)|| (zoomlevel==4) || (zoomlevel==5))
        {
            updateUebersichtskarte();
        }
        else
        {
            updateUebersichtskarte_stadtplan();
        }
        
    }
    
    function checkWheel()
    {
        if (event.wheelDelta > 0)
        {
            ZoomIn();
        } else {
            ZoomOut();
        }
    }
    
    var wndMerkerliste = null; //Fenster für die Merkerliste
    
    function winOpen(theURL, Name, popW, popH, props)
	{
		var winleft = (screen.width - popW) / 2;
		var winUp = (screen.height - popH) / 2;
		winProp = 'width='+popW+',height='+popH+',left='+winleft+',top='+winUp+','+props
		Win = window.open(theURL, Name, winProp)
		if (parseInt(navigator.appVersion) >= 4)
		{
			if ( Win.window.focus )
				Win.window.focus();
		}
		return Win;
	}

    
    function processReqChange() 
    {
        if (req.readyState==4)
        {
          if (req.status==200)
          {
            xmlObj = req.responseXML;
            // Visitenkarte
            if (xmlObj.getElementsByTagName("visitenkarteninfo").length > 0)
            {
                var objElement = xmlObj.getElementsByTagName("visitenkarteninfo")[0];
                arrVisitenkarte = new Array(
                objElement.getAttribute("name"),
                objElement.getAttribute("poiKatId"),		//index 1
                objElement.getAttribute("symbol"),	
                objElement.getAttribute("poiKatName"),
                objElement.getAttribute("strasse"),
                objElement.getAttribute("hausNr"),			//index 5
                objElement.getAttribute("plz"),
                objElement.getAttribute("ort"),
                objElement.getAttribute("adressZusatz"),
                objElement.getAttribute("telefon"),
                objElement.getAttribute("telefax"),			//index 10
                objElement.getAttribute("bild"),
                objElement.getAttribute("logo"),
                objElement.getAttribute("koord_x"),
                objElement.getAttribute("koord_y"),
                objElement.getAttribute("erstellt"),		//index 15
                objElement.getAttribute("info"),
                objElement.getAttribute("beschreibung"),	//index 17
                objElement.getAttribute("oeffnungszeiten"),
                objElement.getAttribute("anfahrt"),			//index 19
                objElement.getAttribute("poiId"),			
                objElement.getAttribute("poiAnzeige"),		//index 21
                objElement.getAttribute("buchungslink"),
                objElement.getAttribute("infolink"),
                objElement.getAttribute("hvvlink"),
                objElement.getAttribute("terminlink"),
                objElement.getAttribute("drucken"),
                objElement.getAttribute("email"),
                objElement.getAttribute("visit"));
                setTimeout("VisitenkarteNeuFuellen();", 1);
                
                var visitenkarte = document.getElementById("divVisitenkarte");
                visitenkarte.style.visibility="visible";
            }

             if (xmlObj.getElementsByTagName("adresssuche").length > 0)
            {
                arrSuche = new Array();
                for(var i = 0; i<xmlObj.getElementsByTagName("punkt").length; i++){
                    var objElement = xmlObj.getElementsByTagName("punkt")[i];
                    arrSuche[i] = new Array(objElement.getAttribute("strasse"),
                    objElement.getAttribute("hausNr"),
                    objElement.getAttribute("plz"),
                    objElement.getAttribute("ort"),
                    objElement.getAttribute("koordx"),
                    objElement.getAttribute("koordy"));
                }
                if(arrSuche.length==0)
                    alert("Keine Einträge zu Ihrem Sucheintrag gefunden");
/*                else if(arrSuche.length==1)
                    setTimeout("centerSuche('"+arrSuche[0][4]+"', '"+arrSuche[0][5]+"');", 1);*/
                else
                    ShowSuchergebnis();
            }

			if (xmlObj.getElementsByTagName("pdfmerkerliste").length > 0)
            {
				var bPrint = xmlObj.getElementsByTagName("pdfmerkerliste")[0].getAttribute("available");
				if (bPrint==1)
				{
					alert("In Ihrer Merkerliste befinden sich zur Zeit keine Elemente!");
				}
				else
				{
					var url = "./PdfMerkerListe.aspx";
					wndMerkerliste = winOpen(url,"wndMerkerliste",400,300,"status=no,toolbar=no,menubar=no,location=no,resizable=no,dependent=yes");
				}
            }
			
			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"));
			    setMassstab();
			    xSize = parseFloat(xmlObj.getElementsByTagName("result")[0].getAttribute("xSize"));
			    ySize = parseFloat(xmlObj.getElementsByTagName("result")[0].getAttribute("ySize"));
			    
			    //center = getCenter();
                if (center)
                {
                    setCenterwithZoomout=1;
                    
                        setCenter(center[0],center[1]);	
                    setCenterwithZoomout=0;
                }
                    
                if(setFixedPOI)
                    setFixedSuchePOIAt2(arrPoiIdSuche);
                    
                if (currentTourId != 0)
                {
                    var url = "./GetTourDisplay.aspx?x="+links+"&y="+unten+"&w="+meterX+"&h="+meterY+"&tourId="+currentTourId;
                    loadXMLDoc(url);
                    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="+currentTourId+"&sx="+sx+"&sy="+sy+"&ex="+ex+"&ey="+ey;
                            for (var i=0;i<zwischenpunkte.size();i++)
                            {
                                url=url+"&zw"+i+"x="+zwischenpunkte.getAt(i)[0];
                                url=url+"&zw"+i+"y="+zwischenpunkte.getAt(i)[1];
                            }

                            setTimeout("loadXMLDoc('"+url+"');",500);
                        }
                    }
                    if (endPoint[0] != 0)
                    {
                        setFixedPOIAt(endPoint,"ziel.gif");
                    }
                    
                    // Zwischenpunkte neu setzen
                    var liste = document.getElementById("zwliste");
                    var innerDiv = document.getElementById("innerDiv");
                    for (var i=1;i<liste.options.length;i++)
                    {
                        var idOfItem = "zwstop"+liste.options[i].id;
                        var imgs = innerDiv.getElementsByTagName("img");
                        var j = 0;
                        var oldZp = zwpCounter;
                        var laenge = imgs.length;
                        zwpCounter = parseInt(liste.options[i].id);
                        setFixedPOIAt(zwischenpunkte.getAt(i-1),"zwstop.gif");
                        zwpCounter = oldZp;     
                    }

                    // TODO: Zwischenpunkte hier setzen
                }
            }	
						
			if (xmlObj.getElementsByTagName("Flaechen").length > 0)
			{	
			    var nI, nJ, nK;
			    var sDiv = "";
			    var sFlaechenElement = "";
			    var bNew = false;
			    bRun = false;
			    
			    
			    var innerDiv = document.getElementById("innerDiv");
			    var Flaechendiv = document.getElementById("Flaechen")
                if (Flaechendiv == null)
                {
                    Flaechendiv = document.createElement("div");
                    Flaechendiv.id = "Flaechen";
                }
			    
			    innerDiv.appendChild(Flaechendiv);
			    var objElement = xmlObj.getElementsByTagName("Flaechen")[0];    
                var arrFlaechenKatIDs = objElement.childNodes[objElement.childNodes.length-1].attributes[0].value.split(";");
                
                for(nI=0; nI<arrFlaechenKatIDs.length; nI++)
                {
                    if (!isExistsFlaechenDiv("Flaeche" + arrFlaechenKatIDs[nI]))
                    {
                        bNew = true;
                        break
                    }    
                
                }
                
                if (bNew)
                {
	                for(nI=0; nI<objElement.childNodes.length - 1; nI++)
	                {
	                    sFlaechenElement = "";
	                    sFlaechenElement = objElement.childNodes[nI].attributes[0].value;
	                    sDiv += sFlaechenElement;
	                    if (objElement.childNodes[nI].attributes[1].value == "-")
	                    {
	                        if (sFlaechenElement!="")
	                        {
	                            var sCanvasID = GetCanvasID(sFlaechenElement);
	                            var sColor = objElement.childNodes[nI].attributes[3].value
	                            var sOpacity = objElement.childNodes[nI].attributes[4].value
    			                
	                            if (sCanvasID != "")
	                                setTimeout("FlaechenZeichnenCanvas('"+objElement.childNodes[nI].attributes[2].value+"','" + sCanvasID +"','" + sColor + "','" + sOpacity + "');", 1);
	                        }
	                    }
	                }
                    
                    Flaechendiv.innerHTML = sDiv; 
			    }
            }
			
			
			
            if (xmlObj.getElementsByTagName("tourinfo").length > 0)
			{	
			    if(document.getElementById("chkTourAusblenden").checked!=true){
			        var strKoordinaten = xmlObj.getElementsByTagName("tourinfo")[0].getAttribute("koordinaten");
			        var innerDiv = document.getElementById("innerDiv");
                    var div = document.getElementById("tour")
                    if (div == null)
                    {
                        div = document.createElement("div");
                        div.id = "tour";
                    }
                    try
                    {
                        div.innerHTML = 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");
    			        document.getElementById("warnungFirefox").style.visibility="visible";
    			        // Tour im Firefox zeichnen 
                        setTimeout("TourZeichnenCanvas('"+strKoordinaten+"', "+iMaxX+", "+iMaxY+", "+iMinX+", "+iMinY+", '"+strKoordinatenreal+"');", 1);
                    }
                }
            }

            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;
                    document.getElementById("TourDetailBeschreibung").style.display = 'none';
                    var divTourText = document.getElementById("RouteDetailBeschreibung");
                    divTourText.style.display = 'block';
                    document.getElementById("buttonShowTourInfo").style.display = 'block';
                    divTourText.innerHTML = xmlObj.getElementsByTagName("routeinfo")[0].getAttribute("html");
                } catch(e)
                {
                    div.innerHTML = "";
                    alert("Die Route kann nicht ermittelt werden!\r\nGibt es eine Verbindung zwischen Start- und Zielpunkt?");                
                }
                // Wenn IE
                if(strKoordinaten=="-")
                    innerDiv.appendChild(div);
                else{ // Firefox
                    RoutingZeichnenCanvas(strKoordinaten);
                }
            }	
            
            if (xmlObj.getElementsByTagName("kategorien").length > 0)
            {
                var strMenueInhalt = "";
                var iZaehler = 0;
                var tmpHauptkat = "";
                var tmpKategorietyp = "";
                var tmpKatName = "";
                var tmpZaehler= 0;
                var tmpSymbol = "";
                
                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;
                        arrMenueKat[iZaehler] = new Array(objElement.getAttribute("kategorietyp"), objElement.getAttribute("id"), objElement.getAttribute("name"), "noUkat", false, objElement.getAttribute("symbol"));
                    }
                    else{
                        arrMenueKat[iZaehler] = new Array(objElement.getAttribute("kategorietyp"), objElement.getAttribute("id"), objElement.getAttribute("name"), tmpHauptkat, false, objElement.getAttribute("symbol"));
                        arrMenueKat[tmpZaehler] = new Array(tmpKategorietyp, tmpHauptkat, tmpKatName, "ukat", false, tmpSymbol);
                    }
                    iZaehler++;
                }
                iAnzahlKategorien = iZaehler;
                bMenueLaden = false;
                menueAusklappen("");
                dodelay = true;
            }
            
            // Adresssuche
            if (xmlObj.getElementsByTagName("adresspoisuche").length > 0)
            {
                var arrAdressSuche = new Array();
                for(var i = 0; i<xmlObj.getElementsByTagName("punkt").length; i++){
                    var objElement = xmlObj.getElementsByTagName("punkt")[i];
                    arrAdressSuche[i] = new Array(
                    objElement.getAttribute("koordx"),
                    objElement.getAttribute("koordy"),
                    objElement.getAttribute("strasse"),
                    objElement.getAttribute("ort"),
                    objElement.getAttribute("plz"));
                }
                if(arrAdressSuche.length==0)
                    alert("Keine Einträge zu Ihrem Sucheintrag gefunden");
//                else if(arrSuche.length==1)
//                    setTimeout("centerSuche('"+arrSuche[0][0]+"', '"+arrSuche[0][1]+"');", 1);
                else
                    theMap.ShowSuchergebnis(arrAdressSuche);
            }
            
            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="+zoomlevel+"&luft="+isLuftbild;
                    
                    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");
			                    x=x-links;
			                    y=y-unten;
			                    x=x/meterX;
			                    y=y/meterY;
                                var img2 = document.createElement("img");
                                img2.src = icon.replace('!--!', '?').replace('!---!', '&');
                                img2.style.position = "absolute";
                                img2.style.left = x-12 + "px";
                                img2.style.top = y-12 + "px";
                                img2.style.cursor="pointer";
                                img2.style.zIndex=99;
                                img2.onclick=POIClick;
                                img2.alt=name;
                                img2.title=name;
                                img2.id=id;
                                img2.name=cat;
                                div.appendChild(img2);
                            }
                        }
			        }
		            try{
                        var imgs3 = div.getElementsByTagName("img");
                        var idx = 1;
                        while(idx<imgs3.length)
                        {
		                    if(strTestId.replace(";"+imgs3[idx].id+";", "")==strTestId){
                                div.removeChild(imgs3[idx]);
                            }
                            else{
                                idx++;
                            }
                        }
    	            }
		            catch(err){
		                //alert("Ladefehler:"+err);
		            }
			        
			    }
            }
            requestActive=false;
            if (ajaxQueue.length() > 0)
            {
                var url=ajaxQueue.dequeue();
                setTimeout("loadXMLDoc('"+url+"');",1);
            }
          }
          else
          {
            //alert("Problem retrieving XML data");
          }
        }
    }
    
    function loadXMLDoc(url) 
    {
        if (requestActive==false)
        {
            requestActive=true;
            if (window.XMLHttpRequest) {
                req = new XMLHttpRequest();
                req.onreadystatechange = processReqChange;
                req.open("GET", url, true);
                req.send(null);
            } else if (window.ActiveXObject) {
                req = new ActiveXObject("Microsoft.XMLHTTP");
                if (req) {
                    req.onreadystatechange = processReqChange;
                    req.open("GET", url, true);
                    req.send();
                }
            }
        } else {
            ajaxQueue.enqueue(url);
        }
    }
     
    // Stellt den Zoom auf ein bestimmtes Zoomlevel
    function Zoom(argZoomlevel){
        center = getCenter();
        if (argZoomlevel==0 && !((center[0] > 3468141.948) && (center[0] < 3477603.101) && (center[1] > 5927996.971) && (center[1] < 5942003.103)))
        {
            zoomlevel = argZoomlevel;
            m_usingWMS=true;
            SetWMSBase(arrWMS[zoomlevel]);
		    setMeter();
	        setCenter(center[0],center[1]);
	        if(currentTourId!=0)
               LoadTour(currentTourId);
            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";        
            setMassstab();
            updateZoomButtons();
            
        }
        else
        {
            zoomlevel = argZoomlevel;
            if (zoomlevel==0 && ((center[0] > 3468141.948) && (center[0] < 3477603.101) && (center[1] > 5927996.971) && (center[1] < 5942003.103)))
            {
                //Die Übersichtskarte des Stadtplans sichtbar machen
                document.getElementById("uebersichtskarteStadtplan").style.visibility="visible";
                document.getElementById("uebersichtskarte_schatten").style.visibility="visible";
                document.getElementById("btn_Luftbild").style.display='block';
            }
            else
            {
                center = getCenter();//nötig?
                
                //Die Übersichtskarte des Stadtplans hidden machen, wenn von zoomlevel 0 auf 1 geändert wird
                document.getElementById("uebersichtskarteStadtplan").style.visibility="hidden";
                document.getElementById("uebersichtskarte_schatten").style.visibility="hidden";
                document.getElementById("btn_Luftbild").style.display='none';
            }
            toggleZoom();
            if(zoomlevel == 0)
            {
                m_usingWMS=false;
                updateEichung();
            }
            else
            {
                m_usingWMS=true;
                SetWMSBase(arrWMS[zoomlevel]);
			    setMeter();
		        setCenter(center[0],center[1]);
		        if(currentTourId!=0)
	               LoadTour(currentTourId);
            }
                
            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";        
            setMassstab();
            updateZoomButtons();
        }
    }


        function ZoomIn()
        {
            if (zoomlevel>0)
            {
                center = getCenter();
                if (zoomlevel==1 && !((center[0] > 3468141.948) && (center[0] < 3477603.101) && (center[1] > 5927996.971) && (center[1] < 5942003.103)))
                {
                    m_usingWMS=true;
		            zoomlevel=zoomlevel-1;
		            toggleZoom();
		            SetWMSBase(arrWMS[zoomlevel]);
		            setMeter();
    	            //setZoom(zoomlevel);
	                //checkTiles();
	                setCenter(center[0],center[1]);
	                setMassstab();
	                if(currentTourId!=0)
                        LoadTour(currentTourId);
	                document.getElementById('massstabAnzeige').value=ScaleMatchTab[zoomlevel];
//			        this.MassstabSetzen();
		            //solange die Adresssuche aktiv ist soll das Kreuz in jedem Maßstab angezeigt werden
		            if(document.getElementById("adresssuche").style.display=="block")
		                setFixedSucheAt(arrSucheGewaehlt, "pointer.gif");
                //  Routing und Start- Zwischen und Endpunkte
                    //RefreshRoutingPoints();
                }
                else
                {
                    if (zoomlevel<=1)
                    {
                        m_usingWMS=false;
                        zoomlevel=zoomlevel-1;
                        toggleZoom();
                        updateEichung();
                        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";        
                        // setMassstab();
                        if ((zoomlevel==0) && ((center[0] > 3468141.948) && (center[0] < 3477603.101) && (center[1] > 5927996.971) && (center[1] < 5942003.103)))
                        {
                            //Die Übersichtskarte des Stadtplans sichtbar machen
                            document.getElementById("uebersichtskarteStadtplan").style.visibility="visible";
                            document.getElementById("uebersichtskarte_schatten").style.visibility="visible";
                            document.getElementById("btn_Luftbild").style.display='block';
                        }
                    }
                    else
                    {
                        m_usingWMS=true;
			            zoomlevel=zoomlevel-1;
			            toggleZoom();
			            SetWMSBase(arrWMS[zoomlevel]);
			            setMeter();
	    	            //setZoom(zoomlevel);
		                //checkTiles();
		                setCenter(center[0],center[1]);
		                setMassstab();
		                if(currentTourId!=0)
	                        LoadTour(currentTourId);
		                document.getElementById('massstabAnzeige').value=ScaleMatchTab[zoomlevel];
    //			        this.MassstabSetzen();
			            //solange die Adresssuche aktiv ist soll das Kreuz in jedem Maßstab angezeigt werden
			            if(document.getElementById("adresssuche").style.display=="block")
			                setFixedSucheAt(arrSucheGewaehlt, "pointer.gif");
                    //  Routing und Start- Zwischen und Endpunkte
                        //RefreshRoutingPoints();
                    }
                }
            }
            updateZoomButtons();
        }

    function changeMap()
    {
            isLuftbild = !isLuftbild;
            toggleZoom();
            updateEichung();
    }

        function KarteMove(x,y)
        {
            // Diese Funktion hier wird aufgerufen während der Mauszeiger in das Karte rumfährt
            // x,y: Geokoordinaten
            var kx1 = document.getElementById("koordx1");
            var ky1 = document.getElementById("koordy1");
            kx1.innerHTML="X:"+parseInt(x);
            ky1.innerHTML="Y:"+parseInt(y);
            
            //Stunden & Minuten            
            var geo=TransGKnachGeo(x,y);
            var gms=TransGeonachGradMinSek(geo[0],geo[1]);
            
            var kx2 = document.getElementById("koordx2");
            var ky2 = document.getElementById("koordy2");

            kx2.innerHTML=gms[0];
            ky2.innerHTML=gms[1];
        }
    function changeKoord_clicked()
    {
        if(document.getElementById('koordx1').style.display=='none')
        {
            document.getElementById('koordx1').style.display = 'block';
            document.getElementById('koordy1').style.display = 'block';
            document.getElementById('koordx2').style.display = 'none';
            document.getElementById('koordy2').style.display = 'none';
        }
        else{
            document.getElementById('koordx1').style.display = 'none';
            document.getElementById('koordy1').style.display = 'none';
            document.getElementById('koordx2').style.display = 'block';
            document.getElementById('koordy2').style.display = 'block';
            }
    }

    function setMassstab()
    {    
        // Variablendeklaration
        var dimm1 = document.getElementById("dimm1");
        var dimm2 = document.getElementById("dimm2");
        var dimm3 = document.getElementById("dimm3");
        var dimm4 = document.getElementById("dimm4");
        var dimm5 = document.getElementById("dimm5");
        var dimm6 = document.getElementById("dimm6");
        
        // Alle Dimm-Zwischenstände verstecken (Dimm-Nummerierung ist verkehrt herum)
        dimm1.style.visibility = "hidden";
        dimm2.style.visibility = "hidden";
        dimm3.style.visibility = "hidden";
        dimm4.style.visibility = "hidden";
        dimm5.style.visibility = "hidden";
        dimm6.style.visibility = "hidden";
        
        if(zoomlevel==0){
            //document.getElementById("idMassstab").innerHTML="Stadtplan BHV";
            dimm6.style.visibility = "visible";
            if(m_usingWMS==false)
                document.getElementById("idMassstab").innerHTML=Languages[Lang]["idMassstabStatdplan"]+" 1:10.000";
            else
                document.getElementById("idMassstab").innerHTML=Languages[Lang]["idMassstab"]+" 1:10.000";
        }
        else if(zoomlevel==1){
            document.getElementById("idMassstab").innerHTML=Languages[Lang]["idMassstab"]+" 1:20.000";
            dimm5.style.visibility = "visible";    
        }
        else if(zoomlevel==2){
            document.getElementById("idMassstab").innerHTML=Languages[Lang]["idMassstab"]+" 1:40.000";
            dimm4.style.visibility = "visible";
        }
        else if(zoomlevel==3){
            document.getElementById("idMassstab").innerHTML=Languages[Lang]["idMassstab"]+" 1:80.000";
            dimm3.style.visibility = "visible";
        }
        else if(zoomlevel==4){
            document.getElementById("idMassstab").innerHTML=Languages[Lang]["idMassstab"]+" 1:160.000";
            dimm2.style.visibility = "visible";
        }
        else{
            document.getElementById("idMassstab").innerHTML=Languages[Lang]["idMassstab"]+" 1:320.000";
            dimm1.style.visibility = "visible";
        }
        
        if (zoomlevel==0 && m_usingWMS==false)
        {
            document.getElementById("uebersichtskarteStadtplan").style.visibility="visible";
            document.getElementById("uebersichtskarte_schatten").style.visibility="visible";
        }
        
        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";
	    }
	    
	    x=Math.round(this.meterX/(13.229/50000));
	    document.getElementById("massstabAnzeige").value = Math.round(this.meterX/(13.229/50000));
	   // document.getElementById("idMassstab").innerHTML = "Maßstab 1:"+this.ScaleMatchTab[this.zoomlevel];
	    masstabWidth.style.width = mWidth+"px";
	    document.getElementById("KoordAnzeige").style.width = (mWidth + 49) +"px";
	    document.getElementById("KoordAnzeigeBG").style.width = (mWidth + 51) +"px";
        
        
        setCopyright();        
        try{
            setTimeout('setFixedSucheAt(arrSucheGewaehlt, "pointer.gif")', 100);
        }
        catch(Exception){}
        bMassstabGewaehlt = true;
    }
 //Transformiert GK-koordinaten in Geokoordinaten eingabe y,x Koordniaten
 function TransGKnachGeo(rechts, hoch)
{
    var e2 = 0.0067192188;
    var c = 6398786.849;
    var rho = 180 / Math.PI;
    var b2 = (hoch / 10000855.7646) * (hoch / 10000855.7646);
    var bf = 325632.08677 * (hoch / 10000855.7646) * ((((((0.00000562025 * b2 +
               0.00022976983) * b2 - 0.00113566119) * b2 + 0.00424914906) * b2 -
               0.00831729565) * b2 + 1));
    bf /= 3600 * rho;
    var co = Math.cos(bf);
    var g2 = e2 * (co * co);
    var g1 = c / Math.sqrt(1 + g2);
    var t = Math.tan(bf);
    var fa = (rechts - Math.floor(rechts / 1000000) * 1000000 - 500000) / g1;
    geoLongLat = new Array(0,0);
    
    var geoLong = ((bf - fa * fa * t * (1 + g2) / 2 + fa * fa * fa * fa * t * (5 + 3 * t * t + 6 * g2 - 6 * g2 * t * t) / 24) * rho);
    geoLongLat[0] = geoLong;
    var dl = fa - fa * fa * fa * (1 + 2 * t * t + g2) / 6 + fa * fa * fa * fa * fa * (1 + 28 * t * t + 24 * t * t * t * t) / 120;
    var geoLat = dl * rho / co + Math.floor(rechts / 1000000) * 3;
    geoLongLat[1] = geoLat;

    var aBessel = 6377397.155;
    var eeBessel = 0.0066743722296294277832;
    var scaleFactor = 0.00000982;
    var rotXRad = -0.00000716069806998785;
    var rotYRad = 0.000000356822869296619;
    var rotZRad = 0.00000706858347057704;
    var shiftXMeters = 591.28;
    var shiftYMeters = 81.35;
    var shiftZMeters = 396.39;
    var aWGS84 = 6378137;
    var eeWGS84 = 0.0066943799;

    geoLong = (geoLong / 180) * Math.PI;
    geoLat = (geoLat / 180) * Math.PI;

    var n = eeBessel * Math.sin(geoLong) * Math.sin(geoLong);
    n = 1 - n;
    n = Math.sqrt(n);
    n = aBessel / n;

    // Console.WriteLine("n: " + n);

    var cartesianXMeters = n * Math.cos(geoLong) * Math.cos(geoLat);
    var cartesianYMeters = n * Math.cos(geoLong) * Math.sin(geoLat);
    var cartesianZMeters = n * (1 - eeBessel) * Math.sin(geoLong);

    var cartOutputXMeters = (1 + scaleFactor) * cartesianXMeters + rotZRad * cartesianYMeters -
                               rotYRad * cartesianZMeters + shiftXMeters;
    var cartOutputYMeters = -rotZRad * cartesianXMeters + (1 + scaleFactor) *
                              cartesianYMeters + rotXRad * cartesianZMeters + shiftYMeters;
    var cartOutputZMeters = rotYRad * cartesianXMeters - rotXRad * cartesianYMeters +
                             (1 + scaleFactor) * cartesianZMeters + shiftZMeters;

    //Console.WriteLine("cartOutputXMeters: " + cartOutputXMeters);
    //Console.WriteLine("cartOutputYMeters: " + cartOutputYMeters);
    //Console.WriteLine("cartOutputZMeters: " + cartOutputZMeters);

    geoLat = Math.atan(cartOutputYMeters / cartOutputXMeters);

    //Console.WriteLine("geoLat: " + geoLat);

    var latitude = cartOutputXMeters * cartOutputXMeters + cartOutputYMeters * cartOutputYMeters;
    latitude = Math.sqrt(latitude);
    latitude = cartOutputZMeters / latitude;
    latitude = Math.atan(latitude);

    var latitudeIt = 99999999;

    do
    {
        latitudeIt = latitude;
        n = 1 - eeWGS84 * Math.sin(latitude) * Math.sin(latitude);
        n = Math.sqrt(n);
        n = aWGS84 / n;

        latitude = cartOutputXMeters * cartOutputXMeters + cartOutputYMeters * cartOutputYMeters;
        latitude = Math.sqrt(latitude);
        latitude = (cartOutputZMeters + eeWGS84 * n * Math.sin(latitudeIt)) / latitude;
        latitude = Math.atan(latitude);

        // Console.WriteLine("latitude: " + latitude);
    }
    while (Math.abs(latitude - latitudeIt) >= 0.000000000000001);

    geoLong = (latitude / Math.PI) * 180;
    geoLat = geoLat / Math.PI * 180;

    geoLongLat[0] = geoLong;
    geoLongLat[1] = geoLat;



    return geoLongLat;
}

function TransGeonachGradMinSek(x,y){
    
    var gms=new Array();
    
    var Grad=0;
    var Min=0;
    var Sek=0;
    
    Grad=parseInt(x);
    Min=(parseInt((x-Grad)*60));
    Sek=parseInt(((x-Grad)*60-Min)*60);
    gms[0]=Grad+"°"+Min+"'"+Sek+"'' N";
    
    Grad=parseInt(y);
    Min=(parseInt((y-Grad)*60));
    Sek=parseInt(((y-Grad)*60-Min)*60);
    gms[1]=Grad+"°"+Min+"'"+Sek+"'' O";
    
    
    return gms;
}

    function toggleMap(mapname, levels)
    {
        center = getCenter();
        map = mapname;
        maxZoomLevel = levels;
        zoomlevel=0;
        toggleZoom();
        updateEichung();
        updateZoomButtons();
    }
    
    function setMeter(){
        meterX = ScaleMatchTab[zoomlevel] * (13.229/50000);
        meterY = (-1)*(ScaleMatchTab[zoomlevel] * (13.229/50000));
        links = 3312988;
        //unten = 5992665;
        unten = 7000000;
      
    }
        
    function ZoomOut()
    {
        if (zoomlevel==0)
        {
            //Die Übersichtskarte des Stadtplans hidden machen, wenn von zoomlevel 0 auf 1 geändert wird
            document.getElementById("uebersichtskarteStadtplan").style.visibility="hidden";
            document.getElementById("uebersichtskarte_schatten").style.visibility="hidden";
            document.getElementById("btn_Luftbild").style.display='none';
        }
        zoomTimer = 0;
        //setTimeout("beginZoom();",100);
        if (zoomlevel<maxZoomLevel && !((center[0] > 3468141.948) && (center[0] < 3477603.101) && (center[1] > 5927996.971) && (center[1] < 5942003.103)))
        {
            center = getCenter();
            zoomlevel=zoomlevel+1;
            toggleZoom();
            m_usingWMS=true;
            SetWMSBase(arrWMS[zoomlevel]);
			setMeter();
            //updateEichung();
            setCenter(center[0],center[1]);
		    setMassstab();
		    if(currentTourId!=0)
	            LoadTour(currentTourId);
            if(document.getElementById("adresssuche").style.display=="block")
    	        setFixedSucheAt(arrSucheGewaehlt, "pointer.gif");
//            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";        
//            setFixedSucheAt(arrSucheGewaehlt, "pointer.gif");
        } 
        else
        {
                    if (zoomlevel<0 && ((center[0] > 3468141.948) && (center[0] < 3477603.101) && (center[1] > 5927996.971) && (center[1] < 5942003.103)))
                    {
                        m_usingWMS=false;

                        zoomlevel=zoomlevel+1;
                        toggleZoom();
                        updateEichung();
                        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";        
                        // setMassstab();
                        if ((zoomlevel==0) && ((center[0] > 3468141.948) && (center[0] < 3477603.101) && (center[1] > 5927996.971) && (center[1] < 5942003.103)))
                        {
                            //Die Übersichtskarte des Stadtplans sichtbar machen
                            document.getElementById("uebersichtskarteStadtplan").style.visibility="visible";
                            document.getElementById("uebersichtskarte_schatten").style.visibility="visible";
                            document.getElementById("btn_Luftbild").style.display='block';
                        }
                    }
                    else
                    {
                        zoomlevel=zoomlevel+1;
                        m_usingWMS=true;
			            toggleZoom();
			            SetWMSBase(arrWMS[zoomlevel]);
			            setMeter();
	    	            //setZoom(zoomlevel);
		                //checkTiles();
		                setCenter(center[0],center[1]);
		                setMassstab();
//		                if(currentTourId!=0)
//	                        LoadTour(currentTourId);
		                document.getElementById('massstabAnzeige').value=ScaleMatchTab[zoomlevel];
    //			        this.MassstabSetzen();
			            //solange die Adresssuche aktiv ist soll das Kreuz in jedem Maßstab angezeigt werden
			            if(document.getElementById("adresssuche").style.display=="block")
			                setFixedSucheAt(arrSucheGewaehlt, "pointer.gif");
                    //  Routing und Start- Zwischen und Endpunkte
                        //RefreshRoutingPoints();
                    } 
                }
        updateZoomButtons();
       // setMassstab();
    }
    
     //>>#####WMS Funktionen #############//
    
     var arrWMS = new Array(cWMS,cWMS,cWMS,cWMS,cWMS,cWMS);

    var    iLayer = 3;
    
    var ScaleMatchTab = new Array(10000, 20000, 40000, 80000, 160000, 320000);
     
   function SetWMSBase(wmsBase)
  {
	m_usingWMS=true;
	m_wmsBase=wmsBase;
  }
    
    //<<#####WMS Funktionen #############//
    
    function beginZoom()
    {
        var innerDiv = document.getElementById("innerDiv");
        var divs = innerDiv.getElementsByTagName("div");
        var i=0;
        for (i = 0; i < divs.length; i++) {
            var imgs = divs[i].getElementsByTagName("img");
            var w = stripPx(imgs[0].style.width)-15;
            var h = stripPx(imgs[0].style.height)-15;
            
            if (w > 0)
            {
                imgs[0].style.width=w+"px";
                imgs[0].style.height=h+"px";
                //divs[i].style.width=w+"px";
                //divs[i].style.height=h+"px";

                //var mleft = stripPx(imgs[0].style.left)-15;
                //var mtop = stripPx(imgs[0].style.top)-15;
                
                //imgs[0].style.top=mleft+"px";
                //imgs[0].style.left=mtop+"px";
            }
        }

        zoomTimer = zoomTimer+1;
        if (zoomTimer < 10)
        {
            setTimeout("beginZoom();",100);
        }
    }

    function updateZoomButtons()
    {
        /*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;
            }
        }        */
    }
    
    function toggleZoom()
    {
        updateZoomButtons();
        var innerDiv = document.getElementById("innerDiv");
        var imgs = innerDiv.getElementsByTagName("div");
        while (imgs.length > 1)
        {
            innerDiv.removeChild(imgs[0]);
        }        
    }

    function DeleteStartpoint()
    {
        startPoint = new Array(0,0);
        var innerDiv = document.getElementById("innerDiv");
        var imgs = innerDiv.getElementsByTagName("img");
        var i = 0;
        while (i<imgs.length)
        {
            if(imgs[i].id=="start.gif")
                innerDiv.removeChild(imgs[i]);
            i++;
        }        
    }
    
    function DeleteEndpoint()
    {
        endPoint = new Array(0,0);
        var innerDiv = document.getElementById("innerDiv");
        var imgs = innerDiv.getElementsByTagName("img");
        var i = 0;
        while (i<imgs.length)
        {
            if(imgs[i].id=="ziel.gif")
                innerDiv.removeChild(imgs[i]);
            i++;
        }        
    }
    
    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 measureDistanceClick(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 (measureClickNum == 0)
        {
            dist1.from.x = xneu*ptToPxFactor;
            dist1.from.y = yneu*ptToPxFactor;
            dist2.from.x = xneu*ptToPxFactor;
            dist2.from.y = yneu*ptToPxFactor;

            dist1.to.x = xneu*ptToPxFactor;
            dist1.to.y = yneu*ptToPxFactor;
            dist2.to.x = xneu*ptToPxFactor;
            dist2.to.y = yneu*ptToPxFactor; 
            measureClickNum++;
            measureStartX = xneu;
            measureStartY = yneu;
        } else {
            dist1.to.x = xneu*ptToPxFactor;
            dist1.to.y = yneu*ptToPxFactor;
            dist2.to.x = xneu*ptToPxFactor;
            dist2.to.y = yneu*ptToPxFactor; 
            
            var distText = document.getElementById("distText");            
            var dx = xneu - stripPx(dist1.from.x)/ptToPxFactor;
            var dy = yneu - stripPx(dist1.from.y)/ptToPxFactor;
            var entf = Math.round(Math.sqrt(Math.abs(dx*meterX*dx*meterX)+Math.abs(y*meterY*dy*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;
            
            
            /*var distOval = document.getElementById("dist3");            
            dx = measureStartX-xneu;
            dy = measureStartY-yneu;
            distOval.style.left = measureStartX-dx;
            distOval.style.top = measureStartY-dy;
            distOval.style.width=Math.abs(dx*2)+"px";
            distOval.style.height=Math.abs(dy*2)+"px";*/
            
        }
        dist1.style.visibility="visible";        
        dist2.style.visibility="visible";        
    }
    
    function toggleMeasureDistance()
    {
        measureDistanceMode = !measureDistanceMode;
        measureClickNum=0;
    }
        
    function toggleDim()
    {
        dimmed = !dimmed;
        
        var outerDiv = document.getElementById("outerDiv");
        if (dimmed)
        {
            outerDiv.style.backgroundColor="#000000";
            //ButtonKlick('imgDimmen', 'images/lampe_00.gif');
            
        } else {
            outerDiv.style.backgroundColor="#dddddd";
            //ButtonKlick('imgDimmen', 'images/lampe.gif');
        }

        var innerDiv = document.getElementById("innerDiv");
        var divs = innerDiv.getElementsByTagName("div");
        var divNum = 0;
        while (divNum < divs.length)
        {    
            var imgs = divs[divNum].getElementsByTagName("img");
            if (imgs.length > 0)
            {
                if (!dimmed)
                {
                    imgs[0].style.filter = ""; 
                    imgs[0].style.opacity = 1; 
                }
                else
                {
                    imgs[0].style.opacity = "."+dimopacity; 
                    imgs[0].style.filter = "Alpha(opacity="+dimopacity+", style=0)"; 
                }
            }
            divNum++;
        }
    }

    function setInnerDivSize(width, height) {
        var innerDiv = document.getElementById("innerDiv")
        innerDiv.style.width = width
        innerDiv.style.height = height
    }
    
    
    function init() {
        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;
         }
        }
        
        viewportWidth = winW;
        viewportHeight = winH;
        
        //var dummy = document.getElementById("outerDiv").style.height/2 + 235;      

        setInnerDivSize('2000px', '1400px');
        var outerDiv = document.getElementById("outerDiv");
        outerDiv.onmousedown = startMove;
        outerDiv.onmousemove = processMove;
        outerDiv.onmouseup = stopMove;
        outerDiv.ondragstart = function() { return false; }

/*        var visitenkarte = document.getElementById("visitenkarte");
        visitenkarte.onmousedown = function() { return false; }
        visitenkarte.onmousemove = function() { return false; }
        visitenkarte.onmouseup = function() { return false; }
        visitenkarte.ondragstart = function() { return false; }*/
        
        var mapoverview = document.getElementById("mapoverview");
        mapoverview.onmousedown = startMoveOverview;
        mapoverview.onmousemove = processMoveOverview;
        mapoverview.onmouseup = stopMoveOverview;
        mapoverview.onclick = clickOverview;
        mapoverview.ondragstart = function() { return false; }

        mapoverview = document.getElementById("mapoverviewStadtplan");
        mapoverview.onmousedown = startMoveOverview;
        mapoverview.onmousemove = processMoveOverview;
        mapoverview.onmouseup = stopMoveOverview;
        mapoverview.onclick = clickOverview_stadtplan;
        mapoverview.ondragstart = function() { return false; }
        
        window.onresize = windowResize; 
        if(zoomlevel == 0)
        {
            m_usingWMS=false;
            updateEichung();
            measureDistanceMode=false;
        }
        else
        {
            m_usingWMS=true;
    	    SetWMSBase(arrWMS[zoomlevel]);
		    setMeter();
		    if(currentTourId!=0)
	           LoadTour(currentTourId);
	    }
	    setCenter(center[0],center[1]);
	    if(setFixedPOI)
            setFixedSuchePOIAt(arrPoiIdSuche);
        checkTiles();
        updateServerTags();  
        updateZoomButtons();
        
        initMenue();
        
        visibleMap();
       
        
        if ((zoomlevel==2) || (zoomlevel==3)|| (zoomlevel==4) || (zoomlevel==5))
        {
            updateUebersichtskarte();
        }
        else
        {
            updateUebersichtskarte_stadtplan();
        }
         setMassstab();
    }
    
    function visibleMap()
    {
        document.getElementById("outerDiv").style.visibility = "visible";
        document.getElementById("KarteNachSueden").style.visibility = "visible";
        document.getElementById("KarteNachWesten").style.visibility = "visible";
        document.getElementById("KarteNachOsten").style.visibility = "visible";
        document.getElementById("KarteNachNorden").style.visibility = "visible";
        document.getElementById("KarteNachSuedOsten").style.visibility = "visible";
        document.getElementById("KarteNachSuedWesten").style.visibility = "visible";
        document.getElementById("KarteNachNordOsten").style.visibility = "visible";
        document.getElementById("KarteNachNordWesten").style.visibility = "visible";
        document.getElementById("auswahlfelder").style.visibility = "visible";
        document.getElementById("logo").style.visibility = "visible";
        document.getElementById("wait").style.visibility = "hidden";
        
    }  
    
    function updateEichung() {
        loadXMLDoc("./GetKachel.aspx?getMapData=1&map="+map+"&level="+zoomlevel+"&luft="+isLuftbild);
    }
    
    function stripPx(value) {
        if (isNumeric(value))
            return parseFloat(value);
        if (value == "") 
            return 0;
        return parseFloat(value.substring(0, value.length - 2));
    }

    function startMove(event) {
        // notwendig für IE
        if (!event) event = window.event;
        dragStartLeft = event.clientX;
        dragStartTop = event.clientY;
        if (!measureDistanceMode)
        {
            var innerDiv = document.getElementById("innerDiv");
            innerDiv.style.cursor = "move";
            topVar = stripPx(innerDiv.style.top);
            leftVar = stripPx(innerDiv.style.left);
            dragging = true;
        } else {
            if (measureClickNum == 0)
            {
                measureDistanceClick(dragStartLeft,dragStartTop);
            }
            else
            {
                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;
    }
    
    function POIClick(event) {        
        if (!event) event = window.event;
        var visitenkarte = document.getElementById("divVisitenkarte");
        var srcElementId = "";
        if (!event.srcElement)
            srcElementId = event.target.id;
        else
            srcElementId = event.srcElement.id;
        if( parseInt(srcElementId) > 0 )
		    loadXMLDoc("./GetVisitenkarte.aspx?poiId="+srcElementId+"&spracheId="+strSpracheId);

        if (srcElementId == lastClickedItem)
        {
            if (visitenkarte.style.visibility == "visible")
            {
                visitenkarte.style.visibility="hidden";
            } else {
                visitenkarte.style.visibility="visible";
            }
        }
        else
        {
            visitenkarte.style.visibility="visible";
        } 
        
        iPoiIdAktuell = srcElementId;
        
        var outerDiv = document.getElementById("outerDiv");
        var x = event.clientX;//-outerDiv.offsetLeft;
        var y = event.clientY;//-outerDiv.offsetTop;
//        visitenkarte.style.left=x+"px";
//        visitenkarte.style.top=y+"px";
        lastClickedItem = srcElementId;
        //if (!event) event = window.event;
        //dragStartLeft = event.clientX;
        //dragStartTop = event.clientY;
        //updateServerTags();
        //document.form1.submit();
        return false;
    }    
    
    function processMove(event) {
    
        
        if (!event) event = window.event; // für IE

        //Koordinaten anzeigen    		
        var outerDiv = document.getElementById("outerDiv");
        var y1 = event.clientY-GetOffsetTop(outerDiv)+ScrollTop();
		var x1 = event.clientX-GetOffsetLeft(outerDiv)+ScrollLeft();
        var xyPos = TransformMousePosToGeoCoord(x1,y1);
		KarteMove(xyPos[0],xyPos[1]);
        
        if (measureDistanceMode)
        {
            if (measureClickNum==1)
            {
                measureDistanceClick(event.clientX,event.clientY);
            }
        } else {
            var innerDiv = document.getElementById("innerDiv");
            if (dragging) {
               innerDiv.style.top = parseFloat(topVar) + (event.clientY - dragStartTop)+"px";
               innerDiv.style.left = parseFloat(leftVar) + (event.clientX - dragStartLeft)+"px";
               checkLeftTop();
               setTimeout("checkTiles();",10);
               var uebersichtskarte = document.getElementById("uebersichtskarte");
               //if (uebersichtskarte.style.visibility=="visible")
               //{
                    if ((zoomlevel==1) || (zoomlevel==2) || (zoomlevel==3)|| (zoomlevel==4) || (zoomlevel==5))
                    {
                        updateUebersichtskarte();
                    }
                    else
                    {
                        updateUebersichtskarte_stadtplan();
                    }
               //}
            }
        }      
    }
    
    function stopMove(event) {
        
        FlaecheOut();
        
        var innerDiv = document.getElementById("innerDiv");
        innerDiv.style.cursor = "";
        dragging = false;
        switchMap(event);
        checkTiles();
        updateServerTags();
    }
    
    function switchMap(event)
    {
        if (!event) event = window.event;
        center = getCenter();
        var outerDiv = document.getElementById("outerDiv");
        var y1 = event.clientY-GetOffsetTop(outerDiv)+ScrollTop();
        var x1 = event.clientX-GetOffsetLeft(outerDiv)+ScrollLeft();
        var xy = TransformMousePosToGeoCoord(x1,y1);
 
        if (zoomlevel == 0 && !((xy[0] > 3468141.948) && (xy[0] < 3477603.101) && (xy[1] > 5927996.971) && (xy[1] < 5942003.103)) && m_usingWMS==false)
        {
            // Nichts machen wenn außerhalb vom Stadtplan
            
         m_usingWMS=true;
         toggleZoom();
         SetWMSBase(arrWMS[zoomlevel]);
         setMeter();
         setCenter(xy[0],xy[1]);
         setMassstab();
         document.getElementById("uebersichtskarteStadtplan").style.visibility="hidden";
         document.getElementById("uebersichtskarte_schatten").style.visibility="hidden";

        if(document.getElementById("adresssuche").style.display=="block")
          setFixedSucheAt(arrSucheGewaehlt, "pointer.gif");
        }
        else
        {
            if (zoomlevel==0 && m_usingWMS==true && ((xy[0] > 3468141.948) && (xy[0] < 3477603.101) && (xy[1] > 5927996.971) && (xy[1] < 5942003.103)))
            {
                m_usingWMS=false;
                toggleZoom();
                updateEichung();
                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";
                
               //setCenter(xy[0],xy[1]);
     
                setMassstab();
                if ((zoomlevel==0) && ((xy[0] > 3468141.948) && (xy[0] < 3477603.101) && (xy[1] > 5927996.971) && (xy[1] < 5942003.103)))
                {
                //Die Übersichtskarte des Stadtplans sichtbar machen
                document.getElementById("uebersichtskarteStadtplan").style.visibility="visible";
                document.getElementById("uebersichtskarte_schatten").style.visibility="visible";
                }
            }
        }
     }
    

 function checkTiles() { //Mit WMS

     var outerDiv = document.getElementById("outerDiv");
     if (dimmed) {
         outerDiv.style.backgroundColor = "#000000";
     } else {
         outerDiv.style.backgroundColor = "#dddddd";
     }
       
        //var fileNames = new Array("hotel4.gif","museum4.gif","parkplatz4.gif","sehenswuerdigkeit4.gif","theater4.gif");
        //debugger;
        //window.status = "Loading Tiles..."
        var visibleTiles = 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="+zoomlevel+"&luft="+isLuftbild;
			visibleTilesMap[tileName] = true;
			var div = document.getElementById(tileName);
			if (!div) {
				div = document.createElement("div");
				div.setAttribute("id", tileName);
				var iL=0;
				var numLayers = 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)*this.scaleFactor;
////				    if (scale == 0)
////				        scale = 10000;
				   scale = ScaleMatchTab[zoomlevel];

				    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+"");
				        wmsUrl = wmsUrl.replace(/{x1}/g,(x1)+"");
				        wmsUrl = wmsUrl.replace(/{y1}/g,y1+"");
				        wmsUrl = wmsUrl.replace(/{x2}/g,(x2)+"");
				        wmsUrl = wmsUrl.replace(/{y2}/g,y2+"");
				        wmsUrl = wmsUrl.replace(/{s}/g,scale+"");	
				        img.src = wmsUrl;
                        document.getElementById("btn_Luftbild").style.display='none';
				    } else {
      				    img.src = "GetKachel.aspx" + tileName+"&map="+map;
//      				        img.src ="GetKachel.aspx" + tileName+"getMapData=1&map="+map+"&level="+zoomlevel+"&luft="+isLuftbild;
                        document.getElementById("btn_Luftbild").style.display='block';
				    }
    				
				    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;
			        // 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);
				}
// Hallotest

              
				var url = "./GetLayer.aspx?x1="+x1+"&y1="+y1+"&x2="+x2+"&y2="+y2+"&ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel+"&mx="+parseInt(this.meterX)+"&poiKatIds="+strPoiKatGewaehltGesamt+"&usingWMS="+this.m_usingWMS+"&TourId="+currentTourId+"&TourPoiAnzeigen="+document.getElementById("chkTourpoiZeigen").checked;
				loadXMLDoc(url,this);		
               
                innerDiv.appendChild(div);
            }
        }
 
        var imgs = innerDiv.getElementsByTagName("div");
        for (i = 0; i < imgs.length; i++) {
            var id = imgs[i].getAttribute("id");
            if (id != "tour" && id != "route" && id.substring(0,7) != "Flaeche")
            {
                if (!visibleTilesMap[id]) {
                    innerDiv.removeChild(imgs[i]);
                    i--;
                }
            }
        }
        //checkTilesPoikatChange();
        //showFlaechen();
        window.status = "Fertig"
    }
    
    function showFlaechen()
    {
        InnerDiv = document.getElementById("innerDiv");
        if (links!=0 && unten!=0 && meterX!=0 && meterY!=0 && !bRun)
        {                   
            bRun = true;
            var sBrowser = "";
            
            if (document.all)
               sBrowser = "";
            else
               sBrowser = "-";
                
            var url = "./GetFlaeche.aspx?links="+links+"&unten="+unten+"&mX="+meterX+"&mY="+meterY+"&browser=" + sBrowser+
                      "&innerLeft="+stripPx(InnerDiv.style.left)+"&innerTop="+stripPx(InnerDiv.style.top)+"&viewW="+this.viewportWidth+"&viewH="+this.viewportHeight;
            loadXMLDoc(url); 
        }	
    
    }
    
    function setPoiKat(argPoiKat, argAusgeklappt){
        if(document.getElementById("chkPoiKatAusblenden").checked==true)
            document.getElementById("chkPoiKatAusblenden").checked = false;
        var bEinstellung = true;
        strPoiKatGewaehltGesamt = "";
        for(var i = 0; i<iAnzahlKategorien; i++){
            if(argPoiKat==arrMenueKat[i][1]){
                if(arrMenueKat[i][4]==true)
                    bEinstellung = false;
                else
                    bEinstellung = true;
                arrMenueKat[i][4] = bEinstellung;
            }
            // Wenn einen Hauptkategorie ausgeschaltet wurde sollen alle unterkategorien 
            // davon den gleichen Wert erhalten
            if(argPoiKat==arrMenueKat[i][3])
                arrMenueKat[i][4] = bEinstellung;
            // String für die Sammelicons zusammenfügen, aufgrund dessen die POI neu geladen werden
            if(arrMenueKat[i][4]==true){
                if(strPoiKatGewaehltGesamt=="")
                    strPoiKatGewaehltGesamt=arrMenueKat[i][1];
                else
                    strPoiKatGewaehltGesamt += ";"+arrMenueKat[i][1];
            }
        }
        menueAusklappen(argAusgeklappt);
        checkTilesPoikatChange();
    }
    
    // blendet sämtliche POIs aus
    function PoiKatAusblenden(){
        document.getElementById("chkPoiKatAusblenden").checked = !document.getElementById("chkPoiKatAusblenden").checked;
        if(document.getElementById("chkPoiKatAusblenden").checked==true){
            strPoiKatGewaehltGesamt = "";
        }
        else{
            for(var i = 0; i<iAnzahlKategorien; i++){
                // String für die Sammelicons zusammenfügen, aufgrund dessen die POI neu geladen werden
                if(arrMenueKat[i][4]==true){
                    if(strPoiKatGewaehltGesamt=="")
                        strPoiKatGewaehltGesamt=arrMenueKat[i][1];
                    else
                        strPoiKatGewaehltGesamt += ";"+arrMenueKat[i][1];
                }
            }
        }
            
        //menueAusklappen(argAusgeklappt);
        checkTilesPoikatChange();
        return false;
    }

    function TourpoiAnzeigen(){
        document.getElementById("chkTourpoiZeigen").checked = !document.getElementById("chkTourpoiZeigen").checked;
        checkTilesPoikatChange();
    }

    // Blendet die Tour aus
    function TourAusblenden(){
        document.getElementById("chkTourAusblenden").checked = !document.getElementById("chkTourAusblenden").checked;
        if(bIsIE == true){
            if(document.getElementById("chkTourAusblenden").checked==true){
                bMassstabGewaehlt = false;
                try{
                    document.getElementById("tour").style.visibility="hidden";
                }
                catch(Exception) {}
            }
            else{
                try{
                    document.getElementById("tour").style.visibility="visible";
                }
                catch(Exception){}
                
                if(bMassstabGewaehlt==true){
                    center = getCenter();
                    if(m_usingWMS==true)
                        {
                         if(currentTourId!=0)
	                        LoadTour(currentTourId);
                        }
                        else
                        {
                            updateEichung();
                        }
                }
            }
        }
        else{
            if(document.getElementById("chkTourAusblenden").checked==true){
                bMassstabGewaehlt = false;
                try{
                    document.getElementById("canvas").style.visibility="hidden";
                }
                catch(Exception) {}
            }
            else{
                try{
                    document.getElementById("canvas").style.visibility="visible";
                }
                catch(Exception){}
                
                if(bMassstabGewaehlt==true){
                    center = getCenter();
                    updateEichung();
                }
            }
        }
    }
    
    // Holt die POIs zu den gewählten Kategorien
    function checkTilesPoikatChange() {
        window.status = "Loading Tiles..."
        var visibleTiles = getVisibleTiles();
        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="+zoomlevel+"&luft="+isLuftbild;
            if(strPoiKatGewaehltGesamt==""){
                var div = document.getElementById(tileName);
                if (div) {
                    var imgs = div.getElementsByTagName("img");
                    while (imgs.length > 1)
                    {
                        div.removeChild(imgs[1]);
                    }
                }
            }

            visibleTilesMap[tileName] = true;
            var mapx1 = (tileArray[0] * tileSize);
            var mapy1 = (tileArray[1] * tileSize);
            var mapx2 = (tileArray[0] * tileSize)+tileSize;
            var mapy2 = (tileArray[1] * tileSize)+tileSize;
            
            var x1 = parseInt(mapx1 * meterX + links);
            var y1 = parseInt(mapy1 * meterY + unten);

            var x2 = parseInt(mapx2 * meterX + links);
            var y2 = parseInt(mapy2 * meterY + unten);

            var url = "./GetLayer.aspx?x1="+x1+"&y1="+y1+"&x2="+x2+"&y2="+y2+"&ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+zoomlevel+"&mx="+parseInt(meterX)+"&poiKatIds="+strPoiKatGewaehltGesamt+"&TourId="+currentTourId+"&TourPoiAnzeigen="+document.getElementById("chkTourpoiZeigen").checked;
            urlAnzeigeTest = url;
            loadXMLDoc(url);
        }
        // Kann wahrscheinlich raus
        var imgs = innerDiv.getElementsByTagName("div");
        for (i = 0; i < imgs.length; i++) {
            var id = imgs[i].getAttribute("id");
            if (id != "tour" && id != "route" && id.substring(0,7) != "Flaeche")
            {
                if (!visibleTilesMap[id]) {
                    innerDiv.removeChild(imgs[i]);
                    i--;
                }
            }
        }
        
        showFlaechen();
        
        window.status = "Finished."
    }

    function updateServerTags()
    {
        var innerDiv = document.getElementById("innerDiv");
        document.getElementById("y1").value=stripPx(innerDiv.style.top);
        document.getElementById("y2").value=stripPx(innerDiv.style.top)+stripPx(innerDiv.style.height);
        document.getElementById("x1").value=stripPx(innerDiv.style.left);
        document.getElementById("x2").value=stripPx(innerDiv.style.left)+stripPx(innerDiv.style.width);
    }

    function getVisibleTiles() {
        var innerDiv = document.getElementById("innerDiv");
        var mapX = stripPx(innerDiv.style.left);
        var mapY = stripPx(innerDiv.style.top);
        var startX = Math.abs(Math.floor(mapX / tileSize))-2;//-(tilesOverViewportW-1);
        var startY = Math.abs(Math.floor(mapY / tileSize))-2;//-(tilesOverViewportH);
        var tilesX = Math.ceil(viewportWidth / tileSize)+2;  (tilesOverViewportW-1)+ (tilesOverViewportW);
        var tilesY = Math.ceil(viewportHeight / tileSize)+2;  (tilesOverViewportH-1)+ (tilesOverViewportH);

        var visibleTileArray = [];
        var counter = 0;
        for (x = startX; x < (tilesX + startX); x++)
        {
            for (y = startY; y < (tilesY + startY); y++)
            {
                visibleTileArray[counter++] = [x, y];
            }
        }
        return visibleTileArray;
    }   
    
    function getPoiList()
    {
        loadXMLDoc("./GetMerkerlisteStatus.aspx");  
    }   
    
    function ButtonKlick(argBildName, argBildWert){
        document.images[argBildName].src=argBildWert;
    }

    function ButtonKlickHintergrund(argBildName, argBildWert){
        document.getElementById(argBildName).style.backgroundImage="url("+argBildWert+")";
    }

    function ButtonKlickText(argButtonName, argText){
        document.getElementById(argButtonName).innerHTML=argText;
    }
    
    function menueAusklappen(argUebergabe){
                 
            var obj = document.getElementById("menueInhalt");
            var strMenueText = "<table cellpadding='0' cellspacing='0'><colgroup><col width='15'><col width='215'><col width='15'></colgroup>";
            var idx = 0;
            var strAnzeige = "";
            if(argUebergabe!="nichts"){
                for(var i = 0; i<iAnzahlKategorien; i++){
                    // Prüfen ob die gerade aktuelle Kategorie gewaehlt ist
                    if(arrMenueKat[i][4]==true)
                        strAnzeige = "checked";
                    else
                        strAnzeige = "false";
                    if(arrMenueKat[i][0] == "hauptkat"){
                        if(arrMenueKat[i][3]=="ukat"){
                            if(argUebergabe==arrMenueKat[i][1])
                                strMenueText+="<tr><td style='cursor:hand; cursor:pointer;' onclick='menueAusklappen(\"Ebene1\");'><img src='/images/pfeil-auf.gif'></td><td><div class='MenueText' style='cursor:hand; cursor:pointer;' onclick='menueAusklappen(\"Ebene1\");'>"+arrMenueKat[i][2]+"</div></td><td><div onclick='setPoiKat(\""+arrMenueKat[i][1]+"\", \""+argUebergabe+"\");'><input type='checkbox' id=''" + strAnzeige + "/></div></td></tr>";
                            else
                                strMenueText+="<tr><td style='cursor:hand; cursor:pointer;' onclick='menueAusklappen(\""+arrMenueKat[i][1]+"\");'><img src='/images/pfeil-zu.gif'></td><td><div class='MenueText' style='cursor:hand; cursor:pointer;'  onclick='menueAusklappen(\""+arrMenueKat[i][1]+"\");'>"+arrMenueKat[i][2]+"</div></td><td> <div style='cursor:pointer;' onclick='setPoiKat(\"" +arrMenueKat[i][1]+ "\", \""+argUebergabe+"\");'> <input type='checkbox' id='' " + strAnzeige + " /></div></td></tr>";
                        }
                        else
                            strMenueText+="<tr><td></td><td><div class='MenueEbene2'class='MenueText'><img src='Bilder.aspx?icon=1&id=" + arrMenueKat[i][1] + "' alt='" + arrMenueKat[i][1] + "' title='"+arrMenueKat[i][2]+"' style='border:solid 1px black;'>&nbsp;<span class='MenueText'>"+arrMenueKat[i][2]+"</span></div></td><td><div onclick='setPoiKat(\""+arrMenueKat[i][1]+"\", \""+argUebergabe+"\");'><input type='checkbox' id=''" + strAnzeige + "/></div></td></tr>";
                        idx++;
                    }
                    else if(argUebergabe==arrMenueKat[i][3]){
                    strMenueText += "<tr><td></td><td><div class='MenueEbene3'class='MenueText'><img style='float:left;' src='Bilder.aspx?icon=1&id=" + arrMenueKat[i][1] + "' alt='" + arrMenueKat[i][1] + "' title='" + arrMenueKat[i][2] + "' style='border:solid 1px black;'>&nbsp;<span class='MenueText'>" + arrMenueKat[i][2] + "</span></div></td><td><div onclick='setPoiKat(\"" + arrMenueKat[i][1] + "\", \"" + argUebergabe + "\");'><input type='checkbox' id=''" + strAnzeige + "/></div></td></tr>";                       
                        idx++;
                    }
                }
            }
            obj.innerHTML = strMenueText+"</table>";
            obj.style.height= "183px";
            obj.style.visibility="hidden";
            obj.style.visibility="visible";
            }
     
     // alt ohne Unterkategorien
    // argAusgeklappt wird nicht benötigt, ist nur eine Variable um anzuzeigen welcher Teil des Menüs ausgeklappt ist oder nicht (beispiel hamburg)
   /* function menueAusklappen(argAusgeklappt){
        var obj = document.getElementById("menueInhalt");
        var strMenueText = "<table border='0' cellspacing='1' cellpadding='0'><colgroup><col width='20'><col width='20'><col width='200'></colgroup>";
            var idx = 0;
        for(var i = 0; i<iAnzahlKategorien; i++){
                if (i != 0)
                {
                    strMenueText += "<tr><td colspan='2'></td><td height='1' style='background-color:#55432d;'></td></tr>";
                }
                strMenueText += "<tr><td class='icon'><img src='Bilder.aspx?icon=1&id=" + arrMenueKat[i][1] + "' alt='" + arrMenueKat[i][1] + "' title='"+arrMenueKat[i][2]+"' style='border:solid 1px black;'></td>";
                if(arrMenueKat[i][4]==true)
                    strMenueText += "<td class='checkbox'><input type='checkbox' onclick='setPoiKat(\""+arrMenueKat[i][1]+"\", \""+argAusgeklappt+"\");' name='Pois" + i + "' title='" + arrMenueKat[i][2] + "' checked></td>";
                else
                    strMenueText += "<td class='checkbox'><input type='checkbox' onclick='setPoiKat(\""+arrMenueKat[i][1]+"\", \""+argAusgeklappt+"\");' name='Pois" + i + "' title='" + arrMenueKat[i][2] + "'></td>";
                strMenueText += "<td><a href='javascript:;' onclick='setPoiKat(\""+arrMenueKat[i][1]+"\", \""+argAusgeklappt+"\");' style='font-size:11px; font-family:Arial, Verdana, Sans-Serif; color:#3769A6;'>" + arrMenueKat[i][2] + "</a></td></tr>";
            }
             obj.innerHTML = strMenueText+"</table>";
    }*/

    function initMenue(){
        loadXMLDoc("./GetMenue.aspx");
        windowResize();
    }
    
    // Visitenkartenfunktionen
    function VisitenkarteNeuFuellen()
    {
        
        ShowVisitenkarteHeader();
        
        if (arrVisitenkarte[1].length > 0)
            document.getElementById("POIName").innerHTML		 = "<img src='Bilder.aspx?icon=1&id="+arrVisitenkarte[1]+"' style='float:left; background-color:white; padding:3px; margin-right:3px;'> <span>"+arrVisitenkarte[0]+"</span>";
        else
             document.getElementById("POIName").innerHTML		 = "<span>"+arrVisitenkarte[0]+"</span>";
           
        document.getElementById("POIBeschreibung").innerHTML = arrVisitenkarte[16];
        document.getElementById("POIAdresse").innerHTML		 = arrVisitenkarte[4] + " "+arrVisitenkarte[5] + "<br>" + arrVisitenkarte[6] + " "+arrVisitenkarte[7];

        arrPoiIdGewaehlt = arrVisitenkarte[20].split(',');
        iPoiIdAktuell = arrPoiIdGewaehlt[parseInt(arrVisitenkarte[21])];

        var isGemerkt = false;
        for(var i = 0; i<iMerkerlisteAnzahl; i++){
            if(arrMerkerliste[i][20]==iPoiIdAktuell){
                document.getElementById('btnMerkeImg').innerHTML = "< Gemerkt >";
                isGemerkt = true;
//                break;
            }
        }
        if(!isGemerkt){
            if(isGerman)
                document.getElementById('btnMerkeImg').innerHTML = "< Merken >";
                else
                document.getElementById('btnMerkeImg').innerHTML = "< Save >";
            }

        if (arrVisitenkarte[8].length > 0){
            if(isGerman)
			    document.getElementById("POIAdresse").innerHTML += "<br>Tel.: "+arrVisitenkarte[8];
			    else
			    document.getElementById("POIAdresse").innerHTML += "<br>Ph.: "+arrVisitenkarte[8];
			}
			
	    if (arrVisitenkarte[27].length > 0)
			document.getElementById("POIAdresse").innerHTML += "<br><br>E-Mail:<br>" + arrVisitenkarte[27];
			
		if (arrVisitenkarte[28].length > 0){
		    if(isGerman)
			    document.getElementById("POIAdresse").innerHTML += "<br>Visitenkartenlinks:<br>" + arrVisitenkarte[28];
			    else
			    document.getElementById("POIAdresse").innerHTML += "<br>Infolinks:<br>" + arrVisitenkarte[28];
			}

		if (arrVisitenkarte[11].length > 0){
			document.getElementById("poiImage").src = "Bilder.aspx?bild=1&id="+iPoiIdAktuell;
			document.getElementById("poiImage").alt = arrVisitenkarte[0];
			document.getElementById("poiImage").style.visibility = 'visible';
			document.getElementById("poiImage").style.width = '150px';
		}
		else{
			document.getElementById("poiImage").style.visibility = 'hidden';
			document.getElementById("poiImage").style.width = '0px';
		}
		
		var butInfos = document.getElementById("btnInfosImg");
		if(arrVisitenkarte[23]==""){ // Kein Infolink
		    butInfos.style.visibility = "hidden";
//		    butInfos.style.width = "0px";
		}
		else{
//		    butInfos.style.width = "100px";
		    butInfos.style.visibility = "visible";
		}
        
		var butBuchen = document.getElementById("btnBuchenImg");
		if(arrVisitenkarte[22]==""){ // Kein Buchenlink
		    butBuchen.style.visibility = "hidden";
//		    butBuchen.style.width = "0px";
		}
		else{
//		    butBuchen.style.width = "100px";
		    butBuchen.style.visibility = "visible";
		}
		
		//Ob gedruckt werden darf
		var butMerken = document.getElementById("btnMerkeImg");
		var butDrucken = document.getElementById("btnDruckenImg");
		var visit = document.getElementById("outerTableVCard");

		if(arrVisitenkarte[26]=="false"){
		    butMerken.style.visibility = "hidden";
		    butDrucken.style.visibility = "hidden";

//		    visit.style.backgroundImage = "url('images/visitenkarte/bg(ohne).gif')";
		}
		else{
		    butMerken.style.visibility = "visible";
		    butDrucken.style.visibility = "visible";

//		    visit.style.backgroundImage = "url('images/visitenkarte/bg.gif')";
		}
		
        //VisitenkarteMenueClick(1);
    }
    
    /*function VisitenkarteMenueClick(argMenue){
        VisitenkartenMenueAlleAus();
        // Hilfsvariablen
        var strVisitenkartenText = "";
        var strAdresse = "";
        if(argMenue==1){
            document.getElementById("visMenue1").className="reiterGewaehlt";
            if(arrVisitenkarte[16]!="")
                strVisitenkartenText+=arrVisitenkarte[16];
            if(arrVisitenkarte[4]!="" || arrVisitenkarte[5]!="")
                strAdresse+=arrVisitenkarte[4]+" "+arrVisitenkarte[5]+"<br>";
            if(arrVisitenkarte[6]!="" || arrVisitenkarte[7]!="")
                strAdresse+=arrVisitenkarte[6]+" "+arrVisitenkarte[7]+"<br>";
            
            strVisitenkartenText+="<br><br>"+strAdresse;
            document.getElementById("visitenkarteText").innerHTML = strVisitenkartenText;
        }
        if(argMenue==2){
            document.getElementById("visMenue2").className="reiterGewaehlt";
            document.getElementById("visitenkarteText").innerHTML = arrVisitenkarte[17];
        }
        if(argMenue==3){
            document.getElementById("visMenue3").className="reiterGewaehlt";
            document.getElementById("visitenkarteText").innerHTML = "";
        }
        if(argMenue==4){
            document.getElementById("visMenue4").className="reiterGewaehlt";
            strAdresse += arrVisitenkarte[0]+"<br>";
            if(arrVisitenkarte[4]!="" || arrVisitenkarte[5]!="")
                strAdresse+=arrVisitenkarte[4]+" "+arrVisitenkarte[5]+"<br>";
            if(arrVisitenkarte[6]!="" || arrVisitenkarte[7]!="")
                strAdresse+=arrVisitenkarte[6]+" "+arrVisitenkarte[7]+"<br>";
            document.getElementById("visitenkarteText").innerHTML = strAdresse;
        }
    }
    
    function VisitenkartenMenueAlleAus(){
        document.getElementById("visMenue1").className="reiter";
        document.getElementById("visMenue2").className="reiter";
        document.getElementById("visMenue3").className="reiter";
        document.getElementById("visMenue4").className="reiter";
    }
    */

    // Stopp-Uhr in Millisekunden
    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);
    }
    
    
    function FlaechenZeichnenCanvas(strKoordinaten, sId, sColor, sOpacity)
    {
        // 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(sId);

        // Zeichnen anfangen
        var ctx = canvas.getContext("2d");
        ctx.beginPath();
        ctx.lineWidth=2;
        //ctx.strokeStyle = sColor;
        
        ctx.fillStyle = sColor;
        
        
        for(var i = 0; i<arrKoordinaten.length; i++){
        
            arrKoords = arrKoordinaten[i].split(" ");
            if(i==0)
                ctx.moveTo((arrKoords[0]), (arrKoords[1]));
            else
                ctx.lineTo((arrKoords[0]), (arrKoords[1]));
        }
        ctx.globalAlpha = parseInt(sOpacity)/100;
        ctx.fill();
        ctx.closePath();
    }
    
    
    // Funktion zum zeichnen der Touren im Firefox
    function TourZeichnenCanvas(strKoordinaten, iMaxX, iMaxY, iMinX, iMinY, strKoordinatenReal)
    { 
//        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");
        if(canvas==null){
            canvas = document.createElement("canvas");
            canvas.id="canvas";
        }
        // 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 = "yellow";
        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 = "blue";
        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 =  parseInt(iXPosCanvas) + "px";
        canvas.style.top =  parseInt(iYPosCanvas) + "px";
        document.getElementById("warnungFirefox").style.visibility="hidden";
        
        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){
        // 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 = "red";
        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 y ;//= -(stripPx(outerDiv.offsetParent.offsetParent.offsetTop)+stripPx(outerDiv.offsetParent.offsetTop))+event.clientY+stripPx(arrScrolling[1]);
        var x ;//= -(stripPx(outerDiv.offsetParent.offsetParent.offsetParent.offsetLeft)+stripPx(outerDiv.offsetParent.offsetParent.offsetLeft)+stripPx(outerDiv.offsetParent.offsetLeft))+event.clientX+stripPx(arrScrolling[0]);
        var outerDiv = document.getElementById("outerDiv");
        var arrScrolling = showScrolling();
        
        y=-(GetOffsetTop(outerDiv))+event.clientY+parseInt(arrScrolling[1]);
        x=-(GetOffsetLeft(outerDiv))+event.clientX+parseInt(arrScrolling[0]);
        var gc = TransformMousePosToGeoCoord(x,y);
   
        var iStrecke = 100;
        var iStreckeNeu = 100;
        var iKoordinaten = 0;
        var ix = 0;
        var iy = 0;
        for(var i = 0; i<arrTourstreckeKoordReal.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 =  Math.sqrt(Math.pow(ix,2) + Math.pow(iy,2));
            iStreckeNeu =  ix+iy;
            if(iStreckeNeu<iStrecke){
            
                iStrecke = iStreckeNeu;
                iKoordinaten = i;
            }
        }
        if(iStrecke<100){
            var gc = TransformMousePosToGeoCoord(x,y);
            switch(clickMode)
            {
                case 1:
                    document.getElementById('btnStartpunktRoutingSetzen').style.color='green';
                    startPoint[0]=arrTourstreckeKoordReal[iKoordinaten][0];
                    startPoint[1]=arrTourstreckeKoordReal[iKoordinaten][1];
                    setFixedPOIAt(arrTourstreckeKoordReal[iKoordinaten],"start.gif");
                    break;
                case 2:
                    document.getElementById('btnEndpunktRoutingSetzen').style.color='green';
                    endPoint[0]=arrTourstreckeKoordReal[iKoordinaten][0];
                    endPoint[1]=arrTourstreckeKoordReal[iKoordinaten][1];
                    setFixedPOIAt(arrTourstreckeKoordReal[iKoordinaten],"ziel.gif");
                    break;
                case 3:
                    document.getElementById('btnZwischenpunktSetzen').style.color='green';
                    zwischenpunkte.push(arrTourstreckeKoordReal[iKoordinaten]);
                    setFixedPOIAt(arrTourstreckeKoordReal[iKoordinaten],"zwstop.gif");
                    
                    var liste = document.getElementById("zwliste");
                    var strOption = "<option value='"+gc+"' id='"+zwpCounter+"'>Zwischenpunkt "+(zwpCounter+1)+"</option>"; 
                    liste.innerHTML = liste.innerHTML + strOption;
                    zwpCounter++;
                break;
            }
        }
    }//-->
    function ShowVisitenkarteHeader(){
        var arrPoiIdGewaehlt = new Array();
        try
        {
            arrPoiIdGewaehlt = arrVisitenkarte[20].split(',');
            if(arrPoiIdGewaehlt.length>1){
                if(parseInt(arrVisitenkarte[21])!=0){
                    if(isGerman)
                        document.getElementById("visPfeilLinks").innerHTML="<span style='cursor:pointer;' onclick='VisitenkarteLaden("+(parseInt(arrVisitenkarte[21])-1)+");'><nobr><< vorheriges Ziel</nobr></span>";
                        else
                        document.getElementById("visPfeilLinks").innerHTML="<span style='cursor:pointer;' onclick='VisitenkarteLaden("+(parseInt(arrVisitenkarte[21])-1)+");'><nobr><< POI before</nobr></span>";
                }
                else{
                    document.getElementById("visPfeilLinks").innerHTML="";
                }
                
                if(parseInt(arrVisitenkarte[21])+1<arrPoiIdGewaehlt.length){
                    if(isGerman)
                        document.getElementById("visPfeilRechts").innerHTML = "<span style='cursor:pointer;' onclick='VisitenkarteLaden("+(parseInt(arrVisitenkarte[21])+1)+");'>nächstes Ziel >></span>";
                        else
                        document.getElementById("visPfeilRechts").innerHTML = "<span style='cursor:pointer;' onclick='VisitenkarteLaden("+(parseInt(arrVisitenkarte[21])+1)+");'>next POI >></span>";
                }
                else{
                    document.getElementById("visPfeilRechts").innerHTML="";
                }
                if(isGerman)
                    document.getElementById("visObenText").innerHTML = (parseInt(arrVisitenkarte[21])+1)+" von "+arrPoiIdGewaehlt.length;
                    else
                    document.getElementById("visObenText").innerHTML = (parseInt(arrVisitenkarte[21])+1)+" of "+arrPoiIdGewaehlt.length;
            }
            else{
                document.getElementById("visPfeilLinks").innerHTML="";
                document.getElementById("visPfeilRechts").innerHTML="";
                document.getElementById("visObenText").innerHTML = "";
            }
        } catch (ex)
        {
        }
    }
    // Lädt eine neue Visitenkarte
    function VisitenkarteLaden(argPoiAnzeige){
        loadXMLDoc("./GetVisitenkarte.aspx?poiId="+arrVisitenkarte[20]+"&spracheId="+strSpracheId+"&poiAnzeige="+argPoiAnzeige);
    }
    
//    function PdfErstellen(){
//        var strTmp = "";
//        for(var i = 0; i<iMerkerlisteAnzahl; i++){
//            if(i==0)
//                strTmp += arrMerkerliste[i][20];
//            else
//                strTmp += ";"+arrMerkerliste[i][20];
//        }
//		var url = "PdfMerkerListe.aspx?PoiId="+strTmp;
//		if(strTmp=="")
//		    alert('Keine Daten in Ihrem Reiseplaner gespeichert');
//		else
//    	    wndMerkerliste = winOpen(url,"wndMerkerliste",400,300,"status=no,toolbar=no,menubar=no,location=no,resizable=no,dependent=yes");
//    }
    function PdfErstellen(){
        var strTmp = "";
        for(var i = 0; i<iMerkerlisteAnzahl; i++){
            if(i==0)
                strTmp += arrMerkerliste[i][20];
            else
                strTmp += ";"+arrMerkerliste[i][20];
        }
        var touren="";
        
//        for(var i = 0; i<iMerkerlisteTourAnzahl; i++){
//            if(i==0)
//                touren += arrMerkerlisteTour[i][0];
//            else
//                touren += ";"+arrMerkerlisteTour[i][0];
//        }
//        
		var url = "PdfMerkerListe.aspx?PoiId="+strTmp+"&TourenId="+touren+"&wms="+escape(theMap.m_wmsBase)+"&lmin="+theMap.XMinLeft + " " + theMap.YMinLeft +"&lmax="+theMap.XMaxLeft + " " + theMap.YMaxLeft+"&tmin="+theMap.XMinTop + " " + theMap.YMinTop+"&tmax="+theMap.XMaxTop + " " + theMap.YMaxTop;
		if(strTmp=="" && touren=="")
		    alert('Keine Daten in Ihrem Reiseplaner gespeichert');
		else
    	    wndMerkerliste = winOpen(url,"wndMerkerliste",400,300,"status=no,toolbar=no,menubar=no,location=no,resizable=no,dependent=yes");
    }
    function PdfErstellenTour()
    {
        var strTmp = "";

        var touren = currentTourId;
        
        var url = "PdfMerkerListe.aspx?PoiId="+strTmp+"&TourenId="+touren+"&wms="+escape(theMap.m_wmsBase)+"&lmin="+theMap.XMinLeft + " " + theMap.YMinLeft +"&lmax="+theMap.XMaxLeft + " " + theMap.YMaxLeft+"&tmin="+theMap.XMinTop + " " + theMap.YMinTop+"&tmax="+theMap.XMaxTop + " " + theMap.YMaxTop;

        if(touren=="")
		   alert('Keine Daten gefunden!');
        else
           wndMerkerliste = winOpen(url,"wndMerkerliste",400,300,"status=no,toolbar=no,menubar=no,location=no,resizable=no,dependent=yes");
    }
    function LinkOeffnen(argLink)
    {
        if(argLink=="info")
            window.open(arrVisitenkarte[23], "info");
        else if(argLink=="buchen")
            window.open(arrVisitenkarte[22], "buchen");
        else if(argLink=="shop")
            window.open("http://kundencenter-nw.i-ventions.de?n=" + currNavId, "shop");
        else if(argLink=="touristik")
            window.open("http://bistouristik.i-ventions.de?n=" + currNavId, "touristik");
        else if(argLink=="liegeplatz")
            window.open(liegeplatzurl, "liegeplatz");
        else if(argLink=="wasserwege")
            window.open(wasserwegeurl, "wasserwege");
        else if(argLink=="wfg")
            window.open("http://www.waterwaysforgrowth.eu/", "waterways for growth");
    }
    
     //für den generalisierten Link
    
//    function InitMap()
//    {
//        
//        if( typeof(theMap) == "undefined" )
//        {
//            window.setTimeout("InitMap();",500);
//            return;
//        }
//        
//        //Wird ausgefuehrt wenn beim Start Parameter uebergeben worden sind
//        //Das Layout wird geaendert
////        if (bViewer == "true")
////        {
////                OpenPoiKatNatur();
////                //document.getElementById("").style.background="";  
////        }
//        
//        theMap.Init();

//        var q = new Querystring();
//        if (q.get("mapxy") != null)
//        {
//            scrolldiv.style.overflow = "hidden";
//            document.getElementById("whiteLayer").style.visibility = "visible";
////            if(q.get("mapsize")!=null){
////                var arrMapsize = q.get("mapsize").split(" ");
////                document.getElementById("outerDiv").style.width = arrMapsize[0]+"px";
////                document.getElementById("outerDiv").style.height = arrMapsize[1]+"px";

////                document.getElementById("outerDiv").style.left = 0+"px";
////                document.getElementById("outerDiv").style.top = 0+"px";
////                document.getElementById("outerDiv").style.zIndex = 10000;
////                document.getElementById("outerDiv").style.backgroundColor="white";
////                
////                document.getElementById("PoiNameLayer").style.width = arrMapsize[0]+"px";
////                document.getElementById("PoiNameLayer").style.height = arrMapsize[1]+"px";
////                document.getElementById("PoiNameLayer").style.visibility = "visible";
////                var qr = new QuerystringReal();
////                
////                document.getElementById("PoiNameShow").innerHTML = qr.get("map_beschrift_feature_text");
////                document.getElementById("PoiNameShow").style.left = Math.round(arrMapsize[0]/2)+"px";
////                document.getElementById("PoiNameShow").style.top = Math.round((arrMapsize[1]/2)-40)+"px";
////                
////                document.getElementById("PoiNameShowShadow").innerHTML = qr.get("map_beschrift_feature_text");
////                document.getElementById("PoiNameShowShadow").style.left = (Math.round(arrMapsize[0]/2)+1)+"px";
////                document.getElementById("PoiNameShowShadow").style.top = (Math.round(arrMapsize[1]/2)-39)+"px";
////                
////                
////                theMap.viewportWidth = arrMapsize[0];
////                theMap.viewportHeight = arrMapsize[1];
////                document.getElementById("innerDiv").style.width = arrMapsize[0]+"px";
////                document.getElementById("innerDiv").style.height = arrMapsize[1]+"px";
////            }
//            var arrMapcenter = q.get("mapxy").split(" ");
//            var arrTmp = arrMapcenter[0].split('.');
//            arrMapcenter[0] = arrTmp[0];
//            arrTmp = arrMapcenter[1].split('.');
//            arrMapcenter[1] = arrTmp[0];
//            
//            theMap.SetCenter(arrMapcenter[0], arrMapcenter[1]);
//            theMap.SetHome(arrMapcenter[0], arrMapcenter[1],1500000);
//            
//            document.getElementById("massstabAnzeige").value = "1500000";
//            theMap.SetWMSBase(theMap.arrWMS[6]);
//            theMap.MassstabSetzen();
//            arrTmp = new Array(arrMapcenter[0], arrMapcenter[1]);
//            theMap.setFixedSucheAt(arrTmp, 'pointer.gif');
//            theMap.onmapmousemove = function(){ return false; };
//            theMap.onmapmouseclick =  function(){ return false; };
//            theMap.onpoiclick =  function(){ return false; };
//        }
//        else{
////            document.getElementById("whiteLayer").style.visibility = "hidden";
//            if (q.get("x") == null)
//            {
//                theMap.SetCenter(3585000,5950000);
//                theMap.SetHome(3585000,5950000,1500000);
//            } else {
//                theMap.SetCenter(q.get("x"),q.get("y"));
//                theMap.SetFixedPOIAt(q.get("x"),q.get("y"),"./mapcontrol/images/pointer.gif","ID1234");
//                theMap.SetHome(q.get("x"),q.get("y"),1500000);
//            }
//            // Massstab einstellen der beim Starten genommen werden soll
//            document.getElementById("massstabAnzeige").value = "1500000";
//            theMap.SetWMSBase(theMap.arrWMS[6]);
//            theMap.MassstabSetzen();

//            // Events vom Viewer
//            theMap.onmapmousemove = KarteMove;
//            theMap.onmapmouseclick = KarteClick;
//            theMap.onpoiclick = POIClick;
//            window.onresize=windowResize;
//            

//            if (q.get("scale") != null)
//            {
//                var massstabAnzeige = document.getElementById("massstabAnzeige");
//                massstabAnzeige.value = q.get("scale");
//                theMap.MassstabSetzen();
//            }
//            windowResize();
//        }
//        // theMap.ZoomBySlider(theMap.maxZoomLevel);  // startet im größten Maßstab
//        theMap.ZoomBySlider(8);  // erster Maßstab, in der die Karte das Fenster ausfüllt
//        initMenue();
//     //   theMap.LoadTour(currentTourId);
//     
//        
//        //Wird ausgefuehrt wenn beim Start Parameter uebergeben worden sind
//        //und POIs uebergeben worden sind
//        if (bViewer == "true" && sPoiId != null)
//        {
//                var url = "./mapcontrol/ajax/GetViaPOI.aspx?poiid="+sPoiId;
//                loadXMLDoc(url);                                   
//        }
//    }
    
    function windowResize()
    {
    
        if( DivCenterStartLeft == 0 )
            DivCenterStartLeft = 195;
        var winW = 0, winH = 0;

        var arr = GetWindowSize();
        
        winW = arr[0];
        winH = arr[1];

        winW = Math.max(winW,1024);
        winH = Math.max(winH,768);
              
        document.getElementById("header_right").style.left = winW - 262 + "px";
        document.getElementById("UmfassungsTabelle").style.height = winH + "px";
        document.getElementById("Hauptcontainer").style.height = winH - 75 + "px";
        
        document.getElementById("ContainerPoiKat").style.left = winW - 350 + "px";
        document.getElementById("ContainerPoiKatBG").style.left = winW - 350 + "px";
        document.getElementById("ContainerTournavigation").style.left = winW - 350 + "px";
        document.getElementById("ContainerTournavigationBG").style.left = winW - 350 + "px";
        document.getElementById("tourbeschreibung").style.left =  winW - 350 + "px";
        document.getElementById("tourbeschreibungBG").style.left =  winW - 350 + "px";
        document.getElementById("adresssuche").style.left = winW -350 + "px";
        
        document.getElementById("auswahlfelder").style.top = winH - 245 + "px";
        document.getElementById("auswahlfelderBG").style.top = winH - 245 + "px";
        document.getElementById("logo").style.left = winW - 300 + "px";
        document.getElementById("logo").style.top = winH - 30 - 152  + "px";
        
//        document.getElementById("butImpressumOn").style.top = winH - 170 + "px";
//        document.getElementById("butImpressumOff").style.top = winH - 170 + "px";
//        //document.getElementById("anleitung").style.top = winH - 170 + "px";
        document.getElementById("butImpressumOn").style.bottom = 0 + "px";
        document.getElementById("butImpressumOff").style.bottom = 0+ "px";
        document.getElementById("butAnleitungOn").style.bottom = 0 + "px";
        document.getElementById("butAnleitungOff").style.bottom = 0+ "px";
        
        
        var widthLoc;
        var heightLoc;
        var bordertop=0;
        var borderleft=0;
        var bordertop_impressum=0;
        var borderleft_impressum=0;
        if (parseInt(navigator.appVersion)>3) {
            if (navigator.appName=="Netscape") {
                widthLoc = Math.min(winW-70, 2000+ 80);    // links + rechts = 480
                heightLoc = winH-160;   // oben + unten = 255
              
                if(!isNaN(parseInt(document.getElementById('outerDiv').style.borderTopWidth)))
                    bordertop=parseInt(document.getElementById('outerDiv').style.borderTopWidth);
                if(!isNaN(parseInt(document.getElementById('outerDiv').style.borderLeftWidth)))
                    borderleft=parseInt(document.getElementById('outerDiv').style.borderLeftWidth);
                
            }
            if (navigator.appName.indexOf("Microsoft")!=-1) {
                widthLoc = Math.min(winW-70, 2000+ 80);    // links + rechts = 480
                heightLoc = winH-160;   // oben + unten = 255
                if(!isNaN(parseInt(document.getElementById('outerDiv').style.borderTopWidth)))
                    bordertop_impressum=parseInt(document.getElementById('outerDiv').style.borderTopWidth);
                if(!isNaN(parseInt(document.getElementById('outerDiv').style.borderLeftWidth)))
                    borderleft_impressum=parseInt(document.getElementById('outerDiv').style.borderLeftWidth);
            }
        }
        
        if (parseInt(navigator.appVersion)>3) {
            if (navigator.appName=="Netscape") {
                document.getElementById("KarteNachWesten").style.top = heightLoc/2 + "px";
                document.getElementById("KarteNachNorden").style.left = widthLoc/2 + 32 + "px";
                document.getElementById("KarteNachOsten").style.left = widthLoc + 44 + "px";
                document.getElementById("KarteNachOsten").style.top = heightLoc/2 + "px";
                document.getElementById("KarteNachSueden").style.top = heightLoc + 54 + "px";
                document.getElementById("KarteNachSueden").style.left = widthLoc/2 + 32 + "px";
                document.getElementById("KarteNachNordOsten").style.left = widthLoc + 34 + "px";
                document.getElementById("KarteNachSuedOsten").style.left = widthLoc + 36 + "px";
                document.getElementById("KarteNachSuedOsten").style.top = heightLoc + 44 + "px";
                document.getElementById("KarteNachSuedWesten").style.top = heightLoc + 44 + "px";
            }
            if (navigator.appName.indexOf("Microsoft")!=-1) {
                document.getElementById("KarteNachWesten").style.top = heightLoc/2 + "px";
                document.getElementById("KarteNachNorden").style.left = widthLoc/2 + 16 + "px";
                document.getElementById("KarteNachOsten").style.left = widthLoc + 44 + "px";
                document.getElementById("KarteNachOsten").style.top = heightLoc/2 + "px";
                document.getElementById("KarteNachSueden").style.top = heightLoc + 54+ "px";
                document.getElementById("KarteNachSueden").style.left = widthLoc/2 + 16 + "px";
                document.getElementById("KarteNachNordOsten").style.left = widthLoc + 34 + "px";
                document.getElementById("KarteNachSuedOsten").style.left = widthLoc + 34 + "px";
                document.getElementById("KarteNachSuedOsten").style.top = heightLoc + 44 + "px";
                document.getElementById("KarteNachSuedWesten").style.top = heightLoc + 46 + "px";
            }
        }    
        
        //Beim FF ist das Impressum ganz linksoben und in voller breite, da es z-index richtig macht, Impressum im Ie ist innerhalb der Border.
        SetStyle("impressum","width",widthLoc+bordertop*2-bordertop_impressum*2-46+"px");
        SetStyle("impressum","height",heightLoc+borderleft*2-borderleft_impressum*2-46+"px");
        SetStyle("impressum","top",bordertop_impressum+116+"px");
        SetStyle("impressum","left",borderleft_impressum+33+"px");

        SetStyle("anleitung","width",widthLoc+bordertop*2-bordertop_impressum*2-46+"px");
        SetStyle("anleitung","height",heightLoc+borderleft*2-borderleft_impressum*2-46+"px");
        SetStyle("anleitung","top",bordertop_impressum+116+"px");
        SetStyle("anleitung","left",borderleft_impressum+33+"px");
     
        
        var mapWidth =  widthLoc-80;
        var mapHeight = heightLoc-70;
        viewportWidth = mapWidth;
        viewportHeight = mapHeight;
        
        
        //Visitenkarte
        var leftLoc =  ((mapWidth-410)/2)+40+borderleft;
        var topLoc = ((mapHeight-337)/2)+35+bordertop;
        SetStyle("divVisitenkarte","top",topLoc+"px");
        SetStyle("divVisitenkarte","left",leftLoc+"px");
        
        // Reiseplaner
        leftLoc =  ((mapWidth-275)/2)+40+borderleft;
        topLoc = ((mapHeight-255)/2)+35+bordertop;
        SetStyle("reisetagebuchUebersicht","left",leftLoc+"px");
        SetStyle("reisetagebuchUebersicht","top",topLoc+"px");

        
        
//        SetStyle("DivTop","width",winW+"px");
//      
//        SetStyle("DivLeft","height",height+"px");
        
//        if( width == document.getElementById("outerDiv").style.maxWidth + 80 )  
//        {
//            // 'DivCenter' nach rechts verschieben
//            var moveX = ((winW-480)-(document.getElementById("outerDiv").style.maxWidth + 80))/2;
//            SetStyle("outerDiv","left",(DivCenterStartLeft+moveX)+"px");
//        }
//        else
//        {
//            // 'DivCenter' in Ausgangsposition
//            SetStyle("outerDiv","left",DivCenterStartLeft+"px");
//        }
        
        SetStyle("outerDiv","width",widthLoc+"px");
        SetStyle("outerDiv","height",heightLoc+"px");
     
        checkTiles();
        
//        // Massstab
//        SetStyle("massstabAnzeige","width",(width-60)+"px");
//        
//        // Kartenrahmen
//        SetStyle("Kartenrahmen","width",(mapWidth+20)+"px");
//        SetStyle("Kartenrahmen","height",(mapHeight+20)+"px");            

//        // Karte
//        SetStyle("outerDiv","width",mapWidth+"px");
//        SetStyle("outerDiv","height",mapHeight+"px");
//        
//        // Impressum anpassen

//        
//        // Visitenkarte
//        var left =  ((mapWidth-428)/2)+40;
//        var top = ((mapHeight-321)/2)+30;
//        SetStyle("divVisitenkarte","top",top+"px");
//        SetStyle("divVisitenkarte","left",left+"px");
//        
//        // Reiseplaner
//        left =  ((mapWidth-276)/2)+40;
//        top = ((mapHeight-262)/2)+30;
//        SetStyle("reisetagebuchUebersicht","left",left+"px");
//        SetStyle("reisetagebuchUebersicht","top",top+"px");
//        SetStyle("TooltippUebersicht","left",left+"px");
//        SetStyle("TooltippUebersicht","top",top+"px");
//        SetStyle("TooltippTour","left",left+"px");
//        SetStyle("TooltippTour","top",top+"px");
//        
//        // Pfeile berechnen 
//        left =  ((mapWidth-32)/2)+40;
//        top = ((mapHeight-32)/2)+30;
//        SetStyle("north","left",left+"px");
//        SetStyle("south","left",left+"px");
//        SetStyle("east","top",top+"px");
//        SetStyle("west","top",top+"px");

//        SetStyle("DivRight","height",height+"px");
//        SetStyle("DivRight","left",(winW-285)+"px");

//        // Poikat + Tourbeschreibung
//        SetStyle("PoiAndTour","height",height+"px");

//        SetStyle("DivBottom","width",winW+"px");
//        var yTop = GetOffsetTop(document.getElementById("DivCenter")) + parseInt(document.getElementById("DivCenter").style.height);
//        SetStyle("DivBottom","top",yTop+"px");
                                    
//        if (theMap != null)
//        {
//            //Screenshot Left/Top Position
//            theMap.ScreenShotLeft = 235 + arr[2]; //+ (mapWidth-420)/2;
//            theMap.ScreenShotTop = 210 + arr[3]; //+ (mapHeight-60)/2;      
//            
//            theMap.viewportWidth = parseInt(mapWidth);
//            theMap.viewportHeight = parseInt(mapHeight);
//            theMap.CheckTiles();
//        }
//        theMap.checkLeftTop();
    }     
    
//    //Es wird ueberprueft ob das Fenster verschoben worden ist
//        function ScreenUeberwachung()
//        {
//            var TempScreenX; 
//            var TempScreenY;
//            
//            if (bIsIE)
//            {
//                 TempScreenX = window.screenLeft;  
//                 TempScreenY = window.screenTop;
//            }
//            else
//            {
//                TempScreenX = window.screenX;  
//                TempScreenY = window.screenY;
//            } 
//            
//            try
//            {
//                //Abfrage ob die Position sich veraendert hat
//                if (ScreenX!=TempScreenX || ScreenY!= TempScreenY)
//                {                   
//                    //Die neuen Parameter werden gespeichert
//                    ScreenX = TempScreenX;
//                    ScreenY = TempScreenY;
//                    javascript:windowMove();  
//                }
//           }
//           catch (e) {}
//           
//           //Die Funktion wird alle 1sec. aufgerufen
//           window.setTimeout("ScreenUeberwachung()",1000);
//           
//       }
    function GetWindowSize()
    {
        var myWidth = 0, myHeight = 0, ScrWidth = 0, ScrHeight = 0;
     
        if( typeof( window.innerWidth ) == 'number' ) {
            //Non-IE
            myWidth = window.innerWidth;
            myHeight = window.innerHeight;
            ScrWidth = window.screenX + 4; //+4
            ScrHeight = window.screenY + 112; //+112
        } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
            //IE 6+ in 'standards compliant mode'
            myWidth = document.documentElement.clientWidth;
            myHeight = document.documentElement.clientHeight;
            ScrWidth = window.screenLeft + 3;
            ScrHeight = window.screenTop;
        } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
            //IE 4 compatible
            myWidth = document.body.clientWidth;
            myHeight = document.body.clientHeight;
            ScrWidth = window.screenLeft + 3;
            ScrHeight = window.screenTop;
        }
        var arr = new Array();
        arr.push(myWidth);
        arr.push(myHeight);
        arr.push(ScrWidth);
        arr.push(ScrHeight);
        
        return arr;
    }
    
    function SetStyle(objName,attrName,val)
    {
        eval("document.getElementById('" + objName+"').style."+attrName+" = '" +val+"';");
        //document.getElementById(objName).style.setAttribute(attrName,val,false);
    }
    
    LoadTour=function(tourID)
    {
	   if (currentTourId != 0)
                {
                    var url = "./GetTourDisplay.aspx?x="+links+"&y="+unten+"&w="+meterX+"&h="+meterY+"&tourId="+currentTourId;
                    loadXMLDoc(url);
                    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="+currentTourId+"&sx="+sx+"&sy="+sy+"&ex="+ex+"&ey="+ey;
                            for (var i=0;i<zwischenpunkte.size();i++)
                            {
                                url=url+"&zw"+i+"x="+zwischenpunkte.getAt(i)[0];
                                url=url+"&zw"+i+"y="+zwischenpunkte.getAt(i)[1];
                            }

                            setTimeout("loadXMLDoc('"+url+"');",500);
                        }
                    }
                    if (endPoint[0] != 0)
                    {
                        setFixedPOIAt(endPoint,"ziel.gif");
                    }
                    
                    // Zwischenpunkte neu setzen
                    var liste = document.getElementById("zwliste");
                    var innerDiv = document.getElementById("innerDiv");
                    for (var i=1;i<liste.options.length;i++)
                    {
                        var idOfItem = "zwstop"+liste.options[i].id;
                        var imgs = innerDiv.getElementsByTagName("img");
                        var j = 0;
                        var oldZp = zwpCounter;
                        var laenge = imgs.length;
                        zwpCounter = parseInt(liste.options[i].id);
                        setFixedPOIAt(zwischenpunkte.getAt(i-1),"zwstop.gif");
                        zwpCounter = oldZp;     
                    }

                    // TODO: Zwischenpunkte hier setzen
                }
            }


            
