source: extensions/rv_menutree/tags/2.1.a/rvtree-min.js @ 6396

Last change on this file since 6396 was 6396, checked in by patdenice, 14 years ago

Re-create tag 2.1.a

File size: 2.6 KB
Line 
1var XElement={hasClassName:function(element,className){if(!element)return false;var elementClassName=element.className;if(elementClassName.length==0)return false;if(elementClassName==className||elementClassName.match(new RegExp("(^|\\s)"+className+"(\\s|$)")))return true;return false},addClassName:function(element,className){if(!element)return;var classNames=element.className.split(/\s+/);for(var i=0;i<classNames.length;i++)if(className==classNames[i])return;classNames.splice(0,0,className);element.className=classNames.join(' ');return element},toggleClassName:function(element,className){if(!element)return;var classNames=element.className.split(/\s+/);for(var i=0;i<classNames.length;i++)if(classNames[i]==className)break;if(i==classNames.length)classNames.splice(0,0,className);else classNames.splice(i,1);element.className=classNames.join(' ');return element}};var RVTree={options:{nodeClosedClass:"liClosed",nodeOpenClass:"liOpen",nodeBulletClass:"liBullet",nodeLinkClass:"bullet"},convertTree:function(root){if(!document.createElement)return;if(window.attachEvent&&!window.opera){if(new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})").exec(navigator.userAgent)!=null)RVTree.options.IEVersion=parseFloat(RegExp.$1)}RVTree._processList(root,true)},_processList:function(ul,isRoot){if(!ul.childNodes||ul.childNodes.length==0)return;for(var i=0;i<ul.childNodes.length;i++){var item=ul.childNodes[i];if(item.nodeName!="LI")continue;var subLists=false;for(var sitemi=0;sitemi<item.childNodes.length;sitemi++){var sitem=item.childNodes[sitemi];if(sitem.nodeName=="UL"){subLists=true;RVTree._processList(sitem,false)}}var s=document.createElement("SPAN");var t='\u00A0';s.className=RVTree.options.nodeLinkClass;if(subLists){if(!XElement.hasClassName(item,RVTree.options.nodeOpenClass))XElement.addClassName(item,RVTree.options.nodeClosedClass);if(item.firstChild.nodeName=="#text"){t=t+item.firstChild.nodeValue;item.removeChild(item.firstChild)}s.onclick=function(){XElement.toggleClassName(this.parentNode,RVTree.options.nodeOpenClass);XElement.toggleClassName(this.parentNode,RVTree.options.nodeClosedClass);return false}}else{if(XElement.hasClassName(item,RVTree.options.nodeClosedClass)){s.onclick=function(){var nodes=this.parentNode.getElementsByTagName("A");if(nodes.length)document.location=nodes[0].href}}else XElement.addClassName(item,RVTree.options.nodeBulletClass)}item.style.listStyleType='none';if(isRoot&&RVTree.options.IEVersion&&RVTree.options.IEVersion<8)item.style.marginLeft="-16px";if(s){s.appendChild(document.createTextNode(t));item.insertBefore(s,item.firstChild)}}ul.style.marginLeft=0;ul.style.paddingLeft=isRoot?0:"8px"}}
Note: See TracBrowser for help on using the repository browser.