function reportTableCell_onmouseover(obj)
{
	var borderStyle='2px dashed red';
	var oTable=obj.parentNode;
	while(oTable.tagName.toLowerCase()!='table') oTable=oTable.parentNode;
	var cellsArray=new Array();
	var rows=oTable.rows;
	for(var i=0;i<rows.length;i++)
	{
		var cells=rows[i].cells;
		for(var j=0;j<cells.length;j++)
		{
			var c=cells[j];
			for(var rCount=0;rCount<c.rowSpan;rCount++) 
			{
				for(var cCount=0;cCount<c.colSpan;cCount++) 
				{
					if(typeof(cellsArray[i+rCount])=='undefined') cellsArray[i+rCount]=new Array(); cellsArray[i+rCount].push(c);
				}
			}
		}
	}

	var obj_i;
	var obj_j;
	for(var i=0;i<cellsArray.length;i++)
		for(var j=0;j<cellsArray[i].length;j++) if(cellsArray[i][j]==obj) {obj_i=i;obj_j=j; break;}
	var changeCellList=new Array();
	j=obj_j;
	for(var i=obj_i;i>=0;i--) 
	{
    cellsArray[i][j].obj_i=i;
    cellsArray[i][j].obj_j=j;
    changeCellList.push(cellsArray[i][j]);
	}
	i=obj_i;
	for(var j=obj_j;j>=0;j--) 
	{
		cellsArray[i][j].obj_i=i;
    cellsArray[i][j].obj_j=j;
		changeCellList.push(cellsArray[i][j]);
	}
	changeCellList=changeCellList.uniq();
	changeCellList.each(function(item){
		item.borderStyleBefore=$(item).getStyle('borderStyle');
		item.borderColorBefore=$(item).getStyle('borderColor');
		item.borderWidthBefore=$(item).getStyle('borderWidth');
		if(item.obj_i<obj_i)
		{
			item.style.borderLeft=borderStyle;
			item.style.borderRight=borderStyle;
			if(item.obj_i==0)
			{
				item.style.borderTop=borderStyle;
				item.style.borderBottom=borderStyle;
			}
		}
		if(item.obj_j<obj_j)
		{
			item.style.borderTop=borderStyle;
			item.style.borderBottom=borderStyle;
			if(item.obj_j==0)
			{
				item.style.borderLeft=borderStyle;
				item.style.borderRight=borderStyle;
			}
		}
		if(item.obj_j==obj_j && item.obj_i==obj_i)
		{
			item.style.border=borderStyle;
		}
	
	});
	
	obj.changeCellList=changeCellList;
}

function reportTableCell_onmouseout(obj)
{
	obj.changeCellList.each(function(item){
	item.style.borderStyle=item.borderStyleBefore;
	item.style.borderColor=item.borderColorBefore;
	item.style.borderWidth=item.borderWidthBefore;
  });
}