UA 0.0
EAGLE SQUAD
2026
· Familly Movie
document.getElementById('share-movie')?.addEventListener('click', function () {
const url = this.dataset.url;
const title = this.dataset.title;
if (navigator.share) {
navigator.share({ title, url });
} else {
navigator.clipboard.writeText(url);
alert('Link copied to clipboard!');
}
});
(function () {
const modal = document.getElementById('trailerModal');
const player = document.getElementById('trailer-player');
if (!modal || !player) return;
modal.addEventListener('show.bs.modal', function () {
document.body.classList.add('trailer-modal-open');
const src = player.dataset.src;
if (src) {
if (player.tagName === 'IFRAME' && !player.src) {
player.src = src.includes('?') ? src + '&autoplay=1' : src + '?autoplay=1';
} else if (player.tagName === 'VIDEO') {
if (!player.src) {
player.src = src;
}
player.load();
}
}
});
modal.addEventListener('shown.bs.modal', function () {
if (player.tagName === 'VIDEO') {
player.play().catch(() => {});
}
});
modal.addEventListener('hidden.bs.modal', function () {
document.body.classList.remove('trailer-modal-open');
if (player.tagName === 'VIDEO') {
player.pause();
return;
}
player.src = '';
});
if (player.tagName === 'VIDEO') {
const controls = modal.querySelector('.trailer-controls');
const playBtn = controls?.querySelector('.trailer-play');
const backBtn = controls?.querySelector('.trailer-back');
const forwardBtn = controls?.querySelector('.trailer-forward');
const muteBtn = controls?.querySelector('.trailer-mute');
const volume = controls?.querySelector('.trailer-volume');
const progress = controls?.querySelector('.trailer-progress');
const time = controls?.querySelector('.trailer-time');
const speed = controls?.querySelector('.trailer-speed');
const fullscreen = controls?.querySelector('.trailer-fullscreen');
const formatTime = (seconds) => {
if (!Number.isFinite(seconds)) return '0:00';
const mins = Math.floor(seconds / 60);
const secs = Math.floor(seconds % 60).toString().padStart(2, '0');
return `${mins}:${secs}`;
};
const sync = () => {
if (playBtn) {
playBtn.innerHTML = player.paused ? '' : '';
}
if (progress && player.duration) {
progress.value = String((player.currentTime / player.duration) * 100);
progress.style.setProperty('--progress', `${progress.value}%`);
}
if (time) {
time.textContent = `${formatTime(player.currentTime)} / ${formatTime(player.duration)}`;
}
};
playBtn?.addEventListener('click', () => {
if (player.paused) player.play().catch(() => {});
else player.pause();
});
backBtn?.addEventListener('click', () => {
player.currentTime = Math.max(0, player.currentTime - 10);
});
forwardBtn?.addEventListener('click', () => {
player.currentTime = Math.min(player.duration || Infinity, player.currentTime + 10);
});
muteBtn?.addEventListener('click', () => {
player.muted = !player.muted;
muteBtn.innerHTML = player.muted ? '' : '';
});
volume?.addEventListener('input', () => {
player.volume = parseFloat(volume.value);
player.muted = player.volume === 0;
if (muteBtn) muteBtn.innerHTML = player.muted ? '' : '';
});
progress?.addEventListener('input', () => {
if (!player.duration) return;
player.currentTime = (parseFloat(progress.value) / 100) * player.duration;
});
speed?.addEventListener('change', () => {
player.playbackRate = parseFloat(speed.value);
});
fullscreen?.addEventListener('click', () => {
const target = modal.querySelector('.trailer-player-frame');
if (document.fullscreenElement) document.exitFullscreen().catch(() => {});
else target?.requestFullscreen?.().catch(() => {});
});
player.addEventListener('click', () => playBtn?.click());
player.addEventListener('timeupdate', sync);
player.addEventListener('play', sync);
player.addEventListener('pause', sync);
player.addEventListener('loadedmetadata', sync);
sync();
}
})();