//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Hilfsfunktionen in Java mit Hilfe des Prototype JavaScript framework, version 1.6.0.2
//Author: van Gelder Gerrit
//Version: 1.1
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Beschreibung:
//Diese Datei enthält sämtliche Hilfsfunktione welche für den Internetauftritt entwickelt
//wurden und benötigt werden.
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Änderungen:
//2008-03-28 	(GVG)	-	Try / Catch Ausnahmen Behandlung eingebaut (der IE ignoriert diese)
//2008-04-10 	(GVG)	-	hightlight hinzugefügt (notwendig für das Makieren des angeklickten Menueintrags)
//2011-09-01 	(JCA)	-	Anpassung an neuere Firefox-Versionen
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Diese Funktion bekommt ein Objekt übeliefert und gibt das ganze als formatierte Text basis aus
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
function traverseNodeTree(myRoot,lvl,SUID)
{
	var node;
	var i;
	
	//traversieren der derzeitigen Ebene
	for (i = 0; i < myRoot.childNodes.length; i++)
	{
		node = myRoot.childNodes[i];

		//Überprüfung ob es sich um ein (für uns relevantes) HTML node handelt
		if (node != null && node.nodeType == 1)
		{
			if(node.nodeName == 'A')
			{
				if(node.parentNode.id == SUID)
				{
					node.parentNode.style.backgroundImage = 'url("gfx/menu_selected.png")';
				}
				else
				{
					node.parentNode.style.backgroundImage = '';
				}
			}

			if (node.childNodes.length > 0) traverseNodeTree(node,lvl+1,SUID);

		}//Ende Prüfung auf HTML node
	}//Ende For-Schleife
}

//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Diese Funktion markiert den Menueintrag mit der übergebenen ID, und entfernt die Makierung 
//bei allen anderen Menueinträgen
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
function highlight (SUID)
{
	traverseNodeTree($('menuBox'),0,SUID);
}

//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Diese Funktion liest die Höhe aus dem Inhaltsfile aus und wendet dies auf das in index.html
//enthaltene Frame an. Dadurch erscheint der graue Rahmen immer in der entsprechenden Größe
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
function resizeObject(ID)
{
	var doc = null;
	var object = document.getElementById(ID);  // $(ID)   - jca (01.09.2011)

	if(object.contentDocument)
	// Firefox, Opera
		doc = object.contentDocument;
	else if(object.contentWindow)
	// Internet Explorer
		doc = object.contentWindow.document;
	else if(object.document)
	//Andere?  
		doc = object.document;

	if(doc == null)
	{
		//Wenn kein Dokument enthalten ist, liegt ein Fehler vor (falscher Inhaltsdatei geladen, Links im Menu müssen überprüft werden)
		alert('ResizeObject: Fehler, kein Objekt mit der ID '+ID+' gefunden!\nFalls Sie Google Chrome verwenden, benutzen Sie bitte einen anderen Browser.');
	}
	else
	{
		//Höhe des Content Behälters in der Inhaltsdatei enthaltenen Content Behälter
		if (Prototype.Browser.IE)
		{
			try			{ contentHeight = doc.childNodes[0].childNodes[1].childNodes[0].offsetHeight; }
			catch(e)	{ alert("ResizeObject: Inhaltsdatei ist ungeeignet!"); }
		}
		else
		{
			try			{ contentHeight = doc.childNodes[0].offsetHeight; }					// .childNodes[1].childNodes[1]  entfernt - jca (01.09.2011)
			catch(e)	{ alert("ResizeObject: Inhaltsdatei ist ungeeignet!!!"); }
		}
		
		//Ausgelesene Höhe auf das Inhalts Frame anwenden
		if (contentHeight) object.height = contentHeight;
	}

}

//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Diese Funktion liest den Titel aus dem Inhaltsfile aus und legt diesen in den Titel Container
//im Hauptfile ab.
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
function changeTitle(ID)
{
	var title;
	var doc = null;
	var object = $(ID);

	if(object.contentDocument)
	// Firefox, Opera
		doc = object.contentDocument;
	else if(object.contentWindow)
	// Internet Explorer
		doc = object.contentWindow.document;
	else if(object.document)
	//Andere?  
		doc = object.document;

	if(doc == null)
	{
		//Wenn kein Dokument enthalten ist, liegt ein Fehler vor (falscher Inhaltsdatei geladen, Links im Menu müssen überprüft werden)
		alert('changeTitle: Fehler, kein Objekt mit der ID '+ID+' gefunden!\nFalls Sie Google Chrome verwenden, benutzen Sie bitte einen anderen Browser.');
	}

	//Title aus dem Inhaltsdatei auslesen
	if (Prototype.Browser.IE)	title = imgOrHeadline(doc.childNodes[0].childNodes[1].childNodes[0].childNodes[0].innerHTML)
	else						title = imgOrHeadline(doc.childNodes[0].childNodes[1].childNodes[1].childNodes[1].innerHTML);

	//Standartgrafik einfügen
	title = '<img src="gfx/bluepoint.png" class="bluePoint">'+title;
	
	//Titel im vorgesehenen Div Container einfügen (dieser befindet sich in der Index Seite)
	if (Prototype.Browser.IE) 	$('title').innerHTML = title
	else						$('title').innerHTML = title;
}

//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Wenn ein [IMG] Kennzeichen gefunden wird, wird aus dem übergebenen String ein IMG
//Tag gemacht.
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
function imgOrHeadline(string)
{
	var returnCode;
	
	try			{ returnCode = (string.search(/\[IMG\]/)+1); }
	catch(e)	{ alert('imgOrHeadline: Fehler, übergebenes Objekt unterstützt diese Methode nicht!'); }
	
	if (returnCode)
	{
		string = string.replace(/\[IMG\]/,'');
		string = '<img src="' + imgPath + string + '">';
	}
	
	return string;
}
