var em = 0.0625;
var body;
var bodyHeight;

document.observe("dom:loaded", function() {

    body = $$('body').first();
    bodyHeight = em * body.getHeight();
    body.setStyle({height: bodyHeight + 'em'});

    $$('.Article').each(function(articleInstance) {
        if (articleInstance.select('.full').first()) {

            var more = articleInstance.select('.more').first();
            var less = articleInstance.select('.less').first();
            var full = articleInstance.select('.full').first();
            var all = {more: more, less: less, full: full};
            var height = em * full.getHeight();
            full.setStyle({height: height + 'em'});
            more.setStyle({display: 'inline'});
            less.setStyle({display: 'inline'});
            full.hide();
            less.hide();
            more.onclick = toggleArticle.bind(all);
            less.onclick = toggleArticle.bind(all);
        }
    });

    //showRemoteTemplate('/user/login', 50);

});

var toggleArticleBusy = false;
var toggleArticle = function(event) {

    var duration = 1.0;

    if (toggleArticleBusy) {
        return false;
    }
    else {
        toggleArticleBusy = true;
    }

    if (this.more.visible()) {
        first = this.more;
        second = this.less;
        Effect.Appear(this.full.id, { duration: duration});
        Effect.BlindDown(this.full.id, { duration: duration});
    }
    else {
        first = this.less;
        second = this.more;
        Effect.Fade(this.full.id, { duration: duration});
        Effect.BlindUp(this.full.id, { duration: duration});
    }


    Effect.toggle(first.id, 'appear', {afterFinish:
            function() {

                Effect.toggle(second.id, 'appear', {afterFinish:
                        function() {
                            toggleArticleBusy = false;
                        }, duration: duration / 2
                });
            }, duration: duration
    });
    return false;
}

// CMS STUFF
// autentication

var showRemoteTemplate = function(template, width) {

    var url = '/layouts/_cmsWindow.gsp?template=' + template + '&width=' + width;
    new Ajax.Request(url, {
        method: 'post',
        onSuccess: function(transport) {

            // insert content
            body.insert({bottom: transport.responseText});

            // get node references
            var cmsOverlay = $('cmsOverlay');
            var cmsWindow = $('cmsWindow');
            var cmsWindowCloser = $('cmsWindowCloser');

            // set vertical position (change standard value via css)
            if (cmsWindow.getHeight() < cmsOverlay.getHeight() - 100) {
                var top = (cmsOverlay.getHeight() - cmsWindow.getHeight()) / 2 * em;
                cmsWindow.setStyle({top: top + 'em'});
            }

            // set horizontal position
            var left = (body.getWidth() * em - width) / 2;
            cmsWindow.setStyle({left: left + 'em'});
            cmsWindowCloser.onclick = hideRemoteTemplate;
        }
    });
}

var hideRemoteTemplate = function() {
    var duration = 0.4;
    var cmsOverlay = $('cmsOverlay');
    var cmsWindow = $('cmsWindow');
    if (!cmsOverlay) {
        return false;
    }
    Effect.Puff(cmsWindow.id, {duration: duration / 2, afterFinish: function() {
        Effect.Fade(cmsOverlay.id, {duration: duration, afterFinish: function() {
            cmsOverlay.remove();
        }})
        cmsWindow.remove();
    }})
}






