﻿$(document).ready(function () {
    tipoBuscaChange();
    $('input[name=TipoBusca]').change(function () {
        tipoBuscaChange();
    });

    // Bindings dos select lists
    $('#Negocio').change(function () {
        negocioChange();
    });

    $('#UF').change(function () {
        carregaCidade($('#UF').val());
    });

    $('#CidadeId').change(function () {
        carregaBairro($('#UF').val(), $("#CidadeId option:selected").text());
    });

    $('#BairroId').change(function () {
        carregaTipoImovel($('#UF').val(), $("#CidadeId option:selected").text(), $("#BairroId option:selected").text());
    });
});

function negocioChange() {
    carregaEstado();
}

function tipoBuscaChange() {
    var tipoBusca = $('input[name=TipoBusca]:checked').val();

    if (tipoBusca == "Especifica") {
        $('#busca-none').hide();
        $('#busca-codigo').hide();
        
        $("#busca-especifica").show();
    }
    else if (tipoBusca == "Codigo") {
        $('#busca-none').hide();
        $('#busca-especifica').hide();

        $("#busca-codigo").show();
    }
}

function getLancamento() {
    var negocio = $('#Negocio').val();

    if ((negocio == "LANCAMENTO") || (negocio == "VENDA FRACIONADA")) {
        return "SIM";
    }
    else {
        return "NAO";
    }
}

function getNegocio() {
    var negocio = $('#Negocio').val();

    if (negocio == "LANCAMENTO") {
        return "VENDA";
    }
    else {
        return negocio;
    }
}

function carregaEstado() {
    var endereco = '/Busca/UF';

    $('#UF').attr("disabled", true);
    $('#CidadeId').attr("disabled", true);
    $('#BairroId').attr("disabled", true);
    $('#CategoriaId').attr("disabled", true);

    var parametros = {
        Negocio: getNegocio(),
        LancamentoFlag: getLancamento()
    }

    $.ajax({
        url: endereco,
        type: 'POST',
        data: JSON.stringify(parametros),
        datatype: 'json',
        contentType: 'application/json; chartset=utf-8',
        success: function (data) {
            populaElemento(data, 'UF');
            carregaCidade($('#UF').val());
        }
    });
}

function carregaCidade(uf) {
    var endereco = '/Busca/Cidade';

    $('#Cidade').attr("disabled", true);
    $('#Bairro').attr("disabled", true);
    $('#CategoriaId').attr("disabled", true);

    var parametros = {
        Negocio: getNegocio(),
        LancamentoFlag: getLancamento(),
        UF: uf
    }

    $.ajax({
        url: endereco,
        type: 'POST',
        data: JSON.stringify(parametros),
        datatype: 'json',
        contentType: 'application/json; chartset=utf-8',
        success: function (data) {
            populaElemento(data, 'CidadeId');
            carregaBairro(uf, $("#CidadeId option:selected").text());
        }
    });
}

function carregaBairro(uf, cidade) {
    var endereco = '/Busca/Bairro';

    $('#BairroId').attr("disabled", true);
    $('#CategoriaId').attr("disabled", true);

    var parametros = {
        Negocio: getNegocio(),
        LancamentoFlag: getLancamento(),
        UF: uf,
        Cidade: cidade,
        CidadeId: $("#CidadeId").val()
    }

    $.ajax({
        url: endereco,
        type: 'POST',
        data: JSON.stringify(parametros),
        datatype: 'json',
        contentType: 'application/json; chartset=utf-8',
        success: function (data) {
            populaElemento(data, 'BairroId');
            carregaTipoImovel(uf, cidade, $("#BairroId option:selected").text());
        }
    });
}

function carregaTipoImovel(uf, cidade, bairro) {
    var endereco = '/Busca/TipoImovel';

    if (bairro == 'Todos os Bairros') {
        bairro = '';
    }

    $('#CategoriaId').attr("disabled", true);

    var parametros = {
        Negocio: getNegocio(),
        LancamentoFlag: getLancamento(),
        UF: uf,
        Cidade: cidade,
        CidadeId: $("#CidadeId").val(),
        Bairro: bairro
    }

    $.ajax({
        url: endereco,
        type: 'POST',
        data: JSON.stringify(parametros),
        datatype: 'json',
        contentType: 'application/json; chartset=utf-8',
        success: function (data) {
            populaElemento(data, 'CategoriaId');
        }
    });
}


function populaElemento(data, elemento) {
    var elementoId = '#' + elemento;
    $(elementoId).empty();

    if (elemento == 'CidadeId') {
        $(elementoId).append($('<option/>').val('').text('Todas'));
    }
    if (elemento == 'BairroId') {
        $(elementoId).append($('<option/>').val('').text('Todos os Bairros'));
    }
    else if (elemento == 'CategoriaId') {
        $(elementoId).append($('<option/>').val('').text('Todos os Tipos'));
    }

    $.each(data, function () {
        $(elementoId).append($('<option/>').val(this.Value).text(this.Text));
    });

    $(elementoId).removeAttr("disabled");
}
