function openMenu(id,level)
{

    var closedElements=new Array();
    var uid=id.substring(2,id.length);
    var backgroundLevelID='dropdown-background-';
    liElement=document.getElementById('li'+uid);
    hasSelected=Element.hasClassName(liElement, 'selected-navi-level0');

    if (level) {
        if (Element.hasClassName($('a'+uid), 'strong')) {
            Element.removeClassName($('a'+uid), 'strong');
        } else {
            Element.addClassName($('a'+uid), 'strong');
        }
    }

    var elements=$('ul-dropdown-root').getElementsByClassName('selected-navi-level0');
    if (!level)
    {
        openElements=$('ul-dropdown-root').getElementsByClassName('open');
        selectedList=new Array();
        for (x = 0; x < openElements.length; x++)
        {
            selectedList.push(openElements[x]);
        }
        for (i = 0; i < selectedList.length; i++)
        {
            element=selectedList[i];
            new Effect.BlindUp(element.id, { duration: 0.4});
            Element.removeClassName(element.id, 'open')
            closedElements.push(element);
            Element.removeClassName(element.id, 'drop-background');
         }
    }
    selectedList=new Array();
    for (i = 0; i < elements.length; i++)
    {
        selectedList.push(elements[i]);
    }

    if (level==0)
    {
        for (i = 0; i < selectedList.length; i++)
        {
            Element.addClassName(selectedList[i], 'navi-level0');
            Element.removeClassName(selectedList[i], 'selected-navi-level0');
        }
        Element.removeClassName(liElement, 'navi-level0');
        if (hasSelected)
        {
            Element.removeClassName(liElement, 'selected-navi-level0')
            Element.addClassName(liElement, 'navi-level0');
        }
        else
        {
            Element.addClassName(liElement, 'selected-navi-level0');
        }
    }
    elements=$('ul-dropdown-root').getElementsByClassName('current');
    for (i = 0; i < elements.length; i++)
    {
        Element.addClassName(elements[i], 'selected-navi-level0');
    }
    element=document.getElementById(id);
    if (Element.hasClassName(element, 'open'))
    {
        elements=$('ul-dropdown-root').getElementsByClassName('dropdown-background');
        for (i = 0; i < elements.length; i++)
        {
            element=elements[i];
            index=element.className.indexOf(backgroundLevelID)+backgroundLevelID.length;
            ulLevel=parseInt(element.className.substring(index,index+1));

            if (level+1<=ulLevel)
            {
                new Effect.BlindUp(element.id, { duration: 0.7});
                Element.removeClassName(element, 'open')
            }
        }
    }
    else
    {
        if (!closedElements.length) {
            new Effect.BlindDown(id, { duration: 0.7});
            Element.addClassName(element, 'open');
            Element.addClassName(element, 'drop-background');
        }
        if (closedElements.length && closedElements[0].id!=id) {
            new Effect.BlindDown(id, { duration: 0.7});
            Element.addClassName(element, 'open');
            Element.addClassName(element, 'drop-background');
        }
        divs=$(id).getElementsByClassName(id+'-image');
        for (i = 0; i < divs.length; i++)
        {
            div=divs[i];
            Element.setStyle(div,{display:'block'});
        }
        var rootElement=element;
        while (rootElement && !Element.hasClassName(rootElement, 'dropdown-background-0') && rootElement.tagName!='BODY')
        {
            rootElement=rootElement.parentNode;
        }

        if(Prototype.Browser.IE)
        {
            var l = Position.positionedOffset(element)[0]+(level*210);
        }
        else
        {
             l =Position.positionedOffset(liElement)[0]+(level*210);
        }

        var t = (Position.positionedOffset(rootElement)[1]+26);
        if (!Element.hasClassName(element, 'positioned'))
        {
            if (level==0)
            {
                Element.setStyle(element,
                {
                    position:'absolute',
                    left: l+'px',
                    top: t+'px'
                });
            }
            else
            {
                Element.setStyle(element,
                {
                    position:'absolute',
                    left: l+'px',
                    top:(-28*(level-1))+'px'
                });
            }
        }
        if (!Element.hasClassName(element, 'positioned'))
        {
            Element.addClassName(element, 'positioned');
        }
        //naechste Zeile nicht loeschen!!! Verhindert das das top element beim klicken im ie verschwindet
        // fragt mich aber nicht wieso
        Position.positionedOffset(element.parentNode);
    }
}

function checkPosition(event) {
    //rootElement=event.target;
    hideAll=true;
    if(Prototype.Browser.IE) {
    var rootElement=window.event.srcElement;
    } else {
    var rootElement=event.target;
    }
    while (rootElement && rootElement.tagName!='BODY') {
        if (Element.hasClassName(rootElement, 'dropdown-background-0')) {
            hideAll=false;
        }
        rootElement=rootElement.parentNode;
    }
    if (hideAll) {
        elements=$('ul-dropdown-root').getElementsByClassName('dropdown-background');
        for (i = 0; i < elements.length; i++)
        {
            element=elements[i];
            new Effect.BlindUp(element.id, { duration: 0.4});
        }
        elements=$('ul-dropdown-root').getElementsByClassName('open');
        selectedList=new Array();
        for (i = 0; i < elements.length; i++){
            selectedList.push(elements[i]);
        }

        for (i = 0; i < selectedList.length; i++){
            Element.removeClassName(selectedList[0], 'open');
        }
        var elements=$('ul-dropdown-root').getElementsByClassName('selected-navi-level0');

        selectedList=new Array();
        for (i = 0; i < elements.length; i++){
            selectedList.push(elements[i]);
        }
        for (i = 0; i < selectedList.length; i++){
            Element.addClassName(selectedList[i], 'navi-level0');
            Element.removeClassName(selectedList[i], 'selected-navi-level0');

        }
        elements=$('ul-dropdown-root').getElementsByClassName('current');
        for (i = 0; i < elements.length; i++){
            Element.addClassName(elements[i], 'selected-navi-level0');
        }
    }
    var elements=$('ul-dropdown-root').getElementsByClassName('strong');
    for (i = 0; i < elements.length; i++)
    {
        Element.removeClassName(elements[i], 'strong');
    }
}

if(Prototype.Browser.IE)
{
    document.onmousedown=checkPosition;
}
else
{
    window.captureEvents(Event.MOUSEDOWN);
    window.onmousedown=checkPosition;
}