window.addEvent('domready', function() {
//window.addEvent('load', function() {
		
	/* Hauptnavigation */
	
	$('navigation').setProperty('id','navigationJS');


       function toggleMainNav(element, action) {
		var fxM = new Fx.Morph(element,{ duration: 250, link: 'cancel'});
		switch (action) {
			case 'on':
				fxM.start({'opacity': 0});	
				break;
			case 'off':
				fxM.start({'opacity': 1});
				break;
		}

	}
	
	function initMainNav(el) {
		if (el.getProperty('class') != 'disabled') {
			el.addEvents({
				'mouseenter': function(e) {
					e.stop();
					if (el.getElement('div.subnav-foot').getStyle('display') == 'none') {
						el.getElement('div.subnav-foot').setStyle('display', 'block');
					}
					toggleMainNav(el.getElement('a.primary'), 'on');
					el.setStyle('cursor', 'pointer');
				},
				'mouseleave': function(e) {
					e.stop();
					toggleMainNav(el.getElement('a.primary'), 'off');
				},
				'click': function(e) {
					window.location.href = el.getElement('a.primary').getProperty('href');
				}
			});
		}
	}
	
	$$('#navigationJS li').each(function(el) {
		initMainNav(el);
	});

	/* Subnavigation */
	
	var active = '';
	
	function toggleSubNav(el) {
		var subNavHeight = el.getElement('div.subnav-list-wrapper').getStyle('height');
		var subWrapper = new Fx.Tween(el,{
			duration: 300,
			link: 'chain'
		});
		var contentMargin = new Fx.Tween($('header'),{
			duration: 300,
			link: 'cancel'
		});
		switch (el.opened) {
				case true:
					el.opened = false;
					active = '';
					subWrapper.start('height', 0);
					contentMargin.start('margin-bottom', 0);
					initMainNav(el.getParent('li'));
					break;
				case false:
					if (active != '') {
						var activeSubWrapper = new Fx.Tween($(active).getElement('div.subnavigation-wrapper'),{
							duration: 300,
							link: 'chain'
						});
						//activeSubWrapper.start('height', 0);
						activeSubWrapper.start('height', 0).chain(function() {
							subWrapper.start('height', subNavHeight);
						});
						$(active).getElement('div.subnavigation-wrapper').opened = false;
						
						initMainNav($(active));
						toggleMainNav($(active).getElement('a.primary'), 'off');
					} else {
						subWrapper.start('height', subNavHeight);
					}
					contentMargin.start('margin-bottom', subNavHeight);	
					active = el.getParent('li').getProperty('id');
					el.opened = true;
					el.getParent('li').removeEvents('mouseleave');
					break;
			}
	}
	
	$$('#navigationJS div.subnavigation-wrapper').each(function(el) {
		$(el).setStyles({
			overflow: 'hidden',
			height: 0
		});
		$$('div.subnavigation ul').setStyle('display', 'inline');
		var size = el.getElement('ul').getSize();
		el.opened = false;
		var newId = el.getParent('li').getProperty('id')+'_toggle';
		var subNavToggle = new Element('a', {'href': '#', 'class': 'subnavigation-toggle', 'id': newId });
		subNavToggle.inject(el.getParent('li').getElement('div.subnavigation'), 'top');
		$(newId).addEvent('click', function(e) {
			e.stop();
			toggleSubNav(el);
		});
	});
	
	// Login-Box
	if ($('login_box')) {
		$('login_box').setStyle('display', 'block');
		$('login_box').fade('out');
		var loginSlide = new Fx.Slide('login_box', { duration: 200 }).hide();
		
		$('login_link').addEvents({
			'click': function(e){
				$('login_box').fade('toggle');
				e.stop();
				loginSlide.toggle();
				loginSlide.onComplete = function () {
					$('login_link').toggleClass('active');
				}
			}
		});
		//$('login_pwd').setProperty('type', 'text'); //IE Problem!
		//$('login_pwd').removeProperty('type');
		//$('login_pwd').setProperty('type', 'text');
		if (!Browser.Engine.trident) { // schlie§t IE aus
			$('login_pwd').setProperty('type', 'text');
		}
              else
              {
 			$('login_pwd').setProperty('value', '');

              }
		$('login_user').addEvent('click', function(e){
			$('login_user').setProperty('value', '');
		});
		$('login_pwd').addEvent('click', function(e){
			$('login_pwd').setProperty('value', '');
			if (!Browser.Engine.trident) { // schlie§t IE aus
				$('login_pwd').setProperty('type', 'password');
			}
		});
		$('login_pwd').addEvent('focus', function(e){
			$('login_pwd').setProperty('value', '');
			if (!Browser.Engine.trident) { // schlie§t IE aus
				$('login_pwd').setProperty('type', 'password');
			}
		});
	}
	
	/* Wetter */
	$('ort').setStyles({
		'display': 'inline',
		'float': 'none'		
	});
	ortFontSize = 1.6;
	while ($('ort').getSize().x > 152) {
		ortFontSize = ortFontSize-0.05;		
		$('ort').setStyle('font-size', ortFontSize+'em');
	}
});