jQuery(function ($) { let COOKIE_NAME = 'ebookpopup'; let COOKIE_LIFETIME = 30; let timeoutDelay = 150; // in seconds let qs = new URLSearchParams(window.location.search); let integrationParam = qs.get("integration"); let downloadUrl = '/static/assets/guides-ebooks/strategy-planning/50-business-diagrams.pdf'; let zohoApiEndpoint = 'https://api.creately.com/api/integration/zoho'; $(document).ready(function () { if (!getCookie(COOKIE_NAME) && integrationParam != 'msteams') { $('#ebook-popup').modal('show'); } if (getCookie(COOKIE_NAME)) { $('#post-ebook-banner').show(); } }); $('#ebook-popup #ebook-popup-submit').click(function () { var $btn = $(this); $btn.button('loading'); hideErrors(); var email = $('#ebook-popup #email').val(); if (isValidEmail(email)) { var leadsData = { command: 'createLead', lead: { Last_Name: "User", Email: email, Lead_Source: '50-business-diagrams-ebook' } }; $.ajax({ url: zohoApiEndpoint, method: 'POST', contentType: 'application/json', dataType: 'json', data: JSON.stringify(leadsData), success: function(response) { var result = Array.isArray(response.data) && response.data[0]; if (result && (result.code === 'SUCCESS' || result.code === 'DUPLICATE_DATA')) { var $anch = $('') .attr('href', downloadUrl) .attr('download', downloadUrl.split('/').pop()) .css('display', 'none'); $('body').append($anch); $anch[0].click(); $anch.remove(); setCookie(); $('#ebook-popup').modal('hide'); } else if (response.errors && response.errors.message) { $('#ebook-popup #error-message').text(response.errors.message); } else { $('#ebook-popup #error-message').text('Something went wrong, please try again.'); } $btn.button('reset'); }, error: function (jqXhr, textStatus, errorMessage) { $('#ebook-popup #error-message').text('Something went wrong, please try again.'); $btn.button('reset'); console.error(jqXhr, textStatus, errorMessage); } }); } else { $('#ebook-popup #error-message').text('Please enter a valid email address.'); $('#ebook-popup #email').addClass('has-error'); $btn.button('reset'); } }); $('#ebook-popup #remind-me-later').click(function (e) { e.preventDefault(); $('#ebook-popup').modal('hide'); setTimeout(function () { $('#ebook-popup').modal('show'); }, timeoutDelay * 1000); }); $('#ebook-popup-close').click(function () { $('#ebook-popup').modal('hide'); setCookie(); $('#post-ebook-banner').show(); }); $('#ebook-popup #email').on('keypress', function (e) { hideErrors(); if (e.keyCode === 13) { $('#ebook-popup #ebook-popup-submit').trigger('click'); } }); /** * Validate email address * @param {string} email * @returns boolean */ function isValidEmail(email) { var emailValidationRegex = new RegExp(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/); return emailValidationRegex.test(email) ? true : false; } /** * Set cookie */ function setCookie() { let expireDate = new Date(); expireDate.setDate(expireDate.getDate() + COOKIE_LIFETIME); document.cookie = COOKIE_NAME + '= * ; path=/; domain=' + window.location.hostname + '; expires=' + expireDate.toUTCString(); } /** * Return cookie value for passing cookie name * @param {string} cookieName */ function getCookie(cookieName) { let match = document.cookie.match(new RegExp('(^| )' + cookieName + '=([^;]+)')); if (match) { return match[2]; } else { return false; } } /** * Hide errors */ function hideErrors() { $('.error-message').text(''); $('.form-control').removeClass('has-error'); } $('#ebook-popup-content-btn').click(function () { $('#ebook-popup').modal('show'); }); });