var open_effect;

document.observe('dom:loaded', function() {

	$$('.dropshadow').each(function(item) {

		var contents = item.innerHTML;
		item.innerHTML = '';

		// Top Shadow
		if (item.hasClassName('noTopShadow') == false)
		{
			t1 = new Element('div', {'class': 'box-t1'});
			t2 = new Element('div', {'class': 'box-t2'});
			t3 = new Element('div', {'class': 'box-t3'});

			t2.appendChild(t3);
			t1.appendChild(t2);

			Element.insert($(item), {'top': t1});
		}

		// Inhalt mit Dropshadow
		m1 = new Element('div', {'class': 'box-m1'});
		m2 = new Element('div', {'class': 'box-m2'});
		m3 = new Element('div', {'class': 'box-m3 content'});

		m3.innerHTML = contents;
		m2.appendChild(m3);
		m1.appendChild(m2);

		Element.insert($(item), {'bottom': m1});

		// Top Shadow
		if (item.hasClassName('noBottomShadow') == false)
		{
			b1 = new Element('div', {'class': 'box-b1'});
			b2 = new Element('div', {'class': 'box-b2'});
			b3 = new Element('div', {'class': 'box-b3'});

			b2.appendChild(b3);
			b1.appendChild(b2);

			Element.insert($(item), {'bottom': b1});
		}
	});


	$$('#topnav > ul > li').each(function(item)	{

		$(item).observe('mouseenter', function() {
			$(item).addClassName('hover');

			if (open_effect != undefined)
			{
				open_effect.cancel();
			}
		});

		$(item).observe('mouseleave', function() {
			$(item).removeClassName('hover');
		});

		
		var hassubnav = $(item).select('a.hassubnav');

		if (hassubnav.length > 0)
		{
			// Default Oberserver für hintergrunf bei LIstenelement deaktivieren
			$(item).stopObserving('mouseenter');
			$(item).stopObserving('mouseleave');

			var subnav = $(item).select('div.topnav-level2')[0];
			var dims = $(subnav).getDimensions();
			
			$(item).observe('mouseenter', function() {
				$(item).addClassName('hover');

				if (open_effect != undefined)
				{
					open_effect.cancel();
				}

				$(subnav).setStyle({
					width: dims.width + 'px',
					height: dims.height + 'px'
				});

				open_effect = Effect.BlindDown($(subnav), {
					scaleX: 'true',
					scaleFrom: 30,
					duration: .3,
					queue: {
						position: 'end',
						scope: 'menuscope'
					}
				});
			});

			$(item).observe('mouseleave', function(event) {
				var target = event.toElement || event.relatedTarget;
				var inNav = $(target).up('#topnav');

				var hide_delay = inNav ? 0 : .4;

				if (open_effect != undefined && inNav)
				{
					open_effect.cancel();
				}

				Effect.BlindUp($(subnav), {
					duration: 0,
					delay: hide_delay,
					afterFinish: function() {
						$(item).removeClassName('hover');
					},
					queue: {
						position: 'end',
						scope: 'menuscope'
					}
				});
			});
		}
	});
});
