<script type="application/javascript">
   
   var currentPage = 1;
   var articlesPerPage = parseInt($articlesPerPage);
   var totalArticles = parseInt($totalArticles);
   var totalPaginationPages = parseInt($paginationPages);
   
   
   //När sidan har laddat klart
   $(function() {
       setFilter("category"); //Startar filtering en gång när sidan laddas 
   });
   

   //Filtet körs också när checkbocarna förändrar status
   $("#mat-category-filter").find(":checkbox").bind('change', function(){  
      currentPage = 1;
      // Set current pagination page to active
      $(".env-is-active").removeClass( "env-is-active" );
      $('*[data-page="' + currentPage + '"]').addClass( "env-is-active" );  
      setFilter("category");
    
      
   });


   // Click pagination   
   $( ".env-pagination" ).click(function() {
      event.preventDefault();  

      var clickedPagination = $(event.target).data('page');

      if (clickedPagination === "Previous") {
         currentPage--;
         if (currentPage < 1) {
            currentPage = 1;  
         }
      }
      else if (clickedPagination === "Next") {
         currentPage++;     
         
         var matCategoryItems =  $(".mat-category-item").not('.filter');
         //var maxPaginationPage = Math.ceil(totalArticles / articlesPerPage);
         var maxPaginationPage = Math.ceil(matCategoryItems.length / articlesPerPage);

         if (currentPage > maxPaginationPage) {
            currentPage = maxPaginationPage;   
         }  
      }
      else {
         currentPage = clickedPagination;
      }  

      // Set current pagination page to active
      $(".env-is-active").removeClass( "env-is-active" );
      $('*[data-page="' + currentPage + '"]').addClass( "env-is-active" );  

      // Scroll to top of items   
      $([document.documentElement, document.body]).animate({
           scrollTop: $("#mat-category-items-wrapper").offset().top
       }, 500);
		
      updateHits();
   });


   //######### FILTERFUNKTION #############
   //Gör det möjlit att filterar ut så att endast de artiklarna med alla valda vilter visas   
   function setFilter(filterType){
      var filterArray=[]; //Variable som sparar en lista på markerade kategorier
      console.log("Nu! Filter startat");
      if(filterType == "category"){
           //Loopar igenom alla objekt och sparar vilka ord som är markerade
           $("#mat-category-filter").find("input:checked").each(function( index ) {
                filterArray.push(  $( this ).val()  ); //Sparar värdet från checkboxen
           });
      }else{
           $("#mat-category-date-selector-wrapper").find(".mat-date-list-month.active").each(function( index ) {
                filterArray.push(  $( this ).text()  ); //Sparar texten från knappen knappen
           });
      }

      if(filterArray.length){
            var thisCategory; 
            var showThis;
            var thisName;
            var totalHits = 0; //Ökar för varje träff mot kategori
            var noItemsMessageHtml = "<div id='mat-category-no-items' class='env-alert env-alert--info mat-category-no-items' role='alert'><strong>$textNoHits</strong> $textNoHits_explanation</div>";
            if(!$("#mat-category-no-items").length){
                  $("#mat-category-items-wrapper").append(noItemsMessageHtml);              
            }
            //$("#mat-category-items-wrapper").find(".mat-category-item").css("border","solid 3px Red");
            $("#mat-category-items-wrapper").find(".mat-category-item").each(function( index ) {
               
                  thisCategory = $(this).data('category'); //Sparar kategorin från artikeln på sidan
                  thisMonth    = $(this).data('month'); //Sparar kategorin från artikeln på sidan
                  console.log("thisCategory: " +thisCategory +"("+index+")");
                  console.log("Filterloop...");
                  if(filterType == "category"){
                     if(thisCategory){
                         showThis = 0;
                         numberOfMarktFilter = filterArray.length;
                         thisName = $(this).find("h2").text();
                          
                         for (var n in filterArray) {
                           (filterArray[n])

                           categoryExistInArray = (thisCategory.indexOf(filterArray[n]) > -1); //Finns kategorin i listan? 


                           if(categoryExistInArray){
                               showThis++ //Räkna upp för varje träff mot filter
                           }else{  
                               //Gör inget
                           }

                         }//End for

                         //Om artikeln har lika många sökord som träffar som det finns sökord visas artikeln
                         if(showThis >= numberOfMarktFilter){
                           totalHits++;
                           $(this).removeClass( "filter");                          
                         }else{
                           $(this).addClass( "filter"); 
                         }

                     }else{
                         $(this).addClass( "filter"); 
                     }//End if
                  }else{
                    //Filtrering av utifrån månader
                    if(thisMonth){
                         showThis = 0;
                         numberOfMarktFilter = filterArray.length;
                         thisName = $(this).find("h2").text();

                         for (var n in filterArray) {
                           (filterArray[n])

                           categoryExistInArray = (thisMonth.indexOf(filterArray[n]) > -1); //Finns kategorin i listan? 


                           if(categoryExistInArray){
                               showThis++ //Räkna upp för varje träff mot filter
                           }else{  
                               //Gör inget
                           }

                         }//End for

                         //Om artikeln har lika många sökord som träffar som det finns sökord visas artikeln
                         if(showThis >= numberOfMarktFilter){
                           totalHits++;
                            $(this).removeClass( "filter"); 

                         }else{
                            $(this).addClass( "filter");                         
                         }

                     }else{
                        $(this).addClass( "filter"); 
                     }//End if
                  }
            });

         // Om det inte finns något som matchar filtret
         if(totalHits <= 0){
            $("#mat-category-no-items").fadeIn("slow"); //Visar meddelande om att filtret inte matchar
         }else{
             $("#mat-category-no-items").hide(); //Döljer meddelandet
         }

      }else{
         var matCategoryItems =  $(".mat-category-item");
         for (var i = 0; i < matCategoryItems.length; i++) { 
            $(matCategoryItems[i]).removeClass( "filter"); 
         }
      }
      //End if 
      updateHits();
   }//End function   
   
   
   function updateHits() {
      //var matCategoryItems =  $("#mat-category-items-wrapper").find(".mat-category-item");
      var matCategoryItems =  $(".mat-category-item") 
      
      var matCategoryItems =  $(".mat-category-item");
      for (var i = 0; i < matCategoryItems.length; i++) { 
      	$(matCategoryItems[i]).addClass( "hide"); 
      }      
      
      var matCategoryItems =  $(".mat-category-item").not('.filter');
      for (var i = 0; i < matCategoryItems.length; i++) {            
      	if (i < currentPage * articlesPerPage && i >= ( currentPage -1 ) * articlesPerPage) {
            $(matCategoryItems[i]).removeClass( "hide"); 
         }
         else {
            $(matCategoryItems[i]).addClass( "hide"); 
         }           
      }      
      
      var matCategoryItemsLength = matCategoryItems.length
      var paginationPages = Math.ceil(matCategoryItemsLength / articlesPerPage);
      
      if (paginationPages === 1) {
         $( "#pagination-wrapper" ).addClass( "hide" );  
      }
      else {
      	$( "#pagination-wrapper" ).removeClass( "hide" );   
      }
      
      for (var j = 1; j <= totalPaginationPages; j++) {
       	if (j <= paginationPages) {
          	 $('*[data-page="' + j + '"]').removeClass("hide");  
         }  
      	else {
         	$('*[data-page="' + j + '"]').addClass("hide");     
         }
      } 
   }
   
</script>