// version 0.1
var mooMenu = new Class({				
	initialize: function(menu){
		this.menu = $(menu);
		this.ieFixes = [];
		this.ieFixIframe = new Element('iframe', { 'src': 'javascript:false' });
		
		var i = 0;
		(this.elements = this.menu.getElements('li ul')).each(function(element){
			i = i + 1;
			element.setStyle('display', 'none');
			element.getParent().addEvents({
				'mouseenter': function(e){ 
					element.setStyle('display', ''); 
					// if(window.ie6){ 
						//this.ieFix(element, i);
					// }
				}.bind(this),
				'mouseleave': function(e){ 
					element.setStyle('display', 'none');
					// if(window.ie6){
						//this.ieFixLeave(element, i);
					// }
				}.bind(this)
			});
		}, this);
	},
	
	ieFix: function(element, i){
		if (! this.ieFixes[i]) {
			element.setStyles({
				'z-index': element.getStyle('z-index').toInt()+1
			});
			this.ieFixes[i] = this.ieFixIframe.clone();
			this.ieFixes[i].injectInside($E('body'));
			this.ieFixes[i].setStyles({
				'width': element.getSize().size.x.toInt(),
				'height': element.getSize().size.y.toInt(),
				'position': 'absolute',
				'top': element.getCoordinates().top.toInt(),
				'left': element.getCoordinates().left.toInt(),
				// 'top': 0,
				// 'left': 0,
				// 'border': '6px solid red',
				'visibility': 'visible',
				'z-index': element.getStyle('z-index').toInt()-1,
				'filter': 'mask()'
			});
			this.ieFixes[i].addEvents({
				'mouseenter': function(e){
					element.getParent().fireEvent('mouseenter', e);
				},
				'mouseleave': function(e){
					element.getParent().fireEvent('mouseleave', e);
				}
			});
		} else {
			this.ieFixes[i].setStyles({
				'width': element.getSize().size.x.toInt(),
				'height': element.getSize().size.y.toInt(),
				'top': element.getCoordinates().top.toInt(),
				'left': element.getCoordinates().left.toInt(),
				// 'top': 0,
				// 'left': 0,
				'visibility': 'visible'
			});
		}
	},
	
	ieFixLeave: function(element, i){
		if (this.ieFixes[i]) {
			this.ieFixes[i].setStyle('visibility', 'hidden');
		}
	}
});
