// Heavily modified from Allen Day's version, which in turn was stolen from myPHPAdmin
var hiliteColor = 'moccasin'; // mouse over color
var selectColor = 'gold'; // selected row color
function setRowColor(theRow,theColor)
{
var theCells = null;
var domDetect = null;
var currentColor = null;
var c = null;
theCells = getCells(theRow);
if (!theCells) return false;
if (typeof(window.opera) == 'undefined'
&& typeof(theCells[0].getAttribute) != 'undefined') {
currentColor = theCells[0].getAttribute('bgcolor');
domDetect = true;
}
else {
currentColor = theCells[0].style.backgroundColor;
domDetect = false;
} // end 3
if (theColor!=null) {
if (domDetect) {
for (c = 0; c < theCells.length; c++) {
theCells[c].setAttribute('bgcolor', theColor, 0);
} // end for
}
else {
for (c = 0; c < theCells.length; c++) {
theCells[c].style.backgroundColor = theColor;
}
}
}
return currentColor;
}
function getCells(theRow) {
if (typeof(document.getElementsByTagName) != 'undefined') {
return theRow.getElementsByTagName('td');
}
else if (typeof(theRow.cells) != 'undefined') {
return theRow.cells;
}
else {
return null;
}
}
function hiliteRow(theRow,hilite)
{
var theCells = getCells(theRow);
var theCheckBox = findCheckbox(theCells);
var checked = theCheckBox.checked;
if (checked) {
setRowColor(theRow,selectColor);
}
else if (hilite) {
setRowColor(theRow,hiliteColor);
} else {
setRowColor(theRow,theRow.style.backgroundColor);
}
return true;
}
function findCheckbox (theCells){
for (var i=0; i < theCells.length; i++) {
var inputs = theCells[i].getElementsByTagName('input');
if (inputs[0]) return inputs[0];
}
return null;
}
function toggleRow(theRow)
{
var theCells=theRow.getElementsByTagName('td');
var theInput=findCheckbox(theCells);
theInput.checked = !theInput.checked;
setRowColor(theRow,theInput.checked ? selectColor : theRow.style.backgroundColor);
document.form.selectall.checked = false;
return true;
}
function toggleCheckbox(theCheckbox)
{
var row = theCheckbox.parentNode.parentNode;
theCheckbox.checked = !theCheckbox.checked;
setRowColor(row,theCheckbox.checked ? selectColor : row.style.backgroundColor);
event.cancelBubble = true;
return true;
}
function setCheckbox(theCheckbox,state)
{
var row = theCheckbox.parentNode.parentNode;
theCheckbox.checked = state;
setRowColor(row,selectColor);
setRowColor(row,theCheckbox.checked ? selectColor : row.style.backgroundColor);
return true;
}
function toggleAll(self,field) {
for (i = 0; i < field.length; i++)
setCheckbox(field[i],self.checked);
}