﻿/*
function getItemsTabPesquisa1(){

    // pluggable renders
    function renderTopic(value, cell, rec, rowIndex, colIndex, ds){
        var str = String.format('{0}', value);
        if(cell.id!=undefined){
            var tipo = "WMS";
            if(ds.baseParams && ds.baseParams.tipoPesq && (ds.baseParams.tipoPesq == "P")){ // significa que é 1 tema
                tipo = "WFS";
            }else{
                if(rec.json.xmin==rec.json.xmax && rec.json.ymin==rec.json.ymax){
                    tipo = "WFS";
                }
            }
            // OpenLayers.i18n("Zoom to Element")
            str = String.format('<P CLASS="zoomToFeature" TITLE="{0}" ONCLICK="zoomToFeature(\'{1}\',\'{2}\',\'{3}\',\'{4}\',\'{5}\',\'{6}\',\'{7}\',\'{8}\',\'{9}\',\'{10}\')" ><LEFT><IMAGE ALIGN="LEFT" VALIGN="MIDDLE" SRC="images/mapa/ZoomToFeature.gif"><B>&nbsp;{11}</B><LEFT></P>',
                    value ,rec.json.xmin,rec.json.ymin,rec.json.xmax,rec.json.ymax,rec.json.datum,rec.json.filterTable,rec.json.filterColumn,rec.json.filterValue,rec.json.tipoid,tipo, value);
        }                        
        return str;
    }
    
    function renderLast(value, p, r){
        return String.format('{0}', value);
    }
    
    function toggleDetails(btn, pressed){
        var view = grid.getView();
        view.showPreview = pressed;
        view.refresh();
    }
    
    // PESQUISA LUGARES
    var pesquisaL = Ext.data.Record.create([
            {name:"rank", mapping:"rank"},
            {name:"id", mapping:"objectid"},
            {name:"tipoid", mapping:"tipoid"},
            {name:"nome", mapping:"designacao"},
            {name:"freguesia", mapping:"freguesia"},
            {name:"concelho", mapping:"concelho"},
            {name:"filterTable", mapping:"filterTable"},
            {name:"filterColumn", mapping:"filterColumn"},
            {name:"filterValue", mapping:"filterValue"},
            {name:"xmin", mapping:"xmin"},
            {name:"ymin", mapping:"ymin"},
            {name:"xmax", mapping:"xmax"},
            {name:"ymax", mapping:"ymax"},
            {name:"datum", mapping:"datum"}
        ]);


    var pesquisaReaderL = new Ext.data.JsonReader({
                    totalProperty: "totalRegistos",
                    root: "listaPesquisa",
				    id: 'id'
			    }, pesquisaL);

    var pesquisaDSL = new Ext.data.GroupingStore({
        proxy: new Ext.data.HttpProxy({
	        method: 'POST',
	        scope: this,
	        //jsonData: "{'query': 'la','sort':'','dir':''}", 
	        jsonData: "{}", 
	        url: 'GeocidMadeira.asmx/getResultadosPesquisa'
	    }),
	    baseParams: {'tipoPesq': 'L','appID': app.appID , 'queryAll': app.queryAll},
	    reader: pesquisaReaderL,
	    remoteSort: true,
        sortInfo:{field: 'designacao', direction: "ASC"},
        groupField:'freguesia'
    });
    pesquisaDSL.setDefaultSort('designacao', 'desc');
    
    var searchBoxL = new Ext.app.SearchField({
                store: pesquisaDSL,
                width:177,
                paramName: 'query'
            });

                    
    pesquisaDSL.on( 'beforeload', function() {
        removeLayerHighlight(); 
        var params = this.store.baseParams
        var jsonData = "{";
        for (var k in params) {
            jsonData += "'"+k+"':'"+params[k]+"',"
        }
        if(jsonData.length>1){
            jsonData = jsonData.substring(0,jsonData.length-1);
        }    
        jsonData += "}";
        this.store.proxy.conn.jsonData = jsonData;
    }, searchBoxL);
    
    var cmL = new Ext.grid.ColumnModel([{
           id: 'nome',
           header: "Nome",
           dataIndex: 'nome',
           width: 100,
           hidden: false,
           sortable: true,
           renderer: renderTopic
        },{
           id: 'freguesia',
           header: "Freguesia",
           dataIndex: 'freguesia',
           width: 100,
           align: 'center',
           sortable: true,
           hidden: false
        }]);
    
    cmL.defaultSortable = true;

    var pesquisaLugaresTab = new Ext.grid.GridPanel({
        title: OpenLayers.i18n("Places"),
        collapsed: true,
        frame:true,
        fitToFrame: true,
        store: pesquisaDSL,
        cm: cmL,
        trackMouseOver:true,
        sm: new Ext.grid.RowSelectionModel({selectRow:Ext.emptyFn}),
        loadMask: true,
        autoExpandColumn: 'nome',
        viewConfig: {
            forceFit:true,
            enableRowBody:false
            //showPreview:true
        },
        view: new Ext.grid.GroupingView({
            forceFit:true,
            enableRowBody: false,
            enableGroupingMenu: true,
            startCollapsed: true,
            groupTextTpl: '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'
        }),
        tbar: [
            OpenLayers.i18n("Search: ")
            , ' '
            ,searchBoxL 
        ],
        bbar: new Ext.PagingToolbar({
            pageSize: 10,
            store: pesquisaDSL,
            displayInfo: false
        })        
    });
    
    
    // pesquisa por classes de espaço
    var pesquisaC = Ext.data.Record.create([
            {name:"id", mapping:"objectid"},
            {name:"nome", mapping:"designacao"},
            {name:"tipoid", mapping:"tipoid"},
            {name:"filterTable", mapping:"filterTable"},
            {name:"filterColumn", mapping:"filterColumn"},
            {name:"filterValue", mapping:"filterValue"},
            {name:"xmin", mapping:"xmin"},
            {name:"ymin", mapping:"ymin"},
            {name:"xmax", mapping:"xmax"},
            {name:"ymax", mapping:"ymax"},
            {name:"datum", mapping:"datum"}
        ]);


    var pesquisaReaderC = new Ext.data.JsonReader({
                    totalProperty: "totalRegistos",
                    root: "listaPesquisa",
				    id: 'id'
			    }, pesquisaC);

    var pesquisaDSC = new Ext.data.GroupingStore({
        proxy: new Ext.data.HttpProxy({
	        method: 'POST',
	        scope: this,
	        //jsonData: "{'query': 'la','sort':'','dir':''}", 
	        jsonData: "{}", 
	        url: 'GeocidMadeira.asmx/getClassesEspaco'
	    }),
	    baseParams: {'appID': app.appID},
	    reader: pesquisaReaderC,
	    remoteSort: true,
        sortInfo:{field: 'designacao', direction: "ASC"}
    });
    pesquisaDSC.setDefaultSort('designacao', 'desc');
    
    
    var cmC = new Ext.grid.ColumnModel([{
           id: 'nome',
           header: "Nome",
           dataIndex: 'nome',
           width: 100,
           hidden: false,
           sortable: true,
           renderer: renderTopic
        }]);
    
    cmC.defaultSortable = true;

    // combobox
    var classeEspaco = Ext.data.Record.create([
        {name:"nome", mapping:"designacao"}
    ]);


    var classeEspacoReader = new Ext.data.JsonReader({
                totalProperty: "totalRegistos",
                root: "listaClassesEspacos",
		        id: 'nome'
	        }, classeEspaco);

    var classeEspacoDS = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            method: 'POST',
            scope: this,
            jsonData: "{}", 
            url: 'GeocidMadeira.asmx/getNomeClassesEspaco'
        }),
        baseParams: {'appID': app.appID},
        reader: classeEspacoReader,
        remoteSort: false
    });

    var classeEspacoCombobox = new Ext.form.ComboBox({
        id:'cd_classeEspaco',
        name: 'cd_classeEspaco',
        //fieldLabel: OpenLayers.i18n('classesEspaco.classes'),
        store: classeEspacoDS,
        mode: 'remote',
        displayField: 'nome',
        typeAhead: true,
        valueField: 'nome',
        hiddenName : 'nome',
        emptyText: OpenLayers.i18n('classesEspaco.emptyFieldClasses'),
        selectOnFocus:true,
        forceSelection: true,
        allowBlank: false,
        editable: false,
        triggerAction: 'all',
        blankText: OpenLayers.i18n('classesEspaco.invalidText'),
        listeners: {
                'select': {
                    fn: function(combo, record, index) {
                        var classeEspaco = combo.getValue();
                        if(classeEspaco!=''){
                            var itemTarget = Ext.getCmp('tab_classesespaco');
                            if(itemTarget)
                                itemTarget.store.reload();
                        }
                                               
                    },
                    scope: this
                }
            }
    });
    
    classeEspacoDS.on( 'beforeload', function() {
        var params = this.store.baseParams
        var jsonData = "{";
        for (var k in params) {
            if(params[k]!="")
                jsonData += "'"+k+"':'"+params[k]+"',"
        }
        if(jsonData.length>1){
            jsonData = jsonData.substring(0,jsonData.length-1);
        }    
        jsonData += "}";
        this.store.proxy.conn.jsonData = jsonData;
    }, classeEspacoCombobox);
        
    var tb = new Ext.Toolbar({
         columns: 3
        ,colspan: false
        ,items : [
            OpenLayers.i18n('classesEspaco.classesLabel')
            , ' '
            ,classeEspacoCombobox
        ]
    });
    
    var pesquisaClassesEspacoTab = new Ext.grid.GridPanel({
        title: OpenLayers.i18n("classesEspaco.classes"),
        id: 'tab_classesespaco',
        name: 'tab_classesespaco',
        collapsed: true,
        frame:true,
        fitToFrame: true,
        store: pesquisaDSC,
        cm: cmC,
        trackMouseOver:true,
        sm: new Ext.grid.RowSelectionModel({selectRow:Ext.emptyFn}),
        loadMask: true,
        autoExpandColumn: 'nome',
        viewConfig: {
            forceFit:true,
            enableRowBody:false
            //showPreview:true
        },
        view: new Ext.grid.GroupingView({
            forceFit:true,
            enableRowBody: false,
            enableGroupingMenu: true,
            startCollapsed: true,
            groupTextTpl: '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'
        }),
        tbar: tb,
        bbar: new Ext.PagingToolbar({
            pageSize: 10,
            store: pesquisaDSC,
            displayInfo: false
        })        
    });

    pesquisaDSC.on( 'beforeload', function() {
        var params = this.store.baseParams
        var jsonData = "{";
        for (var k in params) {
            if(params[k]!="")
                jsonData += "'"+k+"':'"+params[k]+"',";
        }
        
        jsonData += "'classesEspaco':'" + Ext.getCmp('cd_classeEspaco').getValue()+"'";
        
        if(jsonData.length>1 && (jsonData.lastIndexOf(',')==jsonData.length-1)){
            jsonData = jsonData.substring(0,jsonData.length-1);
        }    
        jsonData += "}";
        this.store.proxy.conn.jsonData = jsonData;
    }, pesquisaClassesEspacoTab);

    // PESQUISA RUAS
    var pesquisaR = Ext.data.Record.create([
            {name:"rank", mapping:"rank"},
            {name:"id", mapping:"objectid"},
            {name:"tipoid", mapping:"tipoid"},
            {name:"nome", mapping:"designacao"},
            {name:"freguesia", mapping:"freguesia"},
            {name:"filterTable", mapping:"filterTable"},
            {name:"filterColumn", mapping:"filterColumn"},
            {name:"filterValue", mapping:"filterValue"},
            {name:"xmin", mapping:"xmin"},
            {name:"ymin", mapping:"ymin"},
            {name:"xmax", mapping:"xmax"},
            {name:"ymax", mapping:"ymax"},
            {name:"datum", mapping:"datum"}
        ]);


    var pesquisaReaderR = new Ext.data.JsonReader({
                    totalProperty: "totalRegistos",
                    root: "listaPesquisa",
				    id: 'id'
			    }, pesquisaR);

    var pesquisaDSR = new Ext.data.GroupingStore({
        proxy: new Ext.data.HttpProxy({
	        method: 'POST',
	        scope: this,
	        //jsonData: "{'query': '','sort':'','dir':''}", 
	        jsonData: "{}", 
	        url: 'GeocidMadeira.asmx/getResultadosPesquisa'
	    }),
	    baseParams: {'tipoPesq': 'R','appID': app.appID , 'queryAll': app.queryAll},
	    reader: pesquisaReaderR,
	    remoteSort: true,
        sortInfo:{field: 'designacao', direction: "DESC"},
        groupField:'freguesia'
    });
    pesquisaDSL.setDefaultSort('designacao', 'DESC');
    
    var searchBoxR = new Ext.app.SearchField({
                store: pesquisaDSR,
                width:177,
                paramName: 'query'
            });

                    
    pesquisaDSR.on( 'beforeload', function() {
        removeLayerHighlight(); 
        var params = this.store.baseParams
        var jsonData = "{";
        for (var k in params) {
            jsonData += "'"+k+"':'"+params[k]+"',"
        }
        if(jsonData.length>1){
            jsonData = jsonData.substring(0,jsonData.length-1);
        }    
        jsonData += "}";
        this.store.proxy.conn.jsonData = jsonData;
    }, searchBoxR);
    
    var cmR = new Ext.grid.ColumnModel([{
           id: 'nome', // id assigned so we can apply custom css (e.g. .x-grid-col-topic b { color:#333 })
           header: "Nome",
           dataIndex: 'nome',
           width: 100,
           hidden: false,
           renderer: renderTopic
        },{
           id: 'freguesia',
           header: "Freguesia",
           dataIndex: 'freguesia',
           width: 70,
           hidden: false,
           align: 'center',
           renderer: renderLast
    }]);
    
    cmR.defaultSortable = true;

    var tb = new Ext.Toolbar({
         columns: 3
        ,colspan: true
        ,items : [
            OpenLayers.i18n("Search: ")
            , ' '
            ,searchBoxR 
            ,'* ex: Avenida Marginal, 20'
        ]
    });

    var pesquisaRuasTab = new Ext.grid.GridPanel({
        title: OpenLayers.i18n("Addresses"),
        collapsed: true,
        frame:true,
        fitToFrame: true,
        store: pesquisaDSR,
        cm: cmR,
        trackMouseOver:true,
        sm: new Ext.grid.RowSelectionModel({selectRow:Ext.emptyFn}),
        loadMask: true,
        autoExpandColumn: 'nome',
        viewConfig: {
            forceFit:true,
            enableRowBody:true,
            showPreview:true
        },
        view: new Ext.grid.GroupingView({
            forceFit:true,
            startCollapsed: true
        }),
        tbar: tb,
        bbar: new Ext.PagingToolbar({
            pageSize: 10,
            store: pesquisaDSR,
            displayInfo: false
        })        
    });
    
    // PESQUISA CADASTRO RUSTICO
    var pesquisaCR = Ext.data.Record.create([
            {name:"id", mapping:"objectid"},
            {name:"tipoid", mapping:"tipoid"},
            {name:"nome", mapping:"designacao"},
            {name:"rua", mapping:"rua"},
            {name:"freguesia", mapping:"freguesia"},
            {name:"filterTable", mapping:"filterTable"},
            {name:"filterColumn", mapping:"filterColumn"},
            {name:"filterValue", mapping:"filterValue"},
            {name:"xmin", mapping:"xmin"},
            {name:"ymin", mapping:"ymin"},
            {name:"xmax", mapping:"xmax"},
            {name:"ymax", mapping:"ymax"},
            {name:"datum", mapping:"datum"}
        ]);


    var pesquisaReaderCR = new Ext.data.JsonReader({
                    totalProperty: "totalRegistos",
                    root: "listaPesquisa",
				    id: 'id'
			    }, pesquisaCR);

    var pesquisaDSCR = new Ext.data.GroupingStore({
        proxy: new Ext.data.HttpProxy({
	        method: 'POST',
	        scope: this,
	        //jsonData: "{'query': 'la','sort':'','dir':''}", 
	        jsonData: "{}", 
	        url: 'GeocidMadeira.asmx/getCadastroRusticoPesquisa'
	    }),
	    baseParams: {'appID': app.appID},
	    reader: pesquisaReaderCR,
	    remoteSort: true,
        sortInfo:{field: 'designacao', direction: "ASC"},
        groupField:'freguesia'
    });
    pesquisaDSCR.setDefaultSort('designacao', 'desc');
    
     var boxFolha = new Ext.form.NumberField({
            fieldLabel: OpenLayers.i18n('cadastrorustico.folha'),
            name: 'box_folha',
            id: 'box_folha',
            paramName: 'folha',
            blankText: OpenLayers.i18n('cadastrorustico.blankText'),
            msgTarget: 'side',
            //value: 123456789,
            //validateOnBlur: false,
            allowDecimals: false,
            allowNegative: false,
            minLength: 1,
            maxLength: 5, 
            width: 50,
            maxLengthText: OpenLayers.i18n('cadastrorustico.folha.invalidText'), 
            minLengthText: OpenLayers.i18n('cadastrorustico.folha.invalidText'),
            invalidText: OpenLayers.i18n('cadastrorustico.folha.invalidText')
        }); 
        
    var searchBoxCR = new Ext.app.SearchNumberField({
                store: pesquisaDSCR,
                paramName: 'predio',
                members: [boxFolha],
                blankText: OpenLayers.i18n('cadastrorustico.blankText'),
                msgTarget: 'side',
                allowDecimals: false,
                allowNegative: false,
                minLength: 1,
                maxLength: 5, 
                width: 60,
                maxLengthText: OpenLayers.i18n('cadastrorustico.predio.invalidText'), 
                minLengthText: OpenLayers.i18n('cadastrorustico.predio.invalidText'),
                invalidText: OpenLayers.i18n('cadastrorustico.predio.invalidText')
            });
            

    var tb = new Ext.Toolbar({
         columns: 6
        ,colspan: false
        ,items : [
            OpenLayers.i18n('cadastrorustico.folha')
            ,boxFolha
            , ' '
            ,OpenLayers.i18n('cadastrorustico.predio')
            , ' '
            ,searchBoxCR
        ]
    });
                    
    pesquisaDSCR.on( 'beforeload', function() {
        removeLayerHighlight(); 
        var params = this.store.baseParams
        var jsonData = "{";
        for (var k in params) {
            jsonData += "'"+k+"':'"+params[k]+"',"
        }
        jsonData += "'" + Ext.getCmp('box_folha').paramName + "':'" + Ext.getCmp('box_folha').getValue()+"'";
        
        if(jsonData.length>1 && (jsonData.lastIndexOf(',')==jsonData.length-1)){
            jsonData = jsonData.substring(0,jsonData.length-1);
        }      
        jsonData += "}";
        this.store.proxy.conn.jsonData = jsonData;
    }, searchBoxCR);
    
    var cmCR = new Ext.grid.ColumnModel([{
           id: 'nome',
           header: "Nome",
           dataIndex: 'nome',
           width: 100,
           hidden: false,
           sortable: true,
           renderer: renderTopic
        },{
           id: 'rua',
           header: "Rua",
           dataIndex: 'rua',
           width: 100,
           align: 'center',
           sortable: true,
           hidden: false
        },{
           id: 'freguesia',
           header: "Freguesia",
           dataIndex: 'freguesia',
           width: 100,
           align: 'center',
           sortable: true,
           hidden: true
        }]);
    
    cmCR.defaultSortable = true;

    var pesquisaCadastroRusticoTab = new Ext.grid.GridPanel({
        title: OpenLayers.i18n("cadastrorustico.title"),
        collapsed: true,
        frame:true,
        fitToFrame: true,
        store: pesquisaDSCR,
        cm: cmCR,
        trackMouseOver:true,
        sm: new Ext.grid.RowSelectionModel({selectRow:Ext.emptyFn}),
        loadMask: true,
        autoExpandColumn: 'nome',
        viewConfig: {
            forceFit:true,
            enableRowBody:false
            //showPreview:true
        },
        view: new Ext.grid.GroupingView({
            forceFit:true,
            enableRowBody: false,
            enableGroupingMenu: true,
            startCollapsed: true,
            groupTextTpl: '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'
        }),
        tbar: tb,
        bbar: new Ext.PagingToolbar({
            pageSize: 10,
            store: pesquisaDSCR,
            displayInfo: false
        })        
    });
    
    return [pesquisaLugaresTab, pesquisaRuasTab, pesquisaClassesEspacoTab, pesquisaCadastroRusticoTab];
}

Ext.override(Ext.Toolbar, {
    nextBlock : function(){
        var td = document.createElement("td");

//     If we've filled the row, add a new one.
        if (this.columns && (this.tr.cells.length == this.columns)) {
            this.tr = document.createElement("tr");
            var tbody = this.el.child("tbody", true);
            tbody.appendChild(this.tr);
            td.setAttribute('colspan', this.columns);
            td.colSpan = this.columns;  // IE
        }
        this.tr.appendChild(td);
        return td;
    }
});
*/

function getItemsTabPesquisa(){
    return [getTabPesquisaLugares(), getTabPesquisaRuasMoradas(), getTabPesquisaClassesEspaco(), getTabPesquisaCadastroRustico()];
}