Index: /FCKeditor/branches/features/floating_dialog/editor/_source/internals/fck.js
===================================================================
--- /FCKeditor/branches/features/floating_dialog/editor/_source/internals/fck.js	(revision 1208)
+++ /FCKeditor/branches/features/floating_dialog/editor/_source/internals/fck.js	(revision 1209)
@@ -806,7 +806,104 @@
 	},
 
-	SetDialogMode: function( yes )
-	{
-		return ;
+	SetDialogMode: function( isEnabled )
+	{
+		var doc = this.Window.parent.document ;
+		var editorFrame = this.Window.frameElement ;
+		var editorParentElement = editorFrame.parentNode ;
+		var me = this ;
+		var isIE6 = FCKBrowserInfo.IsIE && !FCKBrowserInfo.IsIE7 ;
+		var resizeHandler = function()
+		{
+			if ( !me.BackgroundBlocker )
+				return ;
+			FCKDomTools.SetElementStyles( me.BackgroundBlocker,
+				{
+					'width' : Math.max( doc.documentElement.scrollWidth,
+						doc.documentElement.clientWidth,
+						doc.body.scrollWidth ) - 1 + 'px',
+					'height' : Math.max( doc.documentElement.scrollHeight,
+						doc.documentElement.clientHeight,
+						doc.body.scrollHeight ) - 1 + 'px'
+				} ) ;
+		}
+		FCKTools.AddEventListener( this.Window.parent, 'resize', resizeHandler ) ;
+
+		if ( !this.BackgroundBlocker )
+		{
+			this.BackgroundBlocker = doc.createElement( 'div' ) ;
+			FCKDomTools.SetElementStyles( this.BackgroundBlocker,
+				{
+					'position' : 'absolute',
+					'zIndex' : 0,
+					'backgroundColor' : FCKConfig.BackgroundBlockerColor
+				} ) ;
+			FCKDomTools.SetOpacity( this.BackgroundBlocker, FCKConfig.BackgroundBlockerOpacity ) ;
+			editorParentElement.style.overflow = 'visible' ;
+
+			if ( isIE6 )
+			{
+				var iframe = doc.createElement( 'iframe' ) ;
+				iframe.src = 'javascript:void(0);' ;
+				iframe.hideFocus = true ;
+				iframe.frameBorder = 0 ;
+				FCKDomTools.SetElementStyles( iframe, 
+					{
+						'width' : '100%',
+						'height' : '100%',
+						'position' : 'absolute',
+						'left' : '0px',
+						'top' : '0px',
+						'filter' : 'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'
+					} ) ;
+				this.BackgroundBlocker.appendChild( iframe ) ;
+			}
+		}
+
+		if ( isEnabled )
+		{
+			var positionedAncestor = FCKDomTools.GetPositionedAncestor( this.Window.parent, editorParentElement ) ;
+			var positionedAncestorCoords = positionedAncestor ? 
+				FCKTools.GetDocumentPosition( this.Window.parent, positionedAncestor ) :
+				{ 'x' : 0, 'y' : 0 } ;
+			var editorFrameCoords=  FCKTools.GetDocumentPosition( this.Window.parent, editorFrame ) ;
+			resizeHandler() ;
+			FCKDomTools.SetElementStyles( this.BackgroundBlocker,
+				{
+					'left' : ( -1 * positionedAncestorCoords.x ) + 'px',
+					'top' : (-1 * positionedAncestorCoords.y ) + 'px',
+					'display' : ''
+				} ) ;
+
+			var currentElement = editorFrame ;
+			while ( ( currentElement = currentElement.parentNode ) )
+			{
+				if ( currentElement.nodeType == 1 )
+				{
+					currentElement._fckPreviousZIndex = currentElement.style.zIndex ? currentElement.style.zIndex : '' ;
+					currentElement.style.zIndex = FCKConfig.FloatingPanelsZIndex - 1 ;
+				}
+			}
+			editorParentElement.insertBefore( this.BackgroundBlocker, editorFrame ) ;
+
+			if ( this.LastActiveButton )
+				FCKToolbarButtonUI_OnMouseOut.apply( this.LastActiveButton.MainElement, [null, this.LastActiveButton ] ) ;
+
+			FCKFocusManager.Lock() ;
+		}
+		else
+		{
+			var currentElement = editorFrame ;
+			while ( ( currentElement = currentElement.parentNode ) )
+			{
+				if ( currentElement.nodeType == 1 && currentElement._fckPreviousZIndex != undefined )
+				{
+					currentElement.style.zIndex = currentElement._fckPreviousZIndex ;
+					FCKDomTools.ClearElementJSProperty( currentElement, '_fckPreviousZIndex' ) ;
+				}
+			}
+			this.BackgroundBlocker.parentNode.removeChild( this.BackgroundBlocker ) ;
+
+			FCKFocusManager.Unlock() ;
+		}
 	}
 } ;
Index: /FCKeditor/branches/features/floating_dialog/editor/_source/internals/fckdialog.js
===================================================================
--- /FCKeditor/branches/features/floating_dialog/editor/_source/internals/fckdialog.js	(revision 1208)
+++ /FCKeditor/branches/features/floating_dialog/editor/_source/internals/fckdialog.js	(revision 1209)
@@ -151,6 +151,32 @@
 }
 
-FCKDialog.SetEnabled = function( frame, yes )
-{
+FCKDialog.SetEnabled = function( frame, isEnabled )
+{
+	var doc = frame.contentWindow.document ;
+	var cover = doc.getElementById( 'cover' ) ;
+	cover.style.display = isEnabled ? 'none' : '' ;
+
+	var isIE6 = FCKBrowserInfo.IsIE && !FCKBrowserInfo.IsIE7;
+
+	if ( isIE6 )
+	{
+		if ( !isEnabled )
+		{
+			// Insert the blocker IFRAME before the cover.
+			var blocker = doc.createElement( 'iframe' ) ;
+			blocker.src = 'javascript:void(0)' ;
+			blocker.hideFocus = true ;
+			blocker.frameBorder = 0 ;
+			blocker.id = blocker.className = 'blocker' ;
+
+			doc.body.insertBefore( blocker, cover ) ;
+		}
+		else
+		{
+			var blocker = doc.getElementById( 'blocker' ) ;
+			if ( blocker && blocker.parentNode )
+				blocker.parentNode.removeChild( blocker ) ;
+		}
+	}
 }
 
Index: /FCKeditor/branches/features/floating_dialog/editor/fckdialog.html
===================================================================
--- /FCKeditor/branches/features/floating_dialog/editor/fckdialog.html	(revision 1208)
+++ /FCKeditor/branches/features/floating_dialog/editor/fckdialog.html	(revision 1209)
@@ -1,3 +1,3 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
