/***
//020227(rm)
//	added function clearHighlights()
//	added MyStackFIFO, a simple fifo stack implementation
//	020429 (hl)
//  added function MyMenuStatusHighlight ()
***/
// for debugging
function objectProperties(Objekt, ObjName){
	var Ergebnis = "";
	for (var Eigenschaft in Objekt){
		Ergebnis += (ObjName?ObjName+".":"") + Eigenschaft + " = " + Objekt[Eigenschaft] + "     -     ";
	}
	return Ergebnis;
}
//------------------------------------------------------------------
// Hilfsklasse MyStackFIFO
//------------------------------------------------------------------

function MyStackFIFO(){
	this.pop = MyStackFIFOPop
	this.push = MyStackFIFOPush
	this.size = 0
	this.first = null
	this.last = null
	this.getSize = MyStackFIFOGetSize
}

function MyStackFIFOPop(){
	if (this.size < 1){
		return null
	}else{
		var obj = this.last
		this.last = this.last.previous
		this.size--
		return obj.value
	}
}

function MyStackFIFOObj( obj ){
	this.previous = null
	this.value = obj
}

function MyStackFIFOPush( stackObj ){
	var obj = new MyStackFIFOObj( stackObj )
	if(this.size < 1){
		this.first = obj
		this.last = obj
	}else{
		this.first.previous = obj
		this.first = obj
	}
	this.size++
	return true
}
function MyStackFIFOGetSize(){
	return this.size
}

//------------------------------------------------------------------
// MyMenu
//------------------------------------------------------------------

//------------------------------------------------------------------
// creating
//------------------------------------------------------------------

function Point(x, y){ this.x = x; this.y = y; }

function MyMenuElement( isRoot ){
	this.id = "MyMenuElement" + MyMenuIndex++ // kann überschieben werden
	this.object = null
	this.objectHigh = null
	this.findObject = MyMenuFindObject
	
	this.isOpen = false
	this.isHighlighted = false
	this.isPressed = false
	this.isStatusHighlight = false
	this.sticky = false
	this.press = MyMenuPress	
	this.isRoot = (typeof isRoot == "undefined") ? false : true
	this.parent = this
	this.child = new Array()
	this.hasChildren = false
	this.templateLow = ""
	this.templateHigh = ""
	this.toHTML = MyMenuToHTML
	this.writeToHTML = MyMenuWriteToHTML

	this.openDirection = "right"
	this.listDirection = "down"
	this.open = MyMenuOpen
	this.close = MyMenuClose
	this.show = MyMenuShow
	this.collaps = MyMenuCollaps

	this.x = 0
	this.y = 0
	this.path = false
	this.text = false
	this.rootDir = false
	this.link = false
	this.rootDir_link = false
	this.target = false
	this.picsrc = false
	
}
function MyMenuTemplate( sticky, isOpen, listDirection, openDirection, templateLow, templateHigh ){
	this.sticky = sticky
	this.isOpen = isOpen
	this.openDirection = openDirection
	this.listDirection = listDirection
	this.templateLow = templateLow
	this.templateHigh = templateHigh
}
function MyEntry( template, id, text, rootDir, link, target, picsrc ){
	var entry = new MyMenuElement()
	if (id) entry.id = id
	entry.templateLow = template.templateLow
	entry.templateHigh = template.templateHigh
	entry.sticky = template.sticky 
	entry.isOpen = template.isOpen
	entry.openDirection = template.openDirection
	entry.listDirection = template.listDirection
	entry.text = text
	entry.rootDir = rootDir
	entry.link = link
	entry.rootDir_link = rootDir + link
	entry.target = target
	entry.picsrc = picsrc
	var pos = window.MyPointer.child.length
	window.MyPointer.child[pos] = entry	
	window.MyPointer.child[pos].parent = window.MyPointer
	window.MyPointer.child[pos].RootMenuName = window.MyPointer.RootMenuName	
	window.MyPointer.hasChildren = true
	// Objecthirachie aufbauen
}
function MySubEntry( what ){
	if (what == "begin"){
		window.MyPointer = window.MyPointer.child[window.MyPointer.child.length-1]
	} else {
		window.MyPointer = window.MyPointer.parent
	}
}
//------------------------------------------------------------------
// building
//------------------------------------------------------------------

function MyMbuildIn( line, search, what ){ while(line.search(search) != -1){ line = line.replace(search, what); } return line }

function MyMenuToHTML(){
	var line = MyMenuToHTMLBuild( this.templateLow, this )
	line += MyMenuToHTMLBuild( this.templateHigh, this )
	return line + "\n"
}

function MyMenuToHTMLBuild( templateLine, object ){
	var line = templateLine
	line = MyMbuildIn(line, /__ID__/, object.id)
	line = MyMbuildIn(line, /__TEXT__/, object.text)
	line = MyMbuildIn(line, /__ROOTDIR__/, object.rootDir)
	line = MyMbuildIn(line, /__LINK__/, object.rootDir_link)
	line = MyMbuildIn(line, /__TARGET__/, object.target)
	line = MyMbuildIn(line, /__PICSRC__/, object.picsrc)
//alert(line)
	return line + "\n"
}
function MyMenuWriteToHTML(){
	var divs = (!this.isRoot) ? this.toHTML() : "";
	if (this.hasChildren){ for(var i=0; i < this.child.length; i++){ divs += this.child[i].writeToHTML() } }
	return divs
}
function MyMenuFindObject(){
	if (!this.isRoot){
		this.object = getLayer( this.id )
		this.objectHigh = getLayer( this.id + "high" )
		window.MyMenuHashtable[ this.id ] = this
		window.MyMenuHashtable[ this.id + "high" ] = this
		if ( !this.isRoot && LIBcheckBrowser.ns4 ){ // AUSNAHME FüR NS4
			this.object.onmouseover = function ShowMe(){ 
				MyMenuHighlight(this.id)
				// Ausnahme ns4 für nicht klickbaren Punkt im Homepagemenue begin	
					MyMenuStatus(this.id); 
				// Ausnahme ns4 für nicht klickbaren Punkt im Homepagemenue end
			}
			this.objectHigh.onmouseover = function HideHighMe(){
				MyMenuHighlight(this.id);
			}
			this.objectHigh.onmouseout = function HideMe(){ 
				obj = window.MyMenuHashtable[ this.id ]
				if (!obj.isPressed) hideLayer( getLayer( this.id ) )  
			}
		}
	}
	if (this.hasChildren){ for(var i=0; i < this.child.length; i++){ this.child[i].findObject() } }
}
//------------------------------------------------------------------
// display
//------------------------------------------------------------------
function MyMenuOpen( x, y ){
	var mypoint = new Point( x, y )
	var childpoint = new Point( mypoint.x, mypoint.y )
	if (!this.isRoot){ 
		this.isOpen = true
		this.show( mypoint.x, mypoint.y ) 
		switch( this.listDirection ){
			case "right":
				mypoint.x += getWidth( this.object );
			break;
			case "down":
				mypoint.y += getHeight( this.object );
			break;
			case "up":
				mypoint.y -= getHeight( this.object );
			break;
			case "left":
				mypoint.x -= getWidth( this.object );
			break;
		}
	}
	if (( this.isHighlighted || this.isPressed ) || this.isRoot ){
		if ( ( this.isHighlighted || this.isPressed ) && !this.isRoot ){
			switch( this.openDirection ){
				case "right":	
					childpoint.x += getWidth( this.object );
				break;
				case "down":
					childpoint.y += getHeight( this.object );
				break;
				case "up":
					childpoint.y -= getHeight( this.object );
				break;
				case "left":
					childpoint.x -= (getWidth( this.object )-42);
					childpoint.y -= (getHeight( this.object )-44);
				break;
				case "downleft":
					var w = 0;
					if(this.child.length>0){
						 w = getWidth(this.child[0].object)+2;
					}
					childpoint.x += (getWidth( this.object )-w);
					childpoint.y += getHeight( this.object );
				break;
			}
		}
		for(var i=0; i < this.child.length; i++){
			this.child[i].isOpen = true
			childpoint = this.child[i].open( childpoint.x, childpoint.y )
			this.alreadyOpen = true
		}	
	}
	if ( ( this.isHighlighted || this.isPressed ) && !this.isRoot ){
			switch( this.openDirection + "-" + this.listDirection ){
			case "down-down":
				mypoint.y = childpoint.y
			break;
		}
	}
	return mypoint
}
function MyMenuClose(){
	for(var i=0; i < this.child.length; i++){
		this.child[i].isOpen = false
		hideLayer( this.child[i].object )
		hideLayer( this.child[i].objectHigh )
		this.child[i].close()
	}	
}
function MyMenuShow( x, y ){
	if (this.isRoot || !this.isOpen) return
	moveLayerTo( this.object, x, y )
	moveLayerTo( this.objectHigh, x, y )
	this.x = x;	this.y = y
	showLayer( this.object )
	if ( this.isPressed || (this.isStatusHighlight && this.parent.isRoot) ) showLayer( this.objectHigh )
}
//------------------------------------------------------------------
// writing (and start point)
//------------------------------------------------------------------
function writeMyMenu( MenuName, StartPoint, rootPath ){
	window.MyMenuInitHighlight = true

	if (typeof window.MyMenuRoot == "undefined"){
		window.MyMenuLastOpen = ""
		window.MyMenuTimer = 0
		window.MyMenuTimerHome = 0
		window.MyMenuIndex=0
		window.MyMenuRoot = new Array()
		window.MyMenuHashtable = new Array()
	}

	window.MyMenuRoot[ MenuName ] = new MyMenuElement( true )
	var obj = window.MyMenuRoot[ MenuName ]
	// alert(objectProperties(window.MyMenuRoot["Left"]))
	obj.RootMenuName = MenuName
	obj.StartPoint = StartPoint
	window.MyPointer = obj
	// 
	MyMenuEntries ( MenuName, rootPath )
	document.write( obj.writeToHTML() )
	obj.findObject() // initialisierung
	obj.open( obj.StartPoint.x, obj.StartPoint.y )
}
//------------------------------------------------------------------
// public this
//------------------------------------------------------------------
function MyMenuPress(){	
	this.isPressed = true; 
	if (this.parent && !this.isRoot){ this.parent.press() }
}
function MyMenuCollaps(){
	var waspressed = this.isPressed
	if (!this.isRoot){ 
		this.isPressed = false;
		if (!this.sticky) this.isOpen = false; 
		hideLayer( this.object )
		hideLayer( this.objectHigh )
	}
	if (this.hasChildren && waspressed){ for(var i=0; i < this.child.length; i++){ this.child[i].collaps() }}
}
//------------------------------------------------------------------
// public obj
//------------------------------------------------------------------
//  Update Funktion für das Menue
function MyMenuUpdate( MenuName ){ 
	var obj = window.MyMenuRoot[ MenuName ]
	obj.open( obj.StartPoint.x, obj.StartPoint.y )
}
// Update Funktion bei Ändern der Fenstergrösse
function MyMenuUpdateSlide( MenuName, x, y ){ 
	var obj = window.MyMenuRoot[ MenuName ]
	obj.StartPoint = new Point( x, y )
	obj.open( obj.StartPoint.x, y )
}
//------------------------------------------------------------------
//  Setzt den Status, High- und Lowlight für Navtop
function MyMenuStatus( name ){
	if ( typeof window.MyMenuHashtable[ name ] == "undefined" ) return
	var obj = window.MyMenuHashtable[ name ]
	var MenuName = obj.RootMenuName
		window.MyMenuRoot[ MenuName ].collaps()
		obj.press()
	MyMenuUpdate( MenuName );
}
function MyMenuHighlight( name ){ 
	var obj = window.MyMenuHashtable[ name ]
	if( window.stackOfHighlightedObjects!=null && window.stackOfHighlightedObjects!="undefined" )	
		window.stackOfHighlightedObjects.push(obj)
	clearHighlights()
	showLayer( obj.objectHigh )
	window.MyMenuLastOpen = name
	clearTimeout(window.MyMenuTimer)
	clearTimeout(window.MyMenuTimerHome)
}
function clearHighlights(){
	if( window.stackOfHighlightedObjects!=null && window.stackOfHighlightedObjects!="undefined" ){
		while( window.stackOfHighlightedObjects.getSize() > 1 ){
			var obj = window.stackOfHighlightedObjects.pop()
			if (!obj.isPressed)
				MyMenuLowlight(obj.id)	
		}
	}
}
function MyMenuLowlight( name ){ 
	var obj = window.MyMenuHashtable[ name ]	
	if (!obj.isPressed) hideLayer( obj.objectHigh )
	if (obj.RootMenuName != "Left"){
		window.MyMenuTimer = setTimeout("MyMenuLowlightTimed()", 100)
	}
}
function MyMenuLowlightTimed(){
	var obj = window.MyMenuHashtable[ window.MyMenuLastOpen ]
	MyMenuUpdate( obj.RootMenuName )
}
function MyMenuIsHighlighted( obj ){ 
	if (!window.MyMenuInitHighlight) return false
	if ( window.MyMenuInitHighlightLink && alink == window.MyMenuInitHighlightLink ){
		return true
	} else if ( obj.isPressed ){
		return true
	}
	return false
}
//  Setzt den Lowlight für HomeTop
function MyMenuLowlightHome( name ){ 
	var obj = window.MyMenuHashtable[ name ]	
	if (!obj.isPressed && !this.isStatusHighlight) hideLayer( obj.objectHigh )
	if (obj.RootMenuName != "Left"){
		var delay =100;
		if(LIBcheckBrowser.ns4) delay=1000;
		window.MyMenuTimerHome = setTimeout("MyMenuLowlightTimedHome()", delay)
	}
}
// um den Bereichsstatus zu setzen (moellerGmbH)
function MyMenuStatusHighlight (name){
    //alert(name);
	if ( typeof window.MyMenuHashtable[ name ] == "undefined" ) return
	var obj = window.MyMenuHashtable[ name ]
	var MenuName = obj.RootMenuName
	obj.press()
	obj.isStatusHighlight = true
	showLayer( obj.objectHigh )
}
function MyMenuLowlightTimedHome(){
	var obj = window.MyMenuHashtable[ window.MyMenuLastOpen ]
	window.MyMenuRoot[ obj.RootMenuName ].collaps()
	MyMenuUpdate( obj.RootMenuName )
}

//------------------------------------------------------------------
// customizable
//------------------------------------------------------------------

var menuArray=new Array()
var topStatusHighlight="";
function showSubmenu(obj){
	if (!document.getElementById) return
	var ID=obj.id
	if (ID.indexOf("sub_") != -1) ID = ID.substring(4);

	clearTimeout(menuArray[ID])
	menuArray[ID]="NONE"
	if(obj){
		obj.style.color="#000000";
		/*obj.style.backgroundColor="#4AB780";*/
	}
	var entry = document.getElementById("sub_"+ID);
	if(entry){
		entry.style.display="inline";
		entry.style.left=parseInt(obj.style.left)
	}
}
function topMenuelowlight (ID){
    if (topStatusHighlight != ID)
      lowlight(ID);
}
function topMenuehighlight (ID){
    if (topStatusHighlight != ID)
      highlight(ID);
}
function hideSubmenu(obj){
	if (!document.getElementById) return
	var ID=obj.id
	if (ID.indexOf("sub_") != -1) ID = ID.substring(4);
    menuArray[ID] = setTimeout("hideSubmenuTimed('"+ID+"')", 100)
}
function hideSubmenuTimed(ID){
	if (!document.getElementById) return
	if(menuArray[ID]!="NONE"){
		var obj = document.getElementById(ID);
		if (!obj.isHighlighted){
			obj.style.color="#000000";
			/*obj.style.backgroundColor="";*/
		}
		var entry = document.getElementById("sub_"+ID);
		if(entry) entry.style.display = "none";
	}
}
function MyMenuStatusHighlightTopnavi(ID){
	var entry = document.getElementById(ID);
	if(entry){
        topStatusHighlight = ID;
		entry.style.color="#000000";       
		/*entry.style.backgroundColor="#4AB780";*/
		entry.isHighlighted=true
		entry.className="highlighed" 
        var images=document.getElementsByTagName("img")
        for (var i=0; i < images.length; i++){
            if (images[i].name==ID){
                var pic=images[i];
                var picsrc =pic.src
                picsrc=picsrc.substring(0,picsrc.indexOf(".gif"))+"_st.gif"
                pic.src=picsrc
                break;
            }
        }
	}
}

///speziell für Moeller angepasst
var isMinNS4 = (navigator.appName.indexOf("Netscape") >= 0 &&  parseFloat(navigator.appVersion) >= 4) ? 1 : 0;
var isMinIE4 = (document.all) ? 1 : 0;
var isMinIE5 = (isMinIE4 && navigator.appVersion.indexOf("5.") >= 0 || isMinIE4 && navigator.appVersion.indexOf("6.") >= 0) ? 1 : 0;
/******************************************************************************
* Copyright 2000 by Mike Hall.                                                *
* Web address: http://www.brainjar.com                                        *
* Last update: March 29, 2000.                                                *
******************************************************************************/
// MODIFIZIERT! (sm, dr - 001124.01:17)
// eintraege werden erst aufgebaut, wenn sie gebraucht werden!

var popUpMenuScrollbarSize = 16;    // Estimated width of scrollbars, used in NS
                                    // when positioning menus near window edge.
var popUpMenus = new Array();       // Used to track all menus.
function PopUpMenuItem(text, link) {
  this.text = text;    // Item text.
  this.link = link;    // Link URL or JavaScript code.
  this.isSeparator = false;    // Separator flag.
  this.subMenu = null;         // Submenu to open when item is active.
}
function PopUpMenu(width) {
  this.width  = width;
  this.height = 0;
  this.items = new Array();
  this.created = false;
  this.border    = 2;
  this.padding   = 4;
  this.spSize    = 2;
  this.spPadding = 1;
  this.fgColor    = "#000000";
  this.bgColor    = "#c0c0c0";
  this.hiFgColor  = "#ffffff";
  this.hiBgColor  = "#000080";
  this.bdHiColor  = "#e0e0e0";
  this.bdShColor  = "#000000";
  this.spHiColor  = "#e0e0e0";
  this.spShColor  = "#808080";
  this.fontFamily = "MS Sans Serif,Arial,Helvetica,sans-serif";
  this.fontStyle  = "plain";
  this.fontWeight = "normal";
  this.fontSize   = "8pt";
  this.noneImage   = "graphics/transparent.gif";
  this.normImage   = "graphics/default_norm.gif";
  this.highImage   = "graphics/default_high.gif";
  this.imageWidth  = 8;
  this.imageHeight = 12;
  this.left = 0;
  this.top = 0;
  this.right = this.width;
  this.bottom = this.height;
  this.parentMenu = null;
  this.openChild = null;
  this.offsetX = 0;
  this.offsetY = 0;
  this.isStatic = false;
  this.isOpen = false;
  this.isSubmenu = false;
  this.setSizes = popUpMenuSetSizes;
  this.setColors = popUpMenuSetColors;
  this.setFont = popUpMenuSetFont;
  this.setImages = popUpMenuSetImages;
  this.addItem = popUpMenuAddItem;
  this.addSeparator = popUpMenuAddSeparator;
  this.addSubmenu = popUpMenuAddSubmenu;
  this.copyAttributes = popUpMenuCopyAttributes;
  this.create = popUpMenuCreate;
  this.open = popUpMenuOpen;
  this.close = popUpMenuClose;
  this.setStatic = popUpMenuSetStatic;
  this.moveTo = popUpMenuMoveTo;
  this.moveBy = popUpMenuMoveBy;
  this.getzIndex = popUpMenuGetzIndex;
  this.setzIndex = popUpMenuSetzIndex;
  this.index = popUpMenus.length;
  popUpMenus[this.index] = this;
}
function popUpMenuSetSizes(border, padding, spSize, spPadding) {
  if (!this.created) {
    this.border = border;
    this.padding = padding;
    this.spSize = spSize;
    this.spPadding = spPadding;
  }
}
function popUpMenuSetColors(fgColor, bgColor, hiFgColor, hiBgColor,
                            bdHiColor, bdShColor, spHiColor, spShColor) {
  if (!this.created) {
    this.fgColor = fgColor;
    this.bgColor = bgColor;
    this.hiFgColor = hiFgColor;
    this.hiBgColor = hiBgColor;
    this.bdHiColor = bdHiColor;
    this.bdShColor = bdShColor;
    this.spHiColor = spHiColor;
    this.spShColor = spShColor;
  }
}
function popUpMenuSetFont(family, style, weight, size) {
  if (!this.created) {
    this.fontFamily = family;
    this.fontStyle = style;
    this.fontWeight = weight;
    this.fontSize = size;
  }
}
function popUpMenuSetImages(none, norm, high, width, height) {
  if (!this.created) {
    this.noneImage = none;
    this.normImage = norm;
    this.highImage = high;
    this.imageWidth = width;
    this.imageHeight = height;
  }
}
function popUpMenuAddItem(item) {
  if (!this.created)
    this.items[this.items.length] = item;
}
function popUpMenuAddSeparator() {
  if (!this.created) {
    this.addItem(new PopUpMenuItem("", ""));
    this.items[this.items.length - 1].isSeparator = true;
  }
}
function popUpMenuAddSubmenu(item, menu) {
  if (!this.created && !menu.isSubmenu) {
    item.subMenu = menu;
    this.items[this.items.length] = item;
    menu.parentMenu = this;
    menu.isSubmenu = true;
  }
}
function popUpMenuCopyAttributes(menu) {
  if (!this.created && menu != null) {
    this.border = menu.border;
    this.padding = menu.padding;
    this.spSize = menu.spSize;
    this.spPadding = menu.spPadding;
    this.fgColor = menu.fgColor;
    this.bgColor = menu.bgColor;
    this.hiFgColor = menu.hiFgColor;
    this.hiBgColor = menu.hiBgColor;
    this.bdHiColor = menu.bdHiColor;
    this.bdShColor = menu.bdShColor;
    this.spHiColor = menu.spHiColor;
    this.spShColor = menu.spShColor;
    this.fontFamily = menu.fontFamily;
    this.fontStyle = menu.fontStyle;
    this.fontWeight = menu.fontWeight;
    this.fontSize = menu.fontSize;
    this.noneImage = menu.noneImage;
    this.normImage = menu.normImage;
    this.highImage = menu.highImage;
    this.imageWidth  = menu.imageWidth;
    this.imageHeight = menu.imageHeight;
  }
}
function popUpMenuCreate() {
  var hasSubmenus;
  var norm, high, end1, end2, img1, img2, sep;
  var text;
  var noimg, imgsrc;
  var width, height;
  var str;
  var x, y;
  var i;
  var bevelLayers;
  if (!isMinNS4 && !isMinIE4)
    return;
  if (this.created) return;
  window.status = "Sitemap: Building menu...";
//  showBuildingMenu()
  hasSubmenus = false;
  for (i = 0; i < this.items.length; i++)
    if (this.items[i].subMenu != null)
      hasSubmenus = true;
  norm = '<table border=0 cellpadding=' + this.padding
       + ' cellspacing=0 width="100%"><tr valign=top><td>'
       + '<span style="color:' + this.fgColor + ';'
       + 'font-family:' + this.fontFamily + ';'
       + 'font-size:' + this.fontSize + ';'
       + 'font-style:' + this.fontStyle + ';'
       + 'font-weight:' + this.fontWeight + ';">';
  high = '<table border=0 cellpadding=' + this.padding
       + ' cellspacing=0 width="100%"><tr valign=top><td>'
       + '<span style="color:' + this.hiFgColor + ';'
       + 'font-family:' + this.fontFamily + ';'
       + 'font-size:' + this.fontSize + ';'
       + 'font-style:' + this.fontStyle + ';'
       + 'font-weight:' + this.fontWeight + ';">';
  end1 = '</span></td>';
  end2 = '</tr></table>';
  img1 = '';
  img2 = '';
  noimg = '';
  if (hasSubmenus) {
    img1 = '<td align=right><img border=0 hspace=0 vspace=0 src="';
    img2 = '" width=' + this.imageWidth + ' height=' + this.imageHeight + '></td>';
    noimg = this.noneImage;
  }
  sep = '<table border=0 cellpadding=' + this.spPadding
      + ' cellspacing=0 width="100%"><tr><td align=center>'
      + '<table border=0 cellpadding=0 cellspacing=0 width="100%">'
      + '<tr bgcolor="' + this.spShColor + '"><td>'
      + '<img border=0 hspace=0 vspace=0 src="' + this.noneImage + '"'
      + ' width=1 height=' + (this.spSize - Math.round(this.spSize / 2)) + '>'
      + '</td></tr>';
  if (this.spSize - Math.round(this.spSize / 2) > 0)
    sep += '<tr bgcolor="' + this.spHiColor + '"><td>'
        + '<img border=0 hspace=0 vspace=0 src="' + this.noneImage + '"'
        + ' width=1 height=' + Math.round(this.spSize / 2) + '>'
        + '</td></tr>';
  sep += '</table></td></tr></table>';
  str = "";
  if (isMinNS4) {
    this.baseLayer = new Layer(this.width);
    setBgColor(this.baseLayer, this.bdShColor);
  }
  bevelLayers = new Array();
  if (isMinNS4)
    for (i = 0; i < this.border; i++) {
      bevelLayers[bevelLayers.length] = new Layer(this.width, this.baseLayer);
      bevelLayers[bevelLayers.length - 1].visibility = "inherit";
      bevelLayers[bevelLayers.length] = new Layer(this.width, this.baseLayer);
      bevelLayers[bevelLayers.length - 1].visibility = "inherit";
    }
  if (isMinIE4)
    for (i = 0; i < this.border; i++)
      str += '<div id="popUpMenu' + this.index + '_bevel' + (2 * i) + '"'
          +  ' style="position:absolute;'
          +  ' width:' + this.width + 'px;'
          +  ' height:100%;">'
          +  '</div>\n'
          +  '<div id="popUpMenu' + this.index + '_bevel' + (2 * i + 1) + '"'
          +  ' style="position:absolute;'
          +  ' width:' + this.width + 'px;'
          +  ' height:100%;">'
          +  '</div>\n';
  width = this.width - 2 * this.border;
  for (i = 0; i < this.items.length; i++) {
    if (this.items[i].subMenu == null)
      imgsrc = noimg;
    else
      imgsrc = this.normImage;
    if (this.items[i].isSeparator)
      text = sep;
    else
      text = norm + this.items[i].text + end1 + img1 + imgsrc + img2 + end2;
    if (isMinNS4) {
      this.items[i].normLayer = new Layer(width, this.baseLayer);
      this.items[i].normLayer.document.open();
      this.items[i].normLayer.document.write(text);
      this.items[i].normLayer.document.close();
      this.items[i].normLayer.visibility = "inherit";
      setBgColor(this.items[i].normLayer, this.bgColor);
    }
    if (isMinIE4)
      str += '<div id="popUpMenu' + this.index + '_norm' + i + '"'
          +  ' style="position:absolute;'
          +  ' background-color:' + this.bgColor + ';'
          +  ' width:' + width + 'px;">' + text + '</div>\n';
    if (this.items[i].subMenu == null)
      imgsrc = noimg;
    else
      imgsrc = this.highImage;
    if (this.items[i].isSeparator)
      text = sep;
    else
      text = high + this.items[i].text + end1 + img1 + imgsrc + img2 + end2;
    if (isMinNS4) {
      this.items[i].highLayer = new Layer(width, this.baseLayer);
      this.items[i].highLayer.document.open();
      this.items[i].normLayer.document.write(text);
      this.items[i].highLayer.document.close();
      this.items[i].highLayer.visibility = "hide";
      setBgColor(this.items[i].highLayer, this.hiBgColor);
    }
    if (isMinIE4)
      str += '<div id="popUpMenu' + this.index + '_high' + i + '"'
          +  ' style="position:absolute;'
          +  ' background-color:' + this.hiBgColor + ';'
          +  ' width:' + width + 'px;'
          +  ' visibility:hidden;">' + text + '</div>\n';
    if (isMinNS4) {
      this.items[i].dmmyLayer = new Layer(width, this.baseLayer);
      this.items[i].dmmyLayer.visibility = "inherit";
    }
    if (isMinIE4)
      str += '<div id="popUpMenu' + this.index + '_dmmy' + i + '"'
          +  ' style="position:absolute;';
//changed010727(rm): added next two lines, fixed mouseover problem in IE5.5
      str += ' cursor : hand;'
          +  ' background-image : url(' + this.noneImage + ');';
      str += ' width:' + width + 'px;">'
          +  '</div>\n';
  }
  if (isMinIE4 && !isMinIE5) {
    x = getPageScrollX();
    y = getPageScrollY();
    window.scrollTo(getPageWidth(), getPageHeight());
  }
  if (isMinIE4) {
    str = '<div id="popUpMenu' + this.index + '_base"'
        + ' style="position:absolute; left:0px; top:0px;'
        + ' width:' + this.width + 'px;'
        + ' overflow:hidden;'
        + ' visibility:hidden;">'
        + str
        + '</div>\n';
    document.body.insertAdjacentHTML("beforeEnd", str);
    if (!isMinIE5)
      window.scrollTo(x, y);
    this.baseLayer = getLayer("popUpMenu" + this.index + "_base");
    for (i = 0; i < 2 * this.border; i++) {
      bevelLayers[bevelLayers.length] =
        getLayer("popUpMenu" + this.index + "_bevel" + (2 * i));
      bevelLayers[bevelLayers.length] =
        getLayer("popUpMenu" + this.index + "_bevel" + (2 * i + 1));
    }
  }
  x = this.border;
  y = this.border;
  height = 0;
  for (i = 0; i < this.items.length; i++) {
    if (this.items[i].subMenu) {
      this.items[i].subMenu.parentItem = this.items[i];
      this.items[i].subMenu.offsetX = this.width - (this.border + this.padding);
      this.items[i].subMenu.offsetY = y;
    }
    if (isMinIE4) {
      this.items[i].normLayer = getLayer("popUpMenu" + this.index + "_norm" + i);
      this.items[i].highLayer = getLayer("popUpMenu" + this.index + "_high" + i);
      this.items[i].dmmyLayer = getLayer("popUpMenu" + this.index + "_dmmy" + i);
    }
    moveLayerTo(this.items[i].normLayer, x, y);
    moveLayerTo(this.items[i].highLayer, x, y);
    moveLayerTo(this.items[i].dmmyLayer, x, y);
    height = getHeight(this.items[i].normLayer);
    y += height;
    clipLayer(this.items[i].normLayer, 0, 0, width, height);
    clipLayer(this.items[i].highLayer, 0, 0, width, height);
    if (isMinIE4) {
      this.items[i].dmmyLayer.style.pixelWidth = width;
      this.items[i].dmmyLayer.style.pixelHeight = height;
    }
    clipLayer(this.items[i].dmmyLayer, 0, 0, width, height);
    if (!this.items[i].isSeparator) {
      this.items[i].dmmyLayer.index = this.index;
      this.items[i].dmmyLayer.itemIndex = i;
      this.items[i].dmmyLayer.onmouseover = popUpMenuItemOn;
      this.items[i].dmmyLayer.onmouseout = popUpMenuItemOff;
      if (isMinNS4) {
        this.items[i].dmmyLayer.document.index = this.index;
        this.items[i].dmmyLayer.document.itemIndex = i;
        this.items[i].dmmyLayer.document.captureEvents(Event.MOUSEUP);
        this.items[i].dmmyLayer.document.onmouseup = popUpMenuItemClick;
      }
      if (isMinIE4)
        this.items[i].dmmyLayer.onclick = popUpMenuItemClick;
    }
  }
  this.height = y + this.border;
  if (isMinIE4)
    this.baseLayer.style.height = this.height;
  setBgColor(this.baseLayer, this.bdShColor);
  clipLayer(this.baseLayer, 0, 0, this.width, this.height);
  this.baseLayer.index = this.index;
  //hier wird eingestellt,ob das Menue offen bleibt oder nicht:
  //this.baseLayer.onmouseout = popUpMenuOff;
  for (i = 0; i < this.border; i++) {
    clipLayer(bevelLayers[2 * i], i, i, this.width - i, this.height - i);
    setBgColor(bevelLayers[2 * i], this.bdHiColor);
    clipLayer(bevelLayers[2 * i + 1], (i + 1), (i + 1), this.width, this.height);
    setBgColor(bevelLayers[2 * i + 1], this.bdShColor);
    if (isMinIE4) {
      bevelLayers[i].index = this.index;
      bevelLayers[i].onmouseout = popUpMenuOff;
    }
  }
  this.created = true;
/*
  for (i = 0; i < this.items.length; i++)
    if (this.items[i].subMenu && !this.items[i].subMenu.created)
      this.items[i].subMenu.create();
*/
  window.status = "Sitemap: Done.";
//  hideBuildingMenu()
  if (this.parentMenu == null)
    setTimeout('window.status = window.defaultStatus', 500);
}
function popUpMenuOpenTest(x, y) {
         var xTmp = x
         var yTmp = y
         setTimeout('popUpMenuOpenDelayed(xTmp,yTmp)', 1000)
}
function popUpMenuOpen(x, y) {
  var maxX, maxY;
  // Positionsanpassung zwischen Browsern
/*
  if(isMinIE4){
    x -= 1
    y -= 8  
  }
*/  
  if (this.created) {
    maxX = getPageScrollX() + getWindowWidth() - this.width;
    maxY = getPageScrollY() + getWindowHeight() - this.height;
    if (isMinNS4 && getWindowHeight() < getPageHeight())
      maxX -= popUpMenuScrollbarSize;
    if (isMinNS4 && getWindowWidth() < getPageWidth())
      maxY -= popUpMenuScrollbarSize;
    if ((x == null || y == null)) {
      if (this.isStatic && !this.isSubmenu) {
        x = this.left;
        y = this.top;
      }
      else {
        x = mouseX - (this.border + this.padding);
        y = mouseY - (this.border + this.padding);
      }
    }
    if (this.isSubmenu) {
      x = this.parentMenu.left + this.offsetX;
      y = this.parentMenu.top + this.offsetY;
      if (x > maxX)
        maxX = this.parentMenu.left + this.parentMenu.border - this.width;
      this.parentMenu.openChild = this;
    }
    if (this.isSubmenu || !this.isStatic) {
      x = Math.max(0, Math.min(maxX, x));
      y = Math.max(0, Math.min(maxY, y));
    }
    moveLayerTo(this.baseLayer, x, y);
    showLayer(this.baseLayer);
    this.isOpen = true;
    this.left   = x;
    this.top    = y;
    this.right  = x + this.width;
    this.bottom = y + this.height;
  }
}
function popUpMenuClose() {
  if (this.created) {
    if (this.openChild != null) {
      this.openChild.close();
      this.openChild = null;
    }
    hideLayer(this.baseLayer);
    this.isOpen = false;
    if (this.isSubmenu) {
      hideLayer(this.parentItem.highLayer);
      this.parentMenu.openChild = null;
    }
  }
}
function popUpMenuSetStatic(flag) {
  if (!this.isSubmenu)
    this.isStatic = flag;
}
function popUpMenuMoveTo(x, y) {
  if (this.created)
    moveLayerTo(this.baseLayer, x, y);
  this.left = x;
  this.top = y;
  this.right = this.left + this.width;
  this.bottom = this.top + this.height;
}
function popUpMenuMoveBy(dx, dy) {
  if (this.created)
    moveLayerBy(this.baseLayer, dx, dy);
  this.left += dx;
  this.top += dy;
  this.right += dx;
  this.bottom += dy;
}
function popUpMenuGetzIndex() {
  if (this.created)
    return(getzIndex(this.baseLayer));
  else
    return(0);
}
function popUpMenuSetzIndex(z) {
  var i;
  if (this.created) {
    setzIndex(this.baseLayer, z);
    for (i = 0; i < this.items.length; i++)
      if (this.items[i].subMenu != null)
        this.items[i].subMenu.setzIndex(z);
  }
}
function popUpMenuOff(e) {
  var menu;
  var wasClosed;
  menu = popUpMenus[this.index];
  if (isMinIE4) {
    mouseX = window.event.clientX + document.body.scrollLeft;
    mouseY = window.event.clientY + document.body.scrollTop;
    if (mouseX > menu.left  &&
        mouseX < menu.right &&
        mouseY > menu.top  &&
        mouseY < menu.bottom)
      return true;
  }
  wasClosed = false;
  // Is a child menu open?
  if (menu.openChild == null) {
    // No, close this menu if it is not static.
    if (!menu.isStatic) {
      menu.close();
      wasClosed = true;
    }
  }
  else {
    // Yes. Check the current mouse position to see if the pointer is over that child.
    if (mouseX < menu.openChild.left  ||
        mouseX > menu.openChild.right ||
        mouseY < menu.openChild.top   ||
        mouseY > menu.openChild.bottom) {
      // Mouse is not on the child menu. Close this menu if it is not static,otherwise close the child (because it should no longer be active).
      if (!menu.isStatic) {
        menu.close();
        wasClosed = true;
      }
      else
        menu.openChild.close();
    }
  }
  // If this menu was closed, start looping up the menu hierarchy checking each parent. If the mouse is not over the parent, close it. This will continue until all menus are closed or an active or static menu is found.
  while (wasClosed && menu.isSubmenu && !menu.parentMenu.isStatic) {
    wasClosed = false;
    if (mouseX < menu.parentMenu.left  ||
        mouseX > menu.parentMenu.right ||
        mouseY < menu.parentMenu.top   ||
        mouseY > menu.parentMenu.bottom) {
      menu.parentMenu.close();
      wasClosed = true;
      menu = menu.parentMenu;
    }
  }
  return true;
}
function popUpMenuItemOn(e) {
  var menu, item;
  menu = popUpMenus[this.index];
  item = menu.items[this.itemIndex];
  // If a child menu is open, close it (it may belong to some other item).
  if (menu.openChild)
    menu.openChild.close();
  showLayer(item.highLayer);
  // If this item has a submenu open it.
  if (item.subMenu)
  	item.subMenu.create()
  if (item.subMenu)
    item.subMenu.open(null, null);
}
function popUpMenuItemOff(e) {
  var menu, item;
  menu = popUpMenus[this.index];
  item = menu.items[this.itemIndex];
  // If this item has a submenu and it is open, exit.
  if (item.subMenu != null && item.subMenu.isOpen)
    return;
  hideLayer(item.highLayer);
}
function popUpMenuItemClick(e) {
  var menu, item;
  menu = popUpMenus[this.index];
  item = menu.items[this.itemIndex];
  if (item.link == "")
    return true;
  // Close the entire chain of menus.
  hideLayer(item.highLayer);
  while(menu.isSubmenu)
    menu = menu.parentMenu;
  if (!menu.isStatic)
    menu.close();
  else if (menu.openChild != null)
    menu.openChild.close();
  if (item.link.indexOf("javascript:") == 0)
    eval(item.link);
  else
    window.open(item.link, 'moellermain');
  return true;
}
var mouseX = 0;
var mouseY = 0;
if (isMinNS4)
  document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = popUpMenuGetMousePosition;
function popUpMenuGetMousePosition(e) {
  if (isMinNS4) {
    mouseX = e.pageX;
    mouseY = e.pageY;
  }
  if (isMinIE4) {
    mouseX = window.event.clientX + document.body.scrollLeft;
    mouseY = window.event.clientY + document.body.scrollTop;
  }
}
var origWidth;
var origHeight;
if (isMinNS4) {
  origWidth  = window.innerWidth;
  origHeight = window.innerHeight;
}
window.onresize = popUpMenuReload;
function popUpMenuReload() {
  if (isMinNS4 && origWidth == window.innerWidth && origHeight == window.innerHeight)
    return;
  if (isMinIE4)
    return;//setTimeout('window.location.href = window.location.href', 2000);
  else
    window.location.href = window.location.href;
}
