// browser
var msie;
var msie6;
var msie7;
if ($.browser.msie) {
	msie = true;
	if ($.browser.version.slice(0,1) == 6) {
		msie6 = true;
	}
	if ($.browser.version.slice(0,1) == 7) {
		msie7 = true;
	}
}

$(window).load(function(){
  correct_scrolling_menu_position();
});

$(window).resize(function(){
	correct_scrolling_menu_position();
});

$(document).ready( function() {
	$("ul.menu_sub2 li:last-child > a").addLastChildClass();
});
(function($) {
	$.fn.addLastChildClass = function() {
		$(this).addClass('last');
	}
})(jQuery);


function showonly( a , e) {

	// maus faehrt raus - spaeter noch mal nachgucken, ob geschlossen werden muss, denn man koennte in einen anderen Eintrag reinfahren
	if( e.type=="mouseleave" ) {
		$('#content_navi_sub').attr('close_me_later' , "YES");
		

		a.delay(1000);
		a.queue(function () {
			var pseudo	= new Object;
			pseudo.type	='delayed_return';
			showonly( $(this) , pseudo );
			$(this).dequeue();
		});
		return false;
	}

	// Hier ist das "spaeter noch mal nachgucken"
	if( e.type=="delayed_return" ) {
		// Die Flag wurde geloescht, also hat es eine Aktualisierung gegeben wg. Mouseenter anderswo. nix kaputtmachen, sondern raus.
		if( $('#content_navi_sub').attr('close_me_later' ) != "YES" ) {
			return false;
		}
	}


	// In der zwischenzeit gab es einen Event. Schliess-prozess fuer ein verzoegertes Over verhindern und stattdessen hier weitermachen.
	$('#content_navi_sub').attr('close_me_later' , "NO");

	// Erstmal sollen alle Untermenues ausgeblendet werden...
	$('div ul.menu_sub3').attr('menu_state_target' , 'invisible' );

	// und das mit dem MouseEnter eingeblendet. Falls es aber ein verzoegerter Event ist, ist dieser Wert hier gar nicht gueltig, es gibt dann kein aktives menu in ebene 3.
	// Das kann nur eintreten, wenn man das Menu verlassen und nie wieder geentert hat.
	if( e.type!="delayed_return" ) {
		if( a.parent().parent().hasClass('menu_sub3') ) {
			var ul3	= a.parents('div ul.menu_sub3');
			ul3.attr('menu_state_target' , 'visible' );
		}
	
		if( a.parent().parent().hasClass('menu_sub2') ) {
			var ul3	= a.parent("li").find('div ul.menu_sub3');
			var child_is_open	= false;
			if( ul3.length ) child_is_open	= ul3.css('display')=='block';
			ul3.attr('menu_state_target' , child_is_open ? 'invisible':'visible' );
		}
	}
	
	// Gewuenschten Zielstatus anwenden.
	$('div ul.menu_sub3').each(
		function() {
			if( $(this).css('display')=='block'	&& $(this).attr('menu_state_target')=='invisible'	) {	
				if (msie) {
					$(this).css({ display:'none' });
					$(this).parent('div').css({ display:'none' });
				}
				else {
					$(this).fadeOut(200);
					$(this).parent('div').fadeOut(200);
				}
			}
			if( $(this).css('display')=='none'	&& $(this).attr('menu_state_target')=='visible'		) {
				var sub2A = $(this).parents('li').first();
				var sub3Top = $(sub2A).position().top - 7;
				var sub3Left = $(sub2A).position().left + 107;
				$(this).parent('div').css({ left:sub3Left, top:sub3Top });
				if (msie) {
					$(this).css({ display:'block' });
					$(this).parent('div').css({ display:'block' });
				}
				else {
					$(this).fadeIn(200);
					$(this).parent('div').fadeIn(200);
				}
			}
		}
	)
	return false;	
}

function menu_sub1_entry_click( a , e ) {
	$('#content_navi_sub li').attr('menu_state_target' , 'close' );
	a.parents('#content_navi_sub li').attr('menu_state_target' , 'open' );

	// Gewuenschten Zielstatus anwenden.
	$('#content_navi_sub li').each(
		function() {
			if( $(this).height()<40	&& $(this).attr('menu_state_target')=='open'	) {	$(this).find("ul.menu_sub2").slideDown(200	,function() {correct_scrolling_menu_position();}			);	}	// Zeigen
			if( $(this).height()>40	&& $(this).attr('menu_state_target')=='close'	) {	$(this).find("ul.menu_sub2").slideUp(200	,function() {correct_scrolling_menu_position();}			);	}	// Ausblenden
		}
	)
	
	$('div ul.menu_sub3').hide();
	
	correct_scrolling_menu_position();
	
	return false; //
}

function initialize_menu() {
	// Schatten fuer SubLayer3
	/*
	$('div ul.menu_sub3').each(
		function() {
			$(this).html(
				'<div class="border_o"><div class="border_m"><div class="border_i">' + 
				$(this).html() +
				'</div></div></div>'
			)
		}
	);
	*/

	
	// Das offene Submenue2 hat eine zusaetliche Text-Zeile drunter, also muss Submenue3 weiter nach oben rutschen
	//$('li.menu_sub2_opened ul').css('margin-top' , "-34px");

	$('ul.menu_sub1 > li > a').on("click", 		function(event) { menu_sub1_entry_click( $(this) , event ) } );

	$('ul.menu_sub2 > li > a').on("click", 		function(event) { showonly( $(this) , event ) } );

	$('div ul.menu_sub3 > li > a').on("mouseenter", function(event) { showonly( $(this) , event ) } );
	$('div ul.menu_sub3 > li > a').on("mouseleave", function(event) { showonly( $(this) , event ) } );

	
	$('div ul.menu_sub3').attr('protectAgainstFadeOut' , 0 );


}

function correct_scrolling_menu_position() {
	// reset heights
	$('#content_navi_sub').css({ height:'' });
	$('#content_right').css({ height:'' });
	
	// find minimum hight of content area from a) navi b) naviContainer c)rightContentColumn
	var min_height	= 0;

	min_height	= Math.max(	min_height	,	$('#content_navi_sub_fixed').height()	);
	min_height	= Math.max(	min_height	,	$('#content_right').height()	);
	min_height  = Math.max(	min_height	,	$('body').height() - $('#header').height() - $('#footer').height() - 61);

	var	y						= parseInt(	$(window).scrollTop() );
	var	header_height			= $('#header').height();

	var	nav_height				= $('#content_navi_sub_fixed').height();
	var	content_left_height		= $('#content_navi_sub').height();
	var	content_right_height	= $('#content_right').height();

	
	
	// Content left smaller than navi? Make column higher.
	if( content_left_height < min_height) {
		$('#content_navi_sub').height(min_height);
		content_left_height		= $('#content_navi_sub').height();
	}

	// Content right smaller than navi? Make column higher.
	if( content_right_height < min_height) {
		$('#content_right').height(min_height);
		content_right_height	= $('#content_right').height();
	}
	
	// after closing productdetails make column lower
	if( content_left_height > content_right_height) {
		$('#content_navi_sub').animate({ height:min_height},750);
		content_left_height		= $('#content_navi_sub').height();
	}


	// Due resized content/navi this might have changed
	var	content_height			= $('#content').height();


	var min	= header_height;
	var max	= header_height + content_height - nav_height;

	if( y>=max ) 		y	= max;
	if( y<=min ) 		y	= min;


	$("#content_navi_sub_fixed").queue("fx", []);
	$("#content_navi_sub_fixed").stop();
	$("#content_navi_sub_fixed").delay(200).animate({top:	y-header_height				},150);

}

function scrollIntoView(scrolltop) {
	if (scrolltop) {
		$('html,body').animate({ scrollTop:scrolltop }, 750);
	}
}
