1(function polyfill() { 2 const relList = document.createElement("link").relList; 3 if (relList && relList.supports && relList.supports("modulepreload")) { 4 return; 5 } 6 for (const link of document.querySelectorAll('link[rel="modulepreload"]')) { 7 processPreload(link); 8 } 9 new MutationObserver((mutations) => { 10 for (const mutation of mutations) { 11 if (mutation.type !== "childList") { 12 continue; 13 } 14 for (const node of mutation.addedNodes) { 15 if (node.tagName === "LINK" && node.rel === "modulepreload") 16 processPreload(node); 17 } 18 } 19 }).observe(document, { childList: true, subtree: true }); 20 function getFetchOpts(link) { 21 const fetchOpts = {}; 22 if (link.integrity) fetchOpts.integrity = link.integrity; 23 if (link.referrerPolicy) fetchOpts.referrerPolicy = link.referrerPolicy; 24 if (link.crossOrigin === "use-credentials") 25 fetchOpts.credentials = "include"; 26 else if (link.crossOrigin === "anonymous") fetchOpts.credentials = "omit"; 27 else fetchOpts.credentials = "same-origin"; 28 return fetchOpts; 29 } 30 function processPreload(link) { 31 if (link.ep) 32 return; 33 link.ep = true; 34 const fetchOpts = getFetchOpts(link); 35 fetch(link.href, fetchOpts); 36 } 37})(); 38(function() { 39 var ageGate = document.getElementById("age-gate"); 40 var cookieBanner = document.getElementById("cookie-banner"); 41 var ageVerified = false; 42 var cookieAccepted = false; 43 var cookieRejected = false; 44 try { 45 ageVerified = sessionStorage.getItem("age-verified") === "1"; 46 cookieAccepted = localStorage.getItem("cookie-accepted") === "1"; 47 cookieRejected = localStorage.getItem("cookie-rejected") === "1"; 48 } catch (e) { 49 } 50 if (ageGate && !ageVerified) { 51 ageGate.classList.add("active"); 52 } 53 document.querySelectorAll('[data-age-gate="confirm"]').forEach(function(btn) { 54 btn.addEventListener("click", function() { 55 try { 56 sessionStorage.setItem("age-verified", "1"); 57 } catch (e) { 58 } 59 if (ageGate) ageGate.classList.remove("active"); 60 maybeShowCookies(); 61 }); 62 }); 63 document.querySelectorAll('[data-age-gate="decline"]').forEach(function(btn) { 64 btn.addEventListener("click", function() { 65 window.location.href = "https://www.joueurs-info-service.fr/"; 66 }); 67 }); 68 function maybeShowCookies() { 69 if (!cookieAccepted && !cookieRejected && cookieBanner) { 70 cookieBanner.classList.add("active"); 71 } 72 } 73 if (ageVerified) { 74 maybeShowCookies(); 75 } 76 var acceptBtn = document.getElementById("cookie-accept"); 77 var rejectBtn = document.getElementById("cookie-reject"); 78 if (acceptBtn) { 79 acceptBtn.addEventListener("click", function() { 80 try { 81 localStorage.setItem("cookie-accepted", "1"); 82 localStorage.removeItem("cookie-rejected"); 83 } catch (e) { 84 } 85 if (cookieBanner) cookieBanner.classList.remove("active"); 86 }); 87 } 88 if (rejectBtn) { 89 rejectBtn.addEventListener("click", function() { 90 try { 91 localStorage.setItem("cookie-rejected", "1"); 92 localStorage.removeItem("cookie-accepted"); 93 } catch (e) { 94 } 95 if (cookieBanner) cookieBanner.classList.remove("active"); 96 }); 97 } 98 document.querySelectorAll("[data-manage-cookies]").forEach(function(el) { 99 el.addEventListener("click", function(ev) { 100 ev.preventDefault(); 101 try { 102 localStorage.removeItem("cookie-accepted"); 103 localStorage.removeItem("cookie-rejected"); 104 } catch (e) { 105 } 106 if (cookieBanner) cookieBanner.classList.add("active"); 107 }); 108 }); 109 var moreBtn = document.getElementById("nav-more-btn"); 110 var overflow = document.getElementById("nav-overflow"); 111 if (moreBtn && overflow) { 112 moreBtn.addEventListener("click", function() { 113 overflow.classList.toggle("open"); 114 }); 115 document.addEventListener("click", function(ev) { 116 if (!overflow.contains(ev.target) && !moreBtn.contains(ev.target)) { 117 overflow.classList.remove("open"); 118 } 119 }); 120 } 121 var form = document.getElementById("contact-form"); 122 if (form) { 123 form.addEventListener("submit", function(ev) { 124 ev.preventDefault(); 125 var email = document.getElementById("contact-email"); 126 var message = document.getElementById("contact-message"); 127 var error = document.getElementById("email-error"); 128 var success = document.getElementById("form-success");
129 var valid = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email && email.value || ""); 130 if (!valid) { 131 if (error) error.classList.add("visible"); 132 return; 133 } 134 if (error) error.classList.remove("visible"); 135 if (!message || !message.value.trim()) return; 136 form.style.display = "none"; 137 if (success) success.classList.add("visible"); 138 }); 139 } 140})();
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.