<? global $lang_id; ?>
<? if ($this->query) : ?>
  <div class="box-title">
    <?= \S::lang('wyniki-wyszukiwania-dla-zapytania') . ': <strong>' . $this->query . '</strong>'; ?>
  </div>
<? endif; ?>
<?
if ($this->category_additional_text) :
  echo \Tpl::view('shop-category/_partials/category-additional-text', [
    'category' => $this->category
  ]);
endif;
?>
<div class="category-content">
  <? if (is_array($this->products)) : foreach ($this->products as $product_id) :
      $product = new \shop\Product($product_id);
      echo \Tpl::view('shop-product/product-mini', [
        'product' => new \shop\Product($product_id, $lang_id)
      ]);
    endforeach;
  endif; ?>
</div>
<?
if ($this->category_description) :
  echo \Tpl::view('shop-category/category-description', [
    'category' => $this->category
  ]);
endif;
?>
<script type="text/javascript" class="footer">
  $(document).ready(function() {
    let offset = 0;
    const limit = 8;
    let isLoading = false;
    const $categoryContent = $('.category-content');

    function loadProducts() {
      if (isLoading) {
        return;
      }

      isLoading = true;
      $.ajax({
        type: 'POST',
        cache: false,
        url: '/shopProduct/lazy_loading_products',
        data: {
          offset: offset,
          category_id: <?= $this -> category['id'] ?>
        },
        beforeSend: function() {

        },
        success: function( response ) {
          response = jQuery.parseJSON( response );
          if ( response.html.length > 0 ) {
            $categoryContent.append( response.html );
            offset += limit;
            isLoading = false;
          } else {
            $( document) .off( 'scroll', checkScroll );
          }
        }
      });
    }

    function checkScroll() {
      if( $(window).scrollTop() >= $('.category-content').offset().top + $('.category-content').outerHeight() - window.innerHeight - 250 ) {
        loadProducts();
      }
    }

    $( document ).on( 'scroll', checkScroll );
    loadProducts();
  });
</script>