jQuery.noConflict();


jQuery(function(){

	// Milliseconds the menu keeps open if no other mouseover effect happens
	var menuTimeOpen = 1000;

	var container = jQuery('<div />');
	container.addClass('nxmenu')
	jQuery('body').prepend(container);

	jQuery('.navigation ul.ebene1 li.ebene1').each(function() {

		// tmp holds each second layer ul element while we get its width
		var tmp = jQuery('<div />');
		tmp.addClass('mouseOut');
		tmp.addClass('ebene2wrapper');
		container.append(tmp);
		tmp.css({
			'position':'absolute',
			zIndex: 99999
		});

		var liElement = jQuery(this);

		jQuery(this).find('ul.ebene2').each(function(){

			// If an ebene1 li has the class nologin-2 we add it to the ul we are removing
			// This is bosch-rexroth specific
			liClasses = liElement.hasClass('nologin-2');
			if(liClasses){
				jQuery(this).addClass('nologin-2');
			}

			// Adds the ul to the created div
			tmp.append(jQuery(this));

		});

		// Gets the left margin of the a element
		var marginLeft = 0;
		var offset;
		jQuery(this).find('a.ebene1 span').each(function() {
			marginLeft =  jQuery(this).position().left;
			offset = jQuery(this).offset();
			jQuery(this).width(jQuery(this).width());
		});

		ulElement = jQuery(this).find('ul.ebene2');
		ulElement.css({
			'margin-left': marginLeft
		});

		// IE 6 min-width bug
		// This is bosch-rexroth specific
		if(jQuery(this).width() < 100 && jQuery.browser.msie && jQuery.browser.version == '6.0'){
			jQuery(this).width(100)

		}

		var timeout = -1;
		// Mouseover and Mouseout functions so that we can reuse them
		// Mouseover function
		var hoverIn = function() {
			timeout = window.clearTimeout(timeout);
			window.setTimeout(function() {

				// Finds the span in the li
				var spanElement = jQuery(liElement).find('span');

				// Removes all mouseover effects because we have a new mouseover effect
				jQuery('.navigation ul li.ebene1 span').each(function() {
					jQuery(this).addClass('mouseOut');
					jQuery(this).removeClass('mouseOver');
				});
				jQuery('.nxmenu .ebene2wrapper').each(function() {
					jQuery(this).addClass('mouseOut');
					jQuery(this).removeClass('mouseOver');
				});

				// If we have a li with a span inside
				var offset;
				liElement.find('a.ebene1 span').each(function() {
					marginLeft =  jQuery(this).position().left;
					offset = jQuery(this).offset();
				});
				if(offset != undefined){
					tmp.css({
						'top' : offset.top + liElement.height(),
						'left' : offset.left
					});
				}

				spanElement.removeClass('mouseOut');
				spanElement.addClass('mouseOver');
				tmp.removeClass('mouseOut');
				tmp.addClass('mouseOver');
			}, 50);
		};

		var performHoverOut = function() {
			var spanElement = jQuery(liElement).find('span');
			spanElement.addClass('mouseOut');
			spanElement.removeClass('mouseOver');
			tmp.addClass('mouseOut');
			tmp.removeClass('mouseOver');
		};

		// Mouseout function
		var hoverOut = function() {
			window.clearTimeout(timeout);
			timeout = window.setTimeout(function() {
				performHoverOut();
			}, menuTimeOpen);
		};

		liElement.hover(
			hoverIn,
			hoverOut
		);
		tmp.hover(
			hoverIn,
			hoverOut
		);

		jQuery('body').click(performHoverOut);


	}); // Ende liElement


	// Need to register block
	// Hängt das div um
	var blockElement = jQuery('.need_to_register');
	jQuery('body').prepend(blockElement);
	var timeout = -1;

	// Zeigt das div nach dem mouseover an
	var showNeedToRegister = function(){
		timeout = window.clearTimeout(timeout);
		window.setTimeout(function() {
			var offsetLogin = jQuery('#header .login').offset();
			blockElement.css({
				'display' : 'block',
				'top' : (offsetLogin.top + 100),
				'left' : offsetLogin.left
			});
		}, 50);
	};

	// Versteckt das div nach einem mouseout
	var hideNeedToRegister = function(){
		window.clearTimeout(timeout);
		timeout = window.setTimeout(function() {
			blockElement.css({
				'display' : 'none'
			});
		}, menuTimeOpen);
	};

	// Mouseover + Mouseout, Link entfernen und Cursor auf default schalten
	noLoginLiElements = jQuery('.navigation ul.ebene1 li.nologin-2');
	noLoginLiElements.hover(
		showNeedToRegister,
		hideNeedToRegister
	);
	noLoginLiElements.click(function(){return false;});
	noLoginLiElements.find('a, a span').css({
		'cursor' : 'default'
	});

	// Mouseover + Mouseout, Link entfernen und Cursor auf default schalten
	noLoginUlLiElements = jQuery('.nxmenu ul.nologin-2 li');
	noLoginUlLiElements.hover(
		showNeedToRegister,
		hideNeedToRegister
	);
	noLoginUlLiElements.click(function(){return false;});
	noLoginUlLiElements.find('a').css({
		'cursor' : 'default'
	});

});