//
// Verschachteltes Mootools-Accordion
// Nested Mootools Accordion
// 
// von / by Bogdan Günther
// http://www.medianotions.de
//

var menuacc = new Array();

var menu = function() {
	
	// Anpassung IE6
	if(window.ie6) var heightValue='100%';
	else var heightValue='';
	
	// Selektoren der Container für Schalter und Inhalt
	var togglerName='.accordion_toggler_';
	var contentName='.accordion_content_';
	
	// Selektoren setzen
	var counter=1;	
	var toggler=$$(togglerName+counter);
	var content=$$(contentName+counter);
	
	while(toggler.length>0)
	{
		// Accordion anwenden
		menuacc[counter-1] = new Accordion(toggler, content, {
			duration: 350,
			opacity: false,
			display: -1,
			show: -1,
			alwaysHide: true,
			onComplete: function() { 
				var element=$(this.elements[this.previous]);
				if(element && element.offsetHeight>0) element.setStyle('height', heightValue);			
			},
			onActive: function(toggler, content) {
				
				if(toggler.getProperty('level') == 0){
					close_level(2);	
				}
				
				toggler.addClass('open');
				
				//	set current menu to current menu
				level = toggler.getProperty("level");
				index = toggler.getProperty("index");
				if(level >= 0 && index >= 0){
					current_menu[level] = index;
				}
				
			},
			onBackground: function(toggler, content) {
				toggler.removeClass('open');
			}
		});
		
		// Selektoren für nächstes Level setzen
		counter++;
		toggler=$$(togglerName+counter);
		content=$$(contentName+counter);
	}
	
	$$('.menuitem').each(function(el, i){
		//	mouseover flash effect
		if(Browser.Engine.trident){
			
			
			el.getParent('a').addEvent('mouseenter', function(){
				if(!el.hasClass('menu_over')){
					
					el.addClass('menu_over');
					
					var menuoverlay = new Element('div', {'class': 'menuoverlay'});
					var menuclick = new Element('div', {'class': 'menuclick'});
					var parent = el.getParent('a');
					
					menuoverlay.setStyles({'opacity': 0, 'position': 'absolute', 'width': el.getSize().x, 'height': el.getSize().y, 'backgroundColor': '#ffffff'});
					menuoverlay.inject(parent, 'top');
					menuoverlay.setStyle('opacity', 0.5);
					
					menuclick.setStyles({'position': 'absolute', 'width': el.getSize().x, 'height': el.getSize().y});
					menuclick.inject(parent, 'top');
					menuclick.addEvent('click', function(){ el.fireEvent('click'); });
					
					new Fx.Tween(menuoverlay, {duration: 100, onComplete: function(){ 
					}}).start('opacity', 0.5, 0);
				}
			});
			
			el.getParent('a').addEvent('mouseleave', function(){
				el.removeClass('menu_over');
				el.getParent('a').getElements('.menuoverlay').each(function(el){ el.dispose(); });
				el.getParent('a').getElements('.menuclick').each(function(el){ el.dispose(); });
			});
			
			
		} else {
			el.addEvent('mouseenter', function(){
				new Fx.Tween(el, {duration: 100}).start('opacity', 0.5, 1); 
			});	
		}
		//	remove focus on click
		el.addEvent('click', function(){ el.getParent('a').blur(); });
		
		//	show menu
		el.setStyle('display', 'block');
	});
	
	//	set menu initialized
	window.fireEvent('menu_initialized');
	window.removeEvents('menu_initialized');

}

function get_menu_index(in_level, in_name){
	items = $$('.level'+in_level+'_'+in_name);
	if(items.length){
		return items[0].getProperty('index');
	} else {
		return false;
	}
}

function close_level(in_level){
	items = $$('.level'+in_level);
	items.removeClass('open');
}

var current_menu = new Array();

function menu_set(level1, level2){
	
	//	open menu level 1
	if(level1){
		idx = get_menu_index(1, level1);
		if(idx){ 
			if(current_menu[0] != idx){
				menuacc[0].display(idx); 
				current_menu[0]	= idx;
			}
		} else if(current_menu[0] >= 0){
			//	close
			menuacc[0].display(-1); 
			current_menu[0] = -1;
		}	
	}
	
	//	open menu level 2
	if(level2){
		idx = get_menu_index(2, level2);
		if(idx){ 
			if(current_menu[1] != idx){
				menuacc[1].display(idx); 
				current_menu[1]	= idx;
			}
		} else if(current_menu[1] >= 0){
			//	close
			menuacc[1].display(-1); 
			current_menu[1] = -1;
		}
	}
}