1var qvars=getUrlVars() 2var domain=getDomainName() 3jQuery(function($){if(handl_utm_cookie_duration[1]==='1'&&typeof(TVE)==="undefined"){console.log('Running HandL');RunHandL() 4const borlabsCookie=Cookies.get('borlabs-cookie');if(borlabsCookie){try{const cookieData=JSON.parse(borlabsCookie);if(cookieData.consents.marketing.includes('handl-utm-grabber')){console.log("handl-utm-grabber checked by Borlabs.. RunHandL...");RunHandL()}else{console.log("handl-utm-grabber not checked by Borlabs")}}catch(e){console.error('Error parsing JSON:',e)}}}});function RunHandL(){window.utms_js={} 5window.gaNames=[] 6SetRefLink('handlID',Math.floor(Math.random()*Date.now()),!1,0) 7GAClientID() 8setHandLParams() 9RunFieldFiller() 10jQuery.each(handl_utm_predefined,function(i,v){let cookie_name=v.name;let value=v.value 11if(value.startsWith('[')&&value.endsWith(']')){value=v.value.replace(/^\[|\]$/g,'')}else{value=cookie_name} 12if(['_ga','gaclientid'].indexOf(value)>-1){gaNames.push(cookie_name)} 13if(cookie_name!=''){var cookie_field=GetQVars(value,qvars) 14if(cookie_field==''){cookie_field=Cookies.get(value)} 15if(cookie_field!=''&&cookie_field!='PANTHEON_STRIPPED'){utms_js[cookie_name]=cookie_field 16SetRefLink(cookie_name,cookie_field,!0,0)}}}) 17populateLinks() 18jQuery(document).on('nfFormReady',function(){nfForms.forEach(form=>{form.fields.map(item=>{if(item.default){var matches=String(item.default).match(/^{(\w+):(\w+)/) 19if(matches&&matches.length==3){let key=matches[1] 20let value=matches[2] 21if(key==='handl'){console.log(key,value) 22jQuery('#nf-field-'+item.id).val(Cookies.get(value))}}}})})}) 23document.dispatchEvent(new Event('HandL-After-Main-Function'))} 24function RunFieldFiller(){let cookieOptions={domain:domain,secure:!0,sameSite:'None'};if(!parseInt(handl_utm_session_cookies?.enabled)){cookieOptions.expires=parseInt(handl_utm_cookie_duration[0])} 25Cookies.set('user_agent',navigator.userAgent,cookieOptions) 26jQuery.each(handl_utm_all_params,function(i,vi){var cookie_field=GetQVars(vi,qvars) 27var cookie_params=[vi] 28if(handl_utm_first_touch_params.includes(vi)) 29cookie_params.push('first_'+vi) 30cookie_params.forEach((v,ind)=>{if(cookie_field!=''&&cookie_field!='PANTHEON_STRIPPED'){if(v.startsWith('first_')&&Cookies.get(v)!=undefined){}else{if(cookie_field.includes('#')){cookie_field=cookie_field.split('#')[0]} 31let cookieOptions={domain:domain,sameSite:'None',secure:!0};if(!parseInt(handl_utm_session_cookies?.enabled)){cookieOptions.expires=parseInt(handl_utm_cookie_duration[0])} 32Cookies.set(v,cookie_field,cookieOptions)}} 33var curval=decodeURI(Cookies.get(v)) 34curval=curval!='undefined'?curval:'' 35if(curval!='undefined'){curval=sanitizeInput(curval);utms_js[v]=curval 36curval=decodeURIComponent(curval) 37if(v=='username'){curval=curval.replace(/\+/g,' ')} 38jQuery('input[name=\"'+v+'\"]').val(curval) 39jQuery('input#'+v).val(curval) 40jQuery('input.'+v).val(curval) 41jQuery('input#form-field-'+v).val(curval) 42jQuery('#'+v).find('input').val(curval) 43jQuery('.'+v).find('input').val(curval) 44jQuery("[data-original_id='"+v+"']").val(curval) 45jQuery("[data-name='"+v+"']").val(curval) 46jQuery("[data-name='"+v.replace(/_/g,'')+"']").val(curval) 47if(v.length>4){jQuery("[name*="+v+"]").val(curval) 48jQuery("[id*="+v+"]").val(curval) 49jQuery("[class*="+v+"]").val(curval) 50jQuery("[class*="+v+"_out]").html(curval) 51jQuery("[id*="+v+"_out]").html(curval)}}})})} 52function populateLinks(){jQuery('.utm-out-js, .utm-out-js a').each(function(){var merged_raw=jQuery.extend({},utms_js) 53var merged=Object.keys(merged_raw).filter(key=>handl_utm_append_params.includes(key)).reduce((obj,key)=>{if(merged_raw[key]){obj[key]=decodeURIComponent(merged_raw[key])} 54return obj},{});merged=jQuery.extend(merged,getSearchParams(this.href)) 55var current_page=window.location.href.split('?')[0] 56if(this.href!==undefined&&this.href!==""&&!this.href.match("#")&&!this.href.startsWith("tel:")&&!this.href.startsWith("mailto:")&&!this.href.startsWith("sms:")&&!jQuery(this).attr('onclick')&&!jQuery(this).closest('.no-utm').length){var href=this.href.split("?")[0];if(!jQuery.isEmptyObject(merged)) 57this.href=href+"?"+decodeURIComponent(jQuery.param(merged))}});jQuery('.utm-out, .utm-out a').each(function(){var merged_raw=jQuery.extend({},handl_utm,utms_js) 58var merged=Object.keys(merged_raw).filter(key=>handl_utm_append_params.includes(key)).reduce((obj,key)=>{if(merged_raw[key]){obj[key]=decodeURIComponent(merged_raw[key])} 59return obj},{});
59merged=jQuery.extend(merged,getSearchParams(this.href)) 60var current_page=window.location.href.split('?')[0] 61if(this.href!==undefined&&this.href!==""&&!this.href.match("#")&&!this.href.startsWith("tel:")&&!this.href.startsWith("mailto:")&&!this.href.startsWith("sms:")&&!jQuery(this).closest('.no-utm').length){var href=this.href.split("?")[0];var parts=[] 62if(this.href.match("#")){parts=this.href.split("#") 63if(parts[1]!=""){href=parts[0]}} 64if(!jQuery.isEmptyObject(merged)){if(this.href.match("#")&&parts.length==2){this.href=href+"?"+decodeURIComponent(jQuery.param(merged))+"#"+parts[1].split("?")[0]}else{this.href=href+"?"+decodeURIComponent(jQuery.param(merged))}}}});jQuery('.utm-src').each(function(){var target_url 65if(this.src){target_url=this.src}else if(jQuery(this).data('url')){target_url=jQuery(this).data('url')}else if(jQuery(this).data('src')){target_url=jQuery(this).data('src')} 66var merged_raw=jQuery.extend({},handl_utm,utms_js) 67var merged=Object.keys(merged_raw).filter(key=>handl_utm_append_params.includes(key)).reduce((obj,key)=>{if(merged_raw[key]){obj[key]=decodeURIComponent(merged_raw[key])} 68return obj},{});merged=jQuery.extend(merged,getSearchParams(target_url)) 69var src=target_url.split("?")[0];if(!jQuery.isEmptyObject(merged)){var final_target=src+"?"+decodeURIComponent(jQuery.param(merged)) 70if(this.src){this.src=final_target}else if(jQuery(this).data('url')){jQuery(this).data('url',final_target)}}});jQuery("[data-fillout-id]").each(function(){handl_utm_append_params.map(t=>{jQuery(this).attr(`data-${t}`,utms_js[t])}) 71var script=document.createElement('script');script.src='https://server.fillout.com/embed/v1/';document.head.appendChild(script)})} 72function getSearchParams(url,k){var p={};var a=document.createElement('a');a.href=url;a.search.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(s,k,v){p[k]=v}) 73return k?p[k]:p} 74function GetQVars(v,qvars){if(qvars[v]!=undefined){return qvars[v]} 75return''} 76function getUrlVars(){var vars={};window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(m,key,value){vars[key]=decodeURIComponent(value)});return vars} 77function GAClientID(){if(typeof(ga)=='function'&&typeof(ga.getAll)=='function'){var trackers=ga.getAll();if(trackers.length>0){var entries=Object.entries({"clientId":"gaclientid","referrer":"organic_source"}) 78var domain=getDomainName() 79for(const[gaName,handlName]of entries){var gaValue=trackers[0].get(gaName) 80if(gaValue!==undefined){if(gaName!='clientId'){gaNames=[]} 81gaNames.push(handlName) 82for(const curName of gaNames){utms_js[curName]=gaValue 83let cookieOptions={domain:domain,sameSite:'None',secure:!0};if(!parseInt(handl_utm_session_cookies?.enabled)){cookieOptions.expires=parseInt(handl_utm_cookie_duration[0])} 84Cookies.set(curName,gaValue,cookieOptions);jQuery('input[name=\"'+curName+'\"]').val(gaValue) 85jQuery('input#'+curName).val(gaValue) 86jQuery('input.'+curName).val(gaValue)} 87populateLinks()}}}}else{setTimeout(GAClientID,500)}} 88function getDomainName(){var name="HandLtestDomainName" 89var value="HandLtestDomainValue" 90var host=location.host 91var domain;if(host.split('.').length===1){domain=''}else{var domainParts=host.split('.');domainParts.shift();domain='.'+domainParts.join('.');Cookies.set(name,value,{domain:domain,secure:!0,sameSite:'None'}) 92if(Cookies.get(name)==null||Cookies.get(name)!=value){domain='.'+host}} 93return domain} 94function setHandLParams(){SetRefLink('handl_url_base',document.location.origin+document.location.pathname,!0,0) 95SetRefLink('handl_url',document.location.href,!0,0) 96SetRefLink('handl_ref',document.referrer,!0,0) 97SetRefLink('handl_ref_domain',document.referrer==''?'':this.get_url_domain(document.referrer),!0,0) 98SetRefLink('handl_landing_page',document.location.href,!1,0) 99SetRefLink('handl_landing_page_base',new URL(document.location.href).origin+new URL(document.location.href).pathname,!1,0) 100SetRefLink('handl_original_ref',document.referrer,!1,0) 101let original_ref=Cookies.get('handl_ref_domain') 102let this_domain=document.location.host 103let source="Other";if(original_ref==''){source="Direct"}else if(original_ref.match(/google\.co.*/i)!==null){source="Google"}else if(original_ref.match(/bing\.co.*/i)!==null){source="Bing"}else if(original_ref.match(/instagram\.co.*/i)!==null){source="Instagram"}else if(original_ref.match(/facebook\.co.*/i)!==null||original_ref.match(/fb\.co.*/i)!==null){source="Facebook"}else if(original_ref.match(/reddit\.com/i)!==null){source="Reddit"}else if(original_ref.match(/twitter\.com/i)!==null||original_ref.match(/t\.co$/i)!==null||original_ref.match(/x\.com$/i)!==null){source="Twitter"}else if(original_ref.match(/snapchat\.co.*/i)!==null){source="Snapchat"}else if(original_ref.match(/youtube\.co.*/i)!==null){source="YouTube"}else if(original_ref.match(/pinterest\.co.*/i)!==null){source="Pinterest"}else if(original_ref.match(/linkedin\.co.*/i)!==null){source="LinkedIn"}else if(original_ref.match(/tumblr\.com/i)!==null){source="Tumblr"}else if(original_ref.match(/duckduckgo\.co.*/i)!==null){source="Duckduckgo"}else if(original_ref.match(/openai\.com/i)!==null||original_ref.match(/chatgpt\.com/i)!==null){source="OpenAI"}else if(original_ref.match(/perplexity\.ai/i)!==null){source="Perplexity"}else if(original_ref.match(/claude\.ai/i)!==null){source="Claude"}else if(original_ref.match(/gemini\.google\.com/i)!==null){source="Gemini"}else if(original_ref.match(/copilot\.microsoft\.com/i)!==null){source="C
103opilot"}else if(original_ref.match(/yelp\.com/i)!==null){source="Yelp"}else if(this_domain==original_ref){source="Internal"} 104if((!Cookies.get('organic_source_str')||Cookies.get('organic_source_str')=='')||(Cookies.get('organic_source_str')&&Cookies.get('organic_source_str')!=''&&['Internal','Direct'].indexOf(source)==-1)){SetRefLink('organic_source',document.referrer,!0,0) 105SetRefLink('organic_source_str',source,!0,0)} 106var qvars=getUrlVars() 107let traffic_source='Other' 108if(Cookies.get('gclid')!=undefined||Cookies.get('msclkid')!=undefined||Cookies.get('wbraid')!=undefined||Cookies.get('gbraid')!=undefined||Object.keys(qvars).indexOf('gclid')!=-1||Object.keys(qvars).indexOf('msclkid')!=-1||Object.keys(qvars).indexOf('wbraid')!=-1||Object.keys(qvars).indexOf('gbraid')!=-1||(Cookies.get('fbclid')!=undefined&&Cookies.get('_fbc')!=undefined)||(Object.keys(qvars).indexOf('fbclid')!=-1&&Cookies.get('_fbc')!=undefined)||Object.keys(qvars).indexOf('gad_source')!=-1||Object.keys(qvars).indexOf('gad_campaignid')!=-1){traffic_source='Paid'}
108else if(['Google','Bing','Yahoo','Duckduckgo'].indexOf(Cookies.get('organic_source_str'))>-1){traffic_source='Organic'}else if(['Facebook','Twitter','Instagram','Snapchat','YouTube','Pinterest','LinkedIn','Tumblr','Reddit'].indexOf(Cookies.get('organic_source_str'))>-1){traffic_source='Social'}else if(['Internal','Direct'].indexOf(Cookies.get('organic_source_str'))>-1){traffic_source='Direct'}else if(Cookies.get('organic_source_str')&&['Internal'].indexOf(Cookies.get('organic_source_str'))==-1){traffic_source='Referral'} 109SetRefLink('traffic_source',traffic_source,!0,0) 110SetRefLink('first_traffic_source',traffic_source,!1,0) 111document.dispatchEvent(new CustomEvent('handl_cookies_set'))} 112function SetRefLink(field,value,overwrite,count){var domain=getDomainName() 113if(Cookies.get(field)!=value){if(Cookies.get(field)!==undefined&&Cookies.get(field)!=""&&!overwrite){}else if(Cookies.get(field)===undefined||Cookies.get(field)==''||overwrite){if(count==undefined){count=0} 114let cookieOptions={domain:domain,sameSite:'None',secure:!0};if(!parseInt(handl_utm_session_cookies?.enabled)){cookieOptions.expires=parseInt(handl_utm_cookie_duration[0])} 115Cookies.set(field,value,cookieOptions)}else{count=count+1 116if(count<3){setTimeout(function(){SetRefLink(field,value,overwrite,count)},500)}}}} 117function get_url_domain(url){let a=document.createElement('a');a.href=url;return a.hostname} 118document.addEventListener('om.Campaign.afterShow',function(){RunFieldFiller()}) 119window.addEventListener('CookiebotOnAccept',function(e){if(Cookiebot.consent.marketing){RunHandL()}},!1);document.addEventListener("cmplz_enable_category",function(consentData){var category=consentData.detail.category;if(category==='marketing'){RunHandL()}});document.addEventListener('wp_listen_for_consent_change',function(e){var changedConsentCategory=e.detail;for(var key in changedConsentCategory){if(changedConsentCategory.hasOwnProperty(key)){if(key==='marketing'&&changedConsentCategory[key]==='allow'){console.log('WP Consent API: Marketing consent granted, running HandL');RunHandL()}}}});if(typeof wp_has_consent==='function'&&wp_has_consent('marketing')){console.log('WP Consent API: Marketing consent already granted')} 120function afterBookingSelectDateAndTime(a){Object.keys(a.bookings[0].customFields).forEach(function(key){let label=a.bookings[0].customFields[key].label 121if(Cookies.get(label)){a.bookings[0].customFields[key].value=Cookies.get(label)}})} 122window.ameliaActions={beforeBooking:function(x,y,a){afterBookingSelectDateAndTime(a) 123x()}} 124function FF_AutoFiller(v){let it=jQuery(v) 125for(vv of['placeholder','title']){var ph=it.attr(vv) 126var params=Object.values(handl_utm_all_params) 127var n=params.findIndex((p)=>new RegExp(p,'i').test(ph)) 128if(n>-1){var cval=Cookies.get(params[n]) 129it.val(cval).attr('value',cval)}}} 130setTimeout(function(){jQuery('.fsCell.fsHidden>input').map((i,v)=>{FF_AutoFiller(v)})},3000) 131jQuery(document).on('wsf-rendered',function(event,form_object,form_id,instance_id){RunFieldFiller()});jQuery(document).on('jet-form-builder/after-init',function(e){RunFieldFiller()}) 132setTimeout(()=>{if(typeof(window.utms_js)=='object'&&typeof(iframeParams)=='object'){var iframeParams=[];iframeParams.push(jQuery.param(window.utms_js)) 133var src=ifr.src;ifr.src=src+"?"+iframeParams.join('&')}},"500");jQuery(document).on('elementor/popup/show',function(){setTimeout(RunFieldFiller,1000)});window.addEventListener('borlabs-cookie-consent-saved',()=>{if(window.BorlabsCookie.Consents.hasConsent('handl-utm-grabber')){RunHandL()}});getAllHandLUTMParams=function(){var values={};Object.values(handl_utm_all_params).forEach(function(param){var value=Cookies.get(param);if(value){values[param]=decodeURIComponent(value)}});return values};function getUserData(){return{fbc:Cookies.get('_fbc')||'',fbp:Cookies.get('_fbp')||'',client_ip_address:Cookies.get('handl_ip')||'',client_user_agent:navigator.userAgent}} 134jQuery(document).ready(function($){setTimeout(()=>{var emailField=$('#email');var hasInitiatedCheckout=!1;if($('body').hasClass('woocommerce-checkout')){emailField.on('blur',function(){if(!hasInitiatedCheckout&&emailField.val().trim()!==''){hasInitiatedCheckout=!0;var userData=getUserData();userData.em=[emailField.val()];$.ajax({url:handl_ajax.ajax_url,type:'POST',data:{action:'handl_initiate_checkout',user_data:userData},success:function(response){console.log('InitiateCheckout event sent:',response)}})}})}},500)});function isFBCAPIEnabled(){return handl_ajax.fb_capi_enabled==='1'} 135jQuery(document).on('added_to_cart',function(event,fragments,cart_hash,button){if(!isFBCAPIEnabled())return;var productId=button.data('product_id');var quantity=button.data('quantity');if(typeof productId!=='undefined'&&typeof quantity!=='undefined'){var userData=getUserData();jQuery.ajax({url:handl_ajax.ajax_url,type:'POST',data:{action:'handl_ajax_add_to_cart',product_id:productId,quantity:quantity,user_data:userData},success:function(response){console.log('AddToCart event sent:',response)}})}});jQuery(function($){$('form.checkout').on('checkout_place_order',function(){if(!isFBCAPIEnabled())return;var userData=getUserData();$.ajax({url:handl_ajax.ajax_url,type:'POST',data:{action:'handl_add_payment_info',user_data:userData},success:function(response){console.log('AddPaymentInfo event sent:',response)}})})});function sanitizeInput(input){var element=document.createElement('div');element.innerText=input;return element.innerHTML} 136function getConsentStatus(){if(!window.dataLayer){console.warn('dataLayer is not defined.');return null} 137let consent=null;for(let i=window.dataLayer.length-1;i>=0;i--){if(window.dataLayer[i][0]==='consent'&&window.dataLayer[i][1]==='update'){consent=window.dataLayer[i][2];break}else if(typeof window.dataLayer[i]==='object'&&window.dataLayer[i].value&&window.dataLayer[i].value.event&&window.dataLayer[i].value.event.includes('consent')){consent=window.dataLayer[i].value;break}} 138return consent} 139function isConsentDenied(){const consentStatus=getConsentStatus();return consentStatus&&(consentStatus.ad_user_data==='denied'&&(consentStatus.analytics_storage==='denied'||!consentStatus.analytics_storage))} 140function handleConsentStatus(){if(isConsentDenied()){RemoveHandLCookies()}else{RunHandL()}} 141function RemoveHandLCookies(){console.log('Removing HandL cookies');
141Object.values(handl_utm_all_params).forEach(param=>{Cookies.remove(param,{path:'/',domain:getDomainName()})})}(function(){if(typeof handl_ajax.require_third_party_consent!=='undefined'&&handl_ajax.require_third_party_consent){if(!window.dataLayer){window.dataLayer=[]} 142const originalPush=window.dataLayer.push;window.dataLayer.push=function(...args){args.forEach(entry=>{if((Array.isArray(entry)&&entry[0]==='consent'&&entry[1]==='update')||(entry.event&&entry.event.includes('consent'))||(entry.value&&entry.value.event&&entry.value.event.includes('consent'))){handleConsentStatus()}});return originalPush.apply(this,args)}}})()
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.