// source --> https://mountainclimbingschool.pl/wp-content/themes/fg/assets/js/load-more.js?ver=6.9.4 
jQuery(function (e) {
  e(".team-load-more").click(function (t) {
    t.preventDefault();
    var n = e(this);
    e.ajax({
      url: loadmore_params.ajaxurl,
      data: {
        action: "loadmore_team",
      },
      type: "POST",
      beforeSend: function (e) {
        n.html("...");
      },
      success: function (e) {
        e
          ? (n.html("Więcej instruktorów"),
            jQuery(".team-grid-items").html(e),
            n.remove())
          : n.remove();
      },
    });
  });
});

jQuery(document).ready(function ($) {
  let isLoading = false;
  let observer = new IntersectionObserver(
    function (entries) {
      entries.forEach(function (entry) {
        if (entry.isIntersecting && !isLoading) {
          //loadMoreItems();
          if (
            window.location.pathname != "/en/" &&
            window.location.pathname != "/"
          ) {
            loadMoreItems();
          } else {
            observer.unobserve(target);
            $(".lds-ellipsis").hide();
          }
        }
        
      });
    },
    { threshold: 0.5 }
  );

  var pathAfterDomain = window.location.pathname;
  var target = document.getElementById("load-more-trigger");
  if (target) {
    observer.observe(target);
  }

  jQuery(document).ready(function ($) {
    function checkUrlPeriodically() {
      setInterval(function () {
        if (window.location.pathname != pathAfterDomain) {
          pathAfterDomain = window.location.pathname;
          observer.observe(target);
        }
      }, 1000);
    }

    checkUrlPeriodically();
  });

  function loadMoreItems() {

    if (window.location.pathname != pathAfterDomain) {
      pathAfterDomain = window.location.pathname;
    }

    if(window.location.pathname == "/"){
      return;
    }

    let parts = pathAfterDomain.split("/");

    parts = parts.filter((part) => part !== "");

    let type_taxonomy_final, level_taxonomy_final, place_taxonomy_final, date_taxonomy_final;

    if (parts != null) {

      var type_taxonomy;
      var level_taxonomy;
      var place_taxonomy;
      var date_taxonomy;


      for (let $i = 0; $i < parts.length; $i++) {
        if (parts[$i].split("-").slice()[0] == "rodzaj") {
          type_taxonomy = parts[$i];
        }
        if (parts[$i].split("-").slice()[0] == "poziomy") {
          level_taxonomy = parts[$i];
        }
        if (parts[$i].split("-").slice()[0] == "miejsce") {
          place_taxonomy = parts[$i];
        }
        if (parts[$i].split("-").slice()[0] == "termin") {
          date_taxonomy = parts[$i];
        }
      }


      if (type_taxonomy) {
        let type_taxonomy1 = type_taxonomy.split("-");
        type_taxonomy_final = type_taxonomy1.slice(2).join("-");
      }
      if (level_taxonomy) {
        let level_taxonomy1 = level_taxonomy.split("-");
        level_taxonomy_final = level_taxonomy1.slice(1).join("-");
      }
      if (place_taxonomy) {
        let place_taxonomy1 = place_taxonomy.split("-");
        place_taxonomy_final = place_taxonomy1.slice(1).join("-");
      }
      if (date_taxonomy) {
        let date_taxonomy1 = date_taxonomy.split("-");
        date_taxonomy_final = date_taxonomy1.slice(1).join("-");
      }
    }


    let action = "loadmore_courses";
    let postsPerPage = 8;
    let currentPostsCount = $(".camps-grid-item").length;

    let pinnedCount =
      document.querySelectorAll('[id^="pinned-post"]').length - 1;


    if (window.location.pathname == "/") {
      currentPostsCount = currentPostsCount - pinnedCount;
    }
    else {
      currentPostsCount = $(".camps-grid-item").length;
    }

    const isHomePage = window.location.pathname === "/";

    $.ajax({
      url: loadmore_params.ajaxurl,
      type: "post",
      data: {
        action: action,
        offset: currentPostsCount,
        posts_per_page: postsPerPage,
        taxonomy_type: type_taxonomy_final,
        taxonomy_level: level_taxonomy_final,
        taxonomy_place: place_taxonomy_final,
        taxonomy_date: date_taxonomy_final,
      },
      beforeSend: function () {

        if (isHomePage){
          $(".lds-ellipsis").hide();
          isLoading = false;
        } 

        let currentPostsCount = $(".camps-grid-item").length;
        if (currentPostsCount == 2 || currentPostsCount <= postsPerPage || currentPostsCount < 16) {
          isLoading = false;
          $("#load-more-trigger").removeClass("loading");
          $(".lds-ellipsis").hide();
        } else {
          isLoading = true;
          $("#load-more-trigger").addClass("loading");
          $(".lds-ellipsis").show();
        }
      },
      success: function (response) {
        $(".camps-grid").append(response);

        if (isHomePage) return;

        let receivedPostsCount = $(response).length;
        if (receivedPostsCount == 2 || receivedPostsCount <= postsPerPage) {
          observer.unobserve(target);
        }
      },
      complete: function () {

        if (isHomePage) return;

        isLoading = false;
        $("#load-more-trigger").removeClass("loading");
        $(".lds-ellipsis").hide();
      },
    });
  }
});