Index: /FCKeditor/trunk/editor/_source/internals/fcktablehandler.js
===================================================================
--- /FCKeditor/trunk/editor/_source/internals/fcktablehandler.js	(revision 2779)
+++ /FCKeditor/trunk/editor/_source/internals/fcktablehandler.js	(revision 2780)
@@ -53,5 +53,5 @@
 		for ( var i = 0; i < aCells.length; i++ )
 		{
-			var oRow = FCKTools.GetElementAscensor( aCells[i],'TR' ) ;
+			var oRow = aCells[i].parentNode ;
 			aRowsToDelete[oRow.rowIndex] = oRow ;
 		}
@@ -119,5 +119,5 @@
 	var iIndex = oCell.cellIndex ;
 
-	// Loop throw all rows available in the table.
+	// Loop through all rows available in the table.
 	for ( var i = 0 ; i < oTable.rows.length ; i++ )
 	{
@@ -125,5 +125,5 @@
 		var oRow = oTable.rows[i] ;
 
-		// If the row doens't have enough cells, ignore it.
+		// If the row doesn't have enough cells, ignore it.
 		if ( oRow.cells.length < ( iIndex + 1 ) )
 			continue ;
@@ -137,10 +137,5 @@
 		var oBaseCell = oRow.cells[iIndex] ;
 
-		if ( insertBefore )
-			oRow.insertBefore( oCell, oBaseCell ) ;
-		else if ( oBaseCell.nextSibling )
-			oRow.insertBefore( oCell, oBaseCell.nextSibling ) ;
-		else
-			oRow.appendChild( oCell ) ;
+		oRow.insertBefore( oCell, ( insertBefore ? oBaseCell : oBaseCell.nextSibling ) ) ;
 	}
 }
@@ -219,5 +214,5 @@
 	{
 		// Delete the entire row.
-		FCKTableHandler.DeleteRows( FCKTools.GetElementAscensor( cell, 'TR' ) ) ;
+		FCKTableHandler.DeleteRows( cell.parentNode ) ;
 		return ;
 	}
@@ -247,8 +242,5 @@
 	for ( var i = 0 ; i < cells.length ; i++ )
 	{
-		if ( FCKBrowserInfo.IsIE )
-			cells[i].removeAttribute( label ) ;
-		else
-			delete cells[i][label] ;
+		FCKDomTools.ClearElementJSProperty(cells[i], label ) ;
 	}
 }
@@ -386,5 +378,5 @@
 		}
 		if ( rowChildNodesCount > 0 )
-			cellContents.appendChild( FCKTools.GetElementDocument( refCell ).createElement( 'br' ) ) ;
+			cellContents.appendChild( FCK.EditorDocument.createElement( 'br' ) ) ;
 	}
 
@@ -435,5 +427,5 @@
 		cellContents.appendChild( nextCell.removeChild( nextCell.firstChild ) ) ;
 	if ( cellContents.firstChild )
-		cellContents.insertBefore( FCKTools.GetElementDocument( nextCell ).createElement( 'br' ), cellContents.firstChild ) ;
+		cellContents.insertBefore( FCK.EditorDocument.createElement( 'br' ), cellContents.firstChild ) ;
 	refCell.appendChild( cellContents ) ;
 	this._MarkCells( [nextCell], '_Replace' ) ;
@@ -618,19 +610,4 @@
 	}
 	return null ;
-}
-
-// Get the cells available in a column of a TableMap.
-FCKTableHandler._GetColumnCells = function( tableMap, columnIndex )
-{
-	var aCollCells = new Array() ;
-
-	for ( var r = 0 ; r < tableMap.length ; r++ )
-	{
-		var oCell = tableMap[r][columnIndex] ;
-		if ( oCell && ( aCollCells.length == 0 || aCollCells[ aCollCells.length - 1 ] != oCell ) )
-			aCollCells[ aCollCells.length ] = oCell ;
-	}
-
-	return aCollCells ;
 }
 
@@ -759,14 +736,6 @@
 		{
 			var cell = tableMap[i][j] ;
-			if ( FCKBrowserInfo.IsIE )
-			{
-				cell.removeAttribute( '_colScanned' ) ;
-				cell.removeAttribute( '_rowScanned' ) ;
-			}
-			else
-			{
-				delete cell._colScanned ;
-				delete cell._rowScanned ;
-			}
+			FCKDomTools.ClearElementJSProperty(cell, '_colScanned' ) ;
+			FCKDomTools.ClearElementJSProperty(cell, '_rowScanned' ) ;
 		}
 	}
@@ -775,5 +744,5 @@
 	for ( var i = 0 ; i < tableMap.length ; i++ )
 	{
-		var rowObj = FCKTools.GetElementDocument( table ).createElement( 'tr' ) ;
+		var rowObj = FCK.EditorDocument.createElement( 'tr' ) ;
 		for ( var j = 0 ; j < tableMap[i].length ; )
 		{
