jQuery(document).ready(function (e$) { let lastPopupTrigger = ''; jQuery(document).on('click', 'a[href^="#elementor-action"]', function (e) { const hash = decodeURIComponent(this.getAttribute('href')); if (hash.startsWith("#elementor-action:action=popup:open") ) { let text = jQuery(this).text().toLowerCase().trim(); if(text == 'get in touch'){ lastPopupTrigger = 'getintouch'; } else if(text == 'request info'){ lastPopupTrigger = 'getintouch'; } else if(text == 'join the interest list'){ lastPopupTrigger = 'interest'; } else if(text == 'reserve a home'){ lastPopupTrigger = 'reserve'; } else{ const regex = / /g; lastPopupTrigger = text.replace(regex, "_"); } } }); emp_save_referrer(); const referrer = emp_set_referrer(); jQuery(document).on('elementor/popup/hide', function (event, id, instance) { lastPopupTrigger = ''; }); jQuery(document).on('elementor/popup/show', function (event, id, instance) { jQuery('iframe.iframeFormTextblock').each(function () { let src = jQuery(this).attr('src'); let params = ''; if(referrer && lastPopupTrigger) { params = referrer + '&CTA=' + lastPopupTrigger; } else if(referrer && lastPopupTrigger == ''){ params = referrer; } else if(referrer == '' && lastPopupTrigger){ params = '?CTA=' + lastPopupTrigger; } if (params) { if (src) { this.src = src.split('?')[0] + params; } let data_src = jQuery(this).data('src'); if (data_src) { this.dataset.src = data_src.split('?')[0] + params; } let data_lazy_src = jQuery(this).data('lazy-src'); if (data_lazy_src) { this.dataset.lazySrc = data_lazy_src.split('?')[0] + params; } } }); }); }); function emp_save_referrer() { //Gets URL of referring website, if it exists let params = new URLSearchParams(document.location.search); let utm_source = params.get("utm_source"); let utm_medium = params.get("utm_medium"); let utm_campaign = params.get("utm_campaign"); let paper_saved = empGetCookie('paper_saved'); let referrer = document.referrer ? document.referrer : ''; //Creates cookie called paper_saved, if one doesn't exist already if (!paper_saved) { //Stores UTM tracking, if it's present in the URL address //Values: utm_source, utm_medium, and utm_campaign if (utm_source) { empSetCookie('paper_utm_source', utm_source); if (utm_medium) { empSetCookie('paper_utm_medium', utm_medium); } if (utm_campaign) { empSetCookie('paper_utm_campaign', utm_campaign); } } else if (referrer && referrer != '') { //If a referrer URL exists then it saves it. //skips if referrer is from empirecommunities.com and saves it as 'unknownInner' let str = referrer.toLowerCase(); if (str.includes('empirecommunities.com') || str.includes('empirehomes.com') || str.includes('empirehomes.produktiv.agency')) { // no save referrer = 'unknownInner'; } else { //Saves referrer into cookie empSetCookie('paper_referrer', referrer); } } else { //If no referrer exists, then it saves it as 'unknown' referrer = 'unknown'; empSetCookie('paper_referrer', referrer); } empSetCookie('paper_saved', '1'); } } function emp_set_referrer() { let referrerText = ''; let referrer = empGetCookie('paper_referrer'); let utmSource = empGetCookie('paper_utm_source'); let utmMedium = empGetCookie('paper_utm_medium'); let utmCampaign = empGetCookie('paper_utm_campaign'); //If cookie has UTM then it takes priority, and is passed to the form iframe URL if (utmSource && utmSource != '') { referrerText = '?utm_source=' + utmSource + '&utm_medium=' + utmMedium + '&utm_campaign=' + utmCampaign; } else if (referrer && referrer != '') { //If cookie has referrer instead, and has no UTM then we pass parameter to the form iframe URL referrerText = '?referrer=' + referrer; } else { //If cookie has no UTM and referrer URL then pass as 'unknownCookie' referrerText = '?referrer=unknownCookie'; } return referrerText; } function empSetCookie(cname, cvalue, exdays) { const d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); let expires = "expires=" + d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } function empGetCookie(cname) { let name = cname + "="; let decodedCookie = decodeURIComponent(document.cookie); let ca = decodedCookie.split(';'); for (let i = 0; i < ca.length; i++) { let c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; }