text: (function($) {
      var $window = $(window);
      var $document = $(document);
    
     /*
      * Scrollspy.
      */
    
     $document.on('flatdoc:ready', function() {
        $("h2, h3").scrollagent(function(cid, pid, currentElement, previousElement) {
          if (pid) {
           $("[href='#"+pid+"']").removeClass('active');
          }
          if (cid) {
           $("[href='#"+cid+"']").addClass('active');
          }
        });
      });
    
     /*
      * Anchor jump links.
      */
    
     $document.on('flatdoc:ready', function() {
       $('.menu a').anchorjump();
     });
    
     /*
      * Title card.
      */
    
      $(function() {
        var $card = $('.title-card');
        if (!$card.length) return;
    
        var $header = $('.header');
        var headerHeight = $header.length ? $header.outerHeight() : 0;
    
        $window
          .on('resize.title-card', function() {
            var windowWidth = $window.width();
    
            if (windowWidth < 480) {
              $card.css('height', '');
            } else {
              var height = $window.height();
              $card.css('height', height - headerHeight);
            }
          })
          .trigger('resize.title-card');
      });
    
      /*
       * Sidebar stick.
       */
    
      $(function() {
        var $sidebar = $('.menubar');
        var elTop;
    
        $window
          .on('resize.sidestick', function() {
            $sidebar.removeClass('fixed');
            elTop = $sidebar.offset().top;
            $window.trigger('scroll.sidestick');
          })
          .on('scroll.sidestick', function() {
            var scrollY = $window.scrollTop();
            $sidebar.toggleClass('fixed', (scrollY >= elTop));
          })
          .trigger('resize.sidestick');
      });
    
    })(jQuery);
    /*! jQuery.scrollagent (c) 2012, Rico Sta. Cruz. MIT License.
     *  https://github.com/rstacruz/jquery-stuff/tree/master/scrollagent */
    
    // Call $(...).scrollagent() with a callback function.
    //
    // The callback will be called everytime the focus changes.
    //
    // Example:
    //
    //      $("h2").scrollagent(function(cid, pid, currentElement, previousElement) {
    //        if (pid) {
    //          $("[href='#"+pid+"']").removeClass('active');
    //        }
    //        if (cid) {
    //          $("[href='#"+cid+"']").addClass('active');
    //        }
    //      });
    
    (function($) {
    
      $.fn.scrollagent = function(options, callback) {
        // Account for $.scrollspy(function)
        if (typeof callback === 'undefined') {
          callback = options;
          options = {};
        }
    
        var $sections = $(this);
        var $parent = options.parent || $(window);
    
        // Find the top offsets of each section
        var offsets = [];
        $sections.each(function(i) {
          var offset = $(this).attr('data-anchor-offset') ?
            parseInt($(this).attr('data-anchor-offset'), 10) :
            (options.offset || 0);
    
          offsets.push({
            id: $(this).attr('id'),
            index: i,
            el: this,
            offset: offset
          });
        });
    
        // State
        var current = null;
        var height = null;
        var range = null;
    
        // Save the height. Do this only whenever the window is resized so we don't
        // recalculate often.
        $(window).on('resize', function() {
          height = $parent.height();
          range = $(document).height();
        });
    
        // Find the current active section every scroll tick.
        $parent.on('scroll', function() {
          var y = $parent.scrollTop();
          y += height * (0.3 + 0.7 * Math.pow(y/range, 2));
    
          var latest = null;
    
          for (var i in offsets) {
            if (offsets.hasOwnProperty(i)) {
              var offset = offsets[i];
              if ($(offset.el).offset().top + offset.offset < y) latest = offset;
            }
          }
    
          if (latest && (!current || (latest.index !== current.index))) {
            callback.call($sections,
              latest ? latest.id : null,
              current ? current.id : null,
              latest ? latest.el : null,
              current ? current.el : null);
            current = latest;
          }
        });
    
        $(window).trigger('resize');
        $parent.trigger('scroll');
    
        return this;
      };
    
    })(jQuery);
    /*! Anchorjump (c) 2012, Rico Sta. Cruz. MIT License.
     *   http://github.com/rstacruz/jquery-stuff/tree/master/anchorjump */
    
    // Makes anchor jumps happen with smooth scrolling.
    //
    //    $("#menu a").anchorjump();
    //    $("#menu a").anchorjump({ offset: -30 });
    //
    //    // Via delegate:
    //    $("#menu").anchorjump({ for: 'a', offset: -30 });
    //
    // You may specify a parent. This makes it scroll down to the parent.
    // Great for tabbed views.
    //
    //     $('#menu a').anchorjump({ parent: '.anchor' });
    //
    // You can jump to a given area.
    //
    //     $.anchorjump('#bank-deposit', options);
    
    (function($) {
      var defaults = {
        'speed': 500,
        'offset': 0,
        'for': null,
        'parent': null
      };
    
      $.fn.anchorjump = function(options) {
        options = $.extend({}, defaults, options);
    
        if (options['for']) {
          this.on('click', options['for'], onClick);
        } else {
          this.on('click', onClick);
        }
    
        function onClick(e) {
          var $a = $(e.target).closest('a');
          if (e.ctrlKey || e.metaKey || e.altKey || $a.attr('target')) return;
    
          e.preventDefault();
          var href = $a.attr('href');
    
          $.anchorjump(href, options);
        }
      };
    
      // Jump to a given area.
      $.anchorjump = function(href, options) {
        options = $.extend({}, defaults, options);
    
        var top = 0;
    
        if (href != '#') {
          var $area = $(href);
          // Find the parent
          if (options.parent) {
            var $parent = $area.closest(options.parent);
            if ($parent.length) { $area = $parent; }
          }
          if (!$area.length) { return; }
    
          // Determine the pixel offset; use the default if not available
          var offset =
            $area.attr('data-anchor-offset') ?
            parseInt($area.attr('data-anchor-offset'), 10) :
            options.offset;
    
          top = Math.max(0, $area.offset().top + offset);
        }
    
        $('html, body').animate({ scrollTop: top }, options.speed);
        $('body').trigger('anchor', href);
    
        // Add the location hash via pushState.
        if (window.history.pushState) {
          window.history.pushState({ href: href }, "", href);
        }
      };
    })(jQuery);