naviMenu = {
	documentClick: function(e) {
		if(this == document) 
		{ 
			naviMenu.documentClick(e); return;
		}
		e = e || window.event;
		
		if(this.currentMenu && !containsDOM(this.currentMenu, e.target || e.srcElement))
		{
			this.currentMenu.hide();
		}
		
		if(e.target)
		{
			//mozilla
			if(this.currentMenu && e.target.className == "menuelink")
			{
				window.location = e.target.href;
			}
			
		}
		else
		{
			//ie
			if(this.currentMenu && e.srcElement.className == "menuelink")
			{
				window.location = e.srcElement.href;
			}
			
		}
		
		
	},
	
	init: function() {
			
		var fadeInDuration = 0.4;
		var fadeOutDuration = 0.4;
		var fadeInDuration2 = 0.3;
		var fadeOutDuration2 = 0.3;
		
	/*	this.langSelect = $dom('selectLanguage');
		myAddEvent(this.langSelect, 'change', function() {
			var vLang = this.options[this.selectedIndex].value;
			if(vLang)
			{
				var lagLink = this.ownerDocument.location.pathname;
				if(vLang == 'de')
				{
					lagLink = lagLink.replace('en/','');
				}
				if(vLang == 'en')
				{
					lagLink = lagLink.replace('cms/','cms/en/');
				}
				
				window.location = lagLink;
			}
		});*/
		
		var vAttributes = {
			fadeIn: {
				opacity: { to: 0.9 }
			},
			fadeIn2: {
				opacity: { to: 1 }
			},
			fadeOut: {
				opacity: { to: 0 }
			}
		};
		
		this.navi = $dom('naviMenu');
		for(var n = 0; n < this.navi.childNodes.length; n++) {
			var vMenuItem = this.navi.childNodes[n];
			if(vMenuItem.nodeName && vMenuItem.nodeName == '#text')
				continue;
			
			vMenuItem.isBox = (' ' + vMenuItem.className + ' ').indexOf(' boxed ') != -1;
			
			vMenuItem.links = vMenuItem.getElementsByTagName('a');
			vMenuItem.mainLinkHover = vMenuItem.links[0];
			vMenuItem.divs = vMenuItem.getElementsByTagName('div');
			vMenuItem.subMenu = vMenuItem.divs[0];
			vMenuItem.subMenu.parent = vMenuItem;
			vMenuItem.container = vMenuItem.getElementsByTagName('ul')[0];
			var vLiTags = vMenuItem.getElementsByTagName('li');
			vMenuItem.blueBottom = vLiTags[vLiTags.length-1];
//			vMenuItem.blueBottom = vMenuItem.divs[vMenuItem.divs.length-1];
			if(vMenuItem.blueBottom && vMenuItem.blueBottom.className == 'blueBottom')
				vMenuItem.blueBottom.style.width = vMenuItem.offsetWidth + 1 + 'px';
			/*
			try {
				vMenuItem.subMenu.style.display = 'table-row';
			} catch(e) {
				vMenuItem.subMenu.style.display = 'block';
			}
			*/
			removeClass(vMenuItem, 'out');
			var vFinalHight = vMenuItem.container.offsetHeight;
			vMenuItem.container.style.height = vFinalHight + 'px'; 
			vMenuItem.finalHeight = vFinalHight - (vMenuItem.container.offsetHeight - vFinalHight);
			vMenuItem.container.style.height = 0;
			addClass(vMenuItem, 'out');
			vMenuItem.subMenu.removeAttribute('style');
			vMenuItem.subMenu.style.filter = 'alpha(opacity=0)';
			vMenuItem.subMenu.style.visibility = 'visible';
			
			vMenuItem.menuMoveIn = new YAHOO.util.Anim(vMenuItem.container, {
				height: { from: 0, to: vMenuItem.finalHeight }
			}, fadeInDuration, YAHOO.util.Easing.easeOutStrong);
			vMenuItem.menuFadeIn = new YAHOO.util.Anim(vMenuItem.subMenu, vAttributes.fadeIn, fadeInDuration);
			vMenuItem.menuFadeOut = new YAHOO.util.Anim(vMenuItem.subMenu, vAttributes.fadeOut, fadeOutDuration);
			
			vMenuItem.linkFadeIn = new YAHOO.util.Anim(vMenuItem.mainLinkHover, vAttributes.fadeIn, fadeInDuration, YAHOO.util.Easing.easeOutStrong);
			vMenuItem.linkFadeOut = new YAHOO.util.Anim(vMenuItem.mainLinkHover, vAttributes.fadeOut, fadeOutDuration, YAHOO.util.Easing.easeOutStrong);
			
			myAddEvent(vMenuItem, 'mouseover', function(e) {
				if(checkMouseEnter(this, e || window.event))
					this.fade('in');
			});
			
			myAddEvent(vMenuItem, 'mouseout', function(e) {
				if(checkMouseLeave(this, e || window.event))
					this.fade('out');
			});
			
			myAddEvent(vMenuItem, 'click', function(e) {
				this.menuFade();
				preventDefault(e);
			});
			
			myAddEvent(vMenuItem.mainLinkHover, 'click', function() {
				this.blur();
			});
			
			vMenuItem.hide = function() {
				this.fade('out', 1);
				this.menuFade('out');
			}
			
			vMenuItem.fade = function(pDirection, pForceFade) {
				if(this.subMenuActive && !pForceFade)
					return;
				
				if(pDirection == 'in') {
					this.linkFadeOut.stop();
					this.linkFadeIn.animate();
				} else if(pDirection == 'out') {
					this.linkFadeIn.stop();
					this.linkFadeOut.animate();
				}
			}
			
			vMenuItem.menuFade = function(pDirection) {
				if(!pDirection)
					pDirection = this.subMenuActive ? 'out' : 'in';
				
				if(!this.subMenuActive && pDirection == 'in') {
					naviMenu.currentMenu = this;
					this.subMenuActive = 1;
					this.menuFadeOut.stop();
					this.menuFadeIn.animate();
					this.menuMoveIn.animate();
					removeClass(this, 'out');
					addClass(this, 'clicked');
					return true;
					
				} else if(this.subMenuActive && pDirection == 'out') {
					naviMenu.currentMenu = null;
					this.subMenuActive = 0;
					this.menuFadeIn.stop();
					this.menuFadeOut.animate();
					removeClass(this, 'clicked');
					return true;
				}
				
				return false;
			}

			vMenuItem.subMenu.onFadedOut = function() {
				var vMenuItem = this.getEl().parent;
				addClass(vMenuItem, 'out');
			}
			vMenuItem.menuFadeOut.onComplete.subscribe(vMenuItem.subMenu.onFadedOut);
			
			if(!vMenuItem.isBox)
				continue;
			
			var i = -1;
			while(vMenuItem.container.childNodes[++i]) {
				var vBox = vMenuItem.container.childNodes[i];
				if(vBox.nodeName && vBox.nodeName == '#text')
					continue;
				
				//MultiBox Funktionalitaet auf Container erweitern
				vBox.href = vBox.lang;
				vBox.parent = vMenuItem;
				
				var vBoxItem = vBox.getElementsByTagName('div')[0];
				if(!vBoxItem)
					continue;
				
				var vBoxItemHover = vBoxItem.cloneNode(true);
				vBoxItemHover.className = 'boxCon boxConOver';
				vBox.insertBefore(vBoxItemHover, vBoxItem);
				
				vBox.fadeIn = new YAHOO.util.Anim(vBoxItemHover, vAttributes.fadeIn2, fadeInDuration2);
				vBox.fadeOut = new YAHOO.util.Anim(vBoxItemHover, vAttributes.fadeOut, fadeOutDuration2);
				
				vBox.fade = function(pDirection) {
					if(pDirection == 'in') {
						this.fadeOut.stop();
						this.fadeIn.animate();
					} else if(pDirection == 'out') {
						this.fadeIn.stop();
						this.fadeOut.animate();
					}
				}
				
				myAddEvent(vBox, 'mouseover', function(e) {
					if(checkMouseEnter(this, e || window.event))
						this.fade('in');
				});
				
				myAddEvent(vBox, 'mouseout', function(e) {
					if(checkMouseLeave(this, e || window.event))
						this.fade('out');
				});
				
				if((' ' + vBox.className + ' ').indexOf(' mb ') == -1) {
					myAddEvent(vBox, 'click', function(e) {
						location.href = this.href;
					});
				} else {
					myAddEvent(vBox, 'click', function(e) {
						this.parent.hide();
					});
				}
				
			}
			
		}
		/*
		var box = {};
		box = new MultiBox('mb', {
				useOverlay: true,
				container: document.body,
				contentColor: '#FFF',
				showNumbers: true,
				descClassName: 'multiBoxDesc',
				path: '/public/multibox/'
			});
		*/
	}
}

myAddEvent(window, 'load', naviMenu.init);
myAddEvent(document, 'mousedown', naviMenu.documentClick);