/*/////////////////////////////////////////////////////////////////////////////////
					        		drMenu 
	Beispiel: 
		var myDropdown = new drMenu('menu',{
			'hideTime':300,          // Zeit in millisekunden
			'fixIESBB':true,         // InternetExplorer SelectBox Bug fixen?
			'hideBoxOnHover':false,  // DropdownBox ausgeblenden bei link-hover
			'setBoxMinWith':true     // setzt die Breite auf die breite des Links
		});
	Beschreibung:
	  - der Erste Parameter ist die id des Menus oder das Menuelement selbst
	  - der Zweite Parameter ist optional und ein Array mit verschieden Werten die 
	    die Standardwerte des Menus überschreiben
/////////////////////////////////////////////////////////////////////////////////*/
/**
 * @projectDescription ein innovatives tolles neues DropdownMenu
 */
 
var drMenu = new Class({
	'initialize': function(obj,args){
		if(args){
			$each(args,function(value,key){
				this[key]=value;
			},this);
		}
		this.htmlMenu = $(obj);
		if(!this.htmlMenu){return false;}
		this.htmlMenu.getElements('li').each((function(el){
			if(el.getElements('ul').length>0){
				el.getElement('ul').setStyle('display','block');
				el.getElement('ul').getChildren()[0].addClass('first');
				el.getElement('ul').getChildren().getLast().addClass('last');
			}
		}).bind(this));
		this.htmlMenu.getElements('li')[0].addClass('first');
		this.htmlMenu.getElements('li').getLast().addClass('last');
		this.htmlMenu.getElements('li').each((function(el){
			if(el.getElements('ul').length>0){
				el.addEvent('mouseenter',(function(){
					$clear(el.timeOutFunc);
					this.elOver(el);
				}).bindWithEvent(this));
				el.addEvent('mouseleave',(function(){
					el.timeOutFunc = this.elOut.delay(this.hideTime,this,el);
				}).bindWithEvent(this));
				maxwith = 0;
				if(!window.ie7){
					el.getElement('ul').setStyle('width',0);
				}
				if(!window.ie){
					el.getElement('ul').setStyle('display','table');
				}
				el.getElement('ul').getChildren().each(function(el2){
					maxwith = maxwith<el2.getSize()['size']['x'] ? el2.getSize()['size']['x'] : maxwith;
				});
				if(this.setBoxMinWith && el.getParent()==this.htmlMenu){
					maxwith = maxwith<el.getSize()['size']['x'] ? el.getSize()['size']['x'] : maxwith;
				}
				el.getElement('ul').setStyle('width',maxwith);
				if(this.fixIESBB && !window.ie7 && window.ie){
					new Element('iframe',{
						'styles':{
							'width':el.getElement('ul').getSize()['size']['x'],
							'height':el.getElement('ul').getSize()['size']['y'],
							'filter':'Alpha(opacity=0)',
							'position':'absolute',
							'left':el.getElement('ul').getStyle('border-left-width').toInt()*(-1),
							'top':el.getElement('ul').getStyle('border-top-width').toInt()*(-1)
						}
					}).injectTop(el.getElement('ul'));
				}
			}
			else if(this.hideBoxOnHover){
				el.addEvent('mouseenter',(function(){
					this.elOverLink(el);
				}).bindWithEvent(this));
			}
		}).bind(this));
		this.htmlMenu.getElements('li').reverse().each((function(el){
			if(el.getElements('ul').length>0){
				el.getElement('ul').setStyle('display','none');
			}
		}).bind(this));
	},
	'elOver':function(el){
		if(el.isActive){return false;}
		el.getParent().getChildren().each(function(el2){
			if(el2.isActive){
				this.elOut(el2);
			}
		},this);
		el.isActive = true;
		el.getElement('a').addClass('hover');
		el.getElement('ul').setStyle('display','block');
	},
	'elOverLink':function(el){
		el.getParent().getChildren().each(function(el2){
			if(el2.isActive){
				this.elOut(el2);
			}
		},this);
	},
	'elOut':function(el){
		$clear(el.timeOutFunc);
		if(!el.isActive){return false;}
		el.getElement('ul').getChildren().each(function(el2){
			if(el2.isActive){
				this.elOut(el2);
			}
		},this);
		el.isActive = false;
		el.getElement('a').removeClass('hover');
		el.getElement('ul').setStyle('display','none');
	},
	'hideTime':300,          // Zeit in millisekunden die vergehen soll bis sich die DrowdownBox ausblendet
	'fixIESBB':true,         // InternetExplorer SelectBox Bug fixen? (mit einem iFrame in der UL)
	'hideBoxOnHover':false,  // soll die aktive DropdownBox ausgeblendet werden sobald man über einen anderen Link fährt?
	'setBoxMinWith':true     // setzt die minimale Breite der DropdownBox auf die breite des Links (nur im ersten Level!)
});
