davestacey
6/12/2014 - 5:22 PM

Responsive-nav for http://responsive-nav.com/

Responsive-nav for http://responsive-nav.com/

(function($){
  $.fn.beaBaseFunctions = function() {
    var ns = ns || {}; // set nameSpace

    /*******************************************
    Set your namespaced functions as non global variables,
    keep the global scope clear to reduce naming clashes and keep memory usage down
    *******************************************/

    // Init Functions
    ns.beaInit = function() {

      // Prep menus
      $('.region-sidebar-first').addClass('nav-collapse-wrapper');
      $('.block-sector-menu-block').addClass('nav-collapse-menu1');
      $('.block-technology-menu-view-block').addClass('nav-collapse-menu2');
      $('.block-calculators-menu-block').addClass('nav-collapse-menu3');

      //check for IE8 or less
      if ( $('html').hasClass('isIe8') ) {
        //Placeholder: was going to make mods on menu items
      } else {
        //console.log('NOT IE8');
        var mobileMenus = ns.buildMobileMenus();
        var showImageWidthsAdmin = ns.addImageWidthsAdmin();
      //var responsiveImageTesting = ns.responsiveImageTesting();}
      };
    };

    // build responsive menus function
    ns.buildMobileMenus = function() {

      var navSideBarFirst = responsiveNav("aside.region-sidebar-first", {
        label: "Menu", // String: Label for the navigation toggle
        navActiveClass: "js-nav-active", // String: Class that is added to  element when nav is active
        open: function(){
          //Placeholder fyi
          }, // Function: Open callback
      });

      var navBusiness = responsiveNav(".nav-collapse-menu1", { // Selector
        label: "Business Type", // String: Label for the navigation toggle
        navActiveClass: "js-nav-active-sub", // String: Class that is added to  element when nav is active
      });

      var navTech = responsiveNav(".nav-collapse-menu2", { // Selector
        label: "Technology", // String: Label for the navigation toggle
        navActiveClass: "js-nav-active-sub", // String: Class that is added to  element when nav is active
      });

      var navCalculators = responsiveNav(".nav-collapse-menu3", { // Selector
        label: "Calculators", // String: Label for the navigation toggle
        navActiveClass: "js-nav-active-sub", // String: Class that is added to  element when nav is active
      });

      // Trigger via css media query change, then remove class
      // TODO: migrate this to using .attr("aria-hidden")
      if ( $('.region-sidebar-first').css('overflow') == "visible") {
        console.log('SHOW SIDEBAR');
        $('.region-sidebar-first').removeClass('closed');
        $('#section-content').addClass('menu-open');
      }

      // Trigger via html attributes
      if ( $('.region-sidebar-first').attr("aria-hidden") ) {
        console.log('aria-hidden1');
        //$('.region-sidebar-first').addClass('closed');
        $('#section-content').removeClass('menu-open');
      }

      window.onresize = function(event) {
        if ($(window).width() > 1024) {
          if ( $('.region-sidebar-first').attr("aria-hidden") ) {
            console.log('aria-hidden');
            //$('#section-content').removeClass('menu-open');
            $('.region-sidebar-first').removeClass('closed');
          }//if aria-hidden
        }// if width
      }//window.onresize
      
    }; // end ns.buildMobileMenus

    /*******************************************
    Set your namespaced functions as non global variables,
    keep the global scope clear to reduce naming clashes and keep memory usage down
    *******************************************/
    // Execute all our functions!!!!!
    var beaInit = ns.beaInit();
   
  };
})(jQuery);