var topMenu = new Array();
var menuOpened = false;
var menuOpenedKey = false;
// menuFrame: div element in dem die Menüpunkte erzeugt werden ( siehe createMenu() )
var menuFrame;
// menuOpenFrame: div element in dem das Menüpopup geöffnet wird
var menuOpenFrame;
var menuItemUrl = "";

function underlineShortcut( str, shortcut ) {
    if( shortcut == '' ) {
        return str;
    }
    pos = str.indexOf( shortcut );
    if( pos == -1 ) {
        return str;
    }
    return str.substr( 0, pos )+'<span class="underline">'+str.substr( pos, 1 )+'</span>'+str.substr( pos+1 );
}

function createTopMenu( ) {
    menuFrame.innerHTML = "";
    for( key in topMenu ) {
        if( key != '' )
            menuFrame.innerHTML += '<a class="topmenu" id="'+key+'" href="javascript:openMenu(document.getElementById(\''+key+'\'))">'+underlineShortcut(key, '')+'</a> &nbsp;';
    }
}

function openMenu( element ) {
    if( menuOpened && (element == menuOpenedKey) ) {
        showCloseMenu( element );
    } else {
        showOpenMenu( element );
    }
}

function showOpenMenu( element ) {
    var p = element;
    if( navigator.appName == "Microsoft Internet Explorer" ) { 
        // to get right x/y coordinates - workaround for IE
        var tempposition = p.style.position;
        p.style.position = "absolute"; 
    }
    var le = p.offsetLeft+p.offsetParent.offsetLeft;
    var to = p.offsetTop+p.offsetParent.offsetTop+p.offsetHeight;
    if( navigator.appName == "Microsoft Internet Explorer" ) { 
        p.style.position = tempposition;
    }
    
    menuOpenFrame.style.top = to+"px";
    menuOpenFrame.style.left = le+"px";

    var url = "";
    var newwindow = "";
    menuOpenFrame.innerHTML = "";
    for( key in topMenu[element.id] ) {
         if( topMenu[element.id][key]['url'] )
             url = topMenu[element.id][key]['url'];
         else
             url = menuItemUrl+'a='+topMenu[element.id][key]['action'];
         if( topMenu[element.id][key]['newwindow'] )
             newwindow = ' target="_blank"';
         else
             newwindow = "";
         menuOpenFrame.innerHTML += '<a class="menuitem" href="'+url+'"'+newwindow+'>'+topMenu[element.id][key]['display']+'</a>'; 
    }

    menuOpenFrame.style.visibility = "visible";
    
    menuOpened = true;
    menuOpenedKey = element;
    document.onmousedown = showMenuMousewatcher;
}

function showCloseMenu( element ) {
    menuOpenFrame.style.visibility = "hidden";
    menuOpened = false;
    menuOpenedKey = false;
    document.onmousedown = null;
}

function showMenuMousewatcher( e ) {
    var posx = 0;
    var posy = 0;
    if (!e) var e = window.event;
    if (e.pageX || e.pageY)
    {
      posx = e.pageX;
      posy = e.pageY;
    }
    else if (e.clientX || e.clientY)
    {
      posx = e.clientX + document.body.scrollLeft;
      posy = e.clientY + document.body.scrollTop;
    }
    var p = menuOpenFrame;
    var le = p.offsetLeft+p.offsetParent.offsetLeft;
    var to = p.offsetTop+p.offsetParent.offsetTop;
    var wi = p.offsetWidth;
    var he = p.offsetHeight;
    if( (posy > to) && (posy < (to+he)) &&
        (posx > le) && (posx < (le+wi)) ) {
    } else {
        showCloseMenu();
    }
    //alert( 'mousex:'+posx+"\nmousey:"+posy+"\nle:"+le+"\nto:"+to+"\nwi:"+wi+"\nhe:"+he);
}

/*
    b = "";
    for( key in element ) {
      b += key+"\n";
    }
    b = "";
    for( key in element ) {
      b += key+"=["+element[key]+"]<br />\n";
    }
    document.getElementById("myoverframe").innerHTML = b;
*/

var LoginWindowOpened = false;

function toggleLoginWindow() {
    if( LoginWindowOpened ) {
        LoginWindowOpened = false;
        document.getElementById("loginWin").style.visibility = "hidden";
        document.getElementById("loginWin").style.display = "none";
    } else {
        LoginWindowOpened = true;
        document.getElementById("loginWin").style.visibility = "visible";
        document.getElementById("loginWin").style.display = "block";
    }
}

var SearchWindowOpened = false;

function toggleSearchWindow() {
    if( SearchWindowOpened ) {
        SearchWindowOpened = false;
        document.getElementById("searchWin").style.visibility = "hidden";
        document.getElementById("searchWin").style.display = "none";
    } else {
        SearchWindowOpened = true;
        document.getElementById("searchWin").style.visibility = "visible";
        document.getElementById("searchWin").style.display = "block";
    }
}
