let violationCount = 0; // Fungsi untuk masuk ke mode layar penuh function enterFullscreen() { if (document.documentElement.requestFullscreen) { document.documentElement.requestFullscreen(); } else if (document.documentElement.mozRequestFullScreen) { // Firefox document.documentElement.mozRequestFullScreen(); } else if (document.documentElement.webkitRequestFullscreen) { // Chrome, Safari, Opera document.documentElement.webkitRequestFullscreen(); } else if (document.documentElement.msRequestFullscreen) { // IE/Edge document.documentElement.msRequestFullscreen(); } } // Fungsi untuk logout dan redirect ke URL logout function forceLogout() { window.location.href = ''; // Redirect ke halaman logout } // Event listener untuk perubahan visibilitas halaman document.addEventListener('visibilitychange', function () { if (document.visibilityState === 'hidden') { violationCount++; if (violationCount > 1) { // Logout setelah pelanggaran kedua forceLogout(); } else { alert('Anda tidak diizinkan meninggalkan halaman ini selama sesi berlangsung.'); window.location.reload(); // Memuat ulang halaman jika pengguna mencoba berpindah } } }); // Event listener untuk kehilangan fokus window.addEventListener('blur', function () { violationCount++; if (violationCount >= 1) { // Logout setelah pelanggaran kedua forceLogout(); } else { alert('Anda tidak diizinkan membuka tab atau aplikasi lain selama sesi berlangsung.'); window.focus(); // Kembali fokus ke halaman ini } }); // Event listener untuk memblokir pintasan keyboard document.addEventListener('keydown', function (event) { if (event.ctrlKey && (event.key === 't' || event.key === 'T')) { event.preventDefault(); violationCount++; if (violationCount >= 1) { // Logout setelah pelanggaran kedua forceLogout(); } else { alert('Anda tidak diizinkan membuka tab baru selama sesi berlangsung.'); } } }); // Event listener untuk deteksi perubahan ukuran layar window.addEventListener('resize', function () { if (window.innerWidth !== screen.width || window.innerHeight !== screen.height) { violationCount++; if (violationCount >= 1) { // Logout setelah pelanggaran kedua forceLogout(); } else { alert('Anda tidak diizinkan mengubah ukuran layar atau membuka aplikasi lain.'); window.location.reload(); } } }); // Event listener khusus untuk perangkat mobile (pause event) document.addEventListener('pause', function () { violationCount++; if (violationCount > 1) { // Logout setelah pelanggaran kedua forceLogout(); } else { alert('Anda tidak diizinkan meninggalkan aplikasi selama sesi berlangsung.'); window.location.reload(); } }, false); // Masuk ke mode layar penuh saat halaman dimuat enterFullscreen();