/* The following functions are part of a minimal JS library I wrote for VNDB.org */ var expanded_icon = '▾'; var collapsed_icon = '▸'; function byId(n) { return document.getElementById(n) } function byName(){ var d = arguments.length > 1 ? arguments[0] : document; var n = arguments.length > 1 ? arguments[1] : arguments[0]; return d.getElementsByTagName(n); } function byClass() { // [class], [parent, class], [tagname, class], [parent, tagname, class] var par = typeof arguments[0] == 'object' ? arguments[0] : document; var t = arguments.length == 2 && typeof arguments[0] == 'string' ? arguments[0] : arguments.length == 3 ? arguments[1] : '*'; var c = arguments[arguments.length-1]; var l = byName(par, t); var ret = []; for(var i=0; i createTextNode * tag('tagname', tag(), 'string', ..) -> createElement(), appendChild(), .. * tag('tagname', { class: 'meh', title: 'Title' }) -> createElement(), setAttribute().. * tag('tagname', { }, ) -> create, setattr, append */ function tag() { if(arguments.length == 1) return typeof arguments[0] != 'object' ? document.createTextNode(arguments[0]) : arguments[0]; var el = typeof document.createElementNS != 'undefined' ? document.createElementNS('http://www.w3.org/1999/xhtml', arguments[0]) : document.createElement(arguments[0]); for(var i=1; i 0 && VARS.mans[i-1][0] == sys[0]; if(typeof sys[4] === 'undefined') sys[4] = !isold; navHasOldSys = navHasOldSys || isold; navHasHiddenSys = navHasHiddenSys || (isold && !sys[4]); var pkgnum = 0; var dd = tag('dd', null); if(sys[4]) { for(var j=0; j 0 && sys[3][j-1][0] == sys[3][j][0]) continue; if(navCreatePkg(dd, sys, sys[3][j])) pkgnum++; } } dl.appendChild(tag('dt', sys[1], tag('a', {href:'#', _sys: sys, onclick: function() { this._sys[4] = !this._sys[4]; navCreate(nav); return false }}, sys[4] ? expanded_icon : collapsed_icon))); if(sys[4] && pkgnum > 0) dl.appendChild(dd); } navCreateLinks(nav); nav.appendChild(dl); } function navCreatePkg(dd, sys, pkg) { var mannum = 0; var pdd = tag('dd', null); for(var k=0; k 0) pdd.appendChild(tag(' ')); pdd.appendChild(man[2] == VARS.hash ? tag('b', txt) : tag('a', {href:'/'+VARS.name+'/'+man[2]}, txt)); mannum++; } } if(mannum > 0) { dd.appendChild(tag('dt', tag('a', {href:'/browse/'+sys[2]+'/'+pkg[0]}, pkg[0]), tag('i', pkg[1]))); dd.appendChild(pdd); return true; } return false; } function navCreateLinks(nav) { nav.appendChild(tag('a', {'class':'global',href:'#',onclick: function() { }}, collapsed_icon + 'pkg')); var t = (navHasHiddenSys ? collapsed_icon : expanded_icon) + 'sys'; nav.appendChild(!navHasOldSys ? tag('i', {'class':'global'}, t) : tag('a', { 'class':'global', title: 'Expand/collapse "old" systems.', href: '#', onclick: function() { for(var i=0; i