1(function(){var VOUCHER_PATH="nissan-voucher-2500";function push(eventName){window.dataLayer=window.dataLayer||[];window.dataLayer.push({event:eventName})} 2function sourceFor(link){if(link.closest("#voucher-popup"))return"popup";if(link.closest("#voucher-popup-banner"))return"srp_banner";if(link.closest(".image-banner"))return"hero_banner";return"other"} 3function tagLink(link,source){try{var url=new URL(link.href,window.location.origin);if(url.pathname.indexOf(VOUCHER_PATH)===-1)return;if(!url.searchParams.get("src")){url.searchParams.set("src",source);link.href=url.toString()}}catch(e){}} 4document.addEventListener("click",function(e){if(!e.target||!e.target.closest)return;var link=e.target.closest('a[href*="'+VOUCHER_PATH+'"]');if(!link)return;var source=sourceFor(link);tagLink(link,source);push("voucher_"+source+"_click")},!0);function onReady(fn){if(document.readyState!=="loading")fn();else document.addEventListener("DOMContentLoaded",fn)} 5onReady(function(){document.querySelectorAll('a[href*="'+VOUCHER_PATH+'"]').forEach(function(link){tagLink(link,sourceFor(link))});var heroSeen=!1;function checkHeroVisible(){if(heroSeen)return;var active=document.querySelector('.image-banner .swiper-slide-active a[href*="'+VOUCHER_PATH+'"]');if(!active)return;heroSeen=!0;observer.disconnect();push("voucher_hero_banner_view")} 6var observer=new MutationObserver(checkHeroVisible);var wrappers=document.querySelectorAll(".image-banner .swiper-wrapper");wrappers.forEach(function(wrapper){observer.observe(wrapper,{subtree:!0,attributes:!0,attributeFilter:["class"]})});checkHeroVisible()})})() 7;
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.