// ========================================
// اسکریپت پنل مدیریت کیف‌لند
// نسخه بازنویسی‌شده
// ========================================

document.addEventListener('DOMContentLoaded', function () {

    /* ==========================================
       سایدبار - باز/بسته کردن
    ========================================== */
    const sidebar  = document.getElementById('sidebar');
    const menuBtn  = document.getElementById('menuToggle');
    const overlay  = document.getElementById('overlay');
    const closeBtn = document.getElementById('closeSidebar');

    function openSidebar() {
        sidebar?.classList.add('active');
        overlay?.classList.add('active');
        document.body.style.overflow = 'hidden';
    }

    function closeSidebar() {
        sidebar?.classList.remove('active');
        overlay?.classList.remove('active');
        document.body.style.overflow = '';
    }

    menuBtn?.addEventListener('click', openSidebar);
    overlay?.addEventListener('click', closeSidebar);
    closeBtn?.addEventListener('click', closeSidebar);

    document.addEventListener('keydown', e => {
        if (e.key === 'Escape') closeSidebar();
    });

    window.addEventListener('resize', () => {
        if (window.innerWidth > 992) closeSidebar();
    });

    /* ==========================================
       دراپ‌داون سایدبار
    ========================================== */
    document.querySelectorAll('.sidebar-nav .dropdown > .dropdown-toggle').forEach(toggle => {
        toggle.addEventListener('click', function (e) {
            e.preventDefault();
            const parent = this.closest('.dropdown');
            const isOpen = parent.classList.contains('open');

            // بستن همه دراپ‌داون‌های دیگر
            document.querySelectorAll('.sidebar-nav .dropdown').forEach(d => {
                if (d !== parent) d.classList.remove('open');
            });

            parent.classList.toggle('open', !isOpen);
        });
    });

    // باز نگه داشتن دراپ‌داون اگه آیتم فعال داره
    document.querySelectorAll('.sidebar-nav .dropdown.active').forEach(d => {
        d.classList.add('open');
    });

    /* ==========================================
       جستجوی فوری هدر
    ========================================== */
    const headerSearch = document.querySelector('.top-header .search-box input');
    if (headerSearch) {
        let searchTimer;
        headerSearch.addEventListener('input', function () {
            clearTimeout(searchTimer);
            searchTimer = setTimeout(() => {
                const q = this.value.trim();
                if (q.length >= 2) performSearch(q);
            }, 400);
        });
    }

    function performSearch(query) {
        // جستجوی ساده در جداول صفحه
        const rows = document.querySelectorAll('tbody tr');
        rows.forEach(row => {
            const text = row.textContent.toLowerCase();
            row.style.display = text.includes(query.toLowerCase()) ? '' : 'none';
        });
    }

    /* ==========================================
       تایید حذف
    ========================================== */
    document.querySelectorAll('[data-confirm]').forEach(el => {
        el.addEventListener('click', function (e) {
            if (!confirm(this.dataset.confirm || 'آیا مطمئن هستید؟')) {
                e.preventDefault();
            }
        });
    });

    /* ==========================================
       آلرت‌های خودکار-بسته‌شو
    ========================================== */
    document.querySelectorAll('.alert').forEach(alert => {
        setTimeout(() => {
            alert.style.transition = 'opacity 0.5s, max-height 0.5s';
            alert.style.opacity = '0';
            alert.style.maxHeight = '0';
            alert.style.overflow = 'hidden';
            setTimeout(() => alert.remove(), 500);
        }, 5000);
    });

    /* ==========================================
       انتخاب‌همه چک‌باکس
    ========================================== */
    const selectAllCb = document.getElementById('selectAll');
    if (selectAllCb) {
        selectAllCb.addEventListener('change', function () {
            document.querySelectorAll('input[type="checkbox"][name$="[]"]').forEach(cb => {
                cb.checked = this.checked;
            });
        });

        // آپدیت وضعیت selectAll وقتی چک‌باکس‌های جزئی تغییر کنن
        document.querySelectorAll('input[type="checkbox"][name$="[]"]').forEach(cb => {
            cb.addEventListener('change', () => {
                const total = document.querySelectorAll('input[type="checkbox"][name$="[]"]').length;
                const checked = document.querySelectorAll('input[type="checkbox"][name$="[]"]:checked').length;
                selectAllCb.indeterminate = checked > 0 && checked < total;
                selectAllCb.checked = checked === total;
            });
        });
    }

    /* ==========================================
       پریویو آپلود تصویر
    ========================================== */
    document.querySelectorAll('input[type="file"][accept*="image"]').forEach(input => {
        input.addEventListener('change', function () {
            const preview = document.getElementById(this.dataset.preview || this.id + '_preview');
            if (!preview || !this.files[0]) return;
            const reader = new FileReader();
            reader.onload = e => {
                preview.src = e.target.result;
                preview.style.display = 'block';
            };
            reader.readAsDataURL(this.files[0]);
        });
    });

    /* ==========================================
       تب‌های تنظیمات
    ========================================== */
    window.switchTab = function (tabName) {
        document.querySelectorAll('.settings-content').forEach(el => el.style.display = 'none');
        document.querySelectorAll('.tab-btn').forEach(btn => btn.classList.remove('active'));

        const target = document.getElementById('tab-' + tabName);
        if (target) target.style.display = 'block';

        document.querySelectorAll('.tab-btn').forEach(btn => {
            if (btn.getAttribute('onclick')?.includes(tabName)) {
                btn.classList.add('active');
            }
        });
    };

    // بررسی URL hash یا query param برای تب پیش‌فرض
    const urlParams = new URLSearchParams(window.location.search);
    const tabParam  = urlParams.get('tab') || window.location.hash.replace('#', '');
    if (tabParam && document.getElementById('tab-' + tabParam)) {
        switchTab(tabParam);
    }

    /* ==========================================
       نمودار فروش (اگه چارت در صفحه بود)
    ========================================== */
    const salesChart = document.getElementById('salesChart');
    if (salesChart && typeof Chart !== 'undefined') {
        const ctx = salesChart.getContext('2d');
        new Chart(ctx, {
            type: 'line',
            data: salesChart.dataset,
            options: {
                responsive: true,
                plugins: { legend: { position: 'top', rtl: true } },
                scales: {
                    x: { grid: { color: 'rgba(0,0,0,0.05)' } },
                    y: { grid: { color: 'rgba(0,0,0,0.05)' }, beginAtZero: true }
                }
            }
        });
    }

    /* ==========================================
       tooltip ساده
    ========================================== */
    document.querySelectorAll('[data-tooltip]').forEach(el => {
        let tip;
        el.addEventListener('mouseenter', function () {
            tip = document.createElement('div');
            tip.className = 'admin-tooltip';
            tip.textContent = this.dataset.tooltip;
            tip.style.cssText = `
                position:fixed; background:#1E293B; color:#fff;
                padding:5px 10px; border-radius:6px; font-size:12px;
                z-index:9999; pointer-events:none; white-space:nowrap;
                box-shadow:0 3px 10px rgba(0,0,0,0.3);
            `;
            document.body.appendChild(tip);
            const rect = this.getBoundingClientRect();
            tip.style.top = (rect.top - tip.offsetHeight - 8) + 'px';
            tip.style.left = (rect.left + rect.width / 2 - tip.offsetWidth / 2) + 'px';
        });

        el.addEventListener('mouseleave', () => tip?.remove());
    });

    /* ==========================================
       کپی متن (برای شماره سفارش و غیره)
    ========================================== */
    document.querySelectorAll('.copy-text').forEach(el => {
        el.style.cursor = 'pointer';
        el.addEventListener('click', function () {
            navigator.clipboard.writeText(this.textContent.trim()).then(() => {
                const orig = this.textContent;
                this.textContent = '✓ کپی شد';
                setTimeout(() => this.textContent = orig, 1500);
            });
        });
    });

    /* ==========================================
       فرمت اعداد فارسی در ورودی قیمت
    ========================================== */
    document.querySelectorAll('input[data-type="price"]').forEach(input => {
        input.addEventListener('input', function () {
            let v = this.value.replace(/[^0-9]/g, '');
            this.value = v ? parseInt(v).toLocaleString('fa-IR') : '';
        });
    });

    /* ==========================================
       تیک‌رنگ جداول (stripe)
    ========================================== */
    document.querySelectorAll('tbody tr:nth-child(even)').forEach(row => {
        row.style.background = 'rgba(99,102,241,0.015)';
    });

});
