// JavaScript Document $(document).ready(function(){ simulador.individual.ready(); simulador.familiar.ready(); simulador.ready(); }); var Simulador = function() { SimuladorIndividual = function() { var that = {}; that.idade = ""; that.cobertura = ""; that.acomodacao = ""; that.plano = ""; that.dental = ""; that.opcionais = ""; that.container = "li#aba-1"; that.url_simulador = url_simulador_individual; that.name = 'individual'; that.ready = function(context){ if(!context) context = that context.container = $(context.container); $('select', context.container).attr('disabled', true); $('select.idade', context.container).attr('disabled', false); $('select.idade', context.container).change(context.setIdade); $('select.cobertura', context.container).change(context.setCobertura); $('select.acomodacao', context.container).change(context.setAcomodacao); $('select.plano', context.container).change(context.setPlano); $('select.dental', context.container).change(context.setDental); $('select.opcionais', context.container).change(context.setOpcionais); $(".download", context.container).click(function () { $(".form_to_pdf", context.container).submit(); }); }; that.setIdade = function(){ simulador.setValueAndShowNext(simulador[that.name], this, 'idade', 'cobertura'); }; that.setCobertura = function(){ if(simulador.setValueAndShowNext(simulador[that.name], this, 'cobertura', 'acomodacao')) simulador.show_acomodacao(simulador[that.name]); }; that.setAcomodacao = function(){ if(simulador.setValueAndShowNext(simulador[that.name], this, 'acomodacao', 'plano')) simulador.show_hospitais(simulador[that.name]); $('.resultado', simulador[that.name].container).hide(); }; that.setPlano = function(){ simulador.setValueAndShowNext(simulador[that.name], this, 'plano', 'dental'); $('.resultado .valores', simulador[that.name].container).hide(); if (simulador[that.name].plano != "") { $.each(dados_planos, function() { if (this['rede_comercial'] == simulador[that.name].plano) { $('.resultado .plano .tipo', simulador[that.name].container).attr('class', 'tipo '+this['plano']).show(); $('.resultado .plano .nome', simulador[that.name].container).text(this['plano_desc']); $('.resultado', simulador[that.name].container).show(); } }); } else { $('.resultado', simulador[that.name].container).hide(); } }; that.setDental = function(){ simulador.setValueAndShowNext(simulador[that.name], this, 'dental', 'opcionais'); }; that.setOpcionais = function(){ if(simulador.setValueAndShowNext(simulador[that.name], this, 'opcionais', null)) simulador.simular(simulador[that.name]); }; that.getData = function(){ return { idade: that.idade, plano: that.plano, dental: that.dental, opcionais: that.opcionais }; } return that; }; SimuladorFamiliar = function() { var that = new SimuladorIndividual(); that.dependentes = []; that.container = "li#aba-2"; that.url_simulador = url_simulador_familiar; that.name = 'familiar'; that.ready = function(){ simulador.individual.ready(that); $('.dependentes select', that.container).attr('disabled', false).change(that.setDependente); $('.add-dependentes', that.container).click(that.addDependente); }; that.setDependente = function(){ that.dependentes = []; $('.dependentes > div', that.container).each(function(){ var tipo = $(".tipo_dependente", this).val(), idade = $(".idade_dependente", this).val(); if(tipo && idade) that.dependentes.push(tipo+"_"+idade); }); $('.form_to_pdf input[name="dependentes"]', that.container).val(that.dependentes.join(',')); simulador.simular(simulador[that.name]); }; that.addDependente = function(){ var clone = $('.dependentes > div:first-of-type', that.container).clone(true); $('.dependentes', that.container).append(clone); }; that.getData = function(){ return { idade: that.idade, plano: that.plano, dental: that.dental, opcionais: that.opcionais, dependentes: that.dependentes.join(',') }; } return that; }; this.ready = function(){ $('#formenviar form').submit(this.validadeFormAmigo); $.get('/fale-conosco/corretor/pop/', {}, function(r){ $("#formcorretor").append(r); $('#formcorretor form').submit(simulador.validadeFormCorretor); $('#formcorretor #id_telefone').setMask('phone'); }, 'html'); }; this.simular = function(context){ // Atualizar plano if (context.idade != "" && context.plano != "" && context.dental != "" && context.opcionais != "") { var data = context.getData(); $.post(context.url_simulador, data, function(valores) { // Valor mensal $('.resultado .valor .primeira_parcela', context.container).text(valores['primeira_parcela']); $('.resultado .valor .segunda_parcela', context.container).text(valores['segunda_parcela']); $('.resultado .valor .taxa_adesao', context.container).text(valores['implantacao']); $('.resultado', context.container).show(); $('.resultado .valores', context.container).show(); }, 'json'); } else { $('#valores_simulacao').hide(); } }; this.setValueAndShowNext = function(context, el, cur, next){ context[cur] = ""; if($(el).val()){ context[cur] = $(el).val(); if($('.form_to_pdf input[name="'+cur+'"]', context.container).length > 0) $('.form_to_pdf input[name="'+cur+'"]', context.container).val(context[cur]); if(next) $('select.'+next, context.container).attr('disabled', false); return true; } else { if(next) $('select.'+next, context.container).val('').attr('disabled', true).change(); return false; } }; /* ACOMODACĂO */ this.show_acomodacao = function(context) { $('.acomodacao', context.container).empty().append($('').text("Selecione...")); $.each(dados_planos, function() { if (context.cobertura == this['cobertura'] && $('.acomodacao option.'+this['acomodacao'], context.container).length == 0) { var dados_acomodacao = { 'value': this['acomodacao'], 'class': this['acomodacao'] }; var opt_acomodacao = $('').attr(dados_acomodacao).text('Quarto '+this['acomodacao']); $('.acomodacao', context.container).append(opt_acomodacao); } }); $('.acomodacao', context.container).change(); }; this.show_hospitais = function(context) { // adicionar hospitais de acordo com filtros selecionados $('select.plano', context.container).empty().append($('').text("Selecione...")); $.each(dados_planos, function() { if (context.acomodacao == this['acomodacao'] && context.cobertura == this['cobertura']) { var dados_hospital = { 'value': this['rede_comercial'], // Plano }; var opt_hospital = $('').attr(dados_hospital).text(this['hospitais']); $('select.plano', context.container).append(opt_hospital); } }); }; this.addValidateMessage = function(field, msg){ field.after( $("
").addClass('validate_message').append( $("").html(msg) ) ); }; this.validadeFormAmigo = function() { $('#formenviar .validate_message').remove(); var context = simulador[$('#formenviar').attr('data-context')]; var fields= ['field-name', 'field-email', 'field-friendname', 'field-friendemail', 'message'], fields_names = ['nome', 'email', 'nome do amigo', 'email do amigo', 'mensagem']; $(fields).each(function(i, v){ if(!$.trim($('#formenviar [name="'+v+'"]').val())) simulador.addValidateMessage($('#formenviar [name="'+v+'"]'), 'Preencha o campo '+fields_names[i]+' corretamente'); }); if(!$('#formenviar .validate_message').length) simulador.sendFormAmigo(context); return false; }; this.validadeFormCorretor = function() { $('#formcorretor .validate_message').remove(); var context = simulador[$('#formcorretor').attr('data-context')]; var fields= ['nome', 'email', 'idade', 'municipio', 'bairro', 'telefone', 'contato_preferencial', 'mensagem'], fields_names = ['nome', 'email', 'idade', 'municipio', 'bairro', 'telefone', 'forma de contato', 'mensagem']; $(fields).each(function(i, v){ if(!$.trim($('#formcorretor [name="'+v+'"]').val())) simulador.addValidateMessage($('#formcorretor [name="'+v+'"]'), 'Preencha o campo '+fields_names[i]+' corretamente'); }); if(!$('#formcorretor .validate_message').length) simulador.sendFormCorretor(context); return false; }; this.sendFormAmigo = function(context){ var data = context.getData(); data['destino_nome'] = $.trim($('#formenviar input[name="field-friendname"]').val()); data['destino_email'] = $.trim($('#formenviar input[name="field-friendemail"]').val()); data['origem_nome'] = $.trim($('#formenviar input[name="field-name"]').val()); data['origem_email'] = $.trim($('#formenviar input[name="field-email"]').val()); data['mensagem'] = $.trim($('#formenviar textarea[name="message"]').val()); var url_email = context.url_simulador + '?email=amigo'; $.ajax({ type: "POST", url: url_email, data: data, success: function(retorno) { if (retorno == 'sucesso') { $('#formenviar').slideUp().find(' input, textarea').val(''); $('#OkEnviarAmigo').show(); window.setTimeout("$('#OkEnviarAmigo').fadeOut(1000);", 5000); } else { alert('Erro ao enviar sua mensagem.'); } }, error: function(retorno) { alert('Erro ao enviar sua mensagem.'); }, dataType: 'html' }); }; this.sendFormCorretor = function(context){ $.ajax({ type: "POST", url: url_save_corretor, data: $("#formcorretor form").serialize(), success: function(retorno) { if (retorno == '"success"') { $('#formcorretor').slideUp().find(' input, textarea').val(''); $('#OkCorretor').show(); window.setTimeout("$('#OkCorretor').fadeOut(1000);", 5000); } else { alert('Erro ao enviar sua mensagem.'); } }, error: function(retorno) { alert('Erro ao enviar sua mensagem.'); }, dataType: 'html' }); }; this.individual = new SimuladorIndividual(); this.familiar = new SimuladorFamiliar(); }; var simulador = new Simulador;