function HighlightRow(tableId, hoverClass, clickClass)
{
	var table=document.getElementById(tableId);
	
	if (hoverClass)
	{
		var hoverClassReg=new RegExp("\\b"+hoverClass+"\\b");
		
		table.onmouseover=table.onmouseout=function(e)
		{
			if (!e) e=window.event;
			var elem=e.target || e.srcElement;
			while (!elem.tagName || !elem.tagName.match(/td|th|table/i)) elem=elem.parentNode;

			if (elem.parentNode.tagName=='TR' && elem.parentNode.parentNode.tagName=='TBODY')
			{
				var row=elem.parentNode;
				if ( row.getAttribute('id')!="nohover" )
					if (!row.getAttribute('clickedRow')) row.className=e.type=="mouseover"?row.className+" "+hoverClass:row.className.replace(hoverClassReg," ");
			}
		};
	}

	
	if (clickClass) table.onclick=function(e)
	{
		if (!e) e=window.event;
		var elem=e.target || e.srcElement;
		while (!elem.tagName || !elem.tagName.match(/td|th|table/i)) elem=elem.parentNode;

		if (elem.parentNode.tagName=='TR' && elem.parentNode.parentNode.tagName=='TBODY')
		{
			var clickClassReg=new RegExp("\\b"+clickClass+"\\b");
			var row=elem.parentNode;
			
			if (row.getAttribute('clickedRow'))
			{
				row.removeAttribute('clickedRow');
				row.className=row.className.replace(clickClassReg,"");
				row.className+=" "+hoverClass;
			}
			else
			{
				if (hoverClass) row.className=row.className.replace(hoverClassReg,"");
				row.className+=" "+clickClass;
				row.setAttribute('clickedRow',true);
				
				var lastRowI=table.getAttribute("lastClickedRowI");
				if (lastRowI!==null && lastRowI!=='')
				{
					var lastRow=table.tBodies[0].rows[lastRowI];
					lastRow.className=lastRow.className.replace(clickClassReg,"");
					lastRow.removeAttribute('clickedRow');
				}
				table.setAttribute("lastClickedRowI",row.sectionRowIndex);
			}
		}
	};
}
