$(document).ready(function() {
    
    if($('#fading-objects').length>0) { $('#fading-objects').fader(); }

});

(function($) {
    
    $.fader = function() {
        var fadeElementser = function($elem, $objects, settings, current) {
            
            var next = (current == $objects.length-1) ? 0 : current + 1;

            $curobj = $objects.eq(current);
            $nextobj = $objects.eq(next);
            
            $curobj.css({ 
               'z-index':'1'
            });
            $nextobj.css({ 
               'z-index':'2'
            });
            
            $curobj.fadeOut(settings.speed, function() {
                $nextobj.fadeIn(settings.speed, function() {
                   var timeOut = setTimeout(function() {
                    fadeElementser($elem, $objects, settings, next);
                   }, settings.pause);
                });
 
            });
            
            
        };
        return {
            initFader: function($elem, settings) {
                
                
                var $objects = $elem.find('.fader-obj');
                
                var rn = Math.floor(Math.random() * $objects.length);
                
                $objects.eq(rn).show();
                
                if($objects.length>1) {
                    var timeOut = setTimeout(function() {
                        fadeElementser($elem, $objects, settings, rn);
                    }, settings.pause);
                }
            }
        };
    }();
    
    $.fn.extend({
        fader: function(options) {
            this.each(function() {

                // Settings
                var settings = $.extend({
                    pause : 7000,
                    speed: 1000
                }, options);
                
                $.fader.initFader($(this), settings); 
            });
            return this;
        }
    });
    
})(jQuery);


// Array.push() - Add an element to the end of an array, return the new length
if( typeof Array.prototype.push==='undefined' ) {
 Array.prototype.push = function() {
  for( var i = 0, b = this.length, a = arguments, l = a.length; i<l; i++ ) {
   this[b+i] = a[i];
  }
  return this.length;
 };
}

var industries = undefined;
var year = undefined;
var regions = undefined;
var $industries = undefined;
var $year = undefined;
var $regions = undefined;

function sortBy(el, name) {
  $('#arrow-menu .active').removeClass('active');
  $(el).parent().addClass('active');
  
  if (!industries && !year && !regions) {
    
    $objects = $('#portfolio-data-unsorted .two-column');

    industries = {};
    year = {};
    regions = {}; 
    
    $objects.each(function() {
       var industry_val = $(this).find('.elem-industry').html();
       if (industry_val == '') { industry_val = '_'; } 
 
       var year_val = $(this).find('.elem-year').html();
       if (year_val == '') { year_val = '_'; } 

       var region_val = $(this).find('.elem-region').html();
       if (region_val == '') { region_val = '_'; } 

       if (!industries[industry_val]) { industries[industry_val] = new Array(); }
       industries[industry_val].push($(this));

       if (!year[year_val]) { year[year_val] = new Array(); }
       year[year_val].push($(this));
      
       if (!regions[region_val]) { regions[region_val] = new Array(); }
       regions[region_val].push($(this));
       
    });
    
    var industries_key = new Array();
    for (var key in industries) {
       industries_key.push(key);
    }
    industries_key.sort();

    var year_key = new Array();
    for (var key in year) {
       year_key.push(key);
    }
    year_key.sort();
    year_key.reverse();


    var regions_key = new Array();
    for (var key in regions) {
       regions_key.push(key);
    }
    regions_key.sort();


    // new containers 
    $industries = $('<div id="portfolio-data-industries" class="portfolio-data" />');
    $industries.hide();
    $year = $('<div id="portfolio-data-year" class="portfolio-data" />');
    $year.hide();
    $regions = $('<div id="portfolio-data-regions" class="portfolio-data" />');
    $regions.hide(); 

    for(var i = 0; i<industries_key.length;i++) {
      if (industries_key[i] != '_') { $industries.append('<h3>'+ industries_key[i]+'</h3>'); }
      else { $industries.append('<h3>&nbsp;</h3>'); }
    
      for(var u = 0; u < industries[industries_key[i]].length; u++) {
         var $industries_clone = $(industries[industries_key[i]][u]).clone();
         $industries.append($industries_clone);
      }
    }

    for(var i = 0; i<year_key.length;i++) {
      if (year_key[i] != '_') { $year.append('<h3>'+ year_key[i]+'</h3>'); }
      else { $year.append('<h3>&nbsp;</h3>'); }
      
      for(var u = 0; u < year[year_key[i]].length; u++) {
         var $year_clone = $(year[year_key[i]][u]).clone();
         $year.append($year_clone);
      }
    }

    for(var i = 0; i<regions_key.length;i++) {
      if (regions_key[i] != '_') { $regions.append('<h3>'+ regions_key[i]+'</h3>'); }
      else { $regions.append('<h3>&nbsp;</h3>'); }
    
      for(var u = 0; u < regions[regions_key[i]].length; u++) {
  
         var $regions_clone = $(regions[regions_key[i]][u]).clone();
         $regions.append($regions_clone);
      }
    }

    $('#cntnt').append($industries);
    $('#cntnt').append($year);
    $('#cntnt').append($regions);
    
  }
  
  $('#cntnt .portfolio-data').hide();
  $('#portfolio-data-'+name).show();
  
  
  
}

/**************************************/
