angular.module("reportApp")
  .constant("productListActiveClass", "active")
  .constant("resultListPageCount", 24)
  .controller("reportResultsCtrl", function($scope, $filter, productListActiveClass, resultListPageCount) {
    var selectedCategory = null;
    
    $scope.selectedPage = 1;
    $scope.pageSize = resultListPageCount;
 
    $scope.selectCategory = function(newCategory) {
      selectedCategory = newCategory;
      $scope.selectedPage = 1;
    }
    
    $scope.selectErrorType = function(newErrorType) {
      $("#advf_info_panel").hide();
      $("#filter_button").show();
      selectedErrorType = newErrorType;
      $scope.selectedPage = 1;
    }
    
    $scope.categoryFilterFn = function(product) {
   
      if (selectedCategory == null || selectedCategory === 'undefined') {
            
            if(product.category == 'warnings') {  
                return true;
              } 
              
            if(product.category == 'errors') {  
               return true;
              }   
              
            if(product.category == 'informations') {  
               return true;
             }  
              
            return false;  
          
      } else {
         return product.category == selectedCategory;   
      }
      
    }
    
    $scope.validatorFilterFn = function(product) {
     var found = false;
      
      if(product.validator_id in $scope.fltVal) {
         found = true;
      }
      
      return found;
    }
    
    $scope.getCategoryClass = function(category) {
      return selectedCategory == category ? productListActiveClass : '';
    }
    
    $scope.selectPage = function(newPage) {
      $scope.selectedPage = newPage;
    }
    $scope.getPageClass = function(page) {
      return $scope.selectedPage == page ? productListActiveClass : '';
    }
    $scope.setListPageCount = function(pages) {
      $scope.pageSize = pages;
    }
    $scope.getPageCountCLass = function(pages) {
      return $scope.pageSize == pages ? productListActiveClass : 'all-results';
    }
  });
