var rowhider = function() {
var tables = document.getElementsByTagName('tbody');
var maxRows = 5;
var colspan;
for(var i = 0, l = tables.length; l > i; i++) {
var rows = tables[i].getElementsByTagName('tr');
colspan = rows[0].getElementsByTagName('td').length;
if(rows.length > maxRows) {
for(var a = 0, e = rows.length; e > a; a++) {
if(a >= 5) {
rows[a].className += " hide";
}
}
var tr = document.createElement('tr');
tr.innerHTML = "<td colspan='"+colspan+"'><a href='#'>More rows. Click to show...</a></td>";
tr.getElementsByTagName('a')[0].addEventListener ? tr.getElementsByTagName('a')[0].addEventListener('click',showRows) : tr.getElementsByTagName('a')[0].attachEvent('onclick',showRows);
tables[i].appendChild(tr);
}
}
function hideRows(e) {
var target = e.srcElement ? e.srcElement : e.target;
var tr = target.parentElement;
while(tr.nodeName !== "TR") {
tr = tr.parentElement;
}
var table = target;
while(table.nodeName !== "TBODY") {
table = table.parentElement;
}
table.removeChild(tr);
var rows = table.getElementsByTagName('tr');
for(var i = 0, l = rows.length; l > i; i++) {
if(i >= 5) {
rows[i].className += " hide";
}
}
var tr = document.createElement('tr');
tr.innerHTML = "<td colspan='"+colspan+"'><a href='#'>More rows. Click to show...</a></td>";
tr.getElementsByTagName('a')[0].addEventListener ? tr.getElementsByTagName('a')[0].addEventListener('click',showRows) : tr.getElementsByTagName('a')[0].attachEvent('onclick',showRows);
table.appendChild(tr);
}
function showRows(e) {
var target = e.srcElement ? e.srcElement : e.target;
var tr = target.parentElement;
while(tr.nodeName !== "TR") {
tr = tr.parentElement;
}
var table = target;
while(table.nodeName !== "TBODY") {
table = table.parentElement;
}
var rows = table.getElementsByTagName('tr');
for(var i = 0, l = rows.length; l > i; i++) {
var n = rows[i].className.replace(' hide','');
rows[i].className = n;
}
tr.innerHTML = "<td colspan='"+colspan+"'><a href='#'>...hide rows</a></td>";
tr.getElementsByTagName('a')[0].addEventListener ? tr.getElementsByTagName('a')[0].addEventListener('click',hideRows) : tr.getElementsByTagName('a')[0].attachEvent('onclick',hideRows);
if(e.preventDefault) {
e.preventDefault();
} else {
return false;
}
}
};