		var marked_row = new Array;
		function setPointer(theRow, theRowNum, theAction, theDefaultColor, thePointerColor, theMarkColor)
		{
		    var theCells = null;
		    if ((thePointerColor == '' && theMarkColor == '')
		        || 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' && thePointerColor != '') {
		            newColor              = thePointerColor;
		        }
		        else if (theAction == 'click' && theMarkColor != '') {
		            newColor              = theMarkColor;
		            marked_row[theRowNum] = true;
		        }
		    }
		    else if (currentColor.toLowerCase() == thePointerColor.toLowerCase()
		             && (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])) {
		        if (theAction == 'out') {
		            newColor              = theDefaultColor;
		        }
		        else if (theAction == 'click' && theMarkColor != '') {
		            newColor              = theMarkColor;
		            marked_row[theRowNum] = true;
		        }
		    }
		    // 4.1.3 Current color is the marker one
		    else if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) {
		        if (theAction == 'click') {
		            newColor              = (thePointerColor != '')
		                                  ? thePointerColor
		                                  : theDefaultColor;
		            marked_row[theRowNum] = (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])
		                                  ? true
		                                  : null;
		        }
		    }
		    if (newColor) {
		        var c = null;
		        // 5.1 ... with DOM compatible browsers except Opera
		        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;
		}