jQuery.cookie = function (key, value, options) {

    // key and at least value given, set cookie...
    if (arguments.length > 1 && String(value) !== "[object Object]") {
        options = jQuery.extend({}, options);

        if (value === null || value === undefined) {
            options.expires = -1;
        }

        if (typeof options.expires === 'number') {
            var days = options.expires, t = options.expires = new Date();
            t.setDate(t.getDate() + days);
        }

        value = String(value);

        return (document.cookie = [
            encodeURIComponent(key), '=',
            options.raw ? value : encodeURIComponent(value),
            options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
            options.path ? '; path=' + options.path : '',
            options.domain ? '; domain=' + options.domain : '',
            options.secure ? '; secure' : ''
        ].join(''));
    }

    // key and possibly options given, get cookie...
    options = value || {};
    var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
    return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
};

$(document).ready(function() {
  var activeTab = $.cookie('homepage_tab');
  if(activeTab) {
    if($("#description .tab").filter(":visible").id != activeTab && $("#"+activeTab).length > 0) {
      $("#description .tab").filter(":visible").hide();
      $('nav a.active').removeClass('active');
      $('nav a[href*="'+activeTab+'"]').addClass('active');
      $("#"+activeTab).show();
    }
  }
  
  // Navigation handling
  $('nav a').click(function(e) {
    e.preventDefault();
    if(!$(this).hasClass("active")) {
      $('nav a').removeClass('active');
      $(this).addClass('active');
      var urlComponents = this.href.split('#');
      var anchor = $("#"+urlComponents[urlComponents.length-1]);
      $.cookie('homepage_tab', urlComponents[urlComponents.length-1], {expires: 365});
      $("#description .tab").filter(":visible").animate({opacity: 0.0}, 500, function() {
        $(this).hide();
        anchor.css({opacity: 0.0});
        anchor.show();
        anchor.animate({opacity: 1.0});
      });
    }
    
  });
});
