/*
 * do not edit below
 */

menu_layers = [];
menu_active = [];

function touch_menubar(id) {
    menu_active = [id];
    if (!menu_layers[id])
        create_menu(menu_active, 'menuanchor'+id, menubar_dx, menubar_dy);
    display_menu();
}
function untouch_menubar(id) {
    if (menu_active.join('-') == id) {
        menu_active = [];
        setTimeout('display_menu();', menu_fadeoutdelay);
    }
}
function untouch_menuitem(id_list) {
    id = id_list.join('-');
    document.getElementById('menuitem'+id).style.backgroundColor = menu_inactive_bgcolor;
    document.getElementById('menuitem'+id).style.color = menu_inactive_fgcolor;
    if (menu_active.join('-') == id) {
        menu_active = [];
        setTimeout('display_menu();', menu_fadeoutdelay);
    }
}
function touch_menuitem(id_list) {
    id = id_list.join('-');
    document.getElementById('menuitem'+id).style.backgroundColor = menu_active_bgcolor;
    document.getElementById('menuitem'+id).style.color = menu_active_fgcolor;
    menu_active = id_list;
    display_menu();
}
function display_menu() {
    // show active menu button
    for (i=0; i < menu_buttons.length; i++) {
        if (menu_buttons[i] == void(0))
            continue;
        if (!document.images['menu_button_'+i])
            continue;

        if ((menu_active.length > 0) && (menu_active[0] == i))
            document.images['menu_button_'+i].src = baseuri + menu_buttons[i][1];
        else
            document.images['menu_button_'+i].src = baseuri + menu_buttons[i][0];
    }

    // hide all menu layers at first
    menu_visibilities = [];
    for (id in menu_layers) menu_visibilities[id] = 'hidden';
    // show active menus
    if (menu_active.length > 0) {
        itemlist = menu_items;
        // show active menu and its parents
        for (i=0; i < menu_active.length; i++) {
            if (i+1 < menu_active.length)
                menu_visibilities[menu_active.slice(0,i+1).join('-')] = 'visible';
            itemlist = itemlist[menu_active[i]][2];
        }
        // show submenu, if not empty
        if (itemlist && (itemlist.length > 0))
            menu_visibilities[menu_active.join('-')] = "visible";
    }
    // apply visibility settings
    for (id in menu_visibilities) {
        if (menu_layers[id] && menu_layers[id].style)
            menu_layers[id].style.visibility = menu_visibilities[id];
        else {
            // the submenu should be positioned relative to the item it is a submenu off (not to the parent menu)
            if ((document.getElementById('menuitem'+id).offsetParent.offsetLeft == 0)
                && (document.getElementById('menuitem'+id).offsetParent.offsetTop == 0)) { // IE
                x = document.getElementById('menuitem'+id).offsetParent.offsetParent.offsetLeft;
                y = document.getElementById('menuitem'+id).offsetParent.offsetParent.offsetTop;
            }
            else { // Firefox, Konqueror, Opera
                x = document.getElementById('menuitem'+id).offsetParent.offsetLeft;
                y = document.getElementById('menuitem'+id).offsetParent.offsetTop;
            }
            x += document.getElementById('menuitem'+id).offsetLeft+menu_dx;
            y += document.getElementById('menuitem'+id).offsetTop+menu_dy;
            create_menu(id.split('-'), 'menuanchor'+menu_active[0], x, y);
        }
    }
}
function create_menu(id_list, parent, dx, dy) {
    id = id_list.join('-');

    // create new layer to hold the menu
    menu_layers[id] = document.createElement('div');
    menu_layers[id].style.position = 'absolute';
    //menu_layers[id].style.width = menu_width+'px';
    menu_layers[id].style.width = (menu_widths && menu_widths[id] ? menu_widths[id] : menu_width)+'px';
    document.getElementById(parent).appendChild(menu_layers[id]);

    // position the menu
    menu_layers[id].style.left = dx + 'px'
    menu_layers[id].style.top = dy + 'px';

    // setup the menu
    s = '<div class="menubox">\n';
    itemlist = menu_items;
    for (i=0; i < id_list.length; i++) itemlist = itemlist[id_list[i]][2];
    for (i=0; i < itemlist.length; i++) {
        if (itemlist[i][1]) s += '<a class="menulink" href="' +
            ((itemlist[i][1].substr(0,1) == "/") ? baseuri : "") +
            itemlist[i][1] + '">';
        s += '<div class="menuitem" id="menuitem'+id+'-'+i+'"'
            + ' onmouseover="touch_menuitem(['+id_list.join(',')+','+i+'])"'
            + ' onmouseout="untouch_menuitem(['+id_list.join(',')+','+i+'])"'
            + '>';
        s += '<img src="'+menu_hoverimage+'" class="hoverimage">'; // bugfix for IE
        if (itemlist[i][2].length > 0) s += '<span class="menuarrowbox"><img border="0" src="'+menu_arrowimage+'" class="menuarrow"></span>';
        s += itemlist[i][0];
        s += '</div>\n';
        if (itemlist[i][1]) s += '</a>';
    }
    s += '</div>\n';
    menu_layers[id].innerHTML = s;
}

if (menu_currentpage && (menu_buttons[menu_currentpage])) {
    menu_buttons[menu_currentpage][0] = menu_buttons[menu_currentpage][1];
    setTimeout('display_menu();', 500);
}
