﻿/// <reference path="ImageButton.js" />

Ext.onReady(function() {
    Ext.QuickTips.init();
    Ext.form.Field.prototype.msgTarget = 'qtip';

    var stoTpNegociacao = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url: 'data_restore.aspx?id=cmbNegociacao'
        }),
        reader: new Ext.data.JsonReader({
            id: 'id_tp_negociacao',
            fields: ['id_tp_negociacao', 'nome']
        })
    });

    var stoTpImovel = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url: 'data_restore.aspx?id=cmbImovel'
        }),
        reader: new Ext.data.JsonReader({
            id: 'id_tp_imovel',
            fields: ['id_tp_imovel', 'nome']
        })
    });

    var stoCidade = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url: 'data_restore.aspx?id=cmbCidade'
        }),
        reader: new Ext.data.JsonReader({
            id: 'id_cidade',
            fields: ['id_cidade', 'nome']
        })
    });    

    var stoBairro = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url: 'data_restore.aspx?id=cmbBairro'
        }),
        reader: new Ext.data.JsonReader({
            id: 'id_bairro',
            fields: ['id_bairro', 'id_cidade', 'nome']
        })
    });

    var CarregaValorMinimo = new Ext.data.SimpleStore({
        fields: ['ValorValorMinimo', 'NomeValorMinimo'],
        data: Ext.DataValorMinimo.ValorMinimo
    });

    var CarregaValorMaximo = new Ext.data.SimpleStore({
        fields: ['ValorValorMaximo', 'NomeValorMaximo'],
        data: Ext.DataValorMaximo.ValorMaximo
    });

    var CarregaDormitorios = new Ext.data.SimpleStore({
        fields: ['ValorDormitorios', 'NomeDormitorios'],
        data: Ext.DataDormitorios.Dormitorios
    });

    var hidIdCidade = new Ext.form.Hidden({
        id: 'hidIdCidade'
    });

    var hidIdBairro = new Ext.form.Hidden({
        id: 'hidIdBairro'
    });

    var cmbTpNegociacao = new Ext.form.ComboBox({
        id: 'cmbTpNegociacao',
        store: stoTpNegociacao,
        width: 155,
        labelSeparator: '',
        displayField: 'nome',
        valueField: 'id_tp_negociacao',
        mode: 'remote',
        triggerAction: 'all',
        typeAhead: true,
        forceSelection: true,
        selectOnFocus: true,
        lazyRender: true,
        editable: false,
        listWidth: 155,
        cls: 'dllAjustaTexto',
        listClass: 'dllAjustaTexto',
        emptyText: 'Locação/Venda',
        tabIndex: 3
    });

    var cmbTpImovel = new Ext.form.ComboBox({
        id: 'cmbTpImovel',
        store: stoTpImovel,
        width: 155,
        labelSeparator: '',
        displayField: 'nome',
        valueField: 'id_tp_imovel',
        mode: 'remote',
        triggerAction: 'all',
        typeAhead: true,
        forceSelection: true,
        selectOnFocus: true,
        lazyRender: true,
        editable: false,
        listWidth: 155,
        cls: 'dllAjustaTexto',
        listClass: 'dllAjustaTexto',
        emptyText: 'Tipo de Imóvel',
        tabIndex: 4
    });

    var cmbBairro = new Ext.form.ComboBox({
        store: stoBairro,
        id: 'cmbBairro',
        displayField: 'nome',
        valueField: 'id_cidade',
        mode: 'remote',
        triggerAction: 'all',
        typeAhead: true,
        forceSelection: true,
        selectOnFocus: true,
        lazyRender: true,
        editable: false,
        emptyText: 'Selecione o Bairro',
        listClass: 'dllAjustaTexto',
        cls: 'dllAjustaTexto',
        labelSeparator: '',
        disabled: true,
        width: 155,
        onSelect: function(record) {
            this.setValue(record.data.nome);
            this.collapse();
            hidIdBairro.setValue(record.data.id_bairro);
        }
    });

    var cmbCidade = new Ext.form.ComboBox({
        store: stoCidade,
        id: 'cmbCidade',
        displayField: 'nome',
        valueField: 'id_cidade',
        mode: 'remote',
        triggerAction: 'all',
        typeAhead: true,
        forceSelection: true,
        selectOnFocus: true,
        lazyRender: true,
        editable: false,
        emptyText: 'Selecione a Cidade',
        listClass: 'dllAjustaTexto',
        cls: 'dllAjustaTexto',
        labelSeparator: '',
        width: 155,
        onSelect: function(record) {
            this.setValue(record.data.nome);
            this.collapse();
            cmbBairro.setValue();
            stoBairro.baseParams = { ID: record.data.id_cidade.toString() };
            stoBairro.load();
            cmbBairro.enable();
            hidIdCidade.setValue(record.data.id_cidade);
        }
    });

    var cmbVlrMin = new Ext.form.ComboBox({
        id: 'cmbVlrMin',
        store: CarregaValorMinimo,
        width: 155,
        labelSeparator: '',
        displayField: 'NomeValorMinimo',
        valueField: 'ValorValorMinimo',
        mode: 'local',
        triggerAction: 'all',
        typeAhead: true,
        forceSelection: true,
        selectOnFocus: true,
        lazyRender: true,
        editable: false,
        cls: 'dllAjustaTexto',
        listClass: 'dllAjustaTexto',
        emptyText: 'Valor Mínimo',
        tabIndex: 5
    });

    var cmbVlrMax = new Ext.form.ComboBox({
        id: 'cmbVlrMax',
        store: CarregaValorMaximo,
        width: 155,
        labelSeparator: '',
        displayField: 'NomeValorMaximo',
        valueField: 'ValorValorMaximo',
        mode: 'local',
        triggerAction: 'all',
        typeAhead: true,
        forceSelection: true,
        selectOnFocus: true,
        lazyRender: true,
        editable: false,
        cls: 'dllAjustaTexto',
        listClass: 'dllAjustaTexto',
        emptyText: 'Valor Máximo',
        tabIndex: 6
    });

    var cmbQntdDormitorios = new Ext.form.ComboBox({
        id: 'cmbQntdDormitorios',
        store: CarregaDormitorios,
        width: 155,
        labelSeparator: '',
        displayField: 'NomeDormitorios',
        valueField: 'ValorDormitorios',
        mode: 'local',
        triggerAction: 'all',
        typeAhead: true,
        forceSelection: true,
        selectOnFocus: true,
        lazyRender: true,
        editable: false,
        cls: 'dllAjustaTexto',
        listClass: 'dllAjustaTexto',
        emptyText: 'Dormitórios',
        tabIndex: 7
    });

    var btnPesquisar = new Ext.ImageButton({
        id: 'btnPesquisar',
        text: 'Pesquisar',
        imgPath: '/img/btn_Pesquisar.jpg',
        tooltip: 'Pesquisar',
        tabIndex: 8,
        handler: function() {
            if (FormContato.form.isValid()) {
                var qryStr = '';

                if (cmbTpNegociacao.getValue() != '')
                    qryStr += 'IdTpNegociacao=' + cmbTpNegociacao.getValue() + '&';

                if (cmbTpImovel.getValue() != '')
                    qryStr += 'IdTpImovel=' + cmbTpImovel.getValue() + '&';

                if (cmbCidade.getValue() != '')
                    qryStr += 'IdCidade=' + hidIdCidade.getValue() + '&';

                if (cmbBairro.getValue() != '')
                    qryStr += 'IdBairro=' + hidIdBairro.getValue() + '&';

                if (cmbVlrMin.getValue() != '')
                    qryStr += 'VlrMin=' + cmbVlrMin.getValue().toString().replace('R$ ', '') + '&';

                if (cmbVlrMax.getValue() != '')
                    qryStr += 'VlrMax=' + cmbVlrMax.getValue().toString().replace('R$ ', '') + '&';

                if (cmbQntdDormitorios.getValue() != '')
                    qryStr += 'QntdDormitorio=' + cmbQntdDormitorios.getValue() + '&';

                if (qryStr != '') {
                    qryStr = qryStr.substring(0, qryStr.length - 1);
                    window.location = 'Resultado_Busca.aspx?' + qryStr.toString();
                }
                else
                {
                    Ext.Msg.alert('Locall Imóveis - Pesquisa', 'Selecione no mínimo um filtro para a pesquisa.');
                }
            }
        }
    });
    
    var FormContato = new Ext.form.FormPanel({
        id: 'FormContato',
        labelWidth: 1,
        url: 'Resultado_Busca.aspx',
        width: 164,
        frame: false,
        border: false,
        defaultType: 'textfield',
        renderTo: 'divCamposPesquisa',
        itemCls: 'LabelFormPadrao',
        bodyStyle: 'background-color: transparent;',
        items: [
            cmbTpNegociacao,
            cmbTpImovel,
            cmbCidade,
            cmbBairro,
            cmbVlrMin,
            cmbVlrMax,
            cmbQntdDormitorios
        ],
        buttons: [
            btnPesquisar
        ]
    });
    
    var arr = new Array();
    var qryStr = window.location.search.substring(1); 
    
    if (qryStr != '') {
        var vars = qryStr.split('&'); 
        
        if (vars.length > 0) {
            for (var i = 0; i < vars.length; i++) { 
                arr[i] = vars[i].split('=');
                arr[i] = arr[i].toString().replace(',', '*');
            } 
            
            stoTpNegociacao.load({ 
                callback: function() { 
                    for (var i = 0; i < arr.length; i++) { 
                        var x = arr[i].toString().split('*');
                        if (x[0].toString() == 'IdTpNegociacao') {
                            cmbTpNegociacao.setValue(x[1].toString());
                        }
                    }
                } 
            }); 

            stoTpImovel.load({ 
                callback: function() { 
                    for (var i = 0; i < arr.length; i++) { 
                        var x = arr[i].toString().split('*');
                        if (x[0].toString() == 'IdTpImovel') {
                            cmbTpImovel.setValue(x[1].toString());
                        }
                    }
                } 
            }); 

            stoCidade.load({ 
                callback: function() { 
                    for (var i = 0; i < arr.length; i++) { 
                        var x = arr[i].toString().split('*');
                        if (x[0].toString() == 'IdCidade') {
                            stoBairro.baseParams = { ID: x[1].toString() };
                            cmbCidade.setValue(x[1].toString());
                            hidIdCidade.setValue(x[1].toString());
                            cmbBairro.enable();
                        }
                    }
                } 
            });             
            
            stoBairro.load({ 
                callback: function() {
                    for (var i = 0; i < this.reader.jsonData.length; i++) { 
                        for (var j = 0; j < arr.length; j++) { 
                        var x = arr[j].toString().split('*');
                            if (x[0].toString() == 'IdBairro') {
                                if (x[1].toString() == this.reader.jsonData[i].id_bairro) {
                                    cmbBairro.setValue(this.reader.jsonData[i].nome);
                                    hidIdBairro.setValue(this.reader.jsonData[i].id_bairro);
                                }
                            }                        
                        }
                    }
                } 
            });
            
            for (var i = 0; i < arr.length; i++) { 
                var x = arr[i].toString().split('*');
                if (x[0].toString() == 'VlrMin') {
                    cmbVlrMin.setValue('R$ ' + x[1].toString());
                }
            }
                    
            for (var i = 0; i < arr.length; i++) { 
                var x = arr[i].toString().split('*');
                if (x[0].toString() == 'VlrMax') {
                    cmbVlrMax.setValue('R$ ' + x[1].toString());
                }
            }
                    
            for (var i = 0; i < arr.length; i++) { 
                var x = arr[i].toString().split('*');
                if (x[0].toString() == 'QntdDormitorio') {
                    cmbQntdDormitorios.setValue(x[1].toString());
                }
            }                    
        }
    }
});