/**
 * API Configuration
 */

// ✅ Guard: منع الخطأ عند تحميل الملف مرتين
if (!window.API_CONFIG) {
    window.API_CONFIG = {
        // رابط السيرفر الحي الثابت
        production: 'https://wassili.site',

        // للتطوير المحلي فقط — غيّر هذا يدوياً عند الحاجة
        development: 'http://localhost:3000',

        get baseURL() {
            if (typeof window !== 'undefined') {
                const hostname = window.location.hostname;
                const protocol = window.location.protocol;
                if (hostname === 'wassili.secure.local') {
                    return this.production;
                }
                if (hostname === 'localhost' || hostname === '127.0.0.1' || hostname.startsWith('192.168.') || protocol === 'file:' || hostname === '') {
                    return this.development;
                }
            }
            return this.production;
        }
    };

    window.API_URL = window.API_CONFIG.baseURL;
}

/**
 * تحويل مسار الصورة النسبي إلى رابط كامل
 * - إذا كان الرابط http/https → يُرجعه كما هو
 * - إذا كان data:image (base64) → يُرجعه كما هو
 * - إذا كان مسار نسبي (مثل /uploads/...) → يُضيف API_URL
 *
 * ملاحظة: على السيرفر الحي (wassili.site)، الصور محفوظة تحت /api/uploads
 * لأن Node.js app يشتغل تحت PassengerBaseURI "/api".
 * على المحلي (localhost:5000)، الصور مباشرة تحت /uploads.
 */
window.getFullImageUrl = function(url) {
    if (!url) return '';
    if (url.startsWith('data:image')) return url;
    if (url.startsWith('http://') || url.startsWith('https://')) return url;
    const base = window.API_URL || 'https://wassili.site';
    const clean = url.replace(/\\/g, '/');
    const withSlash = clean.startsWith('/') ? clean : '/' + clean;
    // على السيرفر الحي، الصور موجودة تحت /api/uploads لأن Passenger يضع الـ app تحت /api
    // على المحلي (localhost:5000)، الصور مباشرة تحت /uploads بدون /api
    const isLocal = base.includes('localhost') || base.includes('127.0.0.1');
    if (!isLocal && withSlash.startsWith('/uploads')) {
        return base + '/api' + withSlash;
    }
    return base + withSlash;
};

// أظهر فقط في بيئة التطوير
if (window.API_URL.includes('localhost') || window.API_URL.includes('127.0.0.1')) {
    console.log('🌐 API URL:', window.API_URL);
}

/**
 * تأمين النص من XSS قبل وضعه في HTML
 * متاحة عالمياً لجميع الصفحات
 */
window.escapeHtml = function(unsafe) {
    if (unsafe === null || unsafe === undefined) return '';
    return unsafe.toString()
        .replace(/&/g, '&amp;')
        .replace(/</g, '&lt;')
        .replace(/>/g, '&gt;')
        .replace(/"/g, '&quot;')
        .replace(/'/g, '&#039;');
};
