$(document).ready(function () {
    var speedyMenu = $('.nav');
    //$('html').addClass('touch');

    function menuover(evt) {
        $(this).addClass("mouse");
        var windowWidth = $(window).innerWidth();
        var windowHeight = $(window).innerHeight();
        var navRightPos = $('.nav').width() + $('.nav').offset().left;
        if ($(this).parent('.nav').length) {
            if ($(this).hasClass('current')) {
                $(this).addClass('currentPlaceholder');
            }
            $(this).addClass('current');
        }
        //$('.speedyhover').css({'color':$('.active').css('color')});
        var subMenu = $(this).children('ul.subs');

        if (subMenu.length > 0) {
            $(subMenu).css({ display: "block" });
            var rightPos = $(subMenu).offset().left + $(subMenu).width();
            var bottomPos = $(subMenu).offset().top + $(subMenu).height();
            $(subMenu).css({ display: "none" });

           // if ($(subMenu).parents('#SidebarMenu').length <= 0) {
                if (windowWidth > 767) {
                    if ($(subMenu).attr('data-animation') != "fadeIn" && $(subMenu).attr('data-animation') != "slideDown") {
                        $(subMenu).css({ 'visibility': 'visible', 'display': 'block' }).addClass('animated ').addClass($(subMenu).attr('data-animation'));
                    } else if ($(subMenu).attr('data-animation') == "slideDown") {
                        $(subMenu).slideDown('fast');
                    } else {
                        $(subMenu).fadeIn('fast');
                    }
                } else {
                    $(subMenu).slideDown('fast');
                }
           // }
            //$(subMenu).css({ "display": 'block',visibility:'visible' }).addClass("animated shake");
            if (rightPos > windowWidth) {
                if ($(subMenu).hasClass('flyout')) {
                    if (windowWidth > 767)
                        $(subMenu).addClass('leftmenu');
                }
                $(subMenu).css({ "right": 0 });
            }

            if (bottomPos > $(window).scrollTop() + windowHeight) {
                if ($(subMenu).hasClass('flyout')) {
                    //$(subMenu).css({"bottom" : 0});
                }
            }
        }
    }

    function menuout(evt) {
        var subMenu = $(this).children('ul.subs');
        $(this).removeClass('mouse');
        if ($(this).parent('.nav').length) {
            $(this).removeClass('current');

            if ($(this).hasClass('currentPlaceholder')) {
                $(this).removeClass('currentPlaceholder').addClass('current');
            }
        }
        //if ($(subMenu).parents('#SidebarMenu').length <= 0) {
            $(subMenu).removeClass('animated').removeClass($(subMenu).attr('data-animation'));
            $(subMenu).stop().fadeOut('fast');
        //}

        //$(this).children('ul.subs').animate({opacity:0},500);
    }

    //if ($('html.touch').length <= 0) {
        $(".nav li").hoverIntent({
            over: menuover,
            out: menuout,
            timeout: 300
        });
    //}

    if ($('html.touch').length > 0) {
        $('html').click(function () {
            $('.nav ul.subs').css({ display: 'none' });
        });

        $('.nav li').click(function (evt) {
            $('.nav ul.subs').not($(this).children('ul.subs')).not($(this).parents('ul.subs')).css({ display: 'none' });

            var sender = evt.target;
            var windowWidth = $(window).innerWidth();
            var windowHeight = $(window).innerHeight();
            var navRightPos = $('.nav').width() + $('.nav').offset().left;

            var subMenu = $(this).children('ul.subs');

            if (subMenu.length > 0) {
                $(subMenu).show();
                
                $(subMenu).hide();
                $(subMenu).slideDown('fast');

                var rightPos = $(subMenu).offset().left + $(subMenu).width();
                var bottomPos = $(subMenu).offset().top + $(subMenu).height();
                if (rightPos > windowWidth) {
                    if ($(subMenu).hasClass('flyout')) {
                        if (windowWidth > 767)
                            $(subMenu).addClass('leftmenu');
                    }
                    $(subMenu).css({ right: 0 });
                }

                if (bottomPos > $(window).scrollTop() + windowHeight) {
                    if ($(subMenu).hasClass('flyout')) {
                        $(subMenu).css({ "bottom": 0 });
                    }
                }
            }
            if ($(sender).parent('li').hasClass('parent') == true) {
                if ($(sender).parent('li').hasClass('clicked') == false && $(sender).parent('li').hasClass('mouse') == false) {
                    $('.parent').removeClass('clicked');
                    $(sender).parent('li').addClass('clicked');
                    evt.stopPropagation();
                    evt.preventDefault();
                    return false;
                }
            }
        });

        jQuery(window).on("resize", function (event) {
            var windowWidth = $(window).innerWidth();
            var navRightPos = $('.nav').width() + $('.nav').offset().left;
            var subMenu = $('.nav ul.subs').filter(':visible');

            $(subMenu).css({ "right": "auto" });
            if (windowWidth < 768) {
                $('.leftmenu').removeClass('leftmenu').addClass('tmpmenu');
            }
            else {
                $('.tmpmenu').removeClass('tmpmenu').addClass('leftmenu');
            }

            if (windowWidth >= 768) {
                $(subMenu).each(function (index) {
                    if ($(this).length > 0) {
                        var rightPos = $(this).offset().left + $(this).width();

                        if (rightPos > windowWidth) {
                            $(this).css({ "right": 0 });
                        }
                        else {
                            //$(this).css({"left":"auto"});
                        }
                    }
                });
            }
        });
    }
});