var ScrollLinks = {    currentHash: false,    start: function(){        this.scroll = new fx.Scroll({duration: 800, onComplete: function(){ScrollLinks.end();}});        this.allinks = document.getElementsByTagName('a');        for (i=0; i<this.allinks.length; i++){            var lnk = this.allinks[i];            if ((lnk.href && lnk.href.indexOf('#') != -1) && ( (lnk.pathname == location.pathname) || ('/'+lnk.pathname == location.pathname) ) && (lnk.search == location.search)) {                lnk.onclick = function(){                    ScrollLinks.scroll.clearTimer();                    this.initialHref = this.href;                    this.initialHash = this.hash;                    this.href = "javascript:void(0)";                    setTimeout(function(){this.href = this.initialHref;}.bind(this), 200);                    ScrollLinks.click(this);                }            }        }    },    click: function(link){        this.currentHash = link.initialHash.substr(1);        if (this.currentHash) {            for (j=0; j<this.allinks.length; j++){                if (this.allinks[j].id == this.currentHash){                    if (!window.opera) this.scroll.scrollTo(this.allinks[j]);                    else this.scroll.scrollTo(this.allinks[j].parentNode);                    break;                }            }        }    },    end: function(){        window.location.href = "#"+this.currentHash;        this.currentHash = false;    }}


var Site = {
    start: function(){
        Site.createOverNav();
    },
    
    createOverNav: function(){
        var menublocks = $$('#nav li');
        
        menublocks.each(function(el,i){
            var first = el.getFirst();
            if (!first || first.getTag() != 'a') return;
            var maincol = $E('#maincol');
            var nav = $E('#nav');
            var leaf = $E('#nav #leaf');
            var active = $E('#nav li.active');
            if(!active)
                active = nav;
            var leafStyles = new Fx.Styles(leaf, {duration: 800, wait:false, transition: Fx.Transitions.cubicOut});
            var leafStylesOut = new Fx.Styles(leaf, {duration: 800, wait:false, transition: Fx.Transitions.elasticOut});
            
            var overfxs = new Fx.Styles(first,{
                duration:300, 
                wait:false, 
                transition: Fx.Transitions.linear,
                onComplete: leafStylesOut.custom({'left':[leaf.getLeft()-nav.getLeft(),active.getLeft()-nav.getLeft()]})
            });
            el.addEvent('mouseover',function(){
                leafStyles.custom({'left':[leaf.getLeft()-nav.getLeft(),el.getLeft()-nav.getLeft()]});
                overfxs.start({
                    'color': '#8E8F47'
                });
            });
            el.addEvent('mouseout',function(event){
                overfxs.start({
                    'color': '#573c1f'
                });
            });
            maincol.addEvent('mouseover',function(event){
                leafStylesOut.custom({'left':[leaf.getLeft()-nav.getLeft(),active.getLeft()-nav.getLeft()]});
            });

        },this);
    }
}

window.onDomReady(Site.start);
