//===============================================================
//  Parameter
//===============================================================
PathToMenuIcons = "http://www.nanoscience.de/sfb668/images/";        // Pfad zu den Bildern der Menüpunkte
Initiation=true;
WaitingForReset=false;
Waiting_ID=0;
NavigationMenu = new Object;
NavigationMenu.Buttons = new Object;
NavigationMenu.Buttons.Standard = PathToMenuIcons+"menu_button_0.gif";
NavigationMenu.Buttons.RollOver = PathToMenuIcons+"menu_button_1.gif";
NavigationMenu.Buttons.Deactivated = PathToMenuIcons+"menu_button_00.gif";
NavigationMenu.Colors = new Object;
NavigationMenu.Colors.bgStandard = "#eeeeee"; //#99bbdd
NavigationMenu.Colors.bgRollOver = "#ffffff";
NavigationMenu.Colors.bgDeactivated = "#B9B9B9";
NavigationMenu.SelectedMenu = 0;
NavigationMenu.SelectedItem = 0;
NavigationMenu.ActiveMenu = NavigationMenu.SelectedMenu;
NavigationMenu.ActiveMenuItem = NavigationMenu.SelectedItem;
NavigationMenu.Waiting=false;
NavigationMenu.WaitingActiveMenu = NavigationMenu.SelectedMenu;
NavigationMenu.WaitingActiveMenuItem = NavigationMenu.SelectedItem;
NavigationMenu.MenuCount = 0;        // Zählt Anzahl der Menüeinträge (Hauptmenü + Untermenü)
NavigationMenu.MainMenuCount = 0;  // Zählt Anzahl der Hauptmenüpunkte
NavigationMenu.Menu = new Array;

var HomeURL="";
HomeURL="http://www.nanoscience.de/sfb668/";

URL_Host="http://www.sfb668.de/";
//URL_Host="http://www.nanoscience.de/sfb668/";
URL_Server="http://www.nanoscience.de/sfb668/";
// URL_Server="http://www.hansenanotec.de/";

url=window.location.href;

var Netscape47=false;
var Mozilla=false;
var Explorer=false;
var Opera=false;
var DOM_Browser=false;



// Hymne auf die Browser:
// ======================
if (window.opera) {
   Opera=true;    // Opera
}
if( parseInt(navigator.appVersion) >= 4){
        //  Netscape
        if(navigator.appName == "Netscape"){
                             // Mozilla
                            if(parseInt(navigator.appVersion) >= 5){
                                Mozilla=true;
                                DOM_Browser=true;
                             } else {
                             // Netscape47
                                Netscape47 = true;
                             }
        }
        // Internet Explorer
        if(navigator.appName == "Microsoft Internet Explorer") {
                             Explorer = true;
                             DOM_Browser=true;
        }
        // Opera als Opera
        if((Opera)&&(navigator.appName == "Opera")) {
                             DOM_Browser=true;
        }
}




//===============================================================
//  Aktives Menü setzen (Hauptmenü, Untermenü)
//===============================================================
function SetSelectedMenu(Menu,Item) {
        NavigationMenu.SelectedMenu = Menu;
        NavigationMenu.SelectedItem = Item;
        NavigationMenu.ActiveMenu = NavigationMenu.SelectedMenu;
        NavigationMenu.ActiveMenuItem = NavigationMenu.SelectedItem;
}

//===============================================================
//  Aktives Menü aus der URL der Seite bestimmen
//===============================================================
function GetSelectedMenu() {
        url=String(window.location.href);

        // hier index.shtml einfügen, wenn index auf shtml endet!
        if (url.lastIndexOf("/")==(url.length-1)) {url=url+"index.shtml";}
        if (url.indexOf("?")>=0) {url=url.slice(0,url.indexOf("?"));}
        if (url.indexOf("#")>=0) {url=url.slice(0,url.indexOf("#"));}
        //alert(url);
        url=url.split(URL_Server)[1];


        FoundMenu=false;
        for (i=1;i<=NavigationMenu.MenuCount;i++) {
                if (NavigationMenu.Menu[i].url==url) {
                        NavigationMenu.SelectedMenu = NavigationMenu.Menu[i].Hauptmenu;
                        NavigationMenu.SelectedItem = NavigationMenu.Menu[i].Untermenupunkt;
                        FoundMenu=true;
                }
        }
        if ((!FoundMenu)&&(url.lastIndexOf("/")>=0)) {
                url=url.substring(0,url.lastIndexOf("/"));
                for (i=1;i<=NavigationMenu.MenuCount;i++) {
                    MenuURL=NavigationMenu.Menu[i].url;
                    MenuURL=MenuURL.substring(0,MenuURL.lastIndexOf("/"));
                    if (MenuURL==url) {
                           FoundMenu=true;
                           NavigationMenu.SelectedMenu = NavigationMenu.Menu[i].Hauptmenu;
                           NavigationMenu.SelectedItem = NavigationMenu.Menu[i].Untermenupunkt;
                    }
                }
        }
        if (!FoundMenu) {
                NavigationMenu.SelectedMenu = 0;
                NavigationMenu.SelectedItem = 0;

        }
}

//===============================================================
//   Hauptmenü aus Menü-Objekten generieren
//===============================================================
function GenerateMainMenu() {
        HTML_gesamt = '<table cellspacing="0" cellpadding="0" padding="0" border="0"><tr>';
        for (i=1;i<=NavigationMenu.MainMenuCount;i++) {
                LinkUrl=URL_Host+GetMenu(i,0).url;;
                Beschriftung=GetMenu(i,0).Beschriftung;
                if (i == NavigationMenu.SelectedMenu) {
                        BeschriftungLink= "<a href=\"" +LinkUrl+ "\" class=\"aktiv\" onClick=\"ClickMenu()\" onMouseOver=\"DrawMenu("+i+",-1);window.status='"+Beschriftung+"'; return true;\" onMouseOut=\"InitMenu(0)\" title=\""+Beschriftung+"\">";
                        LinkEnde="</a>";
                        BgColor=NavigationMenu.Colors.bgRollOver;
                } else {
                        BeschriftungLink= "<a href=\"" +LinkUrl+ "\" class=\"inaktiv\" onClick=\"ClickMenu()\" onMouseOver=\"DrawMenu("+i+",-1);window.status='"+Beschriftung+"'; return true;\" onMouseOut=\"InitMenu(0)\" title=\""+Beschriftung+"\">";
                        LinkEnde="</a>";
                        BgColor=NavigationMenu.Colors.bgStandard;
                }
                if (!GetMenu(i,0).Activated) {
                        BeschriftungLink= '';
                        LinkEnde='';
                        BgColor=NavigationMenu.Colors.bgDeactivated;
                }
                if (Netscape47) {
                        HTML_Source = '<td class="menu" valign="middle" align="center" height="23">';
                        HTML_Source += "<ilayer name='ibutton"+i+"'>";
                        HTML_Source += "<layer name='button"+i+"' class=\"menu\" background=\""+PathToMenuIcons+"line_menu.gif\" onMouseOver=\"DrawMenu("+i+",-1);\" onMouseOut=\"InitMenu(0)\" width=\"100%\" height=\"21\">";
                        if (GetMenu(i,0).Beschriftung.indexOf('<br>')<0) {
                                HTML_Source += '<span class="mainmenuNN">'+BeschriftungLink+"&nbsp;&nbsp;&nbsp;"+GetMenu(i,0).Beschriftung+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+LinkEnde+'</span>';
                        } else {
                                HTML_Source += '<span class="mainmenu">'+BeschriftungLink+"&nbsp;&nbsp;&nbsp;"+GetMenu(i,0).Beschriftung+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+LinkEnde+'</span>';
                        }
                        HTML_Source += "</layer></ilayer>";
                        HTML_Source += "</td>";
                } else {
                        HTML_Source = "<td id='button"+i+"' class=\"menu\" bgcolor=\""+BgColor+"\" background=\""+PathToMenuIcons+"line_menu.gif\" valign=\"middle\" align=\"center\" height=\"20\" onMouseOver=\"DrawMenu("+i+",-1)\" onMouseOut=\"InitMenu(0)\">"+BeschriftungLink+"&nbsp;&nbsp;&nbsp;";
                        HTML_Source += GetMenu(i,0).Beschriftung;
                        HTML_Source += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+LinkEnde+"</td>";
                }
                HTML_gesamt += HTML_Source;
        }
        HTML_gesamt += "</tr></table>";
        if (Netscape47) {
                eval('document["MainMenu"].document.open();');
                eval('document["MainMenu"].document.write(HTML_gesamt);');
                eval('document["MainMenu"].document.close();');
                eval('document["MainMenu"].top = 167');
                eval('document["MainMenu"].left = 86');
        }
        if (DOM_Browser) {
                document.getElementById("MainMenu").innerHTML=HTML_gesamt;
                if(Mozilla){
                        document.getElementById("MainMenu").style.top=170;
                } else {
                        document.getElementById("MainMenu").style.pixelTop=170;
                }
                document.getElementById("MainMenu").style.left=86;
        }
}

//===============================================================
//  Aufklappmenü zum Hauptmenü aus Menü-Objekten generieren
//===============================================================
function GenerateMenuLayer(Hauptmenu) {
        HTML_Source = "<layer onMouseOver=\"DrawMenu("+Hauptmenu+",-1);\" onMouseOut=\"InitMenu(0)\">";
        HTML_Source += '<table cellspacing="0" cellpadding="0" padding="0" border="0" bgcolor="#ffffff">';
        for (UMenu=1; UMenu<=GetMenu(Hauptmenu,0).ItemCount; UMenu++) {
                LinkUrl=URL_Host+GetMenu(Hauptmenu,UMenu).url;;
                Beschriftung=GetMenu(Hauptmenu,0).Beschriftung+" > "+GetMenu(Hauptmenu,UMenu).Beschriftung;
                HTML_Source += '<tr><td valign="middle">';
                if (UMenu == 1) {HTML_Source += '<img src="'+PathToMenuIcons+'line_top.gif" align="left" border="0" align="middle">';}
                if ((1 < UMenu) && (UMenu <GetMenu(Hauptmenu,0).ItemCount)) {HTML_Source += '<img src="'+PathToMenuIcons+'line_middle.gif" align="left" border="0">';}
                if (UMenu == GetMenu(Hauptmenu,0).ItemCount) {HTML_Source += '<img src="'+PathToMenuIcons+'line_bottom.gif" align="left" border="0">';}
                HTML_Source += '</td><td valign="middle">';
                if ((Hauptmenu == NavigationMenu.SelectedMenu) && (UMenu == NavigationMenu.SelectedItem)) {
                        HTML_Source += "<a href=\"" +LinkUrl+ "\" class=\"aktiv\" onClick=\"ClickMenu()\" onMouseOver=\"DrawMenu("+Hauptmenu+","+UMenu+");window.status='"+Beschriftung+"'; return true;\" onMouseOut=\"\" title=\""+Beschriftung+"\">";
                } else {
                        HTML_Source += "<a href=\"" +LinkUrl+ "\" class=\"inaktiv\" onClick=\"ClickMenu()\" onMouseOver=\"DrawMenu("+Hauptmenu+","+UMenu+");window.status='"+Beschriftung+"'; return true;\" onMouseOut=\"\" title=\""+Beschriftung+"\">";

                }
                HTML_Source += GetMenu(Hauptmenu,UMenu).Beschriftung+"&nbsp;&nbsp;</a></td></tr>";
        }
        HTML_Source += '</table>';
        HTML_Source += '</layer>';
        if (Netscape47) {
                eval('document["menu' + Hauptmenu + '"].document.open();');
                eval('document["menu' + Hauptmenu + '"].document.write(HTML_Source);');
                eval('document["menu' + Hauptmenu + '"].document.close();');
        } else {
                document.getElementById("menu" + Hauptmenu).innerHTML=HTML_Source;
        }
}

//===============================================================
//  Ausgewähltes Hauptmenü zeichnen
//===============================================================
function DrawMainMenu(Nr) {
        for (i=1;i<=NavigationMenu.MainMenuCount;i++) {
          if(GetMenu(i,0).Activated) {
                if (i==Nr) {
                        BgColor=NavigationMenu.Colors.bgRollOver;
                } else {
                        BgColor=NavigationMenu.Colors.bgStandard;
                }
                if (DOM_Browser) {
                        document.getElementById("button"+i).style.backgroundColor=BgColor;
                } else {
                        if (Netscape47) {
                                document["MainMenu"].document["ibutton"+i].document["button"+i].bgColor=BgColor;
                        }
                }
          }
        }
}

//===============================================================
//  Menü initialisieren
//===============================================================
function InitMenu(ID) {
         if (ID==0) {
                 Waiting_ID++;
                 WaitingForReset=true;
                 wid=Waiting_ID;
                 window.setTimeout("InitMenu("+wid+")",1000);
         } else {
                if (ID==Waiting_ID) {
                                 NavigationMenu.WaitingActiveMenu = NavigationMenu.ActiveMenu;
                                 NavigationMenu.WaitingActiveMenuItem = NavigationMenu.ActiveMenuItem;
                                 DrawMenu(NavigationMenu.SelectedMenu,0);
                }
         }
}

//===============================================================
//  Hauptmenüpunkt markieren und Untermenü zeigen
//===============================================================
function DrawMenu(Hauptmenu,Untermenu) {
        WaitingForReset=false;
        Waiting_ID=0;
        // Wenn SelectedMenu && SelectedItem, dann ein wenig warten
        if ((Hauptmenu==NavigationMenu.SelectedMenu) && (Untermenu==NavigationMenu.SelectedItem)) {
                if (!((NavigationMenu.ActiveMenu==NavigationMenu.WaitingActiveMenu) && (NavigationMenu.ActiveMenuItem==NavigationMenu.WaitingActiveMenuItem))) {
                        //return;
                }
        }
        NavigationMenu.WaitingActiveMenu = 0;
        NavigationMenu.WaitingActiveMenuItem = 0;

        // Hauptmenüpunkte zeichnen
        DrawMainMenu(Hauptmenu);
        // Untermenüpunkte zeigen
        if (GetMenu(Hauptmenu,0).Activated) {
           if (Untermenu==0) {
              ShowMenu(0);
           } else {
              ShowMenu(Hauptmenu);
           }
        } else {
                ShowMenu(0);
        }
        if ((Untermenu==0) && (Hauptmenu==NavigationMenu.SelectedMenu)) {
                        window.status="";
        }
        if (Untermenu==-1) {
                        Untermenu = NavigationMenu.ActiveMenuItem;
        }
        NavigationMenu.ActiveMenu = Hauptmenu;
        NavigationMenu.ActiveMenuItem = Untermenu;
}

//===============================================================
//  Untermenü zum Hauptmenü zeigen
//===============================================================
var menu_aktiv = 0;
function ShowMenu(Rubrik) {
        if(Rubrik==0) {
                alleaus();
                return;
        }
        y_offset=menu_Y[Rubrik];
        x_offset=menu_X[Rubrik];
        if( menu_aktiv != Rubrik) {
                if (menu_aktiv) menu_zu("menu"+menu_aktiv);
                if (Netscape47) {
                        eval('document["' + 'menu' + Rubrik + '"].top = y_offset-1');
                        eval('document["' + 'menu' + Rubrik + '"].left = 3 + x_offset');
                } else {
                        document.getElementById('menu' + Rubrik).style.top=y_offset-1;
                        document.getElementById('menu' + Rubrik).style.left=0 + x_offset;
                }
        }
        menu_auf("menu"+Rubrik);
        menu_aktiv = Rubrik;
}
        function menu_auf(menu_name){
                if (Netscape47) {
                        coll = "document";
                        style = "";
                        eval(coll + '["' + menu_name + '"]' + style + '.visibility = "visible"');
                } else {
                        document.getElementById(menu_name).style.visibility = "visible";
                }
        }
        function menu_zu(menu_name){
                if (Netscape47) {
                        coll = "document";
                        style = "";
                        eval(coll + '["' + menu_name + '"]' + style + '.visibility = "hidden"');
                } else {
                        document.getElementById(menu_name).style.visibility = "hidden";
                }
        }
        function alleaus(){
                if (menu_aktiv){
                        menu_zu("menu"+menu_aktiv);
                        menu_aktiv = 0;
                        }
        }


//===============================================================
//  Menülayer schreiben
//===============================================================
function WriteMenuLayers() {

        //document.write('<DIV id="MainMenu" style="position:absolute; visibility:show; border-style: none; border-width: 0px; padding: 0px; z-index:1;" ></DIV>');
        //document.write('<DIV id="Buttons" style="position:absolute; visibility:hidden; border-style: none; border-width: 0px; padding: 0px; z-index:0;" ></DIV>');
        for (i=1;i<=NavigationMenu.MainMenuCount;i++) {
                HTML_Source='<DIV id="menu'+i+'" style="position:absolute; visibility:hidden; border-style: solid; border-top-style:none; border-width: 1px; border-color:#dddddd; padding: 0px; z-index:0;" onMouseOver="DrawMenu('+i+',-1)" onMouseOut="InitMenu(0)"></DIV>';
                document.write(HTML_Source);
        }
}

function dummy() {

}

//===============================================================
//  Initialisierung des Menüs
//===============================================================
function init() {
        //DeactivateMenu(4);
        GetSelectedMenu();
        GenerateMainMenu();
        for (HMenu=1; HMenu<=NavigationMenu.MainMenuCount; HMenu++) {
                GenerateMenuLayer(HMenu);
        }
        DrawMenu(NavigationMenu.SelectedMenu,0);
}

//===============================================================
//  Neuer Hauptmenü-Eintrag
//===============================================================
function AddMainMenu (url,Beschriftung) {
        NavigationMenu.MainMenuCount++;
        NavigationMenu.MenuCount++;
        NavigationMenu.Menu[NavigationMenu.MenuCount] = new MenuItem(NavigationMenu.MainMenuCount,0,url,Beschriftung);
}

//===============================================================
//  Neuer Untermenü-Eintrag
//===============================================================
function AddMenuItem(url,Beschriftung) {
        NavigationMenu.MenuCount++;
        GetMenu(NavigationMenu.MainMenuCount,0).ItemCount++;
        Untermenupunkt = GetMenu(NavigationMenu.MainMenuCount,0).ItemCount;
        NavigationMenu.Menu[NavigationMenu.MenuCount] = new MenuItem(NavigationMenu.MainMenuCount,Untermenupunkt,url,Beschriftung);
}

//===============================================================
//  Neuer Menü-Eintrag: Objekt generieren
//===============================================================
function MenuItem(Hauptmenu,Untermenupunkt,url,Beschriftung){
        this.Hauptmenu=Hauptmenu;
        this.Untermenupunkt=Untermenupunkt;
        this.url=url;
        this.Beschriftung=Beschriftung;
        this.ItemCount=0;
        this.Activated = true;
        return this;
}

//===============================================================
//  Menü-Objekt aus Haupt- und Untermenüindex ermitteln
//===============================================================
function GetMenu(Hauptmenu,Untermenu) {
        var Index = 0;
        do {
                Index++;
        } while ((Index <= NavigationMenu.MenuCount) && ((NavigationMenu.Menu[Index].Hauptmenu != Hauptmenu) || (NavigationMenu.Menu[Index].Untermenupunkt != Untermenu)));
        if (Index<=NavigationMenu.MenuCount) {return NavigationMenu.Menu[Index];} else {return false;}
}

//===============================================================
//  Neue Seite nach Klick auf Menüpunkt laden
//===============================================================
function ClickMenu() {
        //alert(NavigationMenu.ActiveMenuItem);
        //alert(URL_Host+GetMenu(NavigationMenu.ActiveMenu,NavigationMenu.ActiveMenuItem).url);
        if (GetMenu(NavigationMenu.ActiveMenu,NavigationMenu.ActiveMenuItem)) {
                parent.location.href=URL_Host+GetMenu(NavigationMenu.ActiveMenu,NavigationMenu.ActiveMenuItem).url;
        }
}

//===============================================================
//  Einzelnen Hauptmenüpunkt deaktivieren
//===============================================================
function DeactivateMenu(MenuNr) {
        GetMenu(MenuNr,0).Activated = false;
}