source: extensions/rv_menutree/trunk/js/rvtree-min.js @ 6608

Last change on this file since 6608 was 6608, checked in by rvelices, 14 years ago

rv_menutree improved javascript (faster, async loading in browser, better compressed zith google closure compiler)

  • Property svn:eol-style set to LF
File size: 2.0 KB
Line 
1var XElement={hasClass:function(b,e){if(!b)return false;var f=b.className;return f.length>0&&(f==e||(new RegExp("(^|\\s)"+e+"(\\s|$)")).test(f))},addClass:function(b,e){if(b){XElement.hasClass(b,e)||(b.className+=(b.className?" ":"")+e);return b}},toggleClasses:function(b,e,f){if(b){for(var a=b.className.split(/\s+/),g=-1,c=-1,d=0;d<a.length;d++){if(a[d]==e)g=d;if(a[d]==f)c=d}if(g>=0){a.splice(g,1);c>=g&&c--}else a.push(e);c>=0?a.splice(c,1):a.push(f);b.className=a.join(" ");return b}}},RVTree={options:{nodeClosedClass:"liClosed",
2nodeOpenClass:"liOpen",nodeBulletClass:"liBullet",nodeLinkClass:"bullet"},convertTree:function(b){if(document.createElement){if(window.attachEvent&&!window.opera)if(/MSIE ([0-9]{1,}[.0-9]{0,})/.exec(navigator.userAgent)!=null)RVTree.options.IEVersion=parseFloat(RegExp.$1);RVTree._processList(b,true)}},_processList:function(b,e){if(!(!b.childNodes||b.childNodes.length==0)){for(var f=0;f<b.childNodes.length;f++){var a=b.childNodes[f];if(a.nodeName=="LI"){for(var g=false,c=0;c<a.childNodes.length;c++){var d=
3a.childNodes[c];if(d.nodeName=="UL"){g=true;RVTree._processList(d,false)}}c=document.createElement("SPAN");d="\u00a0";c.className=RVTree.options.nodeLinkClass;if(g){XElement.hasClass(a,RVTree.options.nodeOpenClass)||XElement.addClass(a,RVTree.options.nodeClosedClass);if(a.firstChild.nodeName=="#text"){d+=a.firstChild.nodeValue;a.removeChild(a.firstChild)}c.onclick=function(){XElement.toggleClasses(this.parentNode,RVTree.options.nodeOpenClass,RVTree.options.nodeClosedClass);return false}}else if(XElement.hasClass(a,
4RVTree.options.nodeClosedClass))c.onclick=function(){var h=this.parentNode.getElementsByTagName("A");if(h.length)document.location=h[0].href};else XElement.addClass(a,RVTree.options.nodeBulletClass);a.style.listStyleType="none";if(e&&RVTree.options.IEVersion&&RVTree.options.IEVersion<8)a.style.marginLeft="-16px";if(c){c.appendChild(document.createTextNode(d));a.insertBefore(c,a.firstChild)}}}b.style.marginLeft=0;b.style.paddingLeft=e?0:"8px"}}};typeof rvTreeAutoConvert!="undefined"&&RVTree.convertTree(rvTreeAutoConvert);
Note: See TracBrowser for help on using the repository browser.