// Observer
// on document ready
document.addEventListener("DOMContentLoaded", () => {

  jQuery(".home .sub-menu .menu-item a").on('click', function(event) {
    if (this.hash !== "") {
      event.preventDefault();
      var hash = this.hash;
      jQuery('html, body').animate({
          scrollTop: jQuery(hash).offset().top - 200
      }, 800);
    }
  });

  jQuery('.menu-item-has-children a').click(function(e) {
    jQuery('.sub-menu').not(jQuery(this).next()).removeClass('active');
    
    jQuery(this).next('.sub-menu').toggleClass('active');
  });

  jQuery(document).click(function(e) {
    var target = e.target;
    if (!jQuery(target).is('.menu-item-has-children') && !jQuery(target).parents().is('.menu-item-has-children')) {
      jQuery('.sub-menu.active').removeClass('active');
    }
  });

  jQuery('.serv_modal').on('click', function(e) {
    e.preventDefault();

    var modalId = jQuery(this).data('id');
  
    jQuery('.mod-servicos.' + modalId).toggleClass('active');
  });
  
  jQuery('.mod-servicos .modal-close, .modal-overlay.modal-toggle').on('click', function(e) {
    e.preventDefault();
  
    jQuery('.mod-servicos').removeClass('active');
  });

  document.addEventListener("scroll", function () {
    const titleElements = document.querySelectorAll(
      ".floating-text.observer__visible"
    );
    titleElements.forEach((titleElement) => {
      const scrollRelativeToElement = titleElement.getBoundingClientRect().top;
      const newTopPosition = 65 - scrollRelativeToElement / 5;
      titleElement.style = `transform: translateY(-${newTopPosition}px) !important; transition: none !important;`;
    });
  });

  document.addEventListener("scroll", function () {
    const titleElements = document.querySelectorAll(".floating-text2");
    titleElements.forEach((titleElement) => {
      const scrollRelativeToElement = titleElement.getBoundingClientRect().top;
      const newTopPosition = 65 - scrollRelativeToElement / 7;
      titleElement.style = `transform: translateY(-${newTopPosition}px) !important; transition: none !important;`;
    });
  });

  document.addEventListener("scroll", function () {
    const titleElements = document.querySelectorAll(".floating-light-left");
    titleElements.forEach((titleElement) => {
      const scrollRelativeToElement = titleElement.getBoundingClientRect().top;
      const newTopPosition = 40 - scrollRelativeToElement / 7;
      titleElement.style = `transform: translateY(-${newTopPosition}px) rotate(-34deg); transition: none !important;`;
    });
  });

  document.addEventListener("scroll", function () {
    const titleElements = document.querySelectorAll(".floating-light-right");
    titleElements.forEach((titleElement) => {
      const scrollRelativeToElement = titleElement.getBoundingClientRect().top;
      const newTopPosition = 40 - scrollRelativeToElement / 5;
      titleElement.style = `transform: translateY(-${newTopPosition}px) rotate(34deg); transition: none !important;`;
    });
  });

  document.addEventListener("scroll", function () {
    const titleElements = document.querySelectorAll(".floating-light-right45");
    titleElements.forEach((titleElement) => {
      const scrollRelativeToElement = titleElement.getBoundingClientRect().top;
      const newTopPosition = 40 - scrollRelativeToElement / 5;
      titleElement.style = `transform: translateY(-${newTopPosition}px) rotate(45deg); transition: none !important;`;
    });
  });

  const observers = document.querySelectorAll(".observer");

  const observer = new IntersectionObserver(
    function (entries) {
      entries.forEach((entry) => {
        if (entry.isIntersecting) {
          entry.target.classList.add("observer__visible");
        }
      });
    },
    { rootMargin: "-20%" }
  );

  observers.forEach((box) => observer.observe(box));

  const observers2 = document.querySelectorAll(".cascade_anima");

  const observer2 = new IntersectionObserver(
    function (entries) {
      entries.forEach((entry) => {
        if (entry.isIntersecting) {
          entry.target.classList.add("cascade_anima__visible");
        }
      });
    },
    { rootMargin: "-1%" }
  );

  observers2.forEach((box) => observer2.observe(box));

  const equipeCards = document.querySelectorAll(".equipe_card_wrapper");

  equipeCards.forEach((card) => {
    card.addEventListener("click", () => {
      const dialog = card.parentElement.querySelector("dialog");
      dialog.showModal();
    });
  });

  const hamburger = document.querySelector(".hamburger");
  const menu = document.querySelector(".mobile-menu");

  hamburger.addEventListener("click", () => {
    menu.classList.toggle("active");
  });

  const close = document.querySelector(".close-mobile-menu");

  close.addEventListener("click", () => {
    menu.classList.toggle("active");
  });

  const cookieModal = document.querySelector(".cookie-modal");
  const cookieButton = document.querySelector(".cookie-button");

  cookieButton.addEventListener("click", () => {
    cookieModal.classList.add("hidden");
    window.localStorage.setItem("resolutte-cookie", "true");
  });

  const cookie = window.localStorage.getItem("resolutte-cookie");
  if (!cookie) {
    setTimeout(() => {
      cookieModal.classList.remove("hidden");
    }, 2000);
  }

  new simpleParallax(document.getElementsByClassName("parallax"), {
    delay: 0.8,
    transition: "cubic-bezier(0,0,0,1)",
    scale: 1.25,
    customWrapper: ".parallax_wrapper",
  });

  // fazer paralaxe com escala

  // Ajuste conforme necessário
  const scrollSpeed = 0.2;
  const inertia = 0.01; // Ajuste para controlar a inércia
  const scrollThreshold = 5; // Ajuste para definir quando parar de continuar o scroll

  let isScrolling = false;
  let scrollTimeout;

  function handleWheel(event) {
    event.preventDefault();
    isScrolling = true;

    const deltaY = event.deltaY;
    const currentPosition = window.scrollY;
    const newPosition = currentPosition + deltaY * scrollSpeed;

    window.scrollTo(0, newPosition);

    clearTimeout(scrollTimeout);
    scrollTimeout = setTimeout(function () {
      isScrolling = false;
      continueScroll();
    }, 100); // Ajuste o tempo de espera conforme necessário
  }

  function continueScroll() {
    if (isScrolling) {
      const currentPosition = window.scrollY;
      const newPosition =
        currentPosition +
        (currentPosition - window.lastScrollPosition) * inertia;
      window.scrollTo(0, newPosition);

      window.lastScrollPosition = currentPosition;

      if (
        Math.abs(currentPosition - window.lastScrollPosition) > scrollThreshold
      ) {
        requestAnimationFrame(continueScroll);
      } else {
        isScrolling = false;
      }
    }
  }

  // window.addEventListener("wheel", handleWheel);

  // Registra a posição do scroll quando o usuário para de rolar
  // window.addEventListener("scroll", function () {
  //   window.lastScrollPosition = window.scrollY;
  // });

  parallaxWrappers = document.querySelectorAll(".simpleParallax");
  parallaxWrappers.forEach((parallaxWrapper) => {
    parallaxWrapper.style.height = "100%";
  });
});
