//
// 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) {
				toggler.addClass('open');
			},
			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
		el.addEvent('mouseenter', function(){
			new Fx.Tween(el, {duration: 100}).start('color', "#ffffff", el.getStyle('color')); 
		});	

		//	remove focus on click
		el.addEvent('click', function(){ el.blur(); });
		
		//	show menu
		el.setStyle('display', 'block');
	});
	
	//	set menu initialized
	window.fireEvent('menu_initialized');
	window.removeEvents('menu_initialized');

}

var current_menu = new Array();

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, level3){
	
	//	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;
		}
	}
}
