(function () {
  const API_URL = 'https://avatiah.com/api/latest.php';
  const UPDATE_INTERVAL = 30000; // 30 сек

  const script = document.currentScript;
  const containerId = script.dataset.container || 'avatiah-realtime-situation';
  const width = script.dataset.width || '100%';
  const height = script.dataset.height || 'auto';
  const theme = script.dataset.theme || 'light';

  let container = document.getElementById(containerId);
  if (!container) {
    container = document.createElement('div');
    container.id = containerId;
    if (script.parentNode) {
      script.parentNode.insertBefore(container, script.nextSibling);
    } else {
      document.body.appendChild(container);
    }
  }

  const isDark = theme === 'dark';
  const bgColor = isDark ? '#1e293b' : '#ffffff';
  const textColor = isDark ? '#f1f5f9' : '#2c3e50';
  const borderColor = isDark ? '#334155' : '#e2e8f0';

  container.style.cssText = `
    width: ${width};
    height: ${height};
    background: ${bgColor};
    color: ${textColor};
    border-radius: 16px;
    padding: 1.5rem;
    box-shadow: 0 6px 20px rgba(0,0,0,0.15);
    border: 1px solid ${borderColor};
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 14px;
    line-height: 1.6;
    overflow: hidden;
  `;

  function render(data) {
    if (!data || typeof data.security_index !== 'number') {
      container.innerHTML = `<div style="color: #e74c3c;">❌ Нет данных</div>`;
      return;
    }

    const index = data.security_index;
    let situationText = '';
    if (index < 2) {
      situationText = "Ситуация стабильная. Все показатели в норме, угрозы безопасности минимальны.";
    } else if (index < 3.5) {
      situationText = "Наблюдается повышенная готовность. Усилено наблюдение за регионом, некоторые показатели превышают норму.";
    } else if (index < 5) {
      situationText = "Высокий уровень угрозы. Вероятность конфликта возрастает, наблюдается концентрация сил в регионе.";
    } else if (index < 7) {
      situationText = "Критический уровень угрозы. Неминуемая угроза конфликта, принимаются экстренные меры.";
    } else {
      situationText = "Максимальный уровень угрозы. Боевые действия неизбежны или уже ведутся.";
    }

    const prob = Math.min(95, Math.round(index * 15));
    const riskClass = prob < 40 ? 'risk-low' : prob < 60 ? 'risk-medium' : prob < 80 ? 'risk-high' : 'risk-critical';
    const riskBg = {
      'risk-low': '#27ae60',
      'risk-medium': '#f39c12',
      'risk-high': '#e74c3c',
      'risk-critical': '#8e44ad'
    }[riskClass];

    // Факторы риска
    const c = data.components || {};
    const factors = [
      `Волатильность нефти: ${(c.oil?.raw || 0).toFixed(0)}%`,
      `Медиа-упоминания Израиля: ${(c.media?.raw || 0).toFixed(0)}/час`,
      `Активность ВМС США: ${(c.navy?.raw || 0).toFixed(0)} авианосных групп`,
      `Дипломатические рейсы: ${(c.vip?.raw || 0).toFixed(0)}`,
      `Кибератаки (уровень): ${(c.cyber?.raw || 0).toFixed(0)}/5`,
      `Волатильность золота: ${(c.gold?.raw || 0).toFixed(0)}%`
    ];

    container.innerHTML = `
      <h3 style="font-size: 1.4rem; margin-bottom: 1.2rem; color: ${textColor};">
        📈 Текущая ситуация в реальном времени
      </h3>
      <div style="margin-bottom: 1.2rem; padding: 1rem; background: ${isDark ? 'rgba(52,152,219,0.1)' : 'rgba(52,152,219,0.05)'}; border-radius: 10px;">
        ${situationText}
      </div>

      <div style="margin-bottom: 1.2rem;">
        <strong>Вероятность эскалации до AAL 3 в ближайшие 72 часа:</strong><br>
        <span style="
          display: inline-block;
          background: ${riskBg};
          color: white;
          padding: 0.5rem 1rem;
          border-radius: 20px;
          font-weight: bold;
          margin-top: 0.5rem;
        ">${prob}%</span>
      </div>

      <div>
        <strong>Основные факторы риска:</strong>
        <ul style="margin-top: 0.5rem; padding-left: 1.5rem;">
          ${factors.map(f => `<li>${f}</li>`).join('')}
        </ul>
      </div>

      <div style="margin-top: 1rem; font-size: 0.85rem; opacity: 0.7;">
        Источник: Avatiah Security Index • Обновлено: <span id="update-time">—</span>
      </div>
    `;

    // Обновляем время
    if (data.timestamp) {
      const time = new Date(data.timestamp).toLocaleString('ru-RU', {
        timeZone: 'Asia/Jerusalem',
        year: 'numeric',
        month: 'short',
        day: 'numeric',
        hour: '2-digit',
        minute: '2-digit'
      });
      document.getElementById('update-time').textContent = time;
    }
  }

  function fetchData() {
    fetch(API_URL)
      .then(res => {
        if (!res.ok) throw new Error('Network error');
        return res.json();
      })
      .then(render)
      .catch(err => {
        console.error('Avatiah Realtime Situation Widget error:', err);
        container.innerHTML = `<div style="color: #e74c3c;">⚠️ Ошибка загрузки данных</div>`;
      });
  }

  fetchData();
  setInterval(fetchData, UPDATE_INTERVAL);
})();