Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function(window, $) {
- var _debug = true;
- var log = function() {
- if (!_debug) {
- return;
- }
- return console.log.apply(console, arguments);
- };
- var service = window.devDogExpertSenderService;
- var checkoutCustomerState = {
- isNew: false,
- optin: true
- };
- function bulkBinder(selector, event, callback) {
- //debugger;
- $(selector).each(function() {
- $(this).on(event, callback);
- });
- }
- function evaluateCustomerInterest(value) {
- var r = {
- fitness: false,
- fisioterapia: false,
- estetica: false
- };
- if(!value){
- return r;
- }
- if(value == 'Estética'){
- r.estetica = true;
- }
- if(value == 'Fitness'){
- r.fitness = true;
- }
- if(value == 'Fisioterapia'){
- r.fisioterapia = true;
- }
- return r;
- }
- function commonRegisterSubmitter(e) {
- var $form = $(this);
- log('REAL SUBMIT');
- if (!$form.data('esSubmited')) {
- e.preventDefault();
- var getValue = function(name) {
- return $form.find('input[name="' + name + '"]').val() || null;
- };
- var birthDateValue = getValue('AddOrSetCustomer.BirthDate');
- var birthDayList = birthDateValue.split('/');
- birthDateValue = [birthDayList[2], birthDayList[1], birthDayList[0]].join('-');
- var $interestSelect = $('#AddOrSetCustomer-ExtendedProperties-0-Value');
- var interest = evaluateCustomerInterest($interestSelect.find('[value="' + $interestSelect.val() + '"]').text());
- var genderValue = ($('#AddOrSetCustomer-Gender').val() || '').toLowerCase();
- if(genderValue == 'm'){
- genderValue = 'Masculino';
- }
- if(genderValue == 'f'){
- genderValue = 'Feminino';
- }
- var optin = '';
- if($('#AddOrSetCustomer-ExtendedProperties-1-Value').length) {
- optin = $('#AddOrSetCustomer-ExtendedProperties-1-Value').is(':checked') ? 'true' : 'false';
- }else {
- optin = $('[name="radio-6"]:checked').val() || 'false';
- }
- service.sendSubscriber({
- Name: getValue('AddOrSetCustomer.Name'),
- Email: getValue('AddOrSetCustomer.Email')
- }, {
- origem: 'cadastro',
- estetica: interest.estetica,
- fisioterapia: interest.fisioterapia,
- fitness: interest.fitness,
- optin: optin,
- data_cadastro: service.formatDate(new Date()),
- data_nascimento: birthDateValue,
- cidade: getValue('AddOrSetAddress[0].City'),
- estado: $('#AddOrSetAddress-0-State').val(),
- sexo: genderValue
- })
- .complete(function(r) {
- log('r', r);
- $form.unbind('submit.esDevdog');
- $form.data('esSubmited', true);
- $form.trigger('submit');
- });
- $form.data('esSubmited', true);
- return false;
- }
- return true;
- }
- function bindElements() {
- //debugger;
- //log('devdog.expertsender.js bindElements', $('#gForm'), $('[id="gForm"]'), document.getElementById("gform"), $('body'));
- $('body').bind('submit', '[id="gForm"]', function(e) {
- //e.preventDefault();
- //e.stopPropagation();
- log('SUBMIT ExpertSender Subscribe');
- var $form = $(e.target).closest('form');
- if (!$form.length || ($form.attr('id') || '').toLowerCase() !== 'gform') {
- return;
- }
- //debugger;
- if (!$form.find('[id="email"]').val()) {
- log('Email obrigtório');
- return;
- }
- service.sendSubscriber({
- Name: $form.find('[id="name"]').val(),
- Email: $form.find('[id="email"]').val()
- }, {
- origem: 'newsletter',
- optin: 'true'
- });
- });
- $('.wd-profile-register form').bind('submit.esDevdog', commonRegisterSubmitter);
- $('[data-register] form').bind('submit.esDevdog', commonRegisterSubmitter);
- bulkBinder('.wd-marketing-newsletter.wd-widget-js form', 'submit', function() {
- var $form = $(this);
- service.sendSubscriber({
- Name: $form.find('[name="Name"]').val(),
- Email: $form.find('[name="Email"]').val()
- }, {
- origem: 'newsletter',
- optin: 'true'
- });
- });
- $('body.EasyCheckoutStep').bind('change', '[name="AddOrSetCustomer.ExtendedProperties[].Value"]', function() {
- var $this = $(this);
- if($this.attr('name') !== 'AddOrSetCustomer.ExtendedProperties[].Value'){
- return;
- }
- checkoutCustomerState.optin = $this.is(':checked');
- log('name="AddOrSetCustomer.ExtendedProperties[].Value" change', this, this.value);
- });
- }
- function bindListeners() {
- ko.postbox.subscribe('checkout/signup/done', function() {
- checkoutCustomerState.isNew = true;
- });
- ko.postbox.subscribe('checkout/data/update', function(model) {
- // observa próximo evento com endereço e atualiza dados
- if (!checkoutCustomerState.isNew) {
- return;
- } else {
- if (!checkoutCustomerState.registered) {
- checkoutCustomerState.registered = true;
- var birthDateValue = model.CustomerData.BirthDateExtended;
- var birthDayList = birthDateValue.split('-');
- birthDateValue = [birthDayList[2], birthDayList[1], birthDayList[0]].join('-');
- checkoutCustomerState.data = {
- Name: model.Customer.Name,
- Email: model.Customer.Email
- };
- checkoutCustomerState.customData = {
- optin: checkoutCustomerState.optin.toString(),
- origem: 'checkout',
- data_cadastro: service.formatDate(new Date()),
- data_nascimento: birthDateValue
- // cidade: getValue('AddOrSetAddress[0].City'),
- // estado: getValue('AddOrSetAddress[0].State')
- };
- service.sendSubscriber(checkoutCustomerState.data, checkoutCustomerState.customData);
- return;
- }
- // salva endereço
- var address = model.Checkout.Addresses.length > 0 ? model.Checkout.Addresses[0] : null;
- if (!address) {
- return;
- }
- checkoutCustomerState.customData.cidade = address.City;
- checkoutCustomerState.customData.estado = address.State;
- service.sendSubscriber(checkoutCustomerState.data, checkoutCustomerState.customData);
- checkoutCustomerState.isNew = false;
- }
- });
- var installments = 1;
- ko.postbox.subscribe('checkout/payment/installment/change', function(i){
- installments = i || 1;
- });
- var selectedPaymentOption = null;
- $.subscribe('checkout/summary/payment', function(e, selected) {
- selectedPaymentOption = selected ? ko.toJS(selected) : null;
- });
- // disparado na finalização da compra
- ko.postbox.subscribe('checkout/payment/submit', function(response) {
- try {
- var installmentsText = installments;
- var paymentOption = '';
- if(selectedPaymentOption && selectedPaymentOption.card.getType){
- paymentOption = selectedPaymentOption.card.getType.Description.replace('Pagamento com ', '');
- }
- service.sendOrder((response || {}).Response, paymentOption, installmentsText);
- setTimeout(function() {
- service.sendOrderItems((response || {}).Response);
- }, 120);
- } catch ($er) {
- console.error($er);
- }
- });
- }
- function init() {
- log('devdog.expertsender.binder INIT');
- //bindElements();
- bindListeners();
- setTimeout(bindElements, 2000);
- }
- document.addEventListener('DOMContentLoaded', init, false);
- })(window, jQuery);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement