<?php
/**
 * warning_tos.php
 * Peringatan keras anti-modifikasi & disclaimer lisensi EscoDigital
 * Include di layout.php SETELAH <body> tag, sebelum konten utama
 *
 * Cara pakai: tambahkan di layout.php setelah <body>:
 *   <?php include 'warning_tos.php'; ?>
 *
 * Fitur:
 * - Modal TOS muncul SEKALI per sesi (disimpan di sessionStorage)
 * - Banner merah tipis permanen di atas semua halaman
 * - Deteksi DevTools terbuka → warning
 * - Deteksi klik kanan → warning
 * - Watermark tersembunyi di DOM
 */

// Ambil info lisensi dari session untuk ditampilkan di TOS
$_tos_client  = $_SESSION['lic_client_name']    ?? 'PENGGUNA TERDAFTAR';
$_tos_key     = defined('LICENSE_KEY') ? substr(LICENSE_KEY, 0, 8) . '••••••••' : 'UNKNOWN';
$_tos_expired = $_SESSION['lic_expired_at']      ?? '-';
$_tos_domain  = $_SERVER['HTTP_HOST']            ?? 'localhost';
?>
<!-- ═══════════════════════════════════════════════════════════
     ESCODIGITAL — PERINGATAN LISENSI & ANTI-MODIFIKASI
     File: warning_tos.php | Jangan dihapus!
═══════════════════════════════════════════════════════════ -->

<!-- Watermark tersembunyi -->
<div id="__esc_wm" style="display:none!important;visibility:hidden!important"
     data-owner="EscoDigital"
     data-product="EscobarWeb"
     data-license="<?= htmlspecialchars($_tos_key) ?>"
     data-domain="<?= htmlspecialchars($_tos_domain) ?>"
     data-ts="<?= time() ?>">
    <!-- Licensed to: <?= htmlspecialchars($_tos_client) ?> | escobargame.site -->
</div>

<style>
/* ── TOS MODAL ───────────────────────────────────────────── */
#esc-tos-overlay {
    position: fixed; inset: 0; z-index: 999999;
    background: rgba(0,0,0,0.92);
    backdrop-filter: blur(16px);
    display: flex; align-items: center; justify-content: center;
    font-family: 'DM Sans', 'Plus Jakarta Sans', sans-serif;
}
#esc-tos-box {
    background: linear-gradient(180deg, #0d1117 0%, #0a0f1a 100%);
    border: 1px solid rgba(239,68,68,0.4);
    border-radius: 24px;
    padding: 0;
    width: 96%; max-width: 600px;
    max-height: 90vh;
    overflow: hidden;
    display: flex; flex-direction: column;
    box-shadow: 0 0 80px -10px rgba(239,68,68,0.3),
                0 0 0 1px rgba(239,68,68,0.15);
    animation: tosIn 0.4s cubic-bezier(0.4,0,0.2,1);
}
@keyframes tosIn {
    from { opacity:0; transform: scale(0.9) translateY(20px); }
    to   { opacity:1; transform: scale(1) translateY(0); }
}
#esc-tos-header {
    background: linear-gradient(135deg, #7f1d1d, #991b1b);
    padding: 20px 28px;
    display: flex; align-items: center; gap: 14px;
    flex-shrink: 0;
    border-bottom: 1px solid rgba(239,68,68,0.3);
}
#esc-tos-header .warn-icon {
    width: 52px; height: 52px; flex-shrink: 0;
    background: rgba(239,68,68,0.2);
    border: 2px solid rgba(239,68,68,0.5);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.6rem;
    animation: warnPulse 2s ease-in-out infinite;
}
@keyframes warnPulse {
    0%,100%{ box-shadow: 0 0 0 0 rgba(239,68,68,0.5); }
    50%    { box-shadow: 0 0 0 12px rgba(239,68,68,0); }
}
#esc-tos-header h2 {
    margin: 0; font-size: 1.1rem; font-weight: 900;
    color: #fca5a5; letter-spacing: 0.5px; line-height: 1.3;
}
#esc-tos-header p {
    margin: 4px 0 0; font-size: 0.72rem; color: #fca5a5;
    opacity: 0.7;
}
#esc-tos-body {
    padding: 24px 28px; overflow-y: auto; flex: 1;
}
#esc-tos-body::-webkit-scrollbar { width: 4px; }
#esc-tos-body::-webkit-scrollbar-thumb { background: #ef4444; border-radius: 2px; }

.tos-section {
    margin-bottom: 18px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.07);
    border-left: 3px solid #ef4444;
    border-radius: 10px; padding: 14px 16px;
}
.tos-section h3 {
    margin: 0 0 8px; font-size: 0.78rem; font-weight: 800;
    color: #f87171; text-transform: uppercase; letter-spacing: 1px;
    display: flex; align-items: center; gap: 7px;
}
.tos-section p, .tos-section li {
    font-size: 0.82rem; color: #94a3b8; margin: 0;
    line-height: 1.7;
}
.tos-section ul { margin: 6px 0 0 16px; padding: 0; }
.tos-section li { margin-bottom: 4px; }
.tos-section .highlight {
    color: #fbbf24; font-weight: 700;
    background: rgba(251,191,36,0.1);
    padding: 2px 6px; border-radius: 4px;
}
.tos-section .danger {
    color: #ef4444; font-weight: 800;
}

.tos-info-bar {
    background: rgba(6,182,212,0.08);
    border: 1px solid rgba(6,182,212,0.2);
    border-radius: 10px; padding: 12px 16px;
    margin-bottom: 18px;
    font-size: 0.78rem; color: #67e8f9;
    display: grid; grid-template-columns: 1fr 1fr; gap: 6px;
}
.tos-info-bar .info-row { display: flex; gap: 6px; align-items: center; }
.tos-info-bar .info-label { color: #475569; min-width: 80px; }

#esc-tos-footer {
    padding: 18px 28px;
    border-top: 1px solid rgba(255,255,255,0.06);
    flex-shrink: 0;
}
.tos-checkbox-wrap {
    display: flex; align-items: flex-start; gap: 10px;
    margin-bottom: 14px; cursor: pointer;
}
.tos-checkbox-wrap input[type="checkbox"] {
    width: 18px; height: 18px; flex-shrink: 0;
    margin-top: 1px; accent-color: #ef4444;
    cursor: pointer;
}
.tos-checkbox-wrap label {
    font-size: 0.8rem; color: #94a3b8; cursor: pointer; line-height: 1.5;
}
.tos-checkbox-wrap label b { color: #fca5a5; }
#esc-tos-agree-btn {
    width: 100%; padding: 14px;
    background: linear-gradient(135deg, #dc2626, #b91c1c);
    color: #fff; font-weight: 800; font-size: 0.9rem;
    border: none; border-radius: 12px; cursor: not-allowed;
    opacity: 0.4; transition: all 0.3s;
    letter-spacing: 0.5px;
}
#esc-tos-agree-btn.ready {
    opacity: 1; cursor: pointer;
}
#esc-tos-agree-btn.ready:hover {
    filter: brightness(1.1); transform: translateY(-1px);
}

/* ── BANNER PERMANEN ─────────────────────────────────────── */
#esc-warning-banner {
    position: fixed; top: 0; left: 0; right: 0; z-index: 99990;
    background: linear-gradient(90deg, #7f1d1d, #991b1b, #7f1d1d);
    background-size: 200% 100%;
    animation: bannerScroll 4s linear infinite;
    padding: 5px 0;
    text-align: center;
    font-size: 0.72rem; font-weight: 800;
    color: #fca5a5; letter-spacing: 1px;
    display: flex; align-items: center; justify-content: center; gap: 8px;
    border-bottom: 1px solid rgba(239,68,68,0.4);
}
@keyframes bannerScroll {
    0%   { background-position: 0% 0%; }
    100% { background-position: 200% 0%; }
}
#esc-warning-banner span { animation: blink 1.5s ease-in-out infinite; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0.5} }

/* ── DEVTOOLS WARNING ────────────────────────────────────── */
#esc-devtools-warn {
    display: none;
    position: fixed; top: 40px; right: 20px; z-index: 99995;
    background: linear-gradient(135deg, #7f1d1d, #991b1b);
    border: 1px solid rgba(239,68,68,0.5);
    border-radius: 14px; padding: 14px 18px;
    max-width: 300px;
    box-shadow: 0 10px 40px rgba(239,68,68,0.3);
    animation: slideInRight 0.3s ease;
}
@keyframes slideInRight { from{ transform: translateX(120%); } to{ transform: translateX(0); } }
#esc-devtools-warn p {
    margin: 0; font-size: 0.8rem; color: #fca5a5;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700; line-height: 1.5;
}
</style>

<!-- ── BANNER PERMANEN ── -->
<div id="esc-warning-banner">
    <span>⚠</span>
    PRODUK BERLISENSI ESCODIGITAL — MODIFIKASI TANPA IZIN = LISENSI HANGUS TANPA REFUND
    <span>⚠</span>
    &nbsp;|&nbsp;
    <span>©</span>
    ESCOBAR WEB <?= date('Y') ?> — ALL RIGHTS RESERVED
    <span>⚠</span>
</div>

<!-- ── DEVTOOLS WARNING ── -->
<div id="esc-devtools-warn">
    <p>⚠ Developer Tools Terdeteksi!<br>
    Semua aktivitas tercatat dan dilaporkan ke server lisensi EscoDigital.</p>
</div>

<!-- ── TOS MODAL (muncul sekali per sesi) ── -->
<div id="esc-tos-overlay" style="display:none;">
    <div id="esc-tos-box">
        <div id="esc-tos-header">
            <div class="warn-icon">⚠️</div>
            <div>
                <h2>PERINGATAN KERAS — BACA SEBELUM MENGGUNAKAN</h2>
                <p>EscoDigital Software License Agreement · Wajib disetujui setiap sesi</p>
            </div>
        </div>
        <div id="esc-tos-body">

            <!-- Info Lisensi Aktif -->
            <div class="tos-info-bar">
                <div class="info-row"><span class="info-label">Pengguna:</span> <b><?= htmlspecialchars($_tos_client) ?></b></div>
                <div class="info-row"><span class="info-label">Domain:</span> <b><?= htmlspecialchars($_tos_domain) ?></b></div>
                <div class="info-row"><span class="info-label">Lisensi:</span> <b><?= htmlspecialchars($_tos_key) ?></b></div>
                <div class="info-row"><span class="info-label">Berlaku:</span> <b><?= htmlspecialchars($_tos_expired) ?></b></div>
            </div>

            <!-- Pasal 1 -->
            <div class="tos-section">
                <h3>🔒 Pasal 1 — Larangan Modifikasi Script</h3>
                <ul>
                    <li>Dilarang keras <span class="danger">memodifikasi, mengedit, mendekripsi</span>, atau mengubah kode sumber (PHP, Python, JS, SQL) dalam bentuk apapun tanpa izin tertulis dari EscoDigital.</li>
                    <li>Dilarang melakukan <span class="danger">reverse engineering</span>, decompile, atau upaya apapun untuk memahami dan menduplikasi cara kerja sistem.</li>
                    <li>Dilarang menghapus, menyembunyikan, atau mengubah <span class="highlight">watermark, copyright notice</span>, atau atribusi EscoDigital di dalam kode.</li>
                    <li>Setiap perubahan pada file konfigurasi, database schema, atau struktur sistem <b>harus dikonsultasikan terlebih dahulu</b> ke tim EscoDigital.</li>
                </ul>
            </div>

            <!-- Pasal 2 -->
            <div class="tos-section">
                <h3>📡 Pasal 2 — Larangan Distribusi & Penjualan Ulang</h3>
                <ul>
                    <li>Dilarang keras <span class="danger">menjual, menyewakan, mendistribusikan</span>, atau memberikan akses script ini kepada pihak ketiga manapun.</li>
                    <li>Lisensi ini bersifat <span class="highlight">non-transferable</span> — hanya untuk 1 (satu) pengguna dan 1 (satu) domain yang terdaftar.</li>
                    <li>Dilarang membuat salinan (copy) script untuk digunakan di domain, server, atau lokasi lain tanpa lisensi terpisah.</li>
                    <li>Dilarang menggunakan script ini sebagai basis untuk membuat produk serupa yang dikomersilkan.</li>
                </ul>
            </div>

            <!-- Pasal 3 -->
            <div class="tos-section">
                <h3>⚡ Pasal 3 — Perangkat Tuya & Hardware</h3>
                <ul>
                    <li>Dilarang keras <span class="danger">memodifikasi, membypass, atau mengotaki</span> konfigurasi perangkat Tuya Smart Plug yang terintegrasi dengan sistem ini.</li>
                    <li>Dilarang menghubungkan perangkat Tuya ke sistem eksternal, bot, atau skrip lain selain yang disediakan EscoDigital.</li>
                    <li>Dilarang mengubah <span class="highlight">device_id, local_key, IP address</span> perangkat tanpa prosedur resmi dari EscoDigital.</li>
                    <li>Kerusakan hardware akibat modifikasi tanpa izin <b>sepenuhnya menjadi tanggung jawab pengguna</b>.</li>
                </ul>
            </div>

            <!-- Pasal 4 — PALING PENTING -->
            <div class="tos-section" style="border-left-color:#fbbf24; background: rgba(251,191,36,0.04);">
                <h3 style="color:#fbbf24;">💀 Pasal 4 — Konsekuensi Pelanggaran</h3>
                <ul>
                    <li>Jika terbukti melakukan modifikasi atau pelanggaran apapun: <span class="danger">LISENSI HANGUS SEKETIKA</span> tanpa pemberitahuan sebelumnya.</li>
                    <li class="danger" style="font-size:0.88rem; font-weight:800;">⛔ TIDAK ADA REFUND dalam kondisi apapun setelah lisensi diaktifkan.</li>
                    <li>EscoDigital berhak <span class="danger">menonaktifkan akses sistem dari jarak jauh</span> (remote suspend) kapan saja jika ditemukan pelanggaran.</li>
                    <li>EscoDigital berhak mengambil tindakan hukum sesuai <span class="highlight">UU ITE No. 19 Tahun 2016</span> dan peraturan HKI yang berlaku di Indonesia.</li>
                    <li>Semua aktivitas penggunaan <b>dimonitor dan dicatat</b> oleh server lisensi EscoDigital secara otomatis.</li>
                </ul>
            </div>

            <!-- Pasal 5 -->
            <div class="tos-section">
                <h3>✅ Pasal 5 — Yang Diperbolehkan</h3>
                <ul>
                    <li>Menggunakan sistem sesuai fungsinya untuk keperluan bisnis rental PS/gaming.</li>
                    <li>Mengubah konten seperti nama tempat, logo, dan data operasional melalui menu <b>Settings</b> yang disediakan.</li>
                    <li>Melaporkan bug atau meminta fitur baru melalui jalur resmi WhatsApp EscoDigital.</li>
                    <li>Meminta bantuan teknis untuk instalasi, konfigurasi awal, dan troubleshooting.</li>
                </ul>
            </div>

            <p style="font-size:0.72rem; color:#475569; text-align:center; margin-top:4px; line-height:1.8;">
                Dengan mengklik "Saya Mengerti & Menyetujui", Anda mengakui telah membaca, memahami,<br>
                dan menyetujui seluruh ketentuan di atas secara penuh dan tanpa syarat.<br>
                <b style="color:#64748b;">© <?= date('Y') ?> EscoDigital / EscobarWeb — All Rights Reserved</b>
            </p>
        </div>
        <div id="esc-tos-footer">
            <div class="tos-checkbox-wrap">
                <input type="checkbox" id="tos-check" onchange="tosCheckChanged(this)">
                <label for="tos-check">
                    Saya <b>telah membaca</b> dan menyetujui seluruh ketentuan lisensi di atas. Saya memahami bahwa
                    <b>modifikasi script, perangkat Tuya, atau pelanggaran apapun</b> akan mengakibatkan
                    <b>lisensi hangus tanpa refund</b>.
                </label>
            </div>
            <button id="esc-tos-agree-btn" onclick="tosAgree()" disabled>
                🔒 Saya Mengerti & Setuju — Lanjutkan
            </button>
        </div>
    </div>
</div>

<script>
(function() {
    'use strict';

    // ── Tampilkan TOS modal sekali per sesi ─────────────────
    const TOS_KEY = 'esc_tos_agreed_v2';
    if (!sessionStorage.getItem(TOS_KEY)) {
        document.getElementById('esc-tos-overlay').style.display = 'flex';
        // Paksa scroll ke atas di tos-body
        setTimeout(() => {
            const body = document.getElementById('esc-tos-body');
            if (body) body.scrollTop = 0;
        }, 100);
    }

    window.tosCheckChanged = function(el) {
        const btn = document.getElementById('esc-tos-agree-btn');
        if (el.checked) {
            btn.disabled = false;
            btn.classList.add('ready');
        } else {
            btn.disabled = true;
            btn.classList.remove('ready');
        }
    };

    window.tosAgree = function() {
        const checked = document.getElementById('tos-check').checked;
        if (!checked) return;
        sessionStorage.setItem(TOS_KEY, '1');
        const overlay = document.getElementById('esc-tos-overlay');
        overlay.style.opacity = '0';
        overlay.style.transition = '0.4s';
        setTimeout(() => overlay.style.display = 'none', 400);
    };

    // ── Blokir tombol ESC & klik di luar modal ──────────────
    document.addEventListener('keydown', function(e) {
        if (e.key === 'Escape' && !sessionStorage.getItem(TOS_KEY)) {
            e.preventDefault();
            e.stopPropagation();
        }
    });

    // ── Cegah klik kanan (anti inspect elemen sederhana) ────
    document.addEventListener('contextmenu', function(e) {
        if (!sessionStorage.getItem('esc_devmode_allowed')) {
            e.preventDefault();
            showRightClickWarn();
        }
    });

    function showRightClickWarn() {
        if (typeof Swal === 'undefined') return;
        Swal.fire({
            title: '🚫 Akses Ditolak',
            html: `<div style="font-size:.88rem;color:#94a3b8;line-height:1.7;">
                Klik kanan dinonaktifkan pada sistem ini.<br>
                <b style="color:#ef4444;">Segala upaya inspeksi kode merupakan pelanggaran<br>perjanjian lisensi EscoDigital.</b><br><br>
                <span style="font-size:.75rem;color:#475569;">UU ITE No. 19 Tahun 2016 · HKI Indonesia</span>
            </div>`,
            icon: 'error',
            confirmButtonText: 'Saya Mengerti',
            background: '#0d1117',
            color: '#fff',
            confirmButtonColor: '#dc2626',
        });
    }

    // ── Deteksi DevTools ─────────────────────────────────────
    // Metode: deteksi via window.outerWidth vs innerWidth gap (kasar tapi cukup)
    let devtoolsOpen = false;
    const devWarn = document.getElementById('esc-devtools-warn');

    function checkDevTools() {
        const threshold = 160;
        const widthDiff = window.outerWidth - window.innerWidth;
        const heightDiff = window.outerHeight - window.innerHeight;
        const isOpen = widthDiff > threshold || heightDiff > threshold;
        if (isOpen && !devtoolsOpen) {
            devtoolsOpen = true;
            if (devWarn) devWarn.style.display = 'block';
            // Log ke server (non-blocking)
            try {
                fetch('?_esc_dt_log=1', { method: 'GET', keepalive: true }).catch(()=>{});
            } catch(e) {}
        } else if (!isOpen && devtoolsOpen) {
            devtoolsOpen = false;
            if (devWarn) devWarn.style.display = 'none';
        }
    }
    setInterval(checkDevTools, 3000);

    // ── Tambahkan margin-top ke konten agar tidak tertutup banner ──
    // Banner tingginya sekitar 26px
    document.addEventListener('DOMContentLoaded', function() {
        const body = document.querySelector('body');
        if (body) {
            const currentPT = parseInt(getComputedStyle(body).paddingTop) || 0;
            body.style.paddingTop = (currentPT + 26) + 'px';
        }
        // Atau jika ada wrapper main-content
        const main = document.getElementById('main-content');
        if (main) {
            const cur = parseInt(getComputedStyle(main).paddingTop) || 0;
            // Sudah handled via body, skip
        }
    });

})();
</script>