  $(window).load(function(){
    
    var $container = $('#filtered_items'),
        filters = {};
 
	  $.fn.shuffle = function() {
	    return this.each(function(){
	      var items = $(this).children();
	      return (items.length) ? $(this).html($.shuffle(items)) : this;
	    });
	  }
	 
	  $.shuffle = function(arr) {
	    for(
	      var j, x, i = arr.length; i;
	      j = parseInt(Math.random() * i),
	      x = arr[--i], arr[i] = arr[j], arr[j] = x
	    );
	    return arr;
	  }
	
//	$("#filtered_items").shuffle();

	$("#filtered").fadeIn(750)
 // $('.filter_item').each(function(i) {
    // $(this).fadeIn(1500)
  // });
 
    $container.isotope({
      itemSelector : '.filter_item',
	  layoutMode : 'cellsByRow',
	  cellsByRow : {
	    columnWidth : 162,
	    rowHeight : 174
	  }
    });
    
     // $("#clear_filters a").click();
 
    // filter buttons
    $('.filter_page #filters .sub_filters a, #clear_filters a').click(function(){
    	
	  var href = $(this).attr('href').replace( /^#/, '' );
//	  alert(href);
	      // convert href into object
	      // i.e. 'filter=.inner-transition' -> { filter: '.inner-transition' }
	      option = $.deparam( href, true );
//	      option['this_filter_id'] = $(this).attr('id');
	  // set hash, triggers hashchange on window
	  $.bbq.pushState( option );
      return false;
	});
	
	$(window).bind( 'hashchange', function( event ){

	if($('.filter_page #filters .sub_filters a, #clear_filters a').size() == 0) return;
//alert("hello");
	  var hashOptions = $.deparam.fragment();
//	  alert('hello');
	  // apply options from hash
	  if(hashOptions.data_filter_group == undefined)  { hashOptions.data_filter_group = "*"; }
	  var this_filter_id = hashOptions.data_filter_group.replace(/^./, '' )+"_filter";
//	  alert(this_filter_id)
	  if(this_filter_id == "_filter") this_filter_id = "clear_filters_filter"

      var $this = $("#"+this_filter_id);
      // don't proceed if already selected
      if ( $this.hasClass('selected') ) {
        return;
      }
      
	  $("html, body").scrollTop(0);
//	$(window).scrollTop() // doesn't work in Chrome

      var $optionSet = $this.parents('.option-set');
//      alert($optionSet.find('.selected').length)
      // change selected class
      $optionSet.find('.selected').removeClass('selected');
      $this.addClass('selected'); 
      
      // store filter value in object
      // i.e. filters.color = 'red'


      var group = $optionSet.attr('data-filter-group');
      filters[ group ] = $this.attr('data-filter-value');
      // convert object into array
      var isoFilters = [];
      for ( var prop in filters ) {
        isoFilters.push( filters[ prop ] )
      }
//      var selector = isoFilters.join('');
//	  var selector = $this.attr('data-filter-group');
	  var selector = hashOptions.data_filter_group;

	  var new_description = "";
	  if(selector == "*")	new_description = default_description;
	  else new_description = descriptions[selector];
      $container.isotope({ filter: selector });
      
		$("#filtered_description").fadeOut(300, function() {
//			alert(descriptions[selector]);
			$(this).html(unescape(new_description));
			$(this).fadeIn(300);
		}); 

 
      return false;
    });

	$(window).trigger('hashchange');

	  $('.send_email').click(function(){
	  	var name = $(this).attr('name');
	  	var domain = $(this).attr('domain');
	  	win = window.open("mail"+"to:"+name+"@"+domain);
	  	if (win && win.open &&!win.closed) win.close();
	  });
  
  });
  

