Index: /FCKeditor/branches/developers/martinkou/editor/plugins/dragresizetable/fckplugin.js
===================================================================
--- /FCKeditor/branches/developers/martinkou/editor/plugins/dragresizetable/fckplugin.js	(revision 453)
+++ /FCKeditor/branches/developers/martinkou/editor/plugins/dragresizetable/fckplugin.js	(revision 454)
@@ -6,4 +6,5 @@
 	"_OldCursor" : null,
 	"_MouseMoveMode" : 0,	// 0 - find candidate cells for resizing, 1 - drag to resize
+	"_ResizeBar" : null,
 	"GetWindowPosition" : function( w, node )
 	{
@@ -102,4 +103,56 @@
 			return FCKDragTableHandler._MouseDragHandler( FCK, evt ) ;
 	},
+	// Calculate the padding of a table cell.
+	// It returns the value of paddingLeft + paddingRight of a table cell.
+	// This function is used, in part, to calculate the width parameter that should be used for setting cell widths.
+	// The equation in question is clientWidth = paddingLeft + paddingRight + width.
+	// So that width = clientWidth - paddingLeft - paddingRight.
+	// The return value of this function must be pixel accurate acorss all supported browsers, so be careful if you need to modify it.
+	"_GetCellPadding" : function( table, cell )
+	{
+		var attrGuess = parseInt( table.cellPadding ) * 2 ;
+		var cssGuess = null ;
+		if ( typeof( window.getComputedStyle ) == "function" )
+		{
+			var styleObj = window.getComputedStyle( cell, null ) ;
+			cssGuess = parseInt( styleObj.getPropertyValue( "padding-left" ) ) + 
+				parseInt( styleObj.getPropertyValue( "padding-right" ) ) ;
+		}
+		else
+			cssGuess = parseInt( cell.currentStyle.paddingLeft ) + parseInt (cell.currentStyle.paddingRight ) ;
+
+		var cssRuntime = cell.style.padding ;
+		if ( parseInt( cssRuntime ) == parseInt( cssRuntime ) )
+			cssGuess = parseInt( cssRuntime ) * 2 ;
+		else
+		{
+			cssRuntime = cell.style.paddingLeft ;
+			if ( parseInt( cssRuntime ) == parseInt( cssRuntime ) )
+				cssGuess = parseInt( cssRuntime ) ;
+			cssRuntime = cell.style.paddingRight ;
+			if ( parseInt( cssRuntime ) == parseInt( cssRuntime ) )
+				cssGuess += parseInt( cssRuntime ) ;
+		}
+
+		attrGuess = parseInt( attrGuess ) ;
+		cssGuess = parseInt( cssGuess ) ;
+		if ( attrGuess != attrGuess )
+			attrGuess = 0 ;
+		if ( cssGuess != cssGuess )
+			cssGuess = 0 ;
+		return Math.max( attrGuess, cssGuess ) ;
+	},
+	// Calculate the real width of the table cell.
+	// The real width of the table cell is the pixel width that you can set to the width attribute of the table cell and after
+	// that, the table cell should be of exactly the same width as before.
+	// The real width of a table cell can be calculated as:
+	// width = clientWidth - paddingLeft - paddingRight.
+	"_GetCellWidth" : function( table, cell )
+	{
+		var clientWidth = parseInt( cell.clientWidth ) ;
+		if ( clientWidth != clientWidth )		// NaN possible? lets just be safe...
+			clientWidth = 0 ;
+		return clientWidth - FCKDragTableHandler._GetCellPadding( table, cell ) ;
+	},
 	"_MouseFindHandler" : function( FCK, evt )
 	{
@@ -147,4 +200,7 @@
 	"_MouseDragHandler" : function( FCK, evt )
 	{
+	},
+	"_CreateResizeBar" : function( w, table, evt )
+	{
 	}
 };
