var CheckboxesFilter = {

  url: '/search_filter.php',

  filters: [
    'trademark',
    'season',
    'kind',
    'design',
    'mat_outside',
    'mat_inside',
    'size',
    'sklad'
  ],

  getChecked: function() {
    var checkedArr = new Array();
    
    for (var key in CheckboxesFilter.filters) {
      var buf = CheckboxesFilter.filters[key];
    
      checkedArr[key] = new Array();
      checkedArr[key][0] = buf;
      checkedArr[key][1] = new Array();
      
      $('.filter[filter=' + buf + ']:checked').each(function(index) {
        checkedArr[key][1][index] = $(this).val();
      });
    }
    return checkedArr;
  },
  
  refresh: function(filter, id, newval) {
    $('.filter').attr('disabled', true);

    $('#' + filter + '_' + id + ' img').css('display', 'inline');
    
    var checkedArr = CheckboxesFilter.getChecked();
    
    $.get(CheckboxesFilter.url, {
      filter: filter,
      id: id,
      newval: newval,
      checked: JSON.stringify(checkedArr)
    }, function (response) {
    
      data = JSON.parse(response);

      $('#' + data.filter + '_' + data.id + ' img').css('display', 'none');
      
      $('.filter').parent().find('.fa').addClass('disabled');
      
      for(var layerName in data.layers) {
        var layer = data.layers[layerName];
        for(var filter in layer) {
          var idArr = layer[filter];
          for(var key in idArr) {
            var id = idArr[key];
            $('#' + filter + '_' + id + ' .fa').removeClass('disabled');
          }
        }
      }
      
      $('.filter').attr('disabled', false);
    });
    
    
  }
}

$(function() {

  if ($().corner)
  {
    $("#cf_notice").corner();
  }

  $("A[href='#select_all']").live('click', function(){
    $("#" + $(this).attr('rel') + " INPUT[type='checkbox']").attr('checked', true);
    CheckboxesFilter.refresh('', 0, 1);
    return false;
  });

  $("A[href='#select_none']").live('click', function(){
    $("#" + $(this).attr('rel') + " INPUT[type='checkbox']").attr('checked', false);
    CheckboxesFilter.refresh('', 0, 0);
    return false;
  });      

  CheckboxesFilter.refresh();
  
  $('.filter').change(function() {
    var filter = $(this).attr('filter');
    var id = $(this).val();
    var newval = $(this).is(':checked') ? 1 : 0;
    
    $("#cf_notice").fadeIn();
    CheckboxesFilter.refresh(filter, id, newval);
  });
});

