﻿/// <reference path="TeslaLibrary.js" />
/// <reference path="Geral.js" />

Busca = {
    Interesse: {
        Comprar: 4,
        Alugar: 3
    },
    Condicao: {
        Lancamento: 1,
        Revenda: 2,
        Locacao: 3,
        Compra: 4
    },
    Finalidade: {
        Residencial: 1,
        Comercial: 2
    },
    ReplacePostBack_KeyPress: function(sender, e, postBackHandler) {
        var evento = e || window.event;
        var whichCode = evento.which || evento.keyCode;

        if (whichCode == 13) {
            if (postBackHandler)
                postBackHandler();

            return false;
        }

        return true;
    },
    GetCheckBoxValues: function(name, justCheckeds) {
        var chks;
        var i;
        var ret;

        if (justCheckeds == undefined)
            justCheckeds = true;

        chks = document.getElementsByName(name);
        ret = '';

        if (chks) {
            for (i = 0; i < chks.length; i++) {
                var chk;
                chk = chks[i];

                if (chk.checked || !justCheckeds) {
                    if (ret != '')
                        ret = ret + ',';
                    ret = ret + String(chk.value);
                }
            }
        }

        return ret;
    },
    SetCheckBoxState: function(name, value) {
        var chks = document.getElementsByName(name);

        if (chks) {
            for (var i = 0; i < chks.length; i++)
                chks[i].checked = value;
        }
    },
    GetCheckBoxLabels: function(name) {
        var chks;
        var ret;

        chks = document.getElementsByName(name);
        ret = '';

        if (chks) {
            for (var i = 0; i < chks.length; i++) {
                var chk;
                chk = chks[i];

                if (chk.checked) {
                    if (ret != '')
                        ret = ret + ', ';
                    ret = ret + $Get(chk.id + '_label').innerHTML;
                }
            }
        }

        return ret;
    },
    ValidarQuantidadeCheckBox: function(sender, qtdPermitida) {
        var qtdSelecionada = 0;
        var chks = document.getElementsByName(sender.name);

        if (chks) {
            var i = 0;

            // Soma quantidade selecionada
            for (i = 0; i < chks.length; i++) {
                if (chks[i].checked)
                    qtdSelecionada++;
            }

            // Altera status de habilitado dos itens
            for (i = 0; i < chks.length; i++) {
                if (!chks[i].checked) {
                    chks[i].disabled = (qtdSelecionada >= qtdPermitida);
                }
            }
        }
    },
    GetCheckBoxControlState: function(name) {
        var state = [];
        var chks = document.getElementsByName(name);

        if (chks) {
            for (var i = 0; i < chks.length; i++) {
                var item = { id: 0, checked: false, disabled: false };
                item.id = chks[i].id;
                item.checked = chks[i].checked;
                item.disabled = chks[i].disabled;

                state.push(item);
            }
        }

        return state;
    },
    SetCheckBoxControlState: function(state) {
        for (var i = 0; i < state.length; i++) {
            var chk = $Get(state[i].id);
            chk.checked = state[i].checked;
            chk.disabled = state[i].disabled;
        }
    }
}

BuscaSuperior = {
    Modo: {
        BuscaRapida: 1,
        BuscaCodigo: 2,
        BuscaCompleta: 3
    },
    SelecionaModoBusca: function(n) {
        for (var i = 1; i <= 3; i++) {
            if (i == n)
                $("#" + 'divBusca' + i).fadeIn("slow");
            //$("#" + 'divBusca' + i).slideDown();
            else
                $Get('divBusca' + i).style.display = 'none';
            i == n ? ReplaceClassNameUndescore('BtBusca' + i, 'off', 'on') : ReplaceClassNameUndescore('BtBusca' + i, 'on', 'off');
            //$Get('BtBusca' + i).className = (i == n ? "on" : "off");
            //blur();
        }
        if (document.body.focus) document.body.focus();
        if (document.body.setFocus) document.body.setFocus();
    }
}

BuscaRapida = {
    ConfigurarAutoComplete: function() {
        var url = page.ResolveUrl("~/AutoComplete/BuscaRapida.axd");
        $(document).ready
        (
            function() {
                $("#txtBuscaRapidaOnde").autocomplete
	            (
		            url,
		            {
		                delay: 100,
		                minChars: 3,
		                autoFill: false,
		                cacheLength: 0,
		                onItemSelect: BuscaRapida.txtBuscaRapidaOnde_onItemSelect
		            }
	            );
            }
        );
    },
    txtBuscaRapidaOnde_onItemSelect: function(obj) {
        BuscaRapida.RemoveEstado($Get('txtBuscaRapidaOnde'));
    },
    RemoveEstado: function(ctrl) {
        var value = ctrl.value;

        var pos = value.lastIndexOf(",");
        if (pos > 0) {
            var ultimaParte = value.substr(pos + 1, value.length - pos).Trim();

            if (ultimaParte.length <= 2) {
                page.ddlBuscaRapidaEstado.SelectItem(ultimaParte);
                ctrl.value = value.substr(0, pos).Trim();
            }
        }

    },
    GetFinalidade: function() {
        if ($Get('rbtBuscaRapidaResidencial').checked)
            return Busca.Finalidade.Residencial;
        else if ($Get('rbtBuscaRapidaComercial').checked)
            return Busca.Finalidade.Comercial;
        else
            return 0;
    },
    GetCondicao: function() {
        if (page.ddlBuscaRapidaInteresse.SelectedValue == null || page.ddlBuscaRapidaInteresse.SelectedValue == '')
            return 0;
        return page.ddlBuscaRapidaInteresse.SelectedValue;
    },
    GetIdTipoImovel: function() {
        return Busca.GetCheckBoxValues('chkBuscaRapidaTipoImovel');
    },
    GetOnde: function() {
        return $Get('txtBuscaRapidaOnde').value;
    },
    rbtBuscaRapidaFinalidade_OnClick: function(sender) {
        if (sender.value == Busca.Finalidade.Residencial) {
            $Get('lblBuscaRapidaTituloFinalidade').innerHTML = 'Residencial';
            ReplaceClassName(page.boxBuscaRapidaTipoImovel, 'off', 'on');
        }
        else if (sender.value == Busca.Finalidade.Comercial) {
            $Get('lblBuscaRapidaTituloFinalidade').innerHTML = 'Comercial';
            ReplaceClassName(page.boxBuscaRapidaTipoImovel, 'off', 'on');
        }
        else {
            $Get('lblBuscaRapidaTituloFinalidade').innerHTML = '';
            ReplaceClassName(page.boxBuscaRapidaTipoImovel, 'on', 'off');
        }

        BuscaRapida.PesquisarTipoImoveis();
        BuscaRapida.Validar();
    },
    PesquisarTipoImoveis: function() {
        var condicao = BuscaRapida.GetCondicao();
        var finalidade = BuscaRapida.GetFinalidade();

        page.rptBuscaRapidaTipoImovel.ClearContent();

        if (condicao != 0 && finalidade != 0)
            Ajax.Busca.FiltroBuscaTipoImovel(window['IdRegional'], condicao, finalidade, BuscaRapida.PesquisarTipoImoveisCallBack);
    },
    PesquisarTipoImoveisCallBack: function(list) {
        if (list && list.length > 0)
            page.rptBuscaRapidaTipoImovel.DataBind(list);

        if (page.popBuscaRapidaTipoImovel.Data == null)
            page.popBuscaRapidaTipoImovel.Data = { TempList: null, List: null };

        page.popBuscaRapidaTipoImovel.Data.TempList = list;
    },
    PesquisarTipoImoveisFirstLoadCallBack: function(list) {
        if (list && list.length > 0)
            page.rptBuscaRapidaTipoImovel.DataBind(list);

        if (page.popBuscaRapidaTipoImovel.Data == null)
            page.popBuscaRapidaTipoImovel.Data = { TempList: null, List: null };

        page.popBuscaRapidaTipoImovel.Data.List = list;
        page.popBuscaRapidaTipoImovel.Data.TempList = list;
        page.popBuscaRapidaTipoImovel.SaveControlState();
    },
    CarregarRangeValor: function() {
        var condicao = BuscaRapida.GetCondicao();

        if (condicao == 0)
            return;

        page.ddlBuscaRapidaValorInicial.Clear();
        page.ddlBuscaRapidaValorFinal.Clear();

        //Ajax.Busca.ListarValorImovel(condicao, BuscaRapida.CarregarRangeValorCallBack);
        Ajax.Busca.ListarValorImovel_ComboValorInicial(condicao, BuscaRapida.CarregarRangeValorInicialCallBack);
        Ajax.Busca.ListarValorImovel_ComboValorFinal(condicao, BuscaRapida.CarregarRangeValorFinalCallBack);
    },
    CarregarRangeValorCallBack: function(list) {
        if (list) {
            list.unshift({ Descricao: 'Indiferente', QtdMin: '' });
            page.ddlBuscaRapidaValorFinal.DataBind(list, 'QtdMin', 'Descricao');

            list.pop();
            page.ddlBuscaRapidaValorInicial.DataBind(list, 'QtdMin', 'Descricao');

        }
    },
    CarregarRangeValorInicialCallBack: function(list) {
        if (list) {
            list.unshift({ Descricao: 'Indiferente', QtdMin: '' });

            page.ddlBuscaRapidaValorInicial.DataBind(list, 'QtdMin', 'Descricao');
        }
    },
    CarregarRangeValorFinalCallBack: function(list) {
        if (list) {
            list.unshift({ Descricao: 'Indiferente', QtdMin: '' });

            page.ddlBuscaRapidaValorFinal.DataBind(list, 'QtdMin', 'Descricao');
        }
    },
    ddlBuscaRapidaInteresse_ItemClick: function(sender, e) {
        page.popBuscaRapidaTipoImovel.SetEnabled(sender.SelectedValue != null);

        BuscaRapida.PesquisarTipoImoveis();

        if (e.OldValue != e.NewValue) {
            BuscaRapida.CarregarRangeValor();
        }

        BuscaRapida.Validar();
    },
    ddlBuscaRapidaEstado_ItemClick: function(sender, e) {
        BuscaRapida.Validar();
    },
    popBuscaRapidaTipoImovel_OKClick: function(sender, e) {
        var idTipoImovel = BuscaRapida.GetIdTipoImovel();

        if (idTipoImovel == null || idTipoImovel == '') {
            e.Cancel = true;
            ShowMessage('Selecione algum Tipo de Imóvel.');
            return;
        }
        else
            page.popBuscaRapidaTipoImovel.SetText(Busca.GetCheckBoxLabels('chkBuscaRapidaTipoImovel'));

        page.popBuscaRapidaTipoImovel.Data.List = page.popBuscaRapidaTipoImovel.Data.TempList;

        BuscaRapida.Validar();
    },
    popBuscaRapidaTipoImovel_FirstOpen: function(sender, args) {
        $Get('rbtBuscaRapidaResidencial').checked = true;
        ReplaceClassName(page.boxBuscaRapidaTipoImovel, 'off', 'on');

        var condicao = BuscaRapida.GetCondicao();
        var finalidade = BuscaRapida.GetFinalidade();

        page.rptBuscaRapidaTipoImovel.ClearContent();

        if (condicao != 0 && finalidade != 0)
            Ajax.Busca.FiltroBuscaTipoImovel(window['IdRegional'], condicao, finalidade, BuscaRapida.PesquisarTipoImoveisFirstLoadCallBack);
    },
    popBuscaRapidaTipoImovel_SaveControlState: function(sender, e) {
        var state = { Finalidade: null, TipoImovel: null, TituloFinalidade: null };
        state.Finalidade = Busca.GetCheckBoxControlState('rbtBuscaRapidaFinalidade');
        state.TipoImovel = Busca.GetCheckBoxControlState('chkBuscaRapidaTipoImovel');
        state.TituloFinalidade = $Get('lblBuscaRapidaTituloFinalidade').innerHTML;

        if (page.popBuscaRapidaTipoImovel.Data != null)
            page.popBuscaRapidaTipoImovel.Data.TempList = page.popBuscaRapidaTipoImovel.Data.List;

        e.State = state;
    },
    popBuscaRapidaTipoImovel_RestoreControlState: function(sender, e) {
        Busca.SetCheckBoxControlState(e.State.Finalidade);
        $Get('lblBuscaRapidaTituloFinalidade').innerHTML = e.State.TituloFinalidade;

        if (page.popBuscaRapidaTipoImovel.Data != null) {
            var list = page.popBuscaRapidaTipoImovel.Data.List;
            if (list == null || list.length == 0)
                page.rptBuscaRapidaTipoImovel.ClearContent();
            else
                page.rptBuscaRapidaTipoImovel.DataBind(list);
        }

        Busca.SetCheckBoxControlState(e.State.TipoImovel);
    },
    ddlBuscaRapidaValorInicial_ItemClick: function(sender, e) {
        BuscaRapida.Validar();
    },
    ddlBuscaRapidaValorFinal_ItemClick: function(sender, e) {
        BuscaRapida.Validar();
    },
    Validar: function() {
        var ok = true;

        var condicao = BuscaRapida.GetCondicao();
        var finalidade = BuscaRapida.GetFinalidade();
        var idEstado = page.ddlBuscaRapidaEstado.SelectedValue;
        var onde = BuscaRapida.GetOnde();
        var idTipoImovel = BuscaRapida.GetIdTipoImovel();
        var valorInicial = page.ddlBuscaRapidaValorInicial.SelectedValue;
        var valorFinal = page.ddlBuscaRapidaValorFinal.SelectedValue;

        if (condicao == 0)
            ok = false;

        if (finalidade == 0)
            ok = false;

        if (idEstado == null || idEstado.Trim() == '')
            ok = false;

        if (onde == null || onde.Trim() == '')
            ok = false;

        if (idTipoImovel == null || idTipoImovel == '')
            ok = false;

        // Valor Opcional
        //        if (valorInicial == '')
        //            ok = false;

        //        if (valorFinal == '')
        //            ok = false;

        //04-03-2010 - Poderá receber valores invertidos
        //        if (parseInt(valorInicial) > parseInt(valorFinal))
        //            ok = false;

        if (ok)
            ReplaceClassName($Get('btnBuscaRapidaBuscar'), 'bt_buscar_off', 'bt_buscar');
        else
            ReplaceClassName($Get('btnBuscaRapidaBuscar'), 'bt_buscar', 'bt_buscar_off');

        return ok;
    },
    Executar: function() {
        var ok;

        ok = BuscaRapida.Validar();

        if (ok) {
            var condicao = BuscaRapida.GetCondicao();
            var finalidade = BuscaRapida.GetFinalidade();
            var idEstado = page.ddlBuscaRapidaEstado.SelectedValue;
            var onde = BuscaRapida.GetOnde();
            var idTipoImovel = BuscaRapida.GetIdTipoImovel();
            var valorInicial = page.ddlBuscaRapidaValorInicial.SelectedValue;
            var valorFinal = page.ddlBuscaRapidaValorFinal.SelectedValue;

            if (valorInicial == '') valorInicial = -1;
            if (valorFinal == '') valorFinal = -1;

            //Caso os valores min e max tenham sido invertidos, reinverte
            if (valorInicial > valorFinal && (valorFinal != -1))
            {
                var temp = valorInicial;
                valorInicial = valorFinal;
                valorFinal = temp;
            }

            Ajax.Busca.BuscaSemantica(window['IdRegional'], condicao, finalidade, idEstado, onde, idTipoImovel, valorInicial, valorFinal, BuscaRapida.ExecutarCallBack);
        }
    },
    ExecutarCallBack: function(resultadoBuscaSemantica) {
        if (resultadoBuscaSemantica) {
            if (resultadoBuscaSemantica.Acao == 'Redirect')
                page.Redirect(resultadoBuscaSemantica.URL);
            else if (resultadoBuscaSemantica.Acao == 'Select') {
                page.rptBuscaRapidaLocalidadeDuplicada.DataBind(resultadoBuscaSemantica.Lista);

                if (resultadoBuscaSemantica.OrigemLista == "GeoCoding" || resultadoBuscaSemantica.OrigemLista == "GeoCodingExterno" || resultadoBuscaSemantica.OrigemLista == "BancoDadosIncompleto")
                    page.flwBuscaRapidaLocalidadeDuplicada.SetTitle('Você quis dizer:');
                else
                    page.flwBuscaRapidaLocalidadeDuplicada.SetTitle('Existem mais de um endereço com este nome em diferentes localidades.');

                if (resultadoBuscaSemantica.Lista.length <= 15)
                    page.flwBuscaRapidaLocalidadeDuplicada.RemoveContentHeight();
                else
                    page.flwBuscaRapidaLocalidadeDuplicada.SetContentHeight('300px');

                page.flwBuscaRapidaLocalidadeDuplicada.Open();
                window['BuscaRapida_Parametros'] = resultadoBuscaSemantica.Parametros;
            }
            else if (resultadoBuscaSemantica.Acao == 'Message')
                ShowMessage(resultadoBuscaSemantica.Mensagem);
        }
        else
            ShowMessage('Não foram encontrados resultados para a busca.');
    },
    lnkLocalidadeDuplicada_Click: function(sender) {
        var localidadeBuscaSemantica = { IdEstado: '', Latitude: 0.0, Longitude: 0.0, RaioBusca: null, Tipo: null, Descricao: null, IdEndereco: null, IdBairro: null, IdCidade: null, IdRegiao: null };

        localidadeBuscaSemantica.IdEstado = $GetAttr(sender, 'idEstado');

        localidadeBuscaSemantica.IdEndereco = $GetAttr(sender, 'idEndereco') || 0;
        if (localidadeBuscaSemantica.IdEndereco == null)
            localidadeBuscaSemantica.IdEndereco = 0;

        localidadeBuscaSemantica.IdBairro = $GetAttr(sender, 'idBairro') || 0;
        if (localidadeBuscaSemantica.IdBairro == null)
            localidadeBuscaSemantica.IdBairro = 0;

        localidadeBuscaSemantica.IdCidade = $GetAttr(sender, 'idCidade') || 0;
        if (localidadeBuscaSemantica.IdCidade == null)
            localidadeBuscaSemantica.IdCidade = 0;

        localidadeBuscaSemantica.IdRegiao = $GetAttr(sender, 'idRegiao') || 0;
        if (localidadeBuscaSemantica.IdRegiao == null)
            localidadeBuscaSemantica.IdRegiao = 0;

        localidadeBuscaSemantica.Latitude = $GetAttr(sender, 'latitude');
        localidadeBuscaSemantica.Longitude = $GetAttr(sender, 'longitude');
        localidadeBuscaSemantica.RaioBusca = $GetAttr(sender, 'raioBusca');
        localidadeBuscaSemantica.Tipo = $GetAttr(sender, 'tipo');
        localidadeBuscaSemantica.Descricao = sender.innerHTML;

        Ajax.Busca.SelecionarLocalidadeBuscaSemantica(localidadeBuscaSemantica, window['BuscaRapida_Parametros'], BuscaRapida.ExecutarCallBack);
    }
}

BuscaDireta = {
    GetCodigo: function() {
        return $Get('txtBuscaDiretaCodigo').value;
    },
    ConfigurarAutoComplete: function() {
        var url = page.ResolveUrl("~/AutoComplete/BuscaDireta.axd");
        $(document).ready
        (
            function() {
                $("#txtBuscaDiretaCodigo").autocomplete
	            (
		            url,
		            {
		                delay: 100,
		                minChars: 3,
		                autoFill: false,
		                cacheLength: 0,
		                extraParams: { IdRegional: window['IdRegional'] }
		            }
	            );
            }
        );
    },
    Validar: function(showMessage) {
        var ok = true;
        var codigo = BuscaDireta.GetCodigo();

        if (codigo == null || codigo.Trim() == '') {
            ok = false;
            if (showMessage)
                ShowMessage('Informe o código ou nome do empreendimento.');
        }

        if (ok)
            ReplaceClassName($Get('lnkBuscaDiretaExecutar'), 'bt_buscar_off', 'bt_buscar');
        else
            ReplaceClassName($Get('lnkBuscaDiretaExecutar'), 'bt_buscar', 'bt_buscar_off');

        return ok;
    },
    Executar: function() {
        var ok;

        ok = BuscaDireta.Validar(true);

        if (ok)
            Ajax.Busca.BuscaDireta(BuscaDireta.GetCodigo(), BuscaDireta.ExecutarCallBack);
    },
    ExecutarCallBack: function(url) {
        if (url == null)
            ShowMessage('Não foi encontrando nenhum imóvel.');
        else
            page.Redirect(url);
    }
}

BuscaCompleta = {
    rbtBuscaCompletaCondicao_OnClick: function(sender) {
        BuscaCompleta.PesquisarTipoImoveis();

        if (sender.value == Busca.Condicao.Compra)
            $Get('divBuscaCompletaComprar').style.display = '';
        else
            $Get('divBuscaCompletaComprar').style.display = 'none';
    },
    rbtBuscaCompletaFinalidade_OnClick: function(sender) {
        BuscaCompleta.ShowTituloFinalidade(sender.value);
        BuscaCompleta.PesquisarTipoImoveis();
    },
    chkBuscaCompletaComprar_OnClick: function(sender) {
        BuscaCompleta.PesquisarTipoImoveis();
    },
    ShowTituloFinalidade: function(n) {
        if (n == Busca.Finalidade.Residencial) {
            $Get('lblBuscaCompletaTituloFinalidade').innerHTML = 'Residencial';
            ReplaceClassName(page.boxBuscaCompletaTipoImovel, 'off', 'on');
        }
        else if (n == Busca.Finalidade.Comercial) {
            $Get('lblBuscaCompletaTituloFinalidade').innerHTML = 'Comercial';
            ReplaceClassName(page.boxBuscaCompletaTipoImovel, 'off', 'on');
        }
        else {
            $Get('lblBuscaCompletaTituloFinalidade').innerHTML = '';
            ReplaceClassName(page.boxBuscaCompletaTipoImovel, 'on', 'off');
        }
    },
    GetCondicao: function() {
        if ($Get('rbtBuscaCompletaComprar').checked) {
            var chkLancamento = $Get('chkBuscaCompletaComprarLancamento');
            var chkRevenda = $Get('chkBuscaCompletaComprarRevenda');

            if (chkLancamento.checked && chkRevenda.checked)
                return Busca.Condicao.Compra;
            else if (chkLancamento.checked)
                return Busca.Condicao.Lancamento;
            else if (chkRevenda.checked)
                return Busca.Condicao.Revenda;
            else
                return 0;
        }
        else if ($Get('rbtBuscaCompletaAluguel').checked)
            return Busca.Condicao.Locacao;
        else
            return 0;
    },
    GetCondicaoMacro: function() {
        if ($Get('rbtBuscaCompletaComprar').checked)
            return Busca.Condicao.Compra;
        else if ($Get('rbtBuscaCompletaAluguel').checked)
            return Busca.Condicao.Locacao;
        else
            return 0;
    },
    GetFinalidade: function() {
        if ($Get('rbtBuscaCompletaResidencial').checked)
            return Busca.Finalidade.Residencial;
        else if ($Get('rbtBuscaCompletaComercial').checked)
            return Busca.Finalidade.Comercial;
        else
            return 0;
    },
    GetIdTipoImovel: function() {
        return Busca.GetCheckBoxValues('chkBuscaCompletaTipoImovel');
    },
    GetIdCidadeOuIdRegiao: function() {
        return Busca.GetCheckBoxValues('chkBuscaCompletaCidadeOuRegiao');
    },
    GetTipoLocalidade: function() {
        return $Get('hdnBuscaCompletaTipoLocalidade').value;
    },
    SetTipoLocalidade: function(tipoLocalidade) {
        $Get('hdnBuscaCompletaTipoLocalidade').value = tipoLocalidade;
    },
    GetIdItemLocalidade: function() {
        return Busca.GetCheckBoxValues('chkBuscaCompletaBairroOuCidade');
    },
    CarregarRangeValor: function() {
        var condicao = BuscaCompleta.GetCondicao();

        if (condicao == 0)
            return;

        page.ddlBuscaCompletaValorInicial.Clear();
        page.ddlBuscaCompletaValorFinal.Clear();

        //Ajax.Busca.ListarValorImovel(condicao, BuscaCompleta.CarregarRangeValorCallBack);
        Ajax.Busca.ListarValorImovel_ComboValorInicial(condicao, BuscaCompleta.CarregarRangeValorInicialCallBack);
        Ajax.Busca.ListarValorImovel_ComboValorFinal(condicao, BuscaCompleta.CarregarRangeValorFinalCallBack);
    },
    CarregarRangeValorCallBack: function(list)
    {
        if (list)
        {
            list.unshift({ Descricao: 'Indiferente', QtdMin: '' });
            page.ddlBuscaCompletaValorFinal.DataBind(list, 'QtdMin', 'Descricao');

            list.pop();
            page.ddlBuscaCompletaValorInicial.DataBind(list, 'QtdMin', 'Descricao');
        }
    },
    CarregarRangeValorInicialCallBack: function(list)
    {
        if (list)
        {
            list.unshift({ Descricao: 'Indiferente', QtdMin: '' });
            
            page.ddlBuscaCompletaValorInicial.DataBind(list, 'QtdMin', 'Descricao');
        }
    },
    CarregarRangeValorFinalCallBack: function(list)
    {
        if (list)
        {
            list.unshift({ Descricao: 'Indiferente', QtdMin: '' });
            
            page.ddlBuscaCompletaValorFinal.DataBind(list, 'QtdMin', 'Descricao');            
        }
    },
    PesquisarTipoImoveis: function() {
        var condicao = BuscaCompleta.GetCondicao();
        var finalidade = BuscaCompleta.GetFinalidade();

        // Efetua a busca
        page.rptBuscaCompletaTipoImovel.ClearContent();

        if (condicao == 0 || finalidade == 0)
            return; // Os parâmetros para a busca não foram informados por completo

        Ajax.Busca.FiltroBuscaTipoImovel(window['IdRegional'], condicao, finalidade, BuscaCompleta.PesquisarTipoImoveisCallBack);
    },
    popBuscaCompletaTipoImovel_FirstOpen: function(sender, args) {
        $Get('rbtBuscaCompletaComprar').checked = true;
        $Get('chkBuscaCompletaComprarLancamento').checked = true;
        $Get('chkBuscaCompletaComprarRevenda').checked = true;
        $Get('rbtBuscaCompletaResidencial').checked = true;

        $Get('divBuscaCompletaComprar').style.display = '';

        BuscaCompleta.ShowTituloFinalidade(Busca.Finalidade.Residencial);

        var condicao = BuscaCompleta.GetCondicao();
        var finalidade = BuscaCompleta.GetFinalidade();

        // Efetua a busca
        page.rptBuscaCompletaTipoImovel.ClearContent();

        if (condicao == 0 || finalidade == 0)
            return; // Os parâmetros para a busca não foram informados por completo

        Ajax.Busca.FiltroBuscaTipoImovel(window['IdRegional'], condicao, finalidade, BuscaCompleta.PesquisarTipoImoveisFirstLoadCallBack);
    },
    PesquisarTipoImoveisCallBack: function(list) {
        if (list && list.length > 0)
            page.rptBuscaCompletaTipoImovel.DataBind(list);

        if (page.popBuscaCompletaTipoImovel.Data == null)
            page.popBuscaCompletaTipoImovel.Data = { TempList: null, List: null };

        page.popBuscaCompletaTipoImovel.Data.TempList = list;
    },
    PesquisarTipoImoveisFirstLoadCallBack: function(list) {
        if (list && list.length > 0)
            page.rptBuscaCompletaTipoImovel.DataBind(list);

        if (page.popBuscaCompletaTipoImovel.Data == null)
            page.popBuscaCompletaTipoImovel.Data = { TempList: null, List: null };

        page.popBuscaCompletaTipoImovel.Data.List = list;
        page.popBuscaCompletaTipoImovel.Data.TempList = list;
        page.popBuscaCompletaTipoImovel.SaveControlState();
    },
    popBuscaCompletaTipoImovel_OKClick: function(sender, e) {
        var idTipoImovel = BuscaCompleta.GetIdTipoImovel();

        if (idTipoImovel && idTipoImovel.length > 0) {
            page.popBuscaCompletaTipoImovel.Data.List = page.popBuscaCompletaTipoImovel.Data.TempList;

            var finalidade = BuscaCompleta.GetFinalidade();
            if (finalidade == Busca.Finalidade.Residencial) {
                page.ddlBuscaCompletaDormitorio.SetEnabled(true);
                page.ddlBuscaCompletaSuite.SetEnabled(true);
                page.ddlBuscaCompletaVagasGaragem.SetEnabled(true);
            }
            else if (finalidade == Busca.Finalidade.Comercial) {
                page.ddlBuscaCompletaDormitorio.SetEnabled(false);
                page.ddlBuscaCompletaDormitorio.SelectItem('');
                page.ddlBuscaCompletaSuite.SetEnabled(false);
                page.ddlBuscaCompletaSuite.SelectItem('');
                page.ddlBuscaCompletaVagasGaragem.SetEnabled(false);
                page.ddlBuscaCompletaVagasGaragem.SelectItem('');
            }

            page.popBuscaCompletaTipoImovel.SetText(Busca.GetCheckBoxLabels('chkBuscaCompletaTipoImovel'));

            if (page.popBuscaCompletaTipoImovel.controlState.ValorCondicaoMacro != BuscaCompleta.GetCondicaoMacro())
                BuscaCompleta.CarregarRangeValor();
            BuscaCompleta.PesquisarEstados();
            BuscaCompleta.ValidarPasso1();
        }
        else {
            e.Cancel = true;
            ShowMessage('Selecione algum Tipo de Imóvel.');
        }
    },
    popBuscaCompletaTipoImovel_SaveControlState: function(sender, e) {
        var state = { Condicao: null, CondicaoCompra: null, Finalidade: null, TipoImovel: null, TituloFinalidade: null, ValorCondicaoMacro: null };
        state.ValorCondicaoMacro = BuscaCompleta.GetCondicaoMacro();
        state.Condicao = Busca.GetCheckBoxControlState('rbtBuscaCompletaCondicao');
        state.CondicaoCompra = Busca.GetCheckBoxControlState('chkBuscaCompletaComprar');
        state.Finalidade = Busca.GetCheckBoxControlState('rbtBuscaCompletaFinalidade');
        state.TituloFinalidade = $Get('lblBuscaCompletaTituloFinalidade').innerHTML;
        state.TipoImovel = Busca.GetCheckBoxControlState('chkBuscaCompletaTipoImovel');

        if (page.popBuscaCompletaTipoImovel.Data != null)
            page.popBuscaCompletaTipoImovel.Data.TempList = page.popBuscaCompletaTipoImovel.Data.List;

        e.State = state;
    },
    popBuscaCompletaTipoImovel_RestoreControlState: function(sender, e) {
        Busca.SetCheckBoxControlState(e.State.Condicao);
        Busca.SetCheckBoxControlState(e.State.CondicaoCompra);

        if ($Get('rbtBuscaCompletaComprar').checked)
            $Get('divBuscaCompletaComprar').style.display = '';
        else
            $Get('divBuscaCompletaComprar').style.display = 'none';

        Busca.SetCheckBoxControlState(e.State.Finalidade);
        $Get('lblBuscaCompletaTituloFinalidade').innerHTML = e.State.TituloFinalidade;

        if (page.popBuscaCompletaTipoImovel.Data != null) {
            var list = page.popBuscaCompletaTipoImovel.Data.List;
            if (list == null || list.length == 0)
                page.rptBuscaCompletaTipoImovel.ClearContent();
            else
                page.rptBuscaCompletaTipoImovel.DataBind(list);
        }

        Busca.SetCheckBoxControlState(e.State.TipoImovel);
    },
    PesquisarEstados: function() {
        var condicao = BuscaCompleta.GetCondicao();
        var finalidade = BuscaCompleta.GetFinalidade();
        var idTipoImovel = BuscaCompleta.GetIdTipoImovel();

        // Efetua pesquisa de estados para popular o drop down
        page.ddlBuscaCompletaEstado.Clear();
        page.rptBuscaCompletaCidadeOuRegiao.ClearContent();
        page.rptBuscaCompletaBairroOuCidade.ClearContent();

        Ajax.Busca.FiltroBuscaEstado(window['IdRegional'], condicao, finalidade, idTipoImovel, BuscaCompleta.PesquisarEstadosCallBack);
    },
    PesquisarEstadosCallBack: function(list) {
        if (list && list.length > 0) {
            page.ddlBuscaCompletaEstado.DataBind(list, "IdEstado", "IdEstado", window['EstadoPadraoRegional']);
        }
    },
    ddlBuscaCompletaEstado_ItemClick: function(sender, e) {
        BuscaCompleta.PesquisarCidadesOuRegioes();
        BuscaCompleta.ValidarPasso1();
    },
    PesquisarCidadesOuRegioes: function() {
        var condicao = BuscaCompleta.GetCondicao();
        var finalidade = BuscaCompleta.GetFinalidade();
        var idTipoImovel = BuscaCompleta.GetIdTipoImovel();
        var idEstado = page.ddlBuscaCompletaEstado.SelectedValue;

        ReplaceClassName($Get('lblBuscaCompletaLocaliadeLoading'), 'loading_off', 'loading_on');
        page.rptBuscaCompletaCidadeOuRegiao.ClearContent();
        page.rptBuscaCompletaBairroOuCidade.ClearContent();

        Ajax.Busca.FiltroBuscaCidadeOuRegiao(window['IdRegional'], condicao, finalidade, idTipoImovel, idEstado, BuscaCompleta.PesquisarCidadesOuRegioesCallBack);
    },
    PesquisarCidadesOuRegioesCallBack: function(list) {
        var tipoLocalidade = 'Regiao';

        if (list && list.length > 0) {
            // Carrega lista
            page.rptBuscaCompletaCidadeOuRegiao.DataBind(list);

            // Todos os itens devem ser do mesmo tipo
            tipoLocalidade = list[0].TipoItem;
        }

        BuscaCompleta.SetTipoLocalidade(tipoLocalidade);
        if (tipoLocalidade == 'Regiao') {
            $Get('lblBuscaCompletaTituloLocalidadeOuCidade').innerHTML = 'Localidade*';
            $Get('lblBuscaCompletaTituloLocalidadeOuCidadePopup').innerHTML = 'Selecione até três localidades:';
            page.popBuscaCompletaLocalidadeOuCidade.SetText('Localidade');

            page.popBuscaCompletaBairroOuCidade.SetText('Cidade/Bairro');
            $Get('lblBuscaCompletaBairroOuCidade').innerHTML = 'Cidade/Bairro*';
        }
        else if (tipoLocalidade == 'Cidade') {
            $Get('lblBuscaCompletaTituloLocalidadeOuCidade').innerHTML = 'Cidade*';
            $Get('lblBuscaCompletaTituloLocalidadeOuCidadePopup').innerHTML = 'Selecione até três cidades:';
            page.popBuscaCompletaLocalidadeOuCidade.SetText('Cidade');

            page.popBuscaCompletaBairroOuCidade.SetText('Bairro');
            $Get('lblBuscaCompletaBairroOuCidade').innerHTML = 'Bairro*';
        }

        ReplaceClassName($Get('lblBuscaCompletaLocaliadeLoading'), 'loading_on', 'loading_off');
    },
    popBuscaCompletaLocalidadeOuCidade_OKClick: function(sender, e) {
        var idCidadeOuIdRegiao = BuscaCompleta.GetIdCidadeOuIdRegiao();

        if (idCidadeOuIdRegiao && idCidadeOuIdRegiao.length > 0) {
            page.popBuscaCompletaLocalidadeOuCidade.SetText(Busca.GetCheckBoxLabels('chkBuscaCompletaCidadeOuRegiao'));
            BuscaCompleta.PesquisarBairrosOuCidades();
            BuscaCompleta.ValidarPasso1();
        }
        else {
            e.Cancel = true;
            ShowMessage('Selecione algum item.');
        }
    },
    popBuscaCompletaLocalidadeOuCidade_SaveControlState: function(sender, e) {
        e.State = Busca.GetCheckBoxControlState('chkBuscaCompletaCidadeOuRegiao');
    },
    popBuscaCompletaLocalidadeOuCidade_RestoreControlState: function(sender, e) {
        Busca.SetCheckBoxControlState(e.State);
    },
    PesquisarBairrosOuCidades: function() {
        var condicao = BuscaCompleta.GetCondicao();
        var finalidade = BuscaCompleta.GetFinalidade();
        var idTipoImovel = BuscaCompleta.GetIdTipoImovel();
        var idEstado = page.ddlBuscaCompletaEstado.SelectedValue;
        var tipoLocalidade = BuscaCompleta.GetTipoLocalidade();
        var idCidadeOuIdRegiao = BuscaCompleta.GetIdCidadeOuIdRegiao();

        ReplaceClassName($Get('lblBuscaCompletaCidadeBairroLoading'), 'loading_off', 'loading_on');
        page.rptBuscaCompletaBairroOuCidade.ClearContent();

        Ajax.Busca.FiltroBuscaBairroCidade(window['IdRegional'], condicao, finalidade, idTipoImovel, idEstado, tipoLocalidade, idCidadeOuIdRegiao, BuscaCompleta.PesquisarBairrosOuCidadesCallBack);
    },
    PesquisarBairrosOuCidadesCallBack: function(list) {
        var bairro = false;
        var cidade = false;
        var text = 'Cidade/Bairro';
        var textPlural = 'cidades/bairros';

        if (list && list.length > 0) {
            // Carrega lista
            page.rptBuscaCompletaBairroOuCidade.DataBind(list);

            // Verifica se retornou bairro e/ou cidade
            for (var i = 0; i < list.length; i++) {
                if (list[i].TipoItem == 'Bairro')
                    bairro = true;
                else if (list[i].TipoItem == 'Cidade')
                    cidade = true;

                if (bairro && cidade)
                    break;
            }
        }

        // Atribui textos de tíulos
        if (bairro && cidade) {
            text = 'Cidade/Bairro';
            textPlural = 'cidades/bairros';
        }
        else if (bairro) {
            text = 'Bairro';
            textPlural = 'bairros';
        }
        else if (cidade) {
            text = 'Cidade';
            textPlural = 'cidades';
        }

        page.popBuscaCompletaBairroOuCidade.SetText(text);
        $Get('lblBuscaCompletaBairroOuCidade').innerHTML = text + '*';
        $Get('lblBuscaCompletaAvisoBairroOuCidade').innerHTML = 'Selecione até vinte ' + textPlural + ':';

        ReplaceClassName($Get('lblBuscaCompletaCidadeBairroLoading'), 'loading_on', 'loading_off');
    },
    MostrarTodos: function(link) {
        if (link.innerHTML == $GetAttr(link, 'modoVerTodos')) {
            ReplaceClassName($Get($GetAttr(link, 'ulId')), 'ul_topN_off', 'ul_topN_on');
            link.innerHTML = 'Ocultar';
        }
        else {
            ReplaceClassName($Get($GetAttr(link, 'ulId')), 'ul_topN_on', 'ul_topN_off');
            link.innerHTML = $GetAttr(link, 'modoVerTodos');
        }
    },
    GetCSSClassLinkVerTodos: function(dataSource, dataItem) {
        var qtd = 0;

        for (var i = 0; i < dataSource.length; i++) {
            if (dataSource[i].IdGrupo == dataItem.IdGrupo)
                qtd++;
        }

        return qtd < 10 ? 'a_topN_off' : 'a_topN_on';
    },
    GetCSSClassLIVerTodos: function(groupIndex) {
        return groupIndex < 10 ? 'topN' : '';
    },
    popBuscaCompletaBairroOuCidade_OKClick: function(sender, e) {
        var idItemLocalidade = BuscaCompleta.GetIdItemLocalidade();

        if (!idItemLocalidade || idItemLocalidade.length == 0) {
            e.Cancel = true;
            ShowMessage('Selecione algum item.');
        }
        else {
            page.popBuscaCompletaBairroOuCidade.SetText(Busca.GetCheckBoxLabels('chkBuscaCompletaBairroOuCidade'));
            BuscaCompleta.ValidarPasso1();
        }
    },
    popBuscaCompletaBairroOuCidade_SaveControlState: function(sender, e) {
        e.State = Busca.GetCheckBoxControlState('chkBuscaCompletaBairroOuCidade');
    },
    popBuscaCompletaBairroOuCidade_RestoreControlState: function(sender, e) {
        Busca.SetCheckBoxControlState(e.State);
    },
    ddlBuscaCompletaValorInicial_ItemClick: function(sender, e) {
        BuscaCompleta.ValidarPasso1();
    },
    ddlBuscaCompletaValorFinal_ItemClick: function(sender, e) {
        BuscaCompleta.ValidarPasso1();
    },
    ddlBuscaCompletaDormitorio_ItemClick: function(sender, e) {
        BuscaCompleta.ValidarPasso2(BuscaCompleta.ValidarPasso1());
    },
    ddlBuscaCompletaSuite_ItemClick: function(sender, e) {
        BuscaCompleta.ValidarPasso2(BuscaCompleta.ValidarPasso1());
    },
    ddlBuscaCompletaVagasGaragem_ItemClick: function(sender, e) {
        BuscaCompleta.ValidarPasso2(BuscaCompleta.ValidarPasso1());
    },
    ddlBuscaCompletaAreaInicial_ItemClick: function(sender, e) {
        var passo1 = false;
        var passo2 = false;

        passo1 = BuscaCompleta.ValidarPasso1();
        passo2 = BuscaCompleta.ValidarPasso2(passo1);
    },
    ddlBuscaCompletaAreaFinal_ItemClick: function(sender, e) {
        var passo1 = false;
        var passo2 = false;

        passo1 = BuscaCompleta.ValidarPasso1();
        passo2 = BuscaCompleta.ValidarPasso2(passo1);
    },
    TrocarStatusCampo: function(spanID, novoStatus) {
        if (novoStatus)
            ReplaceClassName(spanID, 'bullet_off', 'bullet_on');
        else
            ReplaceClassName(spanID, 'bullet_on', 'bullet_off');
    },
    ValidarPasso1: function() {
        var passo1 = true;
        var idTipoImovel = BuscaCompleta.GetIdTipoImovel();
        var idEstado = page.ddlBuscaCompletaEstado.SelectedValue;
        var idCidadeOuIdRegiao = BuscaCompleta.GetIdCidadeOuIdRegiao();
        var idItemLocalidade = BuscaCompleta.GetIdItemLocalidade();
        var valorInicial = page.ddlBuscaCompletaValorInicial.SelectedValue;
        var valorFinal = page.ddlBuscaCompletaValorFinal.SelectedValue;
        var finalidade = BuscaCompleta.GetFinalidade();

        if (idTipoImovel == null || idTipoImovel.length == 0) {
            BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaTipoImovel', false);
            page.ddlBuscaCompletaEstado.SetEnabled(false);
            page.popBuscaCompletaLocalidadeOuCidade.SetEnabled(false);
            page.popBuscaCompletaBairroOuCidade.SetEnabled(false);

            passo1 = false;
        }
        else {
            BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaTipoImovel', true);
            page.ddlBuscaCompletaEstado.SetEnabled(true);

            if (idEstado == null || idEstado.length == 0) {
                BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaEstado', false);

                page.popBuscaCompletaLocalidadeOuCidade.SetEnabled(false);
                page.popBuscaCompletaBairroOuCidade.SetEnabled(false);

                passo1 = false;
            }
            else {
                BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaEstado', true);
                page.popBuscaCompletaLocalidadeOuCidade.SetEnabled(true);

                if (idCidadeOuIdRegiao == null || idCidadeOuIdRegiao.length == 0) {
                    BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaLocalidadeOuCidade', false);
                    page.popBuscaCompletaBairroOuCidade.SetEnabled(false);
                    passo1 = false;
                }
                else {
                    BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaLocalidadeOuCidade', true);
                    page.popBuscaCompletaBairroOuCidade.SetEnabled(true);

                    if (idItemLocalidade == null || idItemLocalidade.length == 0) {
                        BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaBairroOuCidade', false);
                        passo1 = false;
                    }
                    else {
                        BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaBairroOuCidade', true);
                    }
                }
            }
        }

        // O valor virou opcional
//        if (valorInicial == '' || valorFinal == '') {
//            BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaValor', false);
//            passo1 = false;
//        }
        //        else {
        
            //04-03-2010 Os valores agora poderão vir invertidos
            //            if (parseInt(valorInicial) > parseInt(valorFinal)) {
            //                BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaValor', false);
            //                passo1 = false;
            //            }
            //            else {
            //                BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaValor', true);
            //            }
            
//        }

        page.ddlBuscaCompletaDormitorio.SetEnabled(passo1 && finalidade == Busca.Finalidade.Residencial);
        page.ddlBuscaCompletaAreaInicial.SetEnabled(passo1);
        page.ddlBuscaCompletaAreaFinal.SetEnabled(passo1);
        page.ddlBuscaCompletaSuite.SetEnabled(passo1 && finalidade == Busca.Finalidade.Residencial);
        page.ddlBuscaCompletaVagasGaragem.SetEnabled(passo1 && finalidade == Busca.Finalidade.Residencial);

        if (passo1)
            ReplaceClassName($Get('liBuscaCompletaLinha2'), 'linha2_off', 'linha2');
        else
            ReplaceClassName($Get('liBuscaCompletaLinha2'), 'linha2', 'linha2_off');

        BuscaCompleta.ValidarPasso2(passo1);

        return passo1;
    },
    ValidarPasso2: function(passo1) {
        var passo2 = passo1;

        var qtdMinimaDormitorios = page.ddlBuscaCompletaDormitorio.SelectedValue == '' ? -1 : parseInt(page.ddlBuscaCompletaDormitorio.SelectedValue);
        var valorInicial = page.ddlBuscaCompletaAreaInicial.SelectedValue;
        var valorFinal = page.ddlBuscaCompletaAreaFinal.SelectedValue;
        var qtdMinimaSuites = page.ddlBuscaCompletaSuite.SelectedValue == '' ? -1 : parseInt(page.ddlBuscaCompletaSuite.SelectedValue);
        var qtdMinimaVagasGaragem = page.ddlBuscaCompletaVagasGaragem.SelectedValue == '' ? -1 : parseInt(page.ddlBuscaCompletaVagasGaragem.SelectedValue);

        if (qtdMinimaDormitorios > 0)
            BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaDormitorio', true);
        else
            BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaDormitorio', false);

        if (valorInicial != '' && valorFinal != '') {
            if (parseInt(valorInicial) > parseInt(valorFinal)) {
                BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaArea', false);
                passo2 = false;
            }
            else {
                BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaArea', true);
            }
        }
        else {
            BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaArea', false);
        }

        if (qtdMinimaSuites > 0)
            BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaSuite', true);
        else
            BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaSuite', false);

        if (qtdMinimaVagasGaragem > 0)
            BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaVagasGaragem', true);
        else
            BuscaCompleta.TrocarStatusCampo('spanBuscaCompletaVagasGaragem', false);


        if (passo2)
            ReplaceClassName($Get('btnBuscaCompletaBuscar'), 'bt_buscar_off', 'bt_buscar');
        else
            ReplaceClassName($Get('btnBuscaCompletaBuscar'), 'bt_buscar', 'bt_buscar_off');


        return passo2;
    },
    GetBairroOuCidadeValues: function(tipoItem, justCheckeds) {
        var chks;
        var i;
        var ret;

        chks = document.getElementsByName('chkBuscaCompletaBairroOuCidade');
        ret = '';

        if (chks) {
            for (i = 0; i < chks.length; i++) {
                var chk;
                chk = chks[i];

                if ($GetAttr(chk, 'tipoItem') == tipoItem) {
                    if (chk.checked || !justCheckeds) {
                        if (ret != '')
                            ret = ret + ',';
                        ret = ret + String(chk.value);
                    }
                }
            }
        }

        return ret;
    },
    Executar: function() {
        var passo1 = false;
        var passo2 = false;
        var ok;

        var idRegional = window['IdRegional'];
        var condicao = BuscaCompleta.GetCondicao();
        var finalidade = BuscaCompleta.GetFinalidade();
        var listaIdTipoImovel = Busca.GetCheckBoxValues('chkBuscaCompletaTipoImovel', true);
        var idEstado = page.ddlBuscaCompletaEstado.SelectedValue;
        var tipoLocalidade = BuscaCompleta.GetTipoLocalidade();
        var listaIdItemLocalidade = BuscaCompleta.GetIdCidadeOuIdRegiao();
        var bairroListaItemId = BuscaCompleta.GetBairroOuCidadeValues('Bairro', true);
        var cidadeListaItemId = BuscaCompleta.GetBairroOuCidadeValues('Cidade', true);
        var valorMinimo = page.ddlBuscaCompletaValorInicial.SelectedValue == '' ? -1 : parseInt(page.ddlBuscaCompletaValorInicial.SelectedValue);
        var valorMaximo = page.ddlBuscaCompletaValorFinal.SelectedValue == '' ? -1 : parseInt(page.ddlBuscaCompletaValorFinal.SelectedValue);
        var listaIdCaracteristicaBool = null;
        var valorAreaMinima = page.ddlBuscaCompletaAreaInicial.SelectedValue == '' ? -1 : parseInt(page.ddlBuscaCompletaAreaInicial.SelectedValue);
        var valorAreaMaxima = page.ddlBuscaCompletaAreaFinal.SelectedValue == '' ? -1 : parseInt(page.ddlBuscaCompletaAreaFinal.SelectedValue);
        var qtdMinimaDormitorios = page.ddlBuscaCompletaDormitorio.SelectedValue == '' ? -1 : parseInt(page.ddlBuscaCompletaDormitorio.SelectedValue);
        var qtdMinimaSuites = page.ddlBuscaCompletaSuite.SelectedValue == '' ? -1 : parseInt(page.ddlBuscaCompletaSuite.SelectedValue);
        var qtdMinimaBanheiros = -1;
        var qtdMinimaVagasGaragem = page.ddlBuscaCompletaVagasGaragem.SelectedValue == '' ? -1 : parseInt(page.ddlBuscaCompletaVagasGaragem.SelectedValue);
        var resultadosPorPagina = -1;
        var numeroPagina = -1;
        var ordenacao = null;
        var listaIdTipoImovelSelecionado = Busca.GetCheckBoxValues('chkBuscaCompletaTipoImovel', true);
        var bairroListaItemIdSelecionado = BuscaCompleta.GetBairroOuCidadeValues('Bairro', true);
        var cidadeListaItemIdSelecionado = BuscaCompleta.GetBairroOuCidadeValues('Cidade', true);
        var condicaoOriginal = BuscaCompleta.GetCondicao();

        //Caso os valores min e max tenham sido invertidos, reinverte
        if (valorMinimo > valorMaximo)
        {
            var temp = valorMinimo;
            valorMinimo = valorMaximo;
            valorMaximo = temp;
        }

        passo1 = BuscaCompleta.ValidarPasso1();
        passo2 = BuscaCompleta.ValidarPasso2(passo1);

        ok = (passo1 && passo2);

        if (ok) {
            Ajax.Busca.BuscaCompleta
            (
                idRegional,
                condicao,
                finalidade,
                listaIdTipoImovel,
                idEstado,
                tipoLocalidade,
                listaIdItemLocalidade,
                bairroListaItemId,
                cidadeListaItemId,
                valorMinimo,
                valorMaximo,
                listaIdCaracteristicaBool,
                valorAreaMinima,
                valorAreaMaxima,
                qtdMinimaDormitorios,
                qtdMinimaSuites,
                qtdMinimaBanheiros,
                qtdMinimaVagasGaragem,
                resultadosPorPagina,
                numeroPagina,
                ordenacao,
                listaIdTipoImovelSelecionado,
                bairroListaItemIdSelecionado,
                cidadeListaItemIdSelecionado,
                condicaoOriginal,
                true,
                true,
                true,
                true,
                '',
                0, /*Latitude*/
                0, /* Longitude */
                0, /*IdEnderecoBuscaRapida*/
                0, /*IdBairroBuscaRapida*/
                0, /*IdCidadeBuscaRapida*/
                0, /*IdRegiaoBuscaRapida*/
                BuscaCompleta.ExecutarCallBack
            );
        }
    },
    ExecutarCallBack: function(url) {
        if (url)
            page.Redirect(url);
    }
}


//Mostra balão busca passo 3
function mostraBalao(obj)
    {
        document.getElementById(obj).style.display = "block";
    }
    
    function escondeBalao(obj)
    {
        document.getElementById(obj).style.display = "none";
    }