let mediaElement = document.getElementById("mediaPlayer"); function loadMedia(fileURL) { dialogOverlay.style.display = 'none'; mediaElement.oncanplay = null; if (mediaElement) { mediaElement.src = fileURL; // ✅ Safe, properly encoded URL mediaElement.oncanplay = () => { if (autoplayCheckbox && autoplayCheckbox.checked) { mediaElement.play().catch(error => console.warn("Playback issue:", error)); } }; } } // Handle submit subtitle URL function clearSubtitles() { const tracks = mediaElement.getElementsByTagName('track'); for (let i = tracks.length - 1; i >= 0; i--) { tracks[i].remove(); } } // Validate media URL function isSafeURL(fileURL) { try { const url = new URL(fileURL); return url.protocol === "file:"; } catch (error) { return false; } } // Load addon script dynamically function loadAddon(fileURL) { // Avoid duplicate scripts if (document.querySelector(`script[data-addon="${fileURL}"]`)) return; const script = document.createElement('script'); script.src = fileURL; script.type = 'text/javascript'; script.async = false; // optional, depends on your needs script.setAttribute('data-addon', fileURL); document.head.appendChild(script); console.log(`addon loaded: ${fileURL}`) alert("Addon loaded successfully"); } // Unload addon script by removing the