visdat.showLayerTree = function(layertree, layerArray){

	// Fenster öffnen
	// Prüfen, ob Fenster schon geöffnet
	if(!Ext.getCmp('layertreeWindow')){
	
		var win; 
		if(!win){ 
			win = new Ext.Window({
				id: 'layertreeWindow',
	            //layout: 'fit',
	            title: 'Themenauswahl',
	            sizeable: true,
	            width:300,
	            height:250,
	            border: false,
	            hideMode: 'visibility',
	            autoScroll: true,
	            closable: true,
	            //cls: 'querywindow',
	            items: {border: false, autoScroll: true}
			});
			
		var c = Ext.getCmp('layertreeWindow');
        if (c.items.items.length) {
    		c.remove(c.items.items[0]);
		};
		c.add({items: layertree});
		c.doLayout();
			
		}; 
				
	}else {
		var win = Ext.getCmp('layertreeWindow');
		win.doLayout();
	};
	
	win.on('close', function() {
		if(Ext.getCmp('layer-btn')){
			if(Ext.getCmp('layer-btn').pressed == true){
				Ext.getCmp('layer-btn').toggle();
			}
		}
	});

	win.on('destroy', function() {
	
		if(Ext.getCmp('layer-btn')){
			if(Ext.getCmp('layer-btn').pressed == true){
		   		Ext.getCmp('layer-btn').toggle();
		   	}
		}
	});
	
	if(Ext.getCmp('layer-btn').pressed == true){
		win.show(this);
	};
	
	/*function buildCheckbox(layerArray){
		
			for (var z = 1; z<layerArray.length; z++){
			var checkId = layerArray[z][1];
			
			Ext.getDom(checkId).setAttribute('type','checkbox');
			//alert(Ext.getDom('ext-gen56'));
			
			//Ext.getDom(checkId).style.type ='checkbox';
		//var r = this.el.up('.x-column-inner').child('input[name=' + this.el.dom.name + '][value=' + v + ']', true);

		}//alert( Ext.getCmp('layertree').el.up('.x-column-inner').child('input[name=tk100][]', true)); 
		//Ext.getDom('tk100').getEl().dom.setAttribute('type','checkbox');
		//alert(Ext.get.getElementsByTagName("INPUT")['tk100']); 
		
	}
		Ext.getCmp('layertreeWindow').addListener('afterrender', buildCheckbox(layerArray));
		*/
		
		
	//ersten aktiven Layer im Layertree hervorheben
	for(var z=0; z<layerArray.length; z++){ 
 	 	if (layerArray[z][5] == true){
		 	var nodes = layertree.root.eachChild(function(currentNode){
				
				 		if(currentNode.id == layerArray[z][1]){
				 					 			
		 					currentNode.getUI().addClass('node_sel');
		 					//currentNode.getUI().getIconEl().className = 'queryicon_small';
		 				}
		 	});
		}
 	}
	
};




visdat.buildLayerTree = function (map, treemodel, layerArray){

	
	var layertree = new mapfish.widgets.LayerTree({
	  rootVisible: false,
	  id: 'layertree',
	  map: map,
	  border: false,
	  bodyBorder: false,
	  autoScroll: true,
	  model: treemodel,
	  listeners: {    
	   	checkchange: function(n){
		
	   	if(n.id != 'eisdielen'){
		 var nodes = this.root.eachChild(function(currentNode){
			  if(currentNode.id!=n.id && currentNode.id!='eisdielen'){
			  	currentNode.attributes.checked = false;
			  }
 
		   })
	   	};
  		
	  		
						// Aktualisierung Legende
						if(Ext.getCmp('legendWindow')){
					  		if (Ext.getCmp('legendWindow').items.items.length) {
							    Ext.getCmp('legendWindow').remove(Ext.getCmp('legendWindow').items.items[0]);
							}; 
							Ext.getCmp('legendWindow').add({
								items:[{html: visdat.buildLegendPanel(layerArray, layertree)}]
					  		});
					  		Ext.getCmp('legendWindow').doLayout();
					  	}
					  						  	
	   	},

   		click: function(t){
   		
				var activeLayerId = t.attributes.id;
			   		for(var i = 0; i < layerArray.length; i++){
				    	layerArray[i][5] = false;
				    	var layerName = layerArray[i][1];
				    	if (layerName == activeLayerId){
				    		layerArray[i][5] = true;
				    		if (layerArray[i][4] == true){

				    			
				    			 var nodes = this.root.eachChild(function(currentNode){
				    			 				    			  		
				    			  		currentNode.getUI().addClass('node_unsel');
				    			  		if(currentNode.getUI().getIconEl()) {
				    			  			currentNode.getUI().getIconEl().className = 'queryicon_small_hide';
				    			  		}
				    			});

				    	
				    			
				    		/*	alert(this.root.eachChild(function(currentNode){
				    			  currentNode.id}));*/
				    		
								t.getUI().removeClass('node_unsel');
								t.getUI().addClass('node_sel');
				    			t.getUI().getIconEl().className = 'queryicon_small';
				    	

				    		}
				    	
				    	}
			    	};

				if(map.getControl('hoverCtrl')){
					map.getControl('hoverCtrl').deactivate();
		   			map.getControl('hoverCtrl').unselectAll();
					map.removeControl(map.getControl('hoverCtrl'));
				};
				
				var allLayers = map.layers;
				var numLayers = map.getNumLayers(); 
			
				
				for(i = 0; i < numLayers; i++){
				
							
				if(map.getControl('selectCtrl')){
					map.getLayer(allLayers[i].id).events.remove('featureselected');	
					map.getControl('selectCtrl').deactivate(); 
					map.removeControl(map.getControl('selectCtrl'));
				}
				}
			
						// Aktualisierung Abfragefenster
						if(Ext.getCmp('queryWindow')){
					  		if (Ext.getCmp('queryWindow').items.items.length) {
							    Ext.getCmp('queryWindow').remove(Ext.getCmp('queryWindow').items.items[0]);
							}; 
							Ext.getCmp('queryWindow').add({
								items:[{html: visdat.initQuery(map, layerArray), border: false}]
					  		});
					  		Ext.getCmp('queryWindow').doLayout();
					  	};
			
				  	
					  	if(Ext.getCmp('attributeWin')){
					  		initAttributetable(map, layerArray);
						
					  	}

   				},
   				expandnode: function(t){
   					
   					for(var i =0; i < t.childNodes.length; i++){
  				
						if(t.childNodes[i].parentNode.id!='source'){ 
	   						
	   						for(var z = 0; z < layerArray.length; z++){
	   							if((t.childNodes[i].id == layerArray[z][1]) && layerArray[z][7]==true){
	   								Ext.getDom(t.childNodes[i].id).setAttribute('type','checkbox');
	   							}
	   						}
						}
   					}
   				}
		}
		
	 });
	 
	if (Ext.getCmp('layer-btn')){
		visdat.showLayerTree(layertree, layerArray);
	};

	
	return layertree;
};





