phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] news_admin/js/fckeditor/editor/_source/internals fckt


From: skwashd
Subject: [Phpgroupware-cvs] news_admin/js/fckeditor/editor/_source/internals fcktablehandler_ie.js, 1.2 fcktablehandler_gecko.js, 1.2 fcktoolbaritems.js, 1.2 fcktoolbarset.js, 1.2 fcktools_gecko.js, 1.2 fcktools.js, 1.2 fcktablehandler.js, 1.2 fckselection_ie.js, 1.2 fckregexlib.js, 1.2 fckplugins.js, 1.2 fckscriptloader.js, 1.2 fckselection.js, 1.2 fckselection_gecko.js, 1.2 fcktools_ie.js, 1.2 fckurlparams.js, 1.2 fckxhtml_gecko.js, 1.2 fckxhtml.js, 1.2 fckxhtml_ie.js, 1.2 fckxhtmlentities.js, 1.2 fcklanguagemanager.js, 1.2 fckdialog_ie.js, 1.2 fck_1_gecko.js, 1.2 fck_1.js, 1.2 fck_1_ie.js, 1.2 fck_2.js, 1.2 fck_2_gecko.js, 1.2 fck.js, 1.2 fck_2_ie.js, 1.2 fck_last.js, 1.2 fckcoreextensions.js, 1.2 fckcontextmenu_ie.js, 1.2 fckdebug.js, 1.2 fckdialog.js, 1.2 fckdialog_gecko.js, 1.2 fckcontextmenu_gecko.js, 1.2 fckcontextmenu.js, 1.2 fckbrowserinfo.js, 1.2 fck_onload.js, 1.2 fckcodeformatter.js, 1.2 fckcommands.js, 1.2 fckconfig.js, 1.2
Date: Thu, 4 Aug 2005 05:54:00 +0200

Update of news_admin/js/fckeditor/editor/_source/internals

Modified Files:
     Branch: MAIN
            fcktablehandler_ie.js lines: +1 -4
            fcktablehandler_gecko.js lines: +1 -4
            fcktoolbaritems.js lines: +5 -6
            fcktoolbarset.js lines: +1 -5
            fcktools_gecko.js lines: +2 -4
            fcktools.js lines: +24 -13
            fcktablehandler.js lines: +12 -8
            fckselection_ie.js lines: +10 -5
            fckregexlib.js lines: +15 -5
            fckplugins.js lines: +1 -4
            fckscriptloader.js lines: +63 -24
            fckselection.js lines: +1 -4
            fckselection_gecko.js lines: +16 -20
            fcktools_ie.js lines: +1 -4
            fckurlparams.js lines: +1 -4
            fckxhtml_gecko.js lines: +6 -4
            fckxhtml.js lines: +69 -35
            fckxhtml_ie.js lines: +20 -8
            fckxhtmlentities.js lines: +147 -126
            fcklanguagemanager.js lines: +1 -7
            fckdialog_ie.js lines: +1 -5
            fck_1_gecko.js lines: +83 -31
            fck_1.js lines: +119 -10
            fck_1_ie.js lines: +95 -69
            fck_2.js lines: +65 -23
            fck_2_gecko.js lines: +5 -9
            fck.js lines: +36 -10
            fck_2_ie.js lines: +5 -9
            fck_last.js lines: +1 -4
            fckcoreextensions.js lines: +8 -5
            fckcontextmenu_ie.js lines: +6 -5
            fckdebug.js lines: +1 -5
            fckdialog.js lines: +3 -7
            fckdialog_gecko.js lines: +5 -8
            fckcontextmenu_gecko.js lines: +1 -4
            fckcontextmenu.js lines: +10 -8
            fckbrowserinfo.js lines: +9 -20
            fck_onload.js lines: +121 -22
            fckcodeformatter.js lines: +7 -5
            fckcommands.js lines: +6 -5
            fckconfig.js lines: +27 -14

Log Message:
new newsletter builder, updated FCK and a few other things

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fcktablehandler_ie.js
diff -u 
news_admin/js/fckeditor/editor/_source/internals/fcktablehandler_ie.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fcktablehandler_ie.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fcktablehandler_ie.js:1.1  
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fcktablehandler_ie.js      
Thu Aug  4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -10,9 +10,6 @@
  *
  * File Name: fcktablehandler_ie.js
  *     Manage table operations (IE specific).
- *
- * Version:  2.0 RC3
- * Modified: 2004-09-05 02:17:58
  *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fcktablehandler_gecko.js
diff -u 
news_admin/js/fckeditor/editor/_source/internals/fcktablehandler_gecko.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fcktablehandler_gecko.js:1.2
--- 
news_admin/js/fckeditor/editor/_source/internals/fcktablehandler_gecko.js:1.1   
    Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fcktablehandler_gecko.js   
Thu Aug  4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -10,9 +10,6 @@
  *
  * File Name: fcktablehandler_gecko.js
  *     Manage table operations (IE specific).
- *
- * Version:  2.0 RC3
- * Modified: 2004-09-07 00:52:56
  *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fcktoolbaritems.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fcktoolbaritems.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fcktoolbaritems.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fcktoolbaritems.js:1.1     
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fcktoolbaritems.js Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,9 +11,6 @@
  * File Name: fcktoolbaritems.js
  *     Toolbar items definitions.
  *
- * Version:  2.0 RC3
- * Modified: 2005-02-16 19:59:20
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -37,6 +34,7 @@
        {
                case 'Source'                   : oItem = new FCKToolbarButton( 
'Source'        , FCKLang.Source, null, FCK_TOOLBARITEM_ICONTEXT, true, true ) 
; break ;
                case 'DocProps'                 : oItem = new FCKToolbarButton( 
'DocProps'      , FCKLang.DocProps ) ; break ;
+               case 'Templates'                : oItem = new FCKToolbarButton( 
'Templates'     , FCKLang.Templates ) ; break ;
                case 'Save'                             : oItem = new 
FCKToolbarButton( 'Save'          , FCKLang.Save, null, null, true ) ; break ;
                case 'NewPage'                  : oItem = new FCKToolbarButton( 
'NewPage'       , FCKLang.NewPage, null, null, true  ) ; break ;
                case 'Preview'                  : oItem = new FCKToolbarButton( 
'Preview'       , FCKLang.Preview, null, null, true  ) ; break ;
@@ -47,7 +45,7 @@
                case 'Paste'                    : oItem = new FCKToolbarButton( 
'Paste'         , FCKLang.Paste, null, null, false, true ) ; break ;
                case 'PasteText'                : oItem = new FCKToolbarButton( 
'PasteText'     , FCKLang.PasteText, null, null, false, true ) ; break ;
                case 'PasteWord'                : oItem = new FCKToolbarButton( 
'PasteWord'     , FCKLang.PasteWord, null, null, false, true ) ; break ;
-               case 'Print'                    : oItem = new FCKToolbarButton( 
'Print'         , FCKLang.Print ) ; break ;
+               case 'Print'                    : oItem = new FCKToolbarButton( 
'Print'         , FCKLang.Print, null, null, false, true ) ; break ;
                case 'SpellCheck'               : oItem = new FCKToolbarButton( 
'SpellCheck', FCKLang.SpellCheck ) ; break ;
                case 'Undo'                             : oItem = new 
FCKToolbarButton( 'Undo'          , FCKLang.Undo, null, null, false, true ) ; 
break ;
                case 'Redo'                             : oItem = new 
FCKToolbarButton( 'Redo'          , FCKLang.Redo, null, null, false, true ) ; 
break ;
@@ -71,12 +69,13 @@
                case 'Anchor'                   : oItem = new FCKToolbarButton( 
'Anchor'        , FCKLang.Anchor ) ; break ;

                case 'Image'                    : oItem = new FCKToolbarButton( 
'Image'                 , FCKLang.InsertImageLbl, FCKLang.InsertImage ) ; break 
;
+               case 'Flash'                    : oItem = new FCKToolbarButton( 
'Flash'                 , FCKLang.InsertFlashLbl, FCKLang.InsertFlash ) ; break 
;
                case 'Table'                    : oItem = new FCKToolbarButton( 
'Table'                 , FCKLang.InsertTableLbl, FCKLang.InsertTable ) ; break 
;
                case 'SpecialChar'              : oItem = new FCKToolbarButton( 
'SpecialChar'   , FCKLang.InsertSpecialCharLbl, FCKLang.InsertSpecialChar ) ; 
break ;
                case 'Smiley'                   : oItem = new FCKToolbarButton( 
'Smiley'                , FCKLang.InsertSmileyLbl, FCKLang.InsertSmiley ) ; 
break ;
                case 'UniversalKey'             : oItem = new FCKToolbarButton( 
'UniversalKey'  , FCKLang.UniversalKeyboard ) ; break ;

-               case 'Rule'                             : oItem = new 
FCKToolbarButton( 'InsertHorizontalRule', FCKLang.InsertLineLbl, 
FCKLang.InsertLine ) ; break ;
+               case 'Rule'                             : oItem = new 
FCKToolbarButton( 'InsertHorizontalRule', FCKLang.InsertLineLbl, 
FCKLang.InsertLine, null, false, true ) ; break ;

                case 'JustifyLeft'              : oItem = new FCKToolbarButton( 
'JustifyLeft'   , FCKLang.LeftJustify, null, null, false, true ) ; break ;
                case 'JustifyCenter'    : oItem = new FCKToolbarButton( 
'JustifyCenter' , FCKLang.CenterJustify, null, null, false, true ) ; break ;

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fcktoolbarset.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fcktoolbarset.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fcktoolbarset.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fcktoolbarset.js:1.1       
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fcktoolbarset.js   Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -12,9 +12,6 @@
  *     Defines the FCKToolbarSet object that is used to load and draw the
  *     toolbar.
  *
- * Version:  2.0 RC3
- * Modified: 2005-02-09 17:39:32
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -165,4 +162,3 @@
        }
 */
 }
-

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fcktools_gecko.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fcktools_gecko.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fcktools_gecko.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fcktools_gecko.js:1.1      
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fcktools_gecko.js  Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,9 +11,6 @@
  * File Name: fcktools_gecko.js
  *     Utility functions. (Gecko version).
  *
- * Version:  2.0 RC3
- * Modified: 2005-02-23 00:00:57
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -26,6 +23,7 @@
        e.type  = 'text/css' ;
        e.href  = cssFileUrl ;
        documentElement.getElementsByTagName("HEAD")[0].appendChild( e ) ;
+       return e ;
 }

 // Removes all attributes and values from the element.

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fcktools.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fcktools.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fcktools.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fcktools.js:1.1    Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fcktools.js        Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,9 +11,6 @@
  * File Name: fcktools.js
  *     Utility functions.
  *
- * Version:  2.0 RC3
- * Modified: 2005-02-19 15:27:16
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -68,10 +65,10 @@

        // Creates a Array in the form object that will hold all Attached 
function call
        // (in the case there are more than one editor in the same page)
-       if (! oForm.updateFCKEditor) oForm.updateFCKEditor = new Array() ;
+       if (! oForm.updateFCKeditor) oForm.updateFCKeditor = new Array() ;

        // Adds the function pointer to the array of functions to call when 
"submit" is called
-       oForm.updateFCKEditor[oForm.updateFCKEditor.length] = functionPointer ;
+       oForm.updateFCKeditor[oForm.updateFCKeditor.length] = functionPointer ;

        // Switches the original submit method with a new one that first call 
all functions
        // on the above array and the call the original submit
@@ -82,20 +79,22 @@
                oForm.originalSubmit = oForm.submit ;

                // Creates our replacement for the submit
-               oForm.submit = function()
+               oForm.submit = FCKTools_SubmitReplacer ;
+       }
+       // END --
+}
+
+function FCKTools_SubmitReplacer()
                {
-                       if (this.updateFCKEditor)
+       if (this.updateFCKeditor)
                        {
                                // Calls all functions in the functions array
-                               for (var i = 0 ; i < 
this.updateFCKEditor.length ; i++)
-                                       this.updateFCKEditor[i]() ;
+               for (var i = 0 ; i < this.updateFCKeditor.length ; i++)
+                       this.updateFCKeditor[i]() ;
                        }
                        // Calls the original "submit"
                        this.originalSubmit() ;
                }
-       }
-       // END --
-}

 //**
 // FCKTools.AddSelectOption: Adds a option to a SELECT element.
@@ -137,6 +136,9 @@

 FCKTools.HTMLEncode = function( text )
 {
+       if ( !text )
+               return '' ;
+
        text = text.replace( /&/g, "&amp;" ) ;
        text = text.replace( /"/g, "&quot;" ) ;
        text = text.replace( /</g, "&lt;" ) ;
@@ -206,3 +208,12 @@
        }
 }

+FCKTools.ConvertStyleSizeToHtml = function( size )
+{
+       return size.endsWith( '%' ) ? size : parseInt( size ) ;
+}
+
+FCKTools.ConvertHtmlSizeToStyle = function( size )
+{
+       return size.endsWith( '%' ) ? size : ( size + 'px' ) ;
+}
\ No newline at end of file

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fcktablehandler.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fcktablehandler.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fcktablehandler.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fcktablehandler.js:1.1     
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fcktablehandler.js Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,9 +11,6 @@
  * File Name: fcktablehandler.js
  *     Manage table operations.
  *
- * Version:  2.0 RC3
- * Modified: 2004-12-16 00:41:05
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -94,7 +91,9 @@

                // Create the new cell element to be added.
                oCell = FCK.EditorDocument.createElement('TD') ;
-               oCell.innerHTML = '&nbsp;' ;
+               if ( FCKBrowserInfo.IsGecko )
+                       oCell.innerHTML = '<br _moz_editor_bogus_node="TRUE">' ;
+//             oCell.innerHTML = '&nbsp;' ;

                // Get the cell that is placed in the new cell place.
                var oBaseCell = oRow.cells[iIndex] ;
@@ -154,7 +153,9 @@

        // Create the new cell element to be added.
        var oNewCell = FCK.EditorDocument.createElement("TD");
-       oNewCell.innerHTML = "&nbsp;" ;
+       if ( FCKBrowserInfo.IsGecko )
+               oNewCell.innerHTML = '<br _moz_editor_bogus_node="TRUE">' ;
+//     oNewCell.innerHTML = "&nbsp;" ;

        // If it is the last cell in the row.
        if ( oCell.cellIndex == oCell.parentNode.cells.lenght - 1 )
@@ -345,9 +346,12 @@
        // Get the array of row's cells.
        var aCells = tr.cells ;

-       // Replace the contents of each cell with "nbsp;".
+       // Replace the contents of each cell with "nothing".
        for ( var i = 0 ; i < aCells.length ; i++ )
        {
-               aCells[i].innerHTML = '&nbsp;' ;
+               if ( FCKBrowserInfo.IsGecko )
+                       aCells[i].innerHTML = '<br 
_moz_editor_bogus_node="TRUE">' ;
+               else
+                       aCells[i].innerHTML = '' ;
        }
 }

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckselection_ie.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fckselection_ie.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckselection_ie.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckselection_ie.js:1.1     
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckselection_ie.js Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,9 +11,6 @@
  * File Name: fckselection_ie.js
  *     Active selection functions. (IE specific implementation)
  *
- * Version:  2.0 RC3
- * Modified: 2005-03-02 08:24:15
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -45,12 +42,20 @@
                return 
FCK.EditorDocument.selection.createRange().parentElement() ;
 }

-FCKSelection.MoveToNode = function( node )
+FCKSelection.SelectNode = function( node )
 {
        FCK.Focus() ;
        FCK.EditorDocument.selection.empty() ;
        var oRange = FCK.EditorDocument.selection.createRange() ;
        oRange.moveToElementText( node ) ;
+       oRange.select() ;
+}
+
+FCKSelection.Collapse = function( toStart )
+{
+       FCK.Focus() ;
+       var oRange = FCK.EditorDocument.selection.createRange() ;
+       oRange.collapse( toStart == null || toStart === true ) ;
        oRange.select() ;
 }


====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckregexlib.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fckregexlib.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckregexlib.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckregexlib.js:1.1 Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckregexlib.js     Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,9 +11,6 @@
  * File Name: fckregexlib.js
  *     These are some Regular Expresions used by the editor.
  *
- * Version:  2.0 RC3
- * Modified: 2005-01-22 17:36:28
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -27,7 +24,7 @@
 FCKRegexLib.ObjectElements     = 
/^(?:IMG|TABLE|TR|TD|INPUT|SELECT|TEXTAREA|HR|OBJECT)$/i ;

 // Block Elements.
-FCKRegexLib.BlockElements      = 
/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI)$/i ;
+FCKRegexLib.BlockElements      = 
/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TD)$/i ;

 // Elements marked as empty "Empty" in the XHTML DTD.
 FCKRegexLib.EmptyElements      = 
/^(?:BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT)$/i ;
@@ -48,3 +45,16 @@
 FCKRegexLib.HeadCloser         = /<\/head\s*>/i ;

 FCKRegexLib.TableBorderClass = /\s*FCK__ShowTableBorders\s*/ ;
+
+// Validate element names.
+FCKRegexLib.ElementName = /^[A-Za-z_:][\w.-:]*$/ ;
+
+// Used in conjuction with the FCKConfig.ForceSimpleAmpersand configuration 
option.
+FCKRegexLib.ForceSimpleAmpersand = /___FCKAmp___/g ;
+
+// Get the closing parts of the tags with no closing tags, like <br/>... gets 
the "/>" part.
+FCKRegexLib.SpaceNoClose = /\/>/g ;
+
+FCKRegexLib.EmptyParagraph = /^<(p|div)>\s*<\/\1>$/i ;
+
+FCKRegexLib.TagBody = /></ ;
\ No newline at end of file

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckplugins.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fckplugins.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckplugins.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckplugins.js:1.1  Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckplugins.js      Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -10,9 +10,6 @@
  *
  * File Name: fckplugins.js
  *     Defines the FCKPlugins object that is responsible for loading the 
Plugins.
- *
- * Version:  2.0 RC3
- * Modified: 2005-01-19 17:36:21
  *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckscriptloader.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fckscriptloader.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckscriptloader.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckscriptloader.js:1.1     
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckscriptloader.js Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -12,9 +12,6 @@
  *     Defines the FCKScriptLoader object that is used to dynamically load
  *     scripts in the editor.
  *
- * Version:  2.0 RC3
- * Modified: 2004-05-31 23:07:50
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -54,13 +51,63 @@
                        oTempArray[ i - 1 ] = this.Queue[ i ] ;
                this.Queue = oTempArray ;

-//             window.status = ( 'Loading ' + sScriptPath + '...' ) ;
+               this.LoadFile( sScriptPath ) ;
+       }
+       else
+       {
+               this.IsLoading = false ;
+
+               // Call the "OnEmpty" event.
+               if ( this.OnEmpty )
+                       this.OnEmpty() ;
+       }
+}
+
+if ( FCKBrowserInfo.IsSafari )
+{
+       FCKScriptLoader.LoadFile = function( filePath )
+       {
+               if ( filePath.lastIndexOf( '.css' ) > 0 )
+               {
+                       this.CheckQueue() ;
+                       return ;
+               }
+
+               var oXmlRequest = new XMLHttpRequest() ;
+
+               // Load the script synchronously.
+               oXmlRequest.open( "GET", filePath, false ) ;
+               oXmlRequest.send( null ) ;
+
+               // Evaluate the script.
+               if ( oXmlRequest.status == 200 )
+               {
+                       try
+                       {
+                               eval( oXmlRequest.responseText ) ;
+                       }
+                       catch ( e )
+                       {
+                               alert( 'Error parsing ' + filePath + ': ' + 
e.message ) ;
+                       }
+               }
+               else
+                       alert( 'Error loading ' + filePath ) ;
+
+               this.CheckQueue() ;
+       }
+}
+else
+{
+       FCKScriptLoader.LoadFile = function( filePath )
+       {
+               //window.status = ( 'Loading ' + filePath + '...' ) ;

                // Dynamically load the file (it can be a CSS or a JS)
                var e ;

                // If is a CSS
-               if ( sScriptPath.lastIndexOf( '.css' ) > 0 )
+               if ( filePath.lastIndexOf( '.css' ) > 0 )
                {
                        e = document.createElement( 'LINK' ) ;
                        e.rel   = 'stylesheet' ;
@@ -76,40 +123,32 @@
                // Add the new object to the HEAD.
                document.getElementsByTagName("head")[0].appendChild( e ) ;

-               var oEvent = function()
-               {
-                       // Gecko doesn't have a "readyState" property
-                       if ( this.tagName == 'LINK' || !this.readyState || 
this.readyState == 'loaded' )
-                               // Load the next script available in the queue
-                               FCKScriptLoader.CheckQueue() ;
-               }
-
                // Start downloading it.
                if ( e.tagName == 'LINK' )
                {
                        // IE must wait for the file to be downloaded.
                        if ( FCKBrowserInfo.IsIE )
-                               e.onload = oEvent ;
+                               e.onload = FCKScriptLoader_OnLoad ;
                        // Gecko doens't fire any event when the CSS is loaded, 
so we
                        // can't wait for it.
                        else
                                FCKScriptLoader.CheckQueue() ;

-                       e.href = sScriptPath ;
+                       e.href = filePath ;
                }
                else
                {
                        // Gecko fires the "onload" event and IE fires 
"onreadystatechange"
-                       e.onload = e.onreadystatechange = oEvent ;
-                       e.src = sScriptPath ;
+                       e.onload = e.onreadystatechange = 
FCKScriptLoader_OnLoad ;
+                       e.src = filePath ;
                }
        }
-       else
-       {
-               this.IsLoading = false ;

-               // Call the "OnEmpty" event.
-               if ( this.OnEmpty )
-                       this.OnEmpty() ;
+       function FCKScriptLoader_OnLoad()
+       {
+               // Gecko doesn't have a "readyState" property
+               if ( this.tagName == 'LINK' || !this.readyState || 
this.readyState == 'loaded' )
+                       // Load the next script available in the queue
+                       FCKScriptLoader.CheckQueue() ;
        }
 }

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckselection.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fckselection.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckselection.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckselection.js:1.1        
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckselection.js    Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -10,9 +10,6 @@
  *
  * File Name: fckselection.js
  *     Active selection functions.
- *
- * Version:  2.0 RC3
- * Modified: 2004-11-22 11:03:02
  *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckselection_gecko.js
diff -u 
news_admin/js/fckeditor/editor/_source/internals/fckselection_gecko.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckselection_gecko.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckselection_gecko.js:1.1  
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckselection_gecko.js      
Thu Aug  4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,9 +11,6 @@
  * File Name: fckselection_gecko.js
  *     Active selection functions. (Gecko specific implementation)
  *
- * Version:  2.0 RC3
- * Modified: 2005-01-19 07:50:24
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -68,17 +65,26 @@
        }
 }

-FCKSelection.MoveToNode = function( node )
+FCKSelection.SelectNode = function( element )
 {
+       FCK.Focus() ;
+
+       var oRange = FCK.EditorDocument.createRange() ;
+       oRange.selectNode( element ) ;
+
        var oSel = FCK.EditorWindow.getSelection() ;
+       oSel.removeAllRanges() ;
+       oSel.addRange( oRange ) ;
+}

-       for ( i = oSel.rangeCount - 1 ; i >= 0 ; i-- )
+FCKSelection.Collapse = function( toStart )
        {
-               if ( i == 0 )
-                       oSel.getRangeAt(i).selectNodeContents( node ) ;
+       var oSel = FCK.EditorWindow.getSelection() ;
+
+       if ( toStart == null || toStart === true )
+               oSel.collapseToStart() ;
                else
-                       oSel.removeRange( oSel.getRangeAt(i) ) ;
-       }
+               oSel.collapseToEnd() ;
 }

 // The "nodeTagName" parameter must be Upper Case.
@@ -129,13 +135,3 @@

        return oSel ;
 }
-
-FCKSelection.SelectElement = function( element )
-{
-       var oRange = FCK.EditorDocument.createRange() ;
-       oRange.selectNode( element ) ;
-
-       var oSel = FCK.EditorWindow.getSelection() ;
-       oSel.removeAllRanges() ;
-       oSel.addRange( oRange ) ;
-}
\ No newline at end of file

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fcktools_ie.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fcktools_ie.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fcktools_ie.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fcktools_ie.js:1.1 Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fcktools_ie.js     Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -10,9 +10,6 @@
  *
  * File Name: fcktools_ie.js
  *     Utility functions. (IE version).
- *
- * Version:  2.0 RC3
- * Modified: 2005-02-23 00:43:29
  *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckurlparams.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fckurlparams.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckurlparams.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckurlparams.js:1.1        
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckurlparams.js    Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,9 +11,6 @@
  * File Name: fckurlparams.js
  *     Defines the FCKURLParams object that is used to get all parameters
  *     passed by the URL QueryString (after the "?").
- *
- * Version:  2.0 RC3
- * Modified: 2004-05-31 23:07:51
  *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckxhtml_gecko.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fckxhtml_gecko.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckxhtml_gecko.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckxhtml_gecko.js:1.1      
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckxhtml_gecko.js  Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -12,9 +12,6 @@
  *     Defines the FCKXHtml object, responsible for the XHTML operations.
  *     Gecko specific.
  *
- * Version:  2.0 RC3
- * Modified: 2005-02-24 00:20:55
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -24,10 +21,15 @@
        // Create the XMLSerializer.
        var oSerializer = new XMLSerializer() ;

+       if ( FCKConfig.ProcessHTMLEntities )
+       {
        // Return the serialized XML as a string.
        // Due to a BUG on Gecko, the special chars sequence "#?-:" must be 
replaced with "&"
        // for the XHTML entities.
        return oSerializer.serializeToString( this.MainNode ).replace( 
FCKXHtmlEntities.GeckoEntitiesMarkerRegex, '&' ) ;
+}
+       else
+               return oSerializer.serializeToString( this.MainNode ) ;
 }

 // There is a BUG on Gecko... createEntityReference returns null.

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckxhtml.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fckxhtml.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckxhtml.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckxhtml.js:1.1    Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckxhtml.js        Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,9 +11,6 @@
  * File Name: fckxhtml.js
  *     Defines the FCKXHtml object, responsible for the XHTML operations.
  *
- * Version:  2.0 RC3
- * Modified: 2005-03-02 11:17:23
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -47,8 +44,15 @@
        // Strip the "XHTML" root node.
        sXHTML = sXHTML.substr( 7, sXHTML.length - 15 ).trim() ;

+       // Remove the trailing <br> added by Gecko.
+       if ( FCKBrowserInfo.IsGecko )
+               sXHTML = sXHTML.replace( /<br\/>$/, '' ) ;
+
+       // Add a space in the tags with no closing tags, like <br/> -> <br />
+       sXHTML = sXHTML.replace( FCKRegexLib.SpaceNoClose, ' />');
+
        if ( FCKConfig.ForceSimpleAmpersand )
-               sXHTML = sXHTML.replace( /___FCKAmp___/g, '&' ) ;
+               sXHTML = sXHTML.replace( FCKRegexLib.ForceSimpleAmpersand, '&' 
) ;

        if ( format )
                sXHTML = FCKCodeFormatter.Format( sXHTML ) ;
@@ -83,15 +87,21 @@

 FCKXHtml._AppendChildNodes = function( xmlNode, htmlNode, isBlockElement )
 {
+       var iCount = 0 ;
+
        if ( htmlNode.hasChildNodes() )
        {
                // Get all children nodes.
                var oChildren = htmlNode.childNodes ;

                for ( var i = 0 ; i < oChildren.length ; i++ )
-                       this._AppendNode( xmlNode, oChildren[i] ) ;
+               {
+                       if ( this._AppendNode( xmlNode, oChildren[i] ) )
+                               iCount++ ;
        }
-       else
+       }
+
+       if ( iCount == 0 )
        {
                if ( isBlockElement && FCKConfig.FillEmptyBlocks )
                {
@@ -112,27 +122,39 @@
        {
                // Element Node.
                case 1 :
+                       if ( htmlNode.getAttribute('_fckfakelement') )
+                               return FCKXHtml._AppendNode( xmlNode, 
FCK.GetRealElement( htmlNode ) ) ;
+
                        // Mozilla insert custom nodes in the DOM.
                        if ( FCKBrowserInfo.IsGecko && 
htmlNode.hasAttribute('_moz_editor_bogus_node') )
-                               return ;
+                               return false ;
+
+                       if ( htmlNode.getAttribute('_fckdelete') )
+                               return false ;

                        // Create the Element.
-                       var sNodeName = htmlNode.nodeName.toLowerCase() ;
+                       var sNodeName = htmlNode.nodeName ;
+
+                       // Check if the node name is valid, otherwise ignore 
this tag.
+                       if ( !FCKRegexLib.ElementName.test( sNodeName ) )
+                               return false ;
+
+                       sNodeName = sNodeName.toLowerCase() ;

                        if ( FCKBrowserInfo.IsGecko && sNodeName == 'br' && 
htmlNode.hasAttribute('type') && htmlNode.getAttribute( 'type', 2 ) == '_moz' )
-                               return ;
+                               return false ;

                        // The already processed nodes must be marked to avoid 
then to be duplicated (bad formatted HTML).
                        // So here, the "mark" is checked... if the element is 
Ok, then mark it.
                        if ( htmlNode._fckxhtmljob == FCKXHtml.CurrentJobNum )
-                               return ;
+                               return false ;
                        else
                                htmlNode._fckxhtmljob = FCKXHtml.CurrentJobNum ;

                        // If the nodeName starts with a slash, it is a orphan 
closing tag.
                        // On some strange cases, the nodeName is empty, even 
if the node exists.
-                       if ( sNodeName.length == 0 || sNodeName.substr(0,1) == 
'/' )
-                               break ;
+//                     if ( sNodeName.length == 0 || sNodeName.substr(0,1) == 
'/' )
+//                             break ;

                        var oNode = this.XML.createElement( sNodeName ) ;

@@ -156,10 +178,36 @@

                // Text Node.
                case 3 :
+                       this._AppendTextNode( xmlNode, 
htmlNode.nodeValue.replaceNewLineChars(' ') ) ;
+                       break ;
+
+               // Comment
+               case 8 :
+                       xmlNode.appendChild( this.XML.createComment( 
htmlNode.nodeValue ) ) ;
+                       break ;
+
+               // Unknown Node type.
+               default :
+                       xmlNode.appendChild( this.XML.createComment( "Element 
not supported - Type: " + htmlNode.nodeType + " Name: " + htmlNode.nodeName ) ) 
;
+                       break ;
+       }
+       return true ;
+}
+
+// Append an item to the SpecialBlocks array and returns the tag to be used.
+FCKXHtml._AppendSpecialItem = function( item )
+{
+       return '___FCKsi___' + FCKXHtml.SpecialBlocks.addItem( item ) ;
+}
+
+if ( FCKConfig.ProcessHTMLEntities )
+{
+       FCKXHtml._AppendTextNode = function( targetNode, textValue )
+       {
                        // We can't just replace the special chars with 
entities and create a
                        // text node with it. We must split the text isolating 
the special chars
                        // and add each piece a time.
-                       var asPieces = htmlNode.nodeValue.replaceNewLineChars(' 
').match( FCKXHtmlEntities.EntitiesRegex ) ;
+               var asPieces = textValue.match( FCKXHtmlEntities.EntitiesRegex 
) ;

                        if ( asPieces )
                        {
@@ -170,35 +218,21 @@
                                                var sEntity = 
FCKXHtmlEntities.Entities[ asPieces[i] ] ;
                                                if ( sEntity != null )
                                                {
-                                                       this._AppendEntity( 
xmlNode, sEntity ) ;
+                                               this._AppendEntity( targetNode, 
sEntity ) ;
                                                        continue ;
                                                }
                                        }
-                                       xmlNode.appendChild( 
this.XML.createTextNode( asPieces[i] ) ) ;
+                               targetNode.appendChild( 
this.XML.createTextNode( asPieces[i] ) ) ;
                                }
                        }
-
-                       // This is the original code. It doesn't care about the 
entities.
-                       //xmlNode.appendChild( this.XML.createTextNode( 
htmlNode.nodeValue ) ) ;
-
-                       break ;
-
-               // Comment
-               case 8 :
-                       xmlNode.appendChild( this.XML.createComment( 
htmlNode.nodeValue ) ) ;
-                       break ;
-
-               // Unknown Node type.
-               default :
-                       xmlNode.appendChild( this.XML.createComment( "Element 
not supported - Type: " + htmlNode.nodeType + " Name: " + htmlNode.nodeName ) ) 
;
-                       break ;
        }
 }
-
-// Append an item to the SpecialBlocks array and returns the tag to be used.
-FCKXHtml._AppendSpecialItem = function( item )
+else
 {
-       return '___FCKsi___' + FCKXHtml.SpecialBlocks.addItem( item ) ;
+       FCKXHtml._AppendTextNode = function( targetNode, textValue )
+       {
+               targetNode.appendChild( this.XML.createTextNode( textValue ) ) ;
+       }
 }

 // An object that hold tag specific operations.

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckxhtml_ie.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fckxhtml_ie.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckxhtml_ie.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckxhtml_ie.js:1.1 Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckxhtml_ie.js     Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -12,9 +12,6 @@
  *     Defines the FCKXHtml object, responsible for the XHTML operations.
  *     IE specific.
  *
- * Version:  2.0 RC3
- * Modified: 2005-02-24 00:20:19
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -40,6 +37,7 @@
                if ( oAttribute.specified )
                {
                        var sAttName = oAttribute.nodeName.toLowerCase() ;
+                       var sAttValue ;

                        // The "_fckxhtmljob" attribute is used to mark the 
already processed elements.
                        if ( sAttName == '_fckxhtmljob' )
@@ -47,20 +45,20 @@
                        // The following must be done because of a bug on IE 
regarding the style
                        // attribute. It returns "null" for the nodeValue.
                        else if ( sAttName == 'style' )
-                               var sAttValue = htmlNode.style.cssText ;
+                               sAttValue = htmlNode.style.cssText ;
                        // There are two cases when the oAttribute.nodeValue 
must be used:
                        //              - for the "class" attribute
                        //              - for events attributes (on IE only).
                        else if ( sAttName == 'class' || sAttName.indexOf('on') 
== 0 )
-                               var sAttValue = oAttribute.nodeValue ;
+                               sAttValue = oAttribute.nodeValue ;
                        else if ( nodeName == 'body' && sAttName == 
'contenteditable' )
                                continue ;
                        // XHTML doens't support attribute minimization like 
"CHECKED". It must be trasformed to cheched="checked".
                        else if ( oAttribute.nodeValue === true )
                                sAttValue = sAttName ;
                        // We must use getAttribute to get it exactly as it is 
defined.
-                       else
-                               var sAttValue = htmlNode.getAttribute( 
sAttName, 2 ) ;
+                       else if ( ! (sAttValue = htmlNode.getAttribute( 
sAttName, 2 ) ) )
+                               sAttValue = oAttribute.nodeValue ;

                        if ( FCKConfig.ForceSimpleAmpersand && 
sAttValue.replace )
                                sAttValue = sAttValue.replace( /&/g, 
'___FCKAmp___' ) ;
@@ -176,6 +174,20 @@
 {
        if ( htmlNode.acceptCharset.length > 0 && htmlNode.acceptCharset != 
'UNKNOWN' )
                FCKXHtml._AppendAttribute( node, 'accept-charset', 
htmlNode.acceptCharset ) ;
+
+       if ( htmlNode.name )
+               FCKXHtml._AppendAttribute( node, 'name', htmlNode.name ) ;
+
+       FCKXHtml._AppendChildNodes( node, htmlNode ) ;
+
+       return node ;
+}
+
+// IE doens't hold the name attribute as an attribute for the <TEXTAREA> and 
<SELECT> tags.
+FCKXHtml.TagProcessors['textarea'] = FCKXHtml.TagProcessors['select'] = 
function( node, htmlNode )
+{
+       if ( htmlNode.name )
+               FCKXHtml._AppendAttribute( node, 'name', htmlNode.name ) ;

        FCKXHtml._AppendChildNodes( node, htmlNode ) ;


====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckxhtmlentities.js
diff -u 
news_admin/js/fckeditor/editor/_source/internals/fckxhtmlentities.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckxhtmlentities.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckxhtmlentities.js:1.1    
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckxhtmlentities.js        
Thu Aug  4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,13 +11,12 @@
  * File Name: fckxhtmlentities.js
  *     This file define the HTML entities handled by the editor.
  *
- * Version:  2.0 RC3
- * Modified: 2004-11-22 16:23:11
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */

+if ( FCKConfig.ProcessHTMLEntities )
+{
 FCKXHtmlEntities = new Object();

 FCKXHtmlEntities.Entities = {
@@ -54,6 +53,119 @@
        '½':'frac12',
        '¾':'frac34',
        '¿':'iquest',
+               '×':'times',
+               '÷':'divide',
+
+               // Symbols and Greek Letters
+
+               'ƒ':'fnof',
+               '•':'bull',
+               '…':'hellip',
+               '′':'prime',
+               '″':'Prime',
+               '‾':'oline',
+               '⁄':'frasl',
+               '℘':'weierp',
+               'ℑ':'image',
+               'ℜ':'real',
+               '™':'trade',
+               'ℵ':'alefsym',
+               '←':'larr',
+               '↑':'uarr',
+               '→':'rarr',
+               '↓':'darr',
+               '↔':'harr',
+               '↵':'crarr',
+               '⇐':'lArr',
+               '⇑':'uArr',
+               '⇒':'rArr',
+               '⇓':'dArr',
+               '⇔':'hArr',
+               '∀':'forall',
+               '∂':'part',
+               '∃':'exist',
+               '∅':'empty',
+               '∇':'nabla',
+               '∈':'isin',
+               '∉':'notin',
+               '∋':'ni',
+               '∏':'prod',
+               '∑':'sum',
+               '−':'minus',
+               '∗':'lowast',
+               '√':'radic',
+               '∝':'prop',
+               '∞':'infin',
+               '∠':'ang',
+               '∧':'and',
+               '∨':'or',
+               '∩':'cap',
+               '∪':'cup',
+               '∫':'int',
+               '∴':'there4',
+               '∼':'sim',
+               '≅':'cong',
+               '≈':'asymp',
+               '≠':'ne',
+               '≡':'equiv',
+               '≤':'le',
+               '≥':'ge',
+               '⊂':'sub',
+               '⊃':'sup',
+               '⊄':'nsub',
+               '⊆':'sube',
+               '⊇':'supe',
+               '⊕':'oplus',
+               '⊗':'otimes',
+               '⊥':'perp',
+               '⋅':'sdot',
+               '◊':'loz',
+               '♠':'spades',
+               '♣':'clubs',
+               '♥':'hearts',
+               '♦':'diams',
+
+               // Other Special Characters
+
+               '"':'quot',
+       //      '&':'amp',              // This entity is automatically handled 
by the XHTML parser.
+       //      '<':'lt',               // This entity is automatically handled 
by the XHTML parser.
+       //      '>':'gt',               // This entity is automatically handled 
by the XHTML parser.
+               'ˆ':'circ',
+               '˜':'tilde',
+               ' ':'ensp',
+               ' ':'emsp',
+               ' ':'thinsp',
+               '‌':'zwnj',
+               '‍':'zwj',
+               '‎':'lrm',
+               '‏':'rlm',
+               '–':'ndash',
+               '—':'mdash',
+               '‘':'lsquo',
+               '’':'rsquo',
+               '‚':'sbquo',
+               '“':'ldquo',
+               '”':'rdquo',
+               '„':'bdquo',
+               '†':'dagger',
+               '‡':'Dagger',
+               '‰':'permil',
+               '‹':'lsaquo',
+               '›':'rsaquo',
+               '€':'euro'
+       } ;
+
+       FCKXHtmlEntities.Chars = '' ;
+
+       // Process Base Entities.
+       for ( var e in FCKXHtmlEntities.Entities )
+               FCKXHtmlEntities.Chars += e ;
+
+       // Include Latin Letters Entities.
+       if ( FCKConfig.IncludeLatinEntities )
+       {
+               var oEntities = {
        'À':'Agrave',
        'Á':'Aacute',
        'Â':'Acirc',
@@ -77,7 +189,6 @@
        'Ô':'Ocirc',
        'Õ':'Otilde',
        'Ö':'Ouml',
-       '×':'times',
        'Ø':'Oslash',
        'Ù':'Ugrave',
        'Ú':'Uacute',
@@ -109,7 +220,6 @@
        'ô':'ocirc',
        'õ':'otilde',
        'ö':'ouml',
-       '÷':'divide',
        'ø':'oslash',
        'ù':'ugrave',
        'ú':'uacute',
@@ -118,10 +228,26 @@
        'ý':'yacute',
        'þ':'thorn',
        'ÿ':'yuml',
-
-       // Symbols and Greek Letters
-
-       'ƒ':'fnof',
+                       'Œ':'OElig',
+                       'œ':'oelig',
+                       'Å ':'Scaron',
+                       'Å¡':'scaron',
+                       'Ÿ':'Yuml'
+               } ;
+
+               for ( var e in oEntities )
+               {
+                       FCKXHtmlEntities.Entities[ e ] = oEntities[ e ] ;
+                       FCKXHtmlEntities.Chars += e ;
+               }
+
+               oEntities = null ;
+       }
+
+       // Include Greek Letters Entities.
+       if ( FCKConfig.IncludeGreekEntities )
+       {
+               var oEntities = {
        'Α':'Alpha',
        'Β':'Beta',
        'Γ':'Gamma',
@@ -170,126 +296,21 @@
        'φ':'phi',
        'χ':'chi',
        'ψ':'psi',
-       'ω':'omega',
-       'ϑ':'thetasym',
-       'ϒ':'upsih',
-       'ϖ':'piv',
-       '•':'bull',
-       '…':'hellip',
-       '′':'prime',
-       '″':'Prime',
-       '‾':'oline',
-       '⁄':'frasl',
-       '℘':'weierp',
-       'ℑ':'image',
-       'ℜ':'real',
-       '™':'trade',
-       'ℵ':'alefsym',
-       '←':'larr',
-       '↑':'uarr',
-       '→':'rarr',
-       '↓':'darr',
-       '↔':'harr',
-       '↵':'crarr',
-       '⇐':'lArr',
-       '⇑':'uArr',
-       '⇒':'rArr',
-       '⇓':'dArr',
-       '⇔':'hArr',
-       '∀':'forall',
-       '∂':'part',
-       '∃':'exist',
-       '∅':'empty',
-       '∇':'nabla',
-       '∈':'isin',
-       '∉':'notin',
-       '∋':'ni',
-       '∏':'prod',
-       '∑':'sum',
-       '−':'minus',
-       '∗':'lowast',
-       '√':'radic',
-       '∝':'prop',
-       '∞':'infin',
-       '∠':'ang',
-       '∧':'and',
-       '∨':'or',
-       '∩':'cap',
-       '∪':'cup',
-       '∫':'int',
-       '∴':'there4',
-       '∼':'sim',
-       '≅':'cong',
-       '≈':'asymp',
-       '≠':'ne',
-       '≡':'equiv',
-       '≤':'le',
-       '≥':'ge',
-       '⊂':'sub',
-       '⊃':'sup',
-       '⊄':'nsub',
-       '⊆':'sube',
-       '⊇':'supe',
-       '⊕':'oplus',
-       '⊗':'otimes',
-       '⊥':'perp',
-       '⋅':'sdot',
-       '⌈':'lceil',
-       '⌉':'rceil',
-       '⌊':'lfloor',
-       '⌋':'rfloor',
-       '〈':'lang',
-       '〉':'rang',
-       '◊':'loz',
-       '♠':'spades',
-       '♣':'clubs',
-       '♥':'hearts',
-       '♦':'diams',
-
-       // Other Special Characters
-
-       '"':'quot',
-//     '&':'amp',              // This entity is automatically handled by the 
XHTML parser.
-//     '<':'lt',               // This entity is automatically handled by the 
XHTML parser.
-//     '>':'gt',               // This entity is automatically handled by the 
XHTML parser.
-       'Œ':'OElig',
-       'œ':'oelig',
-       'Å ':'Scaron',
-       'Å¡':'scaron',
-       'Ÿ':'Yuml',
-       'ˆ':'circ',
-       '˜':'tilde',
-       ' ':'ensp',
-       ' ':'emsp',
-       ' ':'thinsp',
-       '‌':'zwnj',
-       '‍':'zwj',
-       '‎':'lrm',
-       '‏':'rlm',
-       '–':'ndash',
-       '—':'mdash',
-       '‘':'lsquo',
-       '’':'rsquo',
-       '‚':'sbquo',
-       '“':'ldquo',
-       '”':'rdquo',
-       '„':'bdquo',
-       '†':'dagger',
-       '‡':'Dagger',
-       '‰':'permil',
-       '‹':'lsaquo',
-       '›':'rsaquo',
-       '€':'euro'
-
+                       'ω':'omega'
 } ;

-FCKXHtmlEntities.Chars = '' ;
-
-for ( var e in FCKXHtmlEntities.Entities )
+               for ( var e in oEntities )
+               {
+                       FCKXHtmlEntities.Entities[ e ] = oEntities[ e ] ;
        FCKXHtmlEntities.Chars += e ;
+               }

-FCKXHtmlEntities.EntitiesRegex = new RegExp('','') ;
+               oEntities = null ;
+       }

+       // Create and Compile the Regex used to separate the entities from the 
text.
+       FCKXHtmlEntities.EntitiesRegex = new RegExp('','') ;
 FCKXHtmlEntities.EntitiesRegex.compile( '[' + FCKXHtmlEntities.Chars + ']|[^' 
+ FCKXHtmlEntities.Chars + ']+', 'g' ) ;

-FCKXHtmlEntities.GeckoEntitiesMarkerRegex = /#\?-\:/g ;
\ No newline at end of file
+FCKXHtmlEntities.GeckoEntitiesMarkerRegex = /#\?-\:/g ;
+}
\ No newline at end of file

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fcklanguagemanager.js
diff -u 
news_admin/js/fckeditor/editor/_source/internals/fcklanguagemanager.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fcklanguagemanager.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fcklanguagemanager.js:1.1  
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fcklanguagemanager.js      
Thu Aug  4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -12,9 +12,6 @@
  *     Defines the FCKLanguageManager object that is used for language
  *     operations.
  *
- * Version:  2.0 RC3
- * Modified: 2005-03-02 10:25:49
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -36,8 +33,6 @@
                        return FCKConfig.DefaultLanguage ;
                }

-               FCKDebug.Output( 'Navigator Language = ' + sUserLang ) ;
-
                // Some language codes are set in 5 characters,
                // like "pt-br" for Brasilian Portuguese.
                if ( sUserLang.length >= 5 )
@@ -93,7 +88,6 @@
 FCKLanguageManager.ActiveLanguage.Name = 
FCKLanguageManager.AvailableLanguages[ FCKLanguageManager.ActiveLanguage.Code ] 
;

 FCK.Language = FCKLanguageManager ;
-

 // Load the language file and start the editor.
 LoadLanguageFile() ;

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckdialog_ie.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fckdialog_ie.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckdialog_ie.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckdialog_ie.js:1.1        
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckdialog_ie.js    Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,9 +11,6 @@
  * File Name: fckdialog_ie.js
  *     Dialog windows operations. (IE specific implementations)
  *
- * Version:  2.0 RC3
- * Modified: 2004-12-19 23:28:42
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -25,4 +22,3 @@

        parentWindow.showModalDialog( pageUrl, dialogInfo, "dialogWidth:" + 
dialogWidth + "px;dialogHeight:" + dialogHeight + 
"px;help:no;scroll:no;status:no") ;
 }
-

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fck_1_gecko.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fck_1_gecko.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fck_1_gecko.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fck_1_gecko.js:1.1 Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fck_1_gecko.js     Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -13,9 +13,6 @@
  *     object that represents an editor instance.
  *     (Gecko specific implementations)
  *
- * Version:  2.0 RC3
- * Modified: 2005-02-23 18:27:28
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -24,6 +21,13 @@

 FCK.InitializeBehaviors = function()
 {
+       // Enable table borders visibility.
+       if ( FCKConfig.ShowBorders )
+       {
+               var oStyle = FCKTools.AppendStyleSheet( this.EditorDocument, 
FCKConfig.FullBasePath + 'css/fck_showtableborders_gecko.css' ) ;
+               oStyle.setAttribute( '_fcktemp', 'true' ) ;
+       }
+
        // Disable Right-Click
        var oOnContextMenu = function( e )
        {
@@ -32,6 +36,7 @@
        }
        this.EditorDocument.addEventListener( 'contextmenu', oOnContextMenu, 
true ) ;

+       // Handle pasting operations.
        var oOnKeyDown = function( e )
        {
                if ( e.ctrlKey && !e.shiftKey && !e.altKey )
@@ -39,17 +44,15 @@
                        // Char 86/118 = V/v
                        if ( e.which == 86 || e.which == 118 )
                        {
-                               if ( FCK.Status == FCK_STATUS_COMPLETE )
+                               if ( FCK.Status != FCK_STATUS_COMPLETE || 
!FCK.Events.FireEvent( "OnPaste" ) )
                                {
-                                       if ( !FCK.Events.FireEvent( "OnPaste" ) 
)
                                                e.preventDefault() ;
+                                       e.stopPropagation() ;
                                }
-                               else
-                                       e.preventDefault() ;
                        }
                }
        }
-       this.EditorDocument.addEventListener( 'keydown', oOnKeyDown, true ) ;
+       this.EditorDocument.addEventListener( 'keypress', oOnKeyDown, true ) ;

        this.ExecOnSelectionChange = function()
        {
@@ -75,7 +78,6 @@
                FCK.OnDoubleClick( e.target ) ;
                e.stopPropagation() ;
        }
-
        this.EditorDocument.addEventListener( 'dblclick', 
this._DblClickListener, true ) ;

        this._OnLoad = function()
@@ -86,12 +88,26 @@
                        this._FCK_HTML = null ;
                }
        }
-
        this.EditorWindow.addEventListener( 'load', this._OnLoad, true ) ;
+
+//     var oEditorWindow_OnUnload = function()
+//     {
+//             FCK.EditorWindow.location = 'fckblank.html' ;
+//     }
+//     this.EditorWindow.addEventListener( 'unload', oEditorWindow_OnUnload, 
true ) ;
+
+//     var oEditorDocument_OnFocus = function()
+//     {
+//             FCK.MakeEditable() ;
+//     }
+//     this.EditorDocument.addEventListener( 'focus', oEditorDocument_OnFocus, 
true ) ;
 }

 FCK.MakeEditable = function()
 {
+       if ( this.EditorWindow.document.designMode == 'on' )
+               return ;
+
        this.EditorWindow.document.designMode = 'on' ;

        // Tell Gecko to use or not the <SPAN> tag for the bold, italic and 
underline.
@@ -102,6 +118,7 @@
 {
        try
        {
+//             window.focus() ;
                FCK.EditorWindow.focus() ;
        }
        catch(e) {}
@@ -117,8 +134,6 @@
                // then insert the body contents.
                // (Oh yes... it took me a lot of time to find out this 
workaround)

-               this.EditorDocument.open() ;
-
                if ( FCKConfig.FullPage && FCKRegexLib.BodyContents.test( html 
) )
                {
                        // Add the <BASE> tag to the input HTML.
@@ -133,11 +148,34 @@
                        var sContents   = oMatch[2] ;   // This is the BODY tag 
contents.
                        var sCloser             = oMatch[3] ;   // This is the 
HTML from the </body> tag, inclusive.

-                       this.EditorDocument.write( sOpener + '&nbsp;' + sCloser 
) ;
+                       var sHtml = sOpener + '&nbsp;' + sCloser ;
+
+                       if ( !this._Initialized )
+                       {
+                               FCK.EditorDocument.designMode = "on" ;
+
+                               // Tell Gecko to use or not the <SPAN> tag for 
the bold, italic and underline.
+                               FCK.EditorDocument.execCommand( "useCSS", 
false, !FCKConfig.GeckoUseSPAN ) ;
+
+                               this._Initialized = true ;
+                       }
+
+                       this.EditorDocument.open() ;
+                       this.EditorDocument.write( sHtml ) ;
+                       this.EditorDocument.close() ;
+
+                       if ( this.EditorDocument.body )
+                               this.EditorDocument.body.innerHTML = sContents ;
+                       else
+                               this.EditorWindow._FCK_HTML = sContents ;
+
+                       this.InitializeBehaviors() ;
                }
                else
                {
-                       var sHtml =
+                       /* TODO: Wait stable and remove it.
+                       sHtml =
+                               '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>' +
                                '<html dir="' + FCKConfig.ContentLangDirection 
+ '">' +
                                '<head><title></title>' +
                                '<link href="' + FCKConfig.EditorAreaCSS + '" 
rel="stylesheet" type="text/css" />' +
@@ -146,31 +184,45 @@
                        sHtml += FCK.TempBaseTag ;

                        sHtml += '</head><body>&nbsp;</body></html>' ;
+                       */

-                       this.EditorDocument.write( sHtml ) ;
+                       if ( !this._Initialized )
+                       {
+                               this.EditorDocument.dir = 
FCKConfig.ContentLangDirection ;
+
+                               var sHtml =
+                                       '<title></title>' +
+                                       '<link href="' + 
FCKConfig.EditorAreaCSS + '" rel="stylesheet" type="text/css" />' +
+                                       '<link href="' + FCKConfig.BasePath + 
'css/fck_internal.css' + '" rel="stylesheet" type="text/css" _fcktemp="true" 
/>' ;
+
+                               sHtml += FCK.TempBaseTag ;
+
+                               
this.EditorDocument.getElementsByTagName("HEAD")[0].innerHTML = sHtml ;
+
+                               this.InitializeBehaviors() ;
+
+                               this._Initialized = true ;
                }

-               this.EditorDocument.close() ;
+                       // On Gecko we must disable editing before setting the 
BODY innerHTML.
+//                     FCK.EditorDocument.designMode = 'off' ;

-               if ( this.EditorDocument.body )
-                       this.EditorDocument.body.innerHTML = sContents ?  
sContents : html ;
+                       if ( html.length == 0 )
+                               FCK.EditorDocument.body.innerHTML = '<br 
_moz_editor_bogus_node="TRUE">' ;
+                       else if ( FCKRegexLib.EmptyParagraph.test( html ) )
+                               FCK.EditorDocument.body.innerHTML = 
html.replace( FCKRegexLib.TagBody, '><br _moz_editor_bogus_node="TRUE"><' ) ;
                else
-                       this.EditorWindow._FCK_HTML = sContents ?  sContents : 
html ;
+                               FCK.EditorDocument.body.innerHTML = html ;

-               // TODO: Wait stable version and remove the following commented 
lines.
-               // We must load the CSS style after setting the innerHTML to 
avoid an error.
-               // The body is not available is the style link tag is written 
inside the <html> tag.
-//             if ( !FCKConfig.FullPage )
-//             {
-//                     FCKTools.AppendStyleSheet( this.EditorDocument, 
FCKConfig.EditorAreaCSS ) ;
-//                     FCKTools.AppendStyleSheet( this.EditorDocument, 
FCKConfig.BasePath + 'css/fck_internal.css' ) ;
-//             }
+                       // On Gecko we must set the desingMode on again after 
setting the BODY innerHTML.
+//                     FCK.EditorDocument.designMode = 'on' ;

-               this.InitializeBehaviors() ;
+                       // Tell Gecko to use or not the <SPAN> tag for the 
bold, italic and underline.
+                       FCK.EditorDocument.execCommand( 'useCSS', false, 
!FCKConfig.GeckoUseSPAN ) ;
+               }

-               this.Events.FireEvent( 'OnAfterSetHTML' ) ;
+               FCK.OnAfterSetHTML() ;
        }
        else
                document.getElementById('eSourceField').value = html ;
 }
-

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fck_1.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fck_1.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fck_1.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fck_1.js:1.1       Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fck_1.js   Thu Aug  4 
03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -12,9 +12,6 @@
  *     This is the first part of the "FCK" object creation. This is the main
  *     object that represents an editor instance.
  *
- * Version:  2.0 RC3
- * Modified: 2005-02-27 21:46:32
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -43,9 +40,16 @@
        // Attach the editor to the form onsubmit event
        FCKTools.AttachToLinkedFieldFormSubmit( this.UpdateLinkedField ) ;

+       FCKUndo.SaveUndoStep() ;
+
        this.SetStatus( FCK_STATUS_ACTIVE ) ;
 }

+function Window_OnFocus()
+{
+       FCK.Focus() ;
+}
+
 FCK.SetStatus = function( newStatus )
 {
        this.Status = newStatus ;
@@ -53,7 +57,7 @@
        if ( newStatus == FCK_STATUS_ACTIVE )
        {
                // Force the focus in the window to go to the editor.
-               window.onfocus = window.document.body.onfocus = FCK.Focus ;
+               window.onfocus = window.document.body.onfocus = Window_OnFocus ;

                // Force the focus in the editor.
                if ( FCKConfig.StartupFocus )
@@ -85,7 +89,6 @@

                FCKScriptLoader.AddScript( '_source/internals/fckcommands.js' ) 
;
                FCKScriptLoader.AddScript( 
'_source/classes/fcktoolbarbutton.js' ) ;
-               FCKScriptLoader.AddScript( '_source/classes/fcktoolbarcombo.js' 
) ;
                FCKScriptLoader.AddScript( '_source/classes/fckspecialcombo.js' 
) ;
                FCKScriptLoader.AddScript( 
'_source/classes/fcktoolbarspecialcombo.js' ) ;
                FCKScriptLoader.AddScript( 
'_source/classes/fcktoolbarfontscombo.js' ) ;
@@ -120,8 +123,6 @@
        }

        this.Events.FireEvent( 'OnStatusChange', newStatus ) ;
-       if ( this.OnStatusChange ) this.OnStatusChange( newStatus ) ;
-
 }

 FCK.GetHTML = function( format )
@@ -162,7 +163,12 @@
        if ( FCKConfig.FullPage )
                var sXHTML = FCKXHtml.GetXHTML( 
this.EditorDocument.getElementsByTagName( 'html' )[0], true, format ) ;
        else
+       {
+               if ( FCKConfig.IgnoreEmptyParagraphValue && 
this.EditorDocument.body.innerHTML == '<P>&nbsp;</P>' )
+                       var sXHTML = '' ;
+               else
                var sXHTML = FCKXHtml.GetXHTML( this.EditorDocument.body, 
false, format ) ;
+       }

        if ( bSource )
                this.SwitchEditMode() ;
@@ -202,10 +208,8 @@
 {
        var oHandler = FCK.RegisteredDoubleClickHandlers[ element.tagName ] ;
        if ( oHandler )
-       {
                oHandler( element ) ;
        }
-}

 // Register objects that can handle double click operations.
 FCK.RegisterDoubleClickHandler = function( handlerFunction, tag )
@@ -213,3 +217,108 @@
        FCK.RegisteredDoubleClickHandlers[ tag.toUpperCase() ] = 
handlerFunction ;
 }

+FCK.OnAfterSetHTML = function()
+{
+       var oProcessor, i = 0 ;
+       while( oProcessor = FCKDocumentProcessors[i++] )
+               oProcessor.ProcessDocument( FCK.EditorDocument ) ;
+
+       this.Events.FireEvent( 'OnAfterSetHTML' ) ;
+}
+
+// Advanced document processors.
+
+var FCKDocumentProcessors = new Array() ;
+
+var FCKDocumentProcessors_CreateFakeImage = function( fakeClass, realElement )
+{
+       var oImg = FCK.EditorDocument.createElement( 'IMG' ) ;
+       oImg.className = fakeClass ;
+       oImg.src = FCKConfig.FullBasePath + 'images/spacer.gif' ;
+       oImg.setAttribute( '_fckfakelement', 'true', 0 ) ;
+       oImg.setAttribute( '_fckrealelement', FCKTempBin.AddElement( 
realElement ), 0 ) ;
+       return oImg ;
+}
+
+// Link Anchors
+var FCKAnchorsProcessor = new Object() ;
+FCKAnchorsProcessor.ProcessDocument = function( document )
+{
+       var aLinks = document.getElementsByTagName( 'A' ) ;
+
+       var oLink ;
+       var i = aLinks.length - 1 ;
+       while ( i >= 0 && ( oLink = aLinks[i--] ) )
+       {
+               // If it is anchor.
+               if ( oLink.name.length > 0 && ( !oLink.getAttribute('href') || 
oLink.getAttribute('href').length == 0 ) )
+               {
+                       var oImg = FCKDocumentProcessors_CreateFakeImage( 
'FCK__Anchor', oLink.cloneNode(true) ) ;
+                       oImg.setAttribute( '_fckanchor', 'true', 0 ) ;
+
+                       oLink.parentNode.insertBefore( oImg, oLink ) ;
+                       oLink.parentNode.removeChild( oLink ) ;
+               }
+       }
+}
+
+FCKDocumentProcessors.addItem( FCKAnchorsProcessor ) ;
+
+// Flash Embeds.
+var FCKFlashProcessor = new Object() ;
+FCKFlashProcessor.ProcessDocument = function( document )
+{
+       /*
+       Sample code:
+       This is some <embed 
src="/UserFiles/Flash/Yellow_Runners.swf"></embed><strong>sample text</strong>. 
You are&nbsp;<a name="fred"></a> using <a 
href="http://www.fckeditor.net/";>FCKeditor</a>.
+       */
+
+       var aEmbeds = document.getElementsByTagName( 'EMBED' ) ;
+
+       var oEmbed ;
+       var i = aEmbeds.length - 1 ;
+       while ( i >= 0 && ( oEmbed = aEmbeds[i--] ) )
+       {
+               if ( oEmbed.src.endsWith( '.swf', true ) )
+               {
+                       var oImg = FCKDocumentProcessors_CreateFakeImage( 
'FCK__Flash', oEmbed.cloneNode(true) ) ;
+                       oImg.setAttribute( '_fckflash', 'true', 0 ) ;
+
+                       FCKFlashProcessor.RefreshView( oImg, oEmbed ) ;
+
+                       oEmbed.parentNode.insertBefore( oImg, oEmbed ) ;
+                       oEmbed.parentNode.removeChild( oEmbed ) ;
+
+//                     oEmbed.setAttribute( '_fckdelete', 'true', 0) ;
+//                     oEmbed.style.display = 'none' ;
+//                     oEmbed.hidden = true ;
+               }
+       }
+}
+
+FCKFlashProcessor.RefreshView = function( placholderImage, originalEmbed )
+{
+       if ( originalEmbed.width > 0 )
+               placholderImage.style.width = FCKTools.ConvertHtmlSizeToStyle( 
originalEmbed.width ) ;
+
+       if ( originalEmbed.height > 0 )
+               placholderImage.style.height = FCKTools.ConvertHtmlSizeToStyle( 
originalEmbed.height ) ;
+}
+
+FCKDocumentProcessors.addItem( FCKFlashProcessor ) ;
+
+FCK.GetRealElement = function( fakeElement )
+{
+       var e = FCKTempBin.Elements[ 
fakeElement.getAttribute('_fckrealelement') ] ;
+
+       if ( fakeElement.getAttribute('_fckflash') )
+       {
+               if ( fakeElement.style.width.length > 0 )
+                               e.width = FCKTools.ConvertStyleSizeToHtml( 
fakeElement.style.width ) ;
+
+               if ( fakeElement.style.height.length > 0 )
+                               e.height = FCKTools.ConvertStyleSizeToHtml( 
fakeElement.style.height ) ;
+       }
+
+       return e ;
+}
\ No newline at end of file

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fck_1_ie.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fck_1_ie.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fck_1_ie.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fck_1_ie.js:1.1    Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fck_1_ie.js        Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -13,9 +13,6 @@
  *     object that represents an editor instance.
  *     (IE specific implementations)
  *
- * Version:  2.0 RC3
- * Modified: 2005-03-02 08:58:17
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -26,16 +23,26 @@
 // errors when using a differente BaseHref.
 FCK._BehaviorsStyle =
        '<style type="text/css" _fcktemp="true"> \
-               TABLE   { behavior: url(' + FCKConfig.FullBasePath + 
'css/behaviors/showtableborders.htc) ; } \
-               A               { behavior: url(' + FCKConfig.FullBasePath + 
'css/behaviors/anchors.htc) ; } \
                INPUT   { behavior: url(' + FCKConfig.FullBasePath + 
'css/behaviors/hiddenfield.htc) ; } \
-       </style>' ;
+               INPUT           { behavior: url(' + FCKConfig.FullBasePath + 
'css/behaviors/disablehandles.htc) ; } \
+               TEXTAREA        { behavior: url(' + FCKConfig.FullBasePath + 
'css/behaviors/disablehandles.htc) ; } \
+               SELECT          { behavior: url(' + FCKConfig.FullBasePath + 
'css/behaviors/disablehandles.htc) ; }' ;

-FCK.InitializeBehaviors = function( dontReturn )
-{
-       // Set the focus to the editable area when clicking in the document 
area.
-       // TODO: The cursor must be positioned at the end.
-       this.EditorDocument.onmousedown = this.EditorDocument.onmouseup = 
function()
+if ( FCKConfig.ShowBorders )
+       FCK._BehaviorsStyle += 'TABLE { behavior: url(' + 
FCKConfig.FullBasePath + 'css/behaviors/showtableborders.htc) ; }' ;
+
+if ( FCKConfig.DisableImageHandles )
+       FCK._BehaviorsStyle += 'IMG { behavior: url(' + FCKConfig.FullBasePath 
+ 'css/behaviors/disablehandles.htc) ; }' ;
+
+if ( FCKConfig.DisableTableHandles )
+       FCK._BehaviorsStyle += 'TABLE { behavior: url(' + 
FCKConfig.FullBasePath + 'css/behaviors/disablehandles.htc) ; }' ;
+
+// Disable anchors handles
+FCK._BehaviorsStyle += '.FCK__Anchor { behavior: url(' + 
FCKConfig.FullBasePath + 'css/behaviors/disablehandles.htc) ; }' ;
+
+FCK._BehaviorsStyle += '</style>' ;
+
+function Doc_OnMouseDown()
        {
                FCK.Focus() ;

@@ -43,8 +50,7 @@
                FCK.EditorWindow.event.returnValue      = false ;
        }

-       // Intercept pasting operations
-       this.EditorDocument.body.onpaste = function()
+function Doc_OnPaste()
        {
                if ( FCK.Status == FCK_STATUS_COMPLETE )
                        return FCK.Events.FireEvent( "OnPaste" ) ;
@@ -52,25 +58,15 @@
                        return false ;
        }

-       // Disable Right-Click and shows the context menu.
-       this.EditorDocument.oncontextmenu = function()
+function Doc_OnContextMenu()
        {
-               var e = this.parentWindow.event ;
+       var e = FCK.EditorWindow.event ;
+
                FCK.ShowContextMenu( e.screenX, e.screenY ) ;
                return false ;
        }
-       // Check if key strokes must be monitored.
-       if ( FCKConfig.UseBROnCarriageReturn || FCKConfig.TabSpaces > 0 )
-       {
-               // Build the "TAB" key replacement.
-               if ( FCKConfig.TabSpaces > 0 )
-               {
-                       window.FCKTabHTML = '' ;
-                       for ( i = 0 ; i < FCKConfig.TabSpaces ; i++ )
-                               window.FCKTabHTML += "&nbsp;" ;
-               }

-               this.EditorDocument.onkeydown = function()
+function Doc_OnKeyDown()
                {
                        var e = FCK.EditorWindow.event ;

@@ -104,20 +100,70 @@

                        return true ;
                }
+
+function Doc_OnKeyDownUndo()
+{
+       if ( !FCKUndo.Typing )
+       {
+               FCKUndo.SaveUndoStep() ;
+               FCKUndo.Typing = true ;
+               FCK.Events.FireEvent( "OnSelectionChange" ) ;
        }

-       this.EditorDocument.ondblclick = function()
+       FCKUndo.TypesCount++ ;
+
+       if ( FCKUndo.TypesCount > FCKUndo.MaxTypes )
+       {
+               FCKUndo.TypesCount = 0 ;
+               FCKUndo.SaveUndoStep() ;
+       }
+}
+
+function Doc_OnDblClick()
        {
                FCK.OnDoubleClick( FCK.EditorWindow.event.srcElement ) ;
                FCK.EditorWindow.event.cancelBubble = true ;
        }

-       // Catch cursor movements
-       this.EditorDocument.onselectionchange = function()
+function Doc_OnSelectionChange()
        {
                FCK.Events.FireEvent( "OnSelectionChange" ) ;
        }

+FCK.InitializeBehaviors = function( dontReturn )
+{
+       // Set the focus to the editable area when clicking in the document 
area.
+       // TODO: The cursor must be positioned at the end.
+       this.EditorDocument.attachEvent( 'onmousedown', Doc_OnMouseDown ) ;
+       this.EditorDocument.attachEvent( 'onmouseup', Doc_OnMouseDown ) ;
+
+       // Intercept pasting operations
+       this.EditorDocument.body.attachEvent( 'onpaste', Doc_OnPaste ) ;
+
+       // Disable Right-Click and shows the context menu.
+       this.EditorDocument.attachEvent('oncontextmenu', Doc_OnContextMenu ) ;
+
+       // Check if key strokes must be monitored.
+       if ( FCKConfig.UseBROnCarriageReturn || FCKConfig.TabSpaces > 0 )
+       {
+               // Build the "TAB" key replacement.
+               if ( FCKConfig.TabSpaces > 0 )
+               {
+                       window.FCKTabHTML = '' ;
+                       for ( i = 0 ; i < FCKConfig.TabSpaces ; i++ )
+                               window.FCKTabHTML += "&nbsp;" ;
+               }
+
+               this.EditorDocument.attachEvent("onkeydown", Doc_OnKeyDown ) ;
+       }
+
+       this.EditorDocument.attachEvent("onkeydown", Doc_OnKeyDownUndo ) ;
+
+       this.EditorDocument.attachEvent("ondblclick", Doc_OnDblClick ) ;
+
+       // Catch cursor movements
+       this.EditorDocument.attachEvent("onselectionchange", 
Doc_OnSelectionChange ) ;
+
        //Enable editing
 //     this.EditorDocument.body.contentEditable = true ;
 }
@@ -144,42 +190,46 @@
                // this.EditorDocument.body.innerHTML = '<div 
id="__fakeFCKRemove__">&nbsp;</div>' + html.replace( FCKRegexLib.AposEntity, 
'&#39;' ) ;
                // 
this.EditorDocument.getElementById('__fakeFCKRemove__').removeNode(true) ;

-               this.EditorDocument.open() ;
+               var sHtml ;

                if ( FCKConfig.FullPage )
                {
-                       var sExtraHtml =
+                       var sHtml =
                                FCK._BehaviorsStyle +
                                '<link href="' + FCKConfig.FullBasePath + 
'css/fck_internal.css' + '" rel="stylesheet" type="text/css" _fcktemp="true" 
/>' ;

                        if ( FCK.TempBaseTag.length > 0 && 
!FCKRegexLib.HasBaseTag.test( html ) )
-                               sExtraHtml += FCK.TempBaseTag ;
-
-                       html = html.replace( FCKRegexLib.HeadCloser, sExtraHtml 
+ '</head>' ) ;
+                               sHtml += FCK.TempBaseTag ;

-                       this.EditorDocument.write( html ) ;
+                       sHtml = html.replace( FCKRegexLib.HeadCloser, sHtml + 
'</head>' ) ;
                }
                else
                {
-                       var sHtml =
-                               '<html dir="' + FCKConfig.ContentLangDirection 
+ '">' +
-                               '<head><title></title>' +
+                       sHtml =
+                               FCKConfig.DocType +
+                               '<html dir="' + FCKConfig.ContentLangDirection 
+ '"' ;
+
+                       if ( FCKConfig.IEForceVScroll )
+                               sHtml += ' style="overflow-y: scroll"' ;
+
+                       sHtml +=
+                               '><head><title></title>' +
                                '<link href="' + FCKConfig.EditorAreaCSS + '" 
rel="stylesheet" type="text/css" />' +
                                '<link href="' + FCKConfig.FullBasePath + 
'css/fck_internal.css' + '" rel="stylesheet" type="text/css" _fcktemp="true" 
/>' ;

                        sHtml += FCK._BehaviorsStyle ;
                        sHtml += FCK.TempBaseTag ;
                        sHtml += '</head><body>' + html  + '</body></html>' ;
-
-                       this.EditorDocument.write( sHtml ) ;
                }

+               this.EditorDocument.open( '', '_self', '', true ) ;
+               this.EditorDocument.write( sHtml ) ;
                this.EditorDocument.close() ;

                this.InitializeBehaviors() ;
                this.EditorDocument.body.contentEditable = true ;

-               this.Events.FireEvent( 'OnAfterSetHTML' ) ;
+               FCK.OnAfterSetHTML() ;

                // TODO: Wait stable version and remove the following commented 
lines.
 //             this.EditorDocument.body.innerHTML = '' ;
@@ -192,35 +242,12 @@
                document.getElementById('eSourceField').value = html ;
 }

-// TODO: Wait stable version and remove the following commented lines.
-/*
-FCK.CheckRelativeLinks = function()
-{
-       // IE automatically change relative URLs to absolute, so we use a trick
-       // to solve this problem (the document base points to "fckeditor:".
-
-       for ( var i = 0 ; i < this.EditorDocument.links.length ; i++ )
-       {
-               var e = this.EditorDocument.links[i] ;
-
-               if ( e.href.startsWith( FCK.BaseUrl ) )
-                       e.href = e.href.remove( 0, FCK.BaseUrl.length ) ;
-       }
-
-       for ( var i = 0 ; i < this.EditorDocument.images.length ; i++ )
-       {
-               var e = this.EditorDocument.images[i] ;
-
-               if ( e.src.startsWith( FCK.BaseUrl ) )
-                       e.src = e.src.remove( 0, FCK.BaseUrl.length ) ;
-       }
-}
-*/
-
 FCK.InsertHtml = function( html )
 {
        FCK.Focus() ;

+       FCKUndo.SaveUndoStep() ;
+
        // Gets the actual selection.
        var oSel = FCK.EditorDocument.selection ;

@@ -231,4 +258,3 @@
        // Inset the HTML.
        oSel.createRange().pasteHTML( html ) ;
 }
-

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fck_2.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fck_2.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fck_2.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fck_2.js:1.1       Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fck_2.js   Thu Aug  4 
03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -12,9 +12,6 @@
  *     This is the second part of the "FCK" object creation. This is the main
  *     object that represents an editor instance.
  *
- * Version:  2.0 RC3
- * Modified: 2005-03-02 10:44:27
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -25,6 +22,8 @@

 FCK.ExecuteNamedCommand = function( commandName, commandParameter )
 {
+       FCKUndo.SaveUndoStep() ;
+
        if ( FCK.RedirectNamedCommands[ commandName ] != null )
                FCK.ExecuteRedirectedNamedCommand( commandName, 
commandParameter ) ;
        else
@@ -67,40 +66,81 @@
        return sValue ? sValue : '' ;
 }

-FCK.CleanAndPaste = function( html )
+FCK.PasteFromWord = function()
 {
+       FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.PasteFromWord, 
'dialog/fck_paste.html', 400, 330, 'Word' ) ;
+}
+
+// TODO: Wait Stable and remove this block.
+//FCK.CleanAndPaste = function( html )
+//{
        // Remove all SPAN tags
-       html = html.replace(/<\/?SPAN[^>]*>/gi, "" );
+//     html = html.replace(/<\/?SPAN[^>]*>/gi, "" );
+
+//     html = html.replace(/<o:p>&nbsp;<\/o:p>/g, "") ;
+//     html = html.replace(/<o:p><\/o:p>/g, "") ;
+
+       // Remove mso-xxx styles.
+//     html = html.replace( /mso-.[^:]:.[^;"]/g, "" ) ;
+
        // Remove Class attributes
-       html = html.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3") ;
+//     html = html.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3") ;
+
        // Remove Style attributes
-       html = html.replace(/<(\w[^>]*) style="([^"]*)"([^>]*)/gi, "<$1$3") ;
+//     html = html.replace(/<(\w[^>]*) style="([^"]*)"([^>]*)/gi, "<$1$3") ;
+
        // Remove Lang attributes
-       html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ;
+//     html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ;
+
        // Remove XML elements and declarations
-       html = html.replace(/<\\?\?xml[^>]*>/gi, "") ;
+//     html = html.replace(/<\\?\?xml[^>]*>/gi, "") ;
+
        // Remove Tags with XML namespace declarations: <o:p></o:p>
-       html = html.replace(/<\/?\w+:[^>]*>/gi, "") ;
+//     html = html.replace(/<\/?\w+:[^>]*>/gi, "") ;
+
        // Replace the &nbsp;
-       html = html.replace(/&nbsp;/, " " );
+//     html = html.replace(/&nbsp;/, " " );
+       // Replace the &nbsp; from the beggining.
+//     html = html.replace(/^&nbsp;[\s\r\n]*/, "");
+
        // Transform <P> to <DIV>
-       var re = new RegExp("(<P)([^>]*>.*?)(<\/P>)","gi") ;    // Different 
because of a IE 5.0 error
-       html = html.replace( re, "<div$2</div>" ) ;
+//     var re = new RegExp("(<P)([^>]*>.*?)(<\/P>)","gi") ;    // Different 
because of a IE 5.0 error
+//     html = html.replace( re, "<div$2</div>" ) ;

-       FCK.InsertHtml( html ) ;
-}
+//     FCK.InsertHtml( html ) ;
+//}

 FCK.Preview = function()
 {
-       var oWindow = window.open( '', null, 
'toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes' 
) ;
+       var iWidth      = screen.width * 0.8 ;
+       var iHeight     = screen.height * 0.7 ;
+       var iLeft       = ( screen.width - iWidth ) / 2 ;
+       var oWindow = window.open( '', null, 
'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='
 + iWidth + ',height=' + iHeight + ',left=' + iLeft ) ;
+
+       var sHTML ;

-       var sHTML = '<html><head><link href="' + FCKConfig.EditorAreaCSS + '" 
rel="stylesheet" type="text/css" /></head><body>' + FCK.GetHTML() + 
'</body></html>' ;
+       if ( FCKConfig.FullPage )
+       {
+               if ( FCK.TempBaseTag.length > 0 )
+                       sHTML = FCK.GetXHTML().replace( FCKRegexLib.HeadCloser, 
FCK.TempBaseTag + '</head>' ) ;
+               else
+                       sHTML = FCK.GetXHTML() ;
+       }
+       else
+       {
+               sHTML =
+                       FCKConfig.DocType +
+                       '<html dir="' + FCKConfig.ContentLangDirection + '">' +
+                       '<head><title>' + FCKLang.Preview + '</title>' +
+                       '<link href="' + FCKConfig.EditorAreaCSS + '" 
rel="stylesheet" type="text/css" />' +
+                       FCK.TempBaseTag +
+                       '</head><body>' +
+                       FCK.GetXHTML() +
+                       '</body></html>' ;
+       }

        oWindow.document.write( sHTML );
        oWindow.document.close();
-
-       // TODO: The CSS of the editor area must be configurable.
-       // oWindow.document.createStyleSheet( config.EditorAreaCSS );
 }

 FCK.SwitchEditMode = function()
@@ -114,7 +154,11 @@

        // Update the HTML in the view output to show.
        if ( bWYSIWYG )
+       {
+               if ( FCKBrowserInfo.IsIE )
+                       FCKUndo.SaveUndoStep() ;
                document.getElementById('eSourceField').value = ( 
FCKConfig.EnableXHTML && FCKConfig.EnableSourceXHTML ? FCK.GetXHTML( 
FCKConfig.FormatSource ) : FCK.GetHTML( FCKConfig.FormatSource ) ) ;
+       }
        else
                FCK.SetHTML( FCK.GetHTML(), true ) ;

@@ -128,7 +172,6 @@
        FCK.Focus() ;
 }

-
 FCK.CreateElement = function( tag )
 {
        var e = FCK.EditorDocument.createElement( tag ) ;
@@ -152,4 +195,3 @@
                }
        }
 }
-

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fck_2_gecko.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fck_2_gecko.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fck_2_gecko.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fck_2_gecko.js:1.1 Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fck_2_gecko.js     Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -13,9 +13,6 @@
  *     object that represents an editor instance.
  *     (Gecko specific implementations)
  *
- * Version:  2.0 RC3
- * Modified: 2004-12-20 14:04:19
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -79,7 +76,7 @@
                FCK.PasteAsPlainText() ;
                return false ;
        }
-       else if ( FCKConfig.AutoDetectPasteFromWord && 
FCKBrowserInfo.IsIE55OrMore )
+       else if ( FCKConfig.AutoDetectPasteFromWord )
        {
                var sHTML = FCK.GetClipboardHTML() ;
                var re = /<\w[^>]* class="?MsoNormal"?/gi ;
@@ -87,7 +84,7 @@
                {
                        if ( confirm( FCKLang["PasteWordConfirm"] ) )
                        {
-                               FCK.CleanAndPaste( sHTML ) ;
+                               FCK.PasteFromWord() ;
                                return false ;
                        }
                }
@@ -164,7 +161,7 @@
        this.InsertHtml( sText ) ;
 */
 }
-
+/*
 FCK.PasteFromWord = function()
 {
        // TODO: Implement the "Paste as Plain Text" code.
@@ -173,7 +170,7 @@

 //     FCK.CleanAndPaste( FCK.GetClipboardHTML() ) ;
 }
-
+*/
 FCK.GetClipboardHTML = function()
 {
        return '' ;
@@ -201,4 +198,3 @@
                }
        }
 }
-

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fck.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fck.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fck.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fck.js:1.1 Tue May 24 
14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fck.js     Thu Aug  4 
03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -12,9 +12,6 @@
  *     Creation and initialization of the "FCK" object. This is the main object
  *     that represents an editor instance.
  *
- * Version:  2.0 RC3
- * Modified: 2005-02-23 20:51:12
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -26,10 +23,39 @@
 FCK.Status                     = FCK_STATUS_NOTLOADED ;
 FCK.EditMode           = FCK_EDITMODE_WYSIWYG ;

-FCK.PasteEnabled       = false ;
+// There is a bug on IE... getElementById returns any META tag that has the
+// name set to the ID you are looking for. So the best way in to get the array
+// by names and look for the correct one.
+
+var aElements = window.parent.document.getElementsByName( FCK.Name ) ;
+var i = 0;
+while ( FCK.LinkedField = aElements[i++] )
+{
+       if ( FCK.LinkedField.tagName == 'INPUT' || FCK.LinkedField.tagName == 
'TEXTAREA' )
+               break ;
+}
+
+var FCKTempBin = new Object() ;
+FCKTempBin.Elements = new Array() ;
+
+FCKTempBin.AddElement = function( element )
+{
+       var iIndex = FCKTempBin.Elements.length ;
+       FCKTempBin.Elements[ iIndex ] = element ;
+       return iIndex ;
+}
+
+FCKTempBin.RemoveElement = function( index )
+{
+       var e = FCKTempBin.Elements[ index ] ;
+       FCKTempBin.Elements[ index ] = null ;
+       return e ;
+}

-// First try to get the Linked field using its ID.
-FCK.LinkedField = window.parent.document.getElementById( FCK.Name ) ;
-// If no linked field is available with that ID, try with the "Name".
-if ( !FCK.LinkedField )
-       FCK.LinkedField = window.parent.document.getElementsByName( FCK.Name 
)[0] ;
+FCKTempBin.Reset = function()
+{
+       var i = 0 ;
+       while ( i < FCKTempBin.Elements.length )
+               FCKTempBin.Elements[ i++ ] == null ;
+       FCKTempBin.Elements.length = 0 ;
+}
\ No newline at end of file

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fck_2_ie.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fck_2_ie.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fck_2_ie.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fck_2_ie.js:1.1    Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fck_2_ie.js        Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -13,9 +13,6 @@
  *     object that represents an editor instance.
  *     (IE specific implementations)
  *
- * Version:  2.0 RC3
- * Modified: 2005-01-11 15:45:01
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -51,7 +48,7 @@
                FCK.PasteAsPlainText() ;
                return false ;
        }
-       else if ( FCKConfig.AutoDetectPasteFromWord && 
FCKBrowserInfo.IsIE55OrMore )
+       else if ( FCKConfig.AutoDetectPasteFromWord )
        {
                var sHTML = FCK.GetClipboardHTML() ;
                var re = /<\w[^>]* class="?MsoNormal"?/gi ;
@@ -59,7 +56,7 @@
                {
                        if ( confirm( FCKLang["PasteWordConfirm"] ) )
                        {
-                               FCK.CleanAndPaste( sHTML ) ;
+                               FCK.PasteFromWord() ;
                                return false ;
                        }
                }
@@ -79,12 +76,12 @@
        // Insert the resulting data in the editor.
        this.InsertHtml( sText ) ;
 }
-
+/*
 FCK.PasteFromWord = function()
 {
        FCK.CleanAndPaste( FCK.GetClipboardHTML() ) ;
 }
-
+*/
 FCK.InsertElement = function( element )
 {
        FCK.InsertHtml( element.outerHTML ) ;
@@ -156,4 +153,3 @@
                }
        }
 }
-

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fck_last.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fck_last.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fck_last.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fck_last.js:1.1    Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fck_last.js        Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -10,9 +10,6 @@
  *
  * File Name: fck_last.js
  *     These are the last script lines executed in the editor loading process.
- *
- * Version:  2.0 RC3
- * Modified: 2005-01-19 17:36:02
  *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckcoreextensions.js
diff -u 
news_admin/js/fckeditor/editor/_source/internals/fckcoreextensions.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckcoreextensions.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckcoreextensions.js:1.1   
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckcoreextensions.js       
Thu Aug  4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,9 +11,6 @@
  * File Name: fckcoreextensions.js
  *     Some extensions to the Javascript Core.
  *
- * Version:  2.0 RC3
- * Modified: 2005-02-20 00:54:00
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -42,7 +39,7 @@
 }

 // Extends the String object, creating a "endsWith" method on it.
-String.prototype.endsWith = function( value )
+String.prototype.endsWith = function( value, ignoreCase )
 {
        var L1 = this.length ;
        var L2 = value.length ;
@@ -50,6 +47,12 @@
        if ( L2 > L1 )
                return false ;

+       if ( ignoreCase )
+       {
+               var oRegex = new RegExp( value + '$' , 'i' ) ;
+               return oRegex.test( this ) ;
+       }
+       else
        return ( L2 == 0 || this.substr( L1 - L2, L2 ) == value ) ;
 }


====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckcontextmenu_ie.js
diff -u 
news_admin/js/fckeditor/editor/_source/internals/fckcontextmenu_ie.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckcontextmenu_ie.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckcontextmenu_ie.js:1.1   
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckcontextmenu_ie.js       
Thu Aug  4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,13 +11,12 @@
  * File Name: fckcontextmenu_ie.js
  *     Context Menu operations. (IE specific implementations)
  *
- * Version:  2.0 RC3
- * Modified: 2004-08-20 22:58:12
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */

+function FCKContextMenu_OnContextMenu() { return false ; }
+
 FCKContextMenu.Show = function( x, y )
 {
        // Create the Popup used to show the menu (this is a IE 5.5+ feature).
@@ -26,7 +25,9 @@
                this._Popup = window.createPopup() ;
                this._Document = this._Popup.document ;
                this._Document.createStyleSheet( FCKConfig.SkinPath + 
'fck_contextmenu.css' ) ;
-               this._Document.oncontextmenu = function() { return false ; }
+               this._Document.oncontextmenu = FCKContextMenu_OnContextMenu ;
+
+               aCleanupDocs[ aCleanupDocs.length ] = this._Document ;
        }

        // Create the context menu if needed.

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckdebug.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fckdebug.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckdebug.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckdebug.js:1.1    Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckdebug.js        Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,9 +11,6 @@
  * File Name: fckdebug.js
  *     Debug window control and operations.
  *
- * Version:  2.0 RC3
- * Modified: 2004-11-08 18:34:12
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -38,4 +35,3 @@
 }
 else
        FCKDebug.Output = function() {}
-

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckdialog.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fckdialog.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckdialog.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckdialog.js:1.1   Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckdialog.js       Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,9 +11,6 @@
  * File Name: fckdialog.js
  *     Dialog windows operations.
  *
- * Version:  2.0 RC3
- * Modified: 2004-12-19 23:28:55
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -21,7 +18,7 @@
 var FCKDialog = new Object() ;

 // This method opens a dialog window using the standard dialog template.
-FCKDialog.OpenDialog = function( dialogName, dialogTitle, dialogPage, width, 
height, customValue, parentWindow )
+FCKDialog.OpenDialog = function( dialogName, dialogTitle, dialogPage, width, 
height, customValue, parentWindow, resizable )
 {
        // Setup the dialog info.
        var oDialogInfo = new Object() ;
@@ -31,6 +28,5 @@
        oDialogInfo.CustomValue = customValue ;         // Optional

        var sUrl = FCKConfig.BasePath + 'fckdialog.html' ;
-       this.Show( oDialogInfo, dialogName, sUrl, width, height, parentWindow ) 
;
+       this.Show( oDialogInfo, dialogName, sUrl, width, height, parentWindow, 
resizable ) ;
 }
-

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckdialog_gecko.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fckdialog_gecko.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckdialog_gecko.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckdialog_gecko.js:1.1     
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckdialog_gecko.js Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,19 +11,17 @@
  * File Name: fckdialog_gecko.js
  *     Dialog windows operations. (Gecko specific implementations)
  *
- * Version:  2.0 RC3
- * Modified: 2004-12-28 00:42:29
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */

-FCKDialog.Show = function( dialogInfo, dialogName, pageUrl, dialogWidth, 
dialogHeight, parentWindow )
+FCKDialog.Show = function( dialogInfo, dialogName, pageUrl, dialogWidth, 
dialogHeight, parentWindow, resizable )
 {
        var iTop  = (screen.height - dialogHeight) / 2 ;
        var iLeft = (screen.width  - dialogWidth)  / 2 ;

-       var sOption  = 
"location=no,menubar=no,resizable=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,modal=yes,alwaysRaised=yes"
 +
+       var sOption  = 
"location=no,menubar=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,modal=yes,alwaysRaised=yes"
 +
+               ",resizable="  + ( resizable ? 'yes' : 'no' ) +
                ",width="  + dialogWidth +
                ",height=" + dialogHeight +
                ",top="  + iTop +
@@ -32,7 +30,7 @@
        if ( !parentWindow )
                parentWindow = window ;

-       var oWindow = parentWindow.open( '', 'FCKEditorDialog_' + dialogName, 
sOption, true ) ;
+       var oWindow = parentWindow.open( '', 'FCKeditorDialog_' + dialogName, 
sOption, true ) ;
        oWindow.moveTo( iLeft, iTop ) ;
        oWindow.resizeTo( dialogWidth, dialogHeight ) ;
        oWindow.focus() ;
@@ -91,4 +89,3 @@
                {}
        }
 }
-

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckcontextmenu_gecko.js
diff -u 
news_admin/js/fckeditor/editor/_source/internals/fckcontextmenu_gecko.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckcontextmenu_gecko.js:1.2
--- 
news_admin/js/fckeditor/editor/_source/internals/fckcontextmenu_gecko.js:1.1    
    Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckcontextmenu_gecko.js    
Thu Aug  4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -10,9 +10,6 @@
  *
  * File Name: fckcontextmenu_gecko.js
  *     Context Menu operations. (Gecko specific implementations)
- *
- * Version:  2.0 RC3
- * Modified: 2004-08-27 16:58:07
  *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckcontextmenu.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fckcontextmenu.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckcontextmenu.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckcontextmenu.js:1.1      
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckcontextmenu.js  Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -12,9 +12,6 @@
  *     Defines the FCKContextMenu object that is responsible for all
  *     Context Menu operations.
  *
- * Version:  2.0 RC3
- * Modified: 2005-02-16 20:34:58
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -111,6 +108,9 @@
                case 'Image' :
                        return new FCKContextMenuGroup( true, this, 'Image', 
FCKLang.ImageProperties, true ) ;

+               case 'Flash' :
+                       return new FCKContextMenuGroup( true, this, 'Flash', 
FCKLang.FlashProperties, true ) ;
+
                case 'Form' :
                        return new FCKContextMenuGroup( true, this, 'Form', 
FCKLang.FormProp, true ) ;

@@ -164,14 +164,16 @@

        // Set items visibility.

-       var bIsAnchor = ( sTagName == 'A' && oTag.name.length > 0 && 
oTag.href.length == 0 ) ;
+//     var bIsAnchor = ( sTagName == 'A' && oTag.name.length > 0 && 
oTag.href.length == 0 ) ;

-       if ( this.Groups['Anchor'] )            
this.Groups['Anchor'].SetVisible( bIsAnchor ) ;
-       if ( this.Groups['Link'] )                      
this.Groups['Link'].SetVisible( !bIsAnchor && FCK.GetNamedCommandState( 
'Unlink' ) != FCK_TRISTATE_DISABLED ) ;
+       if ( this.Groups['Link'] )                      
this.Groups['Link'].SetVisible( /*!bIsAnchor &&*/ FCK.GetNamedCommandState( 
'Unlink' ) != FCK_TRISTATE_DISABLED ) ;

        if ( this.Groups['TableCell'] )         
this.Groups['TableCell'].SetVisible( sTagName != 'TABLE' && 
FCKSelection.HasAncestorNode('TABLE') ) ;
        if ( this.Groups['Table'] )                     
this.Groups['Table'].SetVisible( sTagName == 'TABLE' ) ;
-       if ( this.Groups['Image'] )                     
this.Groups['Image'].SetVisible( sTagName == 'IMG' ) ;
+
+       if ( this.Groups['Image'] )                     
this.Groups['Image'].SetVisible( sTagName == 'IMG' && 
!oTag.getAttribute('_fckflash') && !oTag.getAttribute('_fckanchor') ) ;
+       if ( this.Groups['Flash'] )                     
this.Groups['Flash'].SetVisible( sTagName == 'IMG' && 
oTag.getAttribute('_fckflash') ) ;
+       if ( this.Groups['Anchor'] )            
this.Groups['Anchor'].SetVisible( sTagName == 'IMG' && 
oTag.getAttribute('_fckanchor') ) ;

        if ( this.Groups['BulletedList'] )      
this.Groups['BulletedList'].SetVisible( FCKSelection.HasAncestorNode('UL') ) ;
        if ( this.Groups['NumberedList'] )      
this.Groups['NumberedList'].SetVisible( FCKSelection.HasAncestorNode('OL') ) ;

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckbrowserinfo.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fckbrowserinfo.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckbrowserinfo.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckbrowserinfo.js:1.1      
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckbrowserinfo.js  Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,31 +11,20 @@
  * File Name: fckbrowserinfo.js
  *     Defines the FCKBrowserInfo object that hold some browser informations.
  *
- * Version:  2.0 RC3
- * Modified: 2005-02-23 00:43:57
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */

-var FCKBrowserInfo = new Object() ;
+var FCKBrowserInfo ;
+
+if ( !( FCKBrowserInfo = NS.FCKBrowserInfo ) )
+{
+       FCKBrowserInfo = NS.FCKBrowserInfo = new Object() ;

 var sAgent = navigator.userAgent.toLowerCase() ;

-FCKBrowserInfo.IsIE                    = sAgent.indexOf("msie") != -1 ;
+       FCKBrowserInfo.IsIE                     = ( sAgent.indexOf("msie") != 
-1 ) ;
 FCKBrowserInfo.IsGecko         = !FCKBrowserInfo.IsIE ;
-FCKBrowserInfo.IsNetscape      = sAgent.indexOf("netscape") != -1 ;
-
-if ( FCKBrowserInfo.IsIE )
-{
-       FCKBrowserInfo.MajorVer = navigator.appVersion.match(/MSIE (.)/)[1] ;
-       FCKBrowserInfo.MinorVer = navigator.appVersion.match(/MSIE .\.(.)/)[1] ;
-}
-else
-{
-       // TODO: Other browsers
-       FCKBrowserInfo.MajorVer = 0 ;
-       FCKBrowserInfo.MinorVer = 0 ;
+       FCKBrowserInfo.IsSafari         = ( sAgent.indexOf("safari") != -1 ) ;
+       FCKBrowserInfo.IsNetscape       = ( sAgent.indexOf("netscape") != -1 ) ;
 }
-
-FCKBrowserInfo.IsIE55OrMore = FCKBrowserInfo.IsIE && ( FCKBrowserInfo.MajorVer 
> 5 || FCKBrowserInfo.MinorVer >= 5 ) ;
\ No newline at end of file

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fck_onload.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fck_onload.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fck_onload.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fck_onload.js:1.1  Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fck_onload.js      Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -12,26 +12,30 @@
  *     This is the script that is called when the editor page is loaded inside
  *     its IFRAME. It's the editor startup.
  *
- * Version:  2.0 RC3
- * Modified: 2005-02-19 13:00:42
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */

 // Disable the context menu in the editor (areas outside the editor area).
-window.document.oncontextmenu = function( e )
+function Window_OnContextMenu( e )
 {
        if ( e )
-               e.preventDefault() ;    // This is the Gecko way to do that.
-       return false ;                          // This is the IE way to do 
that.
+               e.preventDefault() ;    // The Gecko way.
+       else
+       {
+               if ( event.srcElement == 
document.getElementById('eSourceField') )
+                       return true ;
+       }
+
+       return false ;                          // The IE way.
 }
+window.document.oncontextmenu = Window_OnContextMenu ;

 // Gecko browsers doens't calculate well that IFRAME size so we must
 // recalculate it every time the window size changes.
-if ( ! FCKBrowserInfo.IsIE )
+if ( FCKBrowserInfo.IsGecko )
 {
-       window.onresize = function()
+       function Window_OnResize()
        {
                var oFrame = document.getElementById('eEditorArea') ;
                oFrame.height = 0 ;
@@ -41,37 +45,121 @@

                oFrame.height = iHeight - 2 ;
        }
+       window.onresize = Window_OnResize ;
+}
+
+if ( FCKBrowserInfo.IsIE )
+{
+       var aCleanupDocs = new Array() ;
+       aCleanupDocs[0] = document ;
+
+       // On IE, some circular references must be cleared to avoid memory leak.
+       function Window_OnBeforeUnload()
+       {
+//             if ( typeof( FCKToolbarSet ) != 'undefined' )
+//                     FCKToolbarSet.Collapse() ;
+
+               var d, e ;
+
+               var j = 0 ;
+               while ( d = aCleanupDocs[j++] )
+               {
+                       var i = 0 ;
+                       while ( e = d.getElementsByTagName("DIV").item(i++) )
+                       {
+                               if ( e.FCKToolbarButton )
+                                       e.FCKToolbarButton = null ;
+
+                               if ( e.FCKSpecialCombo )
+                                       e.FCKSpecialCombo = null ;
+
+                               if ( e.Command )
+                                       e.Command = null ;
+                       }
+
+                       i = 0 ;
+                       while ( e = d.getElementsByTagName("TR").item(i++) )
+                       {
+                               if ( e.FCKContextMenuItem )
+                                       e.FCKContextMenuItem = null ;
+                       }
+
+                       aCleanupDocs[j] = null ;
+               }
+
+               if ( typeof( FCKTempBin ) != 'undefined' )
+                       FCKTempBin.Reset() ;
+       }
+       window.attachEvent( "onunload", Window_OnBeforeUnload ) ;
 }

+// The editor startup follows these steps:
+//             1. Load the editor main page (fckeditor.html).
+//             2. Load the main configuration file (fckconfig.js)
+//             3. Process the configurations set directly in the page code 
(just load then).
+//             4. Override the configurations with the custom config file (if 
set).
+//             5. Override the configurations with that ones set directly in 
the page code.
+//             6. Load the editor skin styles CSS files.
+//             7. Load the first part of tha main scripts.
+//             8. Load the language file.
+//             9. Start the editor.
+
 // Start the editor as soon as the window is loaded.
-window.onload = function()
+function Window_OnLoad()
 {
        // There is a bug on Netscape when rendering the frame. It goes over the
        // right border. So we must correct it.
        if ( FCKBrowserInfo.IsNetscape )
                document.getElementById('eWysiwygCell').style.paddingRight = 
'2px' ;

-       FCKScriptLoader.OnEmpty = function()
+       LoadConfigFile() ;
+}
+window.onload = Window_OnLoad ;
+
+function LoadConfigFile()
        {
-               FCKScriptLoader.OnEmpty = null ;
+       FCKScriptLoader.OnEmpty = ProcessHiddenField ;

-               // Override the configurations passed throw the hidden field.
-               FCKConfig.LoadHiddenField() ;
+       // First of all load the configuration file.
+       FCKScriptLoader.AddScript( '../fckconfig.js' ) ;
+}
+
+function ProcessHiddenField()
+{
+       FCKConfig.ProcessHiddenField() ;
+
+       LoadCustomConfigFile() ;
+}

+function LoadCustomConfigFile()
+{
                // Load the custom configurations file (if defined).
                if ( FCKConfig.CustomConfigurationsPath.length > 0 )
+       {
+               // Wait for the configuration file to be loaded to call the 
"LoadPageConfig".
+               FCKScriptLoader.OnEmpty = LoadPageConfig ;
+
                        FCKScriptLoader.AddScript( 
FCKConfig.CustomConfigurationsPath ) ;
+       }
+       else
+       {
+               // Load the page defined configurations immediately.
+               LoadPageConfig() ;
+       }
+}
+
+function LoadPageConfig()
+{
+       FCKConfig.LoadPageConfig() ;

                // Load the styles for the configured skin.
                LoadStyles() ;
        }

-       // First of all load the configuration file.
-       FCKScriptLoader.AddScript( '../fckconfig.js' ) ;
-}
-
 function LoadStyles()
 {
+       if( window.console ) window.console.log( 'LoadStyles()' ) ;     // 
@Packager.Compactor.RemoveLine
+
        FCKScriptLoader.OnEmpty = LoadScripts ;

        // Load the active skin CSS.
@@ -81,6 +169,8 @@

 function LoadScripts()
 {
+       if( window.console ) window.console.log( 'LoadScripts()' ) ;    // 
@Packager.Compactor.RemoveLine
+
        FCKScriptLoader.OnEmpty = null ;

        // @Packager.Compactor.Remove.Start
@@ -98,6 +188,7 @@
                AddScript( '_source/internals/fckxhtml.js' ) ;
                AddScript( '_source/internals/fckxhtml_' + sSuffix + '.js' ) ;
                AddScript( '_source/internals/fckcodeformatter.js' ) ;
+               AddScript( '_source/internals/fckundo_' + sSuffix + '.js' ) ;
                AddScript( '_source/internals/fck_1.js' ) ;
                AddScript( '_source/internals/fck_1_' + sSuffix + '.js' ) ;
        }
@@ -113,8 +204,19 @@

 function LoadLanguageFile()
 {
-       FCKScriptLoader.OnEmpty = function()
+       if( window.console ) window.console.log( 'LoadLanguageFile()' ) ;       
// @Packager.Compactor.RemoveLine
+
+       FCKScriptLoader.OnEmpty = LoadEditor ;
+
+       if( window.console ) window.console.log( 'Active Language: ' + 
FCKLanguageManager.ActiveLanguage.Code ) ;       // 
@Packager.Compactor.RemoveLine
+
+       FCKScriptLoader.AddScript( 'lang/' + 
FCKLanguageManager.ActiveLanguage.Code + '.js' ) ;
+}
+
+function LoadEditor()
        {
+       if( window.console ) window.console.log( 'LoadEditor()' ) ;     // 
@Packager.Compactor.RemoveLine
+
                // Removes the OnEmpty listener.
                FCKScriptLoader.OnEmpty = null ;

@@ -125,6 +227,3 @@
                // Starts the editor.
                FCK.StartEditor() ;
        }
-
-       FCKScriptLoader.AddScript( 'lang/' + 
FCKLanguageManager.ActiveLanguage.Code + '.js' ) ;
-}
\ No newline at end of file

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckcodeformatter.js
diff -u 
news_admin/js/fckeditor/editor/_source/internals/fckcodeformatter.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckcodeformatter.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckcodeformatter.js:1.1    
Tue May 24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckcodeformatter.js        
Thu Aug  4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,14 +11,15 @@
  * File Name: fckcodeformatter.js
  *     Format the HTML.
  *
- * Version:  2.0 RC3
- * Modified: 2005-02-07 19:48:21
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */

-var FCKCodeFormatter = new Object() ;
+var FCKCodeFormatter ;
+
+if ( !( FCKCodeFormatter = NS.FCKCodeFormatter ) )
+{
+       FCKCodeFormatter = NS.FCKCodeFormatter = new Object() ;

 FCKCodeFormatter.Regex = new Object() ;

@@ -68,4 +69,5 @@
        }

        return sFormatted.trim() ;
+}
 }

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckcommands.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fckcommands.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckcommands.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckcommands.js:1.1 Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckcommands.js     Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,9 +11,6 @@
  * File Name: fckcommands.js
  *     Define all commands available in the editor.
  *
- * Version:  2.0 RC3
- * Modified: 2005-03-02 08:22:35
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -36,6 +33,7 @@
        switch ( commandName )
        {
                case 'DocProps'         : oCommand = new FCKDialogCommand( 
'DocProps'   , FCKLang.DocProps                              , 
'dialog/fck_docprops.html'    , 400, 390, FCKCommands.GetFullPageState ) ; 
break ;
+               case 'Templates'        : oCommand = new FCKDialogCommand( 
'Templates'  , FCKLang.DlgTemplatesTitle             , 
'dialog/fck_template.html'    , 380, 450 ) ; break ;
                case 'Link'                     : oCommand = new 
FCKDialogCommand( 'Link'               , FCKLang.DlgLnkWindowTitle             
, 'dialog/fck_link.html'                , 400, 330, FCK.GetNamedCommandState, 
'CreateLink' ) ; break ;
                case 'Anchor'           : oCommand = new FCKDialogCommand( 
'Anchor'             , FCKLang.DlgAnchorTitle                , 
'dialog/fck_anchor.html'              , 370, 170 ) ; break ;
                case 'BulletedList'     : oCommand = new FCKDialogCommand( 
'BulletedList', FCKLang.BulletedListProp             , 
'dialog/fck_listprop.html'    , 370, 170 ) ; break ;
@@ -46,6 +44,7 @@
                case 'Replace'          : oCommand = new FCKDialogCommand( 
'Replace'    , FCKLang.DlgReplaceTitle               , 
'dialog/fck_replace.html'             , 340, 200 ) ; break ;

                case 'Image'            : oCommand = new FCKDialogCommand( 
'Image'              , FCKLang.DlgImgTitle                   , 
'dialog/fck_image.html'               , 450, 400 ) ; break ;
+               case 'Flash'            : oCommand = new FCKDialogCommand( 
'Flash'              , FCKLang.DlgFlashTitle                 , 
'dialog/fck_flash.html'               , 450, 400 ) ; break ;
                case 'SpecialChar'      : oCommand = new FCKDialogCommand( 
'SpecialChar', FCKLang.DlgSpecialCharTitle   , 'dialog/fck_specialchar.html' , 
400, 300 ) ; break ;
                case 'Smiley'           : oCommand = new FCKDialogCommand( 
'Smiley'             , FCKLang.DlgSmileyTitle                , 
'dialog/fck_smiley.html'              , FCKConfig.SmileyWindowWidth, 
FCKConfig.SmileyWindowHeight ) ; break ;
                case 'Table'            : oCommand = new FCKDialogCommand( 
'Table'              , FCKLang.DlgTableTitle                 , 
'dialog/fck_table.html'               , 400, 250 ) ; break ;
@@ -91,6 +90,9 @@

                case 'SpellCheck'       : oCommand = new FCKSpellCheckCommand() 
; break ;

+               case 'Undo'     : oCommand = new FCKUndoCommand() ; break ;
+               case 'Redo'     : oCommand = new FCKRedoCommand() ; break ;
+
                // Generic Undefined command (usually used when a command is 
under development).
                case 'Undefined'        : oCommand = new FCKUndefinedCommand() 
; break ;

@@ -116,4 +118,3 @@
 {
        return FCKConfig.FullPage ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ;
 }
-

====================================================
Index: news_admin/js/fckeditor/editor/_source/internals/fckconfig.js
diff -u news_admin/js/fckeditor/editor/_source/internals/fckconfig.js:1.1 
news_admin/js/fckeditor/editor/_source/internals/fckconfig.js:1.2
--- news_admin/js/fckeditor/editor/_source/internals/fckconfig.js:1.1   Tue May 
24 14:32:53 2005
+++ news_admin/js/fckeditor/editor/_source/internals/fckconfig.js       Thu Aug 
 4 03:54:31 2005
@@ -1,6 +1,6 @@
 /*
  * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  *
  * Licensed under the terms of the GNU Lesser General Public License:
  *             http://www.opensource.org/licenses/lgpl-license.php
@@ -11,9 +11,6 @@
  * File Name: fckconfig.js
  *     Creates and initializes the FCKConfig object.
  *
- * Version:  2.0 RC3
- * Modified: 2005-02-02 14:02:33
- *
  * File Authors:
  *             Frederico Caldeira Knabben (address@hidden)
  */
@@ -33,10 +30,14 @@
        FCKConfig.FullBasePath = document.location.protocol + '//' + 
document.location.host + FCKConfig.BasePath ;
 }

+FCKConfig.EditorPath = FCKConfig.BasePath.replace( /editor\/$/, '' ) ;
+
 // Override the actual configuration values with the values passed throw the
 // hidden field "<InstanceName>___Config".
-FCKConfig.LoadHiddenField = function()
+FCKConfig.ProcessHiddenField = function()
 {
+       this.PageConfig = new Object() ;
+
        // Get the hidden field.
        var oConfigField = window.parent.document.getElementById( FCK.Name + 
'___Config' ) ;

@@ -51,18 +52,30 @@
                        continue ;

                var aConfig = aCouples[i].split('=') ;
-               var sConfigName  = unescape( aConfig[0] ) ;
-               var sConfigValue = unescape( aConfig[1] ) ;
+               var sKey = unescape( aConfig[0] ) ;
+               var sVal = unescape( aConfig[1] ) ;
+
+               if ( sKey == 'CustomConfigurationsPath' )       // The Custom 
Config File path must be loaded immediately.
+                       FCKConfig[ sKey ] = sVal ;
+
+               else if ( sVal.toLowerCase() == "true" )        // If it is a 
boolean TRUE.
+                       this.PageConfig[ sKey ] = true ;
+
+               else if ( sVal.toLowerCase() == "false" )       // If it is a 
boolean FALSE.
+                       this.PageConfig[ sKey ] = false ;
+
+               else if ( ! isNaN( sVal ) )                                     
// If it is a number.
+                       this.PageConfig[ sKey ] = parseInt( sVal ) ;

-               if ( sConfigValue.toLowerCase() == "true" )                     
// If it is a boolean TRUE.
-                       FCKConfig[sConfigName] = true ;
-               else if ( sConfigValue.toLowerCase() == "false" )       // If 
it is a boolean FALSE.
-                       FCKConfig[sConfigName] = false ;
-               else if ( ! isNaN(sConfigValue) )               // If it is a 
number.
-                       FCKConfig[sConfigName] = parseInt( sConfigValue ) ;
                else                                                            
        // In any other case it is a string.
-                       FCKConfig[sConfigName] = sConfigValue ;
+                       this.PageConfig[ sKey ] = sVal ;
        }
+       }
+
+FCKConfig.LoadPageConfig = function()
+{
+       for ( var sKey in this.PageConfig )
+               FCKConfig[ sKey ] = this.PageConfig[ sKey ] ;
 }

 // Define toolbar sets collection.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]