var scrolled = false;

$.fn.extend({
    adjust_tocs: function() {
        var $pagetoc = $("#pagetoc");
        var max = ($(window).height() - $pagetoc.height() -
                   $pagetoc.offset().top - 40);
        if (max > 0)
            $pagetoc.find('.toc-pane').css('max-height', max);
    }
});

$(document).ready(function() {
    var hide_toc = function(event) { $('#pagetoc').hide(); };

    $('a.tocpop').click(function(event) {
        event.preventDefault();
        $('#pagetoc').toggle();
        $('div.body').one('click', hide_toc);
      });
    $('#pagetoc .toc-pane a').click(function(event) {
        $('#pagetoc').hide();
      });
    $(window).scroll(function () {
        var at_top = $(document).scrollTop() == 0;
        if (at_top && scrolled) {
          scrolled = false;
          $('#to_top img').attr('src', '/projects/i/top-g.png');
        }
        else if (! at_top && ! scrolled) {
          scrolled = true;
          $('#to_top img').attr('src', '/projects/i/top.png');
        }
      });
    var $pagetoc = $("#pagetoc");
    $pagetoc.tabs().find('.toc-pane').css('overflow', 'auto').adjust_tocs();
    //$(window).resize(function() { $(document).adjust_tocs() });
    $("div.highlight pre").css('overflow', 'hidden').resizable();

    var downward = [];
    $('a.headerlink[href^="#"]').each(function() {
        var target = this.hash.substring(1);
        $('[id="' + target + '"]').each(function () {
            downward.push(parseInt($(this).offset().top));
        });
    });
    var upward = downward.slice();
    upward.reverse();

    $(document).keydown(function(e){
        if (e.keyCode == 74 || e.keyCode == 78) {
            var current = $(window).scrollTop();
            for each (var pos in downward) {
                if (pos == current)
                    continue;
                if (pos > current) {
                    $(window).scrollTop(pos);
                    return false;
                }
            }
            return false;
        }
        if (e.keyCode == 75 || e.keyCode == 80) {
            var current = $(window).scrollTop();
            for each (var pos in upward) {
                if (pos == current)
                    continue;
                if (pos < current) {
                    $(window).scrollTop(pos);
                    return false;
                }
            }
            return false;
        }

    });


  });
