var fn;
window.onerror = meinFehler;
function meinFehler(Nachricht,Datei,Zeile)
{
 Fehler = "Fehlermeldung:\n"+ Nachricht+"\n"+Datei+"\n"+Zeile+"\nFunktion:"+fn;
 zeigeFehler();
 return true;
}

function zeigeFehler()
{
 alert(window.Fehler)
}



function MenuItem(name,x,y,imagename,imagefilename) {
	// Aufbau des Menü-Objektes
	this.name = name;
	this.x = x;
	this.y = y;
	this.imagename = imagename;
	this.imagefilename = imagefilename;
}

function DetectOS() {
	var myOS = "";
	var BrowserOS = navigator.platform;
	if(BrowserOS.indexOf("Mac") >= 0) {
		myOS = "Mac";
	} else {
		myOS = "PC";
	}
 return(myOS);
}

function DetectBrowser() {
	//Stellt fest, welcher Browser benutzt wird 
	var Version = parseInt(navigator.appVersion);	// Versionsnummer ermitteln
	var UserAgent = navigator.userAgent;
	var BrowserName = navigator.appName;
	var DetectedBrowser = "SONSTIGE";
	if(BrowserName.indexOf("Netscape") >= 0 && Version == 4) DetectedBrowser="NS4"; 
	if(BrowserName.indexOf("Netscape") >= 0 && Version > 4) DetectedBrowser="NS5"; 	
	if(BrowserName.indexOf("Microsoft") >= 0 && Version == 4) DetectedBrowser="IE4"; 
	if(BrowserName.indexOf("Microsoft") >= 0 && Version >= 5) DetectedBrowser="IE5"; 	
	
	return(DetectedBrowser);
} 

function DetectDOM() {
	//Stellt fest, welches Dokumenten-Objektmodell wir haben
	var DOM = "";
	if(document.getElementById) DOM="DOM"; 	// DOM-Objektmodell
	if(document.all) DOM="DHTML"; 			// DHTML-Objektmodell
	if(document.layers) DOM="NS4"; 			// Netscape-4-Objetmodell
	
	return(DOM);
} 

function ShowMenu(MenuNr) {
	//Mache Menü sichtbar und positioniere es
	switch(DOM) {
		case "DHTML":
		eval('document.all["' + menu[MenuNr].name + '"].style.visibility="visible"');	
		eval('document.all["' + menu[MenuNr].name + '"].style.left="' + menu[MenuNr].x + 'px"');	
		eval('document.all["' + menu[MenuNr].name + '"].style.top="' + menu[MenuNr].y + 'px"');	
		break;

		case "NS4":
		eval('document.layers["' + menu[MenuNr].name + '"].visibility="show"');	
		eval('document.layers["' + menu[MenuNr].name + '"].left="' + menu[MenuNr].x + '"');	
		eval('document.layers["' + menu[MenuNr].name + '"].top="' + menu[MenuNr].y + '"');	
		break;

		case "DOM":
		eval('document.getElementById("' + menu[MenuNr].name + '").style.visibility="visible"');	
		eval('document.getElementById("' + menu[MenuNr].name + '").style.left="' + menu[MenuNr].x + 'px"');	
		eval('document.getElementById("' + menu[MenuNr].name + '").style.top="' + menu[MenuNr].y + 'px"');	
		break;

		default:
		alert("Default-Wert in ShowMenu()");
		break;
	}
}

function HideMenu(MenuNr) {
	//Mache Menü sichtbar und positioniere es
	switch(DOM) {
		case "DHTML":
		eval('document.all["' + menu[MenuNr].name + '"].style.visibility="hidden"');	
		break;

		case "NS4":
		eval('document.layers["' + menu[MenuNr].name + '"].visibility="hide"');	
		break;

		case "DOM":
		eval('document.getElementById("' + menu[MenuNr].name + '").style.visibility="hidden"');	
		break;
		
		default:
		break;
	}

}

function SetMouseOverButton(i)  {
	if(document.images) {
		eval('document.' + menu[i].imagename + '.src = document.menuImageMouseOver[i].src');
	}
}

function SetStandardButton(i)  {
	if(document.images) {
		eval('document.' + menu[i].imagename + '.src = document.menuImageStandard[i].src');	}
}

function SetSelectedButton(i)  {
	if(document.images) {
	eval('document.' + menu[i].imagename + '.src = document.menuImageSelected[i].src');	}
}

function DisplayMenue(MenuNr) {
fn = "DisplayMenue " + MenuNr;
	// Zeige das gewählte Menü und verstecke alle anderen
	
	var i;
 	for(i=1; i <= AnzahlMenues; i++) {
 		if(i==MenuNr) {
			ShowMenu(i);
			SetMouseOverButton(i);
		} else {
			HideMenu(i)
			SetStandardButton(i);
		}
 	}
}

function HideAllMenues() {
	// Verstecke alle Menüs
	var i;
 	for(i=1; i <= AnzahlMenues; i++) {
		HideMenu(i)
		SetStandardButton(i);
	}
}


function PreloadImages() {

	document.menuImageStandard = new Array(AnzahlMenues+1);
	document.menuImageMouseOver = new Array(AnzahlMenues+1);
	document.menuImageSelected = new Array(AnzahlMenues+1);
	
	for(var i=1; i <= AnzahlMenues; i++) {
		document.menuImageStandard[i] = new Image;
		document.menuImageMouseOver[i] = new Image;
		document.menuImageSelected[i] = new Image;
		
		document.menuImageStandard[i].src = ImageSourcePath + "w_" + menu[i].imagefilename + ".gif";
		document.menuImageMouseOver[i].src = ImageSourcePath + "b_" + menu[i].imagefilename + ".gif";
		document.menuImageSelected[i].src = ImageSourcePath + "s_" + menu[i].imagefilename + ".gif";

	}
}

/*
function findObj(myObject, myDocument) {
	
  var p, i, foundObj;
  if(!myDocument) myDocument = document;
  
//  if( (p = myObject.indexOf("?")) > 0 && parent.frames.length)   {
//    myDocument = parent.frames[myObject.substring(p+1)].document;
//    myObject = myObject.substring(0,p);
//  }

  if(!(foundObj = myDocument[myObject]) && myDocument.all) foundObj = myDocument.all[myObject];

  for (i=0; !foundObj && i < myDocument.forms.length; i++) 
    foundObj = myDocument.forms[i][theObj];

  for(i=0; !foundObj && myDocument.layers && i < myDocument.layers.length; i++) 
    foundObj = findObj(myObject,myDocument.layers[i].document);

  if(!foundObj && document.getElementsByName) foundObj = document.getElementsByName(myObject);
  if(!foundObj && document.getElementById) foundObj = document.getElementById(myObject);
  
  return foundObj;
}
*/


function findObj(theObj, theDoc) {

  var p, i, foundObj;

	  if(!theDoc) theDoc = document;

/*	  if( (p = theObj.indexOf("?")) > 0 && parent.frames.length)
	  {
	    theDoc = parent.frames[theObj.substring(p+1)].document;
    	theObj = theObj.substring(0,p);
	  }
*/
	  if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];
	  for (i=0; !foundObj && i < theDoc.forms.length; i++) 
    	foundObj = theDoc.forms[i][theObj];
	  for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) 
    	foundObj = findObj(theObj,theDoc.layers[i].document);
	  if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);

  
  return foundObj;
}


function setSubmenuColor(myObj, objCol) {
	// setzt die Farbe eines Submenü-Textes

  obj = findObj(myObj.id);

  if (obj && obj.style) {

  	switch(objCol) {
		case "over":
			if(myObj == currentSubMenu) {
				obj.style.color = '#FF0000';
			} else {
				obj.style.color = '#0033CC';
			}	

			break;
		case "out":
			if(myObj == currentSubMenu) {
				obj.style.color = '#FF0000';
			} else {
				obj.style.color = '#333333';
			}	
			break;

		case "active":
	  		obj.style.color = '#FF0000';
			break;

		case "inactive":
	  		obj.style.color = '#333333';
			break;

	}	
	//alert(myObj.name + "   " + currentSubMenu.name + "   " + objCol);
  }
}




function setSubmenuActive(myObj, mainMenuButton) {
	//setzt den ausgewählten Link auf rot und setzt den zugehörigen Hauptmenü-Button auf Status 'ausgewählt'.
	//Das zuletzt aktive Untermenü wird wieder auf Standardfarbe gesetzt.

	if(currentSubMenu) setSubmenuColor(currentSubMenu, "inactive");
	setSubmenuColor(myObj, "active");
	SetSelectedButton(mainMenuButton);
	currentSubMenu = myObj;
	//alert("xID=" + myObj.id);
	//if(currentSubMenu.name) setSubmenuColor(myObj, 'active');	
}	



function AdjustMenu(MainMenuNr,SubMenu) {
	DisplayMenue(MainMenuNr);
	obj = findObj(SubMenu);
	setSubmenuActive(obj, MainMenuNr)
}