PageSourceSearch

https://eabimoveis.com/templates/t4_blank/acm/simulator/js/app.js

js eabimoveis.com collected 2026-10-10 01:23:59 UTC 5,152 bytes, 122 lines download raw bytes

1
2function atualizarGrafico(parcelaMensal, rendaMinima, amortizacaoFormatada, taxaJurosMensal) {
3    const somaTotal = parcelaMensal + rendaMinima + amortizacaoFormatada + taxaJurosMensal;
4    const parcelaMensalPercent = (parcelaMensal / somaTotal) * 100;
5    const rendaMinimaPercent = (rendaMinima / somaTotal) * 100;
6    const amortizacaoFormatadaPercent = (amortizacaoFormatada / somaTotal) * 100;
7    const taxaJurosMensalPercent = (taxaJurosMensal / somaTotal) * 100;
8
9    const cores = [
10        `var(--cor-1) 0%`,
11        `var(--cor-1) ${parcelaMensalPercent}%`,
12        `var(--cor-2) ${parcelaMensalPercent}%`,
13        `var(--cor-2) ${parcelaMensalPercent + rendaMinimaPercent}%`,
14        `var(--cor-3) ${parcelaMensalPercent + rendaMinimaPercent}%`,
15        `var(--cor-3) ${parcelaMensalPercent + rendaMinimaPercent + amortizacaoFormatadaPercent}%`,
16        `var(--cor-4) ${parcelaMensalPercent + rendaMinimaPercent + amortizacaoFormatadaPercent}%`,
17        `var(--cor-4) 100%`
18    ];
19    // Atualiza o estilo do gráfico de pizza com as cores calculadas
20    document.querySelector('.grafico-de-pizza').style.background = `conic-gradient(${cores.join(', ')})`;
21}
22
23function simulaFinanciamento() {
24
25    const getEntrada = jQuery("#range-entrada").val();
26    const getPreco = parseFloat(jQuery("#range-preco").val());
27    const getJuros = jQuery("#range-juros").val();
28    const getFinancimento = jQuery("#range-financiamento").val();
29
30    // variaveis de controle para filtro da URL
31    let faixa_valor_min = getPreco - (getPreco * 0.10);
32    let faixa_valor_max = getPreco + (getPreco * 0.10);
33    var url = "imoveis-venda?filter[categoria_catid]=-40&filter[faixa_valor_venda]=" + faixa_valor_min + "-" + faixa_valor_max + "&filter[faixa_valor_venda][min]=" + faixa_valor_min + "&filter[faixa_valor_venda][max]=" + faixa_valor_max;
34
35    // Entradas iniciais
36    const entrada_porcento = getEntrada / 100;
37    const taxa_juros_mensal = (getJuros / 100) / 12;
38    const preco_imovel = getPreco;
39    const financiamento = getFinancimento * 12;
40
41    // Valores finais para a função
42    var entrada = (entrada_porcento * preco_imovel);
43    var valor_emprestimo = (preco_imovel - entrada);
44    var juros_mensal_real = (valor_emprestimo * taxa_juros_mensal);
45    var amortizacao = (valor_emprestimo / financiamento);
46    var parcela_mensal = (amortizacao + juros_mensal_real);
47    var renda_minima = (parcela_mensal / 0.35);
48
49    var parcelaMensal = parcela_mensal.toFixed(2);
50    var rendaMinima = (renda_minima).toFixed(2);
51    var amortizacaoFormatada = (amortizacao).toFixed(2);
52    var taxaJurosMensal = (juros_mensal_real).toFixed(2);
53
54
55    jQuery("#juros_real").text('Juros' + " R$ " + "(" + formatarNumero(taxaJurosMensal) + " por mês)");
56    jQuery("#amortizacao").text('Amortização' + " R$ " + "(" + formatarNumero(amortizacaoFormatada) + " por mês)");
57    jQuery("#renda").text('Renda mínima' + " R$ " + "(" + formatarNumero(rendaMinima) + ")");
58    jQuery("#parcela").text("R$ " + formatarNumero(parcelaMensal) + ' /mês');
59    jQuery("#entrada-valor").text("R$ " + formatarNumero(entrada));
60    jQuery("#simulatorURL").attr('href', url);
61
62    // inclui entrada de texto dinamicas 
63    jQuery("#entrada-percentual").text(getEntrada + '%');
64    jQuery("#juros").text(getJuros + '%');
65    jQuery("#financiamento").text(getFinancimento + ' anos');
66    jQuery("#preco-imovel").text("R$ " + formatarNumero(getPreco));
67
68    atualizarGrafico(parseFloat(parcelaMensal), parseFloat(rendaMinima), parseFloat(amortizacaoFormatada), parseFloat(taxaJurosMensal));
69};        
70
71function formatarNumero(numero) {
72    let numeroString = numero.toString();
73
74    if (numero >= 1000) {
75        // Adicionar separadores de milhares
76        return numeroString.replace(/\B(?=(\d{3})+(?!\d))/g, '.');
77    } else {
78        // Se o número for menor que 1000, retornar como está
79        return numeroString;
80    }
81};
82
83function setValue(element) {
84    let value = element.value;
85    let id = element.id;
86    let classH1 = element.className;
87
88    switch (id) {
89        case 'range-preco':
90            // Atualiza o valor do h1 com o valor do input formatado
91            jQuery("#" + classH1).text("R$ " + formatarNumero(value));
92
93            let juros = jQuery("#range-entrada").val();
94            let entrada = (value * juros) / 100;
95            jQuery("#entrada-valor").text("R$ " + formatarNumero(entrada));
96            break;
97        case 'range-juros':
98            jQuery("#juros").text(formatarNumero(value) + "%");
99            break;
100        case 'range-financiamento':
101            jQuery("#financiamento").text(formatarNumero(value) + " anos");
102            break;
103    }
104
105    jQuery("#" + id).attr("value", value);
106    simulaFinanciamento();
107};
108
109function setEntrada(element) {
110    let percentual = jQuery(element).val();
111    let precoImovel = jQuery("#range-preco").val();
112    let entrada = (precoImovel * percentual) / 100;
113
114    jQuery("#entrada-percentual").text(percentual + "%");
115    jQuery("#entrada-valor").text("R$ " + formatarNumero(entrada));
116    simulaFinanciamento();
117};
118
119
120jQuery(document).ready(function(){
121    simulaFinanciamento();
122});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.