(function(){ function preventAll(el){ var evs = ['click','dblclick','contextmenu','mousedown','mouseup','touchstart','touchend','pointerdown','pointerup','keydown']; evs.forEach(function(evt){ el.addEventListener(evt, function(e){ e.preventDefault(); e.stopPropagation(); return false; }, true); }); } function prepareVideo(v){ if (!v || v.dataset.noUiPrepared) return; v.dataset.noUiPrepared = '1'; v.autoplay = true; v.muted = true; v.loop = true; v.playsInline = true; v.setAttribute('playsinline',''); v.setAttribute('webkit-playsinline',''); v.removeAttribute('controls'); v.controls = false; try { v.disablePictureInPicture = true; } catch(e){} try { v.setAttribute('tabindex','-1'); } catch(e){} try { v.setAttribute('aria-hidden','true'); } catch(e){} preventAll(v); var fig = (v.closest && v.closest('figure.wp-block-video')) || v.parentElement; if (fig){ preventAll(fig); if (!fig.querySelector('.no-ui-video-cover')){ var cover = document.createElement('div'); cover.className = 'no-ui-video-cover'; fig.appendChild(cover); // Try to start background audio on first interaction within the video area try { var started = false; var startAudio = function(){ if (started) return; started = true; var a = document.getElementById('bg-music') || document.querySelector('audio'); if (a) { try { a.muted = false; } catch(e){} try { a.play(); } catch(e){} } }; ['pointerdown','touchstart','click'].forEach(function(evt){ cover.addEventListener(evt, function(){ startAudio(); }, { capture:true, once:true }); }); } catch(e){} preventAll(cover); } } function tryPlay(){ var p; try { p = v.play(); } catch(e){} if (p && typeof p.catch === 'function') p.catch(function(){}); } tryPlay(); } // Attempt to autoplay background audio immediately on load. function getBgAudio(){ return document.getElementById('bg-music') || document.querySelector('audio'); } function setupAudioUnlock(a){ a = a || getBgAudio(); if (!a) return; var fired = false; function unlock(){ if (fired) return; fired = true; try { a.muted = false; } catch(e){} try { a.play(); } catch(e){} } ['pointerdown','touchstart','click','keydown'].forEach(function(evt){ window.addEventListener(evt, function handler(){ unlock(); window.removeEventListener(evt, handler, true); }, { capture:true }); }); document.addEventListener('visibilitychange', function(){ if (!document.hidden && !fired) unlock(); }); } function autoPlayAudioImmediate(){ var a = getBgAudio(); if (!a) return; try { a.loop = true; } catch(e){} try { a.autoplay = true; } catch(e){} try { if (!a.preload) a.preload = 'auto'; } catch(e){} try { a.muted = false; } catch(e){} var p; try { p = a.play(); } catch(e) { p = null; } if (p && typeof p.then === 'function') { p.then(function(){ /* started with sound */ }).catch(function(){ try { a.muted = true; a.play().catch(function(){}); } catch(e){} setupAudioUnlock(a); }); } else { // If no promise support, set up unlock fallback setupAudioUnlock(a); } } function setupAll(){ var vids = document.querySelectorAll('figure.wp-block-video video, video#mainVideo, video.auto-noui'); vids.forEach(prepareVideo); autoPlayAudioImmediate(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', setupAll); } else { setupAll(); } try { var mo = new MutationObserver(function(muts){ muts.forEach(function(m){ m.addedNodes && m.addedNodes.forEach(function(n){ if (n.nodeType === 1) { if (n.matches && (n.matches('video') || n.matches('figure.wp-block-video'))){ if (n.matches('video')) prepareVideo(n); n.querySelectorAll && n.querySelectorAll('video').forEach(prepareVideo); } else { n.querySelectorAll && n.querySelectorAll('video').forEach(prepareVideo); } } }); }); }); mo.observe(document.documentElement, { childList: true, subtree: true }); } catch(e){} })();