$(document).ready(function () {
    //On Hover Over
    function megaHoverOver() {
        $(this).find(".sub").stop().fadeTo('fast', 1).show(); //Find sub and fade it in
        (function ($) {
            //Function to calculate total width of all ul's
            jQuery.fn.calcSubWidth = function () {
                rowWidth = 0;
                //Calculate row
                $(this).find("ul").each(function () { //for each ul...
                    rowWidth += $(this).width() + 40; //Add each ul's width together
                });
            };
        })(jQuery);
        $(this).calcSubWidth();  //Call function to calculate width of all ul's
        $(this).find(".sub").css({ 'width': rowWidth }); //Set Width
    }
    //On Hover Out
    function megaHoverOut() {
        $(this).find(".sub").stop().fadeTo('fast', 0, function () { //Fade to 0 opactiy
            $(this).hide();  //after fading, hide it
        });
    }
    var config = {
        sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)
        interval: 100, // number = milliseconds for onMouseOver polling interval
        over: megaHoverOver, // function = onMouseOver callback (REQUIRED)
        timeout: 500, // number = milliseconds delay before onMouseOut
        out: megaHoverOut // function = onMouseOut callback (REQUIRED)
    };
    $(".sub").css({ 'opacity': '0' }); //Fade sub nav to 0 opacity on default
    $("ul.nav li").hoverIntent(config); //Trigger Hover intent with custom configurations

    //insert uls for every 7 items
    $("ul.nav li div.sub").each(function (i) {

        var nodes = $(this).find("ul li");

        var currentUl;

        for (var i = 0; i < nodes.length; i++) {

            if (i % 7 == 0) {
                currentUl = $("<ul>").appendTo($(this));
            }

            currentUl.append(nodes[i]);
        }

        //remove first ul
        $(this).find("ul:first").remove();

    });

});
