visdat.initQuery = function (map, layerArray){
	
	var layerName;
	var request;
	var qryURL;

	for(var k = 0; k < layerArray.length; k++){
		
		if (layerArray[k][5] == true && layerArray[k][4] == true){
			layerName = layerArray[k][1];
			
			var allLayers = map.layers;
			var numLayers = map.getNumLayers(); 
			request = 'Klicken Sie für weitere Informationen in die Karte';
			
			if(layerArray[k][0]=='GML'){
						
				for(var i = 0; i < numLayers; i++){
					if(allLayers[i].name == layerName){
						// Hover Control
					    var hoverCtrl = new OpenLayers.Control.SelectFeature(map.getLayer(allLayers[i].id),
							{hover: true,
							id: 'hoverCtrl',
							highlightOnly: true
						});  
					    map.addControl(hoverCtrl); 
						hoverCtrl.activate(); 
								
					if(map.getControl('selectCtrl')){
						map.getLayer(allLayers[i].id).events.remove('featureselected');	
						map.getControl('selectCtrl').deactivate(); 
						map.removeControl(map.getControl('selectCtrl'));
					}		    	
						// Select Control
						var selectCtrl = new OpenLayers.Control.SelectFeature(map.getLayer(allLayers[i].id),
							{clickout: false, 
							id: 'selectCtrl',
							hover: false
						});  
						
						map.addControl(selectCtrl); 
						selectCtrl.activate(); 					
						
						map.getLayer(allLayers[i].id).events.on({
				        	featureselected: function(e) {
				        		//Aufruf der nutzerspezifischen Funktion createHtml
				        		request = visdat.createHtml(e, layerName, qryURL);
				        
				        // 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: request, border: false}]
					  		});
					  		Ext.getCmp('queryWindow').doLayout();
					  	};
				        		
				            }
				        	
				        });
	
					}
			
				}
			}

			if(layerArray[k][0]=='WMS'){
				
				for(var i = 0; i < numLayers; i++){
					if(allLayers[i].name == layerName){	
						var layerId = allLayers[i].id;
										
						map.events.register('click',map,function(e){
							var ll = new OpenLayers.Pixel(e.xy.x-1,e.xy.y+1);
							var ur = new OpenLayers.Pixel(e.xy.x+1,e.xy.y-1); 	
							var mapll = map.getLonLatFromPixel(ll);
							var mapur = map.getLonLatFromPixel(ur);
							var proj2 = new OpenLayers.Projection("EPSG:31468");
							mapll.transform(map.getProjectionObject(), proj2);
							mapur.transform(map.getProjectionObject(), proj2);
							
							// Abfrage von Feature aus der GML Datei auf Grundlage der BoundingBox 
								qryURL = map.getLayer(layerId).getFullRequestString({
								REQUEST: "GetFeature",
								EXCEPTIONS: "application/vnd.ogc.se_xml",
								BBOX: new OpenLayers.Bounds(mapll.lon,mapll.lat,mapur.lon,mapur.lat).toBBOX(),
								X: e.xy.x,
								Y: e.xy.y,
								INFO_FORMAT: 'text/html',
								QUERY_LAYERS: map.getLayer(layerId).params.LAYERS,
								WIDTH: map.getLayer(layerId).map.size.w,
								HEIGHT: map.getLayer(layerId).map.size.h,
								VERSION: '1.0.0',
								SERVICE : 'WFS',
								TYPENAME: map.getLayer(layerId).params.LAYERS
							});	
							//Aufruf der nutzerspezifischen Funktion createHtml
							request = visdat.createHtml(null, layerName, qryURL);	
							
						});
					}		
				}
			}
		}
	}
	return request;
}

visdat.showQuery = function (map, layerArray){
	
if(map.getControl('hoverCtrl1')){
	map.getControl('hoverCtrl1').deactivate();
	map.getControl('hoverCtrl1').unselectAll();
}
	
//Abfragefenster


	if(!Ext.getCmp('queryWindow')){
			var win; 
			if(!win){ 
				win = new Ext.Window({
					id: 'queryWindow',
		            layout: 'fit',
		            title: 'Abfragefenster',
		            sizeable: true,
		            resizable: false,
		            width:300,
		            height:334,
		            x: 50,
		       		items: [{html: visdat.initQuery(map, layerArray)}]
				});
				
				
			};
		}
		else {
			var win = Ext.getCmp('queryWindow');
			win.doLayout();
		};

		win.on('close', function() {
	   		Ext.getCmp('query-btn').toggle(); 
	   		
	   		if(map.getControl('hoverCtrl')){
		   		map.getControl('hoverCtrl').deactivate();
		   		map.getControl('hoverCtrl').unselectAll();
		   		map.removeControl(map.getControl('hoverCtrl'));
		   		map.getControl('hoverCtrl1').activate();
	   		};
	   		

		});

		win.show(this);
};
