function highlightNav()

in redback/core/apidocs/assets/doclava-developer-docs.js [179:231]


function highlightNav(fullPageName) {
  var lastSlashPos = fullPageName.lastIndexOf("/");
  var firstSlashPos;
  if (fullPageName.indexOf("/guide/") != -1) {
      firstSlashPos = fullPageName.indexOf("/guide/");
    } else if (fullPageName.indexOf("/sdk/") != -1) {
      firstSlashPos = fullPageName.indexOf("/sdk/");
    } else {
      firstSlashPos = fullPageName.indexOf("/resources/");
    }
  if (lastSlashPos == (fullPageName.length - 1)) { // if the url ends in slash (add 'index.html')
    fullPageName = fullPageName + "index.html";
  }
  // First check if the exact URL, with query string and all, is in the navigation menu
  var pathPageName = fullPageName.substr(firstSlashPos);
  var link = $("#devdoc-nav a[href$='"+ pathPageName+"']");
  if (link.length == 0) {
    var htmlPos = fullPageName.lastIndexOf(".html", fullPageName.length);
    pathPageName = fullPageName.slice(firstSlashPos, htmlPos + 5); // +5 advances past ".html"
    link = $("#devdoc-nav a[href$='"+ pathPageName+"']");
    if ((link.length == 0) && ((fullPageName.indexOf("/guide/") != -1) || (fullPageName.indexOf("/resources/") != -1))) {
      // if there's no match, then let's backstep through the directory until we find an index.html page
      // that matches our ancestor directories (only for dev guide and resources)
      lastBackstep = pathPageName.lastIndexOf("/");
      while (link.length == 0) {
        backstepDirectory = pathPageName.lastIndexOf("/", lastBackstep);
        link = $("#devdoc-nav a[href$='"+ pathPageName.slice(0, backstepDirectory + 1)+"index.html']");
        lastBackstep = pathPageName.lastIndexOf("/", lastBackstep - 1);
        if (lastBackstep == 0) break;
      }
    }
  }

  // add 'selected' to the <li> or <div> that wraps this <a>
  link.parent().addClass('selected');

  // if we're in a toggleable root link (<li class=toggle-list><div><a>)
  if (link.parent().parent().hasClass('toggle-list')) {
    toggle(link.parent().parent(), false); // open our own list
    // then also check if we're in a third-level nested list that's toggleable
    if (link.parent().parent().parent().is(':hidden')) {
      toggle(link.parent().parent().parent().parent(), false); // open the super parent list
    }
  }
  // if we're in a normal nav link (<li><a>) and the parent <ul> is hidden
  else if (link.parent().parent().is(':hidden')) {
    toggle(link.parent().parent().parent(), false); // open the parent list
    // then also check if the parent list is also nested in a hidden list
    if (link.parent().parent().parent().parent().is(':hidden')) {
      toggle(link.parent().parent().parent().parent().parent(), false); // open the super parent list
    }
  }
}