// window funktionen
function getWindowWidth() {
  if (isMinNS4)
    return window.innerWidth;
  if (isMinIE4)
    return document.body.clientWidth;
  return -1;
}
function getWindowHeight() {
  if (isMinNS4)
    return window.innerHeight;
  if (isMinIE4)
    return document.body.clientHeight;
  return -1;
}
function getPageWidth() {
  if (isMinNS4)
    return document.width;
  if (isMinIE4)
    return document.body.scrollWidth;
  return -1;
}
function getPageHeight() {
  if (isMinNS4)
    return document.height;
  if (isMinIE4)
    return document.body.scrollHeight;
  return -1;
}
function getPageScrollX() {
  if (isMinNS4)
    return window.pageXOffset;
  if (isMinIE4)
    return document.body.scrollLeft;
  return -1;
}
function getPageScrollY() {
  if (isMinNS4)
    return window.pageYOffset;
  if (isMinIE4)
    return document.body.scrollTop;
  return -1;
}

function openWindow( url, winname, width, height, left, top ) {
	var trails = "toolbar=yes,directories=yes,status=yes,scrollbars=yes,resizable=yes,menubar=yes,location=yes";
	if (width) trails += ",width=" + width;
	if (height) trails += ",height=" + height;
	if (left) trails += ",left=" + left;
	if (top) trails += ",top=" + top;
	if (!winname) winname = "UseAlwaysThisWindow"
	newWindow = window.open( url, winname, trails);
}
function timedOpenWindow( sekunden, url, winname, width, height, left, top) {
	setTimeout("openWindow('"+url+"', '"+winname+"', "+width+", "+height+", "+left+", "+top+")", sekunden * 1000)
}

// browsercheck
function checkBrowser() {
	this.ver 	= navigator.appVersion;
	this.agent 	= navigator.userAgent;
	this.dom 	= document.getElementById ? 1 : 0;
	this.ie5 	= (this.ver.indexOf("MSIE 5") > -1 && this.dom) ? 1 : 0;
	this.ie6 	= (this.ver.indexOf("MSIE 6") > -1 && this.dom) ? 1 : 0;
	this.ie4 	= (document.all && !this.dom) ? 1 : 0;
	this.ie 	= this.ie4 || this.ie5 || this.ie6;
	this.mac 	= this.agent.indexOf("Mac") > -1;
	this.opera5 = this.agent.indexOf("Opera 5") > -1;
	this.opera6 = this.agent.indexOf("Opera 6") > -1;
	this.ns6 	= (this.dom && parseInt(this.ver) >= 5) ? 1 : 0; 
	this.ns4 	= (document.layers && !this.dom) ? 1 : 0;
	this.bw 	= (this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5 || this.opera6 || this.dom);
	return this
}

// Making browsercheck object
var bw = new checkBrowser();


/*********************************
 *                               *
 *       Dynamic Menu start      *
 *                               *
 *********************************/
 
// konfigurierbare variablen
var startx = 18;
var starty = 108;

var width1 = 130;
var height1 = 22;

var width2 = 200;
var height2 = 20;

var width3 = 200;
var height3 = 20;

var delay = 300;	// zeit, nach der sich die layer schließen; minimum: 300

// feste variablen
var active = "";
var active1 = "";
var active2 = "";
var active3 = "";
var hideTimer;
var doHide;
var mi = 100;


// bestimmung der baumtiefe für die navigation
var mypath = window.location.href;
var sep = (mypath.toLowerCase().indexOf("/") != -1) ? "/" : "\\";
var pattern = "dienst".toLowerCase();
var rootPath = "";
var mypos = mypath.lastIndexOf(pattern)

// check, ob pattern nur einmal vokommt
var count = 0;
var pos = mypos;
var path = mypath;
while ((pos = path.toLowerCase().indexOf(pattern)) != -1 ){ 
	path = path.substring( pos + pattern.length ); count++; 	
}
if (count > 1 || count == 0){ 
	alert("Die Zeichenkette \"" + pattern+"\" ist das \"root\"-Verzeichnis und wird für die Erstellung der Navigation benutzt,\n bitte nutzen Sie andere Zeichenfolgen für Verzeichnis- oder Dateinamen!" );
}
// setzt den rootpath entsprechend der baumtiefe
mypath = mypath.substring( mypos + pattern.length );
mypos = mypath.indexOf(sep)
mypath = mypath.substring( mypos + sep.length ); 

while ((mypos = mypath.indexOf(sep)) != -1 ){ 
	mypath = mypath.substring( mypos + sep.length ); rootPath += "../"
}
// end


/*************
 * templates *
 *************/

// templates fuer die darstellung
var level1template =  '<div id="_ID_" style="position:absolute; left: _LEFT_; top: _TOP_; width: _WIDTH_; background-color: #1F4291; layer-background-color: #1F4291">'
					+ '<table width="100%" border="0" cellspacing="0" cellpadding="3">'
					+ '<tr>'
					+ '<td class="_TEXTCLASS_"><a href="javascript:void(0)"><font color="#FFFFFF" style="font-size: 10pt">_TEXT_</font></a></td>'
					+ '<td class="_ARROWCLASS_" align="right" valign="top"><a href="javascript:void(0)"><font color="#A9B9DD" style="font-size: 10pt">_ARROW_</font></a></td>'
					+ '</tr>'
					+ '</table>'
					+ '</div>';

var level1templateHL = '<div id="_ID_" style="position:absolute; visibility: hidden; left: _LEFT_; top: _TOP_; width: _WIDTH_; background-color: #B7C6DD; layer-background-color: #B7C6DD">'
					+ '<table width="100%" border="0" cellspacing="0" cellpadding="3">'
					+ '<tr>'
					+ '<td class="_TEXTCLASS_"><a href="javascript:void(0)"><font color="#000000" style="font-size: 10pt">_TEXT_</font></a></td>'
					+ '<td class="_ARROWCLASS_" align="right" valign="top"><a href="javascript:void(0)"><font color="#FF0000" style="font-size: 10pt">_ARROW_</font></a></td>'
					+ '</tr>'
					+ '</table>'
					+ '</div>';

var level2template =  '<div id="_ID_" style="position:absolute; visibility: hidden; left: _LEFT_; top: _TOP_; width: _WIDTH_; background-color: #E0E8F1; layer-background-color: #E0E8F1">'
					+ '<table width="100%" border="0" cellspacing="0" cellpadding="3">'
					+ '<tr>'
					+ '<td class="_TEXTCLASS_"><a href="javascript:void(0)"><font color="#000000" style="font-size: 10pt">_TEXT_</font></a></td>'
					+ '<td class="_ARROWCLASS_" align="right" valign="top"><a href="javascript:void(0)"><font color="#A9B9DD" style="font-size: 10pt">_ARROW_</font></a></td>'
					+ '</tr>'
					+ '</table>'
					+ '</div>';

var level2templateHL = '<div id="_ID_" style="position:absolute; visibility: hidden; left: _LEFT_; top: _TOP_; width: _WIDTH_; background-color: #B7C6DD; layer-background-color: #B7C6DD">'
					+ '<table width="100%" border="0" cellspacing="0" cellpadding="3">'
					+ '<tr>'
					+ '<td class="_TEXTCLASS_"><a href="javascript:void(0)"><font color="#000000" style="font-size: 10pt">_TEXT_</font></a></td>'
					+ '<td class="_ARROWCLASS_" align="right" valign="top"><a href="javascript:void(0)"><font color="#FF0000" style="font-size: 10pt">_ARROW_</font></a></td>'
					+ '</tr>'
					+ '</table>'
					+ '</div>';


// ersetzten der werte in den templates
function buildIn(template, id, left, top, width, height, textclass, arrowclass, text, arrow) {
	var retval = template;
	retval = retval.replace(/_ID_/, id);
	retval = retval.replace(/_LEFT_/, left);
	retval = retval.replace(/_TOP_/, top);
	retval = retval.replace(/_WIDTH_/, width);
	retval = retval.replace(/_HEIGHT_/, height);
	retval = retval.replace(/_TEXTCLASS_/, textclass);
	retval = retval.replace(/_ARROWCLASS_/, arrowclass);
	retval = retval.replace(/_TEXT_/, text);
	retval = retval.replace(/_ARROW_/, arrow);
	retval = retval + "\n";
	return retval;
}


/*******************
 * maus funktionen *
 *******************/


// den layern mouse-down event zuweisen
function addClickEvent(obj) {
	if (bw.ns4) {
	    obj = document.layers[obj];
		if (obj) obj.captureEvents(Event.MOUSEDOWN);
	} else if (bw.ns6) {
		obj = document.getElementById(obj);
	} else {
		eval("obj = document.all." + obj);
	}
	if (obj) obj.onmousedown = mClick;
}

// funktion fuer mouse-down der layer
function mClick() {
	tmp = active.split("_");
	level1 = tmp[0].substr(tmp[0].length - 1);
	level2 = tmp[1];
	level3 = tmp[2];
	for (i = 0; i < menu.length; i++) {
		if (menu[i][0] == level1 && menu[i][1] == level2 && menu[i][2] == level3) {
			url = menu[i][5];
			target = menu[i][6];
			if (url != "") {
				//alert(url)
				if (target != "") {
					eval("top." + target + ".location.href = '" + url + "'");
				} else {
					top.location.href = url;
				}
			}
		}
	}

	if (!this.id) {
		doHide = true;
		resetMenu();
		return false;
	}
	window.setTimeout("doHide = false", delay / 2);
	if (this.id.indexOf("0_0") != -1) {
		if (active1 != "") {
			hide(active1);
			if (active2 != "") hide(active2);
			if (active3 != "") hide(active3);
			tmp = active1.split("_");
			level1 = tmp[0].substr(tmp[0].length - 1);
			level2 = tmp[1];
			level3 = tmp[2];
			for (i = 0; i < menu.length; i++) {
				if (menu[i][0] == level1 && menu[i][1] != 0) {
					name = "menu" + menu[i][0] + "_" + menu[i][1] + "_" + menu[i][2];
					hide(name);
				}
			}
		}
	    hlLayer = this.id + "_hl";
		show(hlLayer);
		for (i = 0; i < menu.length; i++) {
			parentLayer = "menu" + menu[i][0] + "_0_0";
			parentLayer2 = "menu" + menu[i][0] + "_" + menu[i][1] + "_0";
			if (this.id == parentLayer && menu[i][1] != "0" && menu[i][2] == "0") {
				name = "menu" + menu[i][0] + "_" + menu[i][1] + "_" + menu[i][2];
				show(name);
			} else if (this.id == parentLayer2 && menu[i][1] != "0" && menu[i][2] != "0") {
				name = "menu" + menu[i][0] + "_" + menu[i][1] + "_" + menu[i][2];
				show(name);
			}
		}
		active1 = hlLayer;
		active = hlLayer;
	} else if (this.id.indexOf("_0") != -1) {
		if (active2 != "") {
			hide(active2);
			if (active3 != "") hide(active3);
			tmp = active2.split("_");
			level1 = tmp[0].substr(tmp[0].length - 1);
			level2 = tmp[1];
			level3 = tmp[2];
			for (i = 0; i < menu.length; i++) {
				if (level2 == menu[i][1] && menu[i][1] != "0" && menu[i][2] != "0") {
					name = "menu" + menu[i][0] + "_" + menu[i][1] + "_" + menu[i][2];
					hide(name);
				}
			}
		}
	    hlLayer = this.id + "_hl";
		show(hlLayer);
		for (i = 0; i < menu.length; i++) {
			parentLayer = "menu" + menu[i][0] + "_0_0";
			parentLayer2 = "menu" + menu[i][0] + "_" + menu[i][1] + "_0";
			if (this.id == parentLayer && menu[i][1] != "0" && menu[i][2] == "0") {
				name = "menu" + menu[i][0] + "_" + menu[i][1] + "_" + menu[i][2];
				show(name);
			} else if (this.id == parentLayer2 && menu[i][1] != "0" && menu[i][2] != "0") {
				name = "menu" + menu[i][0] + "_" + menu[i][1] + "_" + menu[i][2];
				show(name);
			}
		}
		active2 = hlLayer;
		active = hlLayer;
	} else {
		if (active3 != "") {
			hide(active3);
			tmp = active3.split("_");
			level1 = tmp[0].substr(tmp[0].length - 1);
			level2 = tmp[1];
			level3 = tmp[2];
		}
	    hlLayer = this.id + "_hl";
		show(hlLayer);
		for (i = 0; i < menu.length; i++) {
			parentLayer = "menu" + menu[i][0] + "_0_0";
			parentLayer2 = "menu" + menu[i][0] + "_" + menu[i][1] + "_0";
			if (this.id == parentLayer && menu[i][1] != "0" && menu[i][2] == "0") {
				name = "menu" + menu[i][0] + "_" + menu[i][1] + "_" + menu[i][2];
				show(name);
			} else if (this.id == parentLayer2 && menu[i][1] != "0" && menu[i][2] != "0") {
				name = "menu" + menu[i][0] + "_" + menu[i][1] + "_" + menu[i][2];
				show(name);
			}
		}
		active3 = hlLayer;
		active = hlLayer;
	}


}

// funktion fuer mouse-out der layer
function mOut() {
	window.clearTimeout(hideTimer);
    if ((bw.ns4 && doHide == true) || !bw.ns4) resetMenu();
	doHide = true;
}


/********************
 * layer funktionen *
 ********************/

// layer anzeigen
function show(layer) {
	if (bw.ns6) {
	    document.getElementById(layer).style.visibility = "visible";
	    document.getElementById(layer).style.zIndex = mi++;
	} else if (bw.ns4) {
	    document.layers[layer].visibility = "visible";
	} else {
	    eval("document.all." + layer + ".style.visibility = 'visible'");
	}
}

// layer verstecken
function hide(layer) {
	if (layer.indexOf("0_0") != -1 && layer.indexOf("hl") == -1) return;
	if (bw.ns6) {
	    document.getElementById(layer).style.visibility = "hidden";
	} else if (bw.ns4) {
	    document.layers[layer].visibility = "hidden";
	} else {
	    eval("document.all." + layer + ".style.visibility = 'hidden'");
	}
}

// layer abstand von oben
function getTop(layer) {
	if (bw.ns6) {
	    retval = document.getElementById(layer).offsetTop;
	} else if (bw.ns4) {
	    retval = document.layers[layer].top;
	} else {
	    eval("retval = document.all." + layer + ".offsetTop");
	}
	return parseInt(retval);
}

// layer hoehe
function getHeight(layer) {
	if (bw.ns6) {
	    retval = document.getElementById(layer).offsetHeight;
	} else if (bw.ns4) {
	    retval = document.layers[layer].document.height;
	} else {
		if (document.all[layer].style.pixelHeight)
	      retval = document.all[layer].style.pixelHeight;
	    else
	      retval = document.all[layer].clientHeight;
	}
	return parseInt(retval);
}


/*******************
 * menue schreiben *
 *******************/
 
function writeMenu() {
	var name = "";
	var actX = startx;
	var actY = starty;
	var txt = '<div id="dummyLayer" style="position:absolute; visibility: hidden;"></div>\n';
	for (i = 0; i < menu.length; i++) {
		if (menu[i][1] == "0") {
			name = "menu" + menu[i][0] + "_" + menu[i][1] + "_" + menu[i][2];
			nameHL = name + "_hl";
			if (menu[i][0] == "1") {
				actY = starty;
			} else {
				upperName = "menu" + (parseInt(menu[i][0]) - 1) + "_0_0";
				actY = getTop(upperName) + getHeight(upperName);
			}
			document.write(buildIn(level1template, name, actX, actY, width1, height1, "level1textNormal", "level1arrowNormal", menu[i][3], menu[i][4]));
			document.write(buildIn(level1templateHL, nameHL, actX, actY, width1, height1, "level1textHL", "level1arrowHL", menu[i][3], menu[i][4]));
		} else if (menu[i][1] != "0" && menu[i][2] == "0") {
			name = "menu" + menu[i][0] + "_" + menu[i][1] + "_" + menu[i][2];
			if (bw.ns4 || bw.ns6) padding = 2;
			else padding = 0;
			actX2 = startx + width1 + padding;
			if (menu[i][1] == "1") {
				upperName = "menu" + menu[i][0] + "_0_0";
				actY2 = getTop(upperName);
			} else {
				upperName = "menu" + menu[i][0] + "_" + (parseInt(menu[i][1]) - 1) + "_" + menu[i][2];
				actY2 = getTop(upperName) + getHeight(upperName);
			}
			document.write(buildIn(level2template, name, actX2, actY2, width2, height2, "level2textNormal", "level2arrowNormal", menu[i][3], menu[i][4]));
			document.write(buildIn(level2templateHL, name + "_hl", actX2, actY2, width2, height2, "level2textHL", "level2arrowHL", menu[i][3], menu[i][4]));
		} else if (menu[i][1] != "0" && menu[i][2] != "0") {
			name = "menu" + menu[i][0] + "_" + menu[i][1] + "_" + menu[i][2];
			if (bw.ns4 || bw.ns6) padding = 4;
			else padding = 0;
			actX2 = startx + width1 + width2 + padding;
			if (menu[i][2] == "1") {
				upperName = "menu" + menu[i][0] + "_" + menu[i][1] + "_0";
				actY2 = getTop(upperName);
			} else {
				upperName = "menu" + menu[i][0] + "_" + menu[i][1] + "_" + (parseInt(menu[i][2]) - 1);
				actY2 = getTop(upperName) + getHeight(upperName);
			}
			document.write(buildIn(level2template, name, actX2, actY2, width3, height3, "level2textNormal", "level2arrowNormal", menu[i][3], menu[i][4]));
			document.write(buildIn(level2templateHL, name + "_hl", actX2, actY2, width3, height3, "level2textHL", "level2arrowHL", menu[i][3], menu[i][4]));
		}
	}
	for (i = 0; i < menu.length; i++) {
		name = "menu" + menu[i][0] + "_" + menu[i][1] + "_" + menu[i][2];
		addClickEvent(name);
	}
	document.onclick=mClick;
}

// menue nach 'delay' millisekunden verstecken
function resetMenu() {
	doHide = true;
	hideTimer = window.setTimeout("hideAll()", delay);
}

// zuruecksetzen des menues
function hideAll() {
	if (doHide == true) {
		for (i = 0; i < menu.length; i++) {
			if (menu[i][1] == 0) {
				name = "menu" + menu[i][0] + "_" + menu[i][1] + "_" + menu[i][2];
				nameHL = "menu" + menu[i][0] + "_" + menu[i][1] + "_" + menu[i][2] + "_hl";
				hide(nameHL);
			} else {
				name = "menu" + menu[i][0] + "_" + menu[i][1] + "_" + menu[i][2];
				nameHL = "menu" + menu[i][0] + "_" + menu[i][1] + "_" + menu[i][2] + "_hl";
				hide(name);
				hide(nameHL);
			}
		}
	}
}


/***************
 * menue-array *
 ***************/


var menu = new Array(
	new Array("1", "0", "0", "Personen", "&gt;", "", "")
		,new Array("1", "1", "0", "Sekretariat", "", rootPath + "de/content/staff/sekretariat/sekretariat.html", "")
		,new Array("1", "2", "0", "Univ.-Prof. Dr. Alexa Franke", "&gt;", "", "")
			,new Array("1", "2", "1", "Zur Person", "", rootPath + "de/content/staff/lehrstuhl_franke/index_frake.html", "")
			,new Array("1", "2", "2", "Pr&#252;fungen", "", rootPath + "de/content/staff/lehrstuhl_franke/pruefungen.html", "")
			,new Array("1", "2", "3", "Publikationen", "", rootPath + "de/content/staff/lehrstuhl_franke/publikationen.html", "")
		,new Array("1", "3", "0", "Univ.-Prof. Dr. Heinrich Tr&#246;ster", "&gt;", "", "")
			,new Array("1", "3", "1", "Zur Person", "", rootPath + "de/content/staff/lehrstuhl_troster/index_troester.html", "")
			,new Array("1", "3", "2", "Pr&#252;fungen", "", rootPath + "de/content/staff/lehrstuhl_troster/pruefungen.html", "")
			,new Array("1", "3", "3", "Publikationen", "", rootPath + "de/content/staff/lehrstuhl_troster/publikationen.html", "")
		,new Array("1", "4", "0", "Dr. Anke Lengning", "&gt;", "", "")
			,new Array("1", "4", "1", "Zur Person", "", rootPath + "de/content/staff/lengning/index_lengning.html", "")
			,new Array("1", "4", "2", "Pr&#252;fungen", "", rootPath + "de/content/staff/lengning/pruefungen.html", "")
			,new Array("1", "4", "3", "Publikationen", "", rootPath + "de/content/staff/lengning/publikationen.html", "")
		,new Array("1", "5", "0", "Wissenschaftliche Mitarbeiter", "&gt;", "", "")
			,new Array("1", "5", "1", "Friedrich Baumann, Dipl.-Psych", "", rootPath + "de/content/staff/mitarbeiter/baumann.html", "")
			,new Array("1", "5", "2", "Dr. Judith Flender, Dipl.-Psych", "", rootPath + "de/content/staff/mitarbeiter/flender.html", "")
			,new Array("1", "5", "3", "Julia Rottmann, Dipl.-Psych", "", rootPath + "de/content/staff/mitarbeiter/rottmann.html", "")
			,new Array("1", "5", "4", "Dr. Friedrich Linderkamp, Dipl.-Psych", "", rootPath + "de/content/staff/mitarbeiter/linderkamp.html", "")
			,new Array("1", "5", "5", "Dr. Karin Nachbar, Dipl.-Psych", "", rootPath + "de/content/staff/mitarbeiter/nachbar.html", "")
			,new Array("1", "5", "6", "Dr. Martin Werner, Dipl.-Psych", "", rootPath + "de/content/staff/mitarbeiter/werner.html", "")
			,new Array("1", "5", "7", "Dr. Susanne Winkelmann, Dipl.-Psych", "", rootPath + "de/content/staff/mitarbeiter/winkelmann.html", "")
		,new Array("1", "6", "0", "Lehrbeauftragte", "", rootPath + "de/content/staff/lehrbeauftragte/lehrbeauftragte.html", "")

	,new Array("2", "0", "0", "Veranstaltungen", "&gt;", "", "")
		,new Array("2", "1", "0", "Vorlesung Hauptstudium", "", rootPath + "de/content/veranstaltungen/haupt/haupt.html", "")
		,new Array("2", "2", "0", "Vorlesung Grundstudium", "", rootPath + "de/content/veranstaltungen/grund/grund.html", "")
		,new Array("2", "3", "0", "Fallseminare", "", rootPath + "de/content/veranstaltungen/fallseminar/fallseminar.html", "")

	,new Array("3", "0", "0", "Pr&#252;fungen", "", rootPath + "de/content/pruefungen/pruefungen.html", "")

	,new Array("4", "0", "0", "Studieng&#228;nge", "&gt;", "", "")
		,new Array("4", "1", "0", "Diplomstudiengang", "&gt;", "", "")
			,new Array("4", "1", "1", "Modul Psych 1", "", rootPath + "de/content/studien/diplom/psy_m1.html", "")
			,new Array("4", "1", "2", "Modul Reha 6", "", rootPath + "de/content/studien/diplom/reha_6.html", "")
		,new Array("4", "2", "0", "Lehramtsstudiengang", "&gt;", "", "")
			,new Array("4", "2", "1", "F&#246;rderschwerpunkt Lernen 1", "", rootPath + "de/content/studien/lehramt/fsl_1.html", "")
			,new Array("4", "2", "2", "Diagnostik und Beratung", "", rootPath + "de/content/studien/lehramt/dub.html", "")
		,new Array("4", "3", "0", "Bachelor-Studiengang", "", rootPath + "de/content/studien/bac/bac.html", "")

	,new Array("5", "0", "0", "Testothek", "&gt;", "", "")
		,new Array("5", "1", "0", "Die Testothek stellt sich vor", "", rootPath + "de/content/testothek/vorstellung/vorstellung.html", "")
		,new Array("5", "2", "0", "Bestandslisten", "", rootPath + "de/content/testothek/listen/listen.html", "")
		,new Array("5", "3", "0", "Bedarfsanalyse 2001", "", rootPath + "de/content/testothek/bedarf/bedarf.html", "")

	,new Array("6", "0", "0", "Forschungsprojekte", "&gt;", "", "")
		,new Array("6", "1", "0", "Entwicklungsauff&#228;lligkeiten im Vorschulalter", "&gt;", "", "")
			,new Array("6", "1", "1", "DESK 3-6", "", rootPath + "de/content/forschung/entwicklung/desk.html", "")
);



//----------------------------------------------------------------------------------


if (bw.opera5 || bw.opera6) writeMenu();
