OpenLayers.Control.Identify = function() {}; // jsdoc parser workaround
OpenLayers.Control.Identify = OpenLayers.Class(OpenLayers.Control, {
	type: OpenLayers.Control.TYPE_TOOL,

	draw: function() {
        this.handler = new OpenLayers.Handler.Box( this,
                            {done: this.identifyBox}, {keyMask: this.keyMask} );
    },
    
    identifyBox: function(position) {
        
        var active_layers = [];
		var active_layer_ids = [];
        
		for (var i = 0; i < map.layers.length; i++) {
			var layer = map.layers[i];
			if (layer.CLASS_NAME == 'OpenLayers.Layer.WMS' && layer.getVisibility() && !layer.isBaseLayer) {
				active_layers[active_layers.length] = layer;
				active_layer_ids[active_layer_ids.length] = layer.id;
			}
		}
		
		if (active_layers.length == 0) {
			return; 
		}
        
        var params = {}; //request parameters
        params.layers = active_layer_ids;
	params.LEVEL = _active_level;
        
        if (position instanceof OpenLayers.Bounds) { //info about box
            var minXY = this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.left, position.bottom));
            var maxXY = this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.right, position.top));
                                           
            params.bounds = [minXY.lon, minXY.lat, maxXY.lon, maxXY.lat];
        } else { //pixel
            var minXY = this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.x-10, position.y-10))
            var maxXY = this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.x+10, position.y+10))
            
            params.bounds = [minXY.lon, minXY.lat, maxXY.lon, maxXY.lat];
        } 
        
        try {
			Ext.Ajax.request({
				url: '/geoweb/gui/identify/',
                params: params,
				scope: this,
				success: function(response, options) {
                    var json = Ext.util.JSON.decode(response.responseText);
                    
                    if (json.results) {
                        GUI.showComplexSearchResultsWindow(json.jsondata);
                    } else {
                       Ext.Msg.alert('jama','ei leidnud midagi'); 
                    }
                    
                    //var html = response.responseText;
	
					//this.resultTo.show();
					//this.resultTo.body.update(html);
				},
				failure: function(response, options) {
					Ext.MessageBox.show({
						title: 'Viga',
						msg: 'Päring ebaõnnestus',
						buttons: Ext.MessageBox.OK,
						icon: Ext.MessageBox.ERROR
					});
				}
			});
		}
		catch (ex) {
			Ext.MessageBox.show({
				title: 'Viga',
				msg: 'Päringul tekkis viga.',
				buttons: Ext.MessageBox.OK,
				icon: Ext.MessageBox.ERROR
			});
		}
    },

	CLASS_NAME: "OpenLayers.Control.Identify"
});

