/* * 2017-2019 Zemez * * JX Newsletter * * NOTICE OF LICENSE * * This source file is subject to the General Public License (GPL 2.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/GPL-2.0 * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade the module to newer * versions in the future. * * @author Zemez (Alexander Grosul) * @copyright 2017-2019 Zemez * @license http://opensource.org/licenses/GPL-2.0 General Public License (GPL 2.0) */ $(document).ready(function(){ initTemplate(); if (popup_status && blocking_popup != 1) { if (!user_newsletter_status) { getNewsletterTemplate('guest', 4000); } else if (user_newsletter_status == 2) { getNewsletterTemplate('user', 4000); } $(document).on('click', '#newsletter_popup', function(event){ event.stopPropagation(); }); //click close button $(document).on('click', '.jxnewsletter-close, .newsletter-overlay', function(){ closePopup(); updateDate(); }); //click submit button $(document).on('click', '.jxnewsletter-submit', function(){ submitNewsletter(); }); $(document).on('focus blur keyup change', '.jxnewsletter-content input[name="email"]', function (){ validateEmail($(this)); }); // GDPR module $(document).on('change', '.jxnewsletter-content input[name="psgdpr_consent_checkbox"]', function() { if ($(this).is(':checked')) { $('button.jxnewsletter-submit').attr('disabled', false); } else { $('button.jxnewsletter-submit').attr('disabled', true); } }); } }); function initTemplate(){ jxnewslettercap = true; // for old module version } function setTemplate(html) { $('body').append('
'+html+'
'); if ($('.jxnewsletter-content input[name="psgdpr_consent_checkbox"]').length) { $('button.jxnewsletter-submit').attr('disabled', true); } } //display successful message function displayMessage(message){ $('body').find('#newsletter_popup .status-message').html('
'+message+'
'); } //function close newsletter popup function closePopup(){ $('#newsletter_popup, .newsletter-overlay').fadeOut(300, function(){ $('#newsletter_popup').remove(); }); } //validate email function validateEmail(email){ var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; return emailReg.test(email); } //newsletter submit function submitNewsletter(){ var status; if ($('#newsletter_popup input[name="disable_popup"]').is(':checked')) { status = 1; } else { status = 0; } var email_field = $('#newsletter_popup').find('input'); var email = email_field.val(); if (!email || !validateEmail(email)) { email_field.addClass('email-error'); } else { email_field.removeClass('email-error'); $.ajax({ type:'POST', url: jxnewsletterAjaxController, data: 'action=sendemail&email='+email+'&status='+status+'&is_logged='+is_logged, dataType:"json", success:function(response) { if (response.success_status) { displayMessage(response.success_status); } else { displayMessage(response.error_status); } } }); } } //ajax function set new date function updateDate(){ var status; if ($('#newsletter_popup input[name="disable_popup"]').is(':checked')) { status = 1; } else { status = 0; } $.ajax({ type: 'POST', url: jxnewsletterAjaxController, async: true, cache: false, dataType : "json", data: { action:'updatedate', status: status, } }); } //ajax function get template for newsletter function getNewsletterTemplate(type, delay){ $.ajax({ type: 'POST', url: jxnewsletterAjaxController, async: true, cache: false, dataType : "json", data: { action:'getNewsletterTemplate', type: type }, success:function(response) { if (response.content) { content = response.content; setTimeout('setTemplate(content)', delay); } else { console.log('Template loading false'); } }, error: function(response) { console.log(response) } }); }