// Show run content details
function showRunContent(runId) {
    document.getElementById('loading').classList.add('active');

    // Fetch run content from API
    fetch('api.php?action=get_run_content&run_id=' + runId)
        .then(response => response.json())
        .then(data => {
            document.getElementById('loading').classList.remove('active');

            if (!data.success) {
                alert('حدث خطأ: ' + (data.message || 'خطأ غير معروف'));
                return;
            }

            displayRunContent(data.data, runId);

            // Show modal
            document.getElementById('modal-title').textContent = '📦 تفاصيل عملية السحب #' + runId;
            document.getElementById('modal-overlay').classList.add('active');
            document.getElementById('details-modal').classList.add('active');
        })
        .catch(error => {
            document.getElementById('loading').classList.remove('active');
            alert('حدث خطأ أثناء جلب التفاصيل');
            console.error('Error:', error);
        });
}

function displayRunContent(data, runId) {
    // Format file size
    function formatFileSize(bytes) {
        // Handle null, undefined, zero, or string zero
        if (!bytes || bytes === 0 || bytes === '0') return '0 Bytes';

        // Convert to number if string
        const numBytes = typeof bytes === 'string' ? parseInt(bytes) : bytes;

        // Check if valid number
        if (isNaN(numBytes) || numBytes === 0) return '0 Bytes';

        const k = 1024;
        const sizes = ['Bytes', 'KB', 'MB', 'GB'];
        const i = Math.floor(Math.log(numBytes) / Math.log(k));
        return Math.round(numBytes / Math.pow(k, i) * 100) / 100 + ' ' + sizes[i];
    }

    let html = '<div class="stats-grid">';

    // Total items
    html += '<div class="stat-card"><h3>إجمالي العناصر</h3><div class="value">' +
        (data.total_items || 0) +
        '</div><div class="subtitle">عنصر تم سحبه</div></div>';

    // Total size
    html += '<div class="stat-card" style="background: linear-gradient(135deg, #a29bfe 0%, #6c5ce7 100%);"><h3 style="color: white;">إجمالي الحجم</h3><div class="value" style="color: white;">' +
        formatFileSize(data.total_size || 0) +
        '</div><div class="subtitle" style="color: #dfe6e9;">حجم الملفات</div></div>';

    // Content types count
    html += '<div class="stat-card"><h3>أنواع المحتوى</h3><div class="value">' +
        (data.content_breakdown ? Object.keys(data.content_breakdown).length : 0) +
        '</div><div class="subtitle">نوع مختلف</div></div>';

    html += '</div>';

    // Content breakdown table
    if (data.content_breakdown) {
        html += '<h3 style="margin-top: 20px;">تفاصيل المحتوى المسحوب</h3>';
        html += '<table><thead><tr><th>نوع المحتوى</th><th>العدد</th><th>الحجم الإجمالي</th></tr></thead><tbody>';

        const contentTypeNames = {
            1: 'صورة',
            2: 'يوتيوب',
            3: 'عاجل/خاص',
            6: 'صور متعددة',
            10: 'فيديو عام',
            15: 'نص فقط',
            21: 'فيديو تويتر'
        };

        for (const [type, info] of Object.entries(data.content_breakdown)) {
            html += '<tr>' +
                '<td>' + (contentTypeNames[type] || 'غير محدد') + '</td>' +
                '<td>' + info.count + '</td>' +
                '<td>' + formatFileSize(info.total_size) + '</td>' +
                '</tr>';
        }

        html += '</tbody></table>';
    }

    document.getElementById('modal-content').innerHTML = html;
}
