function jscss(a,o,c1,c2)
{
  switch (a){
    case 'swap':
      o.className=!jscss('check',o,c1)?o.className.replace(c2,c1):
      o.className.replace(c1,c2);
    break;
    case 'add':
      if(!jscss('check',o,c1)){o.className+=o.className?' '+c1:c1;}
    break;
    case 'remove':
      var rep=o.className.match(' '+c1)?' '+c1:c1;
      o.className=o.className.replace(rep,'');
    break;
    case 'check':
      return new RegExp('\\b'+c1+'\\b').test(o.className)
    break;
  }
}

function ConvertRowsToHighlighted(xTableId){
	var rows = document.getElementById(xTableId).getElementsByTagName('tr');
	for(i=0;i<rows.length;i++){
		rows[i].onmouseover = function()
		{
			jscss('add',this,'highlight');
		}
		rows[i].onmouseout = function()
		{
			jscss('remove',this,'highlight');
		}
	}
}

function ConvertAllTableRowsToHighlighted(xTableName){
	var tables = document.getElementsByName(xTableName);
	for(n=0;n<tables.length;n++){
		var rows = tables[n].getElementsByTagName('tr');
		for(i=0;i<rows.length;i++){
			rows[i].onmouseover = function()
		    {
				jscss('add',this,'highlight');
			}
			rows[i].onmouseout = function()
			{
				jscss('remove',this,'highlight');
			}
		}
	}
}

function ConvertAllTableCellsToHighlighted(xTableName){
	var tables = document.getElementsByName(xTableName);
	for(n=0;n<tables.length;n++){
		var rows = tables[n].getElementsByTagName('tr');
		for(i=0;i<rows.length;i++){
			var cells = rows[i].getElementsByTagName('td');
			for(t=0;t<cells.length;t++){
				cells[t].onmouseover = function()
				{
					jscss('add',this,'highlight-cell');
				}
				cells[t].onmouseout = function()
				{
					jscss('remove',this,'highlight-cell');
				}
			}
			rows[i].onmouseover = function()
			{
				jscss('add',this,'highlight-row');
			}
			rows[i].onmouseout = function()
			{
				jscss('remove',this,'highlight-row');
			}
		}
	}
}
