<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_nbGroup(event, grpName) { //v6.0
  var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
      img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
      if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
      nbArr[nbArr.length] = img;
      for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
        if (!img.MM_up) img.MM_up = img.src;
        img.src = img.MM_dn = args[i+1];
        nbArr[nbArr.length] = img;
    } }
  } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
      nbArr[nbArr.length] = img;
    }
  } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) {
      img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
    nbArr = document[grpName];
    if (nbArr)
      for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
      nbArr[nbArr.length] = img;
  } }
}

function MM_displayStatusMsg(msgStr) { //v1.0
  status=msgStr;
  document.MM_returnValue = true;
}

var browserName = navigator.appName;
var regexNetscape = /Netscape/;
var regexIE = /Microsoft/;

function setLeftNaviFixed(divName) {
	// hole höhe der linken navi
	var divHeight = document.getElementById(divName).offsetHeight;

	// hole höhe des gesamten seiten inhalts im browserfenster
	var contentHeight = document.body.clientHeight;
	contentHeight -= 180;

	if (divHeight > contentHeight) {
		// setze divName style position auf absolute
		if (regexNetscape.exec(browserName)) {
			document.getElementById(divName).style.setProperty('position', 'relative', null);
			document.getElementById(divName).style.setProperty('top', '25', null);
		} else {
			document.getElementById(divName).style['top'] = 25;
			document.getElementById(divName).style['position'] = 'fixed';
		}
	}

	// überprüfe auch die höhe des aktuellen kontents nur im ie im firefox ist das
	// unnötig da hier eine min height gesetzt werden kann zudem kommt da keine korrekte
	// höhe.
	if (regexIE.exec(browserName)) {
		var tableContentHeight = document.getElementById('contentHeight').offsetHeight;
		if (divHeight > tableContentHeight) {
			document.getElementById(divName).style['top'] = 25;
			document.getElementById(divName).style['position'] = 'fixed';
		}
	}
}

var intUpOrDown = 0;

function setLeftNavi() {
	var strDivNameContentHeight = 'contentHeight';
	var strDivNameLeftNavigation = 'leftNavigation';
	var strIdAllBody = 'allBody';
	var strDivNameChapterNavigation = 'chapterNavigation';
	var strDivLoggedBox = "loggedBox";

	var objContentHeight = document.getElementById(strDivNameContentHeight);
	var objLeftNavigation = document.getElementById(strDivNameLeftNavigation);
	var objAllBody = document.getElementById(strIdAllBody);
	var objChapterNavigation = document.getElementById(strDivNameChapterNavigation);
	var objLoggedBox = document.getElementById(strDivLoggedBox);
	
	var intAbstandTopZuLinkeNavi = 180;

	// hole höhe der linken navi
	var intHeightLeftNavi = objLeftNavigation.offsetHeight;
	if (regexNetscape.exec(browserName)) {
		intHeightLeftNavi -= 37;
	} else {
		intHeightLeftNavi -= 68;
	}

	var intBrowserTopPosition = document.body.scrollTop;

	// absolute höhe des aktuellen documents
	var intAbsoluteBodyHeight = objAllBody.offsetHeight;

	// die komplette größe der seiten.
	var intCurrentBrowserContentHeight = document.body.clientHeight;

	var intUnterkante = intAbsoluteBodyHeight - intHeightLeftNavi + intAbstandTopZuLinkeNavi;
	var intHeightLeftNaviToTop = intHeightLeftNavi + intAbstandTopZuLinkeNavi;
	// wenn die navigation kleiner als das browser fenster gibt es nichts zu tun
	// da die funktion setLeftNaviFixed alles abdeckt.
	if (intHeightLeftNaviToTop < intCurrentBrowserContentHeight) {
		return;
	}

	// in welche richtung scrollen wir gerade?
	if (window.addEventListener) {
		// DOMMouseScroll is for mozilla
		window.addEventListener('DOMMouseScroll', wheel, false);
	}

	if (regexIE.exec(browserName)) {
		window.onmousewheel = document.onmousewheel = wheel;
	}
	
	var intToTopNaviLeft = getObjTop(objLeftNavigation);
	var intChapterNavigationHeight = objChapterNavigation.offsetHeight;
	if (intUpOrDown == 1 && intToTopNaviLeft >= 180 &&
		intCurrentBrowserContentHeight < intChapterNavigationHeight) {
		if (regexIE.exec(browserName)) {
			if (intCurrentBrowserContentHeight < intChapterNavigationHeight) {
				var intToTopChapter = getObjTop(objChapterNavigation);
				if (intToTopChapter < intBrowserTopPosition) {
					intStyleTop -= 25;
					if (intToTopChapter <= document.body.scrollTop + 50) {
						objLeftNavigation.style['position'] = "absolute";
					}
				} else {
					var intHeightLoggedBox = objLoggedBox.offsetHeight;
					var intChapterToTop = document.body.scrollTop + 50 - 365;
					if (intHeightLoggedBox <= 120) {
						// nicht eingeloggt
						intChapterToTop = document.body.scrollTop + 50 - 330;
					}
					
					objLeftNavigation.style['top'] =  intChapterToTop;
					objLeftNavigation.style['position'] = "absolute";
				}
			}
			
			return;
		}
	}
	
	// wenn die navi unterkante die unterkante des browsers erreicht hat:
	if (intHeightLeftNaviToTop - intBrowserTopPosition <= intCurrentBrowserContentHeight) {
		var intStyleTop = intCurrentBrowserContentHeight - intHeightLeftNavi - 5;
		if (regexNetscape.exec(browserName)) {
			objLeftNavigation.style.setProperty('position', 'fixed', null);
			objLeftNavigation.style.setProperty('top', intStyleTop, null);
		} else {
			intStyleTop -= 25;
			var intParseInt = parseInt(intStyleTop + document.body.scrollTop);
			var test = intHeightLeftNavi + document.body.scrollTop;
			if (intBrowserTopPosition+intHeightLeftNavi+intStyleTop + 47 >= intAbsoluteBodyHeight) {
				return;
			}
			
			objLeftNavigation.style['top'] = intParseInt;
			objLeftNavigation.style['position'] = "absolute";
		}
	}

	// wenn wieder normal setzte fixed weg nur für firefox und konsorten nötig
	if (regexNetscape.exec(browserName)) {
		if (intBrowserTopPosition <= intAbstandTopZuLinkeNavi) {
			objLeftNavigation.style.setProperty('position', 'relative', null);
			objLeftNavigation.style.setProperty('top', '25', null);
		}
	}
}

function getObjTop(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curtop += obj.offsetTop
		}
	}
	return curtop;
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

// mouse event handler
function wheel(event){
	var delta = 0;

	if (!event) {	// IE
		event = window.event;
	}

	if (event.wheelDelta) { // IE/Opera
		delta = event.wheelDelta/120;

		// In Opera 9, delta differs in sign as compared to IE.
		if (window.opera) {
			delta = -delta;
		}
	} else if (event.detail) {	// Mozilla
		/** In Mozilla, sign of delta is different than in IE.
		 *	Also, delta is multiple of 3.
		 */
		delta = -event.detail/3;
	}

	/** If delta is nonzero, handle it.
	 *	Basically, delta is now positive if wheel was scrolled up,
	 *	and negative, if wheel was scrolled down.
	 */
	if (delta) {
		handle(delta);
	}
}

// wenn down dann 0 und wenn up dann 1
function handle(delta) {
	if (delta < 0) {
//		alert("down");
		intUpOrDown = 0;
	} else {
//		alert("up");
		intUpOrDown = 1;
	}
}


/** Initialization code. 
 * If you use your own event management code, change it as required.
 */
if (window.addEventListener) {
	// DOMMouseScroll is for mozilla
	window.addEventListener('DOMMouseScroll', wheel, false);
}

if (regexIE.exec(browserName)) {
	window.onmousewheel = document.onmousewheel = wheel;
}

//-->
