/**
 * Setzen und Ruecksetzen der Hintergrundfarbe von Tabellenzeilen
 * bei den Events onmouseover und onmouseout
 *
 * @file      js/setpointer.js
 *
 * @author    Ulrich Riedel
 *
 * @histroy
 * 2004-08-16 ur1819: Created
*/

/**
 * das Array dient zum Merken der alten Hintergrundfarben
*/
var marked_row = new Array;

/**
 * setzt/resetet die Hintergrundfarbe einer Tabellenzeile
 *
 * @param object    Tabellenzeile
 * @param string    die Aktion, die das Script aufruft (over oder out)
 * @param string    die Farbe zur Hervorhebung wenn Mouse darueber steht
 *
 * @return boolean  ob Farbaenderung erfolgte oder nicht
*/
function setPointer(theRow, theAction, thePointerColor)
{
  var c;
  var theCells;

  // keine Farbe gesetzt bzw. unbekannter Spaltentyp
  if (thePointerColor == '' || typeof(theRow.style) == 'undefined') {
    return false;
  }

  // versuchen die Zellen zu identifizieren
  if (typeof(document.getElementsByTagName) != 'undefined') {
    theCells = theRow.getElementsByTagName('td');
  }
  else if (typeof(theRow.cells) != 'undefined') {
    theCells = theRow.cells;
  }
  else {
    return false;
  }

  // Zellen in der gewuenschten Farbe darstellen,
  // beim Verlassen wieder in die gespeichtere Hintergrundfarbe zurueckschalten
  var rowCellsCnt = theCells.length;
  if( theAction == 'over' )
  {
    for (c = 0; c < rowCellsCnt; c++) {
      // alte Hintergrundfarbe speichern
      marked_row[c] = theCells[c].style.backgroundColor;
      // neue Hintergrundfarbe setzen
      theCells[c].style.backgroundColor = thePointerColor;
    }
  }
  else
  {
    for (c = 0; c < rowCellsCnt; c++) {
      // alte Hintergrundfarbe zurueckschreiben
      theCells[c].style.backgroundColor = marked_row[c];
    }
  }

  return true;
} // end of the 'setPointer()' function
