var base_url = '';
var base = new String(document.baseURI);
var n = base.indexOf("localhost");
var n2 = base.indexOf("192.168");
var n3 = base.indexOf("201.16");
var LOCALHOST = false;
if ( ( n ) >= 0 || ( n2 ) >= 0 || ( n3 ) >= 0)
{
    LOCALHOST = true;
}
var URL_HTTP = base_url;
var URI = base_url;
var URL_ADMIN = base_url;

$(document).ready(function(){
    base_url = $('body').attr('data_url');
    URL_HTTP = base_url;
    URI = base_url;
    URL_ADMIN = base_url;
    var cidade = $('#cidade').attr('data-valor');
    filtro.set_cidade(cidade);
    
    if ( window.innerWidth < 992 )
    {
        $('.item-vertical').addClass('over');
    }
    $(".item-vertical .carousel").swiperight(function() {  
        $(this).carousel('prev');  
        fotos.set_images($(this), 'prev');
    });  
    $(".item-vertical .carousel").swipeleft(function() {  
        $(this).carousel('next');  
        fotos.set_images($(this), 'next');
    }); 
    filtro.xs_posiciona_filtro();
    $('#valor_min').val(montaValor.int($('#valor_min').val()));
    $('#valor_max').val(montaValor.int($('#valor_max').val()));
    $('#area_min').val(montaValor.double($('#area_min').val()));
    $('#area_max').val(montaValor.double($('#area_max').val()));
});

$(function(){
//    $.fn.select2.defaults.set('amdBase', 'js/');
//    $.fn.select2.defaults.set('amdLanguageBase', 'js/i18n/');
    var $localizacaoSelect = $('.localizacao_campo').select2({
        tags: false,
        placeholder: 'Busque uma cidade, bairro, nome da rua que busca seu imóvel ',
//        amdBase:'js/',
        amdLanguageBase: 'js/i18n/',
        language: 'pt-BR.js',
        closeOnSelect: true,
        ajax: {
            url: function(params){
                var cidade = $('.localizacao').attr('data-cidade');
                if ( cidade != '' )
                {
                    var bairro = ($('.localizacao').attr('data-bairro') != '' ) ? 1 : 0;
                    return URI + 'funcoes/set_bairros_por_cidade_select2/' + cidade + '/' + bairro + '' + (params.term == 'undefined' ? params.term : '');
                    
                }
                else
                {
                    return URI + 'cidades/busca_cidade_json/' + (params.term !== undefined ? params.term : '');
                }
            },
            dataType: 'json',
            delay: 50,
            processResults: function(data) {
                return {
                    results: data,
                };
            } 
            
            
        },
    });
    $localizacaoSelect.on('select2:select', function(e){
        var cidade = $('.localizacao').attr('data-cidade');
        if ( cidade != '' )
        {
            var text = e.params.data.text;
            var id = e.params.data.id;
            if ( text.indexOf('*') >= 0 )
            {
                $('option[value="'+id+'"]').remove();
                var t = text.split('*');
                var c = [];
                var bi = id.indexOf(',') >= 0 ? id.split(',') : [id];
                var bt = t[1].indexOf(',') >= 0 ? t[1].split(',') : [t[1]];
                $.each(bi,function(k,v){
                    console.log(v);
                    if ( v != '' )
                    {
                        $('.localizacao_campo').append('<option value="'+v+'">'+bt[k]+'</option>');
                        c.push(v);
                    }
                });
                var cidade = $('.localizacao').attr('data-cidade');
                c.push(cidade);
                var bairro = $('.localizacao').attr('data-bairro');
                if ( bairro != '' )
                {
                    if ( bairro.indexOf(',') >= 0 )
                    {
                        var bai = bairro.split(',');
                        $.each(bai,function(ka,va){
                            c.push(va);
                        });
                    }
                    else
                    {
                        c.push(bairro);
                    }
                }
                $localizacaoSelect.val(c).trigger('change');
                filtro.set_bairro(e.params.data.id,true);
                
            }
            else
            {
                filtro.set_bairro(e.params.data.id,true);
            }
        }
        else
        {
            var i = e.params.data.id;
            if ( i.indexOf(';') > 0 )
            {
                var a = i.split(';');
                var texto = e.params.data.text;
                var t = texto.split('*');
                var ba = t[2].split(',');
                $('.localizacao').attr('data-cidade',a[0]);
                $('.localizacao_campo').html('');
                $('.localizacao_campo').append('<option value="'+a[0]+'">'+t[1]+'</option>');
                filtro.set_bairro(a[1],true);
                var c = [];
                c.push(a[0]);
                var b = a[1].split(',');
                $.each(b,function(k,v){
                    if ( v != '' )
                    {
                        $('.localizacao_campo').append('<option value="'+v+'">'+ba[k]+'</option>');
                        c.push(v);
                    }
                });
                $localizacaoSelect.val(c).trigger('change');
            }
            else
            {
                $('.localizacao').attr('data-cidade',e.params.data.id);
            }
        }
        filtro.submit();
    });
    $localizacaoSelect.on('select2:unselect', function(e){
//        console.log(e);
        var bairro = $('.localizacao').attr('data-bairro');
        var cidade = $('.localizacao').attr('data-cidade');
        if ( cidade == e.params.data.id )
        {
            $('.localizacao').attr('data-bairro','');
            if ( $('.id_empresa').val() === undefined )
            {
                filtro.submit();
            }
            $localizacaoSelect.val(null).trigger('change');
            $('.localizacao').attr('data-cidade','');
            
        }
        else
        {
            if ( bairro != '' )
            {
                filtro.set_bairro(e.params.data.id,false);
                filtro.submit();
            }
            else
            {
                $('.localizacao').attr('data-cidade','');
            }
            
        }
        //filtro.set_bairro(e.params.data.id,false);
        //filtro.submit();
    });
    
    $('.open-select2').on('click',function(){
        $localizacaoSelect.select2('open');
    });
    
//    https://select2.github.io/
//      https://select2.github.io/options.html#compatibility
    
    console.log(base_url);
    
    
    $('.publicidade-inicial').on('click',function(){
        var url = URI + 'publicidade/'+$(this).attr('data-item');
        var navegador = navigator.userAgent;
    });
    
//    $('.filtro').on('click','.busca-avancada',function(){
//        busca_manipula.avancada();
//        
//    });
    $(document).on('click','.busca-avancada',function(){
        busca_manipula.avancada();
        
    });
//    $('.filtro').on('click','.busca-reduzir',function(){
//        busca_manipula.reduzida();
//    });
    $(document).on('click','.busca-reduzir',function(){
        busca_manipula.reduzida();
    });
//    $('.filtro').on('click','.busca-codigo',function(){
//        busca_manipula.codigo();
//    });
    $(document).on('click','.busca-codigo',function(){
        busca_manipula.codigo();
    });
//    $('.filtro').on('click','.busca-codigo-voltar',function(){
//        busca_manipula.codigo_voltar();
//    });
    $(document).on('click','.busca-codigo-voltar',function(){
        busca_manipula.codigo_voltar();
    });
    
    
    
    $(document).on('click','.tipo-negocio-item',function(e){
        e.preventDefault();
        var item = $(this).attr('data-item');
        var texto = $(this).html();
        $('#tipo_negocio').attr('data-valor',item);
        $('#tipo_negocio .valor').html(texto);
        console.log('negocio');
        $('.resultado').html('');
        filtro.submit();
    });
    $(document).on('click','.tipo-item',function(e){
        e.preventDefault();
        var item = $(this).attr('data-item');
        var marcado = $('.elemento-' + item + '.marcado').length;
        console.log(marcado);
        if ( ! marcado )
        {
            $(this).addClass('marcado');
            $('.filtro .item-' + item ).attr('checked','checked');
            filtro.tipo(item, true);
        }
        else
        {
            $(this).removeClass('marcado');
            $('.filtro .item-' + item ).removeAttr('checked');
            filtro.tipo(item, false);
        }
//        setTimeout(function(){},200);
        $('.resultado').html('');
        filtro.submit();  
    });
    $('.filtro .resultado-bairro-marcado').on('click','.bairro-item',function(e){
        e.preventDefault();
        var item = $(this).attr('data-item');
        $(this).removeClass('marcado');
        filtro.bairro(item, false);
        $('.resultado').html('');
        filtro.submit();
    });
    $('.filtro .resultado-bairro').on('click','.bairro-item',function(e){
        e.preventDefault();
        var item = $(this).attr('data-item');
        var marcado = $('.resultado-bairro .item-' + item + '.marcado').length;
        console.log('B',item,marcado);
        if ( ! marcado )
        {
            $(this).addClass('marcado');
            $('.resultado-bairro .item-' + item ).attr('checked','checked');
            filtro.bairro(item, true);
        }
        else
        {
            $(this).removeClass('marcado');
            $('.resultado-bairro .item-' + item ).removeAttr('checked');
            filtro.bairro(item, false);
            
        }
        $('.resultado').html('');
        filtro.submit();
            
    });
    $(document).on('click','.resultado-bairro-marcado .bairro-item',function(e){
        e.preventDefault();
        var item = $(this).attr('data-item');
        $(this).removeClass('marcado');
        filtro.bairro(item, false);
        $('.resultado').html('');
        filtro.submit();
    });
    $(document).on('click','.resultado-bairro .bairro-item',function(e){
        e.preventDefault();
        var item = $(this).attr('data-item');
        var marcado = $('.resultado-bairro .item-' + item + ':checked').length;
        console.log('B',item,marcado);
        if ( ! marcado )
        {
            $(this).addClass('marcado');
            $('.resultado-bairro .item-' + item ).attr('checked','checked');
            filtro.bairro(item, true);
        }
        else
        {
            $(this).removeClass('marcado');
            $('.resultado-bairro .item-' + item ).removeAttr('checked');
            filtro.bairro(item, false);
            
        }
        $('.resultado').html('');
        filtro.submit();
            
    });
    $('.filtro').on('click','.cidade-item',function(){
        var item = $(this).attr('data-item');
        var titulo = $(this).attr('data-titulo');
        filtro.set_cidade(item);
        $('#cidade').attr('data-valor',item);
        $('#cidade .valor').html(titulo);
        filtro.get_bairros();
        $('.resultado').html('');
        filtro.submit();
    });
    $('#cidade').on('click',function(){
        setTimeout(function(){
            $('#cidade-busca').focus();
        },200);
    });
    $('#bairro').on('click',function(){
        setTimeout(function(){
            $('#bairro-busca').focus();
        },200);
    });
    $('#cidade-busca').on('keyup', function(){
        filtro.get_cidades();
    });
    $('#bairro-busca').on('keyup', function(){
        filtro.get_bairros();
    });
    $(document).on('click','.btn-buscar',function(){
        $('.resultado').html('');
        filtro.submit();
    });
    $('.btn-proximo').on('click',function(){
        filtro.paginacao();
    });
    var option_popover = {
        content : function(){
            var cont = $('.popover_ordem .popover-inner').html();
            return cont;
        },
        placement : 'bottom',
        html : true,
        trigger: 'click',
        animation : true
    };
    $('.container .ordenacao .ordem').popover(option_popover);
    
    $(document).on('mouseover','.item-vertical',function(){
        $(this).addClass('over');
    });
    $(document).on('mouseout','.item-vertical',function(){
        $(this).removeClass('over');
    });
    $(document).on('click','.carousel-control',function(){
        fotos.set_images($(this));
    });
    
    var ultima_rolagem;
    $(window).scroll(function(e){
//        var interna = $('.interna').length;
//        if ( interna > 0 )
//        {
//            var y = $(this).scrollTop();
//            rolagem.rolou(y);
//        }
    });
    $('.busca-xs').on('click',function(){
        $('.reserva-modal').modal('show');
    });
    
    $('.resultado').on('click','.espaco-descricao',function(){
        console.log($(this));
        var item = $(this).attr('data-item');
        var link = $('.elemento-' + item + ' .detalhes').attr('href');
        //window.open(link, '_self');
    });
    $('.resultado').on('click','.espaco-area',function(){
        var item = $(this).attr('data-item');
        var link = $('.elemento-' + item + ' .detalhes').attr('href');
        //window.open(link, '_self');
    });
    
    $('.codigo').on('keyup',function(e){
        if ( e.keyCode === 13 )
        {
            filtro.imovel();
        }
    });
    
    $('.filtro').on('keyup','.valor',function(e){
       var valor = $(this).val();
       $(this).val(montaValor.int(valor));
       
    });    
    $('.filtro').on('keyup','.area',function(e){
       var valor = $(this).val();
       $(this).val(montaValor.double(valor));
    });    
    $('.resultado').on('click','.contato',function(){
        var local = $(this).attr('data-local');
        var item = $(this).attr('data-item');
        var link = URI + 'imovel/0/' + item + '/' + local.replace('i','') + '/novo/1';
        var conteudo = '<iframe width="100%" height="600px" src="' + link + '" style="border:none;"></iframe>';
        $('.modal-body').html(conteudo);
        $('.reserva-modal').modal('show');
        $('.modal-dialog').css('width','90%');
    });
    
});

var rolagem = {
    ultima_posicao: 0,
    rolou: function(y) {
        if ( y < rolagem.ultima_posicao )
        {
        }
        else
        {
            busca_manipula.reduzida();
            
        }
        if ( y > 0 )
        {
            $('.interna').css({
                position: 'fixed',
                top: 40,
                left: 'auto',
                width: '100%'
            });
            $('.navbar').css({
                position: 'fixed',
                top: 0,
                left: 'auto',
                width: '100%'
            });
        }
        else
        {
            $('.interna').css({
                position: 'relative',
                top: 'auto',
            });
            $('.navbar').css({
                position: 'relative',
                top: 0,
            });
        }
        rolagem.ultima_posicao = y;
    },
   
    
};

var busca_manipula = {
    avancada: function(){
        $('.avancado').removeClass('hide').addClass('show');
        $('.busca-inteira').removeClass('hide').addClass('show');
        $('.busca-avancada').addClass('busca-reduzir').removeClass('busca-avancada').html('Reduzir Busca');
        $('.filtro .hidden-sm').addClass('visivel-sm').removeClass('hidden-sm');
        var btn = $('.espaco-btn-buscar').html().trim();
        if ( btn != '' )
        {
            $('.espaco-btn-buscar').html('');
            $('.espaco-btn-buscar-avancado').html(btn);
        }
        $('.limpar').removeClass('hide').addClass('show');
        busca_manipula.codigo_voltar();
    },
    reduzida:function(){
        $('.avancado').removeClass('show').addClass('hide');
        $('.busca-inteira').removeClass('hide').addClass('show');
        $('.busca-reduzir').addClass('busca-avancada').removeClass('busca-reduzir').html('Busca avançada');
        $('.filtro .visivel-sm').addClass('hidden-sm').removeClass('visivel-sm');
        var btn = $('.espaco-btn-buscar-avancado').html().trim();
        if ( btn != '' )
        {
            $('.espaco-btn-buscar-avancado').html('');
            $('.espaco-btn-buscar').html(btn);
        $('.limpar').removeClass('show').addClass('hide');
        busca_manipula.codigo_voltar();
        }
    },
    codigo:function(){
        $('.por-codigo').removeClass('hide').addClass('show');
        $('.busca-inteira').addClass('hide').removeClass('show');
        $('.busca-codigo').addClass('busca-codigo-voltar').removeClass('busca-codigo').html('Pesquisa de imóvel');
        $('.codigo').val('');
    },
    codigo_voltar:function(){
        $('.por-codigo').removeClass('show').addClass('hide');
        $('.busca-inteira').addClass('show').removeClass('hide');
        $('.busca-codigo-voltar').addClass('busca-codigo').removeClass('busca-codigo-voltar').html('Busca por código');
        $('.codigo').val('');
        //busca_manipula.reduzida();
    },
};


var fotos = {
    lista: {},
    get_lista : function(){
        return fotos.lista;
    },
    set_lista : function( item ){
        var lista = {};
        if ( this.lista.length > 0 )
        {
            this.lista.push(item);
        }
        else
        {
            this.lista = item;
        }
    },
    set_images: function( campo, lado ){
        var item = campo.attr('data-item');
        var qtde_montado = $('.item-' + item + ' .carousel-inner .item').length;
        if ( qtde_montado === 1 )
        {
            var item_lista = fotos.verifica_lista(item);
            var itens = this.monta_lista(item_lista, item);
        }
        if ( lado === undefined )
        {
            var lado = campo.attr('data-slide');
        }
        $('.item-' + item + '.carousel').carousel(lado);
        $('.item-' + item + '.carousel').carousel('pause');
    },
    verifica_lista: function( item ){
        $.each(this.get_lista(),function(k,v){
            if ( v.id == item )
            {
                var retorno = v;
            }
        });
        if ( retorno == undefined )
        {
            var images = JSON.parse(decodeURIComponent($('.item-' + item).attr('data-images')));
            var array_item = {id : item, itens : images};
            this.set_lista(array_item);
            var retorno = array_item;
        }
        
        return retorno;
    },
    monta_lista: function( itens, item ){
        var retorno = '';
        var contador = 0;
        $.each(itens.itens,function(k,v){
            if ( contador > 0 )
            {
                retorno += fotos.item(v);
            }
            contador ++;
        });
        $('.item-' + item + ' .carousel-inner').append(retorno);
        
        
    },
    item: function(item){
        str = item.arquivo_local;
        var retorno = '<div data-atual="0" class="item"><div rel="nofollow" title="Triplex  residencial à venda, Uberaba, Curitiba." class="pull-left link-img center-block"><img class="img-responsive" alt="Triplex  residencial à venda, Uberaba, Curitiba." src="'+str.replace('http://www.powempresas.com/images/por_empresa','https://images.powempresas.com/portais')+'" itemprop="image"></div></div>';
        return retorno;
    },
};


var filtro = {
    tipo: function( item, add ){
        var atual = $('#tipo').attr('data-valor');
        var objeto = atual.split(',');
        var complemento = [];
        if ( add )
        {
            objeto.push(item);
            complemento = objeto;
        }
        else
        {
            $.each(objeto,function(k,v){
                if ( v !== item )
                {
                    complemento.push(v);
                }
            });
        }
        if ( complemento[0] == '' )
        {
            complemento.shift();
        }
        if ( complemento.length == 0 )
        {
            $('#tipo .valor').html('Selecione Tipo');
        }
        else if ( complemento.length == 1 )
        {
            var classe = '.elemento-'+ complemento[0];
            var titulo = $(classe).attr('data-titulo');
            $('#tipo .valor').html( titulo );
            
        }
        else
        {
            var classe = '.elemento-'+ complemento[0];
            var titulo = $(classe).attr('data-titulo');
            $('#tipo .valor').html( titulo + ' + ' + ( complemento.length -1 ) );
            
        }
        var a = complemento.join(',');
        $('#tipo').attr('data-valor',a);
    },
    cidade_set:false,
    cidades_ultima_consulta:false,
    set_cidade: function(data) {
        filtro.cidade_set = data;
    },
    get_cidades: function(){
        $('.resultado-cidade').html('');
        var busca = $('#cidade-busca').val();
        filtro.cidades_ultima_consulta = busca;
        setTimeout(function(){
            if ( $('#cidade-busca').val() === filtro.cidades_ultima_consulta )
            {
                $.getJSON( URI + 'cidades/busca_cidade_json/' + busca).done(function(data) {
                    if ( $('#cidade-busca').val() === filtro.cidades_ultima_consulta )
                    {
                        filtro.monta_resposta(data,'cidade');
                    }
                    else
                    {
                        filtro.get_cidades()();
                    }
                })
                .fail(function() {
                    filtro.get_cidades()();
                });
            }
            else
            {
                filtro.get_cidades()();
            }
        },300);
    },
    bairro : function(item,add){
        var atual = $('#bairro').attr('data-valor');
        var objeto = atual.split(',');
        var complemento = [];
        if ( add )
        {
            objeto.push(item);
            complemento = objeto;
            
            var classe = '.elemento-'+ item;
            var classe_marcado = '.resultado-bairro .elemento-'+ item;
            var a = {};
            a.descricao = $(classe).attr('data-titulo');
            a.id = item;
            filtro.monta_resposta(a,'bairro-marcado',true);
            $(classe_marcado).remove();
            console.log(a);
            
        }
        else
        {
            var classe = '.elemento-'+ item;
            var a = {};
            a.descricao = $(classe).attr('data-titulo');
            a.id = item;
            filtro.monta_resposta(a,'bairro',true);
            $('.resultado-bairro-marcado ' + classe).remove();
            $(classe + ' .item-' + item).removeAttr('checked');
            $(classe).removeClass('marcado');
            $.each(objeto,function(k,v){
                if ( v !== item )
                {
                    complemento.push(v);
                }
            });
        }
        if ( complemento[0] === '' )
        {
            complemento.shift();
        }
        if ( complemento.length === 0 )
        {
            $('#bairro .valor').html('Selecione Bairro');
        }
        else if ( complemento.length === 1 )
        {
            var classe = '.elemento-'+ complemento[0];
            var titulo = $(classe).attr('data-titulo');
            $('#bairro .valor').html( titulo );
            
        }
        else
        {
            var classe = '.elemento-'+ complemento[0];
            var titulo = $(classe).attr('data-titulo');
            $('#bairro .valor').html( titulo + ' + ' + ( complemento.length -1 ) );
            
        }
        var a = complemento.join(',');
        $('#bairro').attr('data-valor',a);
    },
    set_bairro: function(item,add){
        var atual = $('.localizacao').attr('data-bairro');
        if ( atual != '' )
        {
            var objeto = atual.split(',');
        }
        else
        {
            var objeto = [];
        }
        var complemento = [];
        if ( add )
        {
            objeto.push(item);
            complemento = objeto;
        }
        else
        {
            $.each(objeto,function(k,v){
                if ( v !== item )
                {
                    complemento.push(v);
                }
            });
        }
        var a = complemento.join(',');
        $('.localizacao').attr('data-bairro',a);
    },
    bairros_ultima_consulta:false,
    get_bairros: function(){
        if ( filtro.cidade_set )
        {
            $('.resultado-bairro').html('');
            var busca = $('#bairro-busca').val();
            filtro.bairros_ultima_consulta = busca;
            setTimeout(function(){
                if ( $('#bairro-busca').val() === filtro.bairros_ultima_consulta )
                {
                    $.getJSON( URI + 'funcoes/set_bairros_por_cidade/' + filtro.cidade_set + '/' + filtro.bairros_ultima_consulta).done(function(data) {
                        if ( $('#bairro-busca').val() === filtro.bairros_ultima_consulta )
                        {
                            filtro.monta_resposta(data,'bairro');
                        }
                        else
                        {
                            filtro.get_bairros()();
                        }
                    })
                    .fail(function() {
                        filtro.get_bairros()();
                    });
                }
                else
                {
                    filtro.get_bairros()();
                }
            },300);
        }
        
    },
    monta_resposta: function(data,tipo,marcado){
        var retorno = '';
        if ( data )
        {
            if (  marcado )
            {
                retorno += filtro.modelo_bairro(data,marcado);
            }
            else
            {
                $.each(data,function(k,v){
                    if ( tipo === 'cidade' )
                    {
                        retorno += filtro.modelo_cidade(v);
                    }
                    else
                    {
                        retorno += filtro.modelo_bairro(v,marcado);

                    }
                });
            }
            
        }
        else
        {
            retorno = '<li>nenhum item encontrado, tente novamente.</li>';
        }
        if ( marcado )
        {
            $('.resultado-' + tipo ).prepend(retorno);
        }
        else
        {
            $('.resultado-' + tipo ).html(retorno);
        }
    },
    modelo_cidade:function(item){
        var retorno = '<li class="text-left cidade-item" data-item="' + item.link + '" data-titulo="' + item.descricao + '">' + item.descricao + '</li>';
        return retorno;
                                                    
    },
    modelo_bairro:function(item, marcado){
        var retorno = '<li class="bairro-item ' + (marcado ? 'marcado' : '') + ' elemento-' + item.id + '" data-item="' + item.id + '" data-titulo="' + item.descricao + '">';
        retorno += '<div class="checkbox"><label>';
        //retorno += '<input type="checkbox" data-item="' + item.id + '" class="bairro-checkbox item-' + item.id + '" ' + (marcado ? 'checked="checked"' : '') + '> ';
        retorno += item.descricao + '';
        retorno += '</label></div></li>';
        return retorno;
    },
    xs_posiciona_filtro: function(){
        var interna = $('.interna').length;
        if ( window.innerWidth < 767 )
        {
            if ( interna > 0 )
            {
                var conteudo = $('.filtro').html();
                $('.container .filtro').html('');
                if ( conteudo.length > 0 )
                {
                    $('.reserva-modal .modal-body').html('<div class="filtro">'+conteudo+'</div>');
                }
                $('.busca-xs').addClass('show').removeClass('hide');

                $('.reserva-modal').modal('hide');
                
            }
        }
        else
        {
            $('.busca-xs').addClass('hide').removeClass('show');
            
        }
    },
    imovel:function(){
        var link = URI + 'imovel/0/' + $('.codigo').val();
        window.open(link, '_self');
    },
    submit: function(){
        setTimeout(function(){},400);
        var elemento = filtro.set_elementos();
        console.log(elemento);
        $('.publicidade-inicial').animate({
                                    opacity: 0.15,
                                    left: "+=50",
                                    height: "toggle"
                                  }, 300, function() {
                                          $('.inicial').addClass('interna').removeClass('inicial');
                                          $('.publicidade-inicial').remove();
                                          
                                  });
        if ( $('.codigo').val() !== '' )
        {
            filtro.imovel();
        }
        else
        {
            if ( $('.id_empresa').val() !== undefined )
            {
                console.log($('.id_empresa').val());
                var json = JSON.stringify(elemento);
                var url = URI + $('.id_empresa').attr('data-item') + '?itens=' + json;
                window.open(url,'_self');
            }
            else
            {
                var url = URI + 'index/pesquisa/';
//                console.log(url);
                var json = JSON.stringify(elemento);
                $.getJSON(url,{'itens':json}).done(function(data){
                    $('.resultado').html('');
                    $(window).scrollTop(0);
                    filtro.set_data(data);
                    destaques.set();
                    filtro.xs_posiciona_filtro();
                    $('.publicidade-home').remove()
                }).fail(function(e, r){
                    if ( filtro.qtde_incidentes > 2 )    
                    {
                        alert('Desculpe, tivemos problemas de comunicação, tente novamente. R1');
                        filtro.qtde_incidentes = 0;
                    }
                    filtro.qtde_incidentes++;
                   filtro.submit();
                });
                
                var url_pesquisa = URI + 'index/log_pesquisa/';
                $.getJSON(url_pesquisa,{'itens':json});
            }
            
        }
        
    },
    qtde_incidentes:0,
    paginacao: function(){
        var url = URI + 'index/pesquisa/' + $('.btn-proximo').attr('data-url');
        $.getJSON(url).done(function(data){
            filtro.set_data(data);
        }).fail(function(){
            if ( LOCALHOST )    
            {
                alert('Desculpe, não conseguimos comunicação, tente novamente. P1');
            }
            filtro.paginacao();
        });
    },
    set_data: function(data){
        $('.espaco-titulo-h1').html('<p>' + data.total + ' - </p><h1>' + data.h1 + '</h1>');
        $('.resultado').append(data.itens);
        $('.ordenacao').html(data.ordem);
        if ( data.total > 20 )
        {
            $('.btn-proximo').attr('data-url',data.link_proximo.url).removeClass('hide');
        }
        else
        {
            $('.btn-proximo').attr('data-url',data.link_proximo.url).addClass('hide');
        }
        $('.btn-proximo span.qtde-atual').html(data.link_proximo.atual);
        $('.btn-proximo span.qtde-total').html(data.total);
        $('.topo').removeClass('hide');
        window.history.pushState('Salvo','Documento Salvo', data.url);
        window.title = data.h1;
        document.title = data.h1;
        var option_popover = {
            content : function(){
                var cont = $('.popover_ordem .popover-inner').html();
                return cont;
            },
            placement : 'bottom',
            html : true,
            trigger: 'click',
            animation : true
        };
        $('.container-fluid .ordenacao .ordem').popover(option_popover);
        $('.filtro .breadcrumb').removeClass('hide').addClass('show').html(data.breadcrumb);
        $('.banner-nao-encontrei').removeClass('hide').addClass('show');
        publicidade.set_publicidade();
        estatistica.set();
        setTimeout(function(){
            filtro.xs_posiciona_filtro();
            $('.google-tags').html('');
            $('.google-tags').html(data.google_tags);
        },200);
    },
    set_elementos: function(){
        var retorno = {};
        $.each(filtro.elementos,function(k,v){
            switch(v.tipo)
            {
                case 'attr':
                    retorno[k] = $('#' + k).attr('data-valor');
                    break;
                case 'attr_local':
                    retorno[k] = $('.localizacao').attr('data-' + k);
                    break;
                case 'val':
                    retorno[k] = $('#' + k).val();
                    break;
                case 'check':
                    retorno[k] = $('.' + k + ':checked').length;
                    break;
                case 'url':
                    retorno[k] = $('.' + k + '').attr('data-item');
                    break;
                case 'range':
                    var z = [];
                    $( ' .' + k + ':checked').each(function( a, b ){
                        z.push($(b).val());
                    });
                    retorno[k] = z;
                    break;
            }
        });
        return retorno;
    },
    elementos: {
        'id_empresa': {'url':false,'tipo':'val'},
        'tipo_negocio': {'url':true,'tipo':'attr'},
        'tipo': {'url':true,'tipo':'attr'},
        'cidade': {'url':true,'tipo':'attr_local'},
        'bairro': {'url':true,'tipo':'attr_local'},
        'valor_min': {'url':false,'tipo':'val'},
        'valor_max': {'url':false,'tipo':'val'},
        'area_min': {'url':false,'tipo':'val'},
        'area_max': {'url':false,'tipo':'val'},
        'residencial': {'url':false,'tipo':'check'},
        'comercial': {'url':false,'tipo':'check'},
        'aceita_troca': {'url':false,'tipo':'check'},
        'condominio': {'url':false,'tipo':'check'},
        'mobiliado': {'url':false,'tipo':'check'},
        'quartos': {'url':true,'tipo':'range'},
        'banheiros': {'url':false,'tipo':'range'},
        'vagas': {'url':false,'tipo':'range'}
    }
};
$('.ver-telefone-whats, .ver-telefone-whats-lista, .compartilha-telefone-whats-lista').on({
    click :  function(){
            var id_tabela = $(this).attr('data-item');
            var url_t =  URL_HTTP + '/index/set_log/' + id_tabela;
            $.get( url_t, function(data){ console.log(data); } );
            var url_l =  URL_HTTP + '/index/set_log_ligacao_whatsapp/' + $('.imovel').attr('data-imovel') + '/' + $('.imovel').attr('data-log');
            $.get( url_l, function(data){ console.log(data); } );
        }
});