startSidenav: function()

in website/content/javascripts/bookbinder.js [73:100]


    startSidenav: function(rootEl, currentPath) {
      if (!rootEl) { return; }

      var submenus = rootEl.querySelectorAll('.has_submenu');

      for (var i = 0; i < submenus.length; i++) {
        registerOnClick(submenus[i], openSubmenu);
      }

      if (currentPath) {
        var currentLink = rootEl.querySelector('a[href="' + currentPath + '"]');
        if (currentLink) {
          currentLink.className += ' active';

          var hasSubmenu = /\bhas_submenu\b/;
          var subnavLocation = currentLink.parentNode;

          while(subnavLocation.parentNode !== rootEl) {
            subnavLocation = subnavLocation.parentNode;
            if (hasSubmenu.test(subnavLocation.className)) {
              subnavLocation.className += ' expanded';
            }
          }

          rootEl.scrollTop = currentLink.offsetTop - rootEl.offsetTop;
        }
      }
    },