Subversion Repositories public

Compare Revisions

Ignore whitespace Rev 3 → Rev 4

/pm/trunk/fixtable.js
0,0 → 1,69
/* http://www.alistapart.com/articles/zebratables/ */
function removeClassName (elem, className) {
elem.className = elem.className.replace(className, "").trim();
}
 
function addCSSClass (elem, className) {
removeClassName (elem, className);
elem.className = (elem.className + " " + className).trim();
}
 
String.prototype.trim = function() {
return this.replace( /^\s+|\s+$/, "" );
}
 
function stripedTable() {
if (document.getElementById && document.getElementsByTagName) {
var allTables = document.getElementsByTagName('table');
if (!allTables) { return; }
 
for (var i = 0; i < allTables.length; i++) {
if (allTables[i].className.match(/[\w\s ]*scrollTable[\w\s ]*/)) {
var trs = allTables[i].getElementsByTagName("tr");
for (var j = 0; j < trs.length; j++) {
removeClassName(trs[j], 'alternateRow');
addCSSClass(trs[j], 'normalRow');
}
for (var k = 0; k < trs.length; k += 2) {
removeClassName(trs[k], 'normalRow');
addCSSClass(trs[k], 'alternateRow');
}
}
}
}
}
 
/* onload state is fired, append onclick action to the table's DIV */
/* container. This allows the HTML document to validate correctly. */
/* addIEonScroll added on 2005-01-28 */
/* Terence Ordona, portal[AT]imaputz[DOT]com */
function addIEonScroll() {
var thisContainer = document.getElementById('tableContainer');
if (!thisContainer) { return; }
 
var onClickAction = 'toggleSelectBoxes();';
thisContainer.onscroll = new Function(onClickAction);
}
 
/* Only WinIE will fire this function. All other browsers scroll the TBODY element and not the DIV */
/* This is to hide the SELECT elements from scrolling over the fixed Header. WinIE only. */
/* toggleSelectBoxes added on 2005-01-28 */
/* Terence Ordona, portal[AT]imaputz[DOT]com */
function toggleSelectBoxes() {
var thisContainer = document.getElementById('tableContainer');
var thisHeader = document.getElementById('fixedHeader');
if (!thisContainer || !thisHeader) { return; }
 
var selectBoxes = thisContainer.getElementsByTagName('select');
if (!selectBoxes) { return; }
 
for (var i = 0; i < selectBoxes.length; i++) {
if (thisContainer.scrollTop >= eval(selectBoxes[i].parentNode.offsetTop - thisHeader.offsetHeight)) {
selectBoxes[i].style.visibility = 'hidden';
} else {
selectBoxes[i].style.visibility = 'visible';
}
}
}
 
window.onload = function() { stripedTable(); addIEonScroll(); }