'+
@@ -88,29 +87,28 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
if (searchBoxHtml) {
$('#main-menu').append('
');
}
- var $mainMenuState = $('#main-menu-state');
- var prevWidth = 0;
+ const $mainMenuState = $('#main-menu-state');
+ let prevWidth = 0;
if ($mainMenuState.length) {
- function initResizableIfExists() {
+ const initResizableIfExists = function() {
if (typeof initResizable==='function') initResizable();
}
// animate mobile menu
- $mainMenuState.change(function(e) {
- var $menu = $('#main-menu');
- var options = { duration: 250, step: initResizableIfExists };
+ $mainMenuState.change(function() {
+ const $menu = $('#main-menu');
+ let options = { duration: 250, step: initResizableIfExists };
if (this.checked) {
- options['complete'] = function() { $menu.css('display', 'block') };
+ options['complete'] = () => $menu.css('display', 'block');
$menu.hide().slideDown(options);
} else {
- options['complete'] = function() { $menu.css('display', 'none') };
+ options['complete'] = () => $menu.css('display', 'none');
$menu.show().slideUp(options);
}
});
// set default menu visibility
- function resetState() {
- var $menu = $('#main-menu');
- var $mainMenuState = $('#main-menu-state');
- var newWidth = $(window).outerWidth();
+ const resetState = function() {
+ const $menu = $('#main-menu');
+ const newWidth = $(window).outerWidth();
if (newWidth!=prevWidth) {
if ($(window).outerWidth()<768) {
$mainMenuState.prop('checked',false); $menu.hide();
diff --git a/docs/html/namespacecppbase.html b/docs/html/namespacecppbase.html
index 04753a3..202059f 100644
--- a/docs/html/namespacecppbase.html
+++ b/docs/html/namespacecppbase.html
@@ -3,16 +3,18 @@
-
+
cppbase: cppbase Namespace Reference
+
+
@@ -34,7 +36,7 @@
-
+
@@ -64,7 +66,7 @@
@@ -98,7 +100,7 @@
diff --git a/docs/html/namespacemembers_func.html b/docs/html/namespacemembers_func.html
index 76a7a3c..c1455de 100644
--- a/docs/html/namespacemembers_func.html
+++ b/docs/html/namespacemembers_func.html
@@ -3,16 +3,18 @@
-
+
cppbase: Namespace Members
+
+
@@ -34,7 +36,7 @@
-
+
@@ -64,7 +66,7 @@
@@ -98,7 +100,7 @@
diff --git a/docs/html/namespaces.html b/docs/html/namespaces.html
index 08567af..c58aa68 100644
--- a/docs/html/namespaces.html
+++ b/docs/html/namespaces.html
@@ -3,16 +3,18 @@
-
+
cppbase: Namespace List
+
+
@@ -34,7 +36,7 @@
-
+
@@ -64,7 +66,7 @@
@@ -103,7 +105,7 @@
diff --git a/docs/html/navtree.js b/docs/html/navtree.js
index 93dd3d4..884b79b 100644
--- a/docs/html/navtree.js
+++ b/docs/html/navtree.js
@@ -22,538 +22,461 @@
@licend The above is the entire license notice for the JavaScript code in this file
*/
-var navTreeSubIndices = new Array();
-var arrowDown = '▼';
-var arrowRight = '►';
-
-function getData(varName)
-{
- var i = varName.lastIndexOf('/');
- var n = i>=0 ? varName.substring(i+1) : varName;
- return eval(n.replace(/\-/g,'_'));
-}
-function stripPath(uri)
-{
- return uri.substring(uri.lastIndexOf('/')+1);
-}
+function initNavTree(toroot,relpath) {
+ let navTreeSubIndices = [];
+ const ARROW_DOWN = '▼';
+ const ARROW_RIGHT = '►';
+ const NAVPATH_COOKIE_NAME = ''+'navpath';
-function stripPath2(uri)
-{
- var i = uri.lastIndexOf('/');
- var s = uri.substring(i+1);
- var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
- return m ? uri.substring(i-6) : s;
-}
+ const getData = function(varName) {
+ const i = varName.lastIndexOf('/');
+ const n = i>=0 ? varName.substring(i+1) : varName;
+ return eval(n.replace(/-/g,'_'));
+ }
-function hashValue()
-{
- return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,'');
-}
+ const stripPath = function(uri) {
+ return uri.substring(uri.lastIndexOf('/')+1);
+ }
-function hashUrl()
-{
- return '#'+hashValue();
-}
+ const stripPath2 = function(uri) {
+ const i = uri.lastIndexOf('/');
+ const s = uri.substring(i+1);
+ const m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
+ return m ? uri.substring(i-6) : s;
+ }
-function pathName()
-{
- return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, '');
-}
+ const hashValue = function() {
+ return $(location).attr('hash').substring(1).replace(/[^\w-]/g,'');
+ }
-function localStorageSupported()
-{
- try {
- return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem;
+ const hashUrl = function() {
+ return '#'+hashValue();
}
- catch(e) {
- return false;
+
+ const pathName = function() {
+ return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;()]/g, '');
}
-}
-function storeLink(link)
-{
- if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) {
- window.localStorage.setItem('navpath',link);
+ const storeLink = function(link) {
+ if (!$("#nav-sync").hasClass('sync')) {
+ Cookie.writeSetting(NAVPATH_COOKIE_NAME,link,0);
+ }
}
-}
-function deleteLink()
-{
- if (localStorageSupported()) {
- window.localStorage.setItem('navpath','');
+ const deleteLink = function() {
+ Cookie.eraseSetting(NAVPATH_COOKIE_NAME);
}
-}
-function cachedLink()
-{
- if (localStorageSupported()) {
- return window.localStorage.getItem('navpath');
- } else {
- return '';
+ const cachedLink = function() {
+ return Cookie.readSetting(NAVPATH_COOKIE_NAME,'');
}
-}
-function getScript(scriptName,func)
-{
- var head = document.getElementsByTagName("head")[0];
- var script = document.createElement('script');
- script.id = scriptName;
- script.type = 'text/javascript';
- script.onload = func;
- script.src = scriptName+'.js';
- head.appendChild(script);
-}
+ const getScript = function(scriptName,func) {
+ const head = document.getElementsByTagName("head")[0];
+ const script = document.createElement('script');
+ script.id = scriptName;
+ script.type = 'text/javascript';
+ script.onload = func;
+ script.src = scriptName+'.js';
+ head.appendChild(script);
+ }
-function createIndent(o,domNode,node,level)
-{
- var level=-1;
- var n = node;
- while (n.parentNode) { level++; n=n.parentNode; }
- if (node.childrenData) {
- var imgNode = document.createElement("span");
- imgNode.className = 'arrow';
- imgNode.style.paddingLeft=(16*level).toString()+'px';
- imgNode.innerHTML=arrowRight;
- node.plus_img = imgNode;
- node.expandToggle = document.createElement("a");
- node.expandToggle.href = "javascript:void(0)";
- node.expandToggle.onclick = function() {
- if (node.expanded) {
- $(node.getChildrenUL()).slideUp("fast");
- node.plus_img.innerHTML=arrowRight;
- node.expanded = false;
- } else {
- expandNode(o, node, false, true);
+ const createIndent = function(o,domNode,node) {
+ let level=-1;
+ let n = node;
+ while (n.parentNode) { level++; n=n.parentNode; }
+ if (node.childrenData) {
+ const imgNode = document.createElement("span");
+ imgNode.className = 'arrow';
+ imgNode.style.paddingLeft=(16*level).toString()+'px';
+ imgNode.innerHTML=ARROW_RIGHT;
+ node.plus_img = imgNode;
+ node.expandToggle = document.createElement("a");
+ node.expandToggle.href = "javascript:void(0)";
+ node.expandToggle.onclick = function() {
+ if (node.expanded) {
+ $(node.getChildrenUL()).slideUp("fast");
+ node.plus_img.innerHTML=ARROW_RIGHT;
+ node.expanded = false;
+ } else {
+ expandNode(o, node, false, true);
+ }
}
+ node.expandToggle.appendChild(imgNode);
+ domNode.appendChild(node.expandToggle);
+ } else {
+ let span = document.createElement("span");
+ span.className = 'arrow';
+ span.style.width = 16*(level+1)+'px';
+ span.innerHTML = ' ';
+ domNode.appendChild(span);
}
- node.expandToggle.appendChild(imgNode);
- domNode.appendChild(node.expandToggle);
- } else {
- var span = document.createElement("span");
- span.className = 'arrow';
- span.style.width = 16*(level+1)+'px';
- span.innerHTML = ' ';
- domNode.appendChild(span);
}
-}
-var animationInProgress = false;
-
-function gotoAnchor(anchor,aname,updateLocation)
-{
- var pos, docContent = $('#doc-content');
- var ancParent = $(anchor.parent());
- if (ancParent.hasClass('memItemLeft') ||
- ancParent.hasClass('memtitle') ||
- ancParent.hasClass('fieldname') ||
- ancParent.hasClass('fieldtype') ||
- ancParent.is(':header'))
- {
- pos = ancParent.position().top;
- } else if (anchor.position()) {
- pos = anchor.position().top;
- }
- if (pos) {
- var dist = Math.abs(Math.min(
- pos-docContent.offset().top,
- docContent[0].scrollHeight-
- docContent.height()-docContent.scrollTop()));
- animationInProgress=true;
- docContent.animate({
- scrollTop: pos + docContent.scrollTop() - docContent.offset().top
- },Math.max(50,Math.min(500,dist)),function(){
- if (updateLocation) window.location.href=aname;
- animationInProgress=false;
- });
+ let animationInProgress = false;
+
+ const gotoAnchor = function(anchor,aname) {
+ let pos, docContent = $('#doc-content');
+ let ancParent = $(anchor.parent());
+ if (ancParent.hasClass('memItemLeft') || ancParent.hasClass('memtitle') ||
+ ancParent.hasClass('fieldname') || ancParent.hasClass('fieldtype') ||
+ ancParent.is(':header')) {
+ pos = ancParent.position().top;
+ } else if (anchor.position()) {
+ pos = anchor.position().top;
+ }
+ if (pos) {
+ const dcOffset = docContent.offset().top;
+ const dcHeight = docContent.height();
+ const dcScrHeight = docContent[0].scrollHeight
+ const dcScrTop = docContent.scrollTop();
+ let dist = Math.abs(Math.min(pos-dcOffset,dcScrHeight-dcHeight-dcScrTop));
+ animationInProgress = true;
+ docContent.animate({
+ scrollTop: pos + dcScrTop - dcOffset
+ },Math.max(50,Math.min(500,dist)),function() {
+ window.location.href=aname;
+ animationInProgress=false;
+ });
+ }
}
-}
-function newNode(o, po, text, link, childrenData, lastNode)
-{
- var node = new Object();
- node.children = Array();
- node.childrenData = childrenData;
- node.depth = po.depth + 1;
- node.relpath = po.relpath;
- node.isLast = lastNode;
-
- node.li = document.createElement("li");
- po.getChildrenUL().appendChild(node.li);
- node.parentNode = po;
-
- node.itemDiv = document.createElement("div");
- node.itemDiv.className = "item";
-
- node.labelSpan = document.createElement("span");
- node.labelSpan.className = "label";
-
- createIndent(o,node.itemDiv,node,0);
- node.itemDiv.appendChild(node.labelSpan);
- node.li.appendChild(node.itemDiv);
-
- var a = document.createElement("a");
- node.labelSpan.appendChild(a);
- node.label = document.createTextNode(text);
- node.expanded = false;
- a.appendChild(node.label);
- if (link) {
- var url;
- if (link.substring(0,1)=='^') {
- url = link.substring(1);
- link = url;
- } else {
- url = node.relpath+link;
- }
- a.className = stripPath(link.replace('#',':'));
- if (link.indexOf('#')!=-1) {
- var aname = '#'+link.split('#')[1];
- var srcPage = stripPath(pathName());
- var targetPage = stripPath(link.split('#')[0]);
- a.href = srcPage!=targetPage ? url : "javascript:void(0)";
- a.onclick = function(){
- storeLink(link);
- if (!$(a).parent().parent().hasClass('selected'))
- {
- $('.item').removeClass('selected');
- $('.item').removeAttr('id');
- $(a).parent().parent().addClass('selected');
- $(a).parent().parent().attr('id','selected');
+ const newNode = function(o, po, text, link, childrenData, lastNode) {
+ const node = {
+ children : [],
+ childrenData : childrenData,
+ depth : po.depth + 1,
+ relpath : po.relpath,
+ isLast : lastNode,
+ li : document.createElement("li"),
+ parentNode : po,
+ itemDiv : document.createElement("div"),
+ labelSpan : document.createElement("span"),
+ label : document.createTextNode(text),
+ expanded : false,
+ childrenUL : null,
+ getChildrenUL : function() {
+ if (!this.childrenUL) {
+ this.childrenUL = document.createElement("ul");
+ this.childrenUL.className = "children_ul";
+ this.childrenUL.style.display = "none";
+ this.li.appendChild(node.childrenUL);
}
- var anchor = $(aname);
- gotoAnchor(anchor,aname,true);
- };
- } else {
- a.href = url;
- a.onclick = function() { storeLink(link); }
- }
- } else {
- if (childrenData != null)
- {
+ return node.childrenUL;
+ },
+ };
+
+ node.itemDiv.className = "item";
+ node.labelSpan.className = "label";
+ createIndent(o,node.itemDiv,node);
+ node.itemDiv.appendChild(node.labelSpan);
+ node.li.appendChild(node.itemDiv);
+
+ const a = document.createElement("a");
+ node.labelSpan.appendChild(a);
+ po.getChildrenUL().appendChild(node.li);
+ a.appendChild(node.label);
+ if (link) {
+ let url;
+ if (link.substring(0,1)=='^') {
+ url = link.substring(1);
+ link = url;
+ } else {
+ url = node.relpath+link;
+ }
+ a.className = stripPath(link.replace('#',':'));
+ if (link.indexOf('#')!=-1) {
+ const aname = '#'+link.split('#')[1];
+ const srcPage = stripPath(pathName());
+ const targetPage = stripPath(link.split('#')[0]);
+ a.href = srcPage!=targetPage ? url : aname;
+ a.onclick = function() {
+ storeLink(link);
+ aPPar = $(a).parent().parent();
+ if (!aPPar.hasClass('selected')) {
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ aPPar.addClass('selected');
+ aPPar.attr('id','selected');
+ }
+ const anchor = $(aname);
+ gotoAnchor(anchor,aname);
+ };
+ } else {
+ a.href = url;
+ a.onclick = () => storeLink(link);
+ }
+ } else if (childrenData != null) {
a.className = "nolink";
a.href = "javascript:void(0)";
a.onclick = node.expandToggle.onclick;
}
+ return node;
}
- node.childrenUL = null;
- node.getChildrenUL = function() {
- if (!node.childrenUL) {
- node.childrenUL = document.createElement("ul");
- node.childrenUL.className = "children_ul";
- node.childrenUL.style.display = "none";
- node.li.appendChild(node.childrenUL);
- }
- return node.childrenUL;
- };
-
- return node;
-}
-
-function showRoot()
-{
- var headerHeight = $("#top").height();
- var footerHeight = $("#nav-path").height();
- var windowHeight = $(window).height() - headerHeight - footerHeight;
- (function (){ // retry until we can scroll to the selected item
- try {
- var navtree=$('#nav-tree');
- navtree.scrollTo('#selected',100,{offset:-windowHeight/2});
- } catch (err) {
- setTimeout(arguments.callee, 0);
- }
- })();
-}
-
-function expandNode(o, node, imm, setFocus)
-{
- if (node.childrenData && !node.expanded) {
- if (typeof(node.childrenData)==='string') {
- var varName = node.childrenData;
- getScript(node.relpath+varName,function(){
- node.childrenData = getData(varName);
- expandNode(o, node, imm, setFocus);
- });
- } else {
- if (!node.childrenVisited) {
- getNode(o, node);
+ const showRoot = function() {
+ const headerHeight = $("#top").height();
+ const footerHeight = $("#nav-path").height();
+ const windowHeight = $(window).height() - headerHeight - footerHeight;
+ (function() { // retry until we can scroll to the selected item
+ try {
+ const navtree=$('#nav-tree');
+ navtree.scrollTo('#selected',100,{offset:-windowHeight/2});
+ } catch (err) {
+ setTimeout(arguments.callee, 0);
}
- $(node.getChildrenUL()).slideDown("fast");
- node.plus_img.innerHTML = arrowDown;
- node.expanded = true;
- if (setFocus) {
- $(node.expandToggle).focus();
+ })();
+ }
+
+ const expandNode = function(o, node, imm, setFocus) {
+ if (node.childrenData && !node.expanded) {
+ if (typeof(node.childrenData)==='string') {
+ const varName = node.childrenData;
+ getScript(node.relpath+varName,function() {
+ node.childrenData = getData(varName);
+ expandNode(o, node, imm, setFocus);
+ });
+ } else {
+ if (!node.childrenVisited) {
+ getNode(o, node);
+ }
+ $(node.getChildrenUL()).slideDown("fast");
+ node.plus_img.innerHTML = ARROW_DOWN;
+ node.expanded = true;
+ if (setFocus) {
+ $(node.expandToggle).focus();
+ }
}
}
}
-}
-
-function glowEffect(n,duration)
-{
- n.addClass('glow').delay(duration).queue(function(next){
- $(this).removeClass('glow');next();
- });
-}
-function highlightAnchor()
-{
- var aname = hashUrl();
- var anchor = $(aname);
- if (anchor.parent().attr('class')=='memItemLeft'){
- var rows = $('.memberdecls tr[class$="'+hashValue()+'"]');
- glowEffect(rows.children(),300); // member without details
- } else if (anchor.parent().attr('class')=='fieldname'){
- glowEffect(anchor.parent().parent(),1000); // enum value
- } else if (anchor.parent().attr('class')=='fieldtype'){
- glowEffect(anchor.parent().parent(),1000); // struct field
- } else if (anchor.parent().is(":header")) {
- glowEffect(anchor.parent(),1000); // section header
- } else {
- glowEffect(anchor.next(),1000); // normal member
+ const glowEffect = function(n,duration) {
+ n.addClass('glow').delay(duration).queue(function(next) {
+ $(this).removeClass('glow');next();
+ });
}
-}
-function selectAndHighlight(hash,n)
-{
- var a;
- if (hash) {
- var link=stripPath(pathName())+':'+hash.substring(1);
- a=$('.item a[class$="'+link+'"]');
- }
- if (a && a.length) {
- a.parent().parent().addClass('selected');
- a.parent().parent().attr('id','selected');
- highlightAnchor();
- } else if (n) {
- $(n.itemDiv).addClass('selected');
- $(n.itemDiv).attr('id','selected');
- }
- var topOffset=5;
- if (typeof page_layout!=='undefined' && page_layout==1) {
- topOffset+=$('#top').outerHeight();
+ const highlightAnchor = function() {
+ const aname = hashUrl();
+ const anchor = $(aname);
+ if (anchor.parent().attr('class')=='memItemLeft') {
+ let rows = $('.memberdecls tr[class$="'+hashValue()+'"]');
+ glowEffect(rows.children(),300); // member without details
+ } else if (anchor.parent().attr('class')=='fieldname') {
+ glowEffect(anchor.parent().parent(),1000); // enum value
+ } else if (anchor.parent().attr('class')=='fieldtype') {
+ glowEffect(anchor.parent().parent(),1000); // struct field
+ } else if (anchor.parent().is(":header")) {
+ glowEffect(anchor.parent(),1000); // section header
+ } else {
+ glowEffect(anchor.next(),1000); // normal member
+ }
+ gotoAnchor(anchor,aname);
}
- if ($('#nav-tree-contents .item:first').hasClass('selected')) {
- topOffset+=25;
+
+ const selectAndHighlight = function(hash,n) {
+ let a;
+ if (hash) {
+ const link=stripPath(pathName())+':'+hash.substring(1);
+ a=$('.item a[class$="'+link+'"]');
+ }
+ if (a && a.length) {
+ a.parent().parent().addClass('selected');
+ a.parent().parent().attr('id','selected');
+ highlightAnchor();
+ } else if (n) {
+ $(n.itemDiv).addClass('selected');
+ $(n.itemDiv).attr('id','selected');
+ }
+ let topOffset=5;
+ if ($('#nav-tree-contents .item:first').hasClass('selected')) {
+ topOffset+=25;
+ }
+ $('#nav-sync').css('top',topOffset+'px');
+ showRoot();
}
- $('#nav-sync').css('top',topOffset+'px');
- showRoot();
-}
-function showNode(o, node, index, hash)
-{
- if (node && node.childrenData) {
- if (typeof(node.childrenData)==='string') {
- var varName = node.childrenData;
- getScript(node.relpath+varName,function(){
- node.childrenData = getData(varName);
- showNode(o,node,index,hash);
- });
- } else {
- if (!node.childrenVisited) {
- getNode(o, node);
- }
- $(node.getChildrenUL()).css({'display':'block'});
- node.plus_img.innerHTML = arrowDown;
- node.expanded = true;
- var n = node.children[o.breadcrumbs[index]];
- if (index+1
1) hash = '#'+parts[1].replace(/[^\w\-]/g,'');
- else hash='';
+ const getNode = function(o, po) {
+ const insertFunction = removeToInsertLater(po.li);
+ po.childrenVisited = true;
+ const l = po.childrenData.length-1;
+ for (let i in po.childrenData) {
+ const nodeData = po.childrenData[i];
+ po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2], i==l);
+ }
+ insertFunction();
}
- if (hash.match(/^#l\d+$/)) {
- var anchor=$('a[name='+hash.substring(1)+']');
- glowEffect(anchor.parent(),1000); // line number
- hash=''; // strip line number anchors
+
+ const gotoNode = function(o,subIndex,root,hash,relpath) {
+ const nti = navTreeSubIndices[subIndex][root+hash];
+ o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);
+ if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
+ navTo(o,NAVTREE[0][1],"",relpath);
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ }
+ if (o.breadcrumbs) {
+ o.breadcrumbs.unshift(0); // add 0 for root node
+ showNode(o, o.node, 0, hash);
+ }
}
- var url=root+hash;
- var i=-1;
- while (NAVTREEINDEX[i+1]<=url) i++;
- if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index
- if (navTreeSubIndices[i]) {
- gotoNode(o,i,root,hash,relpath)
- } else {
- getScript(relpath+'navtreeindex'+i,function(){
- navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
- if (navTreeSubIndices[i]) {
- gotoNode(o,i,root,hash,relpath);
- }
- });
+
+ const navTo = function(o,root,hash,relpath) {
+ const link = cachedLink();
+ if (link) {
+ const parts = link.split('#');
+ root = parts[0];
+ hash = parts.length>1 ? '#'+parts[1].replace(/[^\w-]/g,'') : '';
+ }
+ if (hash.match(/^#l\d+$/)) {
+ const anchor=$('a[name='+hash.substring(1)+']');
+ glowEffect(anchor.parent(),1000); // line number
+ hash=''; // strip line number anchors
+ }
+ const url=root+hash;
+ let i=-1;
+ while (NAVTREEINDEX[i+1]<=url) i++;
+ if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index
+ if (navTreeSubIndices[i]) {
+ gotoNode(o,i,root,hash,relpath)
+ } else {
+ getScript(relpath+'navtreeindex'+i,function() {
+ navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
+ if (navTreeSubIndices[i]) {
+ gotoNode(o,i,root,hash,relpath);
+ }
+ });
+ }
}
-}
-function showSyncOff(n,relpath)
-{
+ const showSyncOff = function(n,relpath) {
n.html(' ');
-}
+ }
-function showSyncOn(n,relpath)
-{
+ const showSyncOn = function(n,relpath) {
n.html(' ');
-}
+ }
-function toggleSyncButton(relpath)
-{
- var navSync = $('#nav-sync');
- if (navSync.hasClass('sync')) {
- navSync.removeClass('sync');
+ const o = {
+ toroot : toroot,
+ node : {
+ childrenData : NAVTREE,
+ children : [],
+ childrenUL : document.createElement("ul"),
+ getChildrenUL : function() { return this.childrenUL },
+ li : document.getElementById("nav-tree-contents"),
+ depth : 0,
+ relpath : relpath,
+ expanded : false,
+ isLast : true,
+ plus_img : document.createElement("span"),
+ },
+ };
+ o.node.li.appendChild(o.node.childrenUL);
+ o.node.plus_img.className = 'arrow';
+ o.node.plus_img.innerHTML = ARROW_RIGHT;
+
+ const navSync = $('#nav-sync');
+ if (cachedLink()) {
showSyncOff(navSync,relpath);
- storeLink(stripPath2(pathName())+hashUrl());
+ navSync.removeClass('sync');
} else {
- navSync.addClass('sync');
showSyncOn(navSync,relpath);
- deleteLink();
}
-}
-var loadTriggered = false;
-var readyTriggered = false;
-var loadObject,loadToRoot,loadUrl,loadRelPath;
-
-$(window).on('load',function(){
- if (readyTriggered) { // ready first
- navTo(loadObject,loadToRoot,loadUrl,loadRelPath);
- showRoot();
- }
- loadTriggered=true;
-});
-
-function initNavTree(toroot,relpath)
-{
- var o = new Object();
- o.toroot = toroot;
- o.node = new Object();
- o.node.li = document.getElementById("nav-tree-contents");
- o.node.childrenData = NAVTREE;
- o.node.children = new Array();
- o.node.childrenUL = document.createElement("ul");
- o.node.getChildrenUL = function() { return o.node.childrenUL; };
- o.node.li.appendChild(o.node.childrenUL);
- o.node.depth = 0;
- o.node.relpath = relpath;
- o.node.expanded = false;
- o.node.isLast = true;
- o.node.plus_img = document.createElement("span");
- o.node.plus_img.className = 'arrow';
- o.node.plus_img.innerHTML = arrowRight;
-
- if (localStorageSupported()) {
- var navSync = $('#nav-sync');
- if (cachedLink()) {
- showSyncOff(navSync,relpath);
+ navSync.click(() => {
+ const navSync = $('#nav-sync');
+ if (navSync.hasClass('sync')) {
navSync.removeClass('sync');
+ showSyncOff(navSync,relpath);
+ storeLink(stripPath2(pathName())+hashUrl());
} else {
+ navSync.addClass('sync');
showSyncOn(navSync,relpath);
+ deleteLink();
}
- navSync.click(function(){ toggleSyncButton(relpath); });
- }
+ });
- if (loadTriggered) { // load before ready
- navTo(o,toroot,hashUrl(),relpath);
- showRoot();
- } else { // ready before load
- loadObject = o;
- loadToRoot = toroot;
- loadUrl = hashUrl();
- loadRelPath = relpath;
- readyTriggered=true;
- }
+ navTo(o,toroot,hashUrl(),relpath);
+ showRoot();
- $(window).bind('hashchange', function(){
- if (window.location.hash && window.location.hash.length>1){
- var a;
- if ($(location).attr('hash')){
- var clslink=stripPath(pathName())+':'+hashValue();
- a=$('.item a[class$="'+clslink.replace(/ {
+ if (window.location.hash && window.location.hash.length>1) {
+ let a;
+ if ($(location).attr('hash')) {
+ const clslink=stripPath(pathName())+':'+hashValue();
+ a=$('.item a[class$="'+clslink.replace(/0) {
newWidth=0;
- }
- else {
- var width = readSetting('width');
+ } else {
+ const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250);
newWidth = (width>250 && width<$(window).width()) ? width : 250;
}
restoreWidth(newWidth);
- var sidenavWidth = $(sidenav).outerWidth();
- writeSetting('width',sidenavWidth-barWidth);
+ const sidenavWidth = $(sidenav).outerWidth();
+ Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth);
}
header = $("#top");
@@ -127,29 +84,26 @@ function initResizable()
content = $("#doc-content");
navtree = $("#nav-tree");
footer = $("#nav-path");
- $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
+ $(".side-nav-resizable").resizable({resize: () => resizeWidth() });
$(sidenav).resizable({ minWidth: 0 });
- $(window).resize(function() { resizeHeight(); });
- var device = navigator.userAgent.toLowerCase();
- var touch_device = device.match(/(iphone|ipod|ipad|android)/);
+ $(window).resize(() => resizeHeight());
+ const device = navigator.userAgent.toLowerCase();
+ const touch_device = device.match(/(iphone|ipod|ipad|android)/);
if (touch_device) { /* wider split bar for touch only devices */
$(sidenav).css({ paddingRight:'20px' });
$('.ui-resizable-e').css({ width:'20px' });
$('#nav-sync').css({ right:'34px' });
barWidth=20;
}
- var width = readSetting('width');
+ const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250);
if (width) { restoreWidth(width); } else { resizeWidth(); }
resizeHeight();
- var url = location.href;
- var i=url.indexOf("#");
+ const url = location.href;
+ const i=url.indexOf("#");
if (i>=0) window.location.hash=url.substr(i);
- var _preventDefault = function(evt) { evt.preventDefault(); };
+ const _preventDefault = (evt) => evt.preventDefault();
$("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
- if (once) {
- $(".ui-resizable-handle").dblclick(collapseExpand);
- once=0
- }
+ $(".ui-resizable-handle").dblclick(collapseExpand);
$(window).on('load',resizeHeight);
}
/* @license-end */
diff --git a/docs/html/search/search.js b/docs/html/search/search.js
index 6fd40c6..666af01 100644
--- a/docs/html/search/search.js
+++ b/docs/html/search/search.js
@@ -22,58 +22,9 @@
@licend The above is the entire license notice for the JavaScript code in this file
*/
-function convertToId(search)
-{
- var result = '';
- for (i=0;i document.getElementById("MSearchField");
+ this.DOMSearchSelect = () => document.getElementById("MSearchSelect");
+ this.DOMSearchSelectWindow = () => document.getElementById("MSearchSelectWindow");
+ this.DOMPopupSearchResults = () => document.getElementById("MSearchResults");
+ this.DOMPopupSearchResultsWindow = () => document.getElementById("MSearchResultsWindow");
+ this.DOMSearchClose = () => document.getElementById("MSearchClose");
+ this.DOMSearchBox = () => document.getElementById("MSearchBox");
// ------------ Event Handlers
// Called when focus is added or removed from the search field.
- this.OnSearchFieldFocus = function(isActive)
- {
+ this.OnSearchFieldFocus = function(isActive) {
this.Activate(isActive);
}
- this.OnSearchSelectShow = function()
- {
- var searchSelectWindow = this.DOMSearchSelectWindow();
- var searchField = this.DOMSearchSelect();
+ this.OnSearchSelectShow = function() {
+ const searchSelectWindow = this.DOMSearchSelectWindow();
+ const searchField = this.DOMSearchSelect();
- var left = getXPos(searchField);
- var top = getYPos(searchField);
- top += searchField.offsetHeight;
+ const left = getXPos(searchField);
+ const top = getYPos(searchField) + searchField.offsetHeight;
// show search selection popup
searchSelectWindow.style.display='block';
@@ -146,55 +102,43 @@ function SearchBox(name, resultsPath, extension)
searchSelectWindow.style.top = top + 'px';
// stop selection hide timer
- if (this.hideTimeout)
- {
+ if (this.hideTimeout) {
clearTimeout(this.hideTimeout);
this.hideTimeout=0;
}
return false; // to avoid "image drag" default event
}
- this.OnSearchSelectHide = function()
- {
+ this.OnSearchSelectHide = function() {
this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this),
this.closeSelectionTimeout);
}
// Called when the content of the search field is changed.
- this.OnSearchFieldChange = function(evt)
- {
- if (this.keyTimeout) // kill running timer
- {
+ this.OnSearchFieldChange = function(evt) {
+ if (this.keyTimeout) { // kill running timer
clearTimeout(this.keyTimeout);
this.keyTimeout = 0;
}
- var e = (evt) ? evt : window.event; // for IE
- if (e.keyCode==40 || e.keyCode==13)
- {
- if (e.shiftKey==1)
- {
+ const e = evt ? evt : window.event; // for IE
+ if (e.keyCode==40 || e.keyCode==13) {
+ if (e.shiftKey==1) {
this.OnSearchSelectShow();
- var win=this.DOMSearchSelectWindow();
- for (i=0;i do a search
- {
+ const searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+ if (searchValue!="" && this.searchActive) { // something was found -> do a search
this.Search();
}
}
- this.OnSearchSelectKey = function(evt)
- {
- var e = (evt) ? evt : window.event; // for IE
- if (e.keyCode==40 && this.searchIndex0) // Up
- {
+ } else if (e.keyCode==38 && this.searchIndex>0) { // Up
this.searchIndex--;
this.OnSelectItem(this.searchIndex);
- }
- else if (e.keyCode==13 || e.keyCode==27)
- {
+ } else if (e.keyCode==13 || e.keyCode==27) {
e.stopPropagation();
this.OnSelectItem(this.searchIndex);
this.CloseSelectionWindow();
@@ -301,82 +239,75 @@ function SearchBox(name, resultsPath, extension)
// --------- Actions
// Closes the results window.
- this.CloseResultsWindow = function()
- {
+ this.CloseResultsWindow = function() {
this.DOMPopupSearchResultsWindow().style.display = 'none';
this.DOMSearchClose().style.display = 'none';
this.Activate(false);
}
- this.CloseSelectionWindow = function()
- {
+ this.CloseSelectionWindow = function() {
this.DOMSearchSelectWindow().style.display = 'none';
}
// Performs a search.
- this.Search = function()
- {
+ this.Search = function() {
this.keyTimeout = 0;
// strip leading whitespace
- var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+ const searchValue = this.DOMSearchField().value.replace(/^ +/, "");
- var code = searchValue.toLowerCase().charCodeAt(0);
- var idxChar = searchValue.substr(0, 1).toLowerCase();
- if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
- {
+ const code = searchValue.toLowerCase().charCodeAt(0);
+ let idxChar = searchValue.substr(0, 1).toLowerCase();
+ if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) { // surrogate pair
idxChar = searchValue.substr(0, 2);
}
- var jsFile;
-
- var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
- if (idx!=-1)
- {
- var hexCode=idx.toString(16);
- jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js';
+ let jsFile;
+ let idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
+ if (idx!=-1) {
+ const hexCode=idx.toString(16);
+ jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js';
}
- var loadJS = function(url, impl, loc){
- var scriptTag = document.createElement('script');
+ const loadJS = function(url, impl, loc) {
+ const scriptTag = document.createElement('script');
scriptTag.src = url;
scriptTag.onload = impl;
scriptTag.onreadystatechange = impl;
loc.appendChild(scriptTag);
}
- var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
- var domSearchBox = this.DOMSearchBox();
- var domPopupSearchResults = this.DOMPopupSearchResults();
- var domSearchClose = this.DOMSearchClose();
- var resultsPath = this.resultsPath;
+ const domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+ const domSearchBox = this.DOMSearchBox();
+ const domPopupSearchResults = this.DOMPopupSearchResults();
+ const domSearchClose = this.DOMSearchClose();
+ const resultsPath = this.resultsPath;
- var handleResults = function() {
+ const handleResults = function() {
document.getElementById("Loading").style.display="none";
if (typeof searchData !== 'undefined') {
createResults(resultsPath);
document.getElementById("NoMatches").style.display="none";
}
-
+
if (idx!=-1) {
searchResults.Search(searchValue);
} else { // no file with search results => force empty search results
searchResults.Search('====');
}
- if (domPopupSearchResultsWindow.style.display!='block')
- {
+ if (domPopupSearchResultsWindow.style.display!='block') {
domSearchClose.style.display = 'inline-block';
- var left = getXPos(domSearchBox) + 150;
- var top = getYPos(domSearchBox) + 20;
+ let left = getXPos(domSearchBox) + 150;
+ let top = getYPos(domSearchBox) + 20;
domPopupSearchResultsWindow.style.display = 'block';
left -= domPopupSearchResults.offsetWidth;
- var maxWidth = document.body.clientWidth;
- var maxHeight = document.body.clientHeight;
- var width = 300;
+ const maxWidth = document.body.clientWidth;
+ const maxHeight = document.body.clientHeight;
+ let width = 300;
if (left<10) left=10;
if (width+left+8>maxWidth) width=maxWidth-left-8;
- var height = 400;
+ let height = 400;
if (height+top+8>maxHeight) height=maxHeight-top-8;
domPopupSearchResultsWindow.style.top = top + 'px';
domPopupSearchResultsWindow.style.left = left + 'px';
@@ -398,17 +329,13 @@ function SearchBox(name, resultsPath, extension)
// Activates or deactivates the search panel, resetting things to
// their default values if necessary.
- this.Activate = function(isActive)
- {
+ this.Activate = function(isActive) {
if (isActive || // open it
- this.DOMPopupSearchResultsWindow().style.display == 'block'
- )
- {
+ this.DOMPopupSearchResultsWindow().style.display == 'block'
+ ) {
this.DOMSearchBox().className = 'MSearchBoxActive';
this.searchActive = true;
- }
- else if (!isActive) // directly remove the panel
- {
+ } else if (!isActive) { // directly remove the panel
this.DOMSearchBox().className = 'MSearchBoxInactive';
this.searchActive = false;
this.lastSearchValue = ''
@@ -421,409 +348,333 @@ function SearchBox(name, resultsPath, extension)
// -----------------------------------------------------------------------
// The class that handles everything on the search results page.
-function SearchResults(name)
-{
- // The number of matches from the last run of .
- this.lastMatchCount = 0;
- this.lastKey = 0;
- this.repeatOn = false;
-
- // Toggles the visibility of the passed element ID.
- this.FindChildElement = function(id)
- {
- var parentElement = document.getElementById(id);
- var element = parentElement.firstChild;
-
- while (element && element!=parentElement)
- {
- if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren')
- {
- return element;
- }
+function SearchResults() {
+
+ function convertToId(search) {
+ let result = '';
+ for (let i=0;i.
+ this.lastMatchCount = 0;
+ this.lastKey = 0;
+ this.repeatOn = false;
- if (element && element!=parentElement)
- {
- element = element.nextSibling;
- }
- }
+ // Toggles the visibility of the passed element ID.
+ this.FindChildElement = function(id) {
+ const parentElement = document.getElementById(id);
+ let element = parentElement.firstChild;
+
+ while (element && element!=parentElement) {
+ if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') {
+ return element;
}
- }
- this.Toggle = function(id)
- {
- var element = this.FindChildElement(id);
- if (element)
- {
- if (element.style.display == 'block')
- {
- element.style.display = 'none';
+ if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) {
+ element = element.firstChild;
+ } else if (element.nextSibling) {
+ element = element.nextSibling;
+ } else {
+ do {
+ element = element.parentNode;
}
- else
- {
- element.style.display = 'block';
+ while (element && element!=parentElement && !element.nextSibling);
+
+ if (element && element!=parentElement) {
+ element = element.nextSibling;
}
}
}
+ }
- // Searches for the passed string. If there is no parameter,
- // it takes it from the URL query.
- //
- // Always returns true, since other documents may try to call it
- // and that may or may not be possible.
- this.Search = function(search)
- {
- if (!search) // get search word from URL
- {
- search = window.location.search;
- search = search.substring(1); // Remove the leading '?'
- search = unescape(search);
- }
-
- search = search.replace(/^ +/, ""); // strip leading spaces
- search = search.replace(/ +$/, ""); // strip trailing spaces
- search = search.toLowerCase();
- search = convertToId(search);
-
- var resultRows = document.getElementsByTagName("div");
- var matches = 0;
-
- var i = 0;
- while (i < resultRows.length)
- {
- var row = resultRows.item(i);
- if (row.className == "SRResult")
- {
- var rowMatchName = row.id.toLowerCase();
- rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
-
- if (search.length<=rowMatchName.length &&
- rowMatchName.substr(0, search.length)==search)
- {
- row.style.display = 'block';
- matches++;
- }
- else
- {
- row.style.display = 'none';
- }
- }
- i++;
- }
- document.getElementById("Searching").style.display='none';
- if (matches == 0) // no results
- {
- document.getElementById("NoMatches").style.display='block';
- }
- else // at least one result
- {
- document.getElementById("NoMatches").style.display='none';
+ this.Toggle = function(id) {
+ const element = this.FindChildElement(id);
+ if (element) {
+ if (element.style.display == 'block') {
+ element.style.display = 'none';
+ } else {
+ element.style.display = 'block';
}
- this.lastMatchCount = matches;
- return true;
}
+ }
- // return the first item with index index or higher that is visible
- this.NavNext = function(index)
- {
- var focusItem;
- while (1)
- {
- var focusName = 'Item'+index;
- focusItem = document.getElementById(focusName);
- if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
- {
- break;
- }
- else if (!focusItem) // last element
- {
- break;
+ // Searches for the passed string. If there is no parameter,
+ // it takes it from the URL query.
+ //
+ // Always returns true, since other documents may try to call it
+ // and that may or may not be possible.
+ this.Search = function(search) {
+ if (!search) { // get search word from URL
+ search = window.location.search;
+ search = search.substring(1); // Remove the leading '?'
+ search = unescape(search);
+ }
+
+ search = search.replace(/^ +/, ""); // strip leading spaces
+ search = search.replace(/ +$/, ""); // strip trailing spaces
+ search = search.toLowerCase();
+ search = convertToId(search);
+
+ const resultRows = document.getElementsByTagName("div");
+ let matches = 0;
+
+ let i = 0;
+ while (i < resultRows.length) {
+ const row = resultRows.item(i);
+ if (row.className == "SRResult") {
+ let rowMatchName = row.id.toLowerCase();
+ rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+ if (search.length<=rowMatchName.length &&
+ rowMatchName.substr(0, search.length)==search) {
+ row.style.display = 'block';
+ matches++;
+ } else {
+ row.style.display = 'none';
}
- focusItem=null;
- index++;
}
- return focusItem;
+ i++;
}
+ document.getElementById("Searching").style.display='none';
+ if (matches == 0) { // no results
+ document.getElementById("NoMatches").style.display='block';
+ } else { // at least one result
+ document.getElementById("NoMatches").style.display='none';
+ }
+ this.lastMatchCount = matches;
+ return true;
+ }
- this.NavPrev = function(index)
- {
- var focusItem;
- while (1)
- {
- var focusName = 'Item'+index;
- focusItem = document.getElementById(focusName);
- if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
- {
- break;
- }
- else if (!focusItem) // last element
- {
- break;
- }
- focusItem=null;
- index--;
+ // return the first item with index index or higher that is visible
+ this.NavNext = function(index) {
+ let focusItem;
+ for (;;) {
+ const focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block') {
+ break;
+ } else if (!focusItem) { // last element
+ break;
+ }
+ focusItem=null;
+ index++;
+ }
+ return focusItem;
+ }
+
+ this.NavPrev = function(index) {
+ let focusItem;
+ for (;;) {
+ const focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block') {
+ break;
+ } else if (!focusItem) { // last element
+ break;
}
- return focusItem;
+ focusItem=null;
+ index--;
}
+ return focusItem;
+ }
- this.ProcessKeys = function(e)
- {
- if (e.type == "keydown")
- {
- this.repeatOn = false;
- this.lastKey = e.keyCode;
- }
- else if (e.type == "keypress")
- {
- if (!this.repeatOn)
- {
- if (this.lastKey) this.repeatOn = true;
- return false; // ignore first keypress after keydown
- }
- }
- else if (e.type == "keyup")
- {
- this.lastKey = 0;
- this.repeatOn = false;
+ this.ProcessKeys = function(e) {
+ if (e.type == "keydown") {
+ this.repeatOn = false;
+ this.lastKey = e.keyCode;
+ } else if (e.type == "keypress") {
+ if (!this.repeatOn) {
+ if (this.lastKey) this.repeatOn = true;
+ return false; // ignore first keypress after keydown
}
- return this.lastKey!=0;
+ } else if (e.type == "keyup") {
+ this.lastKey = 0;
+ this.repeatOn = false;
}
+ return this.lastKey!=0;
+ }
- this.Nav = function(evt,itemIndex)
- {
- var e = (evt) ? evt : window.event; // for IE
- if (e.keyCode==13) return true;
- if (!this.ProcessKeys(e)) return false;
-
- if (this.lastKey==38) // Up
- {
- var newIndex = itemIndex-1;
- var focusItem = this.NavPrev(newIndex);
- if (focusItem)
- {
- var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
- if (child && child.style.display == 'block') // children visible
- {
- var n=0;
- var tmpElem;
- while (1) // search for last child
- {
- tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
- if (tmpElem)
- {
- focusItem = tmpElem;
- }
- else // found it!
- {
- break;
- }
- n++;
+ this.Nav = function(evt,itemIndex) {
+ const e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) { // Up
+ const newIndex = itemIndex-1;
+ let focusItem = this.NavPrev(newIndex);
+ if (focusItem) {
+ let child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+ if (child && child.style.display == 'block') { // children visible
+ let n=0;
+ let tmpElem;
+ for (;;) { // search for last child
+ tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+ if (tmpElem) {
+ focusItem = tmpElem;
+ } else { // found it!
+ break;
}
+ n++;
}
}
- if (focusItem)
- {
- focusItem.focus();
- }
- else // return focus to search field
- {
- document.getElementById("MSearchField").focus();
- }
- }
- else if (this.lastKey==40) // Down
- {
- var newIndex = itemIndex+1;
- var focusItem;
- var item = document.getElementById('Item'+itemIndex);
- var elem = this.FindChildElement(item.parentNode.parentNode.id);
- if (elem && elem.style.display == 'block') // children visible
- {
- focusItem = document.getElementById('Item'+itemIndex+'_c0');
- }
- if (!focusItem) focusItem = this.NavNext(newIndex);
- if (focusItem) focusItem.focus();
- }
- else if (this.lastKey==39) // Right
- {
- var item = document.getElementById('Item'+itemIndex);
- var elem = this.FindChildElement(item.parentNode.parentNode.id);
- if (elem) elem.style.display = 'block';
- }
- else if (this.lastKey==37) // Left
- {
- var item = document.getElementById('Item'+itemIndex);
- var elem = this.FindChildElement(item.parentNode.parentNode.id);
- if (elem) elem.style.display = 'none';
}
- else if (this.lastKey==27) // Escape
- {
- e.stopPropagation();
- searchBox.CloseResultsWindow();
+ if (focusItem) {
+ focusItem.focus();
+ } else { // return focus to search field
document.getElementById("MSearchField").focus();
}
- else if (this.lastKey==13) // Enter
- {
- return true;
- }
- return false;
+ } else if (this.lastKey==40) { // Down
+ const newIndex = itemIndex+1;
+ let focusItem;
+ const item = document.getElementById('Item'+itemIndex);
+ const elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem && elem.style.display == 'block') { // children visible
+ focusItem = document.getElementById('Item'+itemIndex+'_c0');
+ }
+ if (!focusItem) focusItem = this.NavNext(newIndex);
+ if (focusItem) focusItem.focus();
+ } else if (this.lastKey==39) { // Right
+ const item = document.getElementById('Item'+itemIndex);
+ const elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'block';
+ } else if (this.lastKey==37) { // Left
+ const item = document.getElementById('Item'+itemIndex);
+ const elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'none';
+ } else if (this.lastKey==27) { // Escape
+ e.stopPropagation();
+ searchBox.CloseResultsWindow();
+ document.getElementById("MSearchField").focus();
+ } else if (this.lastKey==13) { // Enter
+ return true;
}
+ return false;
+ }
- this.NavChild = function(evt,itemIndex,childIndex)
- {
- var e = (evt) ? evt : window.event; // for IE
- if (e.keyCode==13) return true;
- if (!this.ProcessKeys(e)) return false;
-
- if (this.lastKey==38) // Up
- {
- if (childIndex>0)
- {
- var newIndex = childIndex-1;
- document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
- }
- else // already at first child, jump to parent
- {
- document.getElementById('Item'+itemIndex).focus();
- }
+ this.NavChild = function(evt,itemIndex,childIndex) {
+ const e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) { // Up
+ if (childIndex>0) {
+ const newIndex = childIndex-1;
+ document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+ } else { // already at first child, jump to parent
+ document.getElementById('Item'+itemIndex).focus();
}
- else if (this.lastKey==40) // Down
- {
- var newIndex = childIndex+1;
- var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
- if (!elem) // last child, jump to parent next parent
- {
- elem = this.NavNext(itemIndex+1);
- }
- if (elem)
- {
- elem.focus();
- }
+ } else if (this.lastKey==40) { // Down
+ const newIndex = childIndex+1;
+ let elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+ if (!elem) { // last child, jump to parent next parent
+ elem = this.NavNext(itemIndex+1);
}
- else if (this.lastKey==27) // Escape
- {
- e.stopPropagation();
- searchBox.CloseResultsWindow();
- document.getElementById("MSearchField").focus();
+ if (elem) {
+ elem.focus();
}
- else if (this.lastKey==13) // Enter
- {
- return true;
- }
- return false;
+ } else if (this.lastKey==27) { // Escape
+ e.stopPropagation();
+ searchBox.CloseResultsWindow();
+ document.getElementById("MSearchField").focus();
+ } else if (this.lastKey==13) { // Enter
+ return true;
}
+ return false;
+ }
}
-function setKeyActions(elem,action)
-{
- elem.setAttribute('onkeydown',action);
- elem.setAttribute('onkeypress',action);
- elem.setAttribute('onkeyup',action);
-}
+function createResults(resultsPath) {
-function setClassAttr(elem,attr)
-{
- elem.setAttribute('class',attr);
- elem.setAttribute('className',attr);
-}
+ function setKeyActions(elem,action) {
+ elem.setAttribute('onkeydown',action);
+ elem.setAttribute('onkeypress',action);
+ elem.setAttribute('onkeyup',action);
+ }
+
+ function setClassAttr(elem,attr) {
+ elem.setAttribute('class',attr);
+ elem.setAttribute('className',attr);
+ }
-function createResults(resultsPath)
-{
- var results = document.getElementById("SRResults");
+ const results = document.getElementById("SRResults");
results.innerHTML = '';
- for (var e=0; e {
+ const id = elem[0];
+ const srResult = document.createElement('div');
srResult.setAttribute('id','SR_'+id);
setClassAttr(srResult,'SRResult');
- var srEntry = document.createElement('div');
+ const srEntry = document.createElement('div');
setClassAttr(srEntry,'SREntry');
- var srLink = document.createElement('a');
- srLink.setAttribute('id','Item'+e);
- setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+ const srLink = document.createElement('a');
+ srLink.setAttribute('id','Item'+index);
+ setKeyActions(srLink,'return searchResults.Nav(event,'+index+')');
setClassAttr(srLink,'SRSymbol');
- srLink.innerHTML = searchData[e][1][0];
+ srLink.innerHTML = elem[1][0];
srEntry.appendChild(srLink);
- if (searchData[e][1].length==2) // single result
- {
- srLink.setAttribute('href',resultsPath+searchData[e][1][1][0]);
+ if (elem[1].length==2) { // single result
+ srLink.setAttribute('href',resultsPath+elem[1][1][0]);
srLink.setAttribute('onclick','searchBox.CloseResultsWindow()');
- if (searchData[e][1][1][1])
- {
+ if (elem[1][1][1]) {
srLink.setAttribute('target','_parent');
- }
- else
- {
+ } else {
srLink.setAttribute('target','_blank');
}
- var srScope = document.createElement('span');
+ const srScope = document.createElement('span');
setClassAttr(srScope,'SRScope');
- srScope.innerHTML = searchData[e][1][1][2];
+ srScope.innerHTML = elem[1][1][2];
srEntry.appendChild(srScope);
- }
- else // multiple results
- {
+ } else { // multiple results
srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
- var srChildren = document.createElement('div');
+ const srChildren = document.createElement('div');
setClassAttr(srChildren,'SRChildren');
- for (var c=0; cli>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important;color:var(--nav-menu-foreground-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}}
\ No newline at end of file
+.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}}
\ No newline at end of file