var SubMenu = function()
{
	this.id = null;
	this.menuLinks = new Array();
	this.subMenus = new Array();
	this.anzLi = new Array(); //Anzahl der Listenelemente in der MainUL
	this.li = new Array(); 
	
	if (typeof( nav ) == 'undefined')
  {  
  var nav = 0;
  }

	
	// init
	this.init = function(id)
	{
	    this.id = id;
	    this.menuLinks = this.id.childNodes;
	    //1. Ebene ul's
      this.anzLi = this.id.childNodes.length;
      for (i=0; i<this.anzLi; i++) {      
	    this.subMenus[i]= this.id.childNodes[i].getElementsByTagName('ul')[0];
	    }

	    
	    

	    
		this.internalMenus = document.getElementById('jsProdMenu').getElementsByTagName('li')[0].getElementsByTagName('ul')[0].childNodes;
		this.isOverInternalMenus = Array(this.internalMenus.length);
		
		this.setIsOverToFalse();  //isOver-Arrays auf FALSE initialisieren


		//onmouseover und onmouseout fuer menuLinks (Hauptnavigation)	  
	    for(i=1;i<this.menuLinks.length;i++){
	    	this.menuLinks[i].onmouseover = new Function('app.subMenu.showMenu('+i+')');
	    	this.menuLinks[i].onmouseout = new Function('app.subMenu.hideMenu('+i+')');
	    	
	    	if(i==3){
	    		this.menuLinks[i].getElementsByTagName('a')[0].href = 'javascript:void(0);';
	    	}
	    }
		
		//onmouseover und onmouseout fuer menuLinks fuer "Produkte" extra initialiseren
		document.getElementById('jsProdMenu').parentNode.onmouseover = new Function('app.subMenu.showMenu(3)');
		document.getElementById('jsProdMenu').parentNode.onmouseout = new Function('app.subMenu.showMenu(3)');
      
		//onmouseover und onmouseout fuer internalMenus (Navigation in "Produkte")
		for (i=0 ; i < this.internalMenus.length; i++) {
			this.internalMenus[i].firstChild.firstChild.nextSibling.onmouseover = new Function('app.subMenu.showInternalMenu('+i+')');
			this.internalMenus[i].getElementsByTagName('ul')[0].onmouseover = new Function('app.subMenu.showInternalMenuOnMenuIn('+i+')');
			this.internalMenus[i].onmouseout = new Function('app.subMenu.checkHideInternalMenu('+i+')');
		}
	};
	
/**
**	macht menuLinks sichtbar
**/
	this.showMenu = function(index) {

		if( !this.subMenus[index] )
			return;
		
		// Klasse hover fuer a's
		if (this.menuLinks[index].firstChild.className != 'active') {
			this.menuLinks[index].firstChild.className = 'hover';
		}
		
	  	// bei Produkte Submenu(div)) display:block
		if (index == 3){
			document.getElementById('jsProdMenu').parentNode.style.display = 'block';
			
			//global Funktion
			hideSelectboxes();
		}
		
	
		  // alle anderen Submenus display:block
		this.subMenus[index].style.display = 'block';
		
		// Erste ul erh�lt onmouseover
	  this.li = this.subMenus[index].childNodes;
	  for (i=0;i<this.li.length;i++) {
      if (this.li[i].getElementsByTagName('ul')[0]) {
        this.li[i].onmouseover = new Function('app.subMenu.showNextSubMenu(this)');
      }
    }
	  
    // Alle weiteren Ebenen erhalten onmouseover
	  for(i=0;i<this.li.length;i++){
	   for(j=0;j<this.li[i].getElementsByTagName('ul').length;j++ ) {
	     for(k=0;k<this.li[i].getElementsByTagName('ul')[j].childNodes.length;k++) {
	      if (this.li[i].getElementsByTagName('ul')[j].childNodes[k].getElementsByTagName('ul')[0]) {
        this.li[i].getElementsByTagName('ul')[j].childNodes[k].onmouseover = new Function('app.subMenu.showNextSubMenu(this)');
        }
	  }
	   }
	    }

	};

/**
**	macht einzelne Ebenen sichtbar
**/
this.showNextSubMenu = function(li) {

  li.getElementsByTagName('ul')[0].style.display = 'block';
  li.getElementsByTagName('ul')[0].parentNode.firstChild.className = 'hover';


};

/**
**	blendet menuLinks aus
**/
	this.hideMenu = function(index) {
	
		if( !this.subMenus[index] )
			return;
			
			// Klasse vom a entfernen
			if (this.menuLinks[index].firstChild.className != 'active') {
				this.menuLinks[index].firstChild.className = '';
			}
			// div jsprodmenu ausblenden
			if (index==3) {
				document.getElementById('jsProdMenu').parentNode.style.display = 'none';
				
			//global Funktion
			showSelectboxes();
			}
			// submenus ausblenden
			this.subMenus[index].style.display = 'none';
			
			// Erste ul erh�lt onmouseout
  	  this.li = this.subMenus[index].childNodes;
  	  for (i=0;i<this.li.length;i++) {
        if (this.li[i].getElementsByTagName('ul')[0]) {
          this.li[i].onmouseout = new Function('app.subMenu.hideLastSubMenu(this)');//window.setTimeout('app.subMenu.hideLastSubMenu(this)',100);
        }
      }
  	  
      // Alle weiteren Ebenen erhalten onmouseout
  	  for(i=0;i<this.li.length;i++){
  	   for(j=0;j<this.li[i].getElementsByTagName('ul').length;j++ ) {
  	     for(k=0;k<this.li[i].getElementsByTagName('ul')[j].childNodes.length;k++) {
  	      if (this.li[i].getElementsByTagName('ul')[j].childNodes[k].getElementsByTagName('ul')[0]) {
          this.li[i].getElementsByTagName('ul')[j].childNodes[k].onmouseout = new Function('app.subMenu.hideLastSubMenu(this)');//window.setTimeout('app.subMenu.hideLastSubMenu(this)',100);
          }
  	  }
  	   }
  	    }
			
	};

/**
**	blendet einzelne Ebenen aus
**/	
this.hideLastSubMenu = function(li) {
  li.getElementsByTagName('ul')[0].style.display = 'none';
  li.getElementsByTagName('ul')[0].parentNode.firstChild.className = '';
};	



/**
**	macht internalMenus sichtbar
**/ 
	this.showInternalMenu = function(index) {	
		this.internalMenus[index].getElementsByTagName('ul')[0].style.display = 'block';
		this.internalMenus[index].firstChild.getElementsByTagName('span')[0].className = "link hover";
		this.isOverInternalMenus[index] = true;
	}

/**
**	macht internalMenus sichtbar wenn er ueber dem Menu ist
**/ 
	this.showInternalMenuOnMenuIn = function(index) {	
		this.isOverInternalMenus[index] = true;
	}	

	
/**
**  Timer fuer HideInternalMenu
**/
	this.checkHideInternalMenu = function(index) {		
		this.isOverInternalMenus[index] = false;
		window.setTimeout('app.subMenu.hideInternalMenu('+index+')',100);
	}
	
/**
**	blendet internalMenus aus
**/ 
	this.hideInternalMenu = function(index) {		
		if (this.isOverInternalMenus[index] == false) {
			this.internalMenus[index].getElementsByTagName('ul')[0].style.display = 'none';
			
			if ((this.internalMenus[index].getElementsByTagName('ul')[0].style.display) != 'block') {
				this.internalMenus[index].firstChild.getElementsByTagName('span')[0].className = "link"; 
			}
		}
	}
	

	
/**
**  Setzt das Array "isOverInternalMenus" auf FALSE
**/
	this.setIsOverToFalse = function() {
		for (i=0; i<this.internalMenus.length; i++) {
			this.isOverInternalMenus[i] = false;
		}
	}
	
	
	
	
	
	
};
