/*
    @author   : Igor "SkAZi" Potapov <igor@potapoff.org>
    @copyright: Plan-B Ltd.
    @requires : Mootools 1.2
*/

var currentPage = 1;
var NOW_LOADING;

var flipCover = function( id, cover, bookmark ){
    
    if(typeof(id) == 'object'){
        id = this.className.match(/nodeid(\d{1,2})$/);
        if(id && id[1]) id = id[1]
        else return;
    }

    if(id == currentPage) return;
    if(NOW_LOADING) return;
    NOW_LOADING = true;
    
    if(Browser.Engine.trident){
        $$('#page .drop-shadow ins + ins').each(function( item ){
            item.getPrevious().destroy();
            item.setStyle('position', 'static');
        });
        $$('#page .drop-shadow').each(function( item ){
            item.removeClass('drop-shadow');
        });
        $('flow').tween('opacity', 0);
        $('promo').tween('opacity', 0);
    }

    
    $('page').tween('opacity', 0);
    
    (function(){
        var req = new Request({
            'url': '/cover/text/' + id + '/',
            'method': 'get',
            'onFailure': function( response ){
                
                $('page').tween('opacity', 1);
                NOW_LOADING = false;
                
            },
            'onSuccess': function( response ){
                
                $('page').set('html', response);
                $('page').set('tween', {duration: 300, transition: 'sine:out', link: 'chain'});
                
                var cover = '/cover/image/' + id + '/';
                
                new Loader([cover], function(){
                    
                    $('page').style.background = 'url('+cover+') no-repeat';
                    $('page').tween('opacity', 1);
                    if(Browser.Engine.trident){
                        createDropShadows.bind(this, '#page .will-shadow').delay(500);
                        $('flow').tween('opacity', 1);
                    } else createDropShadows();
                    
                    //if($('promo'))
                    //    promoPlay.delay(800);
                    $('promo').setStyles({
                        display: 'block',
                        top: 490,
                        left: 490,
                        width: 160,
                        height: 160,
                        opacity: 1        
                    });
                        
                });
                
                currentPage = id;
                NOW_LOADING = false;
                
            }
        }).send();
    }).delay(500);
    
}


var promoPlay = function(){
    
    if(!$('promo')) return false;
    
    $('promo').set('morph', {duration: 300, transition: 'bounce:out'});
    $('promo').setStyles({
        'display': 'block',
        'opacity': 0.1,
        'left': 0,
        'top': 0,
        'width': 800,
        'height': 800
    });
    
    if(Browser.Engine.trident) $('promo').setStyle('opacity', 1);
    
    $('promo').morph({
        top: 490,
        left: 490,
        width: 160,
        height: 160,
        opacity: 1        
    });
    
}


var enableBookmarkAnimation = function(){
    
    if(!$('bookmark')) return false;
    
    $('bookmark').set('morph', {duration: 1200, transition: 'elastic:out'});
    
    $('bookmark').addEvent('mouseenter', function(){
        this.morph({
            'top': 10,
            'marginRight': -100
        });
    });

    $('bookmark').addEvent('mouseleave', function(){
        this.morph({
            'top': 30,
            'marginRight': 0
        });
    });    
    
}


window.addEvent('domready', function(){
    
    enableLanguageSelect();
    enableBookmarkAnimation();

    $$('#main-menu > li').each(function( item ){
        item.addEvent('mouseenter', flipCover);
    });
    
});


window.addEvent('load', function(){
    promoPlay.delay(500);
});