;(function ($) { "use strict"; function newsletterFormSubmit(elements, options) { if (!elements.$form.length) return; let isValidEmail = false; let isValidPolicy = false; // Único check obligatorio /* --- Validar checkbox de política --- */ if (elements.$form.find('#policy').is(':checked')) { isValidPolicy = true; } else { elements.$messageContainer.html( '
Por favor acepte el tratamiento de datos personales.
' ); } /* --- Validar email --- */ if ( /^[a-zA-Z0-9.!#$%&\'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test( elements.$inputEmail.val() ) ) { isValidEmail = true; } else { elements.$messageContainer.html( '
El formato del email debe ser example@example.com
' ); } /* --- Si todo es válido, enviar --- */ if (isValidEmail && isValidPolicy) { options.datosInputs.email = elements.$inputEmail.val().trim(); elements.$btnSelector.html('ENVIANDO...').attr('disabled', true); const endPoint = location.href.includes('qacalypso') ? 'https://newqa-calypsomiddleware.com/api/newsletter' : 'https://newpdn-calypsomiddleware.com/api/newsletter'; fetch(endPoint, { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ email: options.datosInputs.email, sendEmail: true, listId: 84, form: 'NEWSLETTER ECOMMERCE' }) }); /* --- Verificar / guardar en Master Data --- */ MasterDataService.getObjectRegistrationByEspecificField( 'email', options.datosInputs.email, options.MASTER_DATA_NEWSLETTER_FORM ) .then(function () { resetFields(); elements.$messageContainer .html('
Ya se encuentra suscrito a nuestro boletín de noticias.
') .show() .delay(5000); }) .fail(function (xhr) { if (xhr.status === 404) { MasterDataService.saveData( options.datosInputs, options.MASTER_DATA_NEWSLETTER_FORM ) .then(function () { resetFields(); elements.$messageContainer .html('
Gracias por suscribirte a nuestro boletín de noticias.
') .show() .delay(5000); location.href = '/landings/gracias/newsletter?type=form&utm_source=newsletter'; }) .fail(console.error); } else { elements.$form.fadeOut(400, function () { elements.$messageContainer.fadeIn(); }); console.error(xhr.statusText); } }) .always(function () { elements.$btnSelector.html('SUSCRIBIRME').removeAttr('disabled'); }); } else { elements.$messageContainer.show().delay(5000); } /* --- Helper para limpiar campos --- */ function resetFields() { elements.$inputEmail.val(''); $('#policy').prop('checked', false); } } /* -------- Plugins: Newsletter & NewsletterHome (sin cambios) -------- */ $.fn.CalypsoNewsletter = function (params) { const options = $.extend( { datosInputs: {}, MASTER_DATA_NEWSLETTER_FORM: 'NL', formSelector: '#newsletterForm', messageSelector: '#newsletterForm .message-container-newsletter', btnSelector: '#newsletterForm button', emailSelector: '#newsletterForm #email' }, params ); const elements = { $form: $(options.formSelector), $messageContainer: $(options.messageSelector), $btnSelector: $(options.btnSelector), $inputEmail: $(options.emailSelector) }; $(options.btnSelector).on('click', function (e) { e.preventDefault(); newsletterFormSubmit(elements, options); }); }; $.fn.CalypsoNewsletterHome = function (params) { const options = $.extend( { datosInputs: {}, MASTER_DATA_NEWSLETTER_FORM: 'NL', formSelector: '#newsletter-subscriber', messageSelector: '#newsletter-subscriber .message-container-newsletter', btnSelector: '#newsletter-subscriber button', emailSelector: '#newsletter-subscriber #email' }, params ); const elements = { $form: $(options.formSelector), $messageContainer: $(options.messageSelector), $btnSelector: $(options.btnSelector), $inputEmail: $(options.emailSelector) }; $(options.btnSelector).on('click', function (e) { e.preventDefault(); newsletterFormSubmit(elements, options); }); }; })(jQuery); if (window.innerWidth > 768) { document.querySelectorAll("details").forEach((d) => d.setAttribute("open", true)); }