

/**
 * The global array below will be used inside the "setPointer()" function
 */
var markedRow = new Array();


/**
 * Sets/unsets the pointer in browse mode
 *
 * @param  object  the table row
 * @param  object  the color to use for this row
 * @param  object  the background color
 *
 * @return boolean whether pointer is set or not
 */
function setPointer(theRow, thePointerColor, theNormalBgColor)
{
  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 currentColor = null;
  var newColor   = null;
  // Opera does not return valid values width "getAttribute"
  if (typeof(window.opera) == 'undefined'
    && typeof(theCells[0].getAttribute) != 'undefined' && typeof(theCells[0].getAttribute) != 'undefined') {
    currentColor = theCells[0].getAttribute('bgcolor');
    newColor   = (currentColor.toLowerCase() == thePointerColor.toLowerCase())
           ? theNormalBgColor
           : thePointerColor;
    for (var c = 0; c < rowCellsCnt; c++) {
      theCells[c].setAttribute('bgcolor', newColor, 0);
    } // end for
  }
  else {
    currentColor = theCells[0].style.backgroundColor;
    newColor   = (currentColor.toLowerCase() == thePointerColor.toLowerCase())
           ? theNormalBgColor
           : thePointerColor;
    for (var c = 0; c < rowCellsCnt; c++) {
      theCells[c].style.backgroundColor = newColor;
    }
  }

  return true;
} // end of the 'setPointer()' function

