﻿(function ($) {


    $(document).ready(function () {
        nu.megaMenu.init();
    });

    var nu = window.nu || {};

    nu.megaMenu = {
        currentMegaMenu: null,
        links: null,
        isAnimating: false,


        init: function () {
            nu.megaMenu.links = $('#nuDirectoriesLinks, #nuAZLinks, #nuCampusLinks').click(nu.megaMenu.onMegaClick);

            $('#nuMegaMenues a.nuCloseBtn').click(nu.megaMenu.onCloseBtnClick);
        },

        onMegaClick: function (event) {
            event.preventDefault();

            var anchor = $(this);
            var id = anchor.attr('id');

            /* this next section uses a JSON request to populate the mega menus, disable as menu content is coming elsewhere
            if($('.nuDirectoriesLinks').length<1) { // If Megamenu hasn't been remotely loaded yet.
				
            // Set Timer to trigger link directly to landing page if globalutility doesn't load in 1.5 seconds
            landingPageURL = $('#'+id).attr("href");
            var goToLandingPage = setTimeout('window.location = landingPageURL', 1500);

            $.getJSON(
            "http://da.ubc.ca/visualidentity/clf/header/globalutility.php?jsoncallback=?", 
            function(data, textStatus) {
            $('#nuMegaMenues a.nuCloseBtn').before(data.html); // Load it, and then place it in the div
            }
            ).complete(function() {
            clearTimeout ( goToLandingPage );
            anchor.click();
            });
            return; // prevents the animation part of the script from running. Re-trigger the action through the ajaxStop binding above.
            }
            */

            if (nu.megaMenu.isAnimating) return;

            if (nu.megaMenu.currentMegaMenu && anchor.attr('id') != nu.megaMenu.currentMegaMenu) {
                $('#nuMegaMenues div.' + nu.megaMenu.currentMegaMenu).hide();
                nu.megaMenu.links.removeClass('nuSelected').trigger('closed');
                nu.megaMenu.currentMegaMenu = null;
            }

            var megaMenuSelector = '#nuMegaMenues div.' + id;

            nu.megaMenu.isAnimating = true;

            if (anchor.hasClass('nuSelected')) {
                //hide menu
                $(megaMenuSelector).slideUp(400, function () { $('#nuMegaMenues').slideUp(200, nu.megaMenu.onAnimationFinish); });

                anchor.removeClass('nuSelected').trigger('closed');
                nu.megaMenu.currentMegaMenu = null;
            }
            else { //show menu
                $(megaMenuSelector).show();
                $('#nuMegaMenues').slideDown(400, nu.megaMenu.onAnimationFinish);
                anchor.addClass('nuSelected').trigger('opened');
                nu.megaMenu.currentMegaMenu = id;
            }
        },

        onCloseBtnClick: function (event) {
            event.preventDefault();

            if (nu.megaMenu.isAnimating) return;

            nu.megaMenu.isAnimating = true;

            $('#nuMegaMenues').slideUp(400, function () {
                $('#nuMegaMenues div.' + nu.megaMenu.currentMegaMenu).hide();
                nu.megaMenu.onAnimationFinish();
            });
            nu.megaMenu.links.removeClass('nuSelected').trigger('closed');
        },

        onAnimationFinish: function () {
            nu.megaMenu.isAnimating = false;
        }
    };




})(jQuery);
