hhtMenu = new Class({
		
	init : function(){
		
		hhtMenuFX = {};
		hhtMenuOpen = {};
		
			// add hover function for ie6
		if(window.ie6){
			$ES('#mainnav .itemlink').each(function(item,i ){
				item.addEvent('mouseenter', function(e){
					e = new Event(e);
					t = new Element (e.target);
					t.addClass('itemlink_hover');
				});
				item.addEvent('mouseleave', function(e){
					e = new Event(e);
					t = new Element (e.target);
					t.removeClass('itemlink_hover');
				});
			});
		}
			// register rollover and rollout events for menu items
		$ES('#mainnav li a.menu_link').each(function(item,i ){
			var id = item.id.split('_');
			id = id[2];
			
			item.addEvent('mouseenter', function(e){
				hhtMenu.rollover(e);
			});
			
			item.addEvent('focus', function(e){
				e = new Event(e);
				e.target.blur();
			});
			
			item.addEvent('mouseleave', function(e){
				hhtMenu.rollout.delay(100, this, e);
			});
			
			hhtMenuFX[id]= false;
			hhtMenuOpen[id] = false;

		});
		
			// register open and close functions for .toggle-active class
		$$('.toggle-active').addEvent('click',function(e){hhtMenu.toggleActive(e)} );
		
			
			// hide the foldout content
		$ES('#mainnav .foldout_area').setStyle('display','none');
		
			// add the css toogle event to the css_select items
		$$('.css_select').each(function(el){
			el.addEvent('click', function(e){
				e = new Event(e);
				target = new Element(e.target);
				e.stop();
				hhtMenu.setStyle(target);
			});
		});
		
		$$('.css_rotate').each(function(el){
			el.addEvent('click',function(e){
				e = new Event(e);
				e.stop();
				hhtMenu.rotateStyle();
			})
		});
		
			// read the default styles from cookie 
		var css_mode =  Cookie.get('css_mode');
		if (css_mode && css_mode!='no' ){
			hhtMenu.loadStyle(css_mode);
		}
			
	},
	
	rotateStyle:function(){
		var style = Cookie.get('css_mode');
		switch (style){
			case 'big_2':
				hhtMenu.loadStyle('no');
				break;
			case 'big_1':
				hhtMenu.loadStyle('big_2');
				break;
			case 'no':
			default:
				hhtMenu.loadStyle('big_1');
				break;
		} 
	},
	
	setStyle:function(target){
		
		var style = '';		
		if (target.hasClass('css_select_big_2')) {
			style = 'big_2';
		}
		if (target.hasClass('css_select_big_1')) {
			style = 'big_1';
		}
		if (target.hasClass('css_select_no')) {
			style = 'no';
		}
			
			// load new style 
		if (style){
			hhtMenu.loadStyle(style);
		}
	
	},
	
	loadStyle:function(style){
		switch (style){
			case 'big_2':
				new Asset.css('typo3conf/ext/hht_template/res/css/variant_big_2.css');
				break;
			case 'big_1':
				new Asset.css('typo3conf/ext/hht_template/res/css/variant_big_1.css');
				break;
			case 'no':
				new Asset.css('typo3conf/ext/hht_template/res/css/variant_no.css');
				break;
			default:
				break;
		}
			// save style in cookie
		Cookie.set('css_mode', style, {path:'/'});
			
			// update size of containers 
		(function(){ if( hhtTeaser ){ hhtTeaser.updateTabContainer();} }).delay(50);
	},
	
	toggleActive:function(e){
		e      = new Event(e);
		target = new Element( e.target );
		while (!target.hasClass('toggle-active') && target.getParent() ){
			target = target.getParent(); 
		}
		target.toggleClass('active');
	},
	
	rollover : function (e){
		e = new Event(e);
		
		var linkEl = e.target;
		
			// get the numeric id of the page the menu item is created from
			// this one should be unique
		var linkId = linkEl.id.split('_');
		linkId = parseInt(linkId[2]);
		
			// exit if the event was not triggered on an a tag, set it explicitly with the detected id
		if (e.target.tagName != 'A')	{	
			linkEl = $('menu_item_'+linkId);
		}
		
			// get the container that will be animated
		var container = $('foldout_container_'+linkId);
		
			// animate it if something was found
		if (container)	{
			if(window.ie6 ){
				$$('select.hide_if_menu_on').addClass('menu_hide');
			}
			
			hhtMenuOpen[linkId] = true;
			
			/*
			container.setStyles({
				display:'block',
				height:'auto'
			});
			*/
			
			container.setStyle('display', 'block');
		 	var container_height = $('foldout_content_'+linkId).getSize().size.y;
		 	
			
			// if (hhtMenuFX[linkEl] != false)
			if (typeof hhtMenuFX[linkId] == 'object')	{
				hhtMenuFX[linkId].stop();
			}
			
			hhtMenuFX[linkId] = new Fx.Styles(container, {duration:300, wait:false});
			hhtMenuFX[linkId].start({'height':container_height});
			
		}
	},
	
	
	rollout : function (e){
		e = new Event(e);
		// console.debug(e.target);
		
		var id = e.target.id.split('_');
		id = id[2];
		
		var container = $('foldout_container_'+id);
		
		if (container)	{
			hhtMenuOpen[id] = false;
			
			if (typeof hhtMenuFX[id] == 'object')	{
				hhtMenuFX[id].stop();
			}
			/* container.setStyle('display','none'); */ 		
			
			hhtMenuFX[id] = new Fx.Styles(container, {duration:300, wait:false});
			hhtMenuFX[id].start({ 'height': 0}).chain(function(){
				container.setStyle('display','none'); 		
			});	
				
		}
		
		for (var key in hhtMenuOpen) {
			if (hhtMenuOpen[key] == true)	return false;
		};
		
		if(window.ie6){
			$$('select.hide_if_menu_on').removeClass('menu_hide');
		}
	}
	
});

window.addEvent('load', function()	{		
	hhtMenu = new hhtMenu();
	hhtMenu.init();
});