import {
  CheckConnection,
  SetFrequency,
  Quit,
} from "../wailsjs/go/main/App";

(function() {
  // === Переключение вкладок ===
  const tabButtons = document.querySelectorAll('.tab-button');
  const tabContents = document.querySelectorAll('.tab-content');

  tabButtons.forEach(button => {
    button.addEventListener('click', () => {
      tabButtons.forEach(btn => btn.classList.remove('active'));
      tabContents.forEach(content => content.classList.remove('active'));
      button.classList.add('active');
      const tabId = button.getAttribute('data-tab');
      document.getElementById(`tab-${tabId}`).classList.add('active');
    });
  });

  // === Элементы интерфейса ===
  const btnCheck = document.getElementById('btn-check');
  const btnFreq = document.getElementById('btn-freq');
  const btnQuit = document.getElementById('btn-quit');
  const statusIndicator = document.getElementById('status-indicator');
  const statusText = document.getElementById('status-text');
  const freqLabel = document.getElementById('frequency-label');
  const freqValue = document.getElementById('frequency-value');

  // Модальное окно
  const modal = document.getElementById('freq-modal');
  const closeModal = document.getElementById('close-modal');
  const freqInput = document.getElementById('freq-input');
  const btnMinus = document.getElementById('btn-minus');
  const btnPlus = document.getElementById('btn-plus');
  const btnSetFreq = document.getElementById('btn-set-freq');
  const modalError = document.getElementById('modal-error');

  // === Проверка подключения ===
  btnCheck.addEventListener('click', () => {
    CheckConnection()
      .then((response) => {
        // Обновление индикатора соединения
        statusIndicator.classList.remove('indicator-red');
        statusIndicator.classList.add('indicator-green');
        statusText.textContent = `Соединение установлено! ${response.status}`;

        // Обновление панели частоты (текущая)
        freqLabel.textContent = 'Текущая частота:';
        freqValue.textContent = response.frequency;
      })
      .catch((err) => {
        console.error('Ошибка CheckConnection:', err);
        statusText.textContent = 'Ошибка: не удалось выполнить проверку';
      });
  });

  // === Установка частоты (открытие модального окна) ===
  btnFreq.addEventListener('click', () => {
    modal.classList.remove('hidden');
    // Показываем текущую частоту из панели (или 145)
    const current = freqValue.textContent !== '---' ? freqValue.textContent : '145';
    freqInput.value = current;
    modalError.classList.add('hidden');
  });

  // Закрытие модального окна
  closeModal.addEventListener('click', () => {
    modal.classList.add('hidden');
  });
  window.addEventListener('click', (e) => {
    if (e.target === modal) {
      modal.classList.add('hidden');
    }
  });

  // Кнопки +/- для изменения значения на 1
  btnMinus.addEventListener('click', () => {
    let val = parseInt(freqInput.value, 10) || 1;
    val = Math.max(1, val - 1); // минимум 1
    freqInput.value = val.toString();
  });
  btnPlus.addEventListener('click', () => {
    let val = parseInt(freqInput.value, 10) || 1;
    val += 1;
    freqInput.value = val.toString();
  });

  // Кнопка "Установить"
  btnSetFreq.addEventListener('click', () => {
    const inputVal = freqInput.value.trim();
    // Проверка: только цифры
    if (!/^\d+$/.test(inputVal)) {
      modalError.textContent = 'Вводимое значение должно быть целым положительным числом';
      modalError.classList.remove('hidden');
      return;
    }
    const num = parseInt(inputVal, 10);
    if (num <= 0) {
      modalError.textContent = 'Вводимое значение должно быть целым положительным числом';
      modalError.classList.remove('hidden');
      return;
    }

    SetFrequency(inputVal)
      .then((newFreq) => {
        // Обновляем панель частоты
        freqLabel.textContent = 'Установленная частота:';
        freqValue.textContent = newFreq;
        modal.classList.add('hidden');
      })
      .catch((err) => {
        modalError.textContent = err;
        modalError.classList.remove('hidden');
      });
  });

  // === Закрыть приложение ===
  btnQuit.addEventListener('click', () => {
    Quit();
  });
})();