var User = { init: function() { $('a.status_info').bind('click', User.abre_status_info); } , abre_status_info: function(e) { e.preventDefault(); Lightbox.abre('#status_pedido'); } }; var Checkout = { init: function() {//alert('Add'); $('.checkout_page .pagamento h3 a.alterar').bind('click', Checkout.abre_form); $('.checkout_page a.cancelar').bind('click', Checkout.fecha_form); $('.checkout_page #meu_endereco').bind('change', Checkout.muda); $('.checkout_page a.atualizar').bind('click', Checkout.atualiza_endereco); $('.checkout_page a.concluir').bind('click', Checkout.conclui); }, abre_form: function() { Checkout.toggleHabilita(); $(this).parent().hide(); $('.pagamento .box_cep, .pagamento .botoes').slideDown('fast'); }, fecha_form: function() { Checkout.toggleHabilita(); $('.checkout_page .pagamento h3 .presets').show(); $('.pagamento .box_cep, .pagamento .botoes').slideUp('fast'); }, muda: function() { if($(this).val()==0) { Checkout.restaura(); } else { // busca os dados do endereço var parametros = "classe=ConsumidorEndereco"; parametros += "&metodo=ajaxGetDados"; parametros += "&id=" + $(this).val(); $.ajax({type:"GET", datatype:'json', url:ajax_path, data:parametros, success:function(retorno) { if(retorno!='null') { //console.log(retorno); var vetor = limpa_retorno_ajax(retorno); //console.log(vetor); if(vetor.erro==0) { var dados = vetor.dados[0]; //console.log(dados); var atende = 1; //Checkout.checa_raio(dados.latitude, dados.longitude); if(atende==1) { Checkout.aceita_endereco(dados); } else { alert('Este endereço não é atendido pelo estabelecimento.'); Checkout.restaura(); } } else { alert(vetor.msg); } } }}); } }, aceita_endereco: function(dados) { //console.log(dados); // preenche o formulário $('#cep').val(dados.cep); $('#logradouro').val(dados.logradouro); $('#numero').val(dados.numero); $('#complemento').val(dados.complemento); $('#bairro').val(dados.bairro); $('#cidade').val(dados.cidade); $('#estado').val(dados.estado); $('#latitude').val(dados.latitude); $('#longitude').val(dados.longitude); // atualiza o endereço da sessão Addresses.set_endereco(dados.logradouro, dados.numero, dados.cep, dados.cidade, dados.estado, dados.latitude, dados.longitude, dados.bairro); }, checa_raio: function(lat, lng) {//alert(lat + ', ' + lng); var bool_atende = false; // verifica a possibilidade de efetuar o pedido no endereço escolhido // em função do raio de entrega do restaurante var parametros = "classe=Carrinho"; parametros += "&metodo=ajaxChecaRaio"; parametros += "&lat=" + lat; parametros += "&lng=" + lng; $.ajax({async:false, type:"GET", datatype:'json', url:ajax_path, data:parametros, success:function(retorno) { if(retorno!='null') { //console.log(retorno); var vetor = limpa_retorno_ajax(retorno); //console.log(vetor.bool_atende); bool_atende = vetor.bool_atende; } //callback(); }}); return bool_atende; }, restaura: function() { // restaura os campos com os valores originais de quando carregou a página $('#cep').val($('#or_cep').val()); $('#logradouro').val($('#or_logradouro').val()); $('#numero').val($('#or_numero').val()); $('#complemento').val($('#or_complemento').val()); $('#bairro').val($('#or_bairro').val()); $('#cidade').val($('#or_cidade').val()); $('#estado').val($('#or_estado').val()); }, toggleHabilita: function() { // var opcao = $('#logradouro').attr('disabled') ? false : true; // $('#cep').attr('disabled', opcao); // $('#logradouro').attr('disabled', opcao); // $('#numero').attr('disabled', opcao); // $('#bairro').attr('disabled', opcao); // $('#cidade').attr('disabled', opcao); // $('#estado').attr('disabled', opcao); } , atualiza_endereco: function() { //submete o endereço para localização e consulta de raio de entrega var parametros = "classe=Cep"; parametros += "&metodo=ajaxGetLatLng"; parametros += "&cep=" + $('#cep').val(); parametros += "&logradouro=" + $('#logradouro').val(); parametros += "&numero=" + $('#numero').val(); parametros += "&complemento=" + $('#complemento').val(); parametros += "&bairro=" + $('#bairro').val(); parametros += "&cidade=" + $('#cidade').val(); parametros += "&estado=" + $('#estado').val(); parametros += "&id_pais=1"; parametros += "&pais=Brasil"; $.ajax({type:"GET", datatype:'json', url:ajax_path, data:parametros, success:function(retorno) { if(retorno!='null') { //console.log(retorno); var vetor = limpa_retorno_ajax(retorno); //console.log(vetor); var dados = vetor.data; if(vetor.erro==0) { var atende = 1; //Checkout.checa_raio(dados.latitude, dados.longitude); console.log(atende); if(atende==1) { Checkout.aceita_endereco(dados); } else { alert('Este endereço não é atendido pelo estabelecimento.'); Checkout.restaura(); } Checkout.fecha_form(); } else { alert(vetor.msg); } } }}); }, conclui: function(e) { //alert('CONCLUIR pedido'); e.preventDefault(); var valida = true; var id_forma_pagamento; //alert(id_forma_pagamento); if($(this).hasClass('dinheiro')) { id_forma_pagamento = 1; } else if($(this).hasClass('paypal')) { id_forma_pagamento = 2; } else { id_forma_pagamento = $('input[name=opt_cartao]:checked').attr('data-id'); } // valida o formulário if(typeof id_forma_pagamento=='undefined') { alert('É necessário escolher uma forma de pagamento para concluir o pedido.'); valida = false; } else { $('#id_forma_pagamento').val(id_forma_pagamento); } if(valida && $('#id_tipo_entrega').val()==1 && ( // $('#cep').val()=='' || $('#logradouro').val()=='' || $('#numero').val()=='' || $('#bairro').val()=='' || $('#cidade').val()=='' || $('#estado').val()=='' ) ) { alert('Preencha seu endereço corretamente.'); valida = false; } // concluindo o pedido (gera o número e redireciona) if(valida) { Checkout.toggleHabilita(); $('#form_checkout')[0].submit(); } // ----- */ } }; var Addresses = { init: function() {//alert('Add'); $('.col-endereco .cancelar').bind('click', Addresses.cancela); $('.col-dados>h3 a.new').bind('click', Addresses.abre_form); $('#lista_enderecos .botoes .edit').bind('click', Addresses.copia); }, copia: function(e) { //alert('teste'); e.preventDefault(); var pai = $(this).closest('.box'); $('.col-endereco h3').text("change address"); $('#id_edit').val($(this).attr('data-id')); // preenche os campos do form $('#apelido').val($(pai).find('.data_apelido').text()); $('#cep').val($(pai).find('.data_cep').text()); $('#logradouro').val($(pai).find('.data_logradouro').text()); $('#numero').val($(pai).find('.data_numero').text()); $('#complemento').val($(pai).find('.data_complemento').text()); $('#bairro').val($(pai).find('.data_bairro').text()); $('#cidade').val($(pai).find('.data_cidade').text()); $('#estado').val($(pai).find('.data_estado').text()); $('.col-endereco').slideDown(); }, cancela: function(e) { //alert('cancela'); e.preventDefault(); $('#form_cadastro')[0].reset(); $('.col-endereco').slideUp(); }, abre_form: function(e) { //alert('abre_form') e.preventDefault(); $('#form_cadastro')[0].reset(); $('.col-endereco h3').text("New address"); $('.col-endereco').slideDown(); }, limpa: function() { }, set_endereco: function(logradouro, numero, cep, cidade, estado, latitude, longitude, bairro) { /* definindo o endereço do header var endereco = $('#address1').val(); if($('#address1').val()!='') { endereco += ', ' + $('#address2').val(); } docCookies.setItem('endereco', endereco); // */ // busca latitude e longitude var parametros = "classe=Consumidor"; parametros += "&metodo=ajaxSetEnderecoSessao"; parametros += "&logradouro=" + logradouro; parametros += "&numero=" + numero; parametros += "&cep=" + cep; parametros += "&cidade=" + cidade; parametros += "&estado=" + estado; parametros += "&latitude=" + latitude; parametros += "&longitude=" + longitude; parametros += "&bairro=" + bairro; $.ajax({async: false, type:"GET", datatype:'json', url:ajax_path, data:parametros, success:function(retorno) { if(retorno!='null') { //console.log(retorno); var vetor = limpa_retorno_ajax(retorno); //console.log(vetor); if(vetor.erro==0) { //alert('sucesso no set_endereco()'); } else { alert(vetor.msg); } } }}); } } var Rating = { init: function() { $('.page_avaliar #btn_avaliar').bind('click', Rating.valida); }, valida: function(e) { e.preventDefault(); var valida = true; var nota = $('[name=nota]:checked').val(); if(typeof nota == 'undefined') { alert('Você tem que escolher uma nota para avaliar o restaurante.'); valida = false; } if(valida) { $('#form_avalia')[0].submit(); } return false; } } // iniciando $(document).ready(function() { User.init(); Checkout.init(); Addresses.init(); Rating.init(); });