PageSourceSearch

http://opentransactions.org/wiki/ot-docs/navtree.js

js opentransactions.org collected 2026-09-24 18:19:06 UTC 18,501 bytes, 587 lines download raw bytes

1var NAVTREE =
2[
3  [ "Open-Transactions", "index.html", [
4    [ "Open-Transactions Library Project", "d2/d84/md__usr_local_src_opentxs__r_e_a_d_m_e.html", null ],
5    [ "Namespaces", null, [
6      [ "Namespace List", "namespaces.html", "namespaces" ],
7      [ "Namespace Members", "namespacemembers.html", [
8        [ "All", "namespacemembers.html", "namespacemembers_dup" ],
9        [ "Functions", "namespacemembers_func.html", null ],
10        [ "Variables", "namespacemembers_vars.html", null ],
11        [ "Typedefs", "namespacemembers_type.html", null ],
12        [ "Enumerations", "namespacemembers_enum.html", null ],
13        [ "Enumerator", "namespacemembers_eval.html", null ]
14      ] ]
15    ] ],
16    [ "Classes", null, [
17      [ "Class List", "annotated.html", "annotated" ],
18      [ "Class Index", "classes.html", null ],
19      [ "Class Hierarchy", "hierarchy.html", "hierarchy" ],
20      [ "Class Members", "functions.html", [
21        [ "All", "functions.html", "functions_dup" ],
22        [ "Functions", "functions_func.html", "functions_func" ],
23        [ "Variables", "functions_vars.html", "functions_vars" ],
24        [ "Typedefs", "functions_type.html", null ],
25        [ "Enumerations", "functions_enum.html", null ],
26        [ "Enumerator", "functions_eval.html", "functions_eval" ],
27        [ "Related Functions", "functions_rela.html", null ]
28      ] ]
29    ] ],
30    [ "Files", null, [
31      [ "File List", "files.html", "files" ],
32      [ "File Members", "globals.html", [
33        [ "All", "globals.html", "globals_dup" ],
34        [ "Functions", "globals_func.html", null ],
35        [ "Variables", "globals_vars.html", null ],
36        [ "Typedefs", "globals_type.html", null ],
37        [ "Enumerations", "globals_enum.html", null ],
38        [ "Enumerator", "globals_eval.html", null ],
39        [ "Macros", "globals_defs.html", "globals_defs" ]
40      ] ]
41    ] ]
42  ] ]
43];
44
45var NAVTREEINDEX =
46[
47"annotated.html",
48"d1/da3/classopentxs_1_1_o_t_keypair.html#a6c5cfe0b89ec9c3678a4f4a0c4b6b81e",
49"d2/d94/classopentxs_1_1_o_t_client.html#a7617266728b1aaba6544b5b6ad4ea138",
50"d3/d7f/classopentxs_1_1_o_t_signed_file.html#a8d8a5dddf284f9d83bce6bf213b38bcd",
51"d4/d69/classopentxs_1_1_o_t_num_list.html#a5f9a4c02cd524a7730aeaecfc437c60a",
52"d4/dc4/classopentxs_1_1_o_t___a_p_i.html#ae808ddf3717d12f45685e37d643219d2",
53"d5/d67/classopentxs_1_1_purse.html#a976749a70a44eddf03cb76729fced5bf",
54"d6/d3c/ot__otapi__ot_8hpp.html#ae75abacc42c6f0203f280d4992d4af56a60f6b431e9777794b4f0066e7339adbe",
55"d6/dda/classopentxs_1_1_o_t_asymmetric_key___open_s_s_l.html#a3f487d2cb3ee0275bd08eec928d6b2e7",
56"d7/d8e/classopentxs_1_1_o_t_d_b_1_1_loom_server.html#a2c0f3375abefa537bcad73350ea7763a",
57"d8/d00/ot__utility__ot_8hpp.html#aac2b867ed14dd30661c76efbd79419ff",
58"d8/d87/classopentxs_1_1_o_t_account.html#a75791752302ee6ad216dddbfd96bfc7f",
59"d9/d47/_o_t___m_e_8hpp.html#a116b9d14505f66ab5763737a842d1e69",
60"d9/dbd/classopentxs_1_1_o_t_a_p_i___exec.html#a77e8016f50ec6217db10e793b143a7c1",
61"da/d29/ot__otapi__ot_8cpp.html#af76eb58d39a80d096d726935b0f1f6f0",
62"db/d0a/classopentxs_1_1_o_t_agent.html#a9633c4d25e39fc4944e1777a28c4dc88",
63"db/db6/classopentxs_1_1_o_t_item.html#a051b866f99137c0549cc4cdeda67856e",
64"dc/d2b/classopentxs_1_1_o_t_subcredential.html#a778d7ed02d6ad8620c7bf465033c093da147956d8d4ba61a0d25a8a638898d386",
65"dd/d64/classopentxs_1_1_o_t_message.html#a29e4b1cd2e3a5e0d3fb7ca00eb5abe84",
66"de/d74/classopentxs_1_1_o_t_ledger.html#ae07e5c3974a353b98eaadc49c9f54d67",
67"df/dae/classopentxs_1_1_o_t_record.html#a28054ea0f631c21760dd54ed91c482d4",
68"df/df0/classopentxs_1_1_o_t_pseudonym.html#aea678a155bb0d8ecdad126eabae5a461"
69];
70
71var SYNCONMSG = 'click to disable panel synchronisation';
72var SYNCOFFMSG = 'click to enable panel synchronisation';
73var SYNCONMSG = 'click to disable panel synchronisation';
74var SYNCOFFMSG = 'click to enable panel synchronisation';
75var navTreeSubIndices = new Array();
76
77function getData(varName)
78{
79  var i = varName.lastIndexOf('/');
80  var n = i>=0 ? varName.substring(i+1) : varName;
81  return eval(n.replace(/\-/g,'_'));
82}
83
84function stripPath(uri)
85{
86  return uri.substring(uri.lastIndexOf('/')+1);
87}
88
89function stripPath2(uri)
90{
91  var i = uri.lastIndexOf('/');
92  var s = uri.substring(i+1);
93  var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
94  return m ? uri.substring(i-6) : s;
95}
96
97function localStorageSupported()
98{
99  try {
100    return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem;
101  }
102  catch(e) {
103    return false;
104  }
105}
106
107
108function storeLink(link)
109{
110  if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) {
111      window.localStorage.setItem('navpath',link);
112  }
113}
114
115function deleteLink()
116{
117  if (localStorageSupported()) {
118    window.localStorage.setItem('navpath','');
119  } 
120}
121
122function cachedLink()
123{
124  if (localStorageSupported()) {
125    return window.localStorage.getItem('navpath');
126  } else {
127    return '';
128  }
129}
130
131function getScript(scriptName,func,show)
132{
133  var head = document.getElementsByTagName("head")[0]; 
134  var script = document.createElement('script');
135  script.id = scriptName;
136  script.type = 'text/javascript';
137  script.onload = func; 
138  script.src = scriptName+'.js'; 
139  if ($.browser.msie && $.browser.version<=8) { 
140    // script.onload does not work with older versions of IE
141    script.onreadystatechange = function() {
142      if (script.readyState=='complete' || script.readyState=='loaded') { 
143        func(); if (show) showRoot(); 
144      }
145    }
146  }
147  head.appendChild(script); 
148}
149
150function createIndent(o,domNode,node,level)
151{
152  var level=-1;
153  var n = node;
154  while (n.parentNode) { level++; n=n.parentNode; }
155  if (node.childrenData) {
156    var imgNode = document.createElement("img");
157    imgNode.style.paddingLeft=(16*level).toString()+'px';
158    imgNode.width  = 16;
159    imgNode.height = 22;
160    imgNode.border = 0;
161    node.plus_img = imgNode;
162    node.expandToggle = document.createElement("a");
163    node.expandToggle.href = "javascript:void(0)";
164    node.expandToggle.onclick = function() {
165      if (node.expanded) {
166        $(node.getChildrenUL()).slideUp("fast");
167        node.plus_img.src = node.relpath+"ftv2pnode.png";
168        node.expanded = false;
169      } else {
170        expandNode(o, node, false, false);
171      }
172    }
173    node.expandToggle.appendChild(imgNode);
174    domNode.appendChild(node.expandToggle);
175    imgNode.src = node.relpath+"ftv2pnode.png";
176  } else {
177    var span = document.createElement("span");
178    span.style.display = 'inline-block';
179    span.style.width   = 16*(level+1)+'px';
180    span.style.height  = '22px';
181    span.innerHTML = '&nbsp;';
182    domNode.appendChild(span);
183  } 
184}
185
186var animationInProgress = false;
187
188function gotoAnchor(anchor,aname,updateLocation)
189{
190  var pos, docContent = $('#doc-content');
191  if (anchor.parent().attr('class')=='memItemLeft' ||
192      anchor.parent().attr('class')=='fieldtype' ||
193      anchor.parent().is(':header')) 
194  {
195    pos = anchor.parent().position().top;
196  } else if (anchor.position()) {
197    pos = anchor.position().top;
198  }
199  if (pos) {
200    var dist = Math.abs(Math.min(
201               pos-docContent.offset().top,
202               docContent[0].scrollHeight-
203               docContent.height()-docContent.scrollTop()));
204    animationInProgress=true;
205    docContent.animate({
206      scrollTop: pos + docContent.scrollTop() - docContent.offset().top
207    },Math.max(50,Math.min(500,dist)),function(){
208      if (updateLocation) window.location.href=aname;
209      animationInProgress=false;
210    });
211  }
212}
213
214function newNode(o, po, text, link, childrenData, lastNode)
215{
216  var node = new Object();
217  node.children = Array();
218  node.childrenData = childrenData;
219  node.depth = po.depth + 1;
220  node.relpath = po.relpath;
221  node.isLast = lastNode;
222
223  node.li = document.createElement("li");
224  po.getChildrenUL().appendChild(node.li);
225  node.parentNode = po;
226
227  node.itemDiv = document.createElement("div");
228  node.itemDiv.className = "item";
229
230  node.labelSpan = document.createElement("span");
231  node.labelSpan.className = "label";
232
233  createIndent(o,node.itemDiv,node,0);
234  node.itemDiv.appendChild(node.labelSpan);
235  node.li.appendChild(node.itemDiv);
236
237  var a = document.createElement("a");
238  node.labelSpan.appendChild(a);
239  node.label = document.createTextNode(text);
240  node.expanded = false;
241  a.appendChild(node.label);
242  if (link) {
243    var url;
244    if (link.substring(0,1)=='^') {
245      url = link.substring(1);
246      link = url;
247    } else {
248      url = node.relpath+link;
249    }
250    a.className = stripPath(link.replace('#',':'));
251    if (link.indexOf('#')!=-1) {
252      var aname = '#'+link.split('#')[1];
253      var srcPage = stripPath($(location).attr('pathname'));
254      var targetPage = stripPath(link.split('#')[0]);
255      a.href = srcPage!=targetPage ? url : "javascript:void(0)"; 
256      a.onclick = function(){
257        storeLink(link);
258        if (!$(a).parent().parent().hasClass('selected'))
259        {
260          $('.item').removeClass('selected');
261          $('.item').removeAttr('id');
262          $(a).parent().parent().addClass('selected');
263          $(a).parent().parent().attr('id','selected');
264        }
265        var anchor = $(aname);
266        gotoAnchor(anchor,aname,true);
267      };
268    } else {
269      a.href = url;
270      a.onclick = function() { storeLink(link); }
271    }
272  } else {
273    if (childrenData != null) 
274    {
275      a.className = "nolink";
276      a.href = "javascript:void(0)";
277      a.onclick = node.expandToggle.onclick;
278    }
279  }
280
281  node.childrenUL = null;
282  node.getChildrenUL = function() {
283    if (!node.childrenUL) {
284      node.childrenUL = document.createElement("ul");
285      node.childrenUL.className = "children_ul";
286      node.childrenUL.style.display = "none";
287      node.li.appendChild(node.childrenUL);
288    }
289    return node.childrenUL;
290  };
291
292  return node;
293}
294
295function showRoot()
296{
297  var headerHeight = $("#top").height();
298  var footerHeight = $("#nav-path").height();
299  var windowHeight = $(window).height() - headerHeight - footerHeight;
300  (function (){ // retry until we can scroll to the selected item
301    try {
302      var navtree=$('#nav-tree');
303      navtree.scrollTo('#selected',0,{offset:-windowHeight/2});
304    } catch (err) {
305      setTimeout(arguments.callee, 0);
306    }
307  })();
308}
309
310function expandNode(o, node, imm, showRoot)
311{
312  if (node.childrenData && !node.expanded) {
313    if (typeof(node.childrenData)==='string') {
314      var varName    = node.childrenData;
315      getScript(node.relpath+varName,function(){
316        node.childrenData = getData(varName);
317        expandNode(o, node, imm, showRoot);
318      }, showRoot);
319    } else {
320      if (!node.childrenVisited) {
321        getNode(o, node);
322      } if (imm || ($.browser.msie && $.browser.version>8)) { 
323        // somehow slideDown jumps to the start of tree for IE9 :-(
324        $(node.getChildrenUL()).show();
325      } else {
326        $(node.getChildrenUL()).slideDown("fast");
327      }
328      if (node.isLast) {
329        node.plus_img.src = node.relpath+"ftv2mlastnode.png";
330      } else {
331        node.plus_img.src = node.relpath+"ftv2mnode.png";
332      }
333      node.expanded = true;
334    }
335  }
336}
337
338function glowEffect(n,duration)
339{
340  n.addClass('glow').delay(duration).queue(function(next){
341    $(this).removeClass('glow');next();
342  });
343}
344
345function highlightAnchor()
346{
347  var aname = $(location).attr('hash');
348  var anchor = $(aname);
349  if (anchor.parent().attr('class')=='memItemLeft'){
350    var rows = $('.memberdecls tr[class$="'+
351               window.location.hash.substring(1)+'"]');
352    glowEffect(rows.children(),300); // member without details
353  } else if (anchor.parents().slice(2).prop('tagName')=='TR') {
354    glowEffect(anchor.parents('div.memitem'),1000); // enum value
355  } else if (anchor.parent().attr('class')=='fieldtype'){
356    glowEffect(anchor.parent().parent(),1000); // struct field
357  } else if (anchor.parent().is(":header")) {
358    glowEffect(anchor.parent(),1000); // section header
359  } else {
360    glowEffect(anchor.next(),1000); // normal member
361  }
362  gotoAnchor(anchor,aname,false);
363}
364
365function selectAndHighlight(hash,n)
366{
367  var a;
368  if (hash) {
369    var link=stripPath($(location).attr('pathname'))+':'+hash.substring(1);
370    a=$('.item a[class$="'+link+'"]');
371  }
372  if (a && a.length) {
373    a.parent().parent().addClass('selected');
374    a.parent().parent().attr('id','selected');
375    highlightAnchor();
376  } else if (n) {
377    $(n.itemDiv).addClass('selected');
378    $(n.itemDiv).attr('id','selected');
379  }
380  if ($('#nav-tree-contents .item:first').hasClass('selected')) {
381    $('#nav-sync').css('top','30px');
382  } else {
383    $('#nav-sync').css('top','5px');
384  }
385  showRoot();
386}
387
388function showNode(o, node, index, hash)
389{
390  if (node && node.childrenData) {
391    if (typeof(node.childrenData)==='string') {
392      var varName    = node.childrenData;
393      getScript(node.relpath+varName,function(){
394        node.childrenData = getData(varName);
395        showNode(o,node,index,hash);
396      },true);
397    } else {
398      if (!node.childrenVisited) {
399        getNode(o, node);
400      }
401      $(node.getChildrenUL()).css({'display':'block'});
402      if (node.isLast) {
403        node.plus_img.src = node.relpath+"ftv2mlastnode.png";
404      } else {
405        node.plus_img.src = node.relpath+"ftv2mnode.png";
406      }
407      node.expanded = true;
408      var n = node.children[o.breadcrumbs[index]];
409      if (index+1<o.breadcrumbs.length) {
410        showNode(o,n,index+1,hash);
411      } else {
412        if (typeof(n.childrenData)==='string') {
413          var varName = n.childrenData;
414          getScript(n.relpath+varName,function(){
415            n.childrenData = getData(varName);
416            node.expanded=false;
417            showNode(o,node,index,hash); // retry with child node expanded
418          },true);
419        } else {
420          var rootBase = stripPath(o.toroot.replace(/\..+$/, ''));
421          if (rootBase=="index" || rootBase=="pages" || rootBase=="search") {
422            expandNode(o, n, true, true);
423          }
424          selectAndHighlight(hash,n);
425        }
426      }
427    }
428  } else {
429    selectAndHighlight(hash);
430  }
431}
432
433function removeToInsertLater(element) {
434  var parentNode = element.parentNode;
435  var nextSibling = element.nextSibling;
436  parentNode.removeChild(element);
437  return function() {
438    if (nextSibling) {
439      parentNode.insertBefore(element, nextSibling);
440    } else {
441      parentNode.appendChild(element);
442    }
443  };
444}
445
446function getNode(o, po)
447{
448  var insertFunction = removeToInsertLater(po.li);
449  po.childrenVisited = true;
450  var l = po.childrenData.length-1;
451  for (var i in po.childrenData) {
452    var nodeData = po.childrenData[i];
453    po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],
454      i==l);
455  }
456  insertFunction();
457}
458
459function gotoNode(o,subIndex,root,hash,relpath)
460{
461  var nti = navTreeSubIndices[subIndex][root+hash];
462  o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);
463  if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
464    navTo(o,NAVTREE[0][1],"",relpath);
465    $('.item').removeClass('selected');
466    $('.item').removeAttr('id');
467  }
468  if (o.breadcrumbs) {
469    o.breadcrumbs.unshift(0); // add 0 for root node
470    showNode(o, o.node, 0, hash);
471  }
472}
473
474function navTo(o,root,hash,relpath)
475{
476  var link = cachedLink();
477  if (link) {
478    var parts = link.split('#');
479    root = parts[0];
480    if (parts.length>1) hash = '#'+parts[1];
481    else hash='';
482  }
483  if (hash.match(/^#l\d+$/)) {
484    var anchor=$('a[name='+hash.substring(1)+']');
485    glowEffect(anchor.parent(),1000); // line number
486    hash='';
486 // strip line number anchors
487    //root=root.replace(/_source\./,'.'); // source link to doc link
488  }
489  var url=root+hash;
490  var i=-1;
491  while (NAVTREEINDEX[i+1]<=url) i++;
492  if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index
493  if (navTreeSubIndices[i]) {
494    gotoNode(o,i,root,hash,relpath)
495  } else {
496    getScript(relpath+'navtreeindex'+i,function(){
497      navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
498      if (navTreeSubIndices[i]) {
499        gotoNode(o,i,root,hash,relpath);
500      }
501    },true);
502  }
503}
504
505function showSyncOff(n,relpath)
506{
507    n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>');
508}
509
510function showSyncOn(n,relpath)
511{
512    n.html('<img src="'+relpath+'sync_on.png" title="'+SYNCONMSG+'"/>');
513}
514
515function toggleSyncButton(relpath)
516{
517  var navSync = $('#nav-sync');
518  if (navSync.hasClass('sync')) {
519    navSync.removeClass('sync');
520    showSyncOff(navSync,relpath);
521    storeLink(stripPath2($(location).attr('pathname'))+$(location).attr('hash'));
522  } else {
523    navSync.addClass('sync');
524    showSyncOn(navSync,relpath);
525    deleteLink();
526  }
527}
528
529function initNavTree(toroot,relpath)
530{
531  var o = new Object();
532  o.toroot = toroot;
533  o.node = new Object();
534  o.node.li = document.getElementById("nav-tree-contents");
535  o.node.childrenData = NAVTREE;
536  o.node.children = new Array();
537  o.node.childrenUL = document.createElement("ul");
538  o.node.getChildrenUL = function() { return o.node.childrenUL; };
539  o.node.li.appendChild(o.node.childrenUL);
540  o.node.depth = 0;
541  o.node.relpath = relpath;
542  o.node.expanded = false;
543  o.node.isLast = true;
544  o.node.plus_img = document.createElement("img");
545  o.node.plus_img.src = relpath+"ftv2pnode.png";
546  o.node.plus_img.width = 16;
547  o.node.plus_img.height = 22;
548
549  if (localStorageSupported()) {
550    var navSync = $('#nav-sync');
551    if (cachedLink()) {
552      showSyncOff(navSync,relpath);
553      navSync.removeClass('sync');
554    } else {
555      showSyncOn(navSync,relpath);
556    }
557    navSync.click(function(){ toggleSyncButton(relpath); });
558  }
559
560  $(window).load(function(){
561    navTo(o,toroot,window.location.hash,relpath);
562    showRoot();
563  });
564
565  $(window).bind('hashchange', function(){
566     if (window.location.hash && window.location.hash.length>1){
567       var a;
568       if ($(location).attr('hash')){
569         var clslink=stripPath($(location).attr('pathname'))+':'+
570                               $(location).attr('hash').substring(1);
571         a=$('.item a[class$="'+clslink+'"]');
572       }
573       if (a==null || !$(a).parent().parent().hasClass('selected')){
574         $('.item').removeClass('selected');
575         $('.item').removeAttr('id');
576       }
577       var link=stripPath2($(location).attr('pathname'));
578       navTo(o,link,$(location).attr('hash'),relpath);
579     } else if (!animationInProgress) {
580       $('#doc-content').scrollTop(0);
581       $('.item').removeClass('selected');
582       $('.item').removeAttr('id');
583       navTo(o,toroot,window.location.hash,relpath);
584     }
585  })
586}
587

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.