var Splash = (function(){
    var logo = null;
    var back = null;
    var navi = null;
    var cookie = null;
    
    showChrome = function()
    {
        navi.down('.language').hide().next().show();
        $('gauche').show();
        $$('.productbox')[0].show();
        $('navigation-right').show();
    }
    
    pageFetched = function(r)
    {
        navi.down('.menu').update(r.responseJSON.menu);
        $($$('.boxContent')[0]).update(r.responseJSON.page);
        FLIR.init(new FLIRStyle({mode:'wrap'}));
        FLIR.auto( [ 'h1', 'h2', 'h3', 'h4', 'p.flir' ] );
        Expander.observeClickEvent();
        var dg = $(document.body).getDimensions();
        var d = logo.getDimensions();
        var c = (dg.height/2-d.height/2);
        var t = dg.height-d.height-40;
        new Effect.Parallel([
            new Effect.Move(logo, {x: 0, y: t, mode: 'relative', sync: true}),
            new Effect.Move(navi, {x: 0, y: t, mode: 'relative', sync: true})
        ],
        {
            duration: 1,
            afterFinish: showChrome
        });
    }
    
    return {
        init: function()
        {
            cookie = new CookieJar({expire: 3600*24*365});
            if(cookie.get('preferedLanguage'))
                document.location = '/'+cookie.get('preferedLanguage')+'/';
            var dg = $(document.body).getDimensions();
            
            logo = $('logo');
            var d = logo.getDimensions();
            var h = (dg.height/2-d.height/2);
            logo.setStyle({
                'top': h+'px',
                'visibility': ''
            });
            navi = $('navigation-left');
            d = navi.getDimensions();
            d.width = d.width+'px';
            navi.setStyle({'top': h+'px', 'width': d.width });
            back = $('bg-image');
        },
        
        run: function()
        {
            var dg = $(document.body).getDimensions();
            var elementDimensions = navi.getDimensions();
            new Effect.Opacity(back, {from: 1, to: .4, duration: 1});
            new Effect.Scale(navi, 100, {
                scaleContent: false,
                scaleY: false,
                scaleFrom: 0,
                scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
                restoreAfterFinish: true,
                afterSetup: function(effect) {
                    effect.element.makeClipping().setStyle({width: '0px'}).show();
                },
                afterFinishInternal: function(effect) {
                    effect.element.undoClipping();
                },
                duration: 1,
                queue: 'end'
            });
        },
        
        selectLanguage: function(lang)
        {
            cookie.put('preferedLanguage', lang);
            new Ajax.Request('/fetchPage.phtml?lang='+lang,
            {
                method: 'get',
                onSuccess: pageFetched,
                onException: function(){ console.debug(arguments); }
            });
        }
    };
})();