/*****************************************************************************/
/*** JavaScript - CSS-Menu-Library				  	   ***/
/***-----------------------------------------------------------------------***/
/*** Bauer Softwaredesign und Entwicklung / www.bauer-softwaredesign.de    ***/
/*****************************************************************************/

var currSubMenu = 0;	// dieses SubMenu muss per default angezeigt werden
var currSubSubMenu = 0;	// dieses SubSubMenu muss per default angezeigt werden

var colorMark = '#CC0000';

var timerIDSub = -1;
var timerIDSubSub = -1;

var timeout = 100;

var menuLevel1;
var menuLevel2;
var menuLevel3;
var menuLevel4;

var m1,m2,m3,m4;
var c1, c2, c3, c4;

function markMenuPath(level1, level2, level3)
{
    if(level1 == -1) return;
    
    /* Submenu ausblenden */
    displayBar = 'none';
    for(i=0; i<menuLevel1.length; i++) {
	subMenuName = 'menu' + i + '0';
	objSubMenu = document.getElementById(subMenuName);
	if(objSubMenu != null)
	{
	    if(level1 != i) {
		if(level1 != -1) {
		    objSubMenu.style.top = '-999em';
		    //if((el = document.getElementById("menubackgr"))) el.style.display = 'none';
		}
	    }
	    else
	    {
		objSubMenu.style.top = '90px';
		//if((el = document.getElementById("menubackgr"))) el.style.display = 'block';
		displayBar = 'block';
	    }
	}
    }
    
    /* Bar einfaerben */
//    if((el = document.getElementById("menubackgr"))) el.style.display = displayBar;
    

    /* Markierungen setzen */    
    for(i=0; i<menuLevel1.length; i++) {
	if(i == level1) {
	    m1 = i;
	    menuLevel1[i].style.color = '#686c76';
	}
	else {
	    m1 = -1;
	    menuLevel1[i].style.color = '#909090';
	}
    }
    //if(level1 == -1) menuLevel1[currSubMenu].style.color = '#a58c46';

    for(i=0; i<menuLevel2.length; i++) {
	for(j=0; j<menuLevel2[i].length; j++) {
	    if(j == level2) {
		m2 = j;
		menuLevel2[i][j].style.color = '#686c76';
	    }
	    else {
		m2 = -1;
		menuLevel2[i][j].style.color = '#a0a0a0';
	    }
	}
    }
}

function SetupMenu()
{
    if(typeof(window.sfHover) == "function") sfHover();

    // Scroller
    if(typeof(window.Init) == "function") Init();
    
    // Menu-Objekte holen
    menuLevel1 = new Array();
    menuLevel2 = new Array();
    menuLevel3 = new Array();
    menuLevel4 = new Array();
    
    nr=0;
    while((el = document.getElementById('menu'+nr))) {
	menuLevel1[nr] = el;

	// SubMenus
	menuLevel2[nr] = new Array();
	menuLevel3[nr] = new Array();
	menuLevel4[nr] = new Array();
	
	subnr = 0;
	while((el = document.getElementById('submenu'+nr+subnr))) {
	    menuLevel2[nr][subnr] = el;

	    // SubSubMenus
	    menuLevel3[nr][subnr] = new Array();
	    menuLevel4[nr][subnr] = new Array();
	    subsubnr = 0;
	    
	    while((el = document.getElementById('s2menu_'+nr+'_'+subnr+'_'+subsubnr))) {
	    
		menuLevel3[nr][subnr][subsubnr] = el;

		// SubSubSubMenus
		menuLevel4[nr][subnr][subsubnr] = new Array();
		subsubsubnr = 0;
		while((el = document.getElementById('s3menu_'+nr+'_'+subnr+'_'+subsubnr+'_'+subsubsubnr))) {
		    menuLevel4[nr][subnr][subsubnr][subsubsubnr] = el;
		    subsubsubnr++;
		}
		
		
		subsubnr++;
	    }

	    subnr++;
	}
	nr++;
    }
}

function clearPreselection()
{
    if((el = document.getElementById('menu_'+currSubMenu+'_0')))
    {
	//el.style.visibility = '';
	el.style.top = '';
    }
}

function setPreselection()
{
    //timerIDSub = setTimeout('setSel()', timeout);
    setSel();
}

function setSel()
{
    agent = navigator.userAgent.toLowerCase();
    major = parseInt(navigator.appVersion);
    minor = parseFloat(navigator.appVersion);

    if(agent.indexOf("safari") != -1)
    {
	if(agent.indexOf("safari/4") != -1) Value = '91px';	// Safari 2
	else Value = '90px';					// Safari 3
    }
    else if(agent.indexOf("konqueror") != -1)
    {
	Value = '91px';
    }
    else Value = 'auto';					// andere Browser
    
    if((el = document.getElementById('menu'+currSubMenu+'0'))) el.style.top = Value;
}

function DisplaySubMenu(nr)
{
    clearTimeout(timerIDSub);
    timerIDSub = -1;
    
    // Wenn SubSubTimer noch aktiv, dann einfach nochmal den eigenen Timer setzen.
    // SubSubTimer *muss* abgearbeitet sein!
    if(timerIDSubSub != -1) {
	setTimeout('DisplaySubMenu('+nr+')', timeout);
	return;
    }


    if((el = document.getElementById('menu'+nr)))
    {
	// linke Koordinate des Menus
	if(isIE()) left = document.getElementById('menu'+nr).offsetParent.offsetLeft;
	else left = document.getElementById('menu'+nr).offsetLeft;
	left -= 10;
	left += document.getElementById('menu'+nr).offsetWidth / 2;
    
	// Breite aller SubMenus ermitteln
	width = document.getElementById('SubMenu'+nr).offsetWidth;
	left -= (width / 2);
	if(left < 0) left = 0;

	fullWidth = document.getElementById('Menu').offsetWidth;
	if(left+width > fullWidth) left = fullWidth-width;
    }

    // Ausblenden und sofort wieder einblenden
    HideAllSubMenus();

    if((el = document.getElementById('SubMenu'+nr))) {
        el.style.visibility = 'visible';
	el.style.color = colorMark;
    	el.style.left = left+'px';
    }

    
    // Markierung setzen
    i = 0;
    do {
        if((el = document.getElementById('menu'+i))) {
    	if(i == nr) el.style.color = '#cc0000';
    	else el.style.color = '';
        }
        i++;
    } while(el);    
}


function DisplaySubSubMenu(parent, nr)
{
    clearTimeout(timerIDSubSub);
    timerIDSubSub = -1;
    
    HideAllSubSubMenus();
    HideAllSubMenus();

    document.getElementById('SubMenu'+parent).style.visibility = 'visible';
    
    if(isIE()) left = document.getElementById('menu'+parent+nr).offsetParent.offsetLeft;
    else left = document.getElementById('menu'+parent+nr).offsetLeft;
    left -= 4;
    left += document.getElementById('SubMenu'+parent).offsetLeft;
    
    if((el = document.getElementById('SubSubMenu'+parent+nr))) {
	el.style.visibility = 'visible';
	el.style.left = left+'px';
    }

    // Alle Parents de-markieren, eigenen aber markieren
    i=0;
    do {
	el = document.getElementById('menu'+i);
	if(el) {
	    if(i == parent) el.style.color = '#cc0000';
	    else el.style.color = '';
	    i++;
	}
    } while(el);
    
    i=0;
    do  {
	el = document.getElementById('menu'+parent+i);
	if(el) {
	    if(i == nr) el.style.color = '#cc0000';
	    else el.style.color = '';
	}
	i++;
    }
    while(el);
}


function HideAllSubMenus()
{
    i = 0;
    do {
	if((el = document.getElementById('SubMenu'+i))) {
	    el.style.visibility = 'hidden';
	    el.style.color = '';
	}
	i++;
    } while(el);
    
    // Markierung entfernen
    i = 0;
    do {
	if((el = document.getElementById('menu0'+i))) el.style.color = '';
	i++;
    } while(el);
}

function HideAllSubSubMenus()
{
/*
    i=j=0;
    do {
	do {
	    if((el = document.getElementById('SubSubMenu'+j+i))) {
		el.style.visibility = 'hidden';
		el.style.color = '';
	    }
	    i++;
	} while(el);

	i=0;
	j++;
	el = document.getElementById('SubSubMenu'+j+i);
    } while(el);
*/

    for(j=0; j<10; j++) {
	for(i=0; i<10; i++) {
	    if((el = document.getElementById('SubSubMenu'+j+i))) {
		el.style.visibility = 'hidden';
		el.style.color = '';
	    }
	}
    }	    
}

function HideSubSubMenu(parent, nr)
{
    el = document.getElementById('SubSubMenu'+parent+nr);
    if(el) {
	el.style.visibility = 'hidden';
	el.style.color = '';
    }
    
    // SubMenu ausblenden und Farben zuruecksetzen
    document.getElementById('SubMenu'+parent).style.visibility = 'hidden';
    document.getElementById('menu'+parent+nr).style.color = '';
    document.getElementById('menu'+parent).style.color= '';
    RestoreDefault();
    
    timerIDSubSub = -1;    
}

function RestoreDefault()
{
    HideAllSubMenus();
    HideAllSubSubMenus();

    i=0;
    do {
	if((el = document.getElementById('menu'+i))) el.style.color = '';
	i++;
    } while(el);
    
    if((el = document.getElementById('SubMenu'+currSubMenu))) el.style.visibility = 'visible';
    if((el = document.getElementById('menu'+currSubMenu+currSubSubMenu))) el.style.color = colorMark;
    if((el = document.getElementById('menu'+currSubMenu))) el.style.color= colorMark;
}

function HideSubMenu(nr)
{
    RestoreDefault();
    timerIDSub = -1;
}

function TimedHideSubSubMenu(parent, nr)
{
    timerIDSubSub = setTimeout('HideSubSubMenu('+parent+','+nr+')', timeout);
}

function TimedHideSubMenu(nr)
{
    timerIDSub = setTimeout('HideSubMenu('+nr+')', timeout);
}

