1window.addEventListener('scroll', scrollFunction, { passive: true });function scrollFunction() {if (document.body.scrollTop > 200 || document.documentElement.scrollTop > 200) {document.getElementById("myBtn").style.display = "block";} else {document.getElementById("myBtn").style.display = "none";}} 2function topFunction() {document.body.scrollTop = 0;document.documentElement.scrollTop = 0;document.getElementById("PickupLoc").focus();} 3document.addEventListener('DOMContentLoaded', function () { 4['mlvgeoconditions', 'mlvgeoinfo', 'mlvgeo2', 'mlvgeoinfocentre', 'mlvgeofaq'].forEach(function (id) { 5var section = document.getElementById(id); 6if (!section) return; 7 8section.querySelectorAll('h3').forEach(function (h3) { 9var siblings = []; 10var el = h3.nextElementSibling; 11while (el && !['H2', 'H3'].includes(el.tagName)) { 12if (el.tagName === 'P') siblings.push(el); 13el = el.nextElementSibling; 14} 15 16if (siblings.length === 0) return; 17 18h3.classList.add('mlv-has-p'); 19siblings.forEach(function (p) { p.classList.add('mlv-collapsed'); }); 20 21h3.addEventListener('click', function () { 22var isOpen = h3.classList.toggle('mlv-open'); 23siblings.forEach(function (p) { 24p.classList.toggle('mlv-collapsed', !isOpen); 25}); 26}); 27}); 28}); 29}); 30document.addEventListener('DOMContentLoaded', function () { 31document.querySelectorAll('.mlv-price-info').forEach(function (btn) { 32var wrap = btn.closest('.mlv-price-wrap'); 33var tip = wrap ? wrap.querySelector('.mlv-price-tip') : null; 34if (!tip) return; 35 36btn.addEventListener('click', function (e) { 37e.preventDefault(); 38e.stopPropagation(); 39var open = tip.classList.toggle('is-open'); 40btn.setAttribute('aria-expanded', open ? 'true' : 'false'); 41}); 42}); 43 44document.addEventListener('click', function (e) { 45document.querySelectorAll('.mlv-price-tip.is-open').forEach(function (tip) { 46var wrap = tip.closest('.mlv-price-wrap'); 47if (wrap && !wrap.contains(e.target)) { 48tip.classList.remove('is-open'); 49var btn = wrap.querySelector('.mlv-price-info'); 50if (btn) btn.setAttribute('aria-expanded', 'false'); 51} 52}); 53}); 54 55document.addEventListener('keydown', function (e) { 56if (e.key !== 'Escape') return; 57document.querySelectorAll('.mlv-price-tip.is-open').forEach(function (tip) { 58tip.classList.remove('is-open'); 59}); 60}); 61}); 62document.addEventListener('DOMContentLoaded', function () { 63 if (window.matchMedia('(min-width:769px)').matches) return; 64 var cta = document.getElementById('mlvStickyCta'); 65 var searchPanel = document.getElementById('NewSearchPanel'); 66 if (!cta || !searchPanel) return; 67 68 var pastSearch = false; 69 var inHideZone = false; 70 var ticking = false; 71 72 function render() { 73 cta.classList.toggle('is-visible', pastSearch && !inHideZone); 74 } 75 76 function checkScroll() { 77 pastSearch = searchPanel.getBoundingClientRect().bottom < 0; 78 render(); 79 ticking = false; 80 } 81 82 window.addEventListener('scroll', function () { 83 if (!ticking) { 84 requestAnimationFrame(checkScroll); 85 ticking = true; 86 } 87 }, { passive: true }); 88 89 checkScroll(); // état initial au chargement 90 91 if ('IntersectionObserver' in window) { 92 var hideZones = document.querySelectorAll('.reassure-cta'); 93 if (hideZones.length) { 94 var hideObserver = new IntersectionObserver(function (entries) { 95 inHideZone = entries.some(function (e) { return e.isIntersecting; }); 96 render(); 97 }, { threshold: 0.2 }); 98 hideZones.forEach(function (el) { hideObserver.observe(el); }); 99 } 100 } 101});
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.