$(function() {
    function navigate(path) {
        if (path == 'select') return;
        var route = path.split('/');
        var script = route[0] + '(';
        if (route.length > 1) {
            script += $.map(route.slice(1), function(arg) {
                return '"' + arg + '"';
            }).join(', ');
        }
        script += ');';
        eval(script);
    }

    function clear() {
        $('.body > div').hide();
    }

    function open(main) {
        return function(sub) {
            clear();
            var id = '#' + main;
            if (sub) {
                id += '-' + sub;
            }
            $(id).show();
        }
    }
    var index = open('index'), about = open('about'), book = open('book');

    function blog() {
        clear();
        var el = $('#blog').show();
        function resize() {
            el.data('resizing', true)
              .find('iframe:eq(0)')
              .height($(window).height() - 150);
        }
        if (!el.data('resizing')) {
            $(window).resize(function() {
                resize();
            });
        }
        resize();
    }

    $('h1 a, .navigator a').click(function() {
        var self = $(this);
        var others = $('.navigator li').filter(function() {
            return self.parent().parent().parent().get(0) != this;
        });
        others.removeClass('selected');
        self.parent().addClass('selected');
        var match = self.attr('href').match(/\#\/(.*)/);
        if (match.length > 1) {
            navigate(match[1]);
        }
    });
});

