<?php
/**
 * lib/footer.php — Common panel footer (Nxs Panel).
 */

declare(strict_types=1);

// Veritabanından mevcut en son cihaz ID'sini güvenli bir şekilde alıyoruz
$maxDbId = 0;
if (function_exists('db')) {
    try {
        $pdoFooter = db();
        $maxDbId = (int) $pdoFooter->query("SELECT MAX(id) FROM devices")->fetchColumn();
    } catch (Exception $e) {
        $maxDbId = 0;
    }
}
?>
            </div> <!-- /.container-fluid.page -->
        </main>
    </div> <!-- /#container -->

    <!-- Tüm Sayfalarda Çalışacak Sabit Yeni Cihaz Bildirim Kutusu -->
    <div id="newDeviceTopRight" class="pulse-animation" style="position: fixed; top: 75px; right: 24px; z-index: 99999; display: none; background: linear-gradient(135deg, #ef4444, #dc2626); color: #fff; padding: 12px 18px; border-radius: 12px; box-shadow: 0 8px 25px rgba(239, 68, 68, 0.3); align-items: center; gap: 12px; font-weight: 500; cursor: pointer; transition: all 0.3s ease; border: 2px solid rgba(255,255,255,0.25); min-width: 270px; white-space: nowrap;">
        <div style="background: rgba(255,255,255,0.2); width: 36px; height: 36px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0;">
            <i class="la la-bell"></i>
        </div>
        <div style="overflow: hidden;">
            <div id="alertTitle" style="font-weight: 700; font-size: 0.9rem; margin-bottom: 1px;">1 Yeni Cihaz Geldi!</div>
            <div id="alertDesc" style="font-size: 0.78rem; opacity: 0.95;">Bilgileri girmek için tıklayınız</div>
        </div>
    </div>

    <style>
        @keyframes pulseBlink {
            0% { opacity: 1; transform: scale(1); }
            50% { opacity: 0.6; transform: scale(0.98); }
            100% { opacity: 1; transform: scale(1); }
        }
        .pulse-animation {
            animation: pulseBlink 1.5s infinite ease-in-out;
        }
    </style>

    <script>
    const currentLang = typeof panel_lang === 'function' ? panel_lang() : 'tr';

    // PHP'den gelen başlangıç ID'sini JavaScript değişkenine aktarıyoruz
    let globalLastKnownId = <?= $maxDbId ?>;

    window.addEventListener('DOMContentLoaded', function() {
        // Eğer daha önceden tıklanmamış bir bildirim kalmışsa onu ve sayısını göster
        const savedNewId = localStorage.getItem('unhandled_device_id');
        const savedCount = localStorage.getItem('unhandled_device_count') || '1';
        if (savedNewId) {
            showDeviceAlert(savedNewId, parseInt(savedCount, 10));
        }
        
        // İlk açılışta veritabanındaki max_id'yi localStorage'a eşitle (eski cihazlar tetiklemesin)
        if (!localStorage.getItem('last_checked_device_id') && globalLastKnownId > 0) {
            localStorage.setItem('last_checked_device_id', globalLastKnownId);
        }
    });

    function showDeviceAlert(targetId, count) {
        const titleEl = document.getElementById('alertTitle');
        const descEl = document.getElementById('alertDesc');
        
        if (titleEl) {
            if (currentLang === 'tr') {
                titleEl.innerText = count + " Yeni Cihaz Geldi!";
            } else if (currentLang === 'de') {
                titleEl.innerText = count + " Neues Gerät erkannt!";
            } else {
                titleEl.innerText = count + " New Device Detected!";
            }
        }
        
        if (descEl) {
            if (currentLang === 'tr') {
                descEl.innerText = "Bilgileri girmek için tıklayınız";
            } else if (currentLang === 'de') {
                descEl.innerText = "Klicken, um Details einzugeben";
            } else {
                descEl.innerText = "Click to enter details";
            }
        }
        
        const alertEl = document.getElementById('newDeviceTopRight');
        if (alertEl) {
            alertEl.style.display = 'flex';
            alertEl.onclick = function() {
                localStorage.removeItem('unhandled_device_id');
                localStorage.removeItem('unhandled_device_count');
                window.location.href = 'device_edit.php?id=' + targetId;
            };
        }
    }

    // Her 10 saniyede bir yeni cihaz kontrolü
    setInterval(function() {
        fetch('check_new_devices.php')
            .then(response => response.json())
            .then(data => {
                let lastCheckedId = parseInt(localStorage.getItem('last_checked_device_id') || globalLastKnownId, 10);
                
                if (data.max_id > lastCheckedId) {
                    // Kaç tane yeni cihaz eklendiğini hesapla
                    let diff = data.max_id - lastCheckedId;
                    let existingCount = parseInt(localStorage.getItem('unhandled_device_count') || '0', 10);
                    let totalCount = existingCount + diff;
                    
                    const newId = data.max_id;
                    localStorage.setItem('last_checked_device_id', newId);
                    localStorage.setItem('unhandled_device_id', newId);
                    localStorage.setItem('unhandled_device_count', totalCount);
                    
                    showDeviceAlert(newId, totalCount);
                }
            })
            .catch(error => console.log('Bildirim kontrol hatası:', error));
    }, 10000);
    </script>

    <!-- Bootstrap JS Bundle CDN -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
    <script src="assets/vvveb/admin.js"></script>
</body>
</html>
<?php
// Eğer i18n tamponu aktifse ve çıktı üretiliyorsa güvenli bir şekilde sonlandırıyoruz
if (isset($GLOBALS['i18n_buffer_active']) && $GLOBALS['i18n_buffer_active']) {
    $GLOBALS['i18n_buffer_active'] = false;
    if (ob_get_level() > 0) {
        ob_end_flush();
    }
}