// SortedTable created and licensed by fry @ friedcellcollective // http://friedcellcollective.net/js/ // This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License (http://creativecommons.org/licenses/by-sa/2.5/) // Version: 0.8f var curSortedText = "" var prevSortedText = "" SortedTable = function(id) { this.table = null; if (!document.getElementById || !document.getElementsByTagName) return false; if (id) this.init(document.getElementById(id)); else this.init(this.findTable()); this.prep(); if (!id && this.findTable()) new SortedTable(); } // static SortedTable.tables = new Array(); SortedTable.move = function(d,elm) { var st = SortedTable.getSortedTable(elm); if (st) st.move(d,elm); } SortedTable.moveSelected = function(d,elm) { var st = SortedTable.getSortedTable(elm); if (st) st.move(d); } SortedTable.findParent = function(elm,tag) { while (elm && elm.tagName && elm.tagName.toLowerCase()!=tag) elm = elm.parentNode; return elm; } SortedTable.getEventElement = function(e) { if (!e) e = window.event; return (e.target)? e.target : e.srcElement; } SortedTable.getSortedTable = function(elm) { elm = SortedTable.findParent(elm,'table'); for (var i=0;i0;i--) { var trs = tbs[i].getElementsByTagName('tr'); for (var j=trs.length-1;j>=0;j--) { this.body.appendChild(trs[j]); } this.table.removeChild(tbs[i]); } }, // helpers trim:function(str) { while (str.substr(0,1)==' ') str = str.substr(1); while (str.substr(str.length-1,1)==' ') str = str.substr(0,str.length-1); return str; }, hasClass:function(elm,findclass) { if (!elm) return null; return (' '+elm.className+' ').indexOf(' '+findclass+' ')+1; }, changeClass:function(elm,oldclass,newclass) { if (!elm) return null; var c = elm.className.split(' '); for (var i=0;iv2[i]) return 1; else if (v1[i]v2) return 1 else if (v10) moving.reverse(); for (var i=0;i0) { parent.removeChild(elm); parent.insertBefore(elm,sibling); } else { parent.removeChild(elm); if (sibling.nextSibling) parent.insertBefore(elm,sibling.nextSibling); else parent.appendChild(elm); } }, canMove:function(d,elm) { if (d>0) return elm.previousSibling; else return elm.nextSibling; } }