images.js 2.23 KB
var currentChooseTags = [];

var saveCurrentTags = function(){
  $('.tags-list-block label.active').each(function(){
    currentChooseTags.push($(this).data('value'));
  });
}

var setCurrentTags = function(){
  $('.tags-list-block label').each(function(){
    if(currentChooseTags.indexOf($(this).data('value')) != -1){
      $(this).addClass('active');
    }
  });
}

jQuery(document).ready(function(){
  var loadImage = function($wrapper, update_tag){
    var url = $wrapper.data('url'),
        $loader = $wrapper.find('.loader-demo'),
        $images = $wrapper.find('.exist-image-list');
    
    $loader.removeClass('not-visible');
    $images.addClass('not-visible');

    var mas = [];
    $wrapper.find('.filter label.active').each(function(){
      mas.push($(this).data('value'));
    });

    jQuery.ajax({
      type: 'POST',
      url: url,
      data: ({tags: mas}),
      dataType: 'json',
      success: function(data){
        $images.html(data.images);
        $loader.addClass('not-visible');
        $images.removeClass('not-visible');     
        if(update_tag){
          saveCurrentTags();
          $('.tags-list-block').html(data.tag_list);   
          setCurrentTags();
        }
      }
    });
  };


  if($('.image-list').length > 0){
    var $wrapper = $('.image-list');
    loadImage($wrapper, false);
    $wrapper.on('click', '.filter label', function(e){
      if(e.target.tagName != 'A' && e.target.tagName != 'I'){
        var $this = $(this);
        if($this.hasClass('active')){
          $this.removeClass('active');
        }else{
          $this.addClass('active');
        }
        if($this.data('value') == 'all' && $this.hasClass('active')){
          $wrapper.find(".filter label.active").not($this).removeClass('active');
        };
        if($this.data('value') != 'all' && $this.hasClass('active')){
          $wrapper.find(".filter label.active[data-value=all]").removeClass('active');
        };    
        if($('.filter label.active').length == 0){
          $('.filter label[data-value=all]').addClass('active');
        }  
        loadImage($wrapper, false);
      }
    });
  }

  $(window).bind('images:update', function(){
    if($('.image-list').length > 0){
      loadImage($('.image-list'), true);
    };
  });

});