
var clickMode = 0;
var globalMapObj=null;

function reloadSite(){		
    if(confirm("Alle Informationen werden gelöscht (Merkerliste). Wollen Sie fortfahren?"))
        location.reload()
}

function GeoGravityMap()
{
    this.scaleFactor=3780;
	this.dragging = false;
	this.mouseDown = false;
	this.draggingVis = false; // Visitenkarte
	this.ktop=0;
	this.kleft=0; 
	this.dragStartTop;
	this.dragStartLeft;
	this.viewportWidth = 450;
	this.viewportHeight = 450;
	this.tileSize = 800;
	this.tilesOverViewportH = parseInt(this.viewportHeight/this.tileSize+1);
	this.tilesOverViewportW = parseInt(this.viewportWidth/this.tileSize+1);
	this.dimmed=true;
	this.dimopacity=70;
	this.maxZoomLevel=6;//<%=maxZoomLevel%>; 0..8
	this.lastClickedItem="";
	this.zoomTimer=0;
	this.iPoiIdAktuell = 0;
	this.bRoutingRun = false;
	this.ScreenShotLeft = 0;
	this.ScreenShotTop = 0;
	this.bZoom = true;
	this.oldCenter = new Array(0,0);
	this.FirstKatRun = true;
	
	this.center = new Array(3654551,5866189); // Hamburg
	this.arrAdressuebergabe = "";//<%= getAufrufPositionierung() %>;
    
    this.forceCenter = false;
	this.map="hamburg";
	this.zoomlevel=4;
	this.iPoiAnzeige = 0;
	this.aufziehmodus=false;

	// Routing / Touren
	this.clickMode=0;
	this.currentTour=00;
	this.startPoint=new Array(0,0);
	this.endPoint=new Array(0,0);
//    this.zwischenpunkte = new List();
    this.zwpCounter=1;
    this.arrTourDetails = new Array(new Array(-1,"",-1),new Array(-1,"",-1));
    
    this.iCanvasMin = 0;
    this.iCanvasMax = 0;

	
	// Distanzmessung
	this.measureDistanceMode=false;
	this.measureClickNum=0;
	this.measureStartX=0;
	this.measureStartY=0;
	
	// Eichung
	this.meterX = 0;
	this.meterY = 0;
	this.links = 2000000;
	this.unten = 7000000;
    this.xSize =0;
    this.ySize=0; 
    this.TourOrte=0;		
//	// Übersichtskarte
//	this.omX= 1593.57139694971150;
//	//this.omY= -5899.70083555642120;
//	this.omY=-1649.32552871623580;
//	this.oL=4399518.17075390460000;
//	this.oU=6070501.44742967000000;
//	this.oW=163;
//	this.oH=115;
		
	// Übersichtskarte
	//this.omX= 5818.0148;
	//this.omY=-5818.0148;
	//this.oL=3242191;
	//this.oU=6094074;
	//this.oW=123;
	//this.oH=146;
	
	// Übersichtskarte
	//this.omX= 2291.9157;
	//this.omY=-2375.0116;
	//this.oL=4401877;
	//this.oU=6070656;
	//this.oW=125;
	//this.oH=157;
	
	// Übersichtskarte
	this.omX= 4466.88777113824470;
	this.omY=-4917.32375865112590;
	this.oL= 3250137;
	this.oU=6113003;
	this.oW=150;
	this.oH=180;
	
//	this.omX= 1602.3246; 
//    this.omY=-1641.7994;
//    this.oL=4405158;
//    this.oU=6080101;
//    this.oW=161;
//    this.oH=124;
	
	// Menüeinträge
	this.iMenueHoehe = 0;
	this.bMenueLaden = true;
	this.bMenueSichtbar = false;
	this.iAnzahlKategorien = 0;
	
	
	this.arrWMS = new Array(
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2",
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2",
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2",
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2",
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2",
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2",
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2",
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2",
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2"
                            );
                            
//    this.arrWMS = new Array(
//                            "http://mapserver.i-ventions.de:1024/geowebcache/service/wms?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&WIDTH={w}HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/png&BBOX={x1},{y1},{x2},{y2}&SCALE={s}&SRS=EPSG:31467",
//                            "http://mapserver.i-ventions.de:1024/geowebcache/service/wms?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&WIDTH={w}HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/png&BBOX={x1},{y1},{x2},{y2}&SCALE={s}&SRS=EPSG:31467",
//                            "http://mapserver.i-ventions.de:1024/geowebcache/service/wms?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&WIDTH={w}HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/png&BBOX={x1},{y1},{x2},{y2}&SCALE={s}&SRS=EPSG:31467",
//                            "http://mapserver.i-ventions.de:1024/geowebcache/service/wms?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&WIDTH={w}HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/png&BBOX={x1},{y1},{x2},{y2}&SCALE={s}&SRS=EPSG:31467",
//                            "http://mapserver.i-ventions.de:1024/geowebcache/service/wms?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&WIDTH={w}HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/png&BBOX={x1},{y1},{x2},{y2}&SCALE={s}&SRS=EPSG:31467",
//                            "http://mapserver.i-ventions.de:1024/geowebcache/service/wms?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&WIDTH={w}HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/png&BBOX={x1},{y1},{x2},{y2}&SCALE={s}&SRS=EPSG:31467",
//                            "http://mapserver.i-ventions.de:1024/geowebcache/service/wms?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&WIDTH={w}HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/png&BBOX={x1},{y1},{x2},{y2}&SCALE={s}&SRS=EPSG:31467",
//                            "http://mapserver.i-ventions.de:1024/geowebcache/service/wms?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&WIDTH={w}HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/png&BBOX={x1},{y1},{x2},{y2}&SCALE={s}&SRS=EPSG:31467",
//                            "http://mapserver.i-ventions.de:1024/geowebcache/service/wms?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&WIDTH={w}HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/png&BBOX={x1},{y1},{x2},{y2}&SCALE={s}&SRS=EPSG:31467"
//                            );                            
                            

//                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard&srs=epsg:31467&LAYERS=atkis_karte&kid=aa9c6a030d262c9342ebf66004336a16",
//                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard&srs=epsg:31467&LAYERS=atkis_karte&kid=aa9c6a030d262c9342ebf66004336a16",
//                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard&srs=epsg:31467&LAYERS=atkis_karte&kid=aa9c6a030d262c9342ebf66004336a16",
//                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard&srs=epsg:31467&LAYERS=atkis_karte&kid=aa9c6a030d262c9342ebf66004336a16",
//                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard&srs=epsg:31467&LAYERS=atkis_karte&kid=aa9c6a030d262c9342ebf66004336a16",
//                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard&srs=epsg:31467&LAYERS=atkis_karte&kid=aa9c6a030d262c9342ebf66004336a16",
//                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard&srs=epsg:31467&LAYERS=atkis_karte&kid=aa9c6a030d262c9342ebf66004336a16",
//                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard&srs=epsg:31467&LAYERS=atkis_karte&kid=aa9c6a030d262c9342ebf66004336a16",
//                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard&srs=epsg:31467&LAYERS=atkis_karte&kid=aa9c6a030d262c9342ebf66004336a16"
//                            );


if(navigatorId==2)// Für Grünes band, da KID anders
	this.arrWMS = new Array(
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2&kid=09a4da278cc8da098dfe4e18c9bec297",
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2&kid=09a4da278cc8da098dfe4e18c9bec297",
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2&kid=09a4da278cc8da098dfe4e18c9bec297",
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2&kid=09a4da278cc8da098dfe4e18c9bec297",
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2&kid=09a4da278cc8da098dfe4e18c9bec297",
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2&kid=09a4da278cc8da098dfe4e18c9bec297",
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2&kid=09a4da278cc8da098dfe4e18c9bec297",
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2&kid=09a4da278cc8da098dfe4e18c9bec297",
                            "http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=standard,,,&srs=epsg:31467&LAYERS=atkis_karte,viabono_texte&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2&kid=09a4da278cc8da098dfe4e18c9bec297"
                            );

//this.arrWMS = new Array(
//                            "http://mapserver.i-ventions.de/deegree-wms/services?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.0&WIDTH={w}&HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/jpg&BBOX={x1},{y1},{x2},{y2}&SRS=EPSG:31467&STYLES=default&SCALE=100",
//                            "http://mapserver.i-ventions.de/deegree-wms/services?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.0&WIDTH={w}&HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/jpg&BBOX={x1},{y1},{x2},{y2}&SRS=EPSG:31467&STYLES=default&SCALE=100",
//                            "http://mapserver.i-ventions.de/deegree-wms/services?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.0&WIDTH={w}&HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/jpg&BBOX={x1},{y1},{x2},{y2}&SRS=EPSG:31467&STYLES=default&SCALE=100",
//                            "http://mapserver.i-ventions.de/deegree-wms/services?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.0&WIDTH={w}&HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/jpg&BBOX={x1},{y1},{x2},{y2}&SRS=EPSG:31467&STYLES=default&SCALE=100",
//                            "http://mapserver.i-ventions.de/deegree-wms/services?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.0&WIDTH={w}&HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/jpg&BBOX={x1},{y1},{x2},{y2}&SRS=EPSG:31467&STYLES=default&SCALE=100",
//                            "http://mapserver.i-ventions.de/deegree-wms/services?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.0&WIDTH={w}&HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/jpg&BBOX={x1},{y1},{x2},{y2}&SRS=EPSG:31467&STYLES=default&SCALE=100",
//                            "http://mapserver.i-ventions.de/deegree-wms/services?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.0&WIDTH={w}&HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/jpg&BBOX={x1},{y1},{x2},{y2}&SRS=EPSG:31467&STYLES=default&SCALE=100",
//                            "http://mapserver.i-ventions.de/deegree-wms/services?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.0&WIDTH={w}&HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/jpg&BBOX={x1},{y1},{x2},{y2}&SRS=EPSG:31467&STYLES=default&SCALE=100",
//                            "http://mapserver.i-ventions.de/deegree-wms/services?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.0&WIDTH={w}&HEIGHT={h}&LAYERS=OSMSlippyMapMN&TRANSPARENT=TRUE&FORMAT=image/jpg&BBOX={x1},{y1},{x2},{y2}&SRS=EPSG:31467&STYLES=default&SCALE=100"
//                            );


	 this.iLayer = 3; // Der normale Layer wird + diese Zahl genommen um den richtigen WMS zu bestimmen
	
	// Legende
	this.iShowLegende = 0; // 0 = Legende noch nicht erstellt, 1 = Legende gerade sichtbar, 2 = Legende unsichtbar  
	// Suchfunktion
    this.m_center = new Array(0,0);
    this.m_wmsBase = "";
    this.m_mapBase = "";
    this.m_usingWMS = true;
    this.m_usingWMSUebersichtskarte = false;
    
    this.m_poiCategoryOverlayVisible = false;
    
    // Slider
    this.isDrag = false;
    this.yoben = 0;  
    this.sliderMin = 15;
    this.sliderMax = 92;
    
    
    this.onmapmouseclick = function(x,y,px,py) {};
    this.onmapmousemove = function(x,y) {};
    this.onpoiclick = function() {};
    this.Suchergebnis = new Array;
    
    this.homeX = 0;
    this.homeY = 0;
    this.homeScale = 0;
    this.ScaleMatchTab = new Array(10000, 25000, 50000, 100000, 300000, 750000, 1500000, 3000000, 5000000);
    this.WMSLayers = new Array();

    this.lastX = 0;
    this.lastY = 0;
    this.lastScale = 0;
    this.arrPoiUebersichtKat = new Array();
    
    this.XMinLeft = 3270037;
    this.YMinLeft = 5233482;
    
    //this.XMaxLeft = 3940895;
    this.XMaxLeft = 3995000;    // damit keine Streifen sichtbar sind
    this.YMaxLeft = 6114752;
    
    this.XMinTop = 3278037;
    //this.YMinTop = 6114752;   
    this.YMinTop = 6108700;     // damit keine Streifen sichtbar sind
    
    this.XMaxTop = 3940895;
    this.YMaxTop = 5210482;
    
    //Tooltipp array
    this.Tooltipp = new Array();
    this.tooltippid=0;
    
    // diese Funktion gibt den Abstand in m zwischen den Kartenpunkten und den Punkten,
    // die nötig sind, um jeden Punkt zu zentrieren
    this.getXCalibration=function()
    {
        var i = this.meterX * this.viewportWidth / 2;    
        return i;
    }
    
    // diese Funktion gibt den Abstand in m zwischen den Kartenpunkten und den Punkten,
    // die nötig sind, um jeden Punkt zu zentrieren
    this.getYCalibration=function()
    {
        var i = this.meterX * this.viewportHeight / 2;    
        return i;
    }
    
    // diese Funktion gibt die kleinste Pixelkoordinate für 'left' zurück
    this.getMinLeft=function()
    {
		//var pixelPos = this.TransformGeoCoordToInnerDiv(this.XMinLeft-this.getXCalibration(), this.YMinLeft-this.getYCalibration());
		var pixelPos = this.TransformGeoCoordToInnerDiv(this.XMinLeft, this.YMinLeft);
        var i = pixelPos[0];
        return -i;
    }

    // diese Funktion gibt die größte Pixelkoordinate für 'left' zurück
    this.getMaxLeft=function()
    {
		//var pixelPos = this.TransformGeoCoordToInnerDiv(this.XMaxLeft+this.getXCalibration(), this.YMaxLeft+this.getYCalibration());
        //var i = pixelPos[0]-this.viewportWidth;
        
        var pixelPos = this.TransformGeoCoordToInnerDiv(this.XMaxLeft, this.YMaxLeft);
        var i = pixelPos[0]-this.viewportWidth;
        return -i;
    }
    
    // diese Funktion gibt die kleinste Pixelkoordinate für 'top' zurück
    this.getMinTop=function()
    {
		//var pixelPos = this.TransformGeoCoordToInnerDiv(this.XMinTop-this.getXCalibration(), this.YMinTop+this.getYCalibration());
		var pixelPos = this.TransformGeoCoordToInnerDiv(this.XMinTop, this.YMinTop);
        var i = pixelPos[1];
        return -i;
    }
    
    // diese Funktion gibt die größte Pixelkoordinate für 'top' zurück
    this.getMaxTop=function()
    {
//		var pixelPos = this.TransformGeoCoordToInnerDiv(this.XMaxTop+this.getXCalibration(), this.YMaxTop-this.getYCalibration());
//      var i = pixelPos[1]-this.viewportHeight;
        var pixelPos = this.TransformGeoCoordToInnerDiv(this.XMaxTop, this.YMaxTop);
        var i = pixelPos[1]-this.viewportHeight;
        return -i;
    }
    
    this.checkLeftTop=function(show)
    {
        //return;
        var innerDiv = document.getElementById("innerDiv");
        var left = stripPx(innerDiv.style.left);
        var top  = stripPx(innerDiv.style.top);
        if( show ){
            alert("Left,Top in:"+left+","+top);
        }
        var leftMin = this.getMinLeft();
        var leftMax = this.getMaxLeft();
        var topMin = this.getMinTop();
        var topMax = this.getMaxTop();
        if( show ){
            alert("leftMin,leftMax,topMin,topMax:"+leftMin+","+leftMax+":"+topMin+","+topMax);
        }
        if( left < leftMax )
            left = leftMax;
        if( left > leftMin )
            left = leftMin;
        if( top < topMax )
            top = topMax;
        if( top > topMin )
            top = topMin;
        if( show ){
            alert("Left,Top out:"+left+","+top);
        }
        innerDiv.style.left = left + "px";
        innerDiv.style.top  = top + "px";
    }

    this.Test = function()
    {
//        var leftMin = this.getMinLeft();
//        var leftMax = this.getMaxLeft();
//        var topMin = this.getMinTop();
//        var topMax = this.getMaxTop();
//        alert("Left,Top:"+leftMin+" "+leftMax+","+topMin+" "+topMax);
//        this.checkLeftTop(true);
    }
    
    this.moveMap=function(x,y)
    {
        var innerDiv = document.getElementById("innerDiv");
        innerDiv.style.top = parseFloat(innerDiv.style.top) + y+"px";
        innerDiv.style.left = parseFloat(innerDiv.style.left) + x+"px";
        this.checkLeftTop(false);
        this.CheckTiles();
        this.UpdateUebersichtskarte();
    }


  this.LoadTour=function(tourID)
  {
	    if (tourID!="" && tourID!="0")
	    {
	        currentTourId=tourID;
	    
	        var url = "./mapcontrol/ajax/LoadTour.aspx?zoom="+ this.bZoom +"&x="+this.links+"&y="+this.unten+"&w="+this.meterX+"&h="+this.meterY+"&tourId="+tourID+"&vW="+ theMap.viewportWidth +"&vH="+theMap.viewportHeight+"&currMaptype="+currMaptype;
	        loadXMLDoc(url,this);
	        if(this.currentTour!=tourID){
//	            url = "./mapcontrol/ajax/GetTourorte.aspx?tourId="+tourID;
//    	        loadXMLDoc(url,this);
	            this.currentTour=tourID;
	            this.TourOrte=1;
	            
	        }
    	    
	        //Die POIs zur Tour werden geladen
	        var visibleTiles = this.getVisibleTiles();
		    for (i = 0; i < visibleTiles.length; i++){
			    var tileArray = visibleTiles[i];
    	    
	        
	        if(currMaptype!="GOOGLE"){
	            var url = "./mapcontrol/ajax/GetPOILayer.aspx?TourId=" + tourID + "&TourPoiAnzeigen=true&ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&mx="+this.meterX;
	            url+="&Unterkuenfte="+isUnterkuenfte+"&Ausflugsziele="+isAusflugsziele+"&Service="+isService+"&currMaptype="+currMaptype;
	            getPoilayer(url);
	        }
	        
	        }
	    }
	    //var url = "./mapcontrol/ajax/GetPOILayer.aspx?merk="+getMerkliste()+"&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;
			  if(typeof merkerlisteTour[currentTourId]!="undefined" && merkerlisteTour[currentTourId]!=null)
                dojo.byId("TourVisitenkarte_gemerkt").style.display="block";
            else
                dojo.byId("TourVisitenkarte_gemerkt").style.display="none";	
  }

  this.GetTouren=function(tourID)
  {
        var url = "./mapcontrol/ajax/GetTours.aspx?tourId="+tourID;
//	    loadXMLDoc(url,this);
  }
    
  this.UpdateLast=function()
  {
    var center = this.GetCenter();
    this.lastX = center[0];
    this.lastY = center[1];
    this.lastScale = parseInt(this.meterX)*this.scaleFactor;
    if (this.lastScale == 0)
        this.lastScale = 5000;
    this.lastScale = this.MatchScale(this.lastScale);
  }  

  this.GoLast=function()
  {
    if (this.lastX == 0)
        return;
    this.SetCenter(this.lastX,this.lastY);
    var massstabAnzeige = document.getElementById("massstabAnzeige");
    massstabAnzeige.value = this.lastScale;
    this.MassstabSetzen();
  }
  
  // Berechnet welcher Massstab von der Tabelle ScaleMatchTab genommen wird
  this.MatchScale=function(oldScale)
  {
    var i=0;
    var iRetval = 0;
    if (oldScale < 5000){
        iRetval = 5000;// Kleiner als 10000 geht nicht
        
    }
    oldScale = parseInt(Math.round(oldScale/5000)*5000);
    var iAbstand = 0;
    var iAbstandAlt = 0;
        
    for (i=0;i<this.ScaleMatchTab.length;i++)
    {
        // Abstand berechnen zwischen dem angeforderten Maßstab und dem Maßstab in der Tabelle
        iAbstand = parseInt(oldScale) - parseInt(this.ScaleMatchTab[i]);
        if(parseInt(iAbstand)<0)
            iAbstand = parseInt(iAbstand)*-1; // Minuswerte verhindern
        
        // Prüfen ob ein Massstab genau getroffen wurde
        if(parseInt(iAbstand) == 0){
            iRetval = parseInt(oldScale); 
            break;
        }
        else if(i!=0){ // Ermitteln welcher Maßstab am nächsten liegt, nicht machen in der ersten runde
            if(parseInt(iAbstandAlt)<parseInt(iAbstand)){
                iRetval = parseInt(this.ScaleMatchTab[i-1]);
                break;
            }
        }
        iAbstandAlt = parseInt(iAbstand);
    }
    
    // Wenn kein Scale ermittelt wurde soll der höchste rausgesucht werden
    if(iRetval==0)
        iRetval = parseInt(this.ScaleMatchTab[this.ScaleMatchTab.length-1]);
    return iRetval;

  }
  
  this.PrintAsPDF=function()
  {
    if (this.m_usingWMS)
    {
		var innerDiv = document.getElementById("innerDiv");
		var x1 = stripPx(innerDiv.style.left);
		var y1 = stripPx(innerDiv.style.top);

        var mapX=this.links-parseInt(x1*this.meterX);
        var mapY=this.unten-parseInt(y1*this.meterY);
        
        url="./mapcontrol/ajax/PrintMap.aspx?wms="+escape(this.m_wmsBase)+"&x="+mapX+"&y="+mapY+"&mX="+this.meterX+"&mY="+this.meterY+"&w="+this.viewportWidth+"&h="+this.viewportHeight+"&scale="+this.scale+"&tourid="+this.currentTour+"&poiKatIds="+aktivpoikat+"&usingWMS="+this.m_usingWMS+"&TourPoiAnzeigen=";
                if(theMap.TourOrte==1)
                    url+="true";
                else
                    url+="false";
                    //Welche POI an der Tour zeigen?
                    url+="&Unterkuenfte="+isUnterkuenfte+"&Ausflugsziele="+isAusflugsziele+"&Service="+isService;
                
//                if(!usermodified)
//                    url+="&filter="+filterid;
        
        location.href=url;
        
               
        /*var outerDiv = document.getElementById("outerDiv");
		var h = stripPx(outerDiv.style.height);
		var w = stripPx(outerDiv.style.width);

        var mapw=parseInt(w*this.meterX);
        var maph=parseInt(h*this.meterY);
        location.href="./mapcontrol/ajax/PrintMap.aspx?l="+this.ScreenShotLeft+"&t="+this.ScreenShotTop+"&h="+h+"&w="+w;*/
    }
  }
  
  this.GoHome=function()
  {
    this.UpdateLast();
    if (this.homeX != 0)
    {
        this.SetCenter(this.homeX,this.homeY);
    }
    if (this.homeScale != 0)
    {
        var massstabAnzeige = document.getElementById("massstabAnzeige");
        massstabAnzeige.value = this.homeScale;
        this.MassstabSetzen();    
    }
  }
  
  this.SetHome=function(x,y,scale)
  {
      this.homeX=x;
      this.homeY=y;
      this.homeScale=scale;
  }
      
  this.GetCenter=function()
  {
        var innerDiv = document.getElementById("innerDiv");
		ktop=stripPx(innerDiv.style.top);
		kleft=stripPx(innerDiv.style.left);

		var mapCenterPx = -(kleft - (this.viewportWidth / 2));
		var mapCenterPy = -(ktop - (this.viewportHeight / 2));

		var xneu = mapCenterPx * this.meterX + this.links;
		var yneu = mapCenterPy * this.meterY + this.unten;

		var koords = new Array(parseInt(xneu),parseInt(yneu));
		
		this.oldCenter[0]=parseInt(xneu);
  		this.oldCenter[1]=parseInt(yneu);
  		
		return koords;
  }
  
  this.ReloadMap=function()
  {
    var center = this.GetCenter();
    this.toggleZoom();
    this.SetCenter(center[0],center[1]);
    this.AdjustSlider();
    this.RecalcWMSOverview();
    RefreshRoutingPoints();
  }
  
  this.SetCenter=function(x,y)
  {
		this.UpdateLast();
		this.oldCenter[0] = x;
		this.oldCenter[1] = y;
		var xpix = 0;
		var ypix = 0;
		if (this.m_usingWMS == true)
		{
		    xpix = (x - this.links) / this.meterX - this.viewportWidth / 2;
		    ypix = (y - this.unten) / this.meterY - this.viewportHeight / 2;
		} else {
		    xpix = (x - this.links) / this.meterX - this.viewportWidth / 2;
		    ypix = (y - this.unten) / this.meterY - this.viewportHeight / 2;
		}
		
		ktop = -parseInt(ypix);
		kleft = -parseInt(xpix);
		var innerDiv = document.getElementById("innerDiv");
		innerDiv.style.top = parseInt(ktop)+"px";
		innerDiv.style.left = parseInt(kleft)+"px";
		this.checkLeftTop();
		this.UpdateUebersichtskarte();        
		this.RecalcWMSOverview();
		this.CheckTiles();
  }
  
  this.ShowOverview=function(state)
  {
  }
  
  this.SetTileSize=function(sz)
  {
    this.tileSize = sz;
  }
    // WMS-Funktionen
  this.SetWMSBase=function(wmsBase)
  {
	this.m_usingWMS=true;
	this.m_wmsBase=wmsBase;
  }
  
  // WMS-Funktionen für Übersichtskarte
  this.SetWMSBaseUebersichtskarte=function(bUseWms)
  {
	this.m_usingWMSUebersichtskarte = bUseWms;
  }
  
  this.DeleteOldMaps=function()
  {
        var innerDiv = document.getElementById("innerDiv");
        var imgs = innerDiv.getElementsByTagName("div");
        for (i = 0; i < imgs.length; i++) {
            var id = imgs[i].getAttribute("id");
            if(id!=null){           
                if (id != "tour" && id != "route" && id.substring(0,7) != "Flaeche" && id.substring(0,10) != "tourpoints")
                {
                        innerDiv.removeChild(imgs[i]);
                        i--;
                }
            }
        }  
  }
  // Fügt einen neuen Layer hinzu (z.B. Strassen) der automatisch dargestellt wird
  this.AddWMSLayer=function(wmsLayer)
  {
 	this.WMSLayers[this.WMSLayers.length]=wmsLayer;
 	this.DeleteOldMaps();
  }
  
  // Löscht alle Layer 
  this.RemoveWMSLayers=function()
  {
    this.WMSLayers=new Array();
    if(navigatorId==2)
        this.AddWMSLayer("http://onmaps.de/ggwms3?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=true&REQUEST=getmap&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&styles=&srs=epsg:31467&LAYERS=viabono_gruenes_band&kid=aa9c6a030d262c9342ebf66004336a16&BBOX_RESIZING=true&BBOX_RESIZING_FAKTOR=0.2&kid=09a4da278cc8da098dfe4e18c9bec297");
 	this.DeleteOldMaps();
  }
  
  // Sagt dem WMS wie MeterX und MeterY zu berechnen sind
  this.SetWMSResolution=function(resInMetersX,resInMetersY,reload)
  {
    if (reload)
    {
	    var center = this.GetCenter();
	    this.meterX=resInMetersX;
	    this.meterY=resInMetersY;
	    this.toggleZoom();
	    this.SetCenter(center[0],center[1]);
    } else {
        this.meterX = resInMetersX;
        this.meterY = resInMetersY;
    }
    this.AdjustSlider();
    this.RecalcWMSOverview();
  }

  // Mapfile-Funktionen
  
  // Stellt den Viewer auf eine Basiskarte um
  this.SetMapBase=function(mapBase)
  {
	this.m_usingWMS = false;
	this.m_mapBase = mapBase;
  }
  
  // Stellt den Boundingboxzoom ein
	this.ToggleBereichsZoom=function()
	{
		this.aufziehmodus=!this.aufziehmodus;
		this.measureClickNum=0;
	}
	
	// Messfunktion
	this.ToggleMeasureDistance=function()
	{
		this.measureDistanceMode = !this.measureDistanceMode;
		this.measureClickNum=0;
	}

    

    // Dimmen der Karte
	this.ToggleDim=function()
	{
		this.dimmed = !this.dimmed;
		this.SetDim();
    }
    this.DimOut=function(){
    
        this.dimopacity+=10;
        if(this.dimopacity>100)
            this.dimopacity=100;
        this.SetDim();
    
    }
    
    this.DimIn=function(){
        this.dimopacity-=10;
        if(this.dimopacity<20)
            this.dimopacity=20;
        this.SetDim();
    
    }
    
    this.SetDim=function()
    {
		
		var outerDiv = document.getElementById("outerDiv");
		if (this.dimmed)
		{
			outerDiv.style.backgroundColor="#000000";
			
		} else {
			outerDiv.style.backgroundColor="#dddddd";
		}


    if(currMaptype=="WMS" || currMaptype=="WMSBFN"){

		    var innerDiv = document.getElementById("innerDiv");
		    var divs = innerDiv.getElementsByTagName("div");
		    var divNum = 0;
		    while (divNum < divs.length)
		    {    
			    var imgs = divs[divNum].getElementsByTagName("img");
			    var i=0;
			    for (i=0;i<imgs.length;i++)
			    {
				    if (imgs[i].id=="maptile")
				    {
				        if(imgs[i].src.indexOf("viabono_gruenes_band")==-1){
				            if (!this.dimmed)
				            {
					            imgs[i].style.filter = ""; 
					            imgs[i].style.opacity = 1; 
				            }
				            else
				            {
				            if(imgs[i].src.indexOf("flora")==-1){
				                    if(!bIsIE)
					                imgs[i].style.opacity = this.dimopacity/100; 
					                else
					                imgs[i].style.filter = "Alpha(opacity="+this.dimopacity+", style=0)"; 
					            }
				            }
				        }
			        } else {
			            break;
			        }
			    }
			    divNum++;
		    }
		}
		else if(currMaptype=="GOOGLE"){
		
		dojo.byId("innerDiv").style.backgroundColor="#000000";
		
		dojo.query("img[src*='google']").forEach(function(node,index,arr){
	
	        if(!bIsIE)
		    node.style.opacity = theMap.dimopacity/100; 
		    else
            node.style.filter = "Alpha(opacity="+theMap.dimopacity+", style=0)"; 
		});
		
		}  
		
	}

    // Mausrad zum Zoomen abfragen
	this.CheckWheel=function()
	{
	    if(currMaptype!="GOOGLE"){
		    if (event.wheelDelta > 0)
		    {
			    GetMapObject(this.id).ZoomIn();
		    } else {
			    GetMapObject(this.id).ZoomOut();
		    }
        }
	}
	
	// Setzt den Massstab
	this.MassstabSetzen = function(){
	    this.UpdateLast();
	    var strMassstab = document.getElementById("massstabAnzeige").value;
	    
	    
	
	    
	    
	    var dMeterX = strMassstab * (13.229/50000);
	    //var dMeterX = strMassstab * (35.3/100000);
	    //var center = this.GetCenter();
	    this.meterX=dMeterX;
	    this.meterY=-dMeterX;
	    this.toggleZoom();
	    this.SetCenter(this.oldCenter[0],this.oldCenter[1]);
	    this.AdjustSlider();
	}
	
	// Massstabstext einstellen
	this.UpdateMasstab=function()
	{
	    var masstabText = document.getElementById("masstabkm");
	    var masstabWidth = document.getElementById("masstabwidth");
	    var mWidth =0;
	    if (this.meterX*100 < 1)
	    {
	        mWidth = 1/this.meterX;
	        masstabText.innerHTML = "&nbsp;1 m";
	    } else if (this.meterX*100 < 5)
	    {
	        mWidth = 5/this.meterX;
	        masstabText.innerHTML = "&nbsp;5 m";
	    } else if (this.meterX*100 < 10)
	    {
	        mWidth = 10/this.meterX;
	        masstabText.innerHTML = "&nbsp;10 m";
	    } else if (this.meterX*100 < 50)
	    {
	        mWidth = 50/this.meterX;
	        masstabText.innerHTML = "&nbsp;50 m";
	    } else if (this.meterX*100 < 100)
	    {
	        mWidth = 100/this.meterX;
	        masstabText.innerHTML = "&nbsp;100 m";
	    } else if (this.meterX*100 < 500)
	    {
	        mWidth = 500/this.meterX;
	        masstabText.innerHTML = "&nbsp;500 m";
	    } else if (this.meterX*100 < 1000)
	    {
	        mWidth = 1000/this.meterX;
	        masstabText.innerHTML = "&nbsp;1 km";
	    } else if (this.meterX*100 < 5000)
	    {
	        mWidth = 5000/this.meterX;
	        masstabText.innerHTML = "&nbsp;5 km";
	    } else if (this.meterX*100 < 10000)
	    {
	        mWidth = 10000/this.meterX;
	        masstabText.innerHTML = "&nbsp;10 km";
	    } else if (this.meterX*100 < 50000)
	    {
	        mWidth = 50000/this.meterX;
	        masstabText.innerHTML = "&nbsp;50 km";
	    } else if (this.meterX*100 < 100000)
	    {
	        mWidth = 100000/this.meterX;
	        masstabText.innerHTML = "&nbsp;100 km";
	    } else if (this.meterX*100 < 500000)
	    {
	        mWidth = 500000/this.meterX;
	        masstabText.innerHTML = "&nbsp;500 km";
	    } else if (this.meterX*100 < 1000000)
	    {
	        mWidth = 1000000/this.meterX;
	        masstabText.innerHTML = "&nbsp;1000 km";
	    }
	    document.getElementById("massstabAnzeige").value = Math.round(this.meterX/(13.229/50000));
	    document.getElementById("idMassstab").innerHTML = " 1:"+dojo.number.format(this.ScaleMatchTab[this.zoomlevel], {places:0});
	    masstabWidth.style.width = mWidth+"px";
	  //  document.getElementById("KoordAnzeige").style.width = (mWidth + 50) +"px";
	    if(currentTourId!=0)
	        this.LoadTour(currentTourId);
	}
  
  // Prüft die einzelnen gezogenen Karten
  this.CheckTiles=function()
  {
		//window.status = "Loading Tiles..."
		var visibleTiles = this.getVisibleTiles();
		var innerDiv = document.getElementById("innerDiv");
		var visibleTilesMap = {};
		var numTiles = visibleTiles.length;
		var i=0;
		for (i = 0; i < numTiles; i++) {
			var tileArray = visibleTiles[i];
			var tileName = "?ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel;
			visibleTilesMap[tileName] = true;
			var div = document.getElementById(tileName);
			if (!div) {
				div = document.createElement("div");
				div.setAttribute("id", tileName);
				var iL=0;
				var numLayers = this.WMSLayers.length+1;
				
				// Schleife über die zuschaltbaren Layer, beim ersten Durchlauf wird der normale WMS geladen
				for (iL=0;iL<numLayers;iL++)
				{
				    var img = document.createElement("img");
    				
				    // Geokoordinaten des Bereiches ermitteln
				    var mapx1 = (tileArray[0] * this.tileSize);
				    var mapy1 = (tileArray[1] * this.tileSize);
				    var mapx2 = (tileArray[0] * this.tileSize)+this.tileSize;
				    var mapy2 = (tileArray[1] * this.tileSize)+this.tileSize;                
				    var x1T = parseInt(mapx1 * this.meterX + this.links);
				    var y1T = parseInt(mapy1 * this.meterY + this.unten);
				    var x2T = parseInt(mapx2 * this.meterX + this.links);
				    var y2T = parseInt(mapy2 * this.meterY + this.unten);
				    var x1 = Math.min(x1T,x2T);
				    var x2 = Math.max(x1T,x2T);
				    var y1 = Math.min(y1T,y2T);
				    var y2 = Math.max(y1T,y2T);
				    var scale = parseInt(this.meterX)*this.scaleFactor;
				    if (scale == 0)
				        scale = 5000;
				    scale = this.MatchScale(scale);

				    var wmsUrl="";
				    // Abfrage ob ein WMS benutzt wird
				    if (this.m_usingWMS)
				    {
				        // erster Durchlauf = normale Karte
				        if (iL==0)
				        {
    				        wmsUrl = this.m_wmsBase;
				        } else { // 2. oder mehrere Durchläufe = Layer die über die Karte gelegt werden laden
    				        wmsUrl = this.WMSLayers[iL-1]; // -1 weil erst beim 2. Durchlauf
				        }
				        wmsUrl = wmsUrl.replace(/{h}/g,this.tileSize+"");
				        wmsUrl = wmsUrl.replace(/{w}/g,this.tileSize+"");
				        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;
				    } else {
    				    img.src = "GetKachel.aspx" + tileName+"&map="+theMap.map;
    				    wmsUrl="GetKachel.aspx" + tileName+"&map="+theMap.map;
				    }
    				
				    img.style.position = "absolute";
				    img.style.left = (tileArray[0] * this.tileSize) + "px";
				    img.style.top = (tileArray[1] * this.tileSize) + "px";
				    img.style.width = this.tileSize + "px";
				    img.style.height = this.tileSize + "px";   
			        img.style.zIndex = 10+iL;
			        // Dimmen abfragen
				    if (!this.dimmed)
				    {
					    img.style.filter = ""; 
					    if (iL==0)
					        img.style.backgroundColor="transparent";                
				    }
				    else
				    {
				        if(img.src.indexOf("flora")==-1 &&  img.src.indexOf("viabono_gruenes_band")==-1){
				        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 = "./mapcontrol/ajax/GetPOILayer.aspx?merk="+getMerkliste()+"&x1="+x1+"&y1="+y1+"&x2="+x2+"&y2="+y2+"&ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel+"&mx="+this.meterX+"&poiKatIds="+aktivpoikat+"&usingWMS="+this.m_usingWMS+"&TourId="+currentTourId+"&TourPoiAnzeigen=";                
               	//var url = "./mapcontrol/ajax/GetPOILayer.aspx?merk="+getMerkliste()+"&x1="+x1+"&y1="+y1+"&x2="+x2+"&y2="+y2+"&ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel+"&mx="+parseInt(this.meterX)+"&poiKatIds=2;3;4;5;6;7;8;9;10&usingWMS="+this.m_usingWMS+"&TourId="+currentTourId+"&TourPoiAnzeigen=";
                if(theMap.TourOrte==1)
                    url+="true";
                else
                    url+="false";
                    //Welche POI an der Tour zeigen?
                    url+="&Unterkuenfte="+isUnterkuenfte+"&Ausflugsziele="+isAusflugsziele+"&Service="+isService;
//                
//                if(!usermodified)
//                    url+="&filter="+filterid;
                    				
				//loadXMLDoc(url,this);				
				getPoilayer(url);
				innerDiv.appendChild(div);
			}
		}
		
      	var imgs = innerDiv.getElementsByTagName("div");
		var imgsLen = imgs.length;
		for (i = 0; i < imgsLen; i++) {
			var id = imgs[i].getAttribute("id");
			
			if (id!=null && id != "tour" && id != "route" && id.substring(0,7) != "Flaeche" && id.substring(0,10) != "tourpoints")
			{
				if (!visibleTilesMap[id]) {
					innerDiv.removeChild(imgs[i]);
					i--;
					imgsLen = imgs.length;
				}
			}
		}

		this.showFlaechen(strPoiKatGewaehltGesamt);
		//window.status = "Finished."
  }
  
    this.clearLinien = function(arg){
        if(arg == "alle")
            arg = "tour";
        var imgs = document.getElementById(arg);
        if(imgs != null)
	    imgs.innerHTML="";
    }
  
    this.clearFlaechen = function(arg){
        if(arg == "alle")
            arg = "Flaechen";
        var imgs = document.getElementById(arg);
        if(imgs != null)
	    imgs.innerHTML="";
    }
  
    this.showFlaechen = function(argKategorie)
    {
        //this.clearFlaechen("alle");
        InnerDiv = document.getElementById("innerDiv");
        if (this.links!=0 && this.unten!=0 && this.meterX!=0 && this.meterY!=0 && !bRun && argKategorie != 0)
        {                   
            bRun = true;
            var sBrowser = "";
            
            if (document.all)
               sBrowser = "";
            else
               sBrowser = "-";
                
            var url = "./GetFlaeche.aspx?kategorie="+argKategorie+"&links="+this.links+"&unten="+this.unten+"&mX="+this.meterX+"&mY="+this.meterY+"&browser=" + sBrowser + 
                      "&innerLeft="+stripPx(InnerDiv.style.left)+"&innerTop="+stripPx(InnerDiv.style.top)+"&viewW="+this.viewportWidth+"&viewH="+this.viewportHeight;
           // loadXMLDoc(url); 
       }	
    }
  // Zoomt raus
	this.ZoomOut=function()
	{
	    if (this.m_usingWMS == false)
	    {
		    if (this.zoomlevel<this.maxZoomLevel)
		    {
			    this.center = this.getCenter();
			    this.zoomlevel=this.zoomlevel+1;
			    this.toggleZoom();
			    this.updateEichung();
			    this.measureDistanceMode=false;
			    var dist1 = document.getElementById("dist1");
			    var dist2 = document.getElementById("dist2");
			    var distText = document.getElementById("distText");
			    distText.innerHTML="";
			    var distText2 = document.getElementById("distText2");
			    distText2.innerHTML="";
			    dist1.style.visibility="hidden";        
			    dist2.style.visibility="hidden";        
		    }
		} else {
		    if (this.zoomlevel<this.maxZoomLevel)
		    {
            if(currMaptype=="WMSBFN"){
            var layer = "";
               if(bfnNational)
               layer="1";
                   
               if(bfnBio)
               layer=(layer!="")?layer+",0":"0";

               if(bfnNatur)
               layer=(layer!="")?layer+",2":"2";
                   
                   theMap.AddWMSLayer("http://www.floraweb.de/proxy/ogc/wms/schutzgebiet?ersion=1.1.1&request=getmap&format=image/png&SRS=EPSG:31467&BBOX={x1},{y1},{x2},{y2}&LAYERS="+layer+"&WIDTH={w}&HEIGHT={h}&SCALE={s}&styles=&service=wms&transparent=true");
                }
                else
			    this.RemoveWMSLayers();

			    this.center = this.GetCenter();
			    this.zoomlevel=this.zoomlevel+1;
//			    if(currMaptype=="WMSBFN")theMap.ReloadMap();
                    //this.SetWMSBase(this.arrWMS[this.zoomlevel]);
                
//			    Luftbild();
			    
		        setZoom(this.zoomlevel);
			    document.getElementById('massstabAnzeige').value=this.ScaleMatchTab[this.zoomlevel];
			    this.MassstabSetzen();
			    //solange die Adresssuche aktiv ist soll das Kreuz in jedem Maßstab angezeigt werden
//			    if(document.getElementById("adresssuche").style.display=="block")
//			        this.setFixedSucheAt(arrSucheGewaehlt, "pointer.gif");
                // Routing und Start- Zwischen und Endpunkte
                //RefreshRoutingPoints();
           }
		}
		setPOIIcon();
	}
	
	// Setzt den Zoom, loescht die Symbole
	this.toggleZoom=function() 
	{
		//this.updateZoomButtons();
		var innerDiv = document.getElementById("innerDiv");
		var imgs = innerDiv.getElementsByTagName("div");
		while (imgs.length > 1)
		{
			innerDiv.removeChild(imgs[0]);
		}
	}

    // SliderPos geht von 0 bis 8 (9 Stufen)
    this.ZoomBySlider=function(sliderPos)
    {
        this.zoomlevel = sliderPos+1; // ZoomIn() reduziert ihn wieder um 1
        this.ZoomIn();
    }
    
    // Zoomt rein
	this.ZoomIn=function()
	{
	    if (this.m_usingWMS == false)
	    {
		    if (this.zoomlevel>0)
		    {
			    this.center = this.GetCenter();     // save
			    this.zoomlevel=this.zoomlevel-1;    // neuer Zoomlevel
			    this.toggleZoom();                  // loescht die Icons
			    this.updateEichung();               // macht nichts
			    this.measureDistanceMode=false;
			    var dist1 = document.getElementById("dist1");
			    var dist2 = document.getElementById("dist2");
			    var distText = document.getElementById("distText");
			    distText.innerHTML="";
			    var distText2 = document.getElementById("distText2");
			    distText2.innerHTML="";
			    dist1.style.visibility="hidden";        
			    dist2.style.visibility="hidden";        
		    }
		} else {
		    if (this.zoomlevel>0)
		    {
            if(currMaptype=="WMSBFN"){
               var layer = "";
                   if(bfnNational)
                   layer="1";
                       
                   if(bfnBio)
                   layer=(layer!="")?layer+",0":"0";

                   if(bfnNatur)
                   layer=(layer!="")?layer+",2":"2";
                   
                   theMap.AddWMSLayer("http://www.floraweb.de/proxy/ogc/wms/schutzgebiet?ersion=1.1.1&request=getmap&format=image/png&SRS=EPSG:31467&BBOX={x1},{y1},{x2},{y2}&LAYERS="+layer+"&WIDTH={w}&HEIGHT={h}&SCALE={s}&styles=&service=wms&transparent=true");
			    }
			 else
			    this.RemoveWMSLayers();
		    this.center = this.GetCenter();                                                         // save Center-Pos.
		    this.zoomlevel=this.zoomlevel-1;                                                        // aktualisiert den Zoomlevel
//		    if(currMaptype=="WMSBFN")theMap.ReloadMap();
			        //this.SetWMSBase(this.arrWMS[this.zoomlevel]);                                           // macht immer das gleiche
//			    
//			    Luftbild();
			       
		        setZoom(this.zoomlevel);                                                                // macht nichts
			    document.getElementById('massstabAnzeige').value=this.ScaleMatchTab[this.zoomlevel];    // get...
			    this.MassstabSetzen();                                                                  //         
			    //solange die Adresssuche aktiv ist soll das Kreuz in jedem Maßstab angezeigt werden
//			    if(document.getElementById("adresssuche").style.display=="block")
//			        this.setFixedSucheAt(arrSucheGewaehlt, "pointer.gif");
                // Routing und Start- Zwischen und Endpunkte
//                RefreshRoutingPoints();
		    }
		    if (this.zoomlevel==0){
		        //this.AddWMSLayer('http://www.onmaps.de/mywmsclient/UMN_WMSTunnel.php?url=http://www.onmaps.de:800/cgi-bin/mapserv.exe?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&format=image/gif&TRANSPARENT=true&map=/ms4w/apps/strassentexte/wms.map&LAYERS=Strassentexte&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false');	           
		        //this.AddWMSLayer("http://www.geobasisdaten.niedersachsen.de/rds?SERVICE=WMS&WIDTH={w}&HEIGHT={h}&FORMAT=image/png&BBOX={x1},{y1},{x2},{y2}&SRS=EPSG:31467&LAYERS=dtk50_v_f&STYLES=&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&EXCEPTIONS=application/vnd.ogc.se_inimage&REQUEST=GetMap&VERSION=1.1.1");
		        
//		        Luftbild();
		        
		        //Damit die Labels beim ersten Zoom auch angezeigt werden
		        theMap.moveMap(10000,10000);
	            theMap.moveMap(-10000,-10000);
		    }
		}
		setPOIIcon();
	}
	
	//Das Luftbild wird geladen
	function Luftbild()	
	{
	    var objLuftbild = document.getElementById("button_luftbild");
	    var objLuftbildDefault = document.getElementById("button_luftbild_default");
	    
	    //Das Luftbild wird gesetzt
	    if (theMap.zoomlevel <= 3)
	    {
	        objLuftbildDefault.style.visibility = "hidden";
	        objLuftbild.style.visibility = "visible";
	            
	        if (bLuftBild)
	            theMap.AddWMSLayer("http://www.gaia-mv.de/dienste/DOPDLM?&VERSION=1.1.1&REQUEST=GetMap&LAYERS=DOPDLM&FORMAT=image/jpeg&SRS=EPSG:31468&STYLES=&BBOX={x1},{y1},{x2},{y2}&TRANSPARENT=FALSE&EXCEPTIONS=application/vnd.ogc.se_inimage&width={w}&height={h}");
	    }
	    else
	    {
	        objLuftbild.style.visibility = "hidden";
            objLuftbildDefault.style.visibility = "visible";
	            
	        if(bLuftBild)
	        {
	            theMap.RemoveWMSLayers();
                theMap.ReloadMap();
	            bLuftBild = false;
	            theMap.SetWMSBase(theMap.arrWMS[theMap.zoomlevel]);
	        }
	    }
	    
	}
		
    // Zoomt rein
	this.ShowWMS=function()
	{
//	    this.center = new Array(parseInt(arrVisitenkarte[13]),parseInt(arrVisitenkarte[14]));
	    this.SetCenter(parseInt(arrVisitenkarte[13]),parseInt(arrVisitenkarte[14]));
	    this.zoomlevel=0;
	    this.SetWMSBase(arrVisitenkarte[7]+"&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}");
        setZoom(this.zoomlevel);
	    document.getElementById('massstabAnzeige').value="750";
	    this.MassstabSetzen();
		//this.updateZoomButtons();
		//this.updateZoomAnzeige(); // Dreieck verschieben
	}
	
	// Setzt die Messfunktion
	this.measureDistanceClick=function(clickLeft,clickTop)
	{
		if (!event) event = window.event;

		var innerDiv = document.getElementById("innerDiv");
		var top1 = -stripPx(innerDiv.style.top);
		var left1 = -stripPx(innerDiv.style.left);

		var outerDiv = document.getElementById("outerDiv");
		var clickY = -stripPx(outerDiv.offsetTop)+clickTop;
		var clickX = -stripPx(outerDiv.offsetLeft)+clickLeft;

		var xneu = left1+clickX;
		var yneu = top1+clickY;
		
		var dist1 = document.getElementById("dist1");
		var dist2 = document.getElementById("dist2");
		
		var ptToPxFactor = 0.75;
		if (this.measureClickNum == 0)
		{
			dist1.from.x = parseInt(clickX*ptToPxFactor);
			dist1.from.y = parseInt(clickY*ptToPxFactor);
			dist2.from.x = parseInt(clickX*ptToPxFactor);
			dist2.from.y = parseInt(clickY*ptToPxFactor);

			dist1.to.x = parseInt(clickX*ptToPxFactor);
			dist1.to.y = parseInt(clickY*ptToPxFactor);
			dist2.to.x = parseInt(clickX*ptToPxFactor);
			dist2.to.y = parseInt(clickY*ptToPxFactor); 
			this.measureClickNum++;
			this.measureStartX = xneu;
			this.measureStartY = yneu;
		} else {
			dist1.to.x = clickX*ptToPxFactor;
			dist1.to.y = clickY*ptToPxFactor;
			dist2.to.x = clickX*ptToPxFactor;
			dist2.to.y = clickY*ptToPxFactor; 
			
			var distText = document.getElementById("distText");            
			var dx = clickX - stripPx(dist1.from.x)/ptToPxFactor;
			var dy = clickY - stripPx(dist1.from.y)/ptToPxFactor;
			var entf = Math.round(Math.sqrt(Math.abs(dx*this.meterX*dx*this.meterX)+Math.abs(dy*this.meterY*dy*this.meterY)));
			if (entf < 1000)
			{
				distText.innerHTML = entf+" m";
			}
			if (entf >= 1000)
			{
				distText.innerHTML = Math.round(entf/10)*10/1000+" km";
			}
			distText.style.top = yneu+20;
			distText.style.left = xneu;

			var distText2 = document.getElementById("distText2");            
			distText2.innerHTML = distText.innerHTML;
			distText2.style.top = yneu+21;
			distText2.style.left = xneu+1;
		}
		dist1.style.visibility="visible";        
		dist2.style.visibility="visible";        
	}
	
	// Zeigt die sichtbaren teile/Kacheln
	this.getVisibleTiles=function()
  {
		var innerDiv = document.getElementById("innerDiv");
		var mapX = stripPx(innerDiv.style.left);
		var mapY = stripPx(innerDiv.style.top);
		var startX = Math.abs(Math.floor(mapX / this.tileSize))-1;//-(tilesOverViewportW-1);
		var startY = Math.abs(Math.floor(mapY / this.tileSize))-1;//-(tilesOverViewportH);
		var tilesX = Math.ceil(this.viewportWidth / this.tileSize)+1; // (this.tilesOverViewportW-1)+ (this.tilesOverViewportW);
		var tilesY = Math.ceil(this.viewportHeight / this.tileSize)+1; // (this.tilesOverViewportH-1)+ (this.tilesOverViewportH);
	
		var visibleTileArray = [];
		var counter = 0;
		for (var x = startX; x < (tilesX + startX); x++)
		{
			for (var y = startY; y < (tilesY + startY); y++)
			{
				visibleTileArray[counter++] = [x, y];
			}
		}
		return visibleTileArray;
  }   
  
  // Initalisiert die map
  this.Init=function()
  {
    adjustDimPosition();
    
    // Massstab setzen (35.3 = 100.000)
    theMap.SetWMSResolution(17.7,-17.7,false);   // 50.000
    // theMap.SetWMSResolution(3.53,-3.53,false);      // 10.000
    theMap.SetTileSize(800);
    //theMap.SetWMSBase("http://on-maps.de/ggwms?VERSION=1.1.0&FORMAT=image/png&TRANSPARENT=false&REQUEST=getmap&bgcolor=0xffffe6&WIDTH={w}&HEIGHT={h}&SCALE={s}&BBOX={x1},{y1},{x2},{y2}&copyright=false&LAYERS=LIST:fc_005_list,LIST:atkis_kacheln_list&copyright=false&watermark=false");
    //theMap.SetWMSBase("http://www.geobasisdaten.niedersachsen.de/rds?SERVICE=WMS&WIDTH={w}&HEIGHT={h}&FORMAT=image/png&BBOX={x1},{y1},{x2},{y2}&SRS=EPSG:31467&LAYERS=dtk50_v_f&STYLES=&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&EXCEPTIONS=application/vnd.ogc.se_inimage&REQUEST=GetMap&VERSION=1.1.1");
	var winW = 630, winH = 460;
	if (parseInt(navigator.appVersion)>3){
	    if (navigator.appName=="Netscape") {
	        winW = window.innerWidth;
	        winH = window.innerHeight;
	    }
	    if (navigator.appName.indexOf("Microsoft")!=-1) {
	        winW = document.documentElement.offsetWidth;
	        winH = document.documentElement.offsetHeight;
	    }
	}

	this.setInnerDivSize('2000px', '1000px');
	var outerDiv = document.getElementById("outerDiv");
	outerDiv.onmousedown = this.startMove;
	
	outerDiv.onmousemove = this.processMove;
	
	outerDiv.onmouseup = this.stopMove;
	outerDiv.onmouseout = this.stopMove;
	outerDiv.ondragstart = function() { return false; }
//	outerDiv.style.height=(winH-80)+"px";
	outerDiv.mapobject = this;
	globalMapObj = this;
	
	var innerDiv = document.getElementById("innerDiv");
	innerDiv.onmousewheel = this.CheckWheel;

//	var legende = document.getElementById("Legende");
//	legende.onmousedown = this.stopMove;//function() { return false; }
//	legende.onmousemove = this.stopMove;//function() { return false; }
//	legende.onmouseup = this.stopMove;//function() { return false; }
//	legende.ondragstart = this.stopMove;//function() { return false; }

	var mapoverview = document.getElementById("mapoverview");
	mapoverview.onmousedown = this.startMoveOverview;
	mapoverview.onmousemove = this.processMoveOverview;
	mapoverview.onmouseup = this.stopMoveOverview;
	mapoverview.onclick = this.clickOverview;
	mapoverview.ondragstart = function() { return false; }

//	window.onresize = windowResize; 
//	this.viewportHeight = winH-80;
	
	if (this.m_usingWMS == false)
	{
	    this.updateEichung();
	}
	
//	var slider = document.getElementById("zoomSchieber");
//    slider.onmousedown = this.mouseDownSlider;
//    slider.onmouseup = this.mouseUpSlider;
//    slider.onmousemove = this.mouseMoveSlider;	
//    slider.ondragstart = function() { return false; }
//    
//	var sliderContainer = document.getElementById("Zoomer");
//    sliderContainer.onmousedown = function() { return false; }
//    sliderContainer.onmouseup = function() { return false; }
//    sliderContainer.onmousemove = function() { return false; }
//    sliderContainer.ondragstart = function() { return false; }

//	var slider = document.getElementById("slider");
//    slider.onmousedown = this.mouseDownSlider;
//    slider.onmouseup = this.mouseUpSlider;
//    slider.onmousemove = this.mouseMoveSlider;	
//    slider.ondragstart = function() { return false; }
//    
//	var sliderContainer = document.getElementById("sliderContainer");
//    sliderContainer.onmousedown = this.mouseDownSliderContainer;
//    sliderContainer.onmouseup = this.mouseUpSliderContainer;
//    sliderContainer.onmousemove = function() { return false; }
//    sliderContainer.ondragstart = function() { return false; }
	
	this.CheckTiles();
	//this.updateZoomButtons();
	this.initMenue();
	
	//Tooltippinitialisieren;
	this.initTooltipp();		
  }  
    // Liest die POI-Kategorien aus
    this.initMenue = function(){
   // Hallotest
        var url = "./mapcontrol/ajax/GetMenue.aspx";
//        loadXMLDoc(url, this);
    }
    
    this.initTooltipp = function(){
        var url ="./mapcontrol/ajax/Tooltipp.aspx";
//        loadXMLDoc(url,this);
    }
    
	// Transformiert lokale Koordinaten in Geokoordinaten
	this.TransformMousePosToGeoCoord=function(x,y)
	{
		var innerDiv = document.getElementById("innerDiv");
		var mtop=stripPx(innerDiv.style.top);
		var mleft=stripPx(innerDiv.style.left);
		var mapOPx = -(mleft - x);
		var mapOPy = -(mtop - y);
		var x1 = mapOPx * this.meterX + this.links; 
		var y1 = mapOPy * this.meterY + this.unten; 
        var arrRetval = new Array(x1, y1);
		return arrRetval;
	}
	


  this.startMove=function(event)
  {
		// notwendig für IE
		if (!event) event = window.event;
		GetMapObject(this.id).dragStartLeft = event.clientX;
		GetMapObject(this.id).dragStartTop = event.clientY;
		GetMapObject(this.id).UpdateLast();

		if (GetMapObject(this.id).aufziehmodus)
		{
			var aufziehDiv = document.getElementById("selectbereich");
			if (GetMapObject(this.id).measureClickNum == 1)
			{
				GetMapObject(this.id).aufziehmodus=0;
				// Position, Größe und Zentrum des Bereiches hier fangen
				var x1 = stripPx(aufziehDiv.style.left);
				var y1 = stripPx(aufziehDiv.style.top);
				
				var divPos = GetMapObject(this.id).TransformMousePosToGeoCoord(x1,y1);
				
				var ax = divPos[0];
				var ay = divPos[1];
				var aw = stripPx(aufziehDiv.style.width)*GetMapObject(this.id).meterX;
				var ah = stripPx(aufziehDiv.style.height)*GetMapObject(this.id).meterY;
				
				var outerDiv = document.getElementById("outerDiv");
				var pw = stripPx(outerDiv.offsetWidth);
				var ph = stripPx(outerDiv.offsetHeight);
				
				//if (aw < 0)
				    //aw=0;
				if (pw < 0)
				    pw=0;
				//if (ah < 0)
				    //ah=0;
				if (ph < 0)
				    ph=0;
				
				if (GetMapObject(this.id).m_usingWMS==true)
				{
				    // WMS Modus
				    var centerX = divPos[0]+aw/2;
				    var centerY = divPos[1]+ah/2;
				    var meterNeu = Math.max(pw/stripPx(aufziehDiv.style.width),ph/stripPx(aufziehDiv.style.height));
				    GetMapObject(this.id).meterX = GetMapObject(this.id).meterX/meterNeu;
				    GetMapObject(this.id).meterY = GetMapObject(this.id).meterY/meterNeu;
				    GetMapObject(this.id).toggleZoom();
				    GetMapObject(this.id).SetCenter(centerX,centerY);
				    GetMapObject(this.id).AdjustSlider();
				} else {
//				    loadXMLDoc("./GetBestMapForArea.aspx?getMapData1&baseMap="+GetMapObject(this.id).map+"&ax="+ax+"&ay="+ay+"&aw="+aw+"&ah="+ah+"&pw="+pw+"&ph="+ph,GetMapObject(this.id));
				}
				// Karte pos, Bereich dichtmachen
				aufziehDiv.style.width="0px";
				aufziehDiv.style.height="0px";
				aufziehDiv.style.left="-100px";
				aufziehDiv.style.top="-100px";
				
			}
			if (GetMapObject(this.id).measureClickNum == 0)
			{
				GetMapObject(this.id).measureClickNum++;
				aufziehDiv.style.width="0px";
				aufziehDiv.style.height="0px";
			} 
		}
		else if (!GetMapObject(this.id).measureDistanceMode)
		{
			var innerDiv = document.getElementById("innerDiv");
			innerDiv.style.cursor = "move";
			GetMapObject(this.id).ktop = stripPx(innerDiv.style.top);
			if (innerDiv.style.top == "")
				GetMapObject(this.id).ktop = 0;
			
			GetMapObject(this.id).kleft = stripPx(innerDiv.style.left);
			if (innerDiv.style.left == "")
				GetMapObject(this.id).kleft = 0;
			
			GetMapObject(this.id).mouseDown = true;
		} else {
			if (GetMapObject(this.id).measureClickNum == 0)
			{
				GetMapObject(this.id).measureDistanceClick(GetMapObject(this.id).dragStartLeft,GetMapObject(this.id).dragStartTop);
			}
			else
			{
				GetMapObject(this.id).measureDistanceMode=false;
				var dist1 = document.getElementById("dist1");
				var dist2 = document.getElementById("dist2");
				var distText = document.getElementById("distText");
				distText.innerHTML="";
				var distText2 = document.getElementById("distText2");
				distText2.innerHTML="";
				dist1.style.visibility="hidden";        
				dist2.style.visibility="hidden";        
			}
		}
		return false;
	}
	
  this.processMove=function(event)
  {		
		if (!event) event = window.event; // für IE
		
        var outerDiv = document.getElementById("outerDiv");
        
        var y1 = event.clientY-GetOffsetTop(outerDiv)+ScrollTop();
		var x1 = event.clientX-GetOffsetLeft(outerDiv)+ScrollLeft();

		var xyPos = GetMapObject(this.id).TransformMousePosToGeoCoord(x1,y1);
		
		GetMapObject(this.id).onmapmousemove(xyPos[0],xyPos[1]);
		
		//Fenster werden verschoben
		moveViewer(event);
		   
		if (GetMapObject(this.id).measureDistanceMode)
		{
			if (GetMapObject(this.id).measureClickNum==1)
			{
				GetMapObject(this.id).measureDistanceClick(event.clientX,event.clientY);
			}
		} else if (GetMapObject(this.id).aufziehmodus)
		{
			var innerDiv = document.getElementById("innerDiv");
			var top1 = 0;//-stripPx(innerDiv.style.top);
			var left1 = 0;//-stripPx(innerDiv.style.left);

			var clickY = -stripPx(outerDiv.offsetTop)+event.clientY;
			var clickX = -stripPx(outerDiv.offsetLeft)+event.clientX;

			var xneu = left1+clickX;
			var yneu = top1+clickY;
			var aufziehDiv = document.getElementById("selectbereich");
			if (GetMapObject(this.id).measureClickNum==0)
			{
				aufziehDiv.style.left=xneu+"px";
				aufziehDiv.style.top=yneu+"px";
			}
			if (GetMapObject(this.id).measureClickNum==1)
			{
				var l = stripPx(aufziehDiv.style.left);
				var t = stripPx(aufziehDiv.style.top);
				var w = xneu - l;
				var h = yneu - t;
				if (h < 0)
				    h = 0;
				if (w < 0)
				    w = 0;
				aufziehDiv.style.width=w+"px";
				aufziehDiv.style.height=h+"px";
			}
		} else {
		    if (GetMapObject(this.id).mouseDown == true)
		    {
		        GetMapObject(this.id).dragging = true;
		    } else {
		        return false;
		    }

		    // Slider-Moves
    		if (GetMapObject(this.id).isDrag == true)
	    	    return false;			
			var innerDiv = document.getElementById("innerDiv");
			if (GetMapObject(this.id).dragging) {
                innerDiv.style.top = parseFloat(GetMapObject(this.id).ktop) + (event.clientY - GetMapObject(this.id).dragStartTop)+"px";
                innerDiv.style.left = parseFloat(GetMapObject(this.id).kleft) + (event.clientX - GetMapObject(this.id).dragStartLeft)+"px";
                GetMapObject(this.id).checkLeftTop(false);
                GetMapObject(this.id).UpdateUebersichtskarte();
			}
		}     
	}

	this.stopMove = function(event)
	{
//		FlaecheOut();
		
		if (!event) event = window.event; // für IE
		var a = 1;
		var x1 = event.clientX;
		var y1 = event.clientY;
		var xyPos = GetMapObject(this.id).TransformMousePosToGeoCoord(x1,y1);
		GetMapObject(this.id).onmapmousemove(xyPos[0],xyPos[1]);   
        GetMapObject(this.id).mouseDown=false;
		if (GetMapObject(this.id).measureDistanceMode==true)
		{
		    GetMapObject(this.id).dragging = false;
		    return false;
		} else if (GetMapObject(this.id).aufziehmodus==true)
		{
		    GetMapObject(this.id).dragging = false;
		    return false;
		}
		if (GetMapObject(this.id).dragging == false)
		{
		    var x1 = event.clientX;
		    var y1 = event.clientY;
		    var xyPos = GetMapObject(this.id).TransformMousePosToGeoCoord(x1,y1);
		    GetMapObject(this.id).onmapmouseclick(xyPos[0],xyPos[1],x1,y1);   
		}
		var innerDiv = document.getElementById("innerDiv");
		innerDiv.style.cursor = "";
		
		if(GetMapObject(this.id).dragging)
		    GetMapObject(this.id).CheckTiles();
		
		GetMapObject(this.id).dragging=false;
		
		//document.getElementById("koordinaten").style.display = 'none';
	}
	
	this.startMoveOverview=function(event)
	{
		return false;
	}
	
	this.stopMoveOverview=function(event)
	{
		return false;
	}

	this.processMoveOverview=function(event)
	{
		return false;
	}
	
	this.clickOverview=function(event)
	{
	 if(currMaptype!="GOOGLE"){
            if(GetMapObject(this.id).m_usingWMSUebersichtskarte==false)
            {
                if (!event) event = window.event;
                var overview = document.getElementById("mapoverview");
                var mtop = event.clientY-stripPx(overview.offsetTop)-stripPx(overview.offsetParent.offsetTop)-stripPx(overview.offsetParent.offsetParent.offsetTop)-10;
                var mleft = event.clientX-stripPx(overview.offsetLeft)-stripPx(overview.offsetParent.offsetLeft)-stripPx(overview.offsetParent.offsetParent.offsetLeft);
                var innerDiv = document.getElementById("innerDiv");
                var x1 = mleft * GetMapObject(this.id).omX + GetMapObject(this.id).oL; 
                var y1 = mtop * GetMapObject(this.id).omY + GetMapObject(this.id).oU; 
                theMap.SetCenter(x1,y1);
                return false;
            }
            else{
		        if (!event) event = window.event;
		        var overview = document.getElementById("mapoverview");
		        var mtop = event.clientY-stripPx(overview.offsetTop)-stripPx(overview.offsetParent.offsetTop)-stripPx(overview.offsetParent.offsetParent.offsetTop);
		        var mleft = event.clientX-stripPx(overview.offsetLeft)-stripPx(overview.offsetParent.offsetLeft)-stripPx(overview.offsetParent.offsetParent.offsetLeft);
		        var innerDiv = document.getElementById("innerDiv");
		        var x1 = mleft * GetMapObject(this.parentElement.parentElement.id).omX + GetMapObject(this.parentElement.parentElement.id).oL; 
		        var y1 = mtop * GetMapObject(this.parentElement.parentElement.id).omY + GetMapObject(this.parentElement.parentElement.id).oU; 
		        GetMapObject(this.parentElement.parentElement.id).SetCenter(x1,y1);
		        return false;
		    }
		}else{
		    
		
		        if (!event) event = window.event;
                var overview = document.getElementById("mapoverview");
                var mtop = event.clientY-stripPx(overview.offsetTop)-stripPx(overview.offsetParent.offsetTop)-stripPx(overview.offsetParent.offsetParent.offsetTop)-10;
                var mleft = event.clientX-stripPx(overview.offsetLeft)-stripPx(overview.offsetParent.offsetLeft)-stripPx(overview.offsetParent.offsetParent.offsetLeft);
                var innerDiv = document.getElementById("innerDiv");
                var x1 = mleft * GetMapObject(this.id).omX + GetMapObject(this.id).oL; 
                var y1 = mtop * GetMapObject(this.id).omY + GetMapObject(this.id).oU; 
		        var latlongCenter=TransGKnachGeo(x1, y1);
		          theGmap.setCenter(new GLatLng(latlongCenter[0],latlongCenter[1] ));
		        if(currMaptype=="GOOGLE")
                    theGMapLoadPoi();
		}
	}

	this.RecalcWMSOverview=function()
	{
        if (this.m_usingWMS && this.m_usingWMSUebersichtskarte)
		{
    		var x1 = this.GetCenter()[0];
    		var y1 = this.GetCenter()[1];
    		var outerdiv = document.getElementById("outerDiv");
            var scale = parseInt(this.meterX*6)*this.scaleFactor;
			if (scale == 0)
			    scale = 5000;
    		scale = this.MatchScale(scale);

			var meterX = this.meterX;
			var meterY = this.meterY;
		    var wmsUrl = this.m_wmsBase;
		    
		    this.omX = meterX*24*2;
		    this.omY = meterY*24*2;
		    this.oL = x1-meterX*24*180;
		    this.oU = y1-meterY*24*120;
		    
		    wmsUrl = wmsUrl.replace(/{h}/g,"120");
		    wmsUrl = wmsUrl.replace(/{w}/g,"180");
		    wmsUrl = wmsUrl.replace(/{x1}/g,(x1-meterX*24*180)+"");
		    wmsUrl = wmsUrl.replace(/{y1}/g,y1+meterY*24*120+"");
		    wmsUrl = wmsUrl.replace(/{x2}/g,(x1+meterX*24*180)+"");
		    wmsUrl = wmsUrl.replace(/{y2}/g,y1-meterY*24*120+"");
		    wmsUrl = wmsUrl.replace(/{s}/g,scale+"");
/*		    var mapoverview = document.getElementById("mapoverview");
		    mapoverview.style.backgroundImage = "url("+wmsUrl+")";*/
		    this.UpdateUebersichtskarte();
		}
		else{
		
		}
	}
	
	this.setInnerDivSize=function(width, height) 
	{
		var innerDiv = document.getElementById("innerDiv");
		innerDiv.style.width = width;
		innerDiv.style.height = height;
	}
	
    
	// SliderContainer
    this.mouseDownSliderContainer=function(e) {
        return false;
    }

    this.mouseUpSliderContainer=function(e)
    {
        var sliderY = stripPx(GetSlider().style.top);
        return false;
    }
    
	// Slider
    this.mouseDownSlider=function(e) {
        var Map = globalMapObj; // wegen Firefox
        Map.isDrag = true;
        var ty = parseInt(this.style.top);
        if (document.all) {
            Map.yoben = ty;
        }
        else {
            Map.yoben = ty;
        }
        return false;
    }

    this.mouseUpSlider=function(e)
    {
        var Map = globalMapObj; // wegen Firefox
        Map.isDrag = false;
                
        y = stripPx(GetSlider().style.top);
               
        newLevel = parseInt((y-Map.sliderMin)/(Map.maxZoomLevel + 1) - 2);   
        
        Map.ZoomBySlider(newLevel);  // +1, da ZoomIn() ihn wieder reduziert
        Map.UpdateMasstab();
        
        return false;
    }

    // Slider verändern.
    this.mouseMoveSlider=function(e) {
        var Map = globalMapObj; // wegen Firefox
        
        var outerDiv = document.getElementById("outerDiv");	
        if (Map.isDrag) {
            if (document.all) {
                y = event.clientY + document.body.scrollTop;
                
            }
            else {
                y = e.pageY;
            }

            var sContainer= document.getElementById("sliderContainer");
            var slider= document.getElementById("slider");
            		        
		    y = (y - sContainer.offsetTop) - (stripPx(slider.style.height) / 2)
		    
            
            
            if (y<Map.sliderMin)
                y = Map.sliderMin;
            else if (y>Map.sliderMax)
                y = Map.sliderMax;
                
            GetSlider().style.top = y +'px';
        }
        return false;
    }	
    
    this.AdjustSlider=function()
    {
//        var sliderPos = this.sliderMin+(this.zoomlevel*((this.sliderMax-this.sliderMin)/this.maxZoomLevel))
//        GetSlider().style.top = sliderPos+"px";
          this.UpdateMasstab();
//        this.RecalcWMSOverview();
    }       

    this.UpdateUebersichtskarte=function()
	{        
		var myArea = document.getElementById("myarea");

		var innerDiv = document.getElementById("innerDiv");
		var mtop=stripPx(innerDiv.style.top);
		var mleft=stripPx(innerDiv.style.left);
		
		var mapOPx = -(mleft);
		var mapOPy = -(mtop);
		var x1 = mapOPx * this.meterX + this.links;   // oben links
		var y1 = mapOPy * this.meterY + this.unten;   // --- "" ---

		mapOPx = -mleft+this.viewportWidth;
		mapOPy = -mtop+this.viewportHeight;
		var x2 = mapOPx * this.meterX + this.links;   // unten links
		var y2 = mapOPy * this.meterY + this.unten;   // --- "" ---

		// xy1/2 enthalten jetzt die Geokoordinaten des sichtbaren Bereiches

		var xpix = (x1 - this.oL) / this.omX;
		var ypix = (y1 - this.oU) / this.omY;
		mtop = this.oH-parseInt(ypix); 
		mleft = this.oW-parseInt(xpix);        

		xpix = (x2 - this.oL) / this.omX;
		ypix = (y2 - this.oU) / this.omY;
		var top1 = this.oH-parseInt(ypix);
		var left1 = this.oW-parseInt(xpix);        

		var oheight = parseInt(mtop)-parseInt(top1);
		var owidth = parseInt(mleft)-parseInt(left1);

		var myBottom = parseInt(mtop)-parseInt(oheight)-12;//-12 korrektur, da zuweit oben.
		var myLeft = this.oW-(parseInt(mleft));
		myArea.style.bottom = myBottom+"px";
		myArea.style.left = myLeft+"px";

		myArea.style.height = oheight+"px";
		myArea.style.width = owidth+"px";
		
		if ((myLeft < 0) || (myBottom+oheight < 0))
		{
		    this.RecalcWMSOverview();
		}
		if ((myLeft+owidth > 180) || (myBottom+oheight > 120))
		{
		    this.RecalcWMSOverview();
		}
	}
	
	// Setzt einen Punkt und zentriert den Pro
	this.SetFixedPOIAt=function(x,y,bild,pid)
	{
		var pixelPos = this.TransformGeoCoordToInnerDiv(x,y);
		var innerDiv = document.getElementById("innerDiv");
		if (innerDiv != null)
		{
			var img2=document.getElementById(pid);
			if (img2 == null)
			{
				img2 = document.createElement("img");
				innerDiv.appendChild(img2);
			}
			img2.src = bild;
			img2.style.position = "absolute";
//            img2.onclick=showPoiInfo(pid);

			if (pid=="ID1234")
			{
			    img2.style.left = pixelPos[0]-21 + "px";
			    img2.style.top = pixelPos[1]-21 + "px";
			    img2.style.cursor="default";
			    img2.style.zIndex=293;
			}
			else{
			    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";
			img2.id=pid;
		}
		
		setRoutingPic();
	}
		
	// Transformiert lokale Koordinaten in Geokoordinaten
	this.TransformGeoCoordToInnerDiv=function(x,y)
	{
		var innerDiv = document.getElementById("innerDiv");
		var x1=x-this.links;
		x1=parseInt(x1/this.meterX);
		var y1=y-this.unten;
		y1=parseInt(y1/this.meterY);
		return new Array(x1,y1);
    }
    
    // Transformiert Geokoordinaten in lokale Koordinaten
    this.TransformInnerDivToGeoCoord=function(x,y)
    {
		var x1=parseInt(x1*this.meterX);
		x1=x+this.links;
		
		var y1=parseInt(y1*this.meterY);
		y1=y+this.unten;
		
		return new Array(x1,y1);
    }		
	
	this.AdressenSuchen=function(argOrt, argStrasseBegriff, argHausNr){
	    var url = "./mapcontrol/ajax/GetAdresssuche.aspx?Ort="+escape(argOrt)+"&StrasseBegriff="+escape(argStrasseBegriff)+"&HausNr="+escape(argHausNr);
//        loadXMLDoc(url, this);
	}
	
	/*
	
	this.ShowSuchergebnis=function(){
        //document.getElementById("myPanel").style.visibility="hidden";
        var divSuche = document.getElementById("SuchergebnisAnzeige");
        var strTmp = "<div style=\"position:absolute; top:-1px; left:384px; width:10px; border:solid 1px red; vertical-align:middle; text-align:center; cursor:hand; cursor:pointer;\" onclick=\"document.getElementById('SuchergebnisAnzeige').style.visibility='hidden';\">X</div><b>Suchergebnisse</b><br>Ihre Anfrage hat mehrere Ergebnisse zurückgeliefert<br>";
        var i = 0;
        var strTmpArt = "";
        var strStrasseTmp = "";
        var strKoordX = "";
        var strKoordY = "";
        while(i<arrSuche.length){
            // Gefundene POI
            if(i==0){
                strKoordX = arrSuche[i][2];
                strKoordY = arrSuche[i][3];
            }
            if((arrSuche[i][0]=="poi1" || arrSuche[i][0]=="poi2") && strTmpArt!="poi"){
                strTmpArt = "poi";
                strTmp+= "<br><i><b>Thematisches Ergebnis</b></i>";
                strTmp+="<ul style='margin:0px; padding-left:18px;'>";
            }
            // Gefundene Strassen und Hausnummern
            else if((arrSuche[i][0]=="strasse1_hsNr" || arrSuche[i][0]=="strasse2_hsNr") && strTmpArt!="adressen"){
                if(i!=0)
                   strTmp += "</ul>";
                strTmpArt = "adressen";
                strTmp+= "<br><i><b>Kartographisches Ergebnis:</b></i>";
                strTmp+="<ul style='margin:0px; padding-left:18px;'>";
            }
            else{
                
            }
            
            // Es werden POI angezeigt
            if(arrSuche[i][0]=="poi1" || arrSuche[i][0]=="poi2"){
                strTmp += "<li class='Suchergebnisliste' onclick='theMap.centerSuche(\""+arrSuche[i][2]+"\", \""+arrSuche[i][3]+"\");'>"+arrSuche[i][1]+"</li>";
            }
            // Es werden Strassen und Hausnummern angezeigt
            else if(arrSuche[i][0]=="strasse1_hsNr" || arrSuche[i][0]=="strasse2_hsNr" || arrSuche[i][0]=="ort"){
                if(strStrasseTmp!=arrSuche[i][4]){
                    if(strStrasseTmp!="")
                        strTmp += "</select></td></tr></table></li>";                
                    if(arrSuche[i][5]!=""){
                        strTmp += "<li class='Suchergebnisliste'><table width='300' cellpadding='0' cellspacing='0'><tr valign='bottom'><td onclick='theMap.setCenterHausNr(\"selAdresssuche"+i+"\", \""+arrSuche[i][2]+"\", \""+arrSuche[i][3]+"\")'>"+arrSuche[i][4]+"</td><td align='right'>";
                        strTmp += " <select class='Hausnummersuche' style='width:80px' id='selAdresssuche"+i+"' onchange='theMap.setCenterHausNr(\"selAdresssuche"+i+"\", \"\", \"\");'>";
                    }
                    else{ // Keine Hausnummer
                        strTmp += "<li class='Suchergebnisliste'><table width='300' cellpadding='0' cellspacing='0'><tr valign='bottom'><td onclick='theMap.setCenterHausNr(\"\", \""+arrSuche[i][2]+"\", \""+arrSuche[i][3]+"\")'>"+arrSuche[i][4]+"</td><td align='right'>";
                    }
                }
                if(arrSuche[i][5]!="")
                    strTmp += "<option value='"+arrSuche[i][2]+";"+arrSuche[i][3]+"'>"+arrSuche[i][5]+"</option>";
                strStrasseTmp = arrSuche[i][4];
            }
            i++;
        }
        if(strStrasseTmp!=""){
            strTmp += "</select></td></tr></table></li></ul>";
            if(strKoordX != "") // es wurde nur eine einzige Strasse gefunden
                this.centerSuche(strKoordX, strKoordY);
        }
        divSuche.innerHTML = strTmp; // Feld füllen
        divSuche.style.visibility="visible";
        
        
    }
    */
    this.setCenterHausNr = function(argValue, argKoordX, argKoordY){
        if(argValue==""){
            this.centerSuche(argKoordX, argKoordY);
        }
        else{
            var strKoord = document.getElementById(argValue).value;
            if(strKoord!=""){
                var arrKoordinaten = strKoord.split(';');
                this.centerSuche(arrKoordinaten[0], arrKoordinaten[1]);
            }
            else{
                this.centerSuche(argKoordX, argKoordY);
            }
        }
    }
    
    this.centerSuche = function(x, y){
        var TempY = 0;
               
        arrSucheGewaehlt = new Array(x, y);
        this.SetCenter(x, y);        
        var punkt = new Array(x,y);
        
        this.setFixedSucheAt(punkt, "pointer.gif");
    }

	// Setzt den Pointer der Suche und zentriert den Browser
	this.setFixedSucheAt = function(punkt, bild)
	{
	    if( ( punkt[0] > 999999) && (punkt[1] > 999999 ) )
	    {
	        var pixelPos = this.TransformGeoCoordToInnerDiv(punkt[0],punkt[1]);
		    var innerDiv = document.getElementById("innerDiv");
		    if (innerDiv != null)
		    {
			    var img2=document.getElementById(bild);
			    if (img2 == null)
			    {
				    img2 = document.createElement("img");
			        img2.id=bild;
				    innerDiv.appendChild(img2);
			    }
			    img2.src = "mapcontrol/images/"+bild;
			    img2.style.position = "absolute";
//			    if (bild=="pointer.gif"){
////			        img2.style.left = pixelPos[0]-10 + "px";
////			        img2.style.top = pixelPos[1]-10 + "px";
//			    }
//			    else{
			        img2.style.left = pixelPos[0]-19 + "px";
			        img2.style.top = pixelPos[1]-25 + "px";
			        //img2.style.cursor="pointer";
//			    }
			    img2.style.visibility="visible";
			    img2.style.zIndex=100000;
			    if (bild=="pointer.gif")
			    {
			        if (!this.bRoutingRun)
			        {
			            img2.style.left = pixelPos[0]- 20 + "px";
			            img2.style.top = pixelPos[1]- 60 + "px";
			            img2.style.zIndex = 50;
			        }
			        else
			        {
			            img2.style.top = pixelPos[1]  - 17 + "px";
			        }
			        
			        
			        
				}
			    if (bild=="ziel.gif")
			    {
				    img2.alt="Ziel";
				}
			    if (bild=="start.gif")
			    {
				    img2.alt="Startpunkt";
				}
		    }
	    }
	}

	// Holt die POIs zu den gewählten Kategorien
	this.checkTilesPoikatChange = function() {
	
	 if(currMaptype!="GOOGLE"){
		    //document.getElementById("ladePic").style.display = "block";
		    window.status = "Loading Tiles..."
		    var visibleTiles = this.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="+this.zoomlevel;
			    //if(strPoiKatGewaehltGesamt==""){
				    var div = document.getElementById(tileName);
				    if (div) {
					    var imgs = div.getElementsByTagName("img");
					    while (imgs.length > 1)
					    {
					        if (imgs[imgs.length-1].id != "maptile")
						        div.removeChild(imgs[imgs.length-1]);
						    else
						        break;
					    }
				    }
			    //}

			    visibleTilesMap[tileName] = true;
			    var mapx1 = (tileArray[0] * this.tileSize);
			    var mapy1 = (tileArray[1] * this.tileSize);
			    var mapx2 = (tileArray[0] * this.tileSize)+this.tileSize;
			    var mapy2 = (tileArray[1] * this.tileSize)+this.tileSize;
    			
			    var x1 = parseInt(mapx1 * this.meterX + this.links);
			    var y1 = parseInt(mapy1 * this.meterY + this.unten);

			    var x2 = parseInt(mapx2 * this.meterX + this.links);
			    var y2 = parseInt(mapy2 * this.meterY + this.unten);
    	
    			
			    var url = "./mapcontrol/ajax/GetPOILayer.aspx?merk="+getMerkliste()+"&x1="+x1+"&y1="+y1+"&x2="+x2+"&y2="+y2+"&ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel+"&mx="+this.meterX+"&poiKatIds="+aktivpoikat+"&TourId="+currentTourId+"&usingWMS="+this.m_usingWMS+"&TourPoiAnzeigen=";
                    if(theMap.TourOrte==1)
                        url+="true";
                    else
                        url+="false";
    			    url+="&Unterkuenfte="+isUnterkuenfte+"&Ausflugsziele="+isAusflugsziele+"&Service="+isService;

			    getPoilayer(url);
	
			
		        }
		}else
	    theGMapLoadPoi();
        //this.showFlaechen();
        
		window.status = "Finished."

//      		    if(tooMany)
//                {
//                dojo.byId("d_lightbox_layer").style.display="block";

//                dojo.byId('CenterErrorbox').style.display="block";
//                dojo.byId('CenterErrorboxText').innerHTML ="Es befinden sich zu viele POIs in diesem Kartenausschnitt.\nBitte wechsel in einem höheren Massstab!";                     

//                var out = dojo.fadeOut(
//                                {
//	                                node:"CenterErrorbox",
//	                                delay:1500,
//	                                duration:1500,
//	                                onEnd:function()
//	                                {
//		                                dojo.byId('CenterErrorboxText').innerHTML = "";
//		                                dojo.byId('CenterErrorbox').style.display="none";
//                                        dojo.byId("d_lightbox_layer").style.display="none";
//	                                }
//                                });

//                          dojo.fadeIn({node:"CenterErrorbox",duration:1500, onEnd:function(){out.play()}}).play(); 

//                        //alert("2222 Es befinden sich zu viele POIs in diesem Kartenausschnitt.\nBitte wechsel in einem höheren Massstab.");
//                        tooMany = false;

//                }

	}
	
	
	// Holt die POIs zu der gewählten Tour
	this.checkTilesTourChange = function(tourID) {
		/*window.status = "Loading Tiles..."
		var visibleTiles = this.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="+this.zoomlevel;
			//if(strPoiKatGewaehltGesamt==""){
				var div = document.getElementById(tileName);
				if (div) {
					var imgs = div.getElementsByTagName("img");
					while (imgs.length > 1)
					{
					    if (imgs[imgs.length-1].id != "maptile")
						    div.removeChild(imgs[imgs.length-1]);
						else
						    break;
					}
				}
			//}

			visibleTilesMap[tileName] = true;
			var mapx1 = (tileArray[0] * this.tileSize);
			var mapy1 = (tileArray[1] * this.tileSize);
			var mapx2 = (tileArray[0] * this.tileSize)+this.tileSize;
			var mapy2 = (tileArray[1] * this.tileSize)+this.tileSize;
			
			var x1 = parseInt(mapx1 * this.meterX + this.links);
			var y1 = parseInt(mapy1 * this.meterY + this.unten);

			var x2 = parseInt(mapx2 * this.meterX + this.links);
			var y2 = parseInt(mapy2 * this.meterY + this.unten);
			
			
			var url = "./mapcontrol/ajax/GetPOILayer.aspx?TourId=" + tourID + "&TourPoiAnzeigen=true" + "&x1="+x1+"&y1="+y1+"&x2="+x2+"&y2="+y2+"&ky=" + tileArray[0] + "&kx=" + tileArray[1]+"&level="+this.zoomlevel+"&mx="+parseInt(this.meterX);
	        loadXMLDoc(url,this);
		}
        
        //var url = "./mapcontrol/ajax/GetPOILayer.aspx?TourId=" + tourID + "&TourPoiAnzeigen=true" + "&mx="+parseInt(this.meterX);
	    //    loadXMLDoc(url,this);
		window.status = "Finished."*/
	}
	
	
	this.setPoiKat = function(argPoiKat, argAusgeklappt){
	    usermodified=true;
	    document.getElementById("ladePic").style.display = "block";
	    
	    //Tourorte deaktivieren
            theMap.TourOrte=0;
            if(document.getElementById('tourpoi')!=null)
            document.getElementById('tourpoi').src='mapcontrol/images/tour_poi_0.png';
		
		var bEinstellung = true;
		strPoiKatGewaehltGesamt = "";
		for(var i = 0; i<this.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;
				setPOICategory(arrMenueKat[i][1],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];
			}
		}
		this.menueAusklappen(argAusgeklappt);
		this.checkTilesPoikatChange();
		Auswertung("POIKAT",strPoiKatGewaehltGesamt,3);
//		//this.checkTilesPoikatChange();
//		this.clearLinien("alle");
//		//Linien als Tour laden
//        var url = "./mapcontrol/ajax/LoadTour.aspx?zoom="+ this.bZoom +"&x="+this.links+"&y="+this.unten+"&w="+this.meterX+"&h="+this.meterY+"&tourId="+strPoiKatGewaehltGesamt+"&vW="+ theMap.viewportWidth +"&vH="+theMap.viewportHeight;
//        loadXMLDoc(url,this);
//        //Flächen anzeigen
//        this.clearFlaechen("alle");
//	    this.showFlaechen(strPoiKatGewaehltGesamt);
	}
	
	this.setPoiKatBeiAdresssuche = function(argPoiKat){
	
		//var bEinstellung = true;
		strPoiKatGewaehltGesamt = "";
		for(var i = 0; i<this.iAnzahlKategorien; i++){
			if(argPoiKat==arrMenueKat[i][1]){
				if(arrMenueKat[i][4]==true)
				{
				}
				
				else
				{
				    setPOICategory(argPoiKat,true);
				    // Wenn einen Hauptkategorie ausgeschaltet wurde sollen alle unterkategorien 
			        // davon den gleichen Wert erhalten
			       // if(argPoiKat==arrMenueKat[i][3])
			        //{
				      //  arrMenueKat[i][4] = true;
				       // setPOICategory(arrMenueKat[i][1],true);
			        //}
			        // String für die Sammelicons zusammenfügen, aufgrund dessen die POI neu geladen werden
			         if(strPoiKatGewaehltGesamt=="")
					    strPoiKatGewaehltGesamt=arrMenueKat[i][1];
				    else
					    strPoiKatGewaehltGesamt += ";"+arrMenueKat[i][1];
				    arrMenueKat[i][4] = true;
				    this.menueAusklappen(argPoiKat);
		            this.checkTilesPoikatChange();
				}
			}
			if(arrMenueKat[i][4]==true)
			{
			    if(strPoiKatGewaehltGesamt=="")
				    strPoiKatGewaehltGesamt=arrMenueKat[i][1];
			    else
				    strPoiKatGewaehltGesamt += ";"+arrMenueKat[i][1];
				this.checkTilesPoikatChange();
				this.menueAusklappen(argPoiKat);
			}
		}
		
		this.poiZoom();
	}
	
	
	this.poiZoom = function()
	{
	    //Es wird auf den POI gezoomt(100000)
		if (this.zoomlevel > 3)
		{
		    this.zoomlevel = 5;
		    this.ZoomIn();
		}
	}
	
	this.TourMenueAusklappen = function(nAuswahl)
	{
	    var obj = document.getElementById("TourMenue");
	    var strMenueText = "<table cellpadding='0' cellspacing='0'><colgroup><col width='15'><col width='0'><col width='545'></colgroup>";
	    var bLoadAll = false;
	    var nKatId = -1;
	    var nAusKlappId = -2;
	    var sPicture = "";
        
        var filteranz=arrTourFilter.length;
                
        var strfilter=new Array();
        var strfilter2=new Array();
        strfilter[0]="<tr><td></td><td></td><td></td></tr>";        
        
        
        for(var arrTmp in arrTourFilter ){
        if(!isNaN(arrTmp)){
            strfilter[arrTourFilter[arrTmp][0]]="<tr><td></td><td></td><td class='MenueText' style='padding-left:15px;'>"+arrTourFilter[arrTmp][1]+"</td></tr>";
            strfilter2[arrTourFilter[arrTmp][0]]=0;
            }
        }
        
        
        	    	        
	    for(var nI = 0; nI < arrTourKat.length; nI++)
	    {
	        sPicture = "button_pfeil_mehr.png";
	        nKatId = -1;
	        nAusKlappId = nI;
	        
	        if (nI == nAuswahl)
	        {
	            nKatId = arrTourKat[nAuswahl][0]
	            sPicture = "button_pfeil_weniger.png";
	            nAusKlappId = -2;
	        }           
	        
	        strMenueText+="<tr><td style='cursor:hand; cursor:pointer;' onclick='theMap.TourMenueAusklappen("+ nAusKlappId +");'><img src='mapcontrol/images/" + sPicture + "'></td><td><div class='MenueEbene2'><img src='Bilder.aspx?tourkat=1&id=" + arrTourKat[nI][0] + "' alt='" + arrTourKat[nI][0] + "' title='" + arrTourKat[nI][1] + "'>&nbsp;</div></td><td><div class='MenueText'style='cursor:hand; cursor:pointer;' onclick='theMap.TourMenueAusklappen("+ nAusKlappId +");'>" + arrTourKat[nI][1] + "</div></td></tr>";
	    
	        
	        
	        if(nKatId != -1)
	        {
	            for(var nJ = 0; nJ < arrTourNurId.length; nJ++)
	            {
	      
	                if (arrTourId[arrTourNurId[nJ]][6] == nKatId){
                            var Tourfilter=arrTourId[arrTourNurId[nJ]][9].split(',');
                            
                            if(arrTourId[arrTourNurId[nJ]][9]!=""){
                                for(var nk=0; nk<Tourfilter.length;nk++){
    	                            strfilter[Tourfilter[nk]]+="<tr><td></td><td><div style='padding-left:16px;cursor:pointer;' class='MenueEbene3' onmousemove='theMap.createTourUebersichtMove(" + arrTourNurId[nJ] + ",\"" + arrTourId[arrTourNurId[nJ]][0].replace('"','&#34;') + "\"" + "," + nKatId +")'; onclick='setTour(" + arrTourNurId[nJ] + ",\"" + arrTourId[arrTourNurId[nJ]][0] + "\"" + "," + nKatId + ");theMap.loadTourInfo(" + arrTourNurId[nJ] + ");'  style='cursor:pointer;' ><img src='Bilder.aspx?tourkat=1&id=" + arrTourKat[nI][0] + "' alt='" + arrTourKat[nI][0] + "' title='" + arrTourKat[nI][1] + "'>&nbsp;</div></td><td><div style='padding-left:30px;cursor:pointer;' class='MenueText' onmousemove='theMap.createTourUebersichtMove(" + arrTourNurId[nJ] + ",\"" + arrTourId[arrTourNurId[nJ]][0] + "\"" + "," + nKatId +")'; onclick='setTour(" + arrTourNurId[nJ] + ");theMap.loadTourInfo(" + arrTourNurId[nJ] + ",\"" + arrTourId[arrTourNurId[nJ]][0] + "\"" + "," + nKatId + ");' >" + arrTourId[arrTourNurId[nJ]][0] + "</div></td></tr>";
    	                            strfilter2[Tourfilter[nk]]=1;
    	                        }
    	                    }
	                        
	                        if(arrTourId[arrTourNurId[nJ]][9]==""){
	                            strfilter[0]+="<tr><td></td><td><div class='MenueEbene3' style='cursor:pointer' onmousemove='theMap.createTourUebersichtMove(" + arrTourNurId[nJ] + ",\"" + arrTourId[arrTourNurId[nJ]][0].replace('"','&#34;') + "\"" + "," + nKatId +")'; onclick='setTour(" + arrTourNurId[nJ] + ",\"" + arrTourId[arrTourNurId[nJ]][0] + "\"" + "," + nKatId + ");theMap.loadTourInfo(" + arrTourNurId[nJ] + ");'   ><img src='Bilder.aspx?tourkat=1&id=" + arrTourKat[nI][0] + "' alt='" + arrTourKat[nI][0] + "' title='" + arrTourKat[nI][1] + "'>&nbsp;</div></td><td><div style='padding-left:30px;cursor:pointer;' class='MenueText'onmousemove='theMap.createTourUebersichtMove(" + arrTourNurId[nJ] + ",\"" + arrTourId[arrTourNurId[nJ]][0] + "\"" + "," + nKatId +")'; onclick='setTour(" + arrTourNurId[nJ] + ");theMap.loadTourInfo(" + arrTourNurId[nJ] + ",\"" + arrTourId[arrTourNurId[nJ]][0] + "\"" + "," + nKatId + ");'>" + arrTourId[arrTourNurId[nJ]][0] + "</div></td></tr>";
	                            strfilter2[0]=1;
	                        }
	                    
	                    }
	            }  
	        
	        }
	        if (nI == nAuswahl){
                for(var key in strfilter){
	                if(strfilter2[key]==1)
	                    strMenueText+=strfilter[key];
            
	            }
	        }
	    }
	    obj.innerHTML = strMenueText + "</table>";         
        obj.style.visibility="visible";
	
	}
	
	this.createTourUebersichtMove = function(nTourId, sTourName, nKatId)
	{
	    if (this.TempTourId != nTourId)
	    {
	        document.getElementById('Tourgemerkt').innerHTML = "";
	        
	        if(isTourinMerkerliste(nTourId))
	            document.getElementById("Tourgemerkt").innerHTML = "<img style='left:0px; top:0px; position:absolute; width:20px; height:20px;' src='/images/haken.gif'>";
	        
	        var objInhalt = document.getElementById("FlaecheInfoRechtsInhalt");
	        var sHTML = "";
    	    
	        sHTML += "<table>";
    	    
	        //Die Karte wird geschrieben
	        sHTML += "<tr><td id='TourKarte' style='height:120px' align='center'><img src='Bilder.aspx?tourline=1&id="+nTourId+"&meterX=1721&meterY=-1778&StartKarteX=4402090&StartKarteY=6075299&PicSrc=mapcontrol/images/Karte_Touren.png'>"
	                +"</td></tr>";
    	    
	        //Das Bild zur Tour wird geladen
	        sHTML += "<tr><td id='TourPic' style='height:120px;' align='center'><img src='Bilder.aspx?tour=1&id="+nTourId+"'></td></tr>";
    	    
	        //Die TourInfo wird geladen
	        sHTML += "<tr><td id='TourInfo' class='VisitStyle' style='font-size:10px;'>" + arrTourId[nTourId][2] + "</td></tr>";
    	    
	        sHTML += "</table>";   
	        objInhalt.innerHTML = sHTML;
    	    
	        document.getElementById("TourMerken").style.visibility = "visible";
	        document.getElementById("TourInfoDrucken").style.visibility = "visible";
	        
	        this.arrTourDetails[0][0] = nTourId;
	        this.arrTourDetails[0][1] = sTourName;
	        this.arrTourDetails[0][2] = nKatId;
	    }
	}
	
	this.clearTourUebersichtMove = function()
	{
	    document.getElementById("FlaecheInfoRechtsInhalt").innerHTML = "";
	    document.getElementById("TourMerken").style.visibility = "hidden";
	    document.getElementById("TourInfoDrucken").style.visibility = "hidden";
	    this.arrTourDetails[0][0] = -1;
	    this.arrTourDetails[0][0] = "";
	    this.arrTourDetails[0][0] = -1;
	}
	
	
	
	this.loadTourInfo = function(TourId, sTourName, nKatId)
	{
	    var objInhalt = document.getElementById("RouteDetailBeschreibung");
        var sHTML = "";
	    
        sHTML += "<table>";
        
        //Die Karte wird geschrieben
        //sHTML += "<tr><td id='TourKarte' style='height:120px'  align='center'><img src='Bilder.aspx?tourline=1&id="+TourId+"&meterX=1721&meterY=-1778&StartKarteX=4402090&StartKarteY=6075299&PicSrc=mapcontrol/images/Karte_Touren.png'> <br>";
        //Der Info-Text
          sHTML += "<tr><td id='TourTitel' style='font-size:10px; font-family:Arial; color:rgb(190,100,40);'>" + arrTourId[TourId][2] + "";

//        if(this.TourOrte==0)
//            sHTML+="<img id='tourpoi' src='mapcontrol/images/test_tour_poi_0.png' onclick='TourpoiAnzeigen()' style='cursor:pointer;'>";
//        else
//            sHTML+="<img id='tourpoi' src='mapcontrol/images/test_tour_poi_1.png' onclick='TourpoiAnzeigen()' style='cursor:pointer;'>";
        
        sHTML+="</td></tr>";
	    
	    var pdf="";

	    if(arrTourId[TourId][11]!="" )
	        pdf="<a href='"+arrTourId[TourId][11]+"' target='_blank'><img src='/images/routenbeschreibung/PDF.png' alt='PDF download' alt='"+arrTourId[TourId][10]+"' style='cursor:pointer;' /></a>";
	    else
	        pdf="<img src='/images/routenbeschreibung/PDF2.png' alt='PDF download' />";
	    
	    sHTML+="<tr><td id='touricons'>"
	           +"<div id='touricons1' style='width:145px;float:left;'>"+pdf+"<img style='cursor:pointer;' src='/images/routenbeschreibung/Drucken.png' alt='Drucken' onclick='javascript:TourDrucken(theMap.arrTourDetails[1][0]);'  /><img  style='cursor:pointer;' src='/images/routenbeschreibung/Merken.png' onclick='AddMerkerlisteTour(theMap.arrTourDetails[1][0], theMap.arrTourDetails[1][1], theMap.arrTourDetails[1][2]);' alt='Tour merken' /><img style='cursor:pointer;' onclick='reloadSite()' src='/images/routenbeschreibung/Loeschen.png' alt='Alle Einstellungen verwerfen' /> </div>"
	           +"<div id='touricons2' style='width:145px;'><img style='cursor:pointer;' src='/images/routenbeschreibung/NurTour.png' alt='Nur Tour anzeigen' onclick='theMap.zeigeNurTour()' /><img style='cursor:pointer;' onclick='theMap.switchUnterkuenfte()' id='Unterkuenfte' src='/images/routenbeschreibung/Unterkuenfte2.png' alt='Unterkuenfte' /><img style='cursor:pointer;' onclick='theMap.switchAusflugsziele()'  id='Ausflugsziele' src='/images/routenbeschreibung/Ausflugsziele2.png' alt='Ausflugsziele' /><img style='cursor:pointer;' onclick='theMap.switchService()'  id='Service' src='/images/routenbeschreibung/Service2.png' alt='Service' /> </div>"
	           +"<br style='clear:both;'></td></tr>";
	           
	    
        //Das Bild zur Tour wird geladen
        sHTML += "<tr><td id='TourPic' style='height:120px' align='center'><img src='Bilder.aspx?tour=1&id="+TourId+"'></td></tr>";
	    
        //Die Tour-Beschreibung wird geladen
            sHTML += "<tr><td id='TourInfo' style='font-size:10px; font-family:Arial; color:rgb(190,100,40);'>" + arrTourId[TourId][3] + "</td></tr>";

        sHTML += "</table>";   
        objInhalt.innerHTML = sHTML;
        
        this.arrTourDetails[1][0] = TourId; 
        this.arrTourDetails[1][1] = sTourName; 
        this.arrTourDetails[1][2] = nKatId;
        
        document.getElementById("btnRouteDrucken").style.visibility = "hidden";
	    document.getElementById("btnRouteGPX").style.visibility = "hidden";
        
        document.getElementById("TourbeschreibungDynamisch").style.display = "block";
	 //   document.getElementById("btnTourBeschreibungMerken").style.visibility = "visible";
	 //   document.getElementById("btnTourBeschreibungDrucken").style.visibility = "visible";
	
	}
	
	var isAusflugsziele=true;
	var isUnterkuenfte=true;
	var isService=true;
	

	
	this.zeigeNurTour=function(){
	
	
	isAusflugsziele=false;
	isUnterkuenfte=false;
	isService=false;
	 
	  document.getElementById("Ausflugsziele").src="/images/routenbeschreibung/Ausflugsziele.png";
	  document.getElementById("Unterkuenfte").src="/images/routenbeschreibung/Unterkuenfte.png";
	  document.getElementById("Service").src="/images/routenbeschreibung/Service.png";
	     theMap.TourOrte=1;
	     theMap.checkTilesPoikatChange();
	}
	


	
	this.switchAusflugsziele=function(){
	    isAusflugsziele=!isAusflugsziele;
	    if(isAusflugsziele)
	        document.getElementById("Ausflugsziele").src="/images/routenbeschreibung/Ausflugsziele2.png";
	    else
	        document.getElementById("Ausflugsziele").src="/images/routenbeschreibung/Ausflugsziele.png";
	        theMap.TourOrte=1;
	    theMap.checkTilesPoikatChange();
	}
	
	this.switchUnterkuenfte=function(){
	    isUnterkuenfte=!isUnterkuenfte;
	
	    if(isUnterkuenfte)
	        document.getElementById("Unterkuenfte").src="/images/routenbeschreibung/Unterkuenfte2.png";
	    else
	        document.getElementById("Unterkuenfte").src="/images/routenbeschreibung/Unterkuenfte.png";
	        theMap.TourOrte=1;
	    theMap.checkTilesPoikatChange();
	}
	this.switchService=function(){
	isService=!isService;
	
	    if(isService)
	        document.getElementById("Service").src="/images/routenbeschreibung/Service2.png";
	    else
	        document.getElementById("Service").src="/images/routenbeschreibung/Service.png";
	        theMap.TourOrte=1;
	    theMap.checkTilesPoikatChange();
	}
	
	
	this.menueAusklappen = function(argUebergabe){
        var strMenueText = "<table cellpadding='0' cellspacing='0'><tr>";
        var strMenueZweig = "";
        var strTableLinks = "<td><table cellpadding='0' cellspacing='0'><colgroup><col width='15'><col width='0'><col width='15'><col width='329'></colgroup>";
        var strTableRechts = "<td><table cellpadding='0' cellspacing='0'><colgroup><col width='15'><col width='0'><col width='15'><col width='329'></colgroup>";
        var objLinks = document.getElementById("menueInhaltLinks");
        var objRechts = document.getElementById("menueInhaltRechts");
        
        var bLinks = false;
        var strUkatPic = "";
        var sPicture = "";
        var nAusKlappId = -1;
        var ukatZaehler = 0;
        var sCheckPicture = "";
         
        for(var i = 0; i<arrMenueKat.length; i++){
        
            if(arrMenueKat[i][0] == "hauptkat")
            {
                //Zwischen Links und Rechts wird unterschieden
                bLinks = !bLinks;
                strUkatPic = "";
                sPicture = "button_pfeil_mehr.png";
                sCheckPicture = "checkbox.png";
                nAusKlappId = arrMenueKat[i][1];
                
                //Es wird verglichen der Zweig aufgeklappt wird
                if(argUebergabe==arrMenueKat[i][1])
                {
                   sPicture = "button_pfeil_weniger.png";
                   nAusKlappId = -1;
                }
                
                //Das Picture fuer unterkategorien wird geladen
                if(arrMenueKat[i][3]=="ukat")
                    strUkatPic = "style='cursor:hand; cursor:pointer;' onclick='theMap.menueAusklappen(\""+nAusKlappId+"\");'><img src='mapcontrol/images/" + sPicture + "'";
                
                //Abfrage ob die Chekcbox geklickt worden ist
                if(arrMenueKat[i][4]==true)
                    sCheckPicture = "checkbox_1.png";
                            
                strMenueZweig ="<tr><td " + strUkatPic + " > </td><td><div class='MenueEbene2' style='cursor:hand; cursor:pointer;'  onclick='theMap.menueAusklappen(\""+arrMenueKat[i][1]+"\");'><img src='Bilder.aspx?icon=1&id=" + arrMenueKat[i][1] + "' alt='" + arrMenueKat[i][1] + "' title='"+arrMenueKat[i][2]+"'></div></td><td><div class='MenuePoiKatGewaehltAnzeige' style='background-image: url(../mapcontrol/images/" + sCheckPicture + ");' onclick='theMap.FirstKatRun = false;theMap.setPoiKat(\""+arrMenueKat[i][1]+"\", \""+argUebergabe+"\");'></div></td><td><div class='MenueText' style='cursor:hand; cursor:pointer;'  onclick='theMap.menueAusklappen(\""+arrMenueKat[i][1]+"\");'>"+arrMenueKat[i][2]+"</div></td></tr>";
                
                //Abbfrage ob der Zweig ausgeklappt wird
                if (nAusKlappId == -1)
                {
                    ukatZaehler = i;
                    do
                    {
                        ukatZaehler++;
                        sCheckPicture = "checkbox.png";
                        
                        //Abfrage ob die Chekcbox geklickt worden ist
                        if(arrMenueKat[ukatZaehler][4]==true)
                            sCheckPicture = "checkbox_1.png";
                    
                        strMenueZweig += "<tr><td> </td><td><div class='MenueEbene3' style='cursor:hand; cursor:pointer;'  onclick='theMap.menueAusklappen(\""+arrMenueKat[ukatZaehler][1]+"\");'><img src='Bilder.aspx?icon=1&id=" + arrMenueKat[ukatZaehler][1] + "' alt='" + arrMenueKat[ukatZaehler][1] + "' title='"+arrMenueKat[ukatZaehler][2]+"'></div></td><td><div class='MenuePoiKatGewaehltAnzeige' style='background-image: url(../mapcontrol/images/" + sCheckPicture + ");' onclick='theMap.FirstKatRun = false;theMap.setPoiKat(\""+arrMenueKat[ukatZaehler][1]+"\", \""+argUebergabe+"\");'></div></td><td><div class='MenueText' style='cursor:pointer;'  onclick='theMap.menueAusklappen(\""+arrMenueKat[ukatZaehler][1]+"\");'>"+arrMenueKat[ukatZaehler][2]+"</div></td></tr>";
                         
                        //Abfrage ob alle Elemente durchlaufen worden sind
                        if (ukatZaehler == arrMenueKat.length - 1)
                            break;
                    
                    }while(arrMenueKat[ukatZaehler + 1][0] == "unterkat");
                    i = ukatZaehler;
                }
                
                //Es wird auf den Linken und Rechten Zweig verteilt
                if(bLinks)
                    strTableLinks += strMenueZweig
                else
                    strTableRechts += strMenueZweig
            }
        }

        //Die Linke und Rechte Tabelle wird eingesetzt
        strTableLinks += "</table></td>";
        strTableRechts += "</table></td>";
        objLinks.innerHTML = strMenueText + strTableLinks + "</tr></table>";         
        objLinks.style.visibility="visible";
        objRechts.innerHTML = strMenueText + strTableRechts + "</tr></table>";         
        objRechts.style.visibility="visible";
    }
    
    this.updateEichung=function(){}

    this.getPos = function ( e )
    {
        var obj = e;

         var pos = { x: 0, y: 0 };

         if (typeof obj.offsetParent != 'undefined')
         {
           do
           {
             pos.x += obj.offsetLeft;
             pos.y += obj.offsetTop;
             obj = obj.offsetParent;
           }
           while (obj != null);
         }
         return pos;
    }
}

    function showPoiZuKategorie(argPoiKatId){
//        loadXMLDoc("./mapcontrol/ajax/GetPoiUebersicht.aspx?PoiKatId="+argPoiKatId+"&SpracheId=0");
    }
    
	function setSmallOverview()
	{
//		omX= 271.44056978382326;
//		omY=-265.95000331177988;
//		oL=3547929;
//		oU=5957566;
//		var mapoverview = document.getElementById("mapoverview");
//		mapoverview.style.backgroundImage="url('images/uebersichtskarte_map.gif')";
		updateUebersichtskarte();
	}

	function setLargeOverview()
	{
//		omX= 3592.9629;
//		omY=-2907.6212;
//		oL=3338362;
//		oU=6113751;
//		var mapoverview = document.getElementById("mapoverview");
//		mapoverview.style.backgroundImage="url('images/uebersichtskarte_map_gross.gif')";
//		updateUebersichtskarte();
	}


	
	
	// Setzt den Click-Mode fürs Routing
	//0=nix
	//1=Start
	//2=Ziel
	//3=Zwischenpunkt
	function setRoutingClickMode(mode)
	{
//		clickMode = mode;
	}
		
    // wenn in eine Tour geklickt wird
	function tourClicked(event)
    {
        // notwendig für IE
        
//        if (!event) event = window.event;
//        
//        var outerDiv = document.getElementById("outerDiv");
//        
//        var y = event.clientY-GetOffsetTop(outerDiv)+ScrollTop();
//		var x = event.clientX-GetOffsetLeft(outerDiv)+ScrollLeft();

//        var gc = theMap.TransformMousePosToGeoCoord(x,y);
//        if (clickMode == null)
//            return;
//        switch(clickMode)
//        {
//            case 1:
//				theMap.startPoint[0]=gc[0];
//				theMap.startPoint[1]=gc[1];
//                theMap.SetFixedPOIAt(gc[0],gc[1],"./images/start.gif","start.gif");
//                break;
//            case 2:
//				theMap.endPoint[0]=gc[0];
//				theMap.endPoint[1]=gc[1];
//                theMap.SetFixedPOIAt(gc[0],gc[1],"./images/ziel.gif","ziel.gif");
//                break;
//            case 3:
//                theMap.zwischenpunkte.push(gc);
//                theMap.SetFixedPOIAt(gc[0],gc[1],"./images/zwstop.gif","zwstop"+theMap.zwpCounter);
//                var liste = document.getElementById("zwliste");
//                var oOption = document.createElement("OPTION"); 
//                oOption.text=theMap.zwpCounter+". Zwischenpunkt"; 
//                oOption.value=gc; 
//                oOption.id=theMap.zwpCounter;
//                var FolgendeOption = null;
//                if (document.all)
//                    FolgendeOption = liste.length;
//                liste.add(oOption,FolgendeOption);                 
//                theMap.zwpCounter++;
//            break;
//        }
//       
//        setRoutingPic();
    }
    
    
    function setRoutingPic()
    {
//        var sImagePfad = "url('mapcontrol/images/button_auswahl-anzeigen.png')";
//        if ((theMap.startPoint[0]!= 0) && (theMap.endPoint[0]!= 0))
//            sImagePfad = "url('mapcontrol/images/button_auswahl-anzeigen.png')";

//        document.getElementById("btnStartRouting").style.backgroundImage = sImagePfad
    
    }
    
	// Startet das Routing
	function startRouting()
	{
//		if (theMap.startPoint[0] != 0)
//		{
//			var sx = theMap.startPoint[0];
//			var sy = theMap.startPoint[1];
//			if (theMap.endPoint[0] != 0)        
//			{
//				
//				//document.getElementById("ContainerTournavigation").style.backgroundImage = "url('images/routing.jpg')";
//				var ex = theMap.endPoint[0];
//				var ey = theMap.endPoint[1];
//				var url = "GetRoute.aspx?x="+theMap.links+"&y="+theMap.unten+"&w="+theMap.meterX+"&h="+theMap.meterY+"&tourId="+theMap.currentTour+"&sx="+sx+"&sy="+sy+"&ex="+ex+"&ey="+ey;
//                for (var i=0;i<theMap.zwischenpunkte.size();i++)
//                {
//                    url=url+"&zw"+i+"x="+theMap.zwischenpunkte.getAt(i)[0];
//                    url=url+"&zw"+i+"y="+theMap.zwischenpunkte.getAt(i)[1];
//                }
//				loadXMLDoc(url);
//			}
//			else
//			{
//				alert("Kein Ziel gesetzt!");
//			}
//		}
//		else
//		{
//			alert("Kein Startpunkt gesetzt!");
//		}
	}
	
	// Zeigt den Maßsstab an
	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("massstab").innerHTML="Stadtplan BHV";
////            dimm6.style.visibility = "visible";
////        }
////        else if(zoomlevel==1){
////            document.getElementById("massstab").innerHTML="1:20.000";
////            dimm5.style.visibility = "visible";
////        }
////        else if(zoomlevel==2){
////            document.getElementById("massstab").innerHTML="1:40.000";
////            dimm4.style.visibility = "visible";
////        }
////        else if(zoomlevel==3){
////            document.getElementById("massstab").innerHTML="1:80.000";
////            dimm3.style.visibility = "visible";
////        }
////        else if(zoomlevel==4){
////            document.getElementById("massstab").innerHTML="1:160.000";
////            dimm2.style.visibility = "visible";
////        }
////        else{
////            document.getElementById("massstab").innerHTML="1:320.000";
////            dimm1.style.visibility = "visible";
////        }
//        //document.getElementById("massstab").innerHTML = "1:"+GetMapObject(this.id).
//        document.getElementById('massstabAnzeige').innerHTML="Maßstab 1:"+this.ScaleMatchTab[this.zoomlevel];
//        setCopyright();        
//        try{
//            setTimeout('theMap.setFixedSucheAt(arrSucheGewaehlt, "pointer.gif")', 100);
//        }
//        catch(Exception){}
//        bMassstabGewaehlt = true;
	}
	
	function toggleMap(mapname, levels)
	{
//		theMap.center = getCenter();
//		theMap.map = mapname;
//		theMap.maxZoomLevel = levels;
//		theMap.zoomlevel=0;
//		theMap.toggleZoom();
//		theMap.updateEichung();
		//theMap.setMassstab(); // Dreieck verschieben, massstab benennen
	}

	
	function getMerkliste()
	{
	    var merkl = "";
//	    for (nI = 0; nI < arrMerkerliste.length; nI++)
//	        
//	        if (nI==0)
//	            merkl= arrMerkerliste[nI][20];
//	        else
//	            merkl+=merkl + ";" + arrMerkerliste[nI][20];
		
		return merkl;
	}
	
	// Verschiebt das Dreieck über den Zoom-Buttons
	function updateZoomAnzeige(){
		if(zoomlevel==0)
			document.getElementById("zoomAnzeige").style.left= "32px";
		else{
			document.getElementById("zoomAnzeige").style.left= (30 - (zoomlevel*Math.round((30/maxZoomLevel))))+"px";
		}
		
		// Zeigt den Pointer wenn eine Suche ausgeführt wurde
		try{
			if(arrSucheGewaehlt.length==2){
				setTimeout('setFixedSucheAt(arrSucheGewaehlt, "pointer.gif");', 1000);
			}
		}
		catch(Exception){}
	}    
		


