<?php
// modules/store/widgets/scripts.php
// جلوگیری از دسترسی مستقیم به فایل
if (basename($_SERVER['PHP_SELF']) == 'scripts.php') {
    die('Access Denied');
}
?>

<div id="qrModal" class="fixed inset-0 bg-black/70 backdrop-blur-sm hidden items-center justify-center z-[200] px-4 transition-opacity opacity-0" dir="rtl">
    <div class="bg-white dark:bg-slate-800 rounded-3xl shadow-2xl p-6 text-center max-w-sm w-full transform scale-95 transition-transform" id="qrModalContent">
        <h3 class="font-black text-gray-800 dark:text-white mb-2" id="qrUsername" dir="ltr"></h3>
        <p class="text-xs text-gray-500 mb-4">اسکن برای افزودن به نرم‌افزار</p>
        <div class="bg-white p-2 rounded-xl inline-block mx-auto mb-4 border border-gray-200 dark:border-slate-600 shadow-sm">
            <img id="qrImage" src="" alt="QR Code" class="w-48 h-48 object-contain">
        </div>
        <button type="button" onclick="closeQRModal()" class="w-full bg-gray-100 dark:bg-slate-700 hover:bg-gray-200 dark:hover:bg-slate-600 text-gray-800 dark:text-white font-bold py-3 rounded-xl transition">بستن</button>
    </div>
</div>

<script>
    // ==========================================
    // ماشین حساب زنده خرید گروهی
    // ==========================================
    const currentWalletBalance = <?php echo isset($walletBalance) ? (int)$walletBalance : 0; ?>;
    
    function updateGroupQty(cardId, change, maxStock) {
        const input = document.getElementById('qty-' + cardId);
        let currentQty = parseInt(input.value);
        let newQty = currentQty + change;
        
        if (newQty >= 1 && newQty <= maxStock) {
            input.value = newQty;
            
            // محاسبه مجدد جمع کل
            const basePrice = parseInt(document.getElementById('base-price-' + cardId).getAttribute('data-price'));
            const total = newQty * basePrice;
            document.getElementById('total-price-' + cardId).innerText = Number(total).toLocaleString('en-US') + " T";
            
            // بررسی موجودی کیف پول و غیرفعال کردن دکمه در صورت نیاز
            const btn = document.getElementById('btn-submit-' + cardId);
            if(btn) {
                if (currentWalletBalance < total) {
                    btn.classList.add('opacity-50', 'cursor-not-allowed');
                    btn.innerText = 'موجودی ناکافی';
                } else {
                    btn.classList.remove('opacity-50', 'cursor-not-allowed');
                    btn.innerText = '🛒 خرید و دریافت';
                }
            }
        }
    }

    // ==========================================
    // اسکریپت تایمر جشنواره‌های محصولات فروشگاه
    // ==========================================
    document.addEventListener("DOMContentLoaded", function() {
        const formatNum = (num) => num < 10 ? "0" + num : num;
        const timers = document.querySelectorAll('.store-plan-timer');
        
        if (timers.length > 0) {
            timers.forEach(function(el) {
                const targetDate = new Date(el.getAttribute('data-target')).getTime();
                
                const timerInterval = setInterval(function() {
                    const now = new Date().getTime();
                    const distance = targetDate - now;
                    
                    if (distance < 0) {
                        clearInterval(timerInterval);
                        el.innerHTML = "زمان تمام شد!";
                        setTimeout(() => location.reload(), 2000);
                        return;
                    }
                    
                    const days = Math.floor(distance / (1000 * 60 * 60 * 24));
                    const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
                    const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
                    const seconds = Math.floor((distance % (1000 * 60)) / 1000);
                    
                    if (days > 0) {
                        el.innerHTML = days + " روز و " + formatNum(hours) + ":" + formatNum(minutes) + ":" + formatNum(seconds);
                    } else {
                        el.innerHTML = formatNum(hours) + ":" + formatNum(minutes) + ":" + formatNum(seconds);
                    }
                }, 1000);
            });
        }
    });

    // ==========================================
    // باز و بسته کردن تنظیمات مشتری
    // ==========================================
    function toggleAdvancedSettings(cardId) {
        const settingsDiv = document.getElementById('settings-' + cardId);
        const icon = document.getElementById('icon-' + cardId);
        if (settingsDiv.classList.contains('hidden')) {
            settingsDiv.classList.remove('hidden');
            icon.innerText = '🔽';
        } else {
            settingsDiv.classList.add('hidden');
            icon.innerText = '⚙️';
        }
    }

    // ==========================================
    // فرمت‌بندی مبالغ در فرم‌ها (جداکننده سه‌رقم)
    // ==========================================
    function formatCurrency(input) {
        let value = input.value.replace(/,/g, '').replace(/\D/g, '');
        if (value) input.value = Number(value).toLocaleString('en-US');
        else input.value = '';
    }

    // ==========================================
    // مدیریت نمایش و تولید QR Code
    // ==========================================
    function showQRModal(link, username) {
        document.getElementById('qrUsername').innerText = username;
        // تولید بارکد مربعی با استفاده از API سبک اینترنتی
        document.getElementById('qrImage').src = "https://api.qrserver.com/v1/create-qr-code/?size=250x250&data=" + encodeURIComponent(link);
        
        const modal = document.getElementById('qrModal');
        const content = document.getElementById('qrModalContent');
        
        modal.classList.remove('hidden');
        modal.classList.add('flex');
        
        // ایجاد تاخیر کوتاه برای نمایش نرم (انیمیشن Fade و Scale)
        setTimeout(() => {
            modal.classList.remove('opacity-0');
            content.classList.remove('scale-95');
        }, 10);
    }

    function closeQRModal() {
        const modal = document.getElementById('qrModal');
        const content = document.getElementById('qrModalContent');
        
        modal.classList.add('opacity-0');
        content.classList.add('scale-95');
        
        // مخفی کردن کامل بعد از اتمام انیمیشن
        setTimeout(() => {
            modal.classList.add('hidden');
            modal.classList.remove('flex');
        }, 300);
    }
</script>