var endor = {};
endor.main = {};



endor.main.load = function(){
    if($('login-button')){
        var button = $('login-button');
        var login_pop = $('login-popout');
        login_pop.position({x:button.getPosition().x-150, y:button.getPosition().y+20});
        var closable = false;
        var open = new Fx.Morph(login_pop, {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
        var close = new Fx.Morph(login_pop, {duration: 'long', transition: Fx.Transitions.Sine.easeIn, onComplete:function(){
            login_pop.setStyle('display', 'none');
            closable=false;}});
        button.addEvent('click', function(){
            login_pop.setStyle('display', 'block');
            open.start({
                'height': [0, 160]
            });
            $('username').select();
            return false;
        });
        $(login_pop).addEvent('mouseenter', function(){
            closable=true;
        });
        $(login_pop).addEvent('mouseleave', function(){
            if(closable){
                close.start({
                    'height': [160, 0]
                });
            }
        });

    }
    var logo_container = $('logo_container');
    var hover_logo = $('hover-logo');
    var isOver = false;
    var isOpen = false;
    if(hover_logo){
        hover_logo.position({x:logo_container.getPosition().x+50, y:logo_container.getPosition().y});
        var hd = $('hd');
        var openBanner = new Fx.Morph(hd, {duration: 'long', transition: Fx.Transitions.Sine.easeOut, link:'ignore'});
        var closeBanner = new Fx.Morph(hd, {duration: 'long', transition: Fx.Transitions.Sine.easeIn, link:'ignore', onComplete:function(){
            isOpen = false;}
        });
        var openLogo = new Fx.Morph(logo_container, {duration: 'long', transition: Fx.Transitions.Sine.easeOut, link:'ignore'});
        var closeLogo = new Fx.Morph(logo_container, {duration: 'long', transition: Fx.Transitions.Sine.easeIn, link:'ignore'});
        hover_logo.addEvent('mouseenter', function(){
            isOver = true;
            setTimeout(function(){
                if(isOver && !isOpen){
                    isOpen = true;
                    openLogo.start({
                        'height': [70, 100]
                    });
                    openBanner.start({
                        'height': [80, 110]
                    });
                }
            },500)
        });
        hover_logo.addEvent('mouseleave', function(){
            isOver = false;
        });
        hd.addEvent('mouseleave', function(){
            if(isOpen){
                closeBanner.start({
                    'height': [110, 80]
                });
                closeLogo.start({
                    'height': [100, 70]
                });
            }
        });

    }
    if($('register-button')){
        $('register-button').addEvent('click', function(){
            window.location.href = '/showRegister';
            return false;
        });
    }
    if($('logout-button')){
        $('logout-button').addEvent('click', function(){
            window.location.href = '/logout';
            return false;
        });
    }
}
endor.main.activateToDo = function(){
    var todo_pop = $('todo-popout');
    var close = new Fx.Morph(todo_pop, {duration: 'long', transition: Fx.Transitions.Sine.easeIn, onComplete:function(){
        todo_pop.setStyle('display', 'none');}});
    var open = new Fx.Morph(todo_pop, {duration: 'long', transition: Fx.Transitions.Sine.easeOut, onComplete:function(){
        close.start({
                'opacity': [0.9, 0]
            })
    }});
    var windowHeight = $(document.body).getSize().y;
    $$('a.todo').each(function(link){
        link.addEvent('click', function(){
            var linkHeigth = link.getPosition().y;
            if(linkHeigth>windowHeight/2)
                todo_pop.position({x:link.getPosition().x, y:link.getPosition().y-60});
            else{
                var test = link.getPosition().x;
                var test2 = link.getPosition().y+20;
                var test3 = todo_pop;
                try{
                todo_pop.position({x:link.getPosition().x, y:link.getPosition().y+10});
                }catch(e){
                    console.log(e.message);
                }
            }
            todo_pop.setStyle('opacity', 0);
            todo_pop.setStyle('display', 'block');
            open.start({
                'opacity': [0, 0.9]
            });
            return false;
        });
    });
}

endor.main.getHelpContent = function(element){
    var which = "";
    if(element.hasClass('about')) which = 'about';
    else if(element.hasClass('contact')) which = 'contact';
    else if(element.hasClass('account')){
            var id = element.getParent().getParent().id;
            which = 'account&id='+id;
        }

    var myHTMLRequest = new Request.HTML({method:'get', url:'/ajax?which='+which, onSuccess:function(a, b, responseHTML, d){
        //console.log(responseText);
        $('help-popout-box').setStyle('display', 'block');
        $('ajax-result').set('html', responseHTML);
        $('loading').setStyle('display', 'none');
        endor.main.activateNavigationLinks();
    }}).send();
}

endor.main.activateNavigationLinks = function(){
    var up = false;
    var container = $('ajax-result');
    var content = container.getFirst();
    var scrollHelpContent = new Fx.Morph(content, {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
    if(content.getSize().y > container.getSize().y){
        var diff = content.getSize().y - container.getSize().y;
        $$('div.updown').each(function(link){
            link.addEvent('click', function(){
                if(up){
                    scrollHelpContent.start({'margin-top': [0-diff, 0]});
                    up = false;
                }
                else{
                    scrollHelpContent.start({'margin-top': [0, 0-diff]});
                    up = true;
                }
            })
        });
    }
}

endor.main.activateMenuClicks = function(){
    var windowWidth = $(document.body).getSize().x;
    var help_pop = $('help-popout');
    help_pop.position({x:windowWidth-460, y:0});
    var closable = false;
    var close = new Fx.Morph(help_pop, {duration: 'long', transition: Fx.Transitions.Sine.easeIn, onComplete:function(){
        help_pop.setStyle('display', 'none');
        closable=false;}});
    var open = new Fx.Tween(help_pop, {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
    $$('a.help').each(function(link){
        link.addEvent('click', function(){
            help_pop.setStyle('opacity', 0);
            help_pop.setStyle('height', 400);
            help_pop.setStyle('display', 'block');
            open.start('opacity', 0, 0.95);
            endor.main.getHelpContent(link);
            return false;
        });
    });
    help_pop.addEvent('mouseenter', function(){
        closable=true;
    });
    help_pop.addEvent('mouseleave', function(){
        if(closable){
            close.start({
                'height': [400, 0]
            });
        }
    });

}


endor.main.activateManual = function(){
    var manual = $('manual');
    if(manual){
        manual.setStyle('opacity', 0);
        var closable = false;
        var open = new Fx.Morph(manual, {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
        var close = new Fx.Morph(manual, {duration: 'short', transition: Fx.Transitions.Sine.easeIn, onComplete:function(){
            manual.setStyle('display', 'none');
            closable=false;}});
        $$('a.manual').each(function(link){
            link.addEvent('click', function(){
                manual.position({x:link.getPosition().x-240, y:link.getPosition().y+15});
                manual.setStyle('display', 'block');
                var subject = link.href;
                subject = subject.substring(subject.indexOf('#'));
                if(subject=='#invitation') manual.set('html', i18n('mypage.help.invitation', endor.campaign.owner));
                else manual.set('html', 'Something is missing here');
                open.start({
                    'opacity': [0, 0.9]
                });
                return false;
            });
        });
        manual.addEvent('mouseenter', function(){
            closable=true;
        });
        manual.addEvent('mouseleave', function(){
            if(closable){
                close.start({
                    'opacity': [0.9, 0]
                });
            }
        });
    }
}


window.addEvent('domready', function() {
    endor.main.load();
    endor.main.activateToDo();
    endor.main.activateMenuClicks();
    endor.main.activateManual();
});
