	
	var sidebarFadeTimeouts = new Array();
	var steps = 100;
	var myOffsetHeight = 400; // default-height for sidebar (if it could not be calculated, see @ window.onload)
	
	function fadeSidebar(i, sideBarDiv) {
	
		document.getElementById(sideBarDiv).style.height = Math.floor(myOffsetHeight * i / steps)+"px";	
		document.getElementById(sideBarDiv).style.opacity = i/steps;
		document.getElementById(sideBarDiv).style.filter = "alpha(opacity=" + Math.floor(i * 100 / steps) + ")"; // Internet Explorer
	}
		
	function makeSidebarFade(sideBarDiv, show, hidetext, showtext, hideimage, showimage) {
	
		for(var i = 0; i <= steps; i++) {
			window.clearTimeout(sidebarFadeTimeouts[i]);
		}
		var i = (show == true) ? 0 : steps-1;
		if(show == true) {
			document.getElementById(sideBarDiv).style.display="block";
			document.getElementById(sideBarDiv).style.overflow="auto";
			document.getElementById(sideBarDiv).style.height="0px";
			while(i < steps) {
				sidebarFadeTimeouts[i] = window.setTimeout("fadeSidebar("+i+", '"+sideBarDiv+"')", Math.floor(i*(700/steps))); i++;
			}
		}
		else {
			while(i > 0) {
				sidebarFadeTimeouts[i] = window.setTimeout("fadeSidebar("+i+", '"+sideBarDiv+"')", Math.floor((steps-1-i)*(700/steps))); i--;
			}
			sidebarFadeTimeouts[steps] = window.setTimeout("document.getElementById('"+sideBarDiv+"').style.display='none'", 710);
			sidebarFadeTimeouts[101] = window.setTimeout("document.getElementById('"+sideBarDiv+"').style.height='0px'", 710);
		}
		var text = (show == true) ? hidetext : showtext;
		var image = (show == true) ? hideimage : showimage;
		window.setTimeout("document.getElementById('sidebarlink').innerHTML='"+text+"'", 710);
		window.setTimeout("document.getElementById('sidebarimage').src='"+image+"'", 710);
	}
	
	window.onload = function(){
		if(trim(document.getElementById('sidebar').innerHTML) == '') {
			document.getElementById('sidebarcontainer').style.display = "none";
		}
		else { // calculate the height of the sidebar here
			// we're using a litte trick here, because height of elements with display: none cant be calculated by javascript,
			// so we make it visible for very short time
			document.getElementById("sidebar").style.display = "block";
			myOffsetHeight = document.getElementById("sidebar").offsetHeight+40;
			document.getElementById("sidebar").style.display = "none"; // and here we make it invisible again
		}
	}
