/**
 * API Configuration
 */

const API_CONFIG = {
    // رابط السيرفر الحي الثابت
    production: 'https://wassili.site',

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

    get baseURL() {
        if (typeof window !== 'undefined') {
            const hostname = window.location.hostname;
            const protocol = window.location.protocol;
            // 💡 Capacitor uses wassili.secure.local locally. 
            // In Android emulator, localhost is the device itself, so we must use 10.0.2.2 to reach the PC's Node server.
            if (hostname === 'wassili.secure.local') {
                return this.production; // غيّرناها للسيرفر الحي بدلاً من 10.0.2.2 لمنع خطأ Mixed Content
            }
            if (hostname === 'localhost' || hostname === '127.0.0.1' || hostname.startsWith('192.168.') || protocol === 'file:' || hostname === '') {
                return this.development;
            }
        }
        return this.production;
    }
};

window.API_CONFIG = API_CONFIG;
window.API_URL = 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;');
};
