/**
 *
 * Langsames ein und ausblendes des kompletten Submenus
 *
 */

window.addEvent('domready', function() {
    
	var ssmMooMenu = {

		numbers: [],

		init: function() {

			if (window.ie)
			{
				// MooTools 1.11 does not recognize IE8.

				if (navigator.userAgent.match(/msie 8/i)) window.ie8 = true;
			}

			if (window.ie6)
			{
				$$('#ssmed_menu_middle .menu li').each(function(el) {

					$(el).addEvents({
						'mouseenter': function() { $(el).addClass('sfHover'); },
						'mouseleave': function() { $(el).removeClass('sfHover'); }
					});

				});
			}

			$$($('ssmed_menu_middle').getElement('ul').getChildren()).each(function(elem) {

				if ($(elem).hasClass('parent'))
				{
					// At first we need the 1. level ULs (fxDown).
		
					$$($(elem).getChildren()).each(function(el) {

						if ($(el).getTag() == 'ul')
						{
							$(el)
								.setStyle('overflow', 'hidden')
								.addClass('level-1');
						}
					});
				}
			});

			$$('.level-1 ul').each(function(elem) {

				// Then all other ULs (fxRight).
	
				$(elem).addClass('level-x');
			});


			if (window.ie6)
			{
				// Correct position:left of the ULs.

				$$('.level-1').each(function(elem) {

					var c = $(elem).getParent().getParent().getCoordinates();
					var p = $(elem).getParent().getLeft();

					$(elem).setStyle('left', ((0 - c.width) + p - 15) +'px');
				});
			}


			$$('.level-1 ul').each(function(elem) {

				// Then all other ULs (fxRight).
	
				$(elem).addClass('level-x');
			});

			$$('.level-1').each(function(elem) { ssmMooMenu.fxDown(elem); });
			$$('.level-x').each(function(elem) { ssmMooMenu.fxRight(elem); });

		},
		fxDown: function(el) {

			var height	= el.getStyle('height').toInt();
			var fx		= new Fx.Styles(el, {duration:500, wait:false, transition: Fx.Transitions.Expo.easeOut});

			fx.start({'height': 0});

			el.getParent().addEvents({
				'mouseenter': function(){ fx.start({'height': height}); },
				'mouseleave': function(){ fx.start({'height': 0}); }
			});
		},
		fxRight: function(el) {
			var fx	= new Fx.Styles(el, {duration:1500, wait:false, transition: Fx.Transitions.Expo.easeOut});
			
			el.setStyles({
				'top': 0,
				'left': window.ie6 ? '0px' : 'auto',
				'margin-left': window.ie8 ? '210px' : '200px',
				'opacity': 0
			});

			el.getParent().addEvents({
				'mouseenter': function(){
					el.getParent().getParent().setStyle('overflow', 'visible');
					fx.start({'opacity': [0,1]});
				},
				'mouseleave': function(){
					fx.start({'opacity': [1,0]});
					el.getParent().getParent().setStyle('overflow', 'hidden');
				}
			});
		}
	};
	ssmMooMenu.init();
});
