var Site = {

    start: function ( ) {

        new SmoothScroll({transition: Fx.Transitions.Quad.easeOut});

        if($('nav'))
            Site.navAppear();

        if($('menu'))
            Site.menuAppear();

        if($$('[title]'))
            Site.title();
    },
    
    navAppear: function ( ) {

        var topStart  = -4;
        var topNormal = 0;
        var navblock = $('nav');
        var fx = new Fx.Style(navblock, 'top',
                              {wait: false,
                               unit: 'em',
                               duration: 400,
                               transition: Fx.Transitions.Quint.easeOut}
                              );

        navblock.setStyle('top', topStart + 'em');
        fx.start(topNormal);
    },

    menuAppear: function ( ) {

        var topStart  = 8;
        var topNormal = -2;
        var menublock = $('menu');
        var fx = new Fx.Style(menublock, 'top',
                              {wait: false,
                               unit: 'em',
                               duration: 400,
                               transition: Fx.Transitions.backOut,
                               onComplete: Site.menuOver()}
                              );

        menublock.setStyle('top', topStart + 'em');
        fx.start(topNormal);
    },

    menuOver: function ( ) {

        var topNormal = 0;
        var topFull   = -1.3;
        var menu      = $$("#menu a");
        var span      = $$("#menu a span");
 
        menu.each(function(menuitem, i) {
 
            var fx = new Fx.Style(span[i], 'top',
                                  {wait: false,
                                   unit: 'em',
                                   duration: 300,
                                   transition: Fx.Transitions.Quint.easeOut}
                                  );
 
            menuitem.addEvents({
                mouseenter: function() {
                    fx.start(topFull);
                },
                mouseleave: function() {
                    fx.start(topNormal);
                }
            });
        });
    },

    title: function ( ) {

        new Tips($$('[title]'), {
            initialize: function () {
                this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 300, wait: false}).set(0);
            },
            onShow: function(toolTip) {
                this.fx.start(1);
            },
            onHide: function(toolTip) {
                this.fx.start(0);
            },
            showDelay: 200,
            hideDelay: 200,
            fixed: true
        });
    }
}

window.addEvent('domready', Site.start);