(function($) {
	$.fn.sorted = function(customOptions) {
		var options = {
			reversed: false,
			by: function(a) {
				return a.text();
			}
		};
		$.extend(options, customOptions);

		$data = $(this);
		arr = $data.get();
                
		arr.sort(function(a, b) {

		   	var valA = options.by($(a));
		   	var valB = options.by($(b));
			if (options.reversed) {
				return (valA < valB) ? 1 : (valA > valB) ? -1 : 0;
			} else {
				return (valA < valB) ? -1 : (valA > valB) ? 1 : 0;
			}
		});
                return $(arr);
	};

})(jQuery);

$(function() {

  var read_button = function(class_names) {
    var r = {
      selected: false,
      type: 0
    };
    for (var i=0; i < class_names.length; i++) {
      if (class_names[i].indexOf('selected-') == 0) {
        r.selected = true;
      }
      if (class_names[i].indexOf('segment-') == 0) {
        r.segment = class_names[i].split('-')[1];
      }
    };
    return r;
  };

  var determine_sort = function($buttons) {
    //var $selected = $buttons.parent().filter('[class*="selected-"]');
    var $selected = $buttons.parent().filter('[class*="selected-"]');
    return $selected.find('a[name="sort"]').attr('data-value');
  };

  var determine_kind = function($buttons) {
    var $selected = $buttons.parent().filter('[class*="selected-"]');
    return $selected.find('a').attr('data-value');
  };

  var $preferences = {
    duration: 800,
    easing: 'easeInOutQuad',
    adjustHeight: 'dynamic'
  };

  var $list = $('#list');
  var $data = $list.clone();

  var $controls = $('.navInner ul');

  $controls.each(function(i) {

    var $control = $(this);
    var $buttons = $control.find('.ovojefilter');

    $buttons.bind('click', function(e) {
      
      var $button = $(this);
      var $button_container = $button.parent();
      //alert($button_container.attr('class'));
      var button_properties = read_button($button_container.attr('class').split(' '));
      
      var selected = button_properties.selected;
      var button_segment = button_properties.segment;

      if (!selected) {
        
        $buttons.parent().removeClass('selected-0').removeClass('selected-1').removeClass('selected-2').removeClass('selected-3').removeClass('selected-4').removeClass('selected-5');
        $button_container.addClass('selected-' + button_segment);
        
        var sorting_type = determine_sort($controls.eq(1).find('a[name="sort"]'));
        var sorting_kind = determine_kind($controls.eq(0).find('a'));

        sorting_type = (typeof sorting_type != "undefined")? sorting_type:'';
        sorting_kind = (typeof sorting_kind != "undefined")? sorting_kind:'';

        if (sorting_kind == 'all') {
          var $filtered_data = $data.find('li');
        } else {
          var $filtered_data = $data.find('li.'+sorting_kind);
        }

        if(sorting_type){
            if (sorting_type == 'stalni') {
                var $sorted_data = $filtered_data.sorted({
                    reversed: true,
                    by: function(v) {
                    return parseInt($(v).find('span#filtriraj').attr('data-id'));
                    }
                });
                var $sorted_data_nn = function(){
                     $('li#stalni').animate({
                            opacity: 1
                            }, 1000, function(){
                            });
                     $('li#honorarni').animate({
                            opacity: 0.1
                            }, 1000, function(){
                            });
                    /*
                    $('li#stalni').css({ opacity: 1 });
                    $('li#honorarni').css({ opacity: 0.1 });
                    */
                }
            } else {
                var $sorted_data = $filtered_data.sorted({
                    by: function(v) {
                    return parseInt($(v).find('span#filtriraj').attr('data-id'));
                    }
                });
                var $sorted_data_nn = function(){
                    $('li#stalni').animate({
                            opacity: 0.1
                            }, 1000, function(){
                            });
                     $('li#honorarni').animate({
                            opacity: 1
                            }, 1000, function(){
                            });
                    /*
                    $('li#stalni').css({ opacity: 0.1 });
                    $('li#honorarni').css({ opacity: 1 });
                    */
                }
            }
        }else{
            $sorted_data = $filtered_data;
        }
        $list.quicksand($sorted_data, $preferences, $sorted_data_nn);
     }

      e.preventDefault();
    });

  });

});

