function setEffect(theRow, theAction, theDefaultColor, theOverColor, theClickColor)

{

    var theCells = null;

    if ((theOverColor == '' && theClickColor == '') || typeof(theRow.style) == 'undefined') {

        return false;

    }



    if (typeof(document.getElementsByTagName) != 'undefined') {

        theCells = theRow.getElementsByTagName('td');

    }

    else if (typeof(theRow.cells) != 'undefined') {

        theCells = theRow.cells;

    }

    else {

        return false;

    }

    var rowCellsCnt  = theCells.length;

    var domDetect    = null;

    var currentColor = null;

    var newColor     = null;

    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;

    }

    if (currentColor == '' || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) {

        if (theAction == 'over' && theOverColor != '') {

            newColor = theOverColor;

        }

        else if (theAction == 'click' && theClickColor != '') {

            newColor = theClickColor;

        }

    }

    else if (currentColor.toLowerCase() == theOverColor.toLowerCase()) {

        if (theAction == 'out') {

            newColor = theDefaultColor;

        }

        else if (theAction == 'click' && theClickColor != '') {

            newColor = theClickColor;

        }

    }

    else if (currentColor.toLowerCase() == theClickColor.toLowerCase()) {

        if (theAction == 'click') {

            newColor = (theOverColor != '')

                     ? theOverColor

                     : theDefaultColor;

        }

    }

    if (newColor) {

        var c = null;

        if (domDetect) {

            for (c = 0; c < rowCellsCnt; c++) {

                theCells[c].setAttribute('bgcolor', newColor, 0);

            }

        }

        else {

            for (c = 0; c < rowCellsCnt; c++) {

                theCells[c].style.backgroundColor = newColor;

            }

        }

    }

    return true;

}