<script>
  window.page = {{page_obj.number}};
  window.has_next_page = {{1 if has_next_page else 0}};
  window.loading_page = false;
  $(function() {
    function getQueryParams() {
      var queryParams = {};
      var query = window.location.search.substring(1);
      var vars = query.split("&");
      for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split("=");
        queryParams[pair[0]] = decodeURIComponent(pair[1]);
      }
      return queryParams;
    }

    function loadNextPage() {
      window.loading_page = true;
      var params = {
        "only_content": 1,
        "page": window.page + 1,
      };

      params = Object.assign({}, getQueryParams(), params);

      $.get("{{feed_content_url}}", params)
        .done(function(data) {
        $(".has_next").remove();
        $(".middle-content").append(data);
        window.loading_page = false;
        window.has_next_page = parseInt($(".has_next").attr("value"));
        window.page++;
        renderKatex($('.middle-content')[0]);
        onWindowReady();
        activateBlogBoxOnClick();
      })
    }

    $(window).on("scroll", function() {
      if (window.loading_page || !window.has_next_page) return;
      var distanceFromBottom = $(document).height() - ($(window).scrollTop() + $(window).height());
      var isDesktop = window.matchMedia('(min-width: 800px)').matches;

      if (isDesktop && distanceFromBottom < 500) {
        loadNextPage();
      }
    });

    $(document).on("click", ".view-next-page", () => {
      if (window.loading_page || !window.has_next_page) return;
      var isDesktop = window.matchMedia('(min-width: 800px)').matches;
      if (isDesktop) return;
      $(".view-next-page").remove();
      loadNextPage();
    });
  });
</script>