// Some DOM modifications for splitting certain lists into two, // to get two-columned lists more easily // by Lost Boys - www.lostboys.nl SplittedLists = function(root) { var els = getElementsByAttributeValue("class", "splitted", root); for(var i = 0; i < els.length; i++) { if(els[i].tagName.toLowerCase() == "ul" || els[i].tagName.toLowerCase() == "ol") this.splitList(els[i]); } } SplittedLists.prototype.splitList = function(list) { /* create two sets, put them in place of the original list, including classnames (but not 'splitted') */ var set1 = document.createElement(list.tagName.toLowerCase()); var set2 = document.createElement(list.tagName.toLowerCase()); ClassName.remove(list, "splitted"); set1.className = set2.className = list.className; list.parentNode.replaceChild(set2, list); set2.parentNode.insertBefore(set1, set2); /* devide the list items over the set */ var items = list.getElementsByTagName("li"); var half = Math.round(items.length / 2); if(list.tagName.toLowerCase() == "ol") set2.start = half + 1; if(items.length == 1) set2.parentNode.removeChild(set2); for(var j = items.length - 1; j > half - 1; j--) { set2.insertBefore(items[j], set2.firstChild); } for(var j = half - 1; j >= 0; j--) { set1.insertBefore(items[j], set1.firstChild); } } EventListener.addEvent(window, "load", function() { window.splittedLists = new SplittedLists(); } );