var activeItem = null;

function InitMenu()
{
    $$("div.menu1").each(function(el, index)
        {
            el.observe("click", toggleMenu);
            el.childElements()[0].setStyle({ display: "block" });
        });
}

var animated = false;
var toogleUp = null;
var toogleDown = null;
var parallel = null;

function toggleMenu(ev)
{
    if (animated)
        return;
        
    var el = Event.element(ev);
    while (el.id == "" && el.parentNode != null)
        el = el.parentNode;
    
    if (el == activeItem)
    {
        if (el.attributes["url"] != null)
            var tout = setTimeout("redirect('" + el.attributes["url"].nodeValue + "')", 100);
            //window.location.href = el.attributes["url"].nodeValue;
        return;
    }    
    
    var activeMenu = (activeItem != null) ? $(activeItem.id + "_menu") : null;
    var selectedMenu = $(el.id + "_menu");
    
    animated = true;
    
    if (activeMenu && selectedMenu)
    {
        parallel = new Effect.Parallel(
        [
            toogleUp = new Effect.BlindUp(activeMenu, { sync: true, afterFinish: finishToggle }), 
            toogleDown = new Effect.BlindDown(selectedMenu, { sync: true, afterFinish: finishToggle }) 
        ],
        {}
        );
    }
    else if (selectedMenu)
        toogleDown = new Effect.BlindDown(selectedMenu, { afterFinish: finishToggle }); 
    if (activeMenu && !selectedMenu)
        toogleUp = new Effect.BlindUp(activeMenu, { afterFinish: finishToggle });
    
    activeItem = el;
}

function finishToggle()
{
    animated = false;
    
    if (activeItem.attributes["url"] != null)
        var tout = setTimeout("redirect('" + activeItem.attributes["url"].nodeValue + "')", 100);
}

function redirect(url)
{
    window.location.href = url;
}