/**
 * Adjusts font size of page, by adding or removing a wrapper div, with class 'smaller' or 'larger'. The style of these classes is defined in the stylesheet.
 * @auhtor Peter Kruithof
 */

var activeFontSize;
var activeMenu;

/**
 * Adjusts font size of #body element, using three possible sizes: normal | larger | largest
 * @param e The event passed to this function
 * @return void
 */
function adjustFontSize(e)
{
    var target = getTarget(e);
    var type = target.properties.type;
    var body = document.getElementById('body');

    if (type != undefined) {

        // remove class from previous activeFontSize button
        if (activeFontSize) setClassName(activeFontSize, '');

        // set target as activeFontSize button
        activeFontSize = target;

        // set proper class name
        switch (type) {
            case 'normal': setClassName(body, ''); break;
            case 'larger': setClassName(body, 'larger'); break;
            case 'largest': setClassName(body, 'largest'); break;
            default: setClassName(body, ''); break;
        }

        // set active class name for activeFontSize button
        setClassName(activeFontSize, 'active');
    }
}

/**
 * Captures click event on menu, gets menu node and calls toggleMenuNode function
 * @author Peter Kruithof
 */
function onToggleMenu(e)
{
    // cancel the event
    cancelEvent(e);

    // get clicked target
    var target = getTarget(e);

    // blur it
    target.blur();

    // get menu node
    var menuNode = document.getElementById(target.properties.menu_id);

    if (!activeMenu) {
        // activeMenu not set, do it
        activeMenu = menuNode;
    } else {
        // there is an active menu, toggle (close) it
        toggleMenuNode(activeMenu);
    }

    // set active menu
    activeMenu = menuNode;

    // toggle menu
    toggleMenuNode(menuNode);
}

/**
 * Expands/collapses menu node
 * @author Peter Kruithof
 */
function toggleMenuNode()
{
    if (activeMenu) {
        // get class attribute
        var className = activeMenu.getAttribute('class') || activeMenu.getAttribute('className');

        // get new classname and set it
        var newClassName = ((className == 'subnav') || (className == 'nodisplay')) ? 'block' : 'nodisplay';
        setClassName(activeMenu, newClassName);

    }
}

function printWindow()
{
    window.print();
}

function defaultSlogan()
{
    var slogan0 = document.getElementById('sectionslogan0');
    var slogan1 = document.getElementById('sectionslogan1');
    var slogan2 = document.getElementById('sectionslogan2');
    var slogan3 = document.getElementById('sectionslogan3');
    slogan0.style.display = 'block';
    slogan1.style.display = 'none';
    slogan2.style.display = 'none';
    slogan3.style.display = 'none';
}

function changeSlogan(prio)
{
    var slogandefault = document.getElementById('sectionslogan0');
    var sloganchange = document.getElementById('sectionslogan'+prio);
    slogandefault.style.display = 'none';
    sloganchange.style.display = 'block';
}

window.slogans = new Array();

function addSlogan(slogan)
{
    if (slogan != '') {
        window.slogans.push(slogan);
    }
}

function setRandomSlogan()
{
    var slogan = document.getElementById('sloganvisual');
    if (slogan && (window.slogans.length > 0)) {
        var luckyKey = Math.round(Math.random()*(window.slogans.length-1));
        var visual = window.slogans[luckyKey];

        slogan.style.background = 'transparent url(' + visual + ') no-repeat left top;';
    }
}

/**
 * Applies event to element with id 'back', when referrer is set
 */
function backLinks()
{
    var back = document.getElementById('back');

    if (back) {
        if (document.referrer != '') {
            // create link
            var anchor = document.createElement('a');
            anchor.className = 'back';
            anchor.setAttribute('rel', 'back');
            anchor.setAttribute('href', document.referrer);
            anchor.appendChild(document.createTextNode(getText('Back')));

            applyEvent(anchor, 'click', goBack);

            back.appendChild(anchor);
        }
    }
}

addLoadEvent(backLinks);