javascript: function cmp(a, b) { if (a < b) return -1; if (a > b) return 1; return 0; } var rows = []; var table = document.getElementsByTagName('table')[0].tBodies[0]; var trs = table.getElementsByTagName('tr'); for (var i = 0; i < trs.length; ++i) { var tds = trs[i].getElementsByTagName('td'); if (! tds.length) continue; var score = 0; var rs = ''; for (var j = 0; j < tds.length; ++j) { rs += tds[j].className; if (tds[j].className == 'r pass') ++score; } rows.push([score, rs, tds[0].textContent, trs[i]]); } rows.sort(function(a, b) { return cmp(a[0], b[0]) || cmp(a[1], b[1]) || cmp(a[2], b[2]); }); for (var i = 0; i < rows.length; ++i) table.appendChild(rows[i][3]); undefined;