(function () {
  // === Настройки ===
  const API_URL = 'https://avatiah.com/api/latest.php';
  const UPDATE_INTERVAL = 30000; // 30 сек

  // === Получаем параметры из тега <script> ===
  const script = document.currentScript;
  const containerId = script.dataset.container || 'avatiah-security-index';
  const width = script.dataset.width || '100%';
  const height = script.dataset.height || 'auto';
  const theme = script.dataset.theme || 'light'; // 'light' или 'dark'

  // === Создаём контейнер, если его нет ===
  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';
  const statusColor = {
    5: '#27ae60', // Норма
    4: '#f39c12', // Повышенная
    3: '#e67e22', // Высокая
    2: '#e74c3c', // Критическая
    1: '#8e44ad'  // Максимальная
  };

  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.5;
    overflow: hidden;
  `;

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

    const index = data.security_index;
    const aal = data.aal_level;

    let statusText, aalLabel;
    if (aal === 5) {
      statusText = "НОРМАЛЬНАЯ СИТУАЦИЯ (AAL 5)";
      aalLabel = "НОРМА";
    } else if (aal === 4) {
      statusText = "ПОВЫШЕННАЯ УГРОЗА (AAL 4)";
      aalLabel = "ПОВЫШЕННАЯ";
    } else if (aal === 3) {
      statusText = "ВЫСОКАЯ УГРОЗА (AAL 3)";
      aalLabel = "ВЫСОКАЯ";
    } else if (aal === 2) {
      statusText = "КРИТИЧЕСКАЯ УГРОЗА (AAL 2)";
      aalLabel = "КРИТИЧЕСКАЯ";
    } else {
      statusText = "МАКСИМАЛЬНАЯ УГРОЗА (AAL 1)";
      aalLabel = "МАКСИМАЛЬНАЯ";
    }

    const statusBg = statusColor[aal] || '#7f8c8d';

    container.innerHTML = `
      <div style="text-align: center;">
        <div style="font-size: 1rem; opacity: 0.8; margin-bottom: 0.5rem;">
          🎯 Avatiah Security Index: Израиль
        </div>
        <div style="font-size: 2.8rem; font-weight: bold; margin: 0.5rem 0; color: ${index >= 5 ? '#e74c3c' : '#3498db'};">
          ${index.toFixed(1)} / 10
        </div>
        <div style="
          background: ${statusBg};
          color: white;
          padding: 0.6rem 1rem;
          border-radius: 10px;
          font-weight: bold;
          font-size: 1.1rem;
          margin-top: 0.5rem;
          box-shadow: 0 3px 8px rgba(0,0,0,0.2);
        ">
          ${statusText}
        </div>
        <div style="margin-top: 1rem; font-size: 0.85rem; opacity: 0.7;">
          Последнее обновление: <span id="update-time">—</span>
        </div>
      </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 Security Index Widget error:', err);
        container.innerHTML = `<div style="color: #e74c3c; text-align: center;">⚠️ Ошибка загрузки</div>`;
      });
  }

  // === Запуск ===
  fetchData();
  setInterval(fetchData, UPDATE_INTERVAL);
})();