jQuery(window).load(function() {
	jQuery('#pattern').css({'height':((jQuery(document).height()))+'px'});
});

jQuery(document).ready(function() {
	
	jQuery('a.fancy img').css({opacity: 0.8});
	
	$("a.fancy img").hover(
	  function () {
	    $(this).stop().animate({opacity:1}, 150, "swing");
	  }, 
	  function () {
	    $(this).stop().animate({opacity:0.8}, 150, "swing");
	  }
	);
	
	if (jQuery('#sidebar').height()>jQuery('#content').height()) {
		jQuery('#content').css({'height':((jQuery('#sidebar').height()+225))+'px'});
	}

	$('#header ul li').prepend('<span class="stripe"></span>');
	$("#header ul.menu").superfish();
	
	//fancybox
	jQuery('a.fancy, .gallery-item a').fancybox({'titlePosition':'inside'});
	
	//gallery
	$('.controls li a').click(function() {
	  $('.gallery h4').fadeOut('fast');
	});
	
});

//
(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);

// DOMContentLoaded
$(function() {
  
  // bind radiobuttons in the form
  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-"]');
    return $selected.find('a').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: 500,
    easing: 'easeInOutExpo'
  };
  
  var $list = $('#portfolio_items');
  var $data = $list.clone();
  
  var $controls = $('ul.controls');
  
  $controls.each(function(i) {
    
    var $control = $(this);
    var $buttons = $control.find('a');
    
    $buttons.bind('click', function(e) {
      
      var $button = $(this);
      var $button_container = $button.parent();
      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').removeClass('selected-0').removeClass('selected-1').removeClass('selected-2').removeClass('selected-3').removeClass('selected-4').removeClass('selected-5');
        $button_container.addClass('selected');
        $button_container.addClass('selected-' + button_segment);
        
        var sorting_type = determine_sort($controls.eq(1).find('a'));
        var sorting_kind = determine_kind($controls.eq(0).find('a'));
        
        if (sorting_kind == 'all') {
          var $filtered_data = $data.find('li');
        } else {
          var $filtered_data = $data.find('li.' + sorting_kind);
        }
        
        if (sorting_type == 'size') {
          var $sorted_data = $filtered_data.sorted({
            by: function(v) {
              return parseFloat($(v).find('span').text());
            }
          });
        } else {
          var $sorted_data = $filtered_data.sorted({
            by: function(v) {
              return $(v).find('strong').text().toLowerCase();
            }
          });
        }
        
        $list.quicksand($sorted_data, $preferences, 
        function() {
        
		        $("a.fancy img").hover(
		          function () {
		            $(this).stop().animate({opacity:1}, 150, "swing");
		          }, 
		          function () {
		            $(this).stop().animate({opacity:0.8}, 150, "swing");
		          }
		        );
        
        
                $("a.fancy").fancybox({
        		'titlePosition' : 'inside'
        		});
        		$('.gallery h4').replaceWith('<h4 style="display:none">'+$('.controls li.selected a span').html()+'</h4>');
        		$('.gallery h4').fadeIn('fast');
        } //end of fancybox function
        
        ); //end of quicksand hook
        
                
      }
      
      e.preventDefault();
    });
    
  }); 

  var high_performance = false;  
  var $performance_container = $('#performance-toggle');
  var $original_html = $performance_container.html();
  
  $performance_container.find('a').live('click', function(e) {
    if (high_performance) {
      $preferences.useScaling = false;
      $performance_container.html('CSS3 scaling turned off. Try the demo again. <a href="#toggle">Reverse</a>.');
      high_performance = false;
    } else {
      $preferences.useScaling = true;
      $performance_container.html($original_html);
      high_performance = true;
    }
    e.preventDefault();
  });
});

