function setPointer(theRow, theRowNum, theAction, theDefaultColor, thePointerColor)
{
    var theCells = null;

    if (thePointerColor == '' || 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.indexOf("rgb") >= 0) 
    {
        var rgbStr = currentColor.slice(currentColor.indexOf('(') + 1, currentColor.indexOf(')'));
        var rgbValues = rgbStr.split(",");
        currentColor = "#";
        var hexChars = "0123456789ABCDEF";
        for (var i=0; i < 3; i++)
        {
            var v = rgbValues[i].valueOf();
            currentColor += hexChars.charAt(v/16) + hexChars.charAt(v%16);
        }
    }


        if (currentColor == '' ||
        currentColor.toLowerCase() == theDefaultColor.toLowerCase()) 
    {
                if (theAction == 'over' && thePointerColor != '') newColor = thePointerColor;
    }
    else if (currentColor.toLowerCase() == thePointerColor.toLowerCase() ) 
    {
                if (theAction == 'out')  newColor = theDefaultColor;
    }
    


        if (newColor) 
    {
                if (domDetect) for (var c=0; c < rowCellsCnt; c++) theCells[c].setAttribute('bgcolor', newColor, 0);
                else for (var c=0; c < rowCellsCnt; c++) theCells[c].style.backgroundColor = newColor;
    } 

    return true;
}
