/* .js by Oliver Kaeferstein
   -------------------------
*/
var g_menuTime = 2000; // menue display zeit in millisekunden

// globale variablen
var g_activeMenu = undefined;
var g_activeLI = undefined;
var g_timerID = 0;


//! sichtbarkeits steuerung fuer die "blauen" navigations block elemente (maus)
function checkMenu( obj, mode ) {

	switch( mode ) {
		case 'in':
			removeMenu();
			g_activeLI = obj.parentNode;  // <li..><a href=. onmouse...> -> <a> ist obj
			
			// die zugehoerigen div's zu den menueeintraegen mussen "_div" hinten angehaengt haben
			displaySubNavi( obj, obj.id+"_div" );
			
			// den "handgesetzten" aktiven LI unberuehrt lassen
			if( g_activeLI.className != "active" ) 
				g_activeLI.className = "active";
			else
				g_activeLI = undefined;	
			break;

		case 'out':
			window.clearTimeout(g_timerID);
			g_timerID = window.setTimeout( "removeMenu()", g_menuTime );
	}
} 

//! sichtbarkeitssteuerung innerhalb der "blauen" navigation (maus)
function checkSubMenu( obj, mode ) {
	
	switch( mode ) {
		case 'in':
			window.clearTimeout(g_timerID);
			g_timerID = 0;
			break;
		case 'out':
			window.clearTimeout(g_timerID);
			g_timerID = window.setTimeout( "removeMenu()", g_menuTime );
	}
} 

//! "blaues" menue wieder entfernen und die aktiv balken updaten
function removeMenu() {
	if( g_activeLI )
		g_activeLI.className = "passive";
	if( g_activeMenu )
		g_activeMenu.style.visibility = "hidden";
	g_activeMenu = undefined;
	g_activeLI = undefined;
	window.clearTimeout(g_timerID);
	g_timerID = 0;
}



//
function positionSubSubNavi() {
	
	if( !document.getElementById )
		return;
	
//	alert( "opera: " + ((window.opera) ? "true": "false") + ",\nv: " + window.navigator.userAgent );
	
	who = document.getElementById( "pos_origin" );
	if( who == undefined )
		return;
	// find "origin" tag and its A child
	if( who.hasChildNodes() ) {
		
		var tag = who.firstChild;
		if( !who.firstChild.id )
			tag = who.firstChild.nextSibling; // NS first child is found by sibling
		if( tag.id ) {
			displaySubNavi( tag, tag.id+"_div" );
			g_timerID = window.setTimeout( "removeMenu()", g_menuTime );
		}
	}
}


//! finde position des übergebenen objects und positioniere submenü entsprechend
function displaySubNavi( origin, hiddenlayer ) {
	
	var x = findPosX(origin);
	var y = findPosY(origin);
	
	var what = document.getElementById( hiddenlayer );
	if( what == undefined )
		return;
	
	if( g_activeMenu != undefined )	{
		if( g_activeMenu.id == what.id )
			return;
		g_activeMenu.style.visibility = "hidden";
	}
	
	what.style.position = "absolute";
	what.style.left = x + 148 + 'px';
	what.style.top = y - 12 + 'px';
	what.style.paddingTop = '0px';
	what.style.paddingLeft = '0px';
	what.style.visibility = "visible";
	what.style.display = "block";

	g_activeMenu = what;
}


// setzt den hintergund des contentbereichs auf ein bottom aligned bild
function setContentBG( picpath ) {

	if( !document.getElementById )
		return;
	
	who = document.getElementById( "disparea" );
	if( who == undefined )
		return;
		
	// die form des backgroundsetzens funktioniert nicht fuer opera 6.x
	// -> gut so, da er auch das no repeat nicht beherrscht. 2fliegen mit einer klappe 
	who.style.background = "url( "+picpath+") no-repeat 196px 100%";
	
/*	ansonsten koennte ich auch den code nehmen
	who.style.backgroundImage = "url( "+picpath+")";
	who.style.backgroundRepeat = "no-repeat";
	who.style.backgroundPosition = "198px 100%";
*/	
}


// private:
///////////////////////////////////////
// Hilfsfunktionen

function findPosX( obj ) {
	var curleft = 0;
	if( obj.offsetParent ){
		while( obj.offsetParent ) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if( obj.x )
		curleft += obj.x;
	return curleft;
}

function findPosY( obj ) {
	var curtop = 0;
	if( obj.offsetParent ) {
		while( obj.offsetParent ) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if( obj.y )
		curtop += obj.y;
	return curtop;
}
function OeffneFenster (url, target) {
 		fenster=window.open(url, target, "width=600,height=450,status=no,scrollbars=auto,resizable=yes");
 		fenster.focus();
 	return false;
	}