1(function(){'use strict';if(!window.AHBSEOClickTracker||window.__ahbSEOClickTrackerLoaded){return} 2window.__ahbSEOClickTrackerLoaded=!0;var config=window.AHBSEOClickTracker;var sentInWindow=0;var windowStarted=Date.now();function isLikelyBot(){var ua=navigator.userAgent||'';return navigator.webdriver||/bot|crawler|spider|crawling|headless|lighthouse|pagespeed|pingdom|uptimerobot|gtmetrix|facebookexternalhit|slurp|bingpreview/i.test(ua)} 3function cookieContains(fragment){return document.cookie.toLowerCase().indexOf(String(fragment).toLowerCase())!==-1} 4function hasAnalyticsConsent(){if(config.consentMode!=='auto'){return!0} 5try{if(typeof window.wp_has_consent==='function'){return!!(window.wp_has_consent('statistics')||window.wp_has_consent('analytics'))} 6if(typeof window.cmplz_has_consent==='function'){return!!(window.cmplz_has_consent('statistics')||window.cmplz_has_consent('marketing'))} 7if(window.Cookiebot&&window.Cookiebot.consent&&typeof window.Cookiebot.consent.statistics!=='undefined'){return!!window.Cookiebot.consent.statistics} 8if(window.CookieConsent&&window.CookieConsent.consent&&typeof window.CookieConsent.consent.statistics!=='undefined'){return!!window.CookieConsent.consent.statistics} 9if(cookieContains('cmplz_statistics=allow')||cookieContains('cmplz_statistics=1')){return!0} 10if(cookieContains('cookieyes-consent')&&(cookieContains('analytics:yes')||cookieContains('analytics%3ayes'))){return!0}}catch(error){return!1} 11return!0} 12function getTrackedElement(target){if(!target||typeof target.closest!=='function'){return null} 13var interactive=target.closest('a,button,[role="button"],input[type="button"],input[type="submit"],input[type="image"]');if(interactive){return{element:interactive,interactive:!0}} 14var area=target.closest('img,svg,path,span,strong,em,p,h1,h2,h3,h4,h5,h6,li,div,section,article,header,footer,main');return area?{element:area,interactive:!1}:null} 15function trimText(value,maxLength){return String(value||'').replace(/\s+/g,' ').trim().slice(0,maxLength)} 16function getElementText(element,interactive){var text=element.getAttribute('aria-label')||element.getAttribute('title')||element.getAttribute('alt')||element.value||'';if(!text&&interactive){text=element.textContent||''} 17if(!text&&!interactive){var childNodes=element.childNodes||[];for(var i=0;i<childNodes.length;i+=1){if(childNodes[i].nodeType===3&&childNodes[i].nodeValue.trim()){text=childNodes[i].nodeValue;break}}} 18return trimText(text,180)} 19function getStableSelector(element){if(element.id){return'#'+trimText(element.id,120).replace(/[^a-zA-Z0-9_-]/g,'')} 20var parts=[];var current=element;var depth=0;while(current&¤t.nodeType===1&&depth<3){var part=current.tagName.toLowerCase();var classes=Array.prototype.slice.call(current.classList||[]).filter(function(name){return!/^et_pb_module_\d+$/.test(name)}).slice(0,2).map(function(name){return name.replace(/[^a-zA-Z0-9_-]/g,'')}).filter(Boolean);if(classes.length){part+='.'+classes.join('.')} 21parts.unshift(part);current=current.parentElement;depth+=1} 22return trimText(parts.join(' > '),240)} 23function getHref(element){if(element.tagName&&element.tagName.toLowerCase()==='a'){return element.href||element.getAttribute('href')||''} 24return element.getAttribute('data-href')||element.getAttribute('formaction')||''} 25function getTargetKind(element,interactive){if(!interactive){return'area'} 26var tag=(element.tagName||'').toLowerCase();return(tag==='button'||tag==='input'||element.getAttribute('role')==='button')?'button':'link'} 27function getCoordinates(event){var root=document.documentElement;var body=document.body;var documentWidth=Math.max(root.scrollWidth,body?body.scrollWidth:0,root.clientWidth);var documentHeight=Math.max(root.scrollHeight,body?body.scrollHeight:0,root.clientHeight);var pageX=typeof event.pageX==='number'?event.pageX:event.clientX+window.scrollX;var pageY=typeof event.pageY==='number'?event.pageY:event.clientY+window.scrollY;return{x:documentWidth>0?Math.max(0,Math.min(100,(pageX/documentWidth)*100)):0,y:documentHeight>0?Math.max(0,Math.min(100,(pageY/documentHeight)*100)):0,documentWidth:documentWidth,documentHeight:documentHeight}} 28function rateLimitAllowsSend(){var now=Date.now();if(now-windowStarted>60000){sentInWindow=0;windowStarted=now} 29if(sentInWindow>=50){return!1} 30sentInWindow+=1;return!0} 31function send(payload){if(!rateLimitAllowsSend()){return} 32var formData=new FormData();formData.append('action','ahb_seo_track_click');formData.append('token',config.token);formData.append('payload',JSON.stringify(payload));if(navigator.sendBeacon){navigator.sendBeacon(config.endpoint,formData);return} 33fetch(config.endpoint,{method:'POST',credentials:'same-origin',body:formData,keepalive:!0}
33).catch(function(){})} 34if(isLikelyBot()){return} 35document.addEventListener('click',function(event){if(!hasAnalyticsConsent()){return} 36var tracked=getTrackedElement(event.target);if(!tracked||!tracked.element||tracked.element.closest('[data-ahb-no-track="1"]')){return} 37var element=tracked.element;var coordinates=getCoordinates(event);var payload={pageId:parseInt(config.pageId||0,10)||0,pagePath:window.location.pathname+window.location.search,pageTitle:trimText(document.title,240),targetKind:getTargetKind(element,tracked.interactive),targetUrl:tracked.interactive?trimText(getHref(element),500):'',targetText:getElementText(element,tracked.interactive),targetSelector:getStableSelector(element),xPct:coordinates.x.toFixed(3),yPct:coordinates.y.toFixed(3),viewportWidth:window.innerWidth||0,viewportHeight:window.innerHeight||0,documentWidth:coordinates.documentWidth,documentHeight:coordinates.documentHeight};send(payload)},!0)}())
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.