/**
 * Top drop down horizontal menu with jQuery library
 */

$(document).ready(function() {
	// Menu settings
	var animateSpeed = menu_animate_speed;     // Other levels menu speed
	var subMenuOffset = menu_top_offset;         // Sub menu top position offset
	var animate_effect = menu_animate_effect;
	
	var animate_temp = {width: 'toggle'};
	if (animate_effect == "opacity") {
	  var animate_temp = {opacity: 'toggle'};
	}else if(animate_effect == "height"){
	  var animate_temp = {height: 'toggle'};
	}

	// Menu settings
	var mouseinparent = false;

	// Select all li tags
	$("div#nav-main ul li:has(> ul)").find("> a").addClass('cats_has_submenu').end().hover(function() {

		// Find Children ul tag into mouse overed element (sub menu)
		var $submenu = $(this).find("> ul");
		// Add mousein class to sub menu
		$submenu.addClass('mousein');
		
		// If sub menu not displayed and effect not animated on that then show sub menu with effect
		if ($submenu.css('display') == 'none' && $submenu.hasClass('onanimate') == false) {
			// Add onanimate Class to sub menu
			$submenu.addClass('onanimate');
			
				// Find sub menu parent position for calculate sub menu absolute top position
				var ppos = $submenu.parent().offset();
				var pppos = $submenu.parent().parent().offset();
				
				$submenu.css({top: (ppos.top-pppos.top+subMenuOffset) + "px"}).animate(animate_temp, {
					duration: animateSpeed,
					complete: function(){
						// Remove onanimate Class from sub menu
				        $submenu.removeClass('onanimate');
						// If mouse leaved sub menu at time of effect then close sub menu immediately
				        if ($submenu.hasClass('mousein') == false) {
					        $submenu.hide();
				        }
			        }
			    });

		}

	},function() {

		// Find Children ul tag into mouse overed element (sub menu)
		var $submenu = $(this).find("> ul");
		// Remove mousein class from sub menu
		$submenu.removeClass('mousein');
		
		// If sub menu displayed and effect not animated on that then hide sub menu with effect
		if ($submenu.css('display') != 'none' && $submenu.hasClass('onanimate') == false) {
			// If sub menu is first level menu then use vertical effect
				$submenu.animate({animate_effect: 'toggle'}, {
					duration: animateSpeed,
					complete: function(){
						// If mouse entered on sub menu at time of effect then open sub menu immediately
				        if ($submenu.hasClass('mousein') == true) {
						    $submenu.show();
					    }
			        }
			    });
		}

	});
	$("div#nav-main").mouseenter(function(){
		mouseinparent = true;
	});
	$("div#nav-main").mouseleave(function(){
		mouseinparent = false;
		setTimeout(function(){
			if (mouseinparent == false) {
				$("div#nav-main ul li ul").hide();
			}
		}, 3000);
	});
	//$("body").mousedown(function(){
	//	mouseinparent = false;
	//	$("div#nav-main ul li ul").hide();
//	});
});