function addOverlay(overlay: HTMLElement) {
  // const overlay = document.getElementById('overlay');
  overlay.style.opacity = "1"; // Затемнено
  overlay.style.display = "inherit"; //
}
function removeOverlay(overlay: HTMLElement) {
  overlay.style.opacity = "0"; // Вернуть в исходное состояние
  overlay.style.display = "none"; //
}
function addRemoveOverlayTimer(overlay: HTMLElement, time = 1000) {
  addOverlay(overlay);
  setTimeout(() => {
    removeOverlay(overlay);
  }, time); // 1 секунда затемнения
}

// Флаги для отслеживания состояния
let isMouseInside = true;
let isWindowFocused = true;

export default function unscreen(overlay: HTMLElement, root: HTMLElement) {
  overlay.style.display = "none";

  // Проверка состояния и выполнение нужного действия
  function checkFocusAndMouse() {
    if (!isWindowFocused || !isMouseInside) {
      // ИЛИ
      addOverlay(overlay);
    } else if (isWindowFocused && isMouseInside) {
      // И
      removeOverlay(overlay);
    }
  }

  // Добавляем обработчики событий
  window.addEventListener("blur", () => {
    isWindowFocused = false;
    checkFocusAndMouse(); // Проверяем состояние
  }); // Когда окно теряет фокус

  window.addEventListener("focus", () => {
    isWindowFocused = true;
    checkFocusAndMouse(); // Проверяем состояние
  }); // Когда окно получает фокус

  window.addEventListener("mouseleave", () => {
    isMouseInside = false;
    checkFocusAndMouse(); // Проверяем состояние
  }); // Когда мышка покидает окно

  window.addEventListener("mouseenter", () => {
    isMouseInside = true;
    checkFocusAndMouse(); // Проверяем состояние
  }); // Когда мышка возвращается в окно

  root.addEventListener("contextmenu", (event) => event.preventDefault());

  window.addEventListener("keydown", function (event) {
    if (event.key === "PrintScreen" || (event.ctrlKey && event.key === "p")) {
      addRemoveOverlayTimer(overlay);
    }
  });

  // Проверка для мобильных устройств
  root.addEventListener("touchstart", function (event) {
    // Пример: если есть более чем один жест
    if (event.touches.length > 1) {
      addRemoveOverlayTimer(overlay);
    }
  });

  window.addEventListener("beforeprint", function () {
    addRemoveOverlayTimer(overlay);
  });
}
