PageSourceSearch

https://skipmason.com/assets/js/site.js

js skipmason.com collected 2026-10-02 13:45:43 UTC 4,427 bytes, 12 lines download raw bytes

1(function(){
2function all(s,r){return Array.prototype.slice.call((r||document).querySelectorAll(s))}
3function one(s,r){return (r||document).querySelector(s)}
4function norm(v){return (v||"").toString().toLowerCase().trim()}
5var toggle=one("[data-nav-toggle]");var menu=one("[data-mobile-menu]");if(toggle&&menu){toggle.addEventListener("click",function(){menu.classList.toggle("open")})}
6all("img").forEach(function(img){img.addEventListener("error",function(){img.classList.add("image-off")},{once:true})});
7all("[data-carousel]").forEach(function(root){var slides=all("[data-slide]",root);if(!slides.length)return;var dots=all("[data-carousel-dot]",root);var index=0;function show(i){index=(i+slides.length)%slides.length;slides.forEach(function(s,n){s.classList.toggle("active",n===index)});dots.forEach(function(d,n){d.classList.toggle("active",n===index)})}var next=one("[data-carousel-next]",root);var prev=one("[data-carousel-prev]",root);if(next)next.addEventListener("click",function(){show(index+1)});if(prev)prev.addEventListener("click",function(){show(index-1)});dots.forEach(function(d,n){d.addEventListener("click",function(){show(n)})});setInterval(function(){if(!document.hidden)show(index+1)},5200)});
8function apply(scope){var q=norm((one("[data-filter-input]",scope)||{}).value);var region=(one("[data-filter-region]",scope)||{}).value||"";var year=(one("[data-filter-year]",scope)||{}).value||"";var cat=(one("[data-filter-category]",scope)||{}).value||"";var visible=false;all("[data-card]",document).forEach(function(card){if(!scope.contains(card))return;var ok=true;if(q&&norm(card.getAttribute("data-search")).indexOf(q)===-1)ok=false;if(region&&card.getAttribute("data-region")!==region)ok=false;if(year&&card.getAttribute("data-year")!==year)ok=false;if(cat&&card.getAttribute("data-category")!==cat)ok=false;card.hidden=!ok;if(ok)visible=true});var empty=one("[data-empty]",scope.parentNode||document);if(empty)empty.hidden=visible}
9all("[data-filter-scope]").forEach(function(scope){all("input,select",scope).forEach(function(el){el.addEventListener("input",function(){apply(scope)});el.addEventListener("change",function(){apply(scope)})});var params=new URLSearchParams(location.search);var q=params.get("q");var input=one("[data-filter-input]",scope);if(q&&input){input.value=q;apply(scope)}});
10window.initPlayer=function(src){var video=document.getElementById("movie-player");if(!video||!src)return;var err=document.querySelector("[data-video-error]");function hideErr(){if(!err)return;err.hidden=true;err.style.display="none"}function fail(){if(!err)return;err.hidden=false;err.style.display="grid"}hideErr();var isMp4=/\.mp4(\?|$)/i.test(src);function bindMp4(){video.src=src;video.addEventListener("loadeddata",hideErr,{once:true});video.addEventListener("playing",hideErr);video.addEventListener("error",fail,{once:true})}if(isMp4){bindMp4();return}if(video.canPlayType("application/vnd.apple.mpegurl")){video.src=src;video.addEventListener("error",fail,{once:true})}else if(window.Hls&&window.Hls.isSupported()){var hls=new Hls({enableWorker:true,lowLatencyMode:true});hls.loadSource(src);hls.attachMedia(video);hls.on(Hls.Events.ERROR,function(e,d){if(d&&d.fatal)fail()})}else{bindMp4()}}
11var jxHeader=one("[data-jx-header]");if(jxHeader){var jxToggle=one(".jx-header__toggle",jxHeader);var jxDrawer=one(".jx-header__drawer",jxHeader);if(jxToggle&&jxDrawer){var jxBackdrop=document.createElement("button");jxBackdrop.className="jx-header__backdrop";jxBackdrop.setAttribute("aria-hidden","true");jxBackdrop.hidden=true;jxBackdrop.style.display="none";jxHeader.parentNode.insertBefore(jxBackdrop,jxHeader.nextSibling);function jxClose(){jxDrawer.classList.remove("is-open");document.body.classList.remove("jx-nav-open");jxToggle.setAttribute("aria-expanded","false");jxBackdrop.hidden=true;jxBackdrop.style.display="none"}function jxOpen(){jxDrawer.classList.add("is-open");document.body.classList.add("jx-nav-open");jxToggle.setAttribute("aria-expanded","true");jxBackdrop.hidden=false;jxBackdrop.style.display="block"}jxToggle.addEventListener("click",function(){jxDrawer.classList.contains("is-open")?jxClose():jxOpen()});jxBackdrop.addEventListener("click",jxClose);all(".jx-header__drawer a",jxHeader).forEach(function(a){a.addEventListener("click",jxClose)})}window.addEventListener("scroll",function(){jxHeader.classList.toggle("is-scrolled",window.scrollY>8)},{passive:true})}
12})();

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.