/*
	JavaScript-Funktionen
*/

// beim Laden initialiesieren

window.onload = init;
timerHauptmenu = null;
// Set Netscape up to run the "captureMousePosition" function whenever
// the mouse is moved. For Internet Explorer and Netscape 6, you can capture
// the movement a little easier.
if (document.layers) { // Netscape
    document.captureEvents(Event.MOUSEMOVE);
    document.onmousemove = captureMousePosition;
} else if (document.all) { // Internet Explorer
    document.onmousemove = captureMousePosition;
} else if (document.getElementById) { // Netcsape 6
    document.onmousemove = captureMousePosition;
}
// Global variables
xMousePos = 0; // Horizontal position of the mouse on the screen
yMousePos = 0; // Vertical position of the mouse on the screen
xMousePosMax = 0; // Width of the page
yMousePosMax = 0; // Height of the page

function captureMousePosition(e) {
    if (document.layers) {
        // When the page scrolls in Netscape, the event's mouse position
        // reflects the absolute position on the screen. innerHight/Width
        // is the position from the top/left of the screen that the user is
        // looking at. pageX/YOffset is the amount that the user has
        // scrolled into the page. So the values will be in relation to
        // each other as the total offsets into the page, no matter if
        // the user has scrolled or not.
        xMousePos = e.pageX;
        yMousePos = e.pageY;
        xMousePosMax = window.innerWidth+window.pageXOffset;
        yMousePosMax = window.innerHeight+window.pageYOffset;
    } else if (document.all) {
        // When the page scrolls in IE, the event's mouse position
        // reflects the position from the top/left of the screen the
        // user is looking at. scrollLeft/Top is the amount the user
        // has scrolled into the page. clientWidth/Height is the height/
        // width of the current page the user is looking at. So, to be
        // consistent with Netscape (above), add the scroll offsets to
        // both so we end up with an absolute value on the page, no
        // matter if the user has  ????scrolled or not.
        xMousePos = window.event.x+document.body.scrollLeft;
        yMousePos = window.event.y+document.body.scrollTop;
        xMousePosMax = document.body.clientWidth+document.body.scrollLeft;
        yMousePosMax = document.body.clientHeight+document.body.scrollTop;
    } else if (document.getElementById) {
        // Netscape 6 behaves the same as Netscape 4 in this regard
        xMousePos = e.pageX;
        yMousePos = e.pageY;
        xMousePosMax = window.innerWidth+window.pageXOffset;
        yMousePosMax = window.innerHeight+window.pageYOffset;
    }
}
function glossaryInit() {
	var content = document.getElementById("content");
	if(content) {
		var links = content.getElementsByTagName("A");
		for(var i=0;i<links.length;i++) {
			if(links[i].href.match('showGlossar')) {
				links[i].className = "glossar";
			}
		}
	}
}
// initialisieren:
function init() {
	// Mouseoverfunktionen dem Hauptmen� hinzuf�gen
	var menu = document.getElementById("menu");
	a = menu.getElementsByTagName("li");
	/*##### Edit 12.02.2007: Funktion rausgenommen, da MouseOver-Effekt im Men� nicht erw�nscht war.*/
	/*for(j=0;j<a.length;j++) {
		if(a[j].className.indexOf("level1") != "-1") {
			addEvent(a[j].getElementsByTagName("A")[0], "mouseover", highliteHauptmenu);
			addEvent(a[j].getElementsByTagName("A")[0], "mouseout", setTimerFolgemenue);
			addEvent(a[j].getElementsByTagName("UL")[0], "mouseover", clearTimer);
			addEvent(a[j].getElementsByTagName("UL")[0], "mouseout", setTimerFolgemenue);
		} else {
			//addEvent(a[j], "mouseover", setTimerFolgemenue);
		}
	}*/
	var content = document.getElementById("content");
	if(content.offsetHeight <= 250) content.style.height = 250 +"px";
	glossaryInit();
}

// Event-Hilfsfunktionen Funktionen
function addEvent(obj, evType, fn){
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, false);
    return true;
  } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r
  } else {
    return false;
	}
}

function getGetTarget(evt) {
	if(evt.srcElement) return evt.srcElement;
	else return evt.target;
}

// Timer-Funktionen
function setTimerFolgemenue() {
	clearTimeout(timerHauptmenu);
	timerHauptmenu = setTimeout("downliteHauptmenu()", 1000);
}
function clearTimer(evt) {
	clearTimeout(timerHauptmenu);
}

/* Mouseover-Funktionen */

// �ndert die Klasse des feuernden Elements
// Klappmen� anzeigen
function highliteHauptmenu(evt) {
	clearTimeout(timerHauptmenu);
	obj = getGetTarget(evt);
	obj = obj.parentNode;
	downliteHauptmenuBut(obj);
	if (obj.nodeName == "LI") {
		if(obj.className.indexOf("Sel") == -1) {
			obj.className = "level1over";
		}
		submenu = obj.getElementsByTagName("UL")[0];
		if (submenu != null) {
			if(submenu.className.indexOf("level2s") != -1) {
				submenu.className = "level2selected";
			} else {
				submenu.className = "level2over";
			}
		}
	}
}

// Diese funktion setzt alle Hauptmenupunkte zur�ck
function downliteHauptmenu() {
	lis = document.getElementById("menu").getElementsByTagName("li");
	for(j=0;j<lis.length;j++) {
		if(lis[j].nodeName == "LI") {
			if(lis[j].className.indexOf("Sel") == -1 && lis[j].className.indexOf("level2") == -1) {
				lis[j].className = "level1";
			}
			submenu = lis[j].getElementsByTagName("UL")[0];
			if (submenu != null) {
				if(submenu.className.indexOf("level2s") != -1) {
					submenu.className = "level2selected";
				} else {
					submenu.className = "level2";
				}
			}
		}
	}
}
// Diese Funktion setzt alle Hauptmenupunkte, bis auf "li" zur�ck
function downliteHauptmenuBut(li) {
	lis = document.getElementById("menu").getElementsByTagName("li");
	for(j=0;j<lis.length;j++) {
		if(lis[j].className.indexOf("Sel") == -1 && lis[j].className.indexOf("level2") == -1) {
			lis[j].className = "level1";
		}
		if(lis[j].nodeName == "LI" && lis[j] != li) {
			submenu = lis[j].getElementsByTagName("UL")[0];
			if (submenu != null) {
				if(submenu.className.indexOf("level2s") != -1) {
					submenu.className = "level2selectedHidden";
				} else {
					submenu.className = "level2";
				}
			}
		}
	}
}
// Damit man nicht genau die Links treffen muss:
function goToChildHref(evt) {
		//Get the firing Element
	li = getGetTarget(evt);
	location.href = li.childNodes[0].href;
}

// Funktionen f�r Eingabefelder
function reset(evt) {
	obj = getGetTarget(evt);
	if(obj.nodeName == "INPUT") {
		if(obj.value == 'Suchen...') {
			obj.value = '';
		}
	}
}

// Popus, externe Links
function openWindow(theURL,winName,features) {
  window.open(theURL,winName,features);
}

// Zeigt Glossareintr�ge an
function showGlossar(id) {
	var docEl =  (document.documentElement && document.all)? "documentElement" : "body";
	if (id == "") return;
	container = document.getElementById("glossar");
	if (container != null && container.style.display == "none") {
		text = document.getElementById(id);
		if(text != null ) {
			if (window.innerWidth) {
				if(xMousePos + 250 > window.innerWidth) {
					xPos = window.innerWidth - 300;
				} else {
					xPos = xMousePos;
				}
			} else {

				if(xMousePos + 250 > document[docEl].clientWidth) {
					xPos = document[docEl].clientWidth - 300;
				} else {
					xPos = xMousePos;
				}
				yMousePos += document[docEl].scrollTop;
			}
			//druck-Funktion:
			pg = document.getElementById("printGlossar");
			pg.href = pg.href.replace(/id\=.*/, "id=" + id);
			//verschieben
			container.style.top = yMousePos + 10 + "px";
			container.style.left = xPos + 10 + "px";
			//anzeigen
			text.style.display = "block";
			container.style.display = "block";
		}
	}
}
function hideGlossar() {
	container = document.getElementById("glossar");
	if (container != null) {
		divs = container.getElementsByTagName("DL");
		for(i=0;i<divs.length;i++) {
			divs[i].style.display = "none";
		}
		container.style.display = "none";
	}
}
