var cMenu = {
    
    def:                new Array(),
    posLeft:            0,
    posTop:             0,
    menuDiv:            null,
    menuEntrys:         '',
    timer:              null,
        
    
    open: function(def)
    {
        if(def == false)
            return false;

        cMenu.def = def;

        t = getScrollXY();

        cMenu.posLeft   = (mouseLeft - 10);
        cMenu.posTop    = (mouseTop - 10);
     
        // Wenn das Menu über den rechten Fensterrand hinausreicht
        var winLen = $('body').getWidth();
        if(winLen < cMenu.posLeft + 270)
             cMenu.posLeft = winLen - 270;
             
        cMenu.mainWindow();   
        cMenu.create();
    },
    
    
    create: function()
    {    
        for(var i=0; i!=cMenu.def.length; i++)
        {
            cMenu.addEntry(cMenu.def[i]);
        }        
        
        cMenu.menuDiv.innerHTML += cMenu.menuEntrys;
        cMenu.display();
    },
    
    
    display: function()
    {
        clearTimeout(cMenu.timer)
        cMenu.menuDiv.style.display = 'block';
    },

    
    hideNow: function()
    {
        cMenu.menuDiv.style.display = 'none';
    },
    
    hide: function()
    {
        cMenu.timer = window.setTimeout("cMenu.hideNow()",500);
    },
    

    addEntry: function(def)
    {
        if(def == 'line')
        {
            cMenu.menuEntrys += '<hr>'
            return;
        }
        if(def == false || def.length == 0)
            return false;
            
        if(!def['ICON'] || def['ICON'] == '')
            def['ICON'] = 'blank.gif';
        if(!def['ANZEIGE'] || def['ANZEIGE'] == '')
            def['ANZEIGE'] = '>leer<';
        if(!def['FUNCTION'] || def['FUNCTION'] == '')
            def['FUNCTION'] = 'return false';
        
        cMenu.menuEntrys += '<div class="cMenuEntry" ';
        cMenu.menuEntrys += 'onmouseover="hoverClass(this);" ';
        cMenu.menuEntrys += 'onmouseout="hoverClass(this);">';
        
        cMenu.menuEntrys += '<div class="cMenuEntryIcon" ';
        cMenu.menuEntrys += 'onclick="cMenu.hideNow(); '+def['FUNCTION']+' return false;"';
        cMenu.menuEntrys += '>';
        cMenu.menuEntrys += '<img src="'+imgDir+def['ICON']+'" />';
        cMenu.menuEntrys += '</div>';
        
        cMenu.menuEntrys += '<div class="cMenuEntryText" ';
        cMenu.menuEntrys += 'onclick="cMenu.hideNow(); '+def['FUNCTION']+' return false;"';
        cMenu.menuEntrys += '>';
        cMenu.menuEntrys += def['ANZEIGE'];
        cMenu.menuEntrys += '</div>';
        
        cMenu.menuEntrys += '</div>';
    },
        
    
    mainWindow: function()
    {
        if(cMenu.menuDiv != null)
        {
            cMenu.menuDiv.style.left    = cMenu.posLeft+'px';
            cMenu.menuDiv.style.top     = cMenu.posTop+'px';
            return cMenu.clearWindow();
        }
        
        cMenu.menuDiv               = document.createElement('div');
        cMenu.menuDiv.id            = 'cMenuWindow';
        cMenu.menuDiv.className     = 'cMenuWindow';
        cMenu.menuDiv.style.display = 'none';
        cMenu.menuDiv.style.left    = cMenu.posLeft+'px';
        cMenu.menuDiv.style.top     = cMenu.posTop+'px';
                
        document.getElementsByTagName('body')[0].appendChild(cMenu.menuDiv);
        cMenu.addEvent(cMenu.menuDiv, 'mouseout', function(){cMenu.hide()}, false)
        cMenu.addEvent(cMenu.menuDiv, 'mouseover', function(){clearTimeout(cMenu.timer)}, false)  
    },
    
    addEvent: function(obj, aktion, func, useCaption)
    {   
        if(!obj)
            return;

        if(obj.addEventListener)
        {
            obj.addEventListener(aktion, func, useCaption);
            return true;
        } 
        else if(obj.attachEvent)
        { 
            return obj.attachEvent("on"+aktion, func);
        }            
        else 
        {
            return false;
        }
    },
    
    clearWindow: function()
    {
        if(cMenu.menuDiv == null)
            return;
        
        cMenu.menuEntrys        = '';
        cMenu.menuDiv.innerHTML = '';
    }
}
