// JavaScript Document
var $jq = jQuery.noConflict(); 
$jq(document).ready(function() {
	/* Check what's selected */
	var classNames = $jq('body').attr('class');
	var mySplitResult = classNames.split(" ");
	$jq('#navigationContainer ul li').each(function(){
		var currentClass = $jq(this).attr('id');
		if(currentClass == mySplitResult[0] && currentClass != undefined){							
			$jq(this).addClass('pathed');
		}
		if(currentClass == mySplitResult[1] && currentClass != undefined){
			$jq(this).addClass('pathed');
		}
		if(currentClass == mySplitResult[2] && currentClass != undefined){
			$jq(this).addClass('pathed');
		}
		if(currentClass == mySplitResult[3] && currentClass != undefined){
			$jq(this).addClass('pathed');
		}
	});
	
	/* Checks for number of pathed menu items */
	var selectionExists = $jq('#navigationContainer ul li.pathed').size();
	/* Triggered on mouse cursor with intent on main menu, slides down sub-menu */
	function slideDown() {
		if ($jq(this).hasClass('no-intent')) return;
		clearTimeout(timer);
		$jq('#subNavigationContainer').removeClass('small');
		$jq(this).siblings('li').removeClass('hovered');
		$jq(this).siblings('li').children('.selArrow').remove();	
		$jq(this).siblings('li.pathed').removeClass('hover');
		$jq(this).siblings('li.pathed').addClass('otherHovered');
		
		var liWidth = $jq(this).width();
		liWidth = (liWidth / 2) - 15;
		var clsTest = $jq(this).hasClass('hasChildren');
		if(clsTest == true){
			$jq(this).append('<div class="selArrow" style="margin-left: '+liWidth+'px"></div>');
		}
		var testHeight = $jq(this).children('ul').children('li').size();
		
		if(testHeight > 0){
			testHeight = testHeight * 21;
			var testL3Height = 0;
			var highestHeight = 40;
			$jq('#subNavWrapper').empty();
			$jq(this).addClass('hovered');
			$jq(this).children('ul').clone().appendTo('#subNavWrapper').addClass('cloned');
			$jq('#subNavWrapper ul').css('display','none');
			/* Check for grey submenu area visible or not */
			var subNavVisible = $jq('#subNavigationContainer').css('display');
			if(subNavVisible != "block") {
				$jq('#subNavigationContainer').css('height','0px');
				$jq('#subNavigationContainer').css('display','block');
				$jq('#subNavigationContainer').animate({
					height: [highestHeight+'px', 'easeOutSine']
				  }, 300, 'linear');
			} else if(subNavVisible == "block") {
				if ($jq(this).hasClass('no-intent')) return;
				$jq('#subNavigationContainer').animate({
					height: [highestHeight+'px', 'easeOutSine']
				  }, 300, 'linear');
			}
			var highestHeightDesc = highestHeight - 30;			
			$jq('#subNavWrapper ul').css('height','2px');
			$jq('#subNavWrapper ul').css('display','block');
			$jq('#subNavWrapper ul').animate({
				height: [testHeight+'px', 'easeOutSine']
			}, 200, 'linear');
			$jq('#subNavigationContainer ul.levelTwo li').hoverIntent(configDownL2);
		}
	}
	function slideUp() {
		$jq(this).removeClass('no-intent');
		// nothing needed yet
	}		
	function slideDownL2() {
		var childrenL3 = $jq(this).children('ul').children('li').size();
		if(childrenL3 > 0) {				
			$jq('#subNavWrapper').children('ul.levelThree').remove();		
			var contentL3 = $jq(this).children('ul').css('display','block');	
			contentL3 = $jq(this).children('ul').clone().addClass('cloned');
			$jq(this).parent('ul').after(contentL3);
			$jq(this).parent('ul').siblings('ul.levelThree').animate({
				width: ['200px', 'easeOutSine']
			}, 400, 'linear');
		} else {
			$jq('#subNavWrapper').children('ul.levelThree').animate({
				width: ['2px', 'easeOutSine']
			}, 200, 'linear', function() {$jq('#subNavWrapper').children('ul.levelThree').remove(); $jq('#subNavWrapper').children('ul.levelFour').remove();});
		}		
		$jq('#subNavigationContainer ul.levelThree li').hoverIntent(configDownL3);
	}	
			
	function slideUpL2() {
						
	}		
	function slideDownL3() {
		var childrenL4 = $jq(this).children('ul').children('li').size();
		if(childrenL4 > 0) {				
			$jq('#subNavWrapper').children('ul.levelFour').remove();		
			var contentL4 = $jq(this).children('ul').css('display','block');	
			contentL4 = $jq(this).children('ul').clone().addClass('cloned');
			$jq(this).parent('ul').after(contentL4);
			$jq(this).parent('ul').siblings('ul.levelFour').animate({
				width: ['200px', 'easeOutSine']
			}, 400, 'linear');
		} else {
			$jq('#subNavWrapper').children('ul.levelFour').animate({
				width: ['2px', 'easeOutSine']
			}, 200, 'linear', function(){$jq('#subNavWrapper').children('ul.levelFour').remove();});
			
		}
		
	}			
	function slideUpL3() {
						
	}	
	var configDown = {    
		sensitivity: 6, // number = sensitivity threshold (must be 1 or higher)    
		interval: 100, // number = milliseconds for onMouseOver polling interval    
		over: slideDown, // function = onMouseOver callback (REQUIRED)    
		timeout: 200, // number = milliseconds delay before onMouseOut    
		out: slideUp // function = onMouseOut callback (REQUIRED)    
	};		
	var configDownL2 = {    
		sensitivity: 7, interval: 50, over: slideDownL2, timeout: 200, out: slideUpL2
	};	
	var configDownL3 = {    
		sensitivity: 7, interval: 50, over: slideDownL3, timeout: 200, out: slideUpL3
	};
	
	$jq('#navigationContainer ul li.hasChildren').click(function () {
		$jq(this).addClass('no-intent');
	}).hoverIntent(configDown);
	
	/* Check if submenu should be closed */
	var timer;
	$jq('#subNavigationContainer').hover(
		function(){
			clearTimeout(timer);
		},
		function(){
			var checkNavVariation = $jq('#subNavigationContainer').hasClass('small');
			timer=setTimeout(function () {
				if(checkNavVariation == false){
					$jq('#subNavigationContainer').animate({
						height: ['40px', 'easeOutSine']
					}, 600, 'linear',function(){
						/* Indicate we want breadcrumb to open */
						$jq('#subNavigationContainer').addClass('isClosed');		
						if(testLevel < 2) {
							$jq('#navigationContainer ul li').removeClass('selected');		
						}
						$jq('#navigationContainer ul li').children('.selArrow').remove();		
						$jq('#subNavigationContainer').animate({
							height: ['0px', 'easeOutSine']
						}, 600, 'linear')
					});
					var testLevel = $jq('#navigationContainer ul li.pathed').size();
					$jq('#subNavigationContainer ul,#subNavigationContainer #subMenuDescription').fadeOut('fast');
					$jq('#navigationContainer ul li').removeClass('hovered');	
					$jq('#navigationContainer ul li').siblings('li.pathed').removeClass('otherHovered');
					$jq('#subNavigationContainer').animate({
							height: ['0px', 'easeOutSine']
						}, 600, 'linear')				
				}
			}, 1500);
		}
	);
	
	/* Open submenu if something is selected */
	var externalMenuClicked = $jq('#subNavigationContainer').hasClass('isClosed');
	if(selectionExists >= 2) {
		if(externalMenuClicked != true){
			loadMenu();	
		} else if(externalMenuClicked == true){
			
		}
	}
	function loadMenu() {
		$jq('#navigationContainer ul.levelOne').children('li.pathed').each(function() {	
			var liWidth = $jq(this).width();
			liWidth = (liWidth / 2) - 15;
			$jq(this).append('<div class="selArrow" style="margin-left: '+liWidth+'px"></div>');
			
			var testHeight = $jq(this).children('ul').children('li').size();
			testHeight = testHeight * 21;
			var testL3Height = $jq(this).children('ul').children('li').children('ul').children('li').size();
			testL3Height = testL3Height * 21;
			var testL4Height = $jq(this).children('ul').children('li').children('ul').children('li').children('ul').children('li').size();
			testL4Height = testL4Height * 21;
			var highestHeight = 40;
			var newHeight = highestHeight;
			$jq('#subNavigationContainer').css('height',highestHeight+'px');
			$jq(this).children('ul').children('li.pathed').addClass('selected');
			$jq(this).children('ul').children('li.pathed').children('ul').children('li.pathed').addClass('selected');
			$jq(this).children('ul').children('li.pathed').children('ul').children('li.pathed').children('ul').children('li.pathed').addClass('selected');
			$jq('#subNavWrapper ul,#subNavWrapper div').remove();
			
			$jq(this).children('ul').clone().appendTo('#subNavWrapper').addClass('cloned');			
			$jq(this).children('ul').children('li.selected').children('ul').clone().appendTo('#subNavWrapper').addClass('cloned');
			$jq(this).children('ul').children('li.selected').children('ul').children('li.selected').children('ul').clone().appendTo('#subNavWrapper').addClass('cloned');
			
			var hasLevel = $jq('#subNavWrapper ul.levelThree li.pathed').size();
			if(hasLevel >= 1) {
				$jq('#subNavWrapper ul.levelThree').css('width','200px').show();
			}
			var hasLevelFour = $jq('#subNavWrapper ul.levelFour li.pathed').size();
			if(hasLevelFour >= 1) {
				$jq('#subNavWrapper ul.levelFour').css('width','200px').show();
			}
			
			var highestHeightDesc = highestHeight;
			// Her kan description ajax lastes	
			$jq('#subMenuDescription').remove();		
			$jq('#subNavWrapper ul').each(function(){$jq(this).height(newHeight+'px');});
			$jq('#subNavigationContainer').removeClass('small').show();	
			$jq('#subNavigationContainer ul.levelTwo li').hoverIntent(configDownL2);
			$jq('#subNavigationContainer ul.levelThree li').hoverIntent(configDownL3);
		
		});

	}	
	
		
	
});

