// Configuration of the hoverIntent
var menuConfig = {
    interval: 50,
    sensitivity: 4,
    over: addMenu,
    timeout: 500,
    out: removeMenu
};

var openedByClick = false;

// Function for displaying the menu when called for
function addMenu() {
    if (!($(this).hasClass("hover"))) {
    
        if ($(this).siblings().hasClass("hover")) {
            removeAllMenus();
        }
    
        // Add class hover
        $(this).addClass("hover");
        // Hide it
        $('ul', this).hide();
        // Fade it in
        $('ul', this).fadeIn(75);
        
        openedByClick = false;
    }
}

// Function for removing the menu when called for
function removeMenu() {
    // If this li element has a submenu item
    if (!($('ul', this).length == 0)) {
        // Fade it out
        $('ul', this).fadeOut(75, function() {
            // Remove hover class
            $(this).parent().removeClass("hover");
        });
    }
    // If not just remove hover class
    else {
        $(this).removeClass("hover");
    }
}

function removeAllMenus() {
    $("#nav li.main").removeClass("hover");
    $("#nav li.main ul").hide();
}


// On document ready, attach hoverIntent to navigation menuitems
$(function() {
    $("#nav li.main").hoverIntent(menuConfig)
    $("#nav li.main > a").click(function(e) {
        
        menuItem = $(this).parent()
        
        if (menuItem.hasClass("hover")) {
            if (openedByClick) {
                if (!($('ul', menuItem).length == 0)) {
                    // Fade it out
                    $('ul', menuItem).fadeOut(75, function() {
                        // Remove hover class
                        menuItem.removeClass("hover");
                    });
                }
                // If not just remove hover class
                else {
                    menuItem.removeClass("hover");
                }
            }
        }
        else {
            
            if (menuItem.siblings().hasClass("hover")) {
                removeAllMenus();
            }
        
            menuItem.addClass("hover");
            $('ul', menuItem).hide();
            $('ul', menuItem).fadeIn(75);
            openedByClick = true;
        }
        
        if(menuItem.find('ul').length) {
            e.preventDefault();
            return false;
        }else{
            return true;
        }
    });
});

/* Old menu javascript
$(function() {
	$("#nav ul li.main").hover(
		function() {
			$(this).addClass("hover");
			$('ul', this).hide();
			// Whait for 500ms
			$('ul', this).fadeIn(100);
		},
		function() {
			$(this).removeClass("hover");
			// Whait for 500ms
			// if stil not hover
			$('ul', this).fadeOut(100);
		}
	);
});
*/
