function initPage() {
	printPreview2();	// see printPreview.js for details

	// Hide all parts of the navigation	
	var navigation = document.getElementById('siteNavigation');
	
	// Get the unsorted list, that is containing all navigation elements
	var naviUL = navigation.firstChild;
	while (naviUL.nodeName != "UL") {
		naviUL = naviUL.nextSibling;
	}
	
	// Get all unsorted lists contained in the siteNavigation	
	var naviLists = naviUL.getElementsByTagName('UL');
	// Needed to check whether a list contains first stage links or not
	var naviULChildren = naviUL.childNodes;
	
	for(var i = 0; i < naviLists.length; i++) {
		var currentList = naviLists[i];
		var currentParent = currentList.parentNode;
		
		// Check if current UL is on first stage
		for (var j = 0; j < naviULChildren.length; j++) {
			if (currentParent == naviULChildren[j]) {
				// Yes, it is on first stage, so hide it!
				currentList.className = "hidden";
			}
		}
	}
	
	// Show that part of the navigation that contains a link to 
	// the site currently showing and mark this link active
	showActiveLink();
	
	preloadImages();
}

function showActiveLink()
{
	// Get all links contained in the siteNavigation
	var naviLinks = document.getElementById('siteNavigation').getElementsByTagName('a');
	for (var i = 0; i < naviLinks.length; i++)
	{
		if (naviLinks[i].href == window.location)
		{
			var activeLink = naviLinks[i];
			// Highlight active link
			activeLink.className = ((activeLink.className == "") ? "" : " ") + "active";
			var linkImageURL = activeLink.getElementsByTagName("img")[0].src;
			activeLink.getElementsByTagName("img")[0].src = linkImageURL.replace(/siteNavigation\//, "siteNavigation/active");
			
			// Show navigation part containing active link
			var activeParent = activeLink.parentNode;
			var navigationRoot = document.getElementById('siteNavigation');
			while (activeParent != navigationRoot) {	
				if(activeParent.nodeName == 'UL' && activeParent.parentNode != navigationRoot) {
					activeParent.className = 'show';
					setHoverImage(activeParent.parentNode.getElementsByTagName('img')[0]);
				//	var linkImage = activeParent.parentNode.getElementsByTagName('img')[0];
				//	linkImage.src = linkImage.src.replace(/siteNavigation\//, "siteNavigation/active");
				}
				activeParent = activeParent.parentNode;
			}			
		}
	}
}

function preloadImages() {
	var menuImages = document.getElementById('siteNavigation').getElementsByTagName('img');

	menuImageObjects = Object(menuImages.length * 2);
	
	for (var i = 0; i < menuImages.length; i++) {
		var imageURL = menuImages[i].src;
		var imageName = "_" + i;
		var hoverImageURL = imageURL.replace(/siteNavigation\/link/, "siteNavigation/hoverlink");
		
		eval("menuImageObjects."+imageName+" = menuImages[i]");
		eval("menuImageObjects."+imageName+"_h = new Image()");
		eval("menuImageObjects."+imageName+"_h.src = hoverImageURL");
	}
}

// Function for showing and hiding parts of the navigation
function toggleMenuItem(menuLink)
{
	// Get the reference to the LI-Tag (menuLink.parentNode) that contains
	// this toggle-link (menuLink), get all ULs contained in LI
	var allLists = menuLink.parentNode.getElementsByTagName('UL');
	// only the first is interesting
	var list = allLists[0];
	
	var menuLinkImages = menuLink.parentNode.getElementsByTagName('img');
	var menuLinkImage = menuLinkImages[0];
	
	if (list.className == "hidden")
	{
		list.className = "show";
		setHoverImage(menuLinkImage);
	}
	else if (list.className == "show" || list.className == "")
	{
		list.className = "hidden";
		unsetHoverImage(menuLinkImage);
	}		
}

function nop()
{
	return;
}

// Makes sure, that the height of the site content is either navigation's height or news' height
function adjustContentHeight()
{
	var newsHeight = document.getElementById('siteNews').offsetHeight;
	var naviHeight = document.getElementById('siteNavigation').offsetHeight;
	var contentHeight = document.getElementById('siteContent').offsetHeight;

	if (contentHeight < Math.max(newsHeight, naviHeight)) {
		document.getElementById('siteContent').style.height = (Math.max(newsHeight, naviHeight))+ "px";
	}
}

// JS function for navigation mouse-over
function over(img)	{	//
	var subMenu = img.parentNode.parentNode.getElementsByTagName('UL')[0];
	if(subMenu == null || subMenu.className == "hidden") {
		setHoverImage(img);
	}
}
// JS function for navigation mouse-out
function out(img)	{	//
	var subMenu = img.parentNode.parentNode.getElementsByTagName('UL')[0];
	if(subMenu == null || subMenu.className == "hidden") {
		unsetHoverImage(img);
	}
}

function setHoverImage(img) {
	img.src = img.src.replace(/siteNavigation\/link/, "siteNavigation/hoverlink");
}

function unsetHoverImage(img) {
	img.src = img.src.replace(/siteNavigation\/hoverlink/, "siteNavigation/link");
}
