var highlightDockItem = null; var timer = null;

window.addEvent("domready", function(ev) {
    if(Browser.Engine.trident4) {
        $$('h1 img').each(Browser.fixPNG);
    }

    $$('ul.buttonDock li').setStyle("display", "none");
    var li = new Element("li", {'class': 'big'}).inject($$('ul.buttonDock')[0]);
    li.tween('opacity', 0, 1);

    var active = null;
    var loader = new PageLoader($$('.boxes')[0], {
        'GAAccountId': "UA-12833290-1",
        'defaultIndex': $defined(highlightDockItem) ? highlightDockItem + 1 : 0,
        'renderedCallback': function(element, number, url, page) {
            var ul = element.getElement("ul");
            if(!ul) return

            (function( ) {
                ul.getElements("li").tween('opacity', 0.8);
            }).delay(500);

            if(window.resizeNavigation) window.resizeNavigation(
                element.getElement("ul"));
            if(!Browser.Engine.trident6) resetCurves( );
        },
        'loadCallback': function(number, url, page){   

            var loader = dock.dock.retrieve('loader');
            if(loader) {
                loader.tween('opacity', 0);
                (function ( ) { loader.dispose(); }).delay(
                    loader.get('tween').duration);
            }

            if(number > 0 && number < dock.items.length) {
                if(active == dock.items[number-1]) return;
                if(!dock.preloadComplete) highlightDockItem = number-1;
                else dock.items[number-1].fireEvent("click");
            } else {
                if(!dock.preloadComplete) highlightDockItem = null;
                else if(active) dock.morphState('small', [active]);
            }

            $$('div#content').setStyle("height", "auto");

        }, 'startLoadCallback': function(page) {

            var loader = dock.dock.retrieve('loader');
            if(!loader) {
                loader = new Element("span", {'class': 'loader'});
                loader.setOpacity(0);
    
                if(Browser.Engine.trident4) {
                    loader.inject(dock.dock, 'after');
                    loader.setStyle("margin-top", 1);
                }

                dock.dock.store('loader', loader);
            }

            if(active) {
                if(Browser.Engine.trident4) {
                    loader.inject(dock.dock, 'after');
                } else {
                    loader.inject(active);
                }
                loader.tween('opacity', 1);
            }
        }, 'failureCallback': function(transport, request) {
            window.location = request.options.url;
        }
    });    

    $$('body')[0].store('PageLoader', loader);

    var dock = new VDock($$('ul.buttonDock')[0], {
        defaultTransitionOpts: {'transition':Fx.Transitions.Back.easeInOut},
        preloadCallback: function(ev) { 
            $$('li.big').tween('opacity', 0);
            (function( ) {
                $$('li.big').destroy();
                dock.dock.setStyle("overflow", "hidden");
                dock.items.setStyle("top", dock.dock.getSize( ).y);
                dock.items.setStyle("display", "block");

                dock.items.each(function(item, i) {
                    var toOpac = 0.7;
                    if(Browser.Engine.trident) {
                        if(!Browser.Engine.trident4) toOpac = 1;
                        else dock.items.setStyle("opacity", 0);
                    } else {
                        dock.items.setStyle("opacity", 0);
                    }
                    (function( ) { item.morph({
                        'top': 0, 'opacity': toOpac
                    }) }).delay(i * 100);
                });


                dock.addEventHandler("click", function(ev, item) {
                    
                    if(active == item) {
                        /*loader.displayPage(0);
                        dock.morphState('small', [active]);
                        active = null;*/
                        return;
                    }
                    dock.items.each(function(b, i) {
                        if(dock.items[i] == item) loader.displayPage(i+1);
                    });

                    if(active) dock.morphState('small', [active]);
                    dock.morphState('large', [item]);
                    active = item;
                });
                dock.addEventHandler("mouseenter", function(ev, item) {
                    if(item == active) return;
                    dock.morphState('hover', [item]);
                });
                dock.addEventHandler("mouseleave", function(ev, item) {
                    if(item != active) dock.morphState('small', [item]);
                });

                $$('ul.buttonDock').addEvent("click", function(ev) {
                    new Event(ev).stop( );
                });

                $$('.boxes').addEvent("click", function(ev) {
                    new Event(ev).stop( );
                });

 
                (function( ) {
                    if(highlightDockItem!==null) {
                        active = dock.items[highlightDockItem];
                        dock.morphState('large', [active]);
                    }
                }).delay(500);
            }).delay(500);
        }
    });

    var repsrch = '.png', reph = '-hover.png';
    var repsrc = '.png', rep = '-large.png', smallClass='small';
    var largeClass = 'large';
    if(Browser.Engine.trident) {
        if(!Browser.Engine.trident4) smallClass = 'smallNoOpac';
        else {
            $$('ul.buttonDock img').each(function(i) {
                i.set('src', i.get('src').replace(".png", ".gif"));
            });
            repsrch = '.gif'; reph = '-hover.gif';
            repsrc = '.gif'; rep = '-large.gif'; largeClass='largeNoMove';
        }
    }

    var states = {
        'small': {
            'class': smallClass
        },
        'hover': {
            'imageReplace': [repsrch, reph],
            'class': 'hover',
            'imageDimensions': {'width': 86, 'height': 102}
        },
        'large': {
            'imageReplace': [repsrc, rep],
            'class': largeClass,
            'transitionOptions': {

                'duration': 600
            }
        }
    };
    dock.addStates(states);

    $$('.buttonDock li a img').each(function(el) {
        var a = el.getParent("a");
        el.inject(el.getParent("li"));
        a.dispose();
    });

});

