commit d3b61962f1d3b69c025250d6fc143d6dfd23e567
parent 42ff4712315689d9dbf491af71362a04b66688c1
Author: dankert <devnull@localhost>
Date: Tue, 4 Dec 2007 22:58:41 +0100
Umstellung FCKEditor auf Version 2.5 (Unterst?tzt dann Opera 9.5b)
Diffstat:
198 files changed, 7539 insertions(+), 5023 deletions(-)
diff --git a/editor/editor/_packager.xml b/editor/editor/_packager.xml
@@ -1,218 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!--
- * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
- * == BEGIN LICENSE ==
- *
- * Licensed under the terms of any of the following licenses at your
- * choice:
- *
- * - GNU General Public License Version 2 or later (the "GPL")
- * http://www.gnu.org/licenses/gpl.html
- *
- * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- * http://www.gnu.org/licenses/lgpl.html
- *
- * - Mozilla Public License Version 1.1 or later (the "MPL")
- * http://www.mozilla.org/MPL/MPL-1.1.html
- *
- * == END LICENSE ==
- *
- * File Name: _packager.xml
- * This is the configuration file used by the FCKeditor.Packager to create the
- * compressed code files in the "js" folder.
- *
- * The FCKeditor.Packager software can be used to create the compressed files
- * for the FCKeditor project only. Any other use of this software is illegal.
- *
- * Please check http://www.fckeditor.net/ckpackager for more info.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
--->
-<Package>
- <Constants removeDeclaration="false">
- <Constant name="FCK_STATUS_NOTLOADED" value="0" />
- <Constant name="FCK_STATUS_ACTIVE" value="1" />
- <Constant name="FCK_STATUS_COMPLETE" value="2" />
- <Constant name="FCK_TRISTATE_OFF" value="0" />
- <Constant name="FCK_TRISTATE_ON" value="1" />
- <Constant name="FCK_TRISTATE_DISABLED" value="-1" />
- <Constant name="FCK_UNKNOWN" value="-9" />
- <Constant name="FCK_TOOLBARITEM_ONLYICON" value="0" />
- <Constant name="FCK_TOOLBARITEM_ONLYTEXT" value="1" />
- <Constant name="FCK_TOOLBARITEM_ICONTEXT" value="2" />
- <Constant name="FCK_EDITMODE_WYSIWYG" value="0" />
- <Constant name="FCK_EDITMODE_SOURCE" value="1" />
- </Constants>
- <PackageFile name="fckeditorcode_ie.js">
- <File path="editor/_source/fckconstants.js" />
- <File path="editor/_source/fckjscoreextensions.js" />
- <File path="editor/_source/classes/fckiecleanup.js" />
- <File path="editor/_source/internals/fckbrowserinfo.js" />
- <File path="editor/_source/internals/fckurlparams.js" />
- <File path="editor/_source/classes/fckevents.js" />
- <File path="editor/_source/internals/fck.js" />
- <File path="editor/_source/internals/fck_ie.js" />
- <File path="editor/_source/internals/fckconfig.js" />
- <File path="editor/_source/internals/fckdebug.js" />
- <File path="editor/_source/internals/fckdomtools.js" />
- <File path="editor/_source/internals/fcktools.js" />
- <File path="editor/_source/internals/fcktools_ie.js" />
- <File path="editor/_source/fckeditorapi.js" />
- <File path="editor/_source/classes/fckimagepreloader.js" />
-
- <File path="editor/_source/internals/fckregexlib.js" />
- <File path="editor/_source/internals/fcklanguagemanager.js" />
- <File path="editor/_source/internals/fckxhtmlentities.js" />
- <File path="editor/_source/internals/fckxhtml.js" />
- <File path="editor/_source/internals/fckxhtml_ie.js" />
- <File path="editor/_source/internals/fckcodeformatter.js" />
- <File path="editor/_source/internals/fckundo_ie.js" />
- <File path="editor/_source/classes/fckeditingarea.js" />
- <File path="editor/_source/classes/fckkeystrokehandler.js" />
-
- <File path="editor/_source/internals/fcklisthandler.js" />
- <File path="editor/_source/classes/fckelementpath.js" />
- <File path="editor/_source/classes/fckdomrange.js" />
- <File path="editor/_source/classes/fckdomrange_ie.js" />
- <File path="editor/_source/classes/fckdocumentfragment_ie.js" />
- <File path="editor/_source/classes/fckw3crange.js" />
- <File path="editor/_source/classes/fckenterkey.js" />
-
- <File path="editor/_source/internals/fckdocumentprocessor.js" />
- <File path="editor/_source/internals/fckselection.js" />
- <File path="editor/_source/internals/fckselection_ie.js" />
-
- <File path="editor/_source/internals/fcktablehandler.js" />
- <File path="editor/_source/internals/fcktablehandler_ie.js" />
- <File path="editor/_source/classes/fckxml_ie.js" />
- <File path="editor/_source/classes/fckstyledef.js" />
- <File path="editor/_source/classes/fckstyledef_ie.js" />
- <File path="editor/_source/classes/fckstylesloader.js" />
-
- <File path="editor/_source/commandclasses/fcknamedcommand.js" />
- <File path="editor/_source/commandclasses/fck_othercommands.js" />
- <File path="editor/_source/commandclasses/fckspellcheckcommand_ie.js" />
- <File path="editor/_source/commandclasses/fcktextcolorcommand.js" />
- <File path="editor/_source/commandclasses/fckpasteplaintextcommand.js" />
- <File path="editor/_source/commandclasses/fckpastewordcommand.js" />
- <File path="editor/_source/commandclasses/fcktablecommand.js" />
- <File path="editor/_source/commandclasses/fckstylecommand.js" />
- <File path="editor/_source/commandclasses/fckfitwindow.js" />
- <File path="editor/_source/internals/fckcommands.js" />
-
- <File path="editor/_source/classes/fckpanel.js" />
- <File path="editor/_source/classes/fckicon.js" />
- <File path="editor/_source/classes/fcktoolbarbuttonui.js" />
- <File path="editor/_source/classes/fcktoolbarbutton.js" />
- <File path="editor/_source/classes/fckspecialcombo.js" />
- <File path="editor/_source/classes/fcktoolbarspecialcombo.js" />
- <File path="editor/_source/classes/fcktoolbarfontscombo.js" />
- <File path="editor/_source/classes/fcktoolbarfontsizecombo.js" />
- <File path="editor/_source/classes/fcktoolbarfontformatcombo.js" />
- <File path="editor/_source/classes/fcktoolbarstylecombo.js" />
- <File path="editor/_source/classes/fcktoolbarpanelbutton.js" />
- <File path="editor/_source/internals/fcktoolbaritems.js" />
- <File path="editor/_source/classes/fcktoolbar.js" />
- <File path="editor/_source/classes/fcktoolbarbreak_ie.js" />
- <File path="editor/_source/internals/fcktoolbarset.js" />
- <File path="editor/_source/internals/fckdialog.js" />
- <File path="editor/_source/internals/fckdialog_ie.js" />
-
- <File path="editor/_source/classes/fckmenuitem.js" />
- <File path="editor/_source/classes/fckmenublock.js" />
- <File path="editor/_source/classes/fckmenublockpanel.js" />
- <File path="editor/_source/classes/fckcontextmenu.js" />
- <File path="editor/_source/internals/fck_contextmenu.js" />
-
- <File path="editor/_source/classes/fckplugin.js" />
- <File path="editor/_source/internals/fckplugins.js" />
- </PackageFile>
-
- <PackageFile name="fckeditorcode_gecko.js">
- <File path="editor/_source/fckconstants.js" />
- <File path="editor/_source/fckjscoreextensions.js" />
- <File path="editor/_source/internals/fckbrowserinfo.js" />
- <File path="editor/_source/internals/fckurlparams.js" />
- <File path="editor/_source/classes/fckevents.js" />
- <File path="editor/_source/internals/fck.js" />
- <File path="editor/_source/internals/fck_gecko.js" />
- <File path="editor/_source/internals/fckconfig.js" />
- <File path="editor/_source/internals/fckdebug.js" />
- <File path="editor/_source/internals/fckdomtools.js" />
- <File path="editor/_source/internals/fcktools.js" />
- <File path="editor/_source/internals/fcktools_gecko.js" />
- <File path="editor/_source/fckeditorapi.js" />
- <File path="editor/_source/classes/fckimagepreloader.js" />
-
- <File path="editor/_source/internals/fckregexlib.js" />
- <File path="editor/_source/internals/fcklanguagemanager.js" />
- <File path="editor/_source/internals/fckxhtmlentities.js" />
- <File path="editor/_source/internals/fckxhtml.js" />
- <File path="editor/_source/internals/fckxhtml_gecko.js" />
- <File path="editor/_source/internals/fckcodeformatter.js" />
- <File path="editor/_source/internals/fckundo_gecko.js" />
- <File path="editor/_source/classes/fckeditingarea.js" />
- <File path="editor/_source/classes/fckkeystrokehandler.js" />
-
- <File path="editor/_source/internals/fcklisthandler.js" />
- <File path="editor/_source/classes/fckelementpath.js" />
- <File path="editor/_source/classes/fckdomrange.js" />
- <File path="editor/_source/classes/fckdomrange_gecko.js" />
- <File path="editor/_source/classes/fckdocumentfragment_gecko.js" />
- <File path="editor/_source/classes/fckw3crange.js" />
- <File path="editor/_source/classes/fckenterkey.js" />
-
- <File path="editor/_source/internals/fckdocumentprocessor.js" />
- <File path="editor/_source/internals/fckselection.js" />
- <File path="editor/_source/internals/fckselection_gecko.js" />
-
- <File path="editor/_source/internals/fcktablehandler.js" />
- <File path="editor/_source/internals/fcktablehandler_gecko.js" />
- <File path="editor/_source/classes/fckxml_gecko.js" />
- <File path="editor/_source/classes/fckstyledef.js" />
- <File path="editor/_source/classes/fckstyledef_gecko.js" />
- <File path="editor/_source/classes/fckstylesloader.js" />
-
- <File path="editor/_source/commandclasses/fcknamedcommand.js" />
- <File path="editor/_source/commandclasses/fck_othercommands.js" />
- <File path="editor/_source/commandclasses/fckspellcheckcommand_gecko.js" />
- <File path="editor/_source/commandclasses/fcktextcolorcommand.js" />
- <File path="editor/_source/commandclasses/fckpasteplaintextcommand.js" />
- <File path="editor/_source/commandclasses/fckpastewordcommand.js" />
- <File path="editor/_source/commandclasses/fcktablecommand.js" />
- <File path="editor/_source/commandclasses/fckstylecommand.js" />
- <File path="editor/_source/commandclasses/fckfitwindow.js" />
- <File path="editor/_source/internals/fckcommands.js" />
-
- <File path="editor/_source/classes/fckpanel.js" />
- <File path="editor/_source/classes/fckicon.js" />
- <File path="editor/_source/classes/fcktoolbarbuttonui.js" />
- <File path="editor/_source/classes/fcktoolbarbutton.js" />
- <File path="editor/_source/classes/fckspecialcombo.js" />
- <File path="editor/_source/classes/fcktoolbarspecialcombo.js" />
- <File path="editor/_source/classes/fcktoolbarfontscombo.js" />
- <File path="editor/_source/classes/fcktoolbarfontsizecombo.js" />
- <File path="editor/_source/classes/fcktoolbarfontformatcombo.js" />
- <File path="editor/_source/classes/fcktoolbarstylecombo.js" />
- <File path="editor/_source/classes/fcktoolbarpanelbutton.js" />
- <File path="editor/_source/internals/fcktoolbaritems.js" />
- <File path="editor/_source/classes/fcktoolbar.js" />
- <File path="editor/_source/classes/fcktoolbarbreak_gecko.js" />
- <File path="editor/_source/internals/fcktoolbarset.js" />
- <File path="editor/_source/internals/fckdialog.js" />
- <File path="editor/_source/internals/fckdialog_gecko.js" />
-
- <File path="editor/_source/classes/fckmenuitem.js" />
- <File path="editor/_source/classes/fckmenublock.js" />
- <File path="editor/_source/classes/fckmenublockpanel.js" />
- <File path="editor/_source/classes/fckcontextmenu.js" />
- <File path="editor/_source/internals/fck_contextmenu.js" />
-
- <File path="editor/_source/classes/fckplugin.js" />
- <File path="editor/_source/internals/fckplugins.js" />
- </PackageFile>
-
-</Package>-
\ No newline at end of file
diff --git a/editor/editor/css/behaviors/hiddenfield.gif b/editor/editor/css/behaviors/hiddenfield.gif
Binary files differ.
diff --git a/editor/editor/css/behaviors/hiddenfield.htc b/editor/editor/css/behaviors/hiddenfield.htc
@@ -1,30 +0,0 @@
-<public:component lightweight="true">
-
-<public:attach event="oncontentready" onevent="ShowField()" />
-<public:attach event="ondoubleclick" onevent="EditField()" />
-
-<script language="javascript">
-
-var bIsHiddenField = this.type == 'hidden' ;
-
-function ShowField()
-{
- if ( bIsHiddenField )
- {
- this.runtimeStyle.width = '20px' ;
- this.runtimeStyle.height = '20px' ;
- this.runtimeStyle.border = '1px dotted #FF0000' ;
- this.runtimeStyle.backgroundImage = 'url(css/behaviors/hiddenfield.gif)' ;
- this.runtimeStyle.fontSize = '99px' ;
- }
-}
-
-function EditField()
-{
- if ( bIsHiddenField )
- alert( this.outerHTML ) ;
-}
-
-</script>
-
-</public:component>
diff --git a/editor/editor/css/fck_editorarea.css b/editor/editor/css/fck_editorarea.css
@@ -1,34 +1,29 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_editorarea.css
- * This is the default CSS file used by the editor area. It defines the
- * initial font of the editor and background color.
- *
- * A user can configure the editor to use another CSS file. Just change
- * the value of the FCKConfig.EditorAreaCSS key in the configuration
- * file.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- * Alfonso Martinez de Lizarrondo - Uritec (alfonso at uritec dot net)
+ *
+ * This is the default CSS file used by the editor area. It defines the
+ * initial font of the editor and background color.
+ *
+ * A user can configure the editor to use another CSS file. Just change
+ * the value of the FCKConfig.EditorAreaCSS key in the configuration
+ * file.
*/
/*
@@ -45,17 +40,18 @@ body
body, td
{
- font-family: Arial, Verdana, Sans-Serif;
+ font-family: Arial, Verdana, sans-serif;
font-size: 12px;
}
a[href]
{
- color: #0000FF !important; /* For Firefox... mark as important, otherwise it becomes black */
+ color: -moz-hyperlinktext !important; /* For Firefox... mark as important, otherwise it becomes black */
+ text-decoration: -moz-anchor-decoration; /* For Firefox 3, otherwise no underline will be used */
}
-/*
- Just uncomment the following block if you want to avoid spaces between
+/*
+ Just uncomment the following block if you want to avoid spaces between
paragraphs. Remember to apply the same style in your output front end page.
*/
@@ -93,4 +89,4 @@ p, ul, li
color: #000066;
font-family: 'Courier New' , Monospace;
background-color: #ff9933;
-}-
\ No newline at end of file
+}
diff --git a/editor/editor/css/fck_internal.css b/editor/editor/css/fck_internal.css
@@ -1,39 +1,33 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_internal.css
- * This CSS Style Sheet defines rules used by the editor for its internal use.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- * Alfonso Martinez de Lizarrondo - Uritec (alfonso at uritec dot net)
+ *
+ * This CSS Style Sheet defines rules used by the editor for its internal use.
*/
-/* Fix to allow putting the caret at the end of the
-content in Firefox if clicking below the content */
+/* Fix to allow putting the caret at the end of the content in Firefox if
+ clicking below the content. */
html
{
- min-height:100%;
+ min-height: 100%;
}
-
table.FCK__ShowTableBorders, table.FCK__ShowTableBorders td, table.FCK__ShowTableBorders th
{
border: #d3d3d3 1px solid;
@@ -47,7 +41,7 @@ form
.FCK__Flash
{
- border: darkgray 1px solid;
+ border: #a9a9a9 1px solid;
background-position: center center;
background-image: url(images/fck_flashlogo.gif);
background-repeat: no-repeat;
@@ -71,21 +65,20 @@ form
.FCK__AnchorC
{
border: 1px dotted #00F;
- background-position: 1 center;
+ background-position: 1px center;
background-image: url(images/fck_anchor.gif);
background-repeat: no-repeat;
- padding-left:18px;
+ padding-left: 18px;
}
-/* Any anchor for non-IE, if we combine it
- with the previous rule IE ignores all. */
+/* Any anchor for non-IE, if we combine it with the previous rule IE ignores all. */
a[name]
{
border: 1px dotted #00F;
background-position: 0 center;
background-image: url(images/fck_anchor.gif);
background-repeat: no-repeat;
- padding-left:18px;
+ padding-left: 18px;
}
.FCK__PageBreak
@@ -104,18 +97,86 @@ a[name]
height: 5px;
}
-input[type="hidden"]
+/* Hidden fields */
+.FCK__InputHidden
{
- display: inline;
- width:20px;
- height:20px;
- border:1px dotted #FF0000 ;
- background-image: url(behaviors/hiddenfield.gif);
+ width: 19px;
+ height: 18px;
+ background-image: url(images/fck_hiddenfield.gif);
background-repeat: no-repeat;
+ vertical-align: text-bottom;
+ background-position: center center;
+}
+
+.FCK__ShowBlocks p,
+.FCK__ShowBlocks div,
+.FCK__ShowBlocks pre,
+.FCK__ShowBlocks address,
+.FCK__ShowBlocks blockquote,
+.FCK__ShowBlocks h1,
+.FCK__ShowBlocks h2,
+.FCK__ShowBlocks h3,
+.FCK__ShowBlocks h4,
+.FCK__ShowBlocks h5,
+.FCK__ShowBlocks h6
+{
+ background-repeat: no-repeat;
+ border: 1px dotted gray;
+ padding-top: 8px;
+ padding-left: 8px;
+}
+
+.FCK__ShowBlocks p
+{
+ background-image: url(images/block_p.png);
+}
+
+.FCK__ShowBlocks div
+{
+ background-image: url(images/block_div.png);
+}
+
+.FCK__ShowBlocks pre
+{
+ background-image: url(images/block_pre.png);
+}
+
+.FCK__ShowBlocks address
+{
+ background-image: url(images/block_address.png);
+}
+
+.FCK__ShowBlocks blockquote
+{
+ background-image: url(images/block_blockquote.png);
+}
+
+.FCK__ShowBlocks h1
+{
+ background-image: url(images/block_h1.png);
+}
+
+.FCK__ShowBlocks h2
+{
+ background-image: url(images/block_h2.png);
+}
+
+.FCK__ShowBlocks h3
+{
+ background-image: url(images/block_h3.png);
+}
+
+.FCK__ShowBlocks h4
+{
+ background-image: url(images/block_h4.png);
+}
+
+.FCK__ShowBlocks h5
+{
+ background-image: url(images/block_h5.png);
}
-input[type="hidden"]:after
+.FCK__ShowBlocks h6
{
- padding-left: 20px;
- content: "" ;
+ background-image: url(images/block_h6.png);
}
diff --git a/editor/editor/css/fck_showtableborders_gecko.css b/editor/editor/css/fck_showtableborders_gecko.css
@@ -1,42 +1,38 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_showtableborders_gecko.css
- * This CSS Style Sheet defines the rules to show table borders on Gecko.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * This CSS Style Sheet defines the rules to show table borders on Gecko.
*/
/* For tables with the "border" attribute set to "0" */
-table[border="0"],
-table[border="0"] > tr > td, table[border="0"] > tr > th,
-table[border="0"] > tbody > tr > td, table[border="0"] > tbody > tr > th,
-table[border="0"] > thead > tr > td, table[border="0"] > thead > tr > th,
+table[border="0"],
+table[border="0"] > tr > td, table[border="0"] > tr > th,
+table[border="0"] > tbody > tr > td, table[border="0"] > tbody > tr > th,
+table[border="0"] > thead > tr > td, table[border="0"] > thead > tr > th,
table[border="0"] > tfoot > tr > td, table[border="0"] > tfoot > tr > th
{
border: #d3d3d3 1px dotted ;
}
/* For tables with no "border" attribute set */
-table:not([border]),
+table:not([border]),
table:not([border]) > tr > td, table:not([border]) > tr > th,
table:not([border]) > tbody > tr > td, table:not([border]) > tbody > tr > th,
table:not([border]) > thead > tr > td, table:not([border]) > thead > tr > th,
diff --git a/editor/editor/css/images/block_address.png b/editor/editor/css/images/block_address.png
Binary files differ.
diff --git a/editor/editor/css/images/block_blockquote.png b/editor/editor/css/images/block_blockquote.png
Binary files differ.
diff --git a/editor/editor/css/images/block_div.png b/editor/editor/css/images/block_div.png
Binary files differ.
diff --git a/editor/editor/css/images/block_h1.png b/editor/editor/css/images/block_h1.png
Binary files differ.
diff --git a/editor/editor/css/images/block_h2.png b/editor/editor/css/images/block_h2.png
Binary files differ.
diff --git a/editor/editor/css/images/block_h3.png b/editor/editor/css/images/block_h3.png
Binary files differ.
diff --git a/editor/editor/css/images/block_h4.png b/editor/editor/css/images/block_h4.png
Binary files differ.
diff --git a/editor/editor/css/images/block_h5.png b/editor/editor/css/images/block_h5.png
Binary files differ.
diff --git a/editor/editor/css/images/block_h6.png b/editor/editor/css/images/block_h6.png
Binary files differ.
diff --git a/editor/editor/css/images/block_p.png b/editor/editor/css/images/block_p.png
Binary files differ.
diff --git a/editor/editor/css/images/block_pre.png b/editor/editor/css/images/block_pre.png
Binary files differ.
diff --git a/editor/editor/css/images/fck_hiddenfield.gif b/editor/editor/css/images/fck_hiddenfield.gif
Binary files differ.
diff --git a/editor/editor/dialog/common/fck_dialog_common.css b/editor/editor/dialog/common/fck_dialog_common.css
@@ -1,29 +1,25 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_dialog_common.css
- * This is the CSS file used for interface details in some dialog
- * windows.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * This is the CSS file used for interface details in some dialog
+ * windows.
*/
.ImagePreviewArea
@@ -80,8 +76,3 @@
cursor: pointer;
cursor: hand;
}
-
-.FCK__FieldNumeric
-{
- behavior: url(common/fcknumericfield.htc) ;
-}-
\ No newline at end of file
diff --git a/editor/editor/dialog/common/fck_dialog_common.js b/editor/editor/dialog/common/fck_dialog_common.js
@@ -1,32 +1,26 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_dialog_common.js
- * Useful functions used by almost all dialog window pages.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Useful functions used by almost all dialog window pages.
*/
-var GECKO_BOGUS = '<br type="_moz">' ;
-
// Gets a element by its Id. Used for shorter coding.
function GetE( elementId )
{
@@ -56,14 +50,23 @@ function GetAttribute( element, attName, valueIfNull )
return valueIfNull ? valueIfNull : '' ;
var oValue = element.getAttribute( attName, 2 ) ;
-
+
if ( oValue == null )
oValue = oAtt.nodeValue ;
return ( oValue == null ? valueIfNull : oValue ) ;
}
-// Functions used by text fiels to accept numbers only.
+var KeyIdentifierMap =
+{
+ End : 35,
+ Home : 36,
+ Left : 37,
+ Right : 39,
+ 'U+00007F' : 46 // Delete
+}
+
+// Functions used by text fields to accept numbers only.
function IsDigit( e )
{
if ( !e )
@@ -71,11 +74,15 @@ function IsDigit( e )
var iCode = ( e.keyCode || e.charCode ) ;
+ if ( !iCode && e.keyIdentifier && ( e.keyIdentifier in KeyIdentifierMap ) )
+ iCode = KeyIdentifierMap[ e.keyIdentifier ] ;
+
return (
( iCode >= 48 && iCode <= 57 ) // Numbers
- || (iCode >= 37 && iCode <= 40) // Arrows
+ || (iCode >= 35 && iCode <= 40) // Arrows, Home, End
|| iCode == 8 // Backspace
|| iCode == 46 // Delete
+ || iCode == 9 // Tab
) ;
}
@@ -105,19 +112,19 @@ String.prototype.Remove = function( start, length )
String.prototype.ReplaceAll = function( searchArray, replaceArray )
{
var replaced = this ;
-
+
for ( var i = 0 ; i < searchArray.length ; i++ )
{
replaced = replaced.replace( searchArray[i], replaceArray[i] ) ;
}
-
+
return replaced ;
}
function OpenFileBrowser( url, width, height )
{
// oEditor must be defined.
-
+
var iLeft = ( oEditor.FCKConfig.ScreenWidth - width ) / 2 ;
var iTop = ( oEditor.FCKConfig.ScreenHeight - height ) / 2 ;
@@ -127,16 +134,16 @@ function OpenFileBrowser( url, width, height )
sOptions += ",left=" + iLeft ;
sOptions += ",top=" + iTop ;
- // The "PreserveSessionOnFileBrowser" because the above code could be
+ // The "PreserveSessionOnFileBrowser" because the above code could be
// blocked by popup blockers.
if ( oEditor.FCKConfig.PreserveSessionOnFileBrowser && oEditor.FCKBrowserInfo.IsIE )
{
- // The following change has been made otherwise IE will open the file
+ // The following change has been made otherwise IE will open the file
// browser on a different server session (on some cases):
// http://support.microsoft.com/default.aspx?scid=kb;en-us;831678
// by Simone Chiaretta.
var oWindow = oEditor.window.open( url, 'FCKBrowseWindow', sOptions ) ;
-
+
if ( oWindow )
{
// Detect Yahoo popup blocker.
@@ -155,4 +162,4 @@ function OpenFileBrowser( url, width, height )
}
else
window.open( url, 'FCKBrowseWindow', sOptions ) ;
-}-
\ No newline at end of file
+}
diff --git a/editor/editor/dialog/common/fcknumericfield.htc b/editor/editor/dialog/common/fcknumericfield.htc
@@ -1,24 +0,0 @@
-<public:component lightweight="true">
-
-<script language="javascript">
-
-function CheckIsDigit()
-{
- var iCode = event.keyCode ;
-
- event.returnValue =
- (
- ( iCode >= 48 && iCode <= 57 ) // Numbers
- || (iCode >= 37 && iCode <= 40) // Arrows
- || iCode == 8 // Backspace
- || iCode == 46 // Delete
- ) ;
-
- return event.returnValue ;
-}
-
-this.onkeypress = CheckIsDigit ;
-
-</script>
-
-</public:component>
diff --git a/editor/editor/dialog/common/moz-bindings.xml b/editor/editor/dialog/common/moz-bindings.xml
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<bindings xmlns="http://www.mozilla.org/xbl">
- <binding id="numericfield">
- <implementation>
- <constructor>
- this.keypress = CheckIsDigit ;
- </constructor>
- <method name="CheckIsDigit">
- <body>
- <![CDATA[
- var iCode = keyCode ;
-
- var bAccepted =
- (
- ( iCode >= 48 && iCode <= 57 ) // Numbers
- || (iCode >= 37 && iCode <= 40) // Arrows
- || iCode == 8 // Backspace
- || iCode == 46 // Delete
- ) ;
-
- return bAccepted ;
- ]]>
- </body>
- </method>
- </implementation>
- <events>
- <event type="keypress" value="CheckIsDigit()" />
- </events>
- </binding>
-</bindings>-
\ No newline at end of file
diff --git a/editor/editor/dialog/fck_about.html b/editor/editor/dialog/fck_about.html
@@ -2,28 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_about.html
- * "About" dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * "About" dialog window.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@@ -82,8 +78,8 @@ window.onload = function()
border-left: #000000 1px solid; border-bottom: #000000 1px solid">
<span fcklang="DlgAboutVersion">version</span>
<br />
- <b>2.4</b><br />
- Build 1148</td>
+ <b>2.5</b><br />
+ Build 17352</td>
</tr>
</table>
</td>
diff --git a/editor/editor/dialog/fck_anchor.html b/editor/editor/dialog/fck_anchor.html
@@ -2,29 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_anchor.html
- * Anchor dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- * Alfonso Martinez de Lizarrondo - Uritec (alfonso at uritec dot net)
+ *
+ * Anchor dialog window.
-->
<html>
<head>
@@ -73,6 +68,7 @@ window.onload = function()
oAnchor = null ;
window.parent.SetOkButton( true ) ;
+ window.parent.SetAutoSize( true ) ;
}
function Ok()
@@ -86,18 +82,19 @@ function Ok()
if ( sNewName.length == 0 )
{
// Remove the anchor if the user leaves the name blank
- if ( oAnchor )
+ if ( oAnchor )
{
- RemoveAnchor() ;
+ // Removes the current anchor from the document using the new command
+ FCK.Commands.GetCommand( 'AnchorDelete' ).Execute() ;
return true ;
}
alert( oEditor.FCKLang.DlgAnchorErrorName ) ;
return false ;
}
-
+
oEditor.FCKUndo.SaveUndoStep() ;
-
+
if ( oAnchor ) // Modifying an existent anchor.
{
ReadjustLinksToAnchor( oAnchor.name, sNewName );
@@ -115,79 +112,58 @@ function Ok()
}
// Create a new anchor preserving the current selection
- oAnchor = oEditor.FCK.CreateLink( '#' ) ;
- if ( !oAnchor )
+ var aNewAnchors = oEditor.FCK.CreateLink( '#' ) ;
+
+ if ( aNewAnchors.length == 0 )
{
// Nothing was selected, so now just create a normal A
- oAnchor = oEditor.FCK.CreateElement( 'a' ) ;
+ aNewAnchors.push( oEditor.FCK.InsertElement( 'a' ) ) ;
}
else
{
// Remove the fake href
- oAnchor.removeAttribute( 'href' ) ;
+ for ( var i = 0 ; i < aNewAnchors.length ; i++ )
+ aNewAnchors[i].removeAttribute( 'href' ) ;
}
- // Set the name
- oAnchor.name = sNewName ;
- // IE does require special processing to show the Anchor's image
- // Opera doesn't allow to select empty anchors
- if ( FCKBrowserInfo.IsIE || FCKBrowserInfo.IsOpera )
+ // More than one anchors may have been created, so interact through all of them (see #220).
+ for ( var i = 0 ; i < aNewAnchors.length ; i++ )
{
- if ( oAnchor.innerHTML != '' )
- {
- if ( FCKBrowserInfo.IsIE )
- oAnchor.className += ' FCK__AnchorC' ;
- }
- else
- {
- // Create a fake image for both IE and Opera
- var oImg = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Anchor', oAnchor.cloneNode(true) ) ;
- oImg.setAttribute( '_fckanchor', 'true', 0 ) ;
-
- oAnchor.parentNode.insertBefore( oImg, oAnchor ) ;
- oAnchor.parentNode.removeChild( oAnchor ) ;
- }
+ oAnchor = aNewAnchors[i] ;
- }
+ // Set the name
+ oAnchor.name = sNewName ;
- return true ;
-}
+ // IE does require special processing to show the Anchor's image
+ // Opera doesn't allow to select empty anchors
+ if ( FCKBrowserInfo.IsIE || FCKBrowserInfo.IsOpera )
+ {
+ if ( oAnchor.innerHTML != '' )
+ {
+ if ( FCKBrowserInfo.IsIE )
+ oAnchor.className += ' FCK__AnchorC' ;
+ }
+ else
+ {
+ // Create a fake image for both IE and Opera
+ var oImg = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Anchor', oAnchor.cloneNode(true) ) ;
+ oImg.setAttribute( '_fckanchor', 'true', 0 ) ;
+
+ oAnchor.parentNode.insertBefore( oImg, oAnchor ) ;
+ oAnchor.parentNode.removeChild( oAnchor ) ;
+ }
-// Removes the current anchor from the document
-function RemoveAnchor()
-{
- // If it's also a link, then just remove the name and exit
- if ( oAnchor.href.length != 0 )
- {
- oAnchor.removeAttribute( 'name' ) ;
- // Remove temporary class for IE
- if ( FCKBrowserInfo.IsIE )
- oAnchor.className = oAnchor.className.replace( FCKRegexLib.FCK_Class, '' ) ;
- return ;
+ }
}
- // We need to remove the anchor
- // If we got a fake image, then just remove it and we're done
- if ( oFakeImage )
- {
- oFakeImage.parentNode.removeChild( oFakeImage ) ;
- return ;
- }
- // Empty anchor, so just remove it
- if ( oAnchor.innerHTML.length == 0 )
- {
- oAnchor.parentNode.removeChild( oAnchor ) ;
- return ;
- }
- // Anchor with content, leave the content
- FCKTools.RemoveOuterTags( oAnchor ) ;
+ return true ;
}
// Checks all the links in the current page pointing to the current name and changes them to the new name
function ReadjustLinksToAnchor( sCurrent, sNew )
{
var oDoc = FCK.EditorDocument ;
-
+
var aLinks = oDoc.getElementsByTagName( 'A' ) ;
var sReference = '#' + sCurrent ;
@@ -213,7 +189,7 @@ function ReadjustLinksToAnchor( sCurrent, sNew )
</script>
</head>
- <body style="OVERFLOW: hidden" scroll="no">
+ <body style="overflow: hidden">
<table height="100%" width="100%">
<tr>
<td align="center">
diff --git a/editor/editor/dialog/fck_button.html b/editor/editor/dialog/fck_button.html
@@ -2,28 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_button.html
- * Button dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Button dialog window.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@@ -57,15 +53,18 @@ window.onload = function()
oActiveEl = null ;
window.parent.SetOkButton( true ) ;
+ window.parent.SetAutoSize( true ) ;
}
function Ok()
{
+ oEditor.FCKUndo.SaveUndoStep() ;
+
if ( !oActiveEl )
{
oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ;
oActiveEl.type = GetE('txtType').value ;
- oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
+ oActiveEl = oEditor.FCK.InsertElement( oActiveEl ) ;
}
oActiveEl.name = GetE('txtName').value ;
diff --git a/editor/editor/dialog/fck_checkbox.html b/editor/editor/dialog/fck_checkbox.html
@@ -2,28 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_checkbox.html
- * Checkbox dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Checkbox dialog window.
-->
<html>
<head>
@@ -55,20 +51,23 @@ window.onload = function()
oActiveEl = null ;
window.parent.SetOkButton( true ) ;
+ window.parent.SetAutoSize( true ) ;
}
function Ok()
{
+ oEditor.FCKUndo.SaveUndoStep() ;
+
if ( !oActiveEl )
{
oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ;
oActiveEl.type = 'checkbox' ;
- oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
+ oActiveEl = oEditor.FCK.InsertElement( oActiveEl ) ;
}
if ( GetE('txtName').value.length > 0 )
oActiveEl.name = GetE('txtName').value ;
-
+
if ( oEditor.FCKBrowserInfo.IsIE )
oActiveEl.value = GetE('txtValue').value ;
else
diff --git a/editor/editor/dialog/fck_colorselector.html b/editor/editor/dialog/fck_colorselector.html
@@ -1,30 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_colorselector.html
- * Color Selection dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Color Selection dialog window.
-->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
@@ -39,17 +35,17 @@
.ColorCell { height: 15px ; width: 15px ; }
</style>
<script type="text/javascript">
-
+
var oEditor = window.parent.InnerDialogLoaded() ;
function OnLoad()
{
// First of all, translate the dialog box texts
oEditor.FCKLanguageManager.TranslatePage(document) ;
-
+
CreateColorTable() ;
-
- window.parent.SetOkButton( true ) ;
+
+ window.parent.SetOkButton( true ) ;
window.parent.SetAutoSize( true ) ;
}
@@ -64,17 +60,17 @@ function CreateColorTable()
// This function combines two ranges of three values from the color array into a row.
function AppendColorRow( rangeA, rangeB )
{
- for ( var i = rangeA ; i < rangeA + 3 ; i++ )
- {
- var oRow = oTable.insertRow(-1) ;
-
- for ( var j = rangeB ; j < rangeB + 3 ; j++ )
- {
- for ( var n = 0 ; n < 6 ; n++ )
- {
- AppendColorCell( oRow, '#' + aColors[j] + aColors[n] + aColors[i] ) ;
- }
- }
+ for ( var i = rangeA ; i < rangeA + 3 ; i++ )
+ {
+ var oRow = oTable.insertRow(-1) ;
+
+ for ( var j = rangeB ; j < rangeB + 3 ; j++ )
+ {
+ for ( var n = 0 ; n < 6 ; n++ )
+ {
+ AppendColorCell( oRow, '#' + aColors[j] + aColors[n] + aColors[i] ) ;
+ }
+ }
}
}
@@ -84,13 +80,13 @@ function CreateColorTable()
var oCell = targetRow.insertCell(-1) ;
oCell.className = 'ColorCell' ;
oCell.bgColor = color ;
-
+
oCell.onmouseover = function()
{
document.getElementById('hicolor').style.backgroundColor = this.bgColor ;
document.getElementById('hicolortext').innerHTML = this.bgColor ;
}
-
+
oCell.onclick = function()
{
document.getElementById('selhicolor').style.backgroundColor = this.bgColor ;
@@ -105,17 +101,17 @@ function CreateColorTable()
// Create the last row.
var oRow = oTable.insertRow(-1) ;
-
+
// Create the gray scale colors cells.
for ( var n = 0 ; n < 6 ; n++ )
{
- AppendColorCell( oRow, '#' + aColors[n] + aColors[n] + aColors[n] ) ;
+ AppendColorCell( oRow, '#' + aColors[n] + aColors[n] + aColors[n] ) ;
}
-
+
// Fill the row with black cells.
for ( var i = 0 ; i < 12 ; i++ )
{
- AppendColorCell( oRow, '#000000' ) ;
+ AppendColorCell( oRow, '#000000' ) ;
}
}
diff --git a/editor/editor/dialog/fck_docprops.html b/editor/editor/dialog/fck_docprops.html
@@ -2,28 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_docprops.html
- * Link dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Link dialog window.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@@ -286,7 +282,7 @@ function Ok()
if ( sCharSet.length == 0 )
sCharSet = 'utf-8' ;
- FCK.XmlDeclaration = '<?xml version="1.0" encoding="' + sCharSet + '"?>' ;
+ FCK.XmlDeclaration = '<' + '?xml version="1.0" encoding="' + sCharSet + '"?>' ;
SetAttribute( oHTML, 'xmlns', 'http://www.w3.org/1999/xhtml' ) ;
}
@@ -362,9 +358,9 @@ function CheckOther( combo, txtField )
GetE(txtField).disabled = bNotOther ;
}
-function SetColor( inputId, color )
+function SetColor( inputId, color )
{
- GetE( inputId ).value = color + '' ;
+ GetE( inputId ).value = color + '' ;
UpdatePreview() ;
}
diff --git a/editor/editor/dialog/fck_docprops/fck_document_preview.html b/editor/editor/dialog/fck_docprops/fck_document_preview.html
@@ -2,28 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_document_preview.html
- * Preview shown in the "Document Properties" dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Preview shown in the "Document Properties" dialog window.
-->
<html>
<head>
diff --git a/editor/editor/dialog/fck_find.html b/editor/editor/dialog/fck_find.html
@@ -1,177 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!--
- * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
- * == BEGIN LICENSE ==
- *
- * Licensed under the terms of any of the following licenses at your
- * choice:
- *
- * - GNU General Public License Version 2 or later (the "GPL")
- * http://www.gnu.org/licenses/gpl.html
- *
- * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- * http://www.gnu.org/licenses/lgpl.html
- *
- * - Mozilla Public License Version 1.1 or later (the "MPL")
- * http://www.mozilla.org/MPL/MPL-1.1.html
- *
- * == END LICENSE ==
- *
- * File Name: fck_find.html
- * "Find" dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
--->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title></title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta content="noindex, nofollow" name="robots" />
- <script type="text/javascript">
-
-var oEditor = window.parent.InnerDialogLoaded() ;
-
-function OnLoad()
-{
- // Whole word is available on IE only.
- if ( oEditor.FCKBrowserInfo.IsIE )
- document.getElementById('divWord').style.display = '' ;
-
- // First of all, translate the dialog box texts.
- oEditor.FCKLanguageManager.TranslatePage( document ) ;
-
- window.parent.SetAutoSize( true ) ;
-}
-
-function btnStat(frm)
-{
- document.getElementById('btnFind').disabled =
- ( document.getElementById('txtFind').value.length == 0 ) ;
-}
-
-function ReplaceTextNodes( parentNode, regex, replaceValue, replaceAll )
-{
- for ( var i = 0 ; i < parentNode.childNodes.length ; i++ )
- {
- var oNode = parentNode.childNodes[i] ;
- if ( oNode.nodeType == 3 )
- {
- var sReplaced = oNode.nodeValue.replace( regex, replaceValue ) ;
- if ( oNode.nodeValue != sReplaced )
- {
- oNode.nodeValue = sReplaced ;
- if ( ! replaceAll )
- return true ;
- }
- }
- else
- {
- if ( ReplaceTextNodes( oNode, regex, replaceValue ) )
- return true ;
- }
- }
- return false ;
-}
-
-function GetRegexExpr()
-{
- var sExpr ;
-
- if ( document.getElementById('chkWord').checked )
- sExpr = '\\b' + document.getElementById('txtFind').value + '\\b' ;
- else
- sExpr = document.getElementById('txtFind').value ;
-
- return sExpr ;
-}
-
-function GetCase()
-{
- return ( document.getElementById('chkCase').checked ? '' : 'i' ) ;
-}
-
-function Ok()
-{
- if ( document.getElementById('txtFind').value.length == 0 )
- return ;
-
- if ( oEditor.FCKBrowserInfo.IsIE )
- FindIE() ;
- else
- FindGecko() ;
-}
-
-var oRange ;
-
-if ( oEditor.FCKBrowserInfo.IsIE )
- oRange = oEditor.FCK.EditorDocument.body.createTextRange() ;
-
-function FindIE()
-{
- var iFlags = 0 ;
-
- if ( chkCase.checked )
- iFlags = iFlags | 4 ;
-
- if ( chkWord.checked )
- iFlags = iFlags | 2 ;
-
- var bFound = oRange.findText( document.getElementById('txtFind').value, 1, iFlags ) ;
-
- if ( bFound )
- {
- oRange.scrollIntoView() ;
- oRange.select() ;
- oRange.collapse(false) ;
- oLastRangeFound = oRange ;
- }
- else
- {
- oRange = oEditor.FCK.EditorDocument.body.createTextRange() ;
- alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ;
- }
-}
-
-function FindGecko()
-{
- var bCase = document.getElementById('chkCase').checked ;
- var bWord = document.getElementById('chkWord').checked ;
-
- // window.find( searchString, caseSensitive, backwards, wrapAround, wholeWord, searchInFrames, showDialog ) ;
- if ( !oEditor.FCK.EditorWindow.find( document.getElementById('txtFind').value, bCase, false, false, bWord, false, false ) )
- alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ;
-}
- </script>
-</head>
-<body onload="OnLoad()" style="overflow: hidden">
- <table cellspacing="3" cellpadding="2" width="100%" border="0">
- <tr>
- <td nowrap="nowrap">
- <label for="txtFind" fcklang="DlgReplaceFindLbl">
- Find what:</label>
- </td>
- <td width="100%">
- <input id="txtFind" style="width: 100%" tabindex="1" type="text" />
- </td>
- <td>
- <input id="btnFind" style="padding-right: 5px; padding-left: 5px" onclick="Ok();"
- type="button" value="Find" fcklang="DlgFindFindBtn" />
- </td>
- </tr>
- <tr>
- <td valign="bottom" colspan="3">
- <input id="chkCase" tabindex="3" type="checkbox" /><label for="chkCase" fcklang="DlgReplaceCaseChk">Match
- case</label>
- <br />
- <div id="divWord" style="display: none">
- <input id="chkWord" tabindex="4" type="checkbox" /><label for="chkWord" fcklang="DlgReplaceWordChk">Match
- whole word</label>
- </div>
- </td>
- </tr>
- </table>
-</body>
-</html>
diff --git a/editor/editor/dialog/fck_flash.html b/editor/editor/dialog/fck_flash.html
@@ -2,28 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_flash.html
- * Flash Properties dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Flash Properties dialog window.
-->
<html>
<head>
@@ -59,12 +55,12 @@
<TR>
<TD nowrap>
<span fckLang="DlgImgWidth">Width</span><br>
- <input id="txtWidth" class="FCK__FieldNumeric" type="text" size="3">
+ <input id="txtWidth" onkeypress="return IsDigit(event);" type="text" size="3">
</TD>
<TD> </TD>
<TD>
<span fckLang="DlgImgHeight">Height</span><br>
- <input id="txtHeight" class="FCK__FieldNumeric" type="text" size="3">
+ <input id="txtHeight" onkeypress="return IsDigit(event);" type="text" size="3">
</TD>
</TR>
</table>
@@ -96,7 +92,7 @@
<input id="txtUploadFile" style="WIDTH: 100%" type="file" size="40" name="NewFile" /><br />
<br />
<input id="btnUpload" type="submit" value="Send it to the Server" fckLang="DlgLnkBtnUpload" />
- <iframe name="UploadWindow" style="DISPLAY: none" src="javascript:void(0)"></iframe>
+ <iframe name="UploadWindow" style="DISPLAY: none" src="javascript:void(0)"></iframe>
</form>
</div>
<div id="divAdvanced" style="DISPLAY: none">
diff --git a/editor/editor/dialog/fck_flash/fck_flash.js b/editor/editor/dialog/fck_flash/fck_flash.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_flash.js
- * Scripts related to the Flash dialog window (see fck_flash.html).
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Scripts related to the Flash dialog window (see fck_flash.html).
*/
var oEditor = window.parent.InnerDialogLoaded() ;
@@ -86,8 +82,6 @@ function LoadSelection()
{
if ( ! oEmbed ) return ;
- var sUrl = GetAttribute( oEmbed, 'src', '' ) ;
-
GetE('txtUrl').value = GetAttribute( oEmbed, 'src', '' ) ;
GetE('txtWidth').value = GetAttribute( oEmbed, 'width', '' ) ;
GetE('txtHeight').value = GetAttribute( oEmbed, 'height', '' ) ;
@@ -98,7 +92,7 @@ function LoadSelection()
GetE('chkLoop').checked = GetAttribute( oEmbed, 'loop', 'true' ) == 'true' ;
GetE('chkMenu').checked = GetAttribute( oEmbed, 'menu', 'true' ) == 'true' ;
GetE('cmbScale').value = GetAttribute( oEmbed, 'scale', '' ).toLowerCase() ;
-
+
GetE('txtAttTitle').value = oEmbed.title ;
if ( oEditor.FCKBrowserInfo.IsIE )
@@ -109,7 +103,7 @@ function LoadSelection()
else
{
GetE('txtAttClasses').value = oEmbed.getAttribute('class',2) || '' ;
- GetE('txtAttStyle').value = oEmbed.getAttribute('style',2) ;
+ GetE('txtAttStyle').value = oEmbed.getAttribute('style',2) || '' ;
}
UpdatePreview() ;
@@ -128,22 +122,21 @@ function Ok()
return false ;
}
+ oEditor.FCKUndo.SaveUndoStep() ;
if ( !oEmbed )
{
oEmbed = FCK.EditorDocument.createElement( 'EMBED' ) ;
oFakeImage = null ;
}
UpdateEmbed( oEmbed ) ;
-
+
if ( !oFakeImage )
{
oFakeImage = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Flash', oEmbed ) ;
oFakeImage.setAttribute( '_fckflash', 'true', 0 ) ;
- oFakeImage = FCK.InsertElementAndGetIt( oFakeImage ) ;
+ oFakeImage = FCK.InsertElement( oFakeImage ) ;
}
- else
- oEditor.FCKUndo.SaveUndoStep() ;
-
+
oEditor.FCKFlashProcessor.RefreshView( oFakeImage, oEmbed ) ;
return true ;
@@ -154,15 +147,15 @@ function UpdateEmbed( e )
SetAttribute( e, 'type' , 'application/x-shockwave-flash' ) ;
SetAttribute( e, 'pluginspage' , 'http://www.macromedia.com/go/getflashplayer' ) ;
- e.src = GetE('txtUrl').value ;
+ SetAttribute( e, 'src', GetE('txtUrl').value ) ;
SetAttribute( e, "width" , GetE('txtWidth').value ) ;
SetAttribute( e, "height", GetE('txtHeight').value ) ;
-
+
// Advances Attributes
SetAttribute( e, 'id' , GetE('txtAttId').value ) ;
SetAttribute( e, 'scale', GetE('cmbScale').value ) ;
-
+
SetAttribute( e, 'play', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ;
SetAttribute( e, 'loop', GetE('chkLoop').checked ? 'true' : 'false' ) ;
SetAttribute( e, 'menu', GetE('chkMenu').checked ? 'true' : 'false' ) ;
@@ -186,7 +179,7 @@ var ePreview ;
function SetPreviewElement( previewEl )
{
ePreview = previewEl ;
-
+
if ( GetE('txtUrl').value.length > 0 )
UpdatePreview() ;
}
@@ -195,7 +188,7 @@ function UpdatePreview()
{
if ( !ePreview )
return ;
-
+
while ( ePreview.firstChild )
ePreview.removeChild( ePreview.firstChild ) ;
@@ -205,12 +198,12 @@ function UpdatePreview()
{
var oDoc = ePreview.ownerDocument || ePreview.document ;
var e = oDoc.createElement( 'EMBED' ) ;
-
- e.src = GetE('txtUrl').value ;
- e.type = 'application/x-shockwave-flash' ;
- e.width = '100%' ;
- e.height = '100%' ;
-
+
+ SetAttribute( e, 'src', GetE('txtUrl').value ) ;
+ SetAttribute( e, 'type', 'application/x-shockwave-flash' ) ;
+ SetAttribute( e, 'width', '100%' ) ;
+ SetAttribute( e, 'height', '100%' ) ;
+
ePreview.appendChild( e ) ;
}
}
@@ -225,11 +218,11 @@ function BrowseServer()
function SetUrl( url, width, height )
{
GetE('txtUrl').value = url ;
-
+
if ( width )
GetE('txtWidth').value = width ;
-
- if ( height )
+
+ if ( height )
GetE('txtHeight').value = height ;
UpdatePreview() ;
@@ -274,19 +267,19 @@ var oUploadDeniedExtRegex = new RegExp( FCKConfig.FlashUploadDeniedExtensions, '
function CheckUpload()
{
var sFile = GetE('txtUploadFile').value ;
-
+
if ( sFile.length == 0 )
{
alert( 'Please select a file to upload' ) ;
return false ;
}
-
+
if ( ( FCKConfig.FlashUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
( FCKConfig.FlashUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
{
OnUploadCompleted( 202 ) ;
return false ;
}
-
+
return true ;
-}-
\ No newline at end of file
+}
diff --git a/editor/editor/dialog/fck_flash/fck_flash_preview.html b/editor/editor/dialog/fck_flash/fck_flash_preview.html
@@ -1,30 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_flash_preview.html
- * Preview page for the Flash dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Preview page for the Flash dialog window.
-->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
diff --git a/editor/editor/dialog/fck_form.html b/editor/editor/dialog/fck_form.html
@@ -2,28 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_form.html
- * Form dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Form dialog window.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@@ -45,7 +41,7 @@ window.onload = function()
// First of all, translate the dialog box texts
oEditor.FCKLanguageManager.TranslatePage(document) ;
- if ( oActiveEl )
+ if ( oActiveEl )
{
GetE('txtName').value = oActiveEl.name ;
GetE('txtAction').value = oActiveEl.getAttribute( 'action', 2 ) ;
@@ -55,19 +51,21 @@ window.onload = function()
oActiveEl = null ;
window.parent.SetOkButton( true ) ;
+ window.parent.SetAutoSize( true ) ;
}
function Ok()
{
if ( !oActiveEl )
{
- oActiveEl = oEditor.FCK.EditorDocument.createElement( 'FORM' ) ;
- oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
- oActiveEl.innerHTML = ' ' ;
+ oActiveEl = oEditor.FCK.InsertElement( 'form' ) ;
+
+ if ( oEditor.FCKBrowserInfo.IsGeckoLike )
+ oEditor.FCKTools.AppendBogusBr( oActiveEl ) ;
}
-
+
oActiveEl.name = GetE('txtName').value ;
- SetAttribute( oActiveEl, 'action' , GetE('txtAction').value ) ;
+ SetAttribute( oActiveEl, 'action', GetE('txtAction').value ) ;
oActiveEl.method = GetE('txtMethod').value ;
return true ;
diff --git a/editor/editor/dialog/fck_hiddenfield.html b/editor/editor/dialog/fck_hiddenfield.html
@@ -2,98 +2,118 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_hiddenfield.html
- * Hidden Field dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Hidden Field dialog window.
-->
-<html>
- <head>
- <title>Hidden Field Properties</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta content="noindex, nofollow" name="robots">
- <script src="common/fck_dialog_common.js" type="text/javascript"></script>
- <script type="text/javascript">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Hidden Field Properties</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta content="noindex, nofollow" name="robots" />
+ <script src="common/fck_dialog_common.js" type="text/javascript"></script>
+ <script type="text/javascript">
var oEditor = window.parent.InnerDialogLoaded() ;
+var FCK = oEditor.FCK ;
// Gets the document DOM
-var oDOM = oEditor.FCK.EditorDocument ;
+var oDOM = FCK.EditorDocument ;
-var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ;
+// Get the selected flash embed (if available).
+var oFakeImage = FCK.Selection.GetSelectedElement() ;
+var oActiveEl ;
+
+if ( oFakeImage )
+{
+ if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckinputhidden') )
+ oActiveEl = FCK.GetRealElement( oFakeImage ) ;
+ else
+ oFakeImage = null ;
+}
window.onload = function()
{
// First of all, translate the dialog box texts
oEditor.FCKLanguageManager.TranslatePage(document) ;
- if ( oActiveEl && oActiveEl.tagName == 'INPUT' && oActiveEl.type == 'hidden' )
+ if ( oActiveEl )
{
GetE('txtName').value = oActiveEl.name ;
GetE('txtValue').value = oActiveEl.value ;
}
- else
- oActiveEl = null ;
window.parent.SetOkButton( true ) ;
-}
+ window.parent.SetAutoSize( true ) ;
+}
function Ok()
{
+ oEditor.FCKUndo.SaveUndoStep() ;
+
if ( !oActiveEl )
{
- oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ;
+ oActiveEl = FCK.EditorDocument.createElement( 'INPUT' ) ;
oActiveEl.type = 'hidden' ;
- oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
+
+ oFakeImage = null ;
}
-
+
oActiveEl.name = GetE('txtName').value ;
SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;
+ if ( !oFakeImage )
+ {
+ oFakeImage = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__InputHidden', oActiveEl ) ;
+ oFakeImage.setAttribute( '_fckinputhidden', 'true', 0 ) ;
+ oFakeImage = FCK.InsertElement( oFakeImage ) ;
+ }
+ else
+ oEditor.FCKUndo.SaveUndoStep() ;
+
+ oEditor.FCKFlashProcessor.RefreshView( oFakeImage, oActiveEl ) ;
+
return true ;
}
- </script>
- </head>
- <body style="OVERFLOW: hidden" scroll="no">
- <table height="100%" width="100%">
- <tr>
- <td align="center">
- <table border="0" class="inhoud" cellpadding="0" cellspacing="0" width="80%">
- <tr>
- <td>
- <span fckLang="DlgHiddenName">Name</span><br>
- <input type="text" size="20" id="txtName" style="WIDTH: 100%">
- </td>
- </tr>
- <tr>
- <td>
- <span fckLang="DlgHiddenValue">Value</span><br>
- <input type="text" size="30" id="txtValue" style="WIDTH: 100%">
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </body>
+ </script>
+</head>
+<body style="overflow: hidden" scroll="no">
+ <table height="100%" width="100%">
+ <tr>
+ <td align="center">
+ <table border="0" class="inhoud" cellpadding="0" cellspacing="0" width="80%">
+ <tr>
+ <td>
+ <span fcklang="DlgHiddenName">Name</span><br />
+ <input type="text" size="20" id="txtName" style="width: 100%" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <span fcklang="DlgHiddenValue">Value</span><br />
+ <input type="text" size="30" id="txtValue" style="width: 100%" />
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</body>
</html>
diff --git a/editor/editor/dialog/fck_image.html b/editor/editor/dialog/fck_image.html
@@ -1,30 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_image.html
- * Image Properties dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Image Properties dialog window.
-->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Image Properties</title>
diff --git a/editor/editor/dialog/fck_image/fck_image.js b/editor/editor/dialog/fck_image/fck_image.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_image.js
- * Scripts related to the Image dialog window (see fck_image.html).
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Scripts related to the Image dialog window (see fck_image.html).
*/
var oEditor = window.parent.InnerDialogLoaded() ;
@@ -71,13 +67,13 @@ function UpdateOriginal( resetSize )
{
if ( !eImgPreview )
return ;
-
+
if ( GetE('txtUrl').value.length == 0 )
{
oImageOriginal = null ;
return ;
}
-
+
oImageOriginal = document.createElement( 'IMG' ) ; // new Image() ;
if ( resetSize )
@@ -139,7 +135,7 @@ function LoadSelection()
var iWidth, iHeight ;
var regexSize = /^\s*(\d+)px\s*$/i ;
-
+
if ( oImage.style.width )
{
var aMatchW = oImage.style.width.match( regexSize ) ;
@@ -147,6 +143,7 @@ function LoadSelection()
{
iWidth = aMatchW[1] ;
oImage.style.width = '' ;
+ SetAttribute( oImage, 'width' , iWidth ) ;
}
}
@@ -157,6 +154,7 @@ function LoadSelection()
{
iHeight = aMatchH[1] ;
oImage.style.height = '' ;
+ SetAttribute( oImage, 'height', iHeight ) ;
}
}
@@ -172,7 +170,7 @@ function LoadSelection()
if ( oEditor.FCKBrowserInfo.IsIE )
{
- GetE('txtAttClasses').value = oImage.getAttribute('className') || '' ;
+ GetE('txtAttClasses').value = oImage.className || '' ;
GetE('txtAttStyle').value = oImage.style.cssText ;
}
else
@@ -186,7 +184,7 @@ function LoadSelection()
var sLinkUrl = oLink.getAttribute( '_fcksavedurl' ) ;
if ( sLinkUrl == null )
sLinkUrl = oLink.getAttribute('href',2) ;
-
+
GetE('txtLnkUrl').value = sLinkUrl ;
GetE('cmbLnkTarget').value = oLink.target ;
}
@@ -219,21 +217,20 @@ function Ok()
if ( confirm( 'Do you want to transform the selected image button on a simple image?' ) )
oImage = null ;
}
-
+
+ oEditor.FCKUndo.SaveUndoStep() ;
if ( !bHasImage )
{
if ( bImageButton )
{
- oImage = FCK.EditorDocument.createElement( 'INPUT' ) ;
+ oImage = FCK.EditorDocument.createElement( 'input' ) ;
oImage.type = 'image' ;
- oImage = FCK.InsertElementAndGetIt( oImage ) ;
+ oImage = FCK.InsertElement( oImage ) ;
}
else
- oImage = FCK.CreateElement( 'IMG' ) ;
+ oImage = FCK.InsertElement( 'img' ) ;
}
- else
- oEditor.FCKUndo.SaveUndoStep() ;
-
+
UpdateImage( oImage ) ;
var sLnkUrl = GetE('txtLnkUrl').value.Trim() ;
@@ -252,7 +249,7 @@ function Ok()
if ( !bHasImage )
oEditor.FCKSelection.SelectNode( oImage ) ;
- oLink = oEditor.FCK.CreateLink( sLnkUrl ) ;
+ oLink = oEditor.FCK.CreateLink( sLnkUrl )[0] ;
if ( !bHasImage )
{
@@ -288,13 +285,18 @@ function UpdateImage( e, skipId )
SetAttribute( e, 'dir' , GetE('cmbAttLangDir').value ) ;
SetAttribute( e, 'lang' , GetE('txtAttLangCode').value ) ;
SetAttribute( e, 'title' , GetE('txtAttTitle').value ) ;
- SetAttribute( e, 'class' , GetE('txtAttClasses').value ) ;
SetAttribute( e, 'longDesc' , GetE('txtLongDesc').value ) ;
if ( oEditor.FCKBrowserInfo.IsIE )
+ {
+ e.className = GetE('txtAttClasses').value ;
e.style.cssText = GetE('txtAttStyle').value ;
+ }
else
+ {
+ SetAttribute( e, 'class' , GetE('txtAttClasses').value ) ;
SetAttribute( e, 'style', GetE('txtAttStyle').value ) ;
+ }
}
var eImgPreview ;
@@ -307,7 +309,7 @@ function SetPreviewElements( imageElement, linkElement )
UpdatePreview() ;
UpdateOriginal() ;
-
+
bPreviewInitialized = true ;
}
@@ -351,11 +353,11 @@ function SwitchLock( lockButton )
// Fired when the width or height input texts change
function OnSizeChanged( dimension, value )
{
- // Verifies if the aspect ration has to be mantained
+ // Verifies if the aspect ration has to be maintained
if ( oImageOriginal && bLockRatio )
{
var e = dimension == 'Width' ? GetE('txtHeight') : GetE('txtWidth') ;
-
+
if ( value.length == 0 || isNaN( value ) )
{
e.value = '' ;
@@ -430,7 +432,7 @@ function SetUrl( url, width, height, alt )
UpdatePreview() ;
UpdateOriginal( true ) ;
}
-
+
window.parent.SetSelectedTab( 'Info' ) ;
}
@@ -472,19 +474,19 @@ var oUploadDeniedExtRegex = new RegExp( FCKConfig.ImageUploadDeniedExtensions, '
function CheckUpload()
{
var sFile = GetE('txtUploadFile').value ;
-
+
if ( sFile.length == 0 )
{
alert( 'Please select a file to upload' ) ;
return false ;
}
-
+
if ( ( FCKConfig.ImageUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
( FCKConfig.ImageUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
{
OnUploadCompleted( 202 ) ;
return false ;
}
-
+
return true ;
-}-
\ No newline at end of file
+}
diff --git a/editor/editor/dialog/fck_image/fck_image_preview.html b/editor/editor/dialog/fck_image/fck_image_preview.html
@@ -1,31 +1,28 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_image_preview.html
- * Preview page for the Image dialog window.
- * Curiosity: http://en.wikipedia.org/wiki/Lorem_ipsum
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Preview page for the Image dialog window.
+ *
+ * Curiosity: http://en.wikipedia.org/wiki/Lorem_ipsum
-->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
@@ -42,7 +39,7 @@ if ( window.parent.FCKConfig.BaseHref.length > 0 )
window.onload = function()
{
- window.parent.SetPreviewElements(
+ window.parent.SetPreviewElements(
document.getElementById( 'imgPreview' ),
document.getElementById( 'lnkPreview' ) ) ;
}
diff --git a/editor/editor/dialog/fck_link.html b/editor/editor/dialog/fck_link.html
@@ -1,30 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_link.html
- * Link dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Link dialog window.
-->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Link Properties</title>
@@ -53,7 +49,6 @@
<option value="https://">https://</option>
<option value="ftp://">ftp://</option>
<option value="news://">news://</option>
- <option value="object://">OpenRat-Object-Id://</option>
<option value="" fckLang="DlgLnkProtoOther"><other></option>
</select>
</td>
@@ -113,7 +108,7 @@
<input id="txtUploadFile" style="WIDTH: 100%" type="file" size="40" name="NewFile" /><br />
<br />
<input id="btnUpload" type="submit" value="Send it to the Server" fckLang="DlgLnkBtnUpload" />
- <iframe name="UploadWindow" style="DISPLAY: none" src="javascript:void(0)"></iframe>
+ <iframe name="UploadWindow" style="DISPLAY: none" src="javascript:void(0)"></iframe>
</form>
</div>
<div id="divTarget" style="DISPLAY: none">
@@ -153,21 +148,21 @@
<tr>
<td valign="top" nowrap="nowrap" width="50%">
<input id="chkPopupResizable" name="chkFeature" value="resizable" type="checkbox" /><label for="chkPopupResizable" fckLang="DlgLnkPopResize">Resizable</label><br />
- <input id="chkPopupLocationBar" name="chkFeature" value="location" type="checkbox" /><label for="chkPopupLocationBar" fckLang="DlgLnkPopLocation">Location
+ <input id="chkPopupLocationBar" name="chkFeature" value="location" type="checkbox" /><label for="chkPopupLocationBar" fckLang="DlgLnkPopLocation">Location
Bar</label><br />
- <input id="chkPopupManuBar" name="chkFeature" value="menubar" type="checkbox" /><label for="chkPopupManuBar" fckLang="DlgLnkPopMenu">Menu
+ <input id="chkPopupManuBar" name="chkFeature" value="menubar" type="checkbox" /><label for="chkPopupManuBar" fckLang="DlgLnkPopMenu">Menu
Bar</label><br />
- <input id="chkPopupScrollBars" name="chkFeature" value="scrollbars" type="checkbox" /><label for="chkPopupScrollBars" fckLang="DlgLnkPopScroll">Scroll
+ <input id="chkPopupScrollBars" name="chkFeature" value="scrollbars" type="checkbox" /><label for="chkPopupScrollBars" fckLang="DlgLnkPopScroll">Scroll
Bars</label>
</td>
<td></td>
<td valign="top" nowrap="nowrap" width="50%">
- <input id="chkPopupStatusBar" name="chkFeature" value="status" type="checkbox" /><label for="chkPopupStatusBar" fckLang="DlgLnkPopStatus">Status
+ <input id="chkPopupStatusBar" name="chkFeature" value="status" type="checkbox" /><label for="chkPopupStatusBar" fckLang="DlgLnkPopStatus">Status
Bar</label><br />
<input id="chkPopupToolbar" name="chkFeature" value="toolbar" type="checkbox" /><label for="chkPopupToolbar" fckLang="DlgLnkPopToolbar">Toolbar</label><br />
- <input id="chkPopupFullScreen" name="chkFeature" value="fullscreen" type="checkbox" /><label for="chkPopupFullScreen" fckLang="DlgLnkPopFullScrn">Full
+ <input id="chkPopupFullScreen" name="chkFeature" value="fullscreen" type="checkbox" /><label for="chkPopupFullScreen" fckLang="DlgLnkPopFullScrn">Full
Screen (IE)</label><br />
- <input id="chkPopupDependent" name="chkFeature" value="dependent" type="checkbox" /><label for="chkPopupDependent" fckLang="DlgLnkPopDependent">Dependent
+ <input id="chkPopupDependent" name="chkFeature" value="dependent" type="checkbox" /><label for="chkPopupDependent" fckLang="DlgLnkPopDependent">Dependent
(Netscape)</label>
</td>
</tr>
diff --git a/editor/editor/dialog/fck_link/fck_link.js b/editor/editor/dialog/fck_link/fck_link.js
@@ -1,37 +1,32 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_link.js
- * Scripts related to the Link dialog window (see fck_link.html).
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- * Dominik Pesch ?dom? (empty selection patch) (d.pesch@11com7.de)
- * Alfonso Martinez de Lizarrondo - Uritec (alfonso at uritec dot net)
+ *
+ * Scripts related to the Link dialog window (see fck_link.html).
*/
var oEditor = window.parent.InnerDialogLoaded() ;
var FCK = oEditor.FCK ;
var FCKLang = oEditor.FCKLang ;
var FCKConfig = oEditor.FCKConfig ;
-var FCKRegexLib = oEditor.FCKRegexLib ;
+var FCKRegexLib = oEditor.FCKRegexLib ;
+var FCKTools = oEditor.FCKTools ;
//#### Dialog Tabs
@@ -61,28 +56,20 @@ function OnDialogTabChange( tabCode )
//#### Regular Expressions library.
var oRegex = new Object() ;
-oRegex.UriProtocol = new RegExp('') ;
-oRegex.UriProtocol.compile( '^(((http|https|ftp|news):\/\/)|mailto:)', 'gi' ) ;
+oRegex.UriProtocol = /^(((http|https|ftp|news):\/\/)|mailto:)/gi ;
-oRegex.UrlOnChangeProtocol = new RegExp('') ;
-oRegex.UrlOnChangeProtocol.compile( '^(http|https|ftp|news)://(?=.)', 'gi' ) ;
+oRegex.UrlOnChangeProtocol = /^(http|https|ftp|news):\/\/(?=.)/gi ;
-oRegex.UrlOnChangeTestOther = new RegExp('') ;
-//oRegex.UrlOnChangeTestOther.compile( '^(javascript:|#|/)', 'gi' ) ;
-oRegex.UrlOnChangeTestOther.compile( '^((javascript:)|[#/\.])', 'gi' ) ;
+oRegex.UrlOnChangeTestOther = /^((javascript:)|[#\/\.])/gi ;
-oRegex.ReserveTarget = new RegExp('') ;
-oRegex.ReserveTarget.compile( '^_(blank|self|top|parent)$', 'i' ) ;
+oRegex.ReserveTarget = /^_(blank|self|top|parent)$/i ;
-oRegex.PopupUri = new RegExp('') ;
-oRegex.PopupUri.compile( "^javascript:void\\(\\s*window.open\\(\\s*'([^']+)'\\s*,\\s*(?:'([^']*)'|null)\\s*,\\s*'([^']*)'\\s*\\)\\s*\\)\\s*$" ) ;
+oRegex.PopupUri = /^javascript:void\(\s*window.open\(\s*'([^']+)'\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*\)\s*$/ ;
-// Accesible popups
-oRegex.OnClickPopup = new RegExp('') ;
-oRegex.OnClickPopup.compile( "^\\s*onClick=\"\\s*window.open\\(\\s*this\\.href\\s*,\\s*(?:'([^']*)'|null)\\s*,\\s*'([^']*)'\\s*\\)\\s*;\\s*return\\s*false;*\\s*\"$" ) ;
+// Accessible popups
+oRegex.OnClickPopup = /^\s*on[cC]lick="\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*"$/ ;
-oRegex.PopupFeatures = new RegExp('') ;
-oRegex.PopupFeatures.compile( '(?:^|,)([^=]+)=(\\d+|yes|no)', 'gi' ) ;
+oRegex.PopupFeatures = /(?:^|,)([^=]+)=(\d+|yes|no)/gi ;
//#### Parser Functions
@@ -165,6 +152,9 @@ window.onload = function()
if ( FCKConfig.LinkUpload )
GetE('frmUpload').action = FCKConfig.LinkUploadURL ;
+ // Set the default target (from configuration).
+ SetDefaultTarget() ;
+
// Activate the "OK" button.
window.parent.SetOkButton( true ) ;
}
@@ -173,7 +163,7 @@ var bHasAnchors ;
function LoadAnchorNamesAndIds()
{
- // Since version 2.0, the anchors are replaced in the DOM by IMGs so the user see the icon
+ // Since version 2.0, the anchors are replaced in the DOM by IMGs so the user see the icon
// to edit them. So, we must look for that images now.
var aAnchors = new Array() ;
var i ;
@@ -191,8 +181,8 @@ function LoadAnchorNamesAndIds()
if ( oLinks[i].name && ( oLinks[i].name.length > 0 ) )
aAnchors[ aAnchors.length ] = oLinks[i] ;
}
-
- var aIds = oEditor.FCKTools.GetAllChildrenIds( oEditor.FCK.EditorDocument.body ) ;
+
+ var aIds = FCKTools.GetAllChildrenIds( oEditor.FCK.EditorDocument.body ) ;
bHasAnchors = ( aAnchors.length > 0 || aIds.length > 0 ) ;
@@ -200,12 +190,12 @@ function LoadAnchorNamesAndIds()
{
var sName = aAnchors[i].name ;
if ( sName && sName.length > 0 )
- oEditor.FCKTools.AddSelectOption( GetE('cmbAnchorName'), sName, sName ) ;
+ FCKTools.AddSelectOption( GetE('cmbAnchorName'), sName, sName ) ;
}
for ( i = 0 ; i < aIds.length ; i++ )
{
- oEditor.FCKTools.AddSelectOption( GetE('cmbAnchorId'), aIds[i], aIds[i] ) ;
+ FCKTools.AddSelectOption( GetE('cmbAnchorId'), aIds[i], aIds[i] ) ;
}
ShowE( 'divSelAnchor' , bHasAnchors ) ;
@@ -233,15 +223,22 @@ function LoadSelection()
SetTarget( 'popup' ) ;
}
- // Accesible popups, the popup data is in the onclick attribute
- if ( !oPopupMatch ) {
- var onclick = oLink.getAttribute( 'onClick_fckprotectedatt' ) ;
- oPopupMatch = oRegex.OnClickPopup.exec( onclick ) ;
- if( oPopupMatch )
+ // Accessible popups, the popup data is in the onclick attribute
+ if ( !oPopupMatch )
+ {
+ var onclick = oLink.getAttribute( 'onclick_fckprotectedatt' ) ;
+ if ( onclick )
{
- GetE( 'cmbTarget' ).value = 'popup' ;
- FillPopupFields( oPopupMatch[1], oPopupMatch[2] ) ;
- SetTarget( 'popup' ) ;
+ // Decode the protected string
+ onclick = decodeURIComponent( onclick ) ;
+
+ oPopupMatch = oRegex.OnClickPopup.exec( onclick ) ;
+ if( oPopupMatch )
+ {
+ GetE( 'cmbTarget' ).value = 'popup' ;
+ FillPopupFields( oPopupMatch[1], oPopupMatch[2] ) ;
+ SetTarget( 'popup' ) ;
+ }
}
}
@@ -253,7 +250,7 @@ function LoadSelection()
sProtocol = sProtocol[0].toLowerCase() ;
GetE('cmbLinkProtocol').value = sProtocol ;
- // Remove the protocol and get the remainig URL.
+ // Remove the protocol and get the remaining URL.
var sUrl = sHRef.replace( oRegex.UriProtocol, '' ) ;
if ( sProtocol == 'mailto:' ) // It is an e-mail link.
@@ -358,7 +355,7 @@ function SetTarget( targetType )
{
GetE('tdTargetFrame').style.display = ( targetType == 'popup' ? 'none' : '' ) ;
GetE('tdPopupName').style.display =
- GetE('tablePopupFeatures').style.display = ( targetType == 'popup' ? '' : 'none' ) ;
+ GetE('tablePopupFeatures').style.display = ( targetType == 'popup' ? '' : 'none' ) ;
switch ( targetType )
{
@@ -408,7 +405,7 @@ function OnTargetNameChange()
GetE('cmbTarget').value = 'frame' ;
}
-// Accesible popups
+// Accessible popups
function BuildOnClickPopup()
{
var sWindowName = "'" + GetE('txtPopupName').value.replace(/\W/gi, "") + "'" ;
@@ -468,6 +465,7 @@ function FillPopupFields( windowName, features )
function Ok()
{
var sUri, sInnerHtml ;
+ oEditor.FCKUndo.SaveUndoStep() ;
switch ( GetE('cmbLinkType').value )
{
@@ -513,16 +511,13 @@ function Ok()
break ;
}
- // No link selected, so try to create one.
- if ( !oLink )
- oLink = oEditor.FCK.CreateLink( sUri ) ;
-
- if ( oLink )
- sInnerHtml = oLink.innerHTML ; // Save the innerHTML (IE changes it if it is like an URL).
- else
- {
- // If no selection, use the uri as the link text (by dom, 2006-05-26)
+ // If no link is selected, create a new one (it may result in more than one link creation - #220).
+ var aLinks = oLink ? [ oLink ] : oEditor.FCK.CreateLink( sUri, true ) ;
+ // If no selection, no links are created, so use the uri as the link text (by dom, 2006-05-26)
+ var aHasSelection = ( aLinks.length > 0 ) ;
+ if ( !aHasSelection )
+ {
sInnerHtml = sUri;
// Built a better text for empty links.
@@ -548,66 +543,85 @@ function Ok()
}
// Create a new (empty) anchor.
- oLink = oEditor.FCK.CreateElement( 'a' ) ;
+ aLinks = [ oEditor.FCK.InsertElement( 'a' ) ] ;
}
- oEditor.FCKUndo.SaveUndoStep() ;
-
- oLink.href = sUri ;
- SetAttribute( oLink, '_fcksavedurl', sUri ) ;
-
- // Accesible popups
- if( GetE('cmbTarget').value == 'popup' )
- {
- SetAttribute( oLink, 'onClick_fckprotectedatt', " onClick=\"" + BuildOnClickPopup() + "\"") ;
- }
- else
+ for ( var i = 0 ; i < aLinks.length ; i++ )
{
- // Check if the previous onclick was for a popup:
- // In that case remove the onclick handler.
- var onclick = oLink.getAttribute( 'onClick_fckprotectedatt' ) ;
- if( oRegex.OnClickPopup.test( onclick ) )
- SetAttribute( oLink, 'onClick_fckprotectedatt', '' ) ;
- }
+ oLink = aLinks[i] ;
- oLink.innerHTML = sInnerHtml ; // Set (or restore) the innerHTML
+ if ( aHasSelection )
+ sInnerHtml = oLink.innerHTML ; // Save the innerHTML (IE changes it if it is like an URL).
- // Target
- if( GetE('cmbTarget').value != 'popup' )
- SetAttribute( oLink, 'target', GetE('txtTargetFrame').value ) ;
- else
- SetAttribute( oLink, 'target', null ) ;
-
- // Advances Attributes
- SetAttribute( oLink, 'id' , GetE('txtAttId').value ) ;
- SetAttribute( oLink, 'name' , GetE('txtAttName').value ) ;
- SetAttribute( oLink, 'dir' , GetE('cmbAttLangDir').value ) ;
- SetAttribute( oLink, 'lang' , GetE('txtAttLangCode').value ) ;
- SetAttribute( oLink, 'accesskey', GetE('txtAttAccessKey').value ) ;
- SetAttribute( oLink, 'tabindex' , ( GetE('txtAttTabIndex').value > 0 ? GetE('txtAttTabIndex').value : null ) ) ;
- SetAttribute( oLink, 'title' , GetE('txtAttTitle').value ) ;
- SetAttribute( oLink, 'type' , GetE('txtAttContentType').value ) ;
- SetAttribute( oLink, 'charset' , GetE('txtAttCharSet').value ) ;
+ oLink.href = sUri ;
+ SetAttribute( oLink, '_fcksavedurl', sUri ) ;
- if ( oEditor.FCKBrowserInfo.IsIE )
- {
- var sClass = GetE('txtAttClasses').value ;
- // If it's also an anchor add an internal class
- if ( GetE('txtAttName').value.length != 0 )
- sClass += ' FCK__AnchorC' ;
- SetAttribute( oLink, 'className', sClass ) ;
+ var onclick;
+ // Accessible popups
+ if( GetE('cmbTarget').value == 'popup' )
+ {
+ onclick = BuildOnClickPopup() ;
+ // Encode the attribute
+ onclick = encodeURIComponent( " onclick=\"" + onclick + "\"" ) ;
+ SetAttribute( oLink, 'onclick_fckprotectedatt', onclick ) ;
+ }
+ else
+ {
+ // Check if the previous onclick was for a popup:
+ // In that case remove the onclick handler.
+ onclick = oLink.getAttribute( 'onclick_fckprotectedatt' ) ;
+ if ( onclick )
+ {
+ // Decode the protected string
+ onclick = decodeURIComponent( onclick ) ;
+
+ if( oRegex.OnClickPopup.test( onclick ) )
+ SetAttribute( oLink, 'onclick_fckprotectedatt', '' ) ;
+ }
+ }
- oLink.style.cssText = GetE('txtAttStyle').value ;
- }
- else
- {
- SetAttribute( oLink, 'class', GetE('txtAttClasses').value ) ;
- SetAttribute( oLink, 'style', GetE('txtAttStyle').value ) ;
+ oLink.innerHTML = sInnerHtml ; // Set (or restore) the innerHTML
+
+ // Target
+ if( GetE('cmbTarget').value != 'popup' )
+ SetAttribute( oLink, 'target', GetE('txtTargetFrame').value ) ;
+ else
+ SetAttribute( oLink, 'target', null ) ;
+
+ // Let's set the "id" only for the first link to avoid duplication.
+ if ( i == 0 )
+ SetAttribute( oLink, 'id', GetE('txtAttId').value ) ;
+
+ // Advances Attributes
+ SetAttribute( oLink, 'name' , GetE('txtAttName').value ) ;
+ SetAttribute( oLink, 'dir' , GetE('cmbAttLangDir').value ) ;
+ SetAttribute( oLink, 'lang' , GetE('txtAttLangCode').value ) ;
+ SetAttribute( oLink, 'accesskey', GetE('txtAttAccessKey').value ) ;
+ SetAttribute( oLink, 'tabindex' , ( GetE('txtAttTabIndex').value > 0 ? GetE('txtAttTabIndex').value : null ) ) ;
+ SetAttribute( oLink, 'title' , GetE('txtAttTitle').value ) ;
+ SetAttribute( oLink, 'type' , GetE('txtAttContentType').value ) ;
+ SetAttribute( oLink, 'charset' , GetE('txtAttCharSet').value ) ;
+
+ if ( oEditor.FCKBrowserInfo.IsIE )
+ {
+ var sClass = GetE('txtAttClasses').value ;
+ // If it's also an anchor add an internal class
+ if ( GetE('txtAttName').value.length != 0 )
+ sClass += ' FCK__AnchorC' ;
+ SetAttribute( oLink, 'className', sClass ) ;
+
+ oLink.style.cssText = GetE('txtAttStyle').value ;
+ }
+ else
+ {
+ SetAttribute( oLink, 'class', GetE('txtAttClasses').value ) ;
+ SetAttribute( oLink, 'style', GetE('txtAttStyle').value ) ;
+ }
}
- // Select the link.
- oEditor.FCKSelection.SelectNode(oLink);
-
+ // Select the (first) link.
+ oEditor.FCKSelection.SelectNode( aLinks[0] );
+
return true ;
}
@@ -660,19 +674,42 @@ var oUploadDeniedExtRegex = new RegExp( FCKConfig.LinkUploadDeniedExtensions, 'i
function CheckUpload()
{
var sFile = GetE('txtUploadFile').value ;
-
+
if ( sFile.length == 0 )
{
alert( 'Please select a file to upload' ) ;
return false ;
}
-
+
if ( ( FCKConfig.LinkUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
( FCKConfig.LinkUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
{
OnUploadCompleted( 202 ) ;
return false ;
}
-
+
return true ;
}
+
+function SetDefaultTarget()
+{
+ var target = FCKConfig.DefaultLinkTarget || '' ;
+
+ if ( oLink || target.length == 0 )
+ return ;
+
+ switch ( target )
+ {
+ case '_blank' :
+ case '_self' :
+ case '_parent' :
+ case '_top' :
+ GetE('cmbTarget').value = target ;
+ break ;
+ default :
+ GetE('cmbTarget').value = 'frame' ;
+ break ;
+ }
+
+ GetE('txtTargetFrame').value = target ;
+}
diff --git a/editor/editor/dialog/fck_listprop.html b/editor/editor/dialog/fck_listprop.html
@@ -2,29 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_listprop.html
- * Bulleted List dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- * Marcel J Bennett (start attribute)
+ *
+ * Bulleted List dialog window.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@@ -65,10 +60,11 @@ window.onload = function()
if ( oActiveEl )
{
if ( oActiveEl.getAttribute('type') )
- oActiveSel.value = oActiveEl.getAttribute('type').toLowerCase() ;
+ oActiveSel.value = oActiveEl.getAttribute('type') ;
}
window.parent.SetOkButton( true ) ;
+ window.parent.SetAutoSize( true ) ;
}
function Ok()
diff --git a/editor/editor/dialog/fck_paste.html b/editor/editor/dialog/fck_paste.html
@@ -2,36 +2,33 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_paste.html
- * This dialog is shown when, for some reason (usually security settings),
- * the user is not able to paste data from the clipboard to the editor using
- * the toolbar buttons or the context menu.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * This dialog is shown when, for some reason (usually security settings),
+ * the user is not able to paste data from the clipboard to the editor using
+ * the toolbar buttons or the context menu.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="robots" content="noindex, nofollow" />
+
<script type="text/javascript">
var oEditor = window.parent.InnerDialogLoaded() ;
var FCK = oEditor.FCK;
@@ -42,47 +39,72 @@ window.onload = function ()
{
// First of all, translate the dialog box texts
oEditor.FCKLanguageManager.TranslatePage(document) ;
-
- if ( window.parent.dialogArguments.CustomValue == 'Word' )
+
+ var sPastingType = window.parent.dialogArguments.CustomValue ;
+
+ if ( sPastingType == 'Word' || sPastingType == 'Security' )
{
+ if ( sPastingType == 'Security' )
+ document.getElementById( 'xSecurityMsg' ).style.display = '' ;
+
var oFrame = document.getElementById('frmData') ;
oFrame.style.display = '' ;
+
+ // Avoid errors if the pasted content has any script that fails: #389
+ var oDoc = oFrame.contentWindow.document ;
+ oDoc.open() ;
+ oDoc.write('<html><head><script>window.onerror = function() { return true ; };<\/script><\/head><body><\/body><\/html>') ;
+ oDoc.close() ;
- if ( oFrame.contentDocument )
+ if ( oFrame.contentDocument )
oFrame.contentDocument.designMode = 'on' ;
else
oFrame.contentWindow.document.body.contentEditable = true ;
+
+ // Set the focus on the pasting area
+ oFrame.contentWindow.focus();
}
else
{
document.getElementById('txtData').style.display = '' ;
- document.getElementById('oWordCommands').style.display = 'none' ;
}
- window.parent.SetOkButton( true ) ;
- window.parent.SetAutoSize( true ) ;
+ if ( sPastingType != 'Word' )
+ document.getElementById('oWordCommands').style.display = 'none' ;
+
+ window.parent.SetOkButton( true ) ;
+ window.parent.SetAutoSize( true ) ;
}
function Ok()
{
+ // Before doing anything, save undo snapshot.
+ oEditor.FCKUndo.SaveUndoStep() ;
+
var sHtml ;
-
- if ( window.parent.dialogArguments.CustomValue == 'Word' )
+
+ var sPastingType = window.parent.dialogArguments.CustomValue ;
+
+ if ( sPastingType == 'Word' || sPastingType == 'Security' )
{
var oFrame = document.getElementById('frmData') ;
var oBody ;
- if ( oFrame.contentDocument )
+ if ( oFrame.contentDocument )
oBody = oFrame.contentDocument.body ;
else
oBody = oFrame.contentWindow.document.body ;
- // If a plugin creates a FCK.CustomCleanWord function it will be called instead of the default one
- if ( typeof( FCKTools.CustomCleanWord ) == 'function' )
- sHtml = FCK.CustomCleanWord( oBody, document.getElementById('chkRemoveFont').checked, document.getElementById('chkRemoveStyles').checked ) ;
+ if ( sPastingType == 'Word' )
+ {
+ // If a plugin creates a FCK.CustomCleanWord function it will be called instead of the default one
+ if ( typeof( FCK.CustomCleanWord ) == 'function' )
+ sHtml = FCK.CustomCleanWord( oBody, document.getElementById('chkRemoveFont').checked, document.getElementById('chkRemoveStyles').checked ) ;
+ else
+ sHtml = CleanWord( oBody, document.getElementById('chkRemoveFont').checked, document.getElementById('chkRemoveStyles').checked ) ;
+ }
else
- sHtml = CleanWord( oBody, document.getElementById('chkRemoveFont').checked, document.getElementById('chkRemoveStyles').checked ) ;
-
+ sHtml = oBody.innerHTML ;
// Fix relative anchor URLs (IE automatically adds the current page URL).
var re = new RegExp( window.location + "#", "g" ) ;
@@ -91,19 +113,55 @@ function Ok()
else
{
sHtml = oEditor.FCKTools.HTMLEncode( document.getElementById('txtData').value ) ;
- sHtml = sHtml.replace( /\n/g, '<BR>' ) ;
+ sHtml = FCKTools.ProcessLineBreaks( oEditor, FCKConfig, sHtml ) ;
+
+ // FCK.InsertHtml() does not work for us, since document fragments cannot contain node fragments. :(
+ // Use the marker method instead. It's primitive, but it works.
+ var range = new oEditor.FCKDomRange( oEditor.FCK.EditorWindow ) ;
+ var oDoc = oEditor.FCK.EditorDocument ;
+ range.MoveToSelection() ;
+ range.DeleteContents() ;
+ var marker = [] ;
+ for ( var i = 0 ; i < 5 ; i++ )
+ marker.push( parseInt(Math.random() * 100000, 10 ) ) ;
+ marker = marker.join( "" ) ;
+ range.InsertNode ( oDoc.createTextNode( marker ) ) ;
+ var bookmark = range.CreateBookmark() ;
+
+ // Now we've got a marker indicating the paste position in the editor document.
+ // Find its position in the HTML code.
+ var htmlString = oDoc.body.innerHTML ;
+ var index = htmlString.indexOf( marker ) ;
+
+ // Split it the HTML code up, add the code we generated, and put them back together.
+ var htmlList = [] ;
+ htmlList.push( htmlString.substr( 0, index ) ) ;
+ htmlList.push( sHtml ) ;
+ htmlList.push( htmlString.substr( index + marker.length ) ) ;
+ htmlString = htmlList.join( "" ) ;
+
+ if ( oEditor.FCKBrowserInfo.IsIE )
+ oEditor.FCK.SetInnerHtml( htmlString ) ;
+ else
+ oDoc.body.innerHTML = htmlString ;
+
+ range.MoveToBookmark( bookmark ) ;
+ range.Collapse( false ) ;
+ range.Select() ;
+ range.Release() ;
+ return true ;
}
-
+
oEditor.FCK.InsertHtml( sHtml ) ;
-
+
return true ;
}
function CleanUpBox()
{
var oFrame = document.getElementById('frmData') ;
-
- if ( oFrame.contentDocument )
+
+ if ( oFrame.contentDocument )
oFrame.contentDocument.body.innerHTML = '' ;
else
oFrame.contentWindow.document.body.innerHTML = '' ;
@@ -111,7 +169,7 @@ function CleanUpBox()
// This function will be called from the PasteFromWord dialog (fck_paste.html)
-// Input: oNode a DOM node that contains the raw paste from the clipboard
+// Input: oNode a DOM node that contains the raw paste from the clipboard
// bIgnoreFont, bRemoveStyles booleans according to the values set in the dialog
// Output: the cleaned string
function CleanWord( oNode, bIgnoreFont, bRemoveStyles )
@@ -120,7 +178,7 @@ function CleanWord( oNode, bIgnoreFont, bRemoveStyles )
html = html.replace(/<o:p>\s*<\/o:p>/g, '') ;
html = html.replace(/<o:p>.*?<\/o:p>/g, ' ') ;
-
+
// Remove mso-xxx styles.
html = html.replace( /\s*mso-[^:]+:[^;"]+;?/gi, '' ) ;
@@ -148,7 +206,7 @@ function CleanWord( oNode, bIgnoreFont, bRemoveStyles )
html = html.replace( /\s*FONT-FAMILY:[^;"]*;?/gi, '' ) ;
}
-
+
// Remove Class attributes
html = html.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3") ;
@@ -158,39 +216,49 @@ function CleanWord( oNode, bIgnoreFont, bRemoveStyles )
// Remove empty styles.
html = html.replace( /\s*style="\s*"/gi, '' ) ;
-
+
html = html.replace( /<SPAN\s*[^>]*>\s* \s*<\/SPAN>/gi, ' ' ) ;
-
+
html = html.replace( /<SPAN\s*[^>]*><\/SPAN>/gi, '' ) ;
-
+
// Remove Lang attributes
html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ;
-
+
html = html.replace( /<SPAN\s*>(.*?)<\/SPAN>/gi, '$1' ) ;
-
+
html = html.replace( /<FONT\s*>(.*?)<\/FONT>/gi, '$1' ) ;
// Remove XML elements and declarations
html = html.replace(/<\\?\?xml[^>]*>/gi, '' ) ;
-
+
// Remove Tags with XML namespace declarations: <o:p><\/o:p>
html = html.replace(/<\/?\w+:[^>]*>/gi, '' ) ;
-
+
// Remove comments [SF BUG-1481861].
- html = html.replace(/<\!--.*-->/g, '' ) ;
+ html = html.replace(/<\!--.*?-->/g, '' ) ;
html = html.replace( /<(U|I|STRIKE)> <\/\1>/g, ' ' ) ;
html = html.replace( /<H\d>\s*<\/H\d>/gi, '' ) ;
+ // Remove "display:none" tags.
+ html = html.replace( /<(\w+)[^>]*\sstyle="[^"]*DISPLAY\s?:\s?none(.*?)<\/\1>/ig, '' ) ;
+
+ // Remove language tags
+ html = html.replace( /<(\w[^>]*) language=([^ |>]*)([^>]*)/gi, "<$1$3") ;
+
+ // Remove onmouseover and onmouseout events (from MS Word comments effect)
+ html = html.replace( /<(\w[^>]*) onmouseover="([^\"]*)"([^>]*)/gi, "<$1$3") ;
+ html = html.replace( /<(\w[^>]*) onmouseout="([^\"]*)"([^>]*)/gi, "<$1$3") ;
+
if ( FCKConfig.CleanWordKeepsStructure )
{
// The original <Hn> tag send from Word is something like this: <Hn style="margin-top:0px;margin-bottom:0px">
html = html.replace( /<H(\d)([^>]*)>/gi, '<h$1>' ) ;
// Word likes to insert extra <font> tags, when using MSIE. (Wierd).
- html = html.replace( /<(H\d)><FONT[^>]*>(.*?)<\/FONT><\/\1>/gi, '<$1>$2</$1>' );
- html = html.replace( /<(H\d)><EM>(.*?)<\/EM><\/\1>/gi, '<$1>$2</$1>' );
+ html = html.replace( /<(H\d)><FONT[^>]*>(.*?)<\/FONT><\/\1>/gi, '<$1>$2<\/$1>' );
+ html = html.replace( /<(H\d)><EM>(.*?)<\/EM><\/\1>/gi, '<$1>$2<\/$1>' );
}
else
{
@@ -218,15 +286,23 @@ function CleanWord( oNode, bIgnoreFont, bRemoveStyles )
}
</script>
+
</head>
<body style="overflow: hidden">
<table cellspacing="0" cellpadding="0" width="100%" border="0" style="height: 98%">
<tr>
<td>
- <span fcklang="DlgPasteMsg2">Please paste inside the following box using the keyboard
- (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.</span>
- <br />
-
+ <div id="xSecurityMsg" style="display: none">
+ <span fcklang="DlgPasteSec">Because of your browser security settings,
+ the editor is not able to access your clipboard data directly. You are required
+ to paste it again in this window.</span><br />
+
+ </div>
+ <div>
+ <span fcklang="DlgPasteMsg2">Please paste inside the following box using the keyboard
+ (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.</span><br />
+
+ </div>
</td>
</tr>
<tr>
diff --git a/editor/editor/dialog/fck_radiobutton.html b/editor/editor/dialog/fck_radiobutton.html
@@ -2,28 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_radiobutton.html
- * Radio Button dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Radio Button dialog window.
-->
<html>
<head>
@@ -55,20 +51,23 @@ window.onload = function()
oActiveEl = null ;
window.parent.SetOkButton( true ) ;
+ window.parent.SetAutoSize( true ) ;
}
function Ok()
{
+ oEditor.FCKUndo.SaveUndoStep() ;
+
if ( !oActiveEl )
{
oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ;
oActiveEl.type = 'radio' ;
- oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
+ oActiveEl = oEditor.FCK.InsertElement( oActiveEl ) ;
}
if ( GetE('txtName').value.length > 0 )
oActiveEl.name = GetE('txtName').value ;
-
+
if ( oEditor.FCKBrowserInfo.IsIE )
oActiveEl.value = GetE('txtValue').value ;
else
diff --git a/editor/editor/dialog/fck_replace.html b/editor/editor/dialog/fck_replace.html
@@ -2,160 +2,489 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_replace.html
- * "Replace" dialog box window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- * Abdul-Aziz A. Al-Oraij (aziz.oraij.com)
+ *
+ * "Find" and "Replace" dialog box window.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta content="noindex, nofollow" name="robots" />
+ <script src="common/fck_dialog_common.js" type="text/javascript"></script>
<script type="text/javascript">
var oEditor = window.parent.InnerDialogLoaded() ;
+var FCKLang = oEditor.FCKLang ;
+
+window.parent.AddTab( 'Find', FCKLang.DlgFindTitle ) ;
+window.parent.AddTab( 'Replace', FCKLang.DlgReplaceTitle ) ;
+var idMap = {} ;
+
+function OnDialogTabChange( tabCode )
+{
+ ShowE( 'divFind', ( tabCode == 'Find' ) ) ;
+ ShowE( 'divReplace', ( tabCode == 'Replace' ) ) ;
+ idMap['FindText'] = 'txtFind' + tabCode ;
+ idMap['CheckCase'] = 'chkCase' + tabCode ;
+ idMap['CheckWord'] = 'chkWord' + tabCode ;
+
+ if ( tabCode == 'Replace' )
+ window.parent.SetAutoSize( true ) ;
+}
function OnLoad()
{
- // First of all, translate the dialog box texts
+ // First of all, translate the dialog box texts.
oEditor.FCKLanguageManager.TranslatePage( document ) ;
- window.parent.SetAutoSize( true ) ;
+ // Place the cursor at the start of document.
+ // This will be the starting point of our search.
+ var range = new oEditor.FCKDomRange( oEditor.FCK.EditorWindow ) ;
+ range.SetStart( oEditor.FCK.EditorDocument.body, 1 ) ;
+ range.SetEnd( oEditor.FCK.EditorDocument.body, 1 ) ;
+ range.Collapse( true ) ;
+ range.Select() ;
+
+ // Show the appropriate tab at startup.
+ if ( window.parent.name.search( 'Replace' ) == -1 )
+ {
+ window.parent.SetSelectedTab( 'Find' ) ;
+ window.parent.SetAutoSize( true ) ;
+ }
+ else
+ window.parent.SetSelectedTab( 'Replace' ) ;
- oEditor.FCKUndo.SaveUndoStep() ;
}
function btnStat(frm)
{
- document.getElementById('btnReplace').disabled =
- document.getElementById('btnReplaceAll').disabled =
- ( document.getElementById('txtFind').value.length == 0 ) ;
+ document.getElementById('btnReplace').disabled =
+ document.getElementById('btnReplaceAll').disabled =
+ document.getElementById('btnFind').disabled =
+ ( document.getElementById(idMap["FindText"]).value.length == 0 ) ;
+}
+
+function GetSelection()
+{
+ var range = new oEditor.FCKDomRange( oEditor.FCK.EditorWindow ) ;
+ range.MoveToSelection() ;
+ return range.CreateBookmark2() ;
+}
+
+function GetSearchString()
+{
+ return document.getElementById(idMap['FindText']).value ;
+}
+
+function GetReplaceString()
+{
+ return document.getElementById("txtReplace").value ;
+}
+
+function GetCheckCase()
+{
+ return !! ( document.getElementById(idMap['CheckCase']).checked ) ;
}
-function ReplaceTextNodes( parentNode, regex, replaceValue, replaceAll, hasFound )
+function GetMatchWord()
{
- for ( var i = 0 ; i < parentNode.childNodes.length ; i++ )
+ return !! ( document.getElementById(idMap['CheckWord']).checked ) ;
+}
+
+// Get the data pointed to by a bookmark.
+function GetData( bookmark )
+{
+ var cursor = oEditor.FCK.EditorDocument.documentElement ;
+ for ( var i = 0 ; i < bookmark.length ; i++ )
{
- var oNode = parentNode.childNodes[i] ;
- if ( oNode.nodeType == 3 )
+ var target = bookmark[i] ;
+ var currentIndex = -1 ;
+ if ( cursor.nodeType != 3 )
{
- var sReplaced = oNode.nodeValue.replace( regex, replaceValue ) ;
- if ( oNode.nodeValue != sReplaced )
+ for (var j = 0 ; j < cursor.childNodes.length ; j++ )
{
- oNode.nodeValue = sReplaced ;
- if ( ! replaceAll )
- return true ;
- hasFound = true ;
+ var candidate = cursor.childNodes[j] ;
+ if ( candidate.nodeType == 3 &&
+ candidate.previousSibling &&
+ candidate.previousSibling.nodeType == 3 )
+ continue ;
+ currentIndex++ ;
+ if ( currentIndex == target )
+ {
+ cursor = candidate ;
+ break ;
+ }
}
+ if ( currentIndex < target )
+ return null ;
+ }
+ else
+ {
+ if ( i != bookmark.length - 1 )
+ return null ;
+ while ( target >= cursor.length && cursor.nextSibling && cursor.nextSibling.nodeType == 3 )
+ {
+ target -= cursor.length ;
+ cursor = cursor.nextSibling ;
+ }
+ cursor = cursor.nodeValue.charAt( target ) ;
+ if ( cursor == "" )
+ cursor = null ;
}
-
- hasFound = ReplaceTextNodes( oNode, regex, replaceValue, replaceAll, hasFound ) ;
- if ( ! replaceAll && hasFound )
- return true ;
}
-
- return hasFound ;
+ return cursor ;
}
-function GetRegexExpr()
+// With this function, we can treat the bookmark as an iterator for DFS.
+function NextPosition( bookmark )
{
- var sExpr = EscapeRegexString( document.getElementById('txtFind').value ) ;
+ // See if there's anything further down the tree.
+ var next = bookmark.concat( [0] ) ;
+ if ( GetData( next ) != null )
+ return next ;
+
+ // Nothing down there? See if there's anything next to me.
+ var next = bookmark.slice( 0, bookmark.length - 1 ).concat( [ bookmark[ bookmark.length - 1 ] + 1 ] ) ;
+ if ( GetData( next ) != null )
+ return next ;
- if ( document.getElementById('chkWord').checked )
- sExpr = '\\b' + sExpr + '\\b' ;
+ // Nothing even next to me? See if there's anything next to my ancestors.
+ for ( var i = bookmark.length - 1 ; i > 0 ; i-- )
+ {
+ var next = bookmark.slice( 0, i - 1 ).concat( [ bookmark[ i - 1 ] + 1 ] ) ;
+ if ( GetData( next ) != null )
+ return next ;
+ }
- return sExpr ;
+ // There's absolutely nothing left to walk, return null.
+ return null ;
+}
+
+// Is this character a unicode whitespace?
+// Reference: http://unicode.org/Public/UNIDATA/PropList.txt
+function CheckIsWhitespace( c )
+{
+ var code = c.charCodeAt( 0 );
+ if ( code >= 9 && code <= 0xd )
+ return true;
+ if ( code >= 0x2000 && code <= 0x200a )
+ return true;
+ switch ( code )
+ {
+ case 0x20:
+ case 0x85:
+ case 0xa0:
+ case 0x1680:
+ case 0x180e:
+ case 0x2028:
+ case 0x2029:
+ case 0x202f:
+ case 0x205f:
+ case 0x3000:
+ return true;
+ default:
+ return false;
+ }
}
-function GetCase()
+// Knuth-Morris-Pratt Algorithm for stream input
+KMP_NOMATCH = 0 ;
+KMP_ADVANCED = 1 ;
+KMP_MATCHED = 2 ;
+function KmpMatch( pattern, ignoreCase )
{
- return ( document.getElementById('chkCase').checked ? '' : 'i' ) ;
+ var overlap = [ -1 ] ;
+ for ( var i = 0 ; i < pattern.length ; i++ )
+ {
+ overlap.push( overlap[i] + 1 ) ;
+ while ( overlap[ i + 1 ] > 0 && pattern.charAt( i ) != pattern.charAt( overlap[ i + 1 ] - 1 ) )
+ overlap[ i + 1 ] = overlap[ overlap[ i + 1 ] - 1 ] + 1 ;
+ }
+ this._Overlap = overlap ;
+ this._State = 0 ;
+ this._IgnoreCase = ( ignoreCase === true ) ;
+ if ( ignoreCase )
+ this.Pattern = pattern.toLowerCase();
+ else
+ this.Pattern = pattern ;
}
+KmpMatch.prototype = {
+ "FeedCharacter" : function( c )
+ {
+ if ( this._IgnoreCase )
+ c = c.toLowerCase();
-function GetReplacement()
+ while ( true )
+ {
+ if ( c == this.Pattern.charAt( this._State ) )
+ {
+ this._State++ ;
+ if ( this._State == this.Pattern.length )
+ {
+ // found a match, start over, don't care about partial matches involving the current match
+ this._State = 0;
+ return KMP_MATCHED;
+ }
+ return KMP_ADVANCED;
+ }
+ else if ( this._State == 0 )
+ return KMP_NOMATCH;
+ else
+ this._State = this._Overlap[ this._State ];
+ }
+
+ return null ;
+ },
+ "Reset" : function()
+ {
+ this._State = 0 ;
+ }
+};
+
+function _Find()
{
- return document.getElementById('txtReplace').value.replace( /\$/g, '$$$$' ) ;
+ // Start from the end of the current selection.
+ var matcher = new KmpMatch( GetSearchString(), ! GetCheckCase() ) ;
+ var cursor = GetSelection().End ;
+ var matchState = KMP_NOMATCH ;
+ var matchBookmark = null ;
+
+ // Match finding.
+ while ( true )
+ {
+ // Perform KMP stream matching.
+ // - Reset KMP matcher if we encountered a block element.
+ var data = GetData( cursor ) ;
+ if ( data )
+ {
+ if ( data.tagName )
+ {
+ if ( oEditor.FCKListsLib.BlockElements[ data.tagName.toLowerCase() ] )
+ {
+ matcher.Reset();
+ matchBookmark = null ;
+ }
+ }
+ else if ( data.charAt != undefined )
+ {
+ matchState = matcher.FeedCharacter(data) ;
+
+ if ( matchState == KMP_NOMATCH )
+ matchBookmark = null ;
+ else if ( matchState == KMP_ADVANCED && matchBookmark == null )
+ matchBookmark = { Start : cursor.concat( [] ) } ;
+ else if ( matchState == KMP_MATCHED )
+ {
+ if ( matchBookmark == null )
+ matchBookmark = { Start : cursor.concat( [] ) } ;
+ matchBookmark.End = cursor.concat( [] ) ;
+ matchBookmark.End[ matchBookmark.End.length - 1 ]++;
+
+ // Wait, do we have to match a whole word?
+ if ( GetMatchWord() )
+ {
+ var startOk = false ;
+ var endOk = false ;
+ var start = matchBookmark.Start ;
+ var end = matchBookmark.End ;
+ if ( start[ start.length - 1 ] == 0 )
+ startOk = true ;
+ else
+ {
+ var cursorBeforeStart = start.slice( 0, start.length - 1 ) ;
+ cursorBeforeStart.push( start[ start.length - 1 ] - 1 ) ;
+ var dataBeforeStart = GetData( cursorBeforeStart ) ;
+ if ( dataBeforeStart == null || dataBeforeStart.charAt == undefined )
+ startOk = true ;
+ else if ( CheckIsWhitespace( dataBeforeStart ) )
+ startOk = true ;
+ }
+
+ // this is already one character beyond the last char, no need to move
+ var cursorAfterEnd = end ;
+ var dataAfterEnd = GetData( cursorAfterEnd );
+ if ( dataAfterEnd == null || dataAfterEnd.charAt == undefined )
+ endOk = true ;
+ else if ( CheckIsWhitespace( dataAfterEnd ) )
+ endOk = true ;
+
+ if ( startOk && endOk )
+ break ;
+ else
+ matcher.Reset() ;
+ }
+ else
+ break ;
+ }
+ }
+ }
+
+ // Perform DFS across the document, until we've reached the end.
+ cursor = NextPosition( cursor ) ;
+ if ( cursor == null )
+ break;
+ }
+
+ // If we've found a match, select the match.
+ if ( matchState == KMP_MATCHED )
+ {
+ var range = new oEditor.FCKDomRange( oEditor.FCK.EditorWindow ) ;
+ range.MoveToBookmark2( matchBookmark ) ;
+ range.Select() ;
+ var focus = range._Range.endContainer ;
+ while ( focus && focus.nodeType != 1 )
+ focus = focus.parentNode ;
+
+ if ( focus )
+ {
+ if ( oEditor.FCKBrowserInfo.IsSafari )
+ oEditor.FCKDomTools.ScrollIntoView( focus, false ) ;
+ else
+ focus.scrollIntoView( false ) ;
+ }
+
+ return true;
+ }
+ else
+ return false;
}
-function EscapeRegexString( str )
+function Find()
{
- return str.replace( /[\\\^\$\*\+\?\{\}\.\(\)\!\|\[\]\-]/g, '\\$&' ) ;
+ var range = new oEditor.FCKDomRange( oEditor.FCK.EditorWindow ) ;
+ range.MoveToSelection() ;
+ range.Collapse( false ) ;
+ range.Select() ;
+
+ if ( ! _Find() )
+ alert( FCKLang.DlgFindNotFoundMsg ) ;
}
function Replace()
{
- var oRegex = new RegExp( GetRegexExpr(), GetCase() ) ;
- if ( !ReplaceTextNodes( oEditor.FCK.EditorDocument.body, oRegex, GetReplacement(), false, false ) )
- alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ;
+ var selection = new oEditor.FCKDomRange( oEditor.FCK.EditorWindow ) ;
+ selection.MoveToSelection() ;
+
+ if ( selection.CheckIsCollapsed() )
+ {
+ if (! _Find() )
+ alert( FCKLang.DlgFindNotFoundMsg ) ;
+ }
+ else
+ {
+ oEditor.FCKUndo.SaveUndoStep() ;
+ selection.DeleteContents() ;
+ selection.InsertNode( oEditor.FCK.EditorDocument.createTextNode( GetReplaceString() ) ) ;
+ selection.Collapse( false ) ;
+ selection.Select() ;
+ }
}
function ReplaceAll()
{
- var oRegex = new RegExp( GetRegexExpr(), GetCase() + 'g' ) ;
- if ( !ReplaceTextNodes( oEditor.FCK.EditorDocument.body, oRegex, GetReplacement(), true, false ) )
- alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ;
+ oEditor.FCKUndo.SaveUndoStep() ;
+ var range = new oEditor.FCKDomRange( oEditor.FCK.EditorWindow ) ;
+
+ var replaceCount = 0 ;
+
+ while ( _Find() )
+ {
+ range.MoveToSelection() ;
+ range.DeleteContents() ;
+ range.InsertNode( oEditor.FCK.EditorDocument.createTextNode( GetReplaceString() ) ) ;
+ range.Collapse( false ) ;
+ range.Select() ;
+ replaceCount++ ;
+ }
+ if ( replaceCount == 0 )
+ alert( FCKLang.DlgFindNotFoundMsg ) ;
window.parent.Cancel() ;
}
</script>
</head>
<body onload="OnLoad()" style="overflow: hidden">
- <table cellspacing="3" cellpadding="2" width="100%" border="0">
- <tr>
- <td nowrap="nowrap">
- <label for="txtFind" fcklang="DlgReplaceFindLbl">
- Find what:</label>
- </td>
- <td width="100%">
- <input id="txtFind" onkeyup="btnStat(this.form)" style="width: 100%" tabindex="1"
- type="text" />
- </td>
- <td>
- <input id="btnReplace" style="width: 100%" disabled="disabled" onclick="Replace();"
- type="button" value="Replace" fcklang="DlgReplaceReplaceBtn" />
- </td>
- </tr>
- <tr>
- <td valign="top" nowrap="nowrap">
- <label for="txtReplace" fcklang="DlgReplaceReplaceLbl">
- Replace with:</label>
- </td>
- <td valign="top">
- <input id="txtReplace" style="width: 100%" tabindex="2" type="text" />
- </td>
- <td>
- <input id="btnReplaceAll" disabled="disabled" onclick="ReplaceAll()" type="button"
- value="Replace All" fcklang="DlgReplaceReplAllBtn" />
- </td>
- </tr>
- <tr>
- <td valign="bottom" colspan="3">
- <input id="chkCase" tabindex="3" type="checkbox" /><label for="chkCase" fcklang="DlgReplaceCaseChk">Match
- case</label>
- <br />
- <input id="chkWord" tabindex="4" type="checkbox" /><label for="chkWord" fcklang="DlgReplaceWordChk">Match
- whole word</label>
- </td>
- </tr>
- </table>
+ <div id="divFind" style="display: none">
+ <table cellspacing="3" cellpadding="2" width="100%" border="0">
+ <tr>
+ <td nowrap="nowrap">
+ <label for="txtFindFind" fcklang="DlgReplaceFindLbl">
+ Find what:</label>
+ </td>
+ <td width="100%">
+ <input id="txtFindFind" onkeyup="btnStat(this.form)" style="width: 100%" tabindex="1"
+ type="text" />
+ </td>
+ <td>
+ <input id="btnFind" style="width: 80px" disabled="disabled" onclick="Find();"
+ type="button" value="Find" fcklang="DlgFindFindBtn" />
+ </td>
+ </tr>
+ <tr>
+ <td valign="bottom" colspan="3">
+ <input id="chkCaseFind" tabindex="3" type="checkbox" /><label for="chkCaseFind" fcklang="DlgReplaceCaseChk">Match
+ case</label>
+ <br />
+ <input id="chkWordFind" tabindex="4" type="checkbox" /><label for="chkWordFind" fcklang="DlgReplaceWordChk">Match
+ whole word</label>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <div id="divReplace" style="display:none">
+ <table cellspacing="3" cellpadding="2" width="100%" border="0">
+ <tr>
+ <td nowrap="nowrap">
+ <label for="txtFindReplace" fcklang="DlgReplaceFindLbl">
+ Find what:</label>
+ </td>
+ <td width="100%">
+ <input id="txtFindReplace" onkeyup="btnStat(this.form)" style="width: 100%" tabindex="1"
+ type="text" />
+ </td>
+ <td>
+ <input id="btnReplace" style="width: 80px" disabled="disabled" onclick="Replace();"
+ type="button" value="Replace" fcklang="DlgReplaceReplaceBtn" />
+ </td>
+ </tr>
+ <tr>
+ <td valign="top" nowrap="nowrap">
+ <label for="txtReplace" fcklang="DlgReplaceReplaceLbl">
+ Replace with:</label>
+ </td>
+ <td valign="top">
+ <input id="txtReplace" style="width: 100%" tabindex="2" type="text" />
+ </td>
+ <td>
+ <input id="btnReplaceAll" style="width: 80px" disabled="disabled" onclick="ReplaceAll()" type="button"
+ value="Replace All" fcklang="DlgReplaceReplAllBtn" />
+ </td>
+ </tr>
+ <tr>
+ <td valign="bottom" colspan="3">
+ <input id="chkCaseReplace" tabindex="3" type="checkbox" /><label for="chkCaseReplace" fcklang="DlgReplaceCaseChk">Match
+ case</label>
+ <br />
+ <input id="chkWordReplace" tabindex="4" type="checkbox" /><label for="chkWordReplace" fcklang="DlgReplaceWordChk">Match
+ whole word</label>
+ </td>
+ </tr>
+ </table>
+ </div>
</body>
</html>
diff --git a/editor/editor/dialog/fck_select.html b/editor/editor/dialog/fck_select.html
@@ -2,28 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_select.html
- * Select dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Select dialog window.
-->
<html>
<head>
@@ -62,7 +58,7 @@ window.onload = function()
// Load the actual options
for ( var i = 0 ; i < oActiveEl.options.length ; i++ )
{
- var sText = oActiveEl.options[i].innerHTML ;
+ var sText = HTMLDecode( oActiveEl.options[i].innerHTML ) ;
var sValue = oActiveEl.options[i].value ;
AddComboOption( oListText, sText, sText ) ;
@@ -73,18 +69,20 @@ window.onload = function()
oActiveEl = null ;
window.parent.SetOkButton( true ) ;
+ window.parent.SetAutoSize( true ) ;
}
function Ok()
{
+ oEditor.FCKUndo.SaveUndoStep() ;
+
var sSize = GetE('txtLines').value ;
if ( sSize == null || isNaN( sSize ) || sSize <= 1 )
sSize = '' ;
if ( !oActiveEl )
{
- oActiveEl = oEditor.FCK.EditorDocument.createElement( 'SELECT' ) ;
- oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
+ oActiveEl = oEditor.FCK.InsertElement( 'select' ) ;
}
SetAttribute( oActiveEl, 'name' , GetE('txtName').value ) ;
@@ -116,7 +114,7 @@ function Ok()
</script>
</head>
- <body style='OVERFLOW: hidden' scroll='no'>
+ <body style="overflow: hidden">
<table width="100%" height="100%">
<tr>
<td>
diff --git a/editor/editor/dialog/fck_select/fck_select.js b/editor/editor/dialog/fck_select/fck_select.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_select.js
- * Scripts for the fck_select.html page.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Scripts for the fck_select.html page.
*/
function Select( combo )
@@ -65,10 +61,10 @@ function Modify()
var oTxtText = document.getElementById( "txtText" ) ;
var oTxtValue = document.getElementById( "txtValue" ) ;
- oListText.options[ iIndex ].innerHTML = oTxtText.value ;
+ oListText.options[ iIndex ].innerHTML = HTMLEncode( oTxtText.value ) ;
oListText.options[ iIndex ].value = oTxtText.value ;
- oListValue.options[ iIndex ].innerHTML = oTxtValue.value ;
+ oListValue.options[ iIndex ].innerHTML = HTMLEncode( oTxtValue.value ) ;
oListValue.options[ iIndex ].value = oTxtValue.value ;
oTxtText.value = '' ;
@@ -119,7 +115,7 @@ function ChangeOptionPosition( combo, steps )
return ;
var oOption = combo.options[ iActualIndex ] ;
- var sText = oOption.innerHTML ;
+ var sText = HTMLDecode( oOption.innerHTML ) ;
var sValue = oOption.value ;
combo.remove( iActualIndex ) ;
@@ -166,8 +162,33 @@ function AddComboOption( combo, optionText, optionValue, documentObject, index )
else
combo.options.add( oOption ) ;
- oOption.innerHTML = optionText.length > 0 ? optionText : ' ' ;
+ oOption.innerHTML = optionText.length > 0 ? HTMLEncode( optionText ) : ' ' ;
oOption.value = optionValue ;
return oOption ;
+}
+
+function HTMLEncode( text )
+{
+ if ( !text )
+ return '' ;
+
+ text = text.replace( /&/g, '&' ) ;
+ text = text.replace( /</g, '<' ) ;
+ text = text.replace( />/g, '>' ) ;
+
+ return text ;
+}
+
+
+function HTMLDecode( text )
+{
+ if ( !text )
+ return '' ;
+
+ text = text.replace( />/g, '>' ) ;
+ text = text.replace( /</g, '<' ) ;
+ text = text.replace( /&/g, '&' ) ;
+
+ return text ;
}
\ No newline at end of file
diff --git a/editor/editor/dialog/fck_smiley.html b/editor/editor/dialog/fck_smiley.html
@@ -1,30 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_smiley.html
- * Smileys (emoticons) dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Smileys (emoticons) dialog window.
-->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
@@ -45,14 +41,17 @@ window.onload = function ()
{
// First of all, translate the dialog box texts
oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+ window.parent.SetAutoSize( true ) ;
}
function InsertSmiley( url )
{
- var oImg = oEditor.FCK.CreateElement( 'IMG' ) ;
+ oEditor.FCKUndo.SaveUndoStep() ;
+ var oImg = oEditor.FCK.InsertElement( 'img' ) ;
oImg.src = url ;
oImg.setAttribute( '_fcksavedurl', url ) ;
-
+
// For long smileys list, it seams that IE continues loading the images in
// the background when you quickly select one image. so, let's clear
// everything before closing.
@@ -72,7 +71,7 @@ function out(td)
}
</script>
</head>
-<body scroll="no">
+<body style="overflow: hidden">
<table cellpadding="2" cellspacing="2" align="center" border="0" width="100%" height="100%">
<script type="text/javascript">
diff --git a/editor/editor/dialog/fck_source.html b/editor/editor/dialog/fck_source.html
@@ -1,30 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_source.html
- * Source editor dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Source editor dialog window.
-->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<title>Source</title>
@@ -32,7 +28,7 @@
<meta name="robots" content="noindex, nofollow">
<link href="common/fck_dialog_common.css" rel="stylesheet" type="text/css" />
<script language="javascript">
-
+
var oEditor = window.parent.InnerDialogLoaded() ;
var FCK = oEditor.FCK ;
var FCKConfig = oEditor.FCKConfig ;
@@ -52,9 +48,9 @@ function Ok()
{
if ( oEditor.FCKBrowserInfo.IsIE )
oEditor.FCKUndo.SaveUndoStep() ;
-
- FCK.SetHTML( document.getElementById('txtSource').value, false ) ;
-
+
+ FCK.SetData( document.getElementById('txtSource').value, false ) ;
+
return true ;
}
</script>
diff --git a/editor/editor/dialog/fck_specialchar.html b/editor/editor/dialog/fck_specialchar.html
@@ -1,39 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_specialchar.html
- * Special Chars Selector dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Special Chars Selector dialog window.
-->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<meta name="robots" content="noindex, nofollow">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
- .Hand
- {
+ .Hand
+ {
cursor: pointer ;
- cursor: hand ;
+ cursor: hand ;
}
.Sample { font-size: 24px; }
</style>
@@ -45,18 +41,23 @@ var oSample ;
function insertChar(charValue)
{
+ oEditor.FCKUndo.SaveUndoStep() ;
oEditor.FCK.InsertHtml( charValue || "" ) ;
window.parent.Cancel() ;
}
function over(td)
{
+ if ( ! oSample )
+ return ;
oSample.innerHTML = td.innerHTML ;
td.className = 'LightBackground SpecialCharsOver Hand' ;
}
function out(td)
{
+ if ( ! oSample )
+ return ;
oSample.innerHTML = " " ;
td.className = 'DarkBackground SpecialCharsOut Hand' ;
}
@@ -68,11 +69,13 @@ function setDefaults()
// First of all, translates the dialog box texts.
oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+ window.parent.SetAutoSize( true ) ;
}
</script>
- </HEAD>
- <BODY onload="setDefaults()" scroll="no">
+ </head>
+ <body onload="setDefaults()" style="overflow: hidden">
<table cellpadding="0" cellspacing="0" width="100%" height="100%">
<tr>
<td width="100%">
@@ -86,7 +89,7 @@ var i = 0 ;
while (i < aChars.length)
{
document.write("<TR>") ;
- for(var j = 0 ; j < cols ; j++)
+ for(var j = 0 ; j < cols ; j++)
{
if (aChars[i])
{
@@ -113,5 +116,5 @@ while (i < aChars.length)
</td>
</tr>
</table>
- </BODY>
-</HTML>-
\ No newline at end of file
+ </body>
+</html>
diff --git a/editor/editor/dialog/fck_spellerpages.html b/editor/editor/dialog/fck_spellerpages.html
@@ -2,28 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_spellerpages.html
- * Spell Check dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Spell Check dialog window.
-->
<html>
<head>
@@ -55,7 +51,7 @@ function OnSpellerControlsLoad( controlsWindow )
function oSpeller_OnFinished( numberOCorrections )
{
if ( numberOCorrections > 0 )
- oEditor.FCK.SetHTML( document.getElementById('txtHtml').value ) ;
+ oEditor.FCK.SetData( document.getElementById('txtHtml').value ) ;
window.parent.Cancel() ;
}
diff --git a/editor/editor/dialog/fck_spellerpages/spellerpages/controls.html b/editor/editor/dialog/fck_spellerpages/spellerpages/controls.html
@@ -138,7 +138,7 @@ function init_spell() {
disabled>
</td>
<td> </td>
- <td>
+ <td>
<!-- by FredCK
<input class="buttonDefault" type="button" value="Close" onClick="end_spell();">
-->
diff --git a/editor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm b/editor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm
@@ -0,0 +1,146 @@
+<cfsetting enablecfoutputonly="true">
+<!---
+This code uses a CF User Defined Function and should work in CF version 5.0
+and up without alteration.
+
+Also if you are hosting your site at an ISP, you will have to check with them
+to see if the use of <CFEXECUTE> is allowed. In most cases ISP will not allow
+the use of that tag for security reasons. Clients would be able to access each
+others files in certain cases.
+--->
+
+<!--- The following variables values must reflect your installation. --->
+<cfset aspell_dir = "C:\Program Files\Aspell\bin">
+<cfset lang = "en_US">
+<cfset aspell_opts = "-a --lang=#lang# --encoding=utf-8 -H --rem-sgml-check=alt">
+<cfset tempfile_in = GetTempFile(GetTempDirectory(), "spell_")>
+<cfset tempfile_out = GetTempFile(GetTempDirectory(), "spell_")>
+<cfset spellercss = "../spellerStyle.css">
+<cfset word_win_src = "../wordWindow.js">
+
+<cfset form.checktext = form["textinputs[]"]>
+
+<!--- make no difference between URL and FORM scopes --->
+<cfparam name="url.checktext" default="">
+<cfparam name="form.checktext" default="#url.checktext#">
+
+<!--- Takes care of those pesky smart quotes from MS apps, replaces them with regular quotes --->
+<cfset submitted_text = ReplaceList(form.checktext,"%u201C,%u201D","%22,%22")>
+
+<!--- submitted_text now is ready for processing --->
+
+<!--- use carat on each line to escape possible aspell commands --->
+<cfset text = "">
+<cfset CRLF = Chr(13) & Chr(10)>
+
+<cfloop list="#submitted_text#" index="field" delimiters=",">
+ <cfset text = text & "%" & CRLF
+ & "^A" & CRLF
+ & "!" & CRLF>
+ <cfloop list="#URLDecode(field)#" index="line" delimiters="#CRLF#">
+ <cfset text = ListAppend(text, "^" & Trim(JSStringFormat(line)), CRLF)>
+ </cfloop>
+</cfloop>
+
+<!--- create temp file from the submitted text, this will be passed to aspell to be check for misspelled words --->
+<cffile action="write" file="#tempfile_in#" output="#text#" charset="utf-8">
+
+<!--- execute aspell in an UTF-8 console and redirect output to a file. UTF-8 encoding is lost if done differently --->
+<cfexecute name="cmd.exe" arguments='/c type "#tempfile_in#" | "#aspell_dir#\aspell.exe" #aspell_opts# > "#tempfile_out#"' timeout="100"/>
+
+<!--- read output file for further processing --->
+<cffile action="read" file="#tempfile_out#" variable="food" charset="utf-8">
+
+<!--- remove temp files --->
+<cffile action="delete" file="#tempfile_in#">
+<cffile action="delete" file="#tempfile_out#">
+
+<cfset texts = StructNew()>
+<cfset texts.textinputs = "">
+<cfset texts.words = "">
+<cfset texts.abort = "">
+
+<!--- Generate Text Inputs --->
+<cfset i = 0>
+<cfloop list="#submitted_text#" index="textinput">
+ <cfset texts.textinputs = ListAppend(texts.textinputs, 'textinputs[#i#] = decodeURIComponent("#textinput#");', CRLF)>
+ <cfset i = i + 1>
+</cfloop>
+
+<!--- Generate Words Lists --->
+<cfset word_cnt = 0>
+<cfset input_cnt = -1>
+<cfloop list="#food#" index="aspell_line" delimiters="#CRLF#">
+ <cfset leftChar = Left(aspell_line, 1)>
+ <cfif leftChar eq "*">
+ <cfset input_cnt = input_cnt + 1>
+ <cfset word_cnt = 0>
+ <cfset texts.words = ListAppend(texts.words, "words[#input_cnt#] = [];", CRLF)>
+ <cfset texts.words = ListAppend(texts.words, "suggs[#input_cnt#] = [];", CRLF)>
+ <cfelse>
+ <cfif leftChar eq "&" or leftChar eq "##">
+ <!--- word that misspelled --->
+ <cfset bad_word = Trim(ListGetAt(aspell_line, 2, " "))>
+ <cfset bad_word = Replace(bad_word, "'", "\'", "ALL")>
+ <!--- sugestions --->
+ <cfset sug_list = Trim(ListRest(aspell_line, ":"))>
+ <cfset sug_list = ListQualify(Replace(sug_list, "'", "\'", "ALL"), "'")>
+ <!--- javascript --->
+ <cfset texts.words = ListAppend(texts.words, "words[#input_cnt#][#word_cnt#] = '#bad_word#';", CRLF)>
+ <cfset texts.words = ListAppend(texts.words, "suggs[#input_cnt#][#word_cnt#] = [#sug_list#];", CRLF)>
+ <cfset word_cnt = word_cnt + 1>
+ </cfif>
+ </cfif>
+</cfloop>
+
+<cfif texts.words eq "">
+ <cfset texts.abort = "alert('Spell check complete.\n\nNo misspellings found.'); top.window.close();">
+</cfif>
+
+<cfcontent type="text/html; charset=utf-8">
+
+<cfoutput><html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="#spellercss#" />
+<script language="javascript" src="#word_win_src#"></script>
+<script language="javascript">
+var suggs = new Array();
+var words = new Array();
+var textinputs = new Array();
+var error;
+
+#texts.textinputs##CRLF#
+#texts.words#
+#texts.abort#
+
+var wordWindowObj = new wordWindow();
+wordWindowObj.originalSpellings = words;
+wordWindowObj.suggestions = suggs;
+wordWindowObj.textInputs = textinputs;
+
+function init_spell() {
+ // check if any error occured during server-side processing
+ if( error ) {
+ alert( error );
+ } else {
+ // call the init_spell() function in the parent frameset
+ if (parent.frames.length) {
+ parent.init_spell( wordWindowObj );
+ } else {
+ alert('This page was loaded outside of a frameset. It might not display properly');
+ }
+ }
+}
+</script>
+
+</head>
+<body onLoad="init_spell();">
+
+<script type="text/javascript">
+wordWindowObj.writeBody();
+</script>
+
+</body>
+</html></cfoutput>
+<cfsetting enablecfoutputonly="false">
diff --git a/editor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php b/editor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php
@@ -7,7 +7,7 @@ $aspell_prog = '"C:\Program Files\Aspell\bin\aspell.exe"'; // by FredCK (for Win
//$aspell_prog = 'aspell'; // by FredCK (for Linux)
$lang = 'en_US';
-$aspell_opts = "-a --lang=$lang --encoding=utf-8 -H"; // by FredCK
+$aspell_opts = "-a --lang=$lang --encoding=utf-8 -H --rem-sgml-check=alt"; // by FredCK
$tempfiledir = "./";
diff --git a/editor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl b/editor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl
@@ -0,0 +1,180 @@
+#!/usr/bin/perl
+
+use CGI qw/ :standard /;
+use File::Temp qw/ tempfile tempdir /;
+
+# my $spellercss = '/speller/spellerStyle.css'; # by FredCK
+my $spellercss = '../spellerStyle.css'; # by FredCK
+# my $wordWindowSrc = '/speller/wordWindow.js'; # by FredCK
+my $wordWindowSrc = '../wordWindow.js'; # by FredCK
+my @textinputs = param( 'textinputs[]' ); # array
+# my $aspell_cmd = 'aspell'; # by FredCK (for Linux)
+my $aspell_cmd = '"C:\Program Files\Aspell\bin\aspell.exe"'; # by FredCK (for Windows)
+my $lang = 'en_US';
+# my $aspell_opts = "-a --lang=$lang --encoding=utf-8"; # by FredCK
+my $aspell_opts = "-a --lang=$lang --encoding=utf-8 -H --rem-sgml-check=alt"; # by FredCK
+my $input_separator = "A";
+
+# set the 'wordtext' JavaScript variable to the submitted text.
+sub printTextVar {
+ for( my $i = 0; $i <= $#textinputs; $i++ ) {
+ print "textinputs[$i] = decodeURIComponent('" . escapeQuote( $textinputs[$i] ) . "')\n";
+ }
+}
+
+sub printTextIdxDecl {
+ my $idx = shift;
+ print "words[$idx] = [];\n";
+ print "suggs[$idx] = [];\n";
+}
+
+sub printWordsElem {
+ my( $textIdx, $wordIdx, $word ) = @_;
+ print "words[$textIdx][$wordIdx] = '" . escapeQuote( $word ) . "';\n";
+}
+
+sub printSuggsElem {
+ my( $textIdx, $wordIdx, @suggs ) = @_;
+ print "suggs[$textIdx][$wordIdx] = [";
+ for my $i ( 0..$#suggs ) {
+ print "'" . escapeQuote( $suggs[$i] ) . "'";
+ if( $i < $#suggs ) {
+ print ", ";
+ }
+ }
+ print "];\n";
+}
+
+sub printCheckerResults {
+ my $textInputIdx = -1;
+ my $wordIdx = 0;
+ my $unhandledText;
+ # create temp file
+ my $dir = tempdir( CLEANUP => 1 );
+ my( $fh, $tmpfilename ) = tempfile( DIR => $dir );
+
+ # temp file was created properly?
+
+ # open temp file, add the submitted text.
+ for( my $i = 0; $i <= $#textinputs; $i++ ) {
+ $text = url_decode( $textinputs[$i] );
+ @lines = split( /\n/, $text );
+ print $fh "\%\n"; # exit terse mode
+ print $fh "^$input_separator\n";
+ print $fh "!\n"; # enter terse mode
+ for my $line ( @lines ) {
+ # use carat on each line to escape possible aspell commands
+ print $fh "^$line\n";
+ }
+
+ }
+ # exec aspell command
+ my $cmd = "$aspell_cmd $aspell_opts < $tmpfilename 2>&1";
+ open ASPELL, "$cmd |" or handleError( "Could not execute `$cmd`\\n$!" ) and return;
+ # parse each line of aspell return
+ for my $ret ( <ASPELL> ) {
+ chomp( $ret );
+ # if '&', then not in dictionary but has suggestions
+ # if '#', then not in dictionary and no suggestions
+ # if '*', then it is a delimiter between text inputs
+ if( $ret =~ /^\*/ ) {
+ $textInputIdx++;
+ printTextIdxDecl( $textInputIdx );
+ $wordIdx = 0;
+
+ } elsif( $ret =~ /^(&|#)/ ) {
+ my @tokens = split( " ", $ret, 5 );
+ printWordsElem( $textInputIdx, $wordIdx, $tokens[1] );
+ my @suggs = ();
+ if( $tokens[4] ) {
+ @suggs = split( ", ", $tokens[4] );
+ }
+ printSuggsElem( $textInputIdx, $wordIdx, @suggs );
+ $wordIdx++;
+ } else {
+ $unhandledText .= $ret;
+ }
+ }
+ close ASPELL or handleError( "Error executing `$cmd`\\n$unhandledText" ) and return;
+}
+
+sub escapeQuote {
+ my $str = shift;
+ $str =~ s/'/\\'/g;
+ return $str;
+}
+
+sub handleError {
+ my $err = shift;
+ print "error = '" . escapeQuote( $err ) . "';\n";
+}
+
+sub url_decode {
+ local $_ = @_ ? shift : $_;
+ defined or return;
+ # change + signs to spaces
+ tr/+/ /;
+ # change hex escapes to the proper characters
+ s/%([a-fA-F0-9]{2})/pack "H2", $1/eg;
+ return $_;
+}
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# Display HTML
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+print <<EOF;
+Content-type: text/html; charset=utf-8
+
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="$spellercss"/>
+<script src="$wordWindowSrc"></script>
+<script type="text/javascript">
+var suggs = new Array();
+var words = new Array();
+var textinputs = new Array();
+var error;
+EOF
+
+printTextVar();
+
+printCheckerResults();
+
+print <<EOF;
+var wordWindowObj = new wordWindow();
+wordWindowObj.originalSpellings = words;
+wordWindowObj.suggestions = suggs;
+wordWindowObj.textInputs = textinputs;
+
+
+function init_spell() {
+ // check if any error occured during server-side processing
+ if( error ) {
+ alert( error );
+ } else {
+ // call the init_spell() function in the parent frameset
+ if (parent.frames.length) {
+ parent.init_spell( wordWindowObj );
+ } else {
+ error = "This page was loaded outside of a frameset. ";
+ error += "It might not display properly";
+ alert( error );
+ }
+ }
+}
+
+</script>
+
+</head>
+<body onLoad="init_spell();">
+
+<script type="text/javascript">
+wordWindowObj.writeBody();
+</script>
+
+</body>
+</html>
+EOF
+
diff --git a/editor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js b/editor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js
@@ -36,7 +36,7 @@ function spellChecker( textObject ) {
this.controlWin = null;
this.wordWin = null;
this.textArea = textObject; // deprecated
- this.textInputs = arguments;
+ this.textInputs = arguments;
// private methods
this._spellcheck = _spellcheck;
@@ -96,7 +96,7 @@ function startCheck( wordWindowObj, controlWindowObj ) {
// set properties from args
this.wordWin = wordWindowObj;
this.controlWin = controlWindowObj;
-
+
// reset properties
this.wordWin.resetForm();
this.controlWin.resetForm();
@@ -111,7 +111,7 @@ function startCheck( wordWindowObj, controlWindowObj ) {
// start
this._spellcheck();
-
+
return true;
}
@@ -148,7 +148,7 @@ function ignoreAll() {
return false;
}
- // set this word as an "ignore all" word.
+ // set this word as an "ignore all" word.
this._setAsIgnored( ti, wi, this.ignrAllFlag );
// loop through all the words after this word
@@ -156,7 +156,7 @@ function ignoreAll() {
for( var j = 0; j < this.wordWin.totalWords( i ); j++ ) {
if(( i == ti && j > wi ) || i > ti ) {
// future word: set as "from ignore all" if
- // 1) do not already have a flag and
+ // 1) do not already have a flag and
// 2) have the same value as current word
if(( this.wordWin.getTextVal( i, j ) == s_word_to_repl )
&& ( !this.wordFlags[i][j] )) {
@@ -213,7 +213,7 @@ function replaceAll() {
if( !txt.value ) return false;
var newspell = new String( txt.value );
- // set this word as a "replace all" word.
+ // set this word as a "replace all" word.
this._setWordText( ti, wi, newspell, this.replAllFlag );
// loop through all the words after this word
@@ -221,7 +221,7 @@ function replaceAll() {
for( var j = 0; j < this.wordWin.totalWords( i ); j++ ) {
if(( i == ti && j > wi ) || i > ti ) {
// future word: set word text to s_word_to_repl if
- // 1) do not already have a flag and
+ // 1) do not already have a flag and
// 2) have the same value as s_word_to_repl
if(( this.wordWin.getTextVal( i, j ) == s_word_to_repl )
&& ( !this.wordFlags[i][j] )) {
@@ -230,7 +230,7 @@ function replaceAll() {
}
}
}
-
+
// finally, move on
this.currentWordIndex++;
this._spellcheck();
@@ -290,11 +290,11 @@ function undo() {
// skip if this is the first word!
var ti = this.currentTextIndex;
var wi = this.currentWordIndex;
-
+
if( this.wordWin.totalPreviousWords( ti, wi ) > 0 ) {
this.wordWin.removeFocus( ti, wi );
- // go back to the last word index that was acted upon
+ // go back to the last word index that was acted upon
do {
// if the current word index is zero then reset the seed
if( this.currentWordIndex == 0 && this.currentTextIndex > 0 ) {
@@ -306,25 +306,25 @@ function undo() {
this.currentWordIndex--;
}
}
- } while (
+ } while (
this.wordWin.totalWords( this.currentTextIndex ) == 0
|| this.wordFlags[this.currentTextIndex][this.currentWordIndex] == this.fromIgnrAll
|| this.wordFlags[this.currentTextIndex][this.currentWordIndex] == this.fromReplAll
- );
+ );
var text_idx = this.currentTextIndex;
var idx = this.currentWordIndex;
var preReplSpell = this.wordWin.originalSpellings[text_idx][idx];
-
+
// if we got back to the first word then set the Undo button back to disabled
if( this.wordWin.totalPreviousWords( text_idx, idx ) == 0 ) {
this.controlWin.disableUndo();
}
-
+
var i, j, origSpell ;
// examine what happened to this current word.
switch( this.wordFlags[text_idx][idx] ) {
- // replace all: go through this and all the future occurances of the word
+ // replace all: go through this and all the future occurances of the word
// and revert them all to the original spelling and clear their flags
case this.replAllFlag :
for( i = text_idx; i < this.wordWin.textInputs.length; i++ ) {
@@ -338,8 +338,8 @@ function undo() {
}
}
break;
-
- // ignore all: go through all the future occurances of the word
+
+ // ignore all: go through all the future occurances of the word
// and clear their flags
case this.ignrAllFlag :
for( i = text_idx; i < this.wordWin.textInputs.length; i++ ) {
@@ -347,13 +347,13 @@ function undo() {
if(( i == text_idx && j >= idx ) || i > text_idx ) {
origSpell = this.wordWin.originalSpellings[i][j];
if( origSpell == preReplSpell ) {
- this.wordFlags[i][j] = undefined;
+ this.wordFlags[i][j] = undefined;
}
}
}
}
break;
-
+
// replace: revert the word to its original spelling
case this.replWordFlag :
this._setWordText ( text_idx, idx, preReplSpell, undefined );
@@ -361,20 +361,20 @@ function undo() {
}
// For all four cases, clear the wordFlag of this word. re-start the process
- this.wordFlags[text_idx][idx] = undefined;
+ this.wordFlags[text_idx][idx] = undefined;
this._spellcheck();
}
}
function _spellcheck() {
var ww = this.wordWin;
-
+
// check if this is the last word in the current text element
if( this.currentWordIndex == ww.totalWords( this.currentTextIndex) ) {
this.currentTextIndex++;
this.currentWordIndex = 0;
// keep going if we're not yet past the last text element
- if( this.currentTextIndex < this.wordWin.textInputs.length ) {
+ if( this.currentTextIndex < this.wordWin.textInputs.length ) {
this._spellcheck();
return;
} else {
@@ -382,7 +382,7 @@ function _spellcheck() {
return;
}
}
-
+
// if this is after the first one make sure the Undo button is enabled
if( this.currentWordIndex > 0 ) {
this.controlWin.enableUndo();
@@ -408,10 +408,10 @@ function _getSuggestions( text_num, word_num ) {
// add suggestion in list for each suggested word.
// get the array of suggested words out of the
// three-dimensional array containing all suggestions.
- var a_suggests = this.wordWin.suggestions[text_num][word_num];
+ var a_suggests = this.wordWin.suggestions[text_num][word_num];
if( a_suggests ) {
// got an array of suggestions.
- for( var ii = 0; ii < a_suggests.length; ii++ ) {
+ for( var ii = 0; ii < a_suggests.length; ii++ ) {
this.controlWin.addSuggestion( a_suggests[ii] );
}
}
@@ -453,8 +453,8 @@ function _getFormInputs( inputPattern ) {
for( var i = 0; i < document.forms.length; i++ ) {
for( var j = 0; j < document.forms[i].elements.length; j++ ) {
if( document.forms[i].elements[j].type.match( inputPattern )) {
- inputs[inputs.length] = document.forms[i].elements[j];
- }
+ inputs[inputs.length] = document.forms[i].elements[j];
+ }
}
}
return inputs;
diff --git a/editor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html b/editor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html
@@ -26,8 +26,8 @@ function init_spell( spellerWindow ) {
function encodeForPost( str ) {
var s = new String( str );
s = encodeURIComponent( s );
- // additionally encode single quotes to evade any PHP
- // magic_quotes_gpc setting (it inserts escape characters and
+ // additionally encode single quotes to evade any PHP
+ // magic_quotes_gpc setting (it inserts escape characters and
// therefore skews the btye positions of misspelled words)
return s.replace( /\'/g, '%27' );
}
diff --git a/editor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js b/editor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js
@@ -12,7 +12,7 @@ function wordWindow() {
this._adjustIndexes = _adjustIndexes;
this._isWordChar = _isWordChar;
this._lastPos = _lastPos;
-
+
// public properties
this.wordChar = /[a-zA-Z]/;
this.windowType = "wordWindow";
@@ -69,7 +69,7 @@ function totalPreviousWords( textIndex, wordIndex ) {
break;
} else {
total_words++;
- }
+ }
}
}
return total_words;
@@ -115,17 +115,17 @@ function setText( textIndex, wordIndex, newText ) {
var oldText = word.value;
// update the text given the index of the string
beginStr = this.textInputs[textIndex].substring( 0, pos );
- endStr = this.textInputs[textIndex].substring(
- pos + oldText.length,
- this.textInputs[textIndex].length
+ endStr = this.textInputs[textIndex].substring(
+ pos + oldText.length,
+ this.textInputs[textIndex].length
);
this.textInputs[textIndex] = beginStr + newText + endStr;
-
- // adjust the indexes on the stack given the differences in
- // length between the new word and old word.
+
+ // adjust the indexes on the stack given the differences in
+ // length between the new word and old word.
var lengthDiff = newText.length - oldText.length;
this._adjustIndexes( textIndex, wordIndex, lengthDiff );
-
+
word.size = newText.length;
word.value = newText;
this.removeFocus( textIndex, wordIndex );
@@ -140,39 +140,39 @@ function writeBody() {
d.open();
// iterate through each text input.
- for( var txtid = 0; txtid < this.textInputs.length; txtid++ ) {
+ for( var txtid = 0; txtid < this.textInputs.length; txtid++ ) {
var end_idx = 0;
- var begin_idx = 0;
+ var begin_idx = 0;
d.writeln( '<form name="textInput'+txtid+'">' );
var wordtxt = this.textInputs[txtid];
this.indexes[txtid] = [];
- if( wordtxt ) {
+ if( wordtxt ) {
var orig = this.originalSpellings[txtid];
if( !orig ) break;
//!!! plain text, or HTML mode?
d.writeln( '<div class="plainText">' );
- // iterate through each occurrence of a misspelled word.
+ // iterate through each occurrence of a misspelled word.
for( var i = 0; i < orig.length; i++ ) {
// find the position of the current misspelled word,
- // starting at the last misspelled word.
+ // starting at the last misspelled word.
// and keep looking if it's a substring of another word
do {
begin_idx = wordtxt.indexOf( orig[i], end_idx );
end_idx = begin_idx + orig[i].length;
// word not found? messed up!
- if( begin_idx == -1 ) break;
- // look at the characters immediately before and after
+ if( begin_idx == -1 ) break;
+ // look at the characters immediately before and after
// the word. If they are word characters we'll keep looking.
var before_char = wordtxt.charAt( begin_idx - 1 );
var after_char = wordtxt.charAt( end_idx );
- } while (
- this._isWordChar( before_char )
+ } while (
+ this._isWordChar( before_char )
|| this._isWordChar( after_char )
);
- // keep track of its position in the original text.
+ // keep track of its position in the original text.
this.indexes[txtid][i] = begin_idx;
// write out the characters before the current misspelled word
@@ -181,17 +181,17 @@ function writeBody() {
d.write( this.printForHtml( wordtxt.charAt( j )));
}
- // write out the misspelled word.
+ // write out the misspelled word.
d.write( this._wordInputStr( orig[i] ));
// if it's the last word, write out the rest of the text
if( i == orig.length-1 ){
d.write( printForHtml( wordtxt.substr( end_idx )));
- }
+ }
}
d.writeln( '</div>' );
-
+
}
d.writeln( '</form>' );
}
@@ -200,8 +200,8 @@ function writeBody() {
// for( var k = 0; k < d.forms[j].elements.length; k++ ) {
// alert( d.forms[j].elements[k].name + ": " + d.forms[j].elements[k].value );
// }
- //}
-
+ //}
+
// set the _forms property
this._forms = d.forms;
d.close();
@@ -217,7 +217,7 @@ function _lastPos( txtid, idx ) {
function printForHtml( n ) {
return n ; // by FredCK
-/*
+/*
var htmlstr = n;
if( htmlstr.length == 1 ) {
// do simple case statement if it's just one character
diff --git a/editor/editor/dialog/fck_table.html b/editor/editor/dialog/fck_table.html
@@ -1,30 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_table.html
- * Table dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Table dialog window.
-->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Table Properties</title>
@@ -74,10 +70,10 @@ window.onload = function()
iWidth = iWidth.substr(0,iWidth.length - 2);
document.getElementById('selWidthType').value = "pixels" ;
}
-
+
if (iHeight && iHeight.indexOf('px') >= 0) // Style Pixel = px
iHeight = iHeight.substr(0,iHeight.length - 2);
-
+
document.getElementById('txtWidth').value = iWidth || '' ;
document.getElementById('txtHeight').value = iHeight || '' ;
document.getElementById('txtBorder').value = GetAttribute( table, 'border', '' ) ;
@@ -87,21 +83,22 @@ window.onload = function()
document.getElementById('txtSummary').value = GetAttribute( table, 'summary', '' ) ;
// document.getElementById('cmbFontStyle').value = table.className ;
- if (table.caption) document.getElementById('txtCaption').value = table.caption.innerHTML ;
-
+ var eCaption = oEditor.FCKDomTools.GetFirstChild( table, 'CAPTION' ) ;
+ if ( eCaption ) document.getElementById('txtCaption').value = eCaption.innerHTML ;
+
document.getElementById('txtRows').disabled = true ;
document.getElementById('txtColumns').disabled = true ;
}
-
- window.parent.SetOkButton( true ) ;
- window.parent.SetAutoSize( true ) ;
+
+ window.parent.SetOkButton( true ) ;
+ window.parent.SetAutoSize( true ) ;
}
// Fired when the user press the OK button
function Ok()
{
var bExists = ( table != null ) ;
-
+
if ( ! bExists )
table = oEditor.FCK.EditorDocument.createElement( "TABLE" ) ;
@@ -134,13 +131,20 @@ function Ok()
eCaption.innerHTML = document.getElementById('txtCaption').value ;
}
else if ( bExists && eCaption )
- eCaption.parentNode.removeChild( eCaption ) ;
-
+ {
+ // TODO: It causes an IE internal error if using removeChild or
+ // table.deleteCaption() (see #505).
+ if ( oEditor.FCKBrowserInfo.IsIE )
+ eCaption.innerHTML = '' ;
+ else
+ eCaption.parentNode.removeChild( eCaption ) ;
+ }
+
if (! bExists)
{
var iRows = document.getElementById('txtRows').value ;
var iCols = document.getElementById('txtColumns').value ;
-
+
for ( var r = 0 ; r < iRows ; r++ )
{
var oRow = table.insertRow(-1) ;
@@ -148,16 +152,15 @@ function Ok()
{
var oCell = oRow.insertCell(-1) ;
if ( oEditor.FCKBrowserInfo.IsGeckoLike )
- oCell.innerHTML = GECKO_BOGUS ;
- //oCell.innerHTML = " " ;
+ oEditor.FCKTools.AppendBogusBr( oCell ) ;
}
}
-
+
oEditor.FCKUndo.SaveUndoStep() ;
-
+
oEditor.FCK.InsertElement( table ) ;
}
-
+
return true ;
}
diff --git a/editor/editor/dialog/fck_tablecell.html b/editor/editor/dialog/fck_tablecell.html
@@ -2,28 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_tablecell.html
- * Cell properties dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Cell properties dialog window.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@@ -91,7 +87,7 @@ function Ok()
aCells[i].removeAttribute( 'width', 0 ) ;
if ( GetE('selWordWrap').value == 'false' )
- aCells[i].noWrap = true ;
+ SetAttribute( aCells[i], 'noWrap', 'nowrap' ) ;
else
aCells[i].removeAttribute( 'noWrap' ) ;
diff --git a/editor/editor/dialog/fck_template.html b/editor/editor/dialog/fck_template.html
@@ -2,28 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_template.html
- * Template selection dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Template selection dialog window.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@@ -71,9 +67,9 @@ window.onload = function()
// Translate the dialog box texts.
oEditor.FCKLanguageManager.TranslatePage(document) ;
-
+
GetE('xChkReplaceAll').checked = ( FCKConfig.TemplateReplaceAll !== false ) ;
-
+
if ( FCKConfig.TemplateReplaceCheckbox !== false )
GetE('xReplaceBlock').style.display = '' ;
@@ -167,7 +163,7 @@ function LoadTemplatesXml()
sInner += '<\/td><\/tr><\/table>' ;
oItemDiv.innerHTML = sInner ;
-
+
oItemDiv.onmouseover = ItemDiv_OnMouseOver ;
oItemDiv.onmouseout = ItemDiv_OnMouseOut ;
oItemDiv.onclick = ItemDiv_OnClick ;
@@ -195,7 +191,7 @@ function SelectTemplate( index )
oEditor.FCKUndo.SaveUndoStep() ;
if ( GetE('xChkReplaceAll').checked )
- FCK.SetHTML( FCK._Templates[index].Html ) ;
+ FCK.SetData( FCK._Templates[index].Html ) ;
else
FCK.InsertHtml( FCK._Templates[index].Html ) ;
diff --git a/editor/editor/dialog/fck_textarea.html b/editor/editor/dialog/fck_textarea.html
@@ -2,28 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_textarea.html
- * Text Area dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Text Area dialog window.
-->
<html>
<head>
@@ -55,14 +51,16 @@ window.onload = function()
oActiveEl = null ;
window.parent.SetOkButton( true ) ;
+ window.parent.SetAutoSize( true ) ;
}
function Ok()
{
+ oEditor.FCKUndo.SaveUndoStep() ;
+
if ( !oActiveEl )
{
- oActiveEl = oEditor.FCK.EditorDocument.createElement( 'TEXTAREA' ) ;
- oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
+ oActiveEl = oEditor.FCK.InsertElement( 'textarea' ) ;
}
oActiveEl.name = GetE('txtName').value ;
@@ -74,7 +72,7 @@ function Ok()
</script>
</head>
- <body style='OVERFLOW: hidden' scroll='no'>
+ <body style="overflow: hidden">
<table height="100%" width="100%">
<tr>
<td align="center">
diff --git a/editor/editor/dialog/fck_textfield.html b/editor/editor/dialog/fck_textfield.html
@@ -2,28 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_textfield.html
- * Text field dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Text field dialog window.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@@ -59,6 +55,7 @@ window.onload = function()
oActiveEl = null ;
window.parent.SetOkButton( true ) ;
+ window.parent.SetAutoSize( true ) ;
}
function Ok()
@@ -80,7 +77,8 @@ function Ok()
{
oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ;
oActiveEl.type = GetE('txtType').value ;
- oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
+ oEditor.FCKUndo.SaveUndoStep() ;
+ oActiveEl = oEditor.FCK.InsertElement( oActiveEl ) ;
}
oActiveEl.name = GetE('txtName').value ;
diff --git a/editor/editor/dtd/fck_dtd_test.html b/editor/editor/dtd/fck_dtd_test.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>DTD Test Page</title>
+ <script type="text/javascript">
+
+ // Define an object for this test page, so the assignment to FCK.DTD works
+ var FCK = {} ;
+ </script>
+ <script type="text/javascript" src="../_source/internals/fcktools.js"></script>
+ <script type="text/javascript" src="fck_xhtml10transitional.js"></script>
+</head>
+<body>
+ <h1>
+ DTD Contents
+ </h1>
+ <table border="1">
+ <script type="text/javascript">
+
+ alert(FCK.DTD);
+
+for ( var p in FCK.DTD )
+{
+ document.write( '<tr><td><b>' + p + '</b></td><td>' ) ;
+
+ var isFirst = true ;
+
+ for ( var c in FCK.DTD[p] )
+ {
+ if ( !isFirst )
+ document.write( ', ' ) ;
+ isFirst = false ;
+
+ document.write( c ) ;
+ }
+
+
+ document.write( '</td></tr>' ) ;
+}
+ </script>
+ </table>
+</body>
+</html>
diff --git a/editor/editor/dtd/fck_xhtml10strict.js b/editor/editor/dtd/fck_xhtml10strict.js
@@ -0,0 +1,116 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Contains the DTD mapping for XHTML 1.0 Strict.
+ * This file was automatically generated from the file: xhtml10-strict.dtd
+ */
+FCK.DTD = (function()
+{
+ X = FCKTools.Merge ;
+
+ var H,I,J,K,C,L,M,A,B,D,E,G,N,F ;
+ A = {ins:1, del:1, script:1} ;
+ B = {hr:1, ul:1, div:1, blockquote:1, noscript:1, table:1, address:1, pre:1, p:1, h5:1, dl:1, h4:1, ol:1, h6:1, h1:1, h3:1, h2:1} ;
+ C = X({fieldset:1}, B) ;
+ D = X({sub:1, bdo:1, 'var':1, sup:1, br:1, kbd:1, map:1, samp:1, b:1, acronym:1, '#':1, abbr:1, code:1, i:1, cite:1, tt:1, strong:1, q:1, em:1, big:1, small:1, span:1, dfn:1}, A) ;
+ E = X({img:1, object:1}, D) ;
+ F = {input:1, button:1, textarea:1, select:1, label:1} ;
+ G = X({a:1}, F) ;
+ H = {img:1, noscript:1, br:1, kbd:1, button:1, h5:1, h4:1, samp:1, h6:1, ol:1, h1:1, h3:1, h2:1, form:1, select:1, '#':1, ins:1, abbr:1, label:1, code:1, table:1, script:1, cite:1, input:1, strong:1, textarea:1, big:1, small:1, span:1, hr:1, sub:1, bdo:1, 'var':1, div:1, object:1, sup:1, map:1, dl:1, del:1, fieldset:1, ul:1, b:1, acronym:1, a:1, blockquote:1, i:1, address:1, tt:1, q:1, pre:1, p:1, em:1, dfn:1} ;
+
+ I = X({form:1, fieldset:1}, B, E, G) ;
+ J = {tr:1} ;
+ K = {'#':1} ;
+ L = X(E, G) ;
+ M = {li:1} ;
+ N = X({form:1}, A, C) ;
+
+ return {
+ col: {},
+ tr: {td:1, th:1},
+ img: {},
+ colgroup: {col:1},
+ noscript: N,
+ td: I,
+ br: {},
+ th: I,
+ kbd: L,
+ button: X(B, E),
+ h5: L,
+ h4: L,
+ samp: L,
+ h6: L,
+ ol: M,
+ h1: L,
+ h3: L,
+ option: K,
+ h2: L,
+ form: X(A, C),
+ select: {optgroup:1, option:1},
+ ins: I,
+ abbr: L,
+ label: L,
+ code: L,
+ table: {thead:1, col:1, tbody:1, tr:1, colgroup:1, caption:1, tfoot:1},
+ script: K,
+ tfoot: J,
+ cite: L,
+ li: I,
+ input: {},
+ strong: L,
+ textarea: K,
+ big: L,
+ small: L,
+ span: L,
+ dt: L,
+ hr: {},
+ sub: L,
+ optgroup: {option:1},
+ bdo: L,
+ param: {},
+ 'var': L,
+ div: I,
+ object: X({param:1}, H),
+ sup: L,
+ dd: I,
+ area: {},
+ map: X({form:1, area:1}, A, C),
+ dl: {dt:1, dd:1},
+ del: I,
+ fieldset: X({legend:1}, H),
+ thead: J,
+ ul: M,
+ acronym: L,
+ b: L,
+ a: X({img:1, object:1}, D, F),
+ blockquote: N,
+ caption: L,
+ i: L,
+ tbody: J,
+ address: L,
+ tt: L,
+ legend: L,
+ q: L,
+ pre: X({a:1}, D, F),
+ p: L,
+ em: L,
+ dfn: L
+ } ;
+})() ;
diff --git a/editor/editor/dtd/fck_xhtml10transitional.js b/editor/editor/dtd/fck_xhtml10transitional.js
@@ -0,0 +1,140 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Contains the DTD mapping for XHTML 1.0 Transitional.
+ * This file was automatically generated from the file: xhtml10-transitional.dtd
+ */
+FCK.DTD = (function()
+{
+ X = FCKTools.Merge ;
+
+ var A,L,J,M,N,O,D,H,P,K,Q,F,G,C,B,E,I ;
+ A = {isindex:1, fieldset:1} ;
+ B = {input:1, button:1, select:1, textarea:1, label:1} ;
+ C = X({a:1}, B) ;
+ D = X({iframe:1}, C) ;
+ E = {hr:1, ul:1, menu:1, div:1, blockquote:1, noscript:1, table:1, center:1, address:1, dir:1, pre:1, h5:1, dl:1, h4:1, noframes:1, h6:1, ol:1, h1:1, h3:1, h2:1} ;
+ F = {ins:1, del:1, script:1} ;
+ G = X({b:1, acronym:1, bdo:1, 'var':1, '#':1, abbr:1, code:1, br:1, i:1, cite:1, kbd:1, u:1, strike:1, s:1, tt:1, strong:1, q:1, samp:1, em:1, dfn:1, span:1}, F) ;
+ H = X({sub:1, img:1, object:1, sup:1, basefont:1, map:1, applet:1, font:1, big:1, small:1}, G) ;
+ I = X({p:1}, H) ;
+ J = X({iframe:1}, H, B) ;
+ K = {img:1, noscript:1, br:1, kbd:1, center:1, button:1, basefont:1, h5:1, h4:1, samp:1, h6:1, ol:1, h1:1, h3:1, h2:1, form:1, font:1, '#':1, select:1, menu:1, ins:1, abbr:1, label:1, code:1, table:1, script:1, cite:1, input:1, iframe:1, strong:1, textarea:1, noframes:1, big:1, small:1, span:1, hr:1, sub:1, bdo:1, 'var':1, div:1, object:1, sup:1, strike:1, dir:1, map:1, dl:1, applet:1, del:1, isindex:1, fieldset:1, ul:1, b:1, acronym:1, a:1, blockquote:1, i:1, u:1, s:1, tt:1, address:1, q:1, pre:1, p:1, em:1, dfn:1} ;
+
+ L = X({a:1}, J) ;
+ M = {tr:1} ;
+ N = {'#':1} ;
+ O = X({param:1}, K) ;
+ P = X({form:1}, A, D, E, I) ;
+ Q = {li:1} ;
+
+ return {
+ col: {},
+ tr: {td:1, th:1},
+ img: {},
+ colgroup: {col:1},
+ noscript: P,
+ td: P,
+ br: {},
+ th: P,
+ center: P,
+ kbd: L,
+ button: X(I, E),
+ basefont: {},
+ h5: L,
+ h4: L,
+ samp: L,
+ h6: L,
+ ol: Q,
+ h1: L,
+ h3: L,
+ option: N,
+ h2: L,
+ form: X(A, D, E, I),
+ select: {optgroup:1, option:1},
+ font: J, // Changed from L to J (see (1))
+ ins: P,
+ menu: Q,
+ abbr: L,
+ label: L,
+ table: {thead:1, col:1, tbody:1, tr:1, colgroup:1, caption:1, tfoot:1},
+ code: L,
+ script: N,
+ tfoot: M,
+ cite: L,
+ li: P,
+ input: {},
+ iframe: P,
+ strong: J, // Changed from L to J (see (1))
+ textarea: N,
+ noframes: P,
+ big: J, // Changed from L to J (see (1))
+ small: J, // Changed from L to J (see (1))
+ span: J, // Changed from L to J (see (1))
+ hr: {},
+ dt: L,
+ sub: J, // Changed from L to J (see (1))
+ optgroup: {option:1},
+ param: {},
+ bdo: L,
+ 'var': J, // Changed from L to J (see (1))
+ div: P,
+ object: O,
+ sup: J, // Changed from L to J (see (1))
+ dd: P,
+ strike: J, // Changed from L to J (see (1))
+ area: {},
+ dir: Q,
+ map: X({area:1, form:1, p:1}, A, F, E),
+ applet: O,
+ dl: {dt:1, dd:1},
+ del: P,
+ isindex: {},
+ fieldset: X({legend:1}, K),
+ thead: M,
+ ul: Q,
+ acronym: L,
+ b: J, // Changed from L to J (see (1))
+ a: J,
+ blockquote: P,
+ caption: L,
+ i: J, // Changed from L to J (see (1))
+ u: J, // Changed from L to J (see (1))
+ tbody: M,
+ s: L,
+ address: X(D, I),
+ tt: J, // Changed from L to J (see (1))
+ legend: L,
+ q: L,
+ pre: X(G, C),
+ p: L,
+ em: J, // Changed from L to J (see (1))
+ dfn: L
+ } ;
+})() ;
+
+/*
+ Notes:
+ (1) According to the DTD, many elements, like <b> accept <a> elements
+ inside of them. But, to produce better output results, we have manually
+ changed the map to avoid breaking the links on pieces, having
+ "<b>this is a </b><a><b>link</b> test</a>", instead of
+ "<b>this is a <a>link</a></b><a> test</a>".
+*/+
\ No newline at end of file
diff --git a/editor/editor/fckdebug.html b/editor/editor/fckdebug.html
@@ -2,29 +2,25 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fckdebug.html
- * This is the Debug window.
- * It automatically popups if the Debug = true in the configuration file.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * This is the Debug window.
+ * It automatically popups if the Debug = true in the configuration file.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@@ -51,10 +47,10 @@ function Output( message, color, noParse )
{
if ( !noParse && message != null && isNaN( message ) )
message = message.replace(/</g, "<") ;
-
+
if ( color )
message = '<font color="' + color + '">' + message + '<\/font>' ;
-
+
window.FCKMessages[ window.FCKMessages.length ] = message ;
StartTimer() ;
}
@@ -62,18 +58,18 @@ function Output( message, color, noParse )
function OutputObject( anyObject, color )
{
var message ;
-
- if ( anyObject != null )
+
+ if ( anyObject != null )
{
message = 'Properties of: ' + anyObject + '</b><blockquote>' ;
-
+
for (var prop in anyObject)
{
- try
+ try
{
var sVal = anyObject[ prop ] != null ? anyObject[ prop ] + '' : '[null]' ;
message += '<b>' + prop + '</b> : ' + sVal.replace(/</g, '<') + '<br>' ;
- }
+ }
catch (e)
{
try
@@ -87,10 +83,10 @@ function OutputObject( anyObject, color )
}
}
- message += '</blockquote><b>' ;
+ message += '</blockquote><b>' ;
} else
message = 'OutputObject : Object is "null".' ;
-
+
Output( message, color, true ) ;
}
@@ -105,18 +101,18 @@ function CheckMessages()
{
// Get the first item in the queue
var sMessage = window.FCKMessages[0] ;
-
+
// Removes the first item from the queue
var oTempArray = new Array() ;
for ( i = 1 ; i < window.FCKMessages.length ; i++ )
oTempArray[ i - 1 ] = window.FCKMessages[ i ] ;
window.FCKMessages = oTempArray ;
-
+
var d = new Date() ;
- var sTime =
- ( d.getHours() + 100 + '' ).substr( 1,2 ) + ':' +
- ( d.getMinutes() + 100 + '' ).substr( 1,2 ) + ':' +
- ( d.getSeconds() + 100 + '' ).substr( 1,2 ) + ':' +
+ var sTime =
+ ( d.getHours() + 100 + '' ).substr( 1,2 ) + ':' +
+ ( d.getMinutes() + 100 + '' ).substr( 1,2 ) + ':' +
+ ( d.getSeconds() + 100 + '' ).substr( 1,2 ) + ':' +
( d.getMilliseconds() + 1000 + '' ).substr( 1,3 ) ;
var oMsgDiv = oWindow.document.createElement( 'div' ) ;
diff --git a/editor/editor/fckdialog.html b/editor/editor/fckdialog.html
@@ -2,28 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fckdialog.html
- * This page is used by all dialog box as the container.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * This page is used by all dialog box as the container.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@@ -42,6 +38,10 @@ document.write( '<link href="' + window.dialogArguments.Editor.FCKConfig.SkinPat
// Sets the language direction.
window.document.dir = window.dialogArguments.Editor.FCKLang.Dir ;
+// IE does not set the window name in showModalDialog(), let's set it here.
+if ( window.dialogArguments.Editor.FCKBrowserInfo.IsIE )
+ window.name = window.dialogArguments.DialogName ;
+
var sTitle = window.dialogArguments.Title ;
document.write( '<title>' + sTitle + '<\/title>' ) ;
@@ -111,6 +111,18 @@ function RefreshSize()
}
}
+// Kludge for #1316: Safari seems to have a bug with the time when RefreshSize() is executed - it thinks frmMain's innerHeight
+// is 0 if we query the value too soon after the page is loaded in some circumstances.
+if ( window.dialogArguments.Editor.FCKBrowserInfo.IsSafari )
+{
+ window.OriginalRefreshSize = RefreshSize ;
+
+ RefreshSize = function()
+ {
+ window.setTimeout( window.OriginalRefreshSize, 1 );
+ }
+}
+
function Ok()
{
if ( window.frames["frmMain"].Ok && window.frames["frmMain"].Ok() )
@@ -119,7 +131,7 @@ function Ok()
function Cancel( dontFireChange )
{
- if ( !dontFireChange )
+ if ( !dontFireChange && !window.dialogArguments.Editor.FCK.EditMode )
{
// All dialog windows, by default, will fire the "OnSelectionChange"
// event, no matter the Ok or Cancel button has been pressed.
@@ -215,7 +227,7 @@ function SetOnKeyDown( targetDocument )
{
case 13 : // ENTER
var oTarget = e.srcElement || e.target ;
- if ( oTarget.tagName == 'TEXTAREA' )
+ if ( oTarget.tagName == 'TEXTAREA' )
return true ;
Ok() ;
return false ;
@@ -315,8 +327,9 @@ document.write( sTitle ) ;
<tr>
<td width="100%"> </td>
<td nowrap="nowrap">
- <input id="btnOk" style="VISIBILITY: hidden; WIDTH: 100px" type="button" value="Ok" class="Button"
- onclick="Ok();" fckLang="DlgBtnOK" /> <input type="button" value="Cancel" class="Button" onclick="Cancel();" fckLang="DlgBtnCancel" />
+ <input id="btnOk" style="VISIBILITY: hidden;" type="button" value="Ok" class="Button" onclick="Ok();" fckLang="DlgBtnOK" />
+
+ <input id="btnCancel" type="button" value="Cancel" class="Button" onclick="Cancel();" fckLang="DlgBtnCancel" />
</td>
</tr>
</table>
@@ -324,4 +337,4 @@ document.write( sTitle ) ;
</tr>
</table>
</body>
-</html>-
\ No newline at end of file
+</html>
diff --git a/editor/editor/fckeditor.html b/editor/editor/fckeditor.html
@@ -2,34 +2,30 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fckeditor.html
- * Main page that holds the editor.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Main page that holds the editor.
-->
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
<title>FCKeditor</title>
- <meta name="robots" content="noindex, nofollow" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="robots" content="noindex, nofollow">
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Cache-Control" content="public" />
<script type="text/javascript">
@@ -40,16 +36,16 @@
function LoadScript( url )
{
- document.write( '<script type="text/javascript" src="' + url + '" onerror="alert(\'Error loading \' + this.src);"><\/script>' ) ;
+ document.write( '<scr' + 'ipt type="text/javascript" src="' + url + '"><\/scr' + 'ipt>' ) ;
}
function LoadCss( url )
{
- document.write( '<link href="' + url + '" type="text/css" rel="stylesheet" onerror="alert(\'Error loading \' + this.src);" />' ) ;
+ document.write( '<link href="' + url + '" type="text/css" rel="stylesheet" />' ) ;
}
// Main editor scripts.
-var sSuffix = /msie/.test( navigator.userAgent.toLowerCase() ) ? 'ie' : 'gecko' ;
+var sSuffix = ( /*@cc_on!@*/false ) ? 'ie' : 'gecko' ;
LoadScript( 'js/fckeditorcode_' + sSuffix + '.js' ) ;
@@ -66,7 +62,7 @@ if ( FCKBrowserInfo.IsIE )
{
document.execCommand( 'BackgroundImageCache', false, true ) ;
}
- catch (e)
+ catch (e)
{
// We have been reported about loading problems caused by the above
// line. For safety, let's just ignore errors.
@@ -78,6 +74,11 @@ if ( FCKBrowserInfo.IsIE )
FCK.IECleanup.AddItem( FCK, FCK_Cleanup ) ;
}
+// The first function to be called on selection change must the the styles
+// change checker, because the result of its processing may be used by another
+// functions listening to the same event.
+FCK.Events.AttachEvent( 'OnSelectionChange', function() { FCKStyles.CheckSelectionChanges() ; } ) ;
+
// The config hidden field is processed immediately, because
// CustomConfigurationsPath may be set in the page.
FCKConfig.ProcessHiddenField() ;
@@ -111,14 +112,10 @@ FCKPlugins.Load() ;
</script>
<script type="text/javascript">
-
+
// Set the editor interface direction.
window.document.dir = FCKLang.Dir ;
-// Activate pasting operations.
-if ( FCKConfig.ForcePasteAsPlainText || FCKConfig.AutoDetectPasteFromWord )
- FCK.Events.AttachEvent( 'OnPaste', FCK.Paste ) ;
-
</script>
<script type="text/javascript">
@@ -140,7 +137,7 @@ function LoadToolbarSetup()
function LoadToolbar()
{
var oToolbarSet = FCK.ToolbarSet = FCKToolbarSet_Create() ;
-
+
if ( oToolbarSet.IsLoaded )
StartEditor() ;
else
@@ -174,10 +171,10 @@ function WaitForActive( editorInstance, newStatus )
FCK.SetStatus( FCK_STATUS_COMPLETE ) ;
- // Call the special "FCKeditor_OnComplete" function that should be present in
+ // Call the special "FCKeditor_OnComplete" function that should be present in
// the HTML page where the editor is located.
if ( typeof( window.parent.FCKeditor_OnComplete ) == 'function' )
- window.parent.FCKeditor_OnComplete( FCK ) ;
+ window.parent.FCKeditor_OnComplete( FCK ) ;
}
}
diff --git a/editor/editor/fckeditor.original.html b/editor/editor/fckeditor.original.html
@@ -1,35 +1,31 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fckeditor.original.html
- * Main page that holds the editor.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Main page that holds the editor.
-->
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
<title>FCKeditor</title>
- <meta name="robots" content="noindex, nofollow" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="robots" content="noindex, nofollow">
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- @Packager.RemoveLine
<meta http-equiv="Cache-Control" content="public" />
@Packager.RemoveLine -->
@@ -42,16 +38,16 @@
function LoadScript( url )
{
- document.write( '<script type="text/javascript" src="' + url + '" onerror="alert(\'Error loading \' + this.src);"><\/script>' ) ;
+ document.write( '<scr' + 'ipt type="text/javascript" src="' + url + '"><\/scr' + 'ipt>' ) ;
}
function LoadCss( url )
{
- document.write( '<link href="' + url + '" type="text/css" rel="stylesheet" onerror="alert(\'Error loading \' + this.src);" />' ) ;
+ document.write( '<link href="' + url + '" type="text/css" rel="stylesheet" />' ) ;
}
// Main editor scripts.
-var sSuffix = /msie/.test( navigator.userAgent.toLowerCase() ) ? 'ie' : 'gecko' ;
+var sSuffix = ( /*@cc_on!@*/false ) ? 'ie' : 'gecko' ;
/* @Packager.RemoveLine
LoadScript( 'js/fckeditorcode_' + sSuffix + '.js' ) ;
@@ -67,6 +63,7 @@ if ( sSuffix == 'ie' )
LoadScript( '_source/internals/fckbrowserinfo.js' ) ;
LoadScript( '_source/internals/fckurlparams.js' ) ;
LoadScript( '_source/classes/fckevents.js' ) ;
+LoadScript( '_source/classes/fckdataprocessor.js' ) ;
LoadScript( '_source/internals/fck.js' ) ;
LoadScript( '_source/internals/fck_' + sSuffix + '.js' ) ;
LoadScript( '_source/internals/fckconfig.js' ) ;
@@ -78,21 +75,27 @@ LoadScript( '_source/internals/fcktools_' + sSuffix + '.js' ) ;
LoadScript( '_source/fckeditorapi.js' ) ;
LoadScript( '_source/classes/fckimagepreloader.js' ) ;
LoadScript( '_source/internals/fckregexlib.js' ) ;
+LoadScript( '_source/internals/fcklistslib.js' ) ;
LoadScript( '_source/internals/fcklanguagemanager.js' ) ;
LoadScript( '_source/internals/fckxhtmlentities.js' ) ;
LoadScript( '_source/internals/fckxhtml.js' ) ;
LoadScript( '_source/internals/fckxhtml_' + sSuffix + '.js' ) ;
LoadScript( '_source/internals/fckcodeformatter.js' ) ;
-LoadScript( '_source/internals/fckundo_' + sSuffix + '.js' ) ;
+LoadScript( '_source/internals/fckundo.js' ) ;
LoadScript( '_source/classes/fckeditingarea.js' ) ;
LoadScript( '_source/classes/fckkeystrokehandler.js' ) ;
+LoadScript( 'dtd/fck_xhtml10transitional.js' ) ;
+LoadScript( '_source/classes/fckstyle.js' ) ;
+LoadScript( '_source/internals/fckstyles.js' ) ;
+
LoadScript( '_source/internals/fcklisthandler.js' ) ;
LoadScript( '_source/classes/fckelementpath.js' ) ;
LoadScript( '_source/classes/fckdomrange.js' ) ;
LoadScript( '_source/classes/fckdocumentfragment_' + sSuffix + '.js' ) ;
LoadScript( '_source/classes/fckw3crange.js' ) ;
LoadScript( '_source/classes/fckdomrange_' + sSuffix + '.js' ) ;
+LoadScript( '_source/classes/fckdomrangeiterator.js' ) ;
LoadScript( '_source/classes/fckenterkey.js' ) ;
LoadScript( '_source/internals/fckdocumentprocessor.js' ) ;
@@ -101,20 +104,25 @@ LoadScript( '_source/internals/fckselection_' + sSuffix + '.js' ) ;
LoadScript( '_source/internals/fcktablehandler.js' ) ;
LoadScript( '_source/internals/fcktablehandler_' + sSuffix + '.js' ) ;
+LoadScript( '_source/classes/fckxml.js' ) ;
LoadScript( '_source/classes/fckxml_' + sSuffix + '.js' ) ;
-LoadScript( '_source/classes/fckstyledef.js' ) ;
-LoadScript( '_source/classes/fckstyledef_' + sSuffix + '.js' ) ;
-LoadScript( '_source/classes/fckstylesloader.js' ) ;
LoadScript( '_source/commandclasses/fcknamedcommand.js' ) ;
+LoadScript( '_source/commandclasses/fckstylecommand.js' ) ;
LoadScript( '_source/commandclasses/fck_othercommands.js' ) ;
+LoadScript( '_source/commandclasses/fckshowblocks.js' ) ;
LoadScript( '_source/commandclasses/fckspellcheckcommand_' + sSuffix + '.js' ) ;
LoadScript( '_source/commandclasses/fcktextcolorcommand.js' ) ;
LoadScript( '_source/commandclasses/fckpasteplaintextcommand.js' ) ;
LoadScript( '_source/commandclasses/fckpastewordcommand.js' ) ;
LoadScript( '_source/commandclasses/fcktablecommand.js' ) ;
-LoadScript( '_source/commandclasses/fckstylecommand.js' ) ;
LoadScript( '_source/commandclasses/fckfitwindow.js' ) ;
+LoadScript( '_source/commandclasses/fcklistcommands.js' ) ;
+LoadScript( '_source/commandclasses/fckjustifycommands.js' ) ;
+LoadScript( '_source/commandclasses/fckindentcommands.js' ) ;
+LoadScript( '_source/commandclasses/fckblockquotecommand.js' ) ;
+LoadScript( '_source/commandclasses/fckcorestylecommand.js' ) ;
+LoadScript( '_source/commandclasses/fckremoveformatcommand.js' ) ;
LoadScript( '_source/internals/fckcommands.js' ) ;
LoadScript( '_source/classes/fckpanel.js' ) ;
@@ -123,10 +131,10 @@ LoadScript( '_source/classes/fcktoolbarbuttonui.js' ) ;
LoadScript( '_source/classes/fcktoolbarbutton.js' ) ;
LoadScript( '_source/classes/fckspecialcombo.js' ) ;
LoadScript( '_source/classes/fcktoolbarspecialcombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarstylecombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarfontformatcombo.js' ) ;
LoadScript( '_source/classes/fcktoolbarfontscombo.js' ) ;
LoadScript( '_source/classes/fcktoolbarfontsizecombo.js' ) ;
-LoadScript( '_source/classes/fcktoolbarfontformatcombo.js' ) ;
-LoadScript( '_source/classes/fcktoolbarstylecombo.js' ) ;
LoadScript( '_source/classes/fcktoolbarpanelbutton.js' ) ;
LoadScript( '_source/internals/fcktoolbaritems.js' ) ;
LoadScript( '_source/classes/fcktoolbar.js' ) ;
@@ -157,7 +165,7 @@ if ( FCKBrowserInfo.IsIE )
{
document.execCommand( 'BackgroundImageCache', false, true ) ;
}
- catch (e)
+ catch (e)
{
// We have been reported about loading problems caused by the above
// line. For safety, let's just ignore errors.
@@ -169,6 +177,11 @@ if ( FCKBrowserInfo.IsIE )
FCK.IECleanup.AddItem( FCK, FCK_Cleanup ) ;
}
+// The first function to be called on selection change must the the styles
+// change checker, because the result of its processing may be used by another
+// functions listening to the same event.
+FCK.Events.AttachEvent( 'OnSelectionChange', function() { FCKStyles.CheckSelectionChanges() ; } ) ;
+
// The config hidden field is processed immediately, because
// CustomConfigurationsPath may be set in the page.
FCKConfig.ProcessHiddenField() ;
@@ -202,14 +215,10 @@ FCKPlugins.Load() ;
</script>
<script type="text/javascript">
-
+
// Set the editor interface direction.
window.document.dir = FCKLang.Dir ;
-// Activate pasting operations.
-if ( FCKConfig.ForcePasteAsPlainText || FCKConfig.AutoDetectPasteFromWord )
- FCK.Events.AttachEvent( 'OnPaste', FCK.Paste ) ;
-
</script>
<script type="text/javascript">
@@ -231,7 +240,7 @@ function LoadToolbarSetup()
function LoadToolbar()
{
var oToolbarSet = FCK.ToolbarSet = FCKToolbarSet_Create() ;
-
+
if ( oToolbarSet.IsLoaded )
StartEditor() ;
else
@@ -265,10 +274,10 @@ function WaitForActive( editorInstance, newStatus )
FCK.SetStatus( FCK_STATUS_COMPLETE ) ;
- // Call the special "FCKeditor_OnComplete" function that should be present in
+ // Call the special "FCKeditor_OnComplete" function that should be present in
// the HTML page where the editor is located.
if ( typeof( window.parent.FCKeditor_OnComplete ) == 'function' )
- window.parent.FCKeditor_OnComplete( FCK ) ;
+ window.parent.FCKeditor_OnComplete( FCK ) ;
}
}
diff --git a/editor/editor/filemanager/browser/default/browser.css b/editor/editor/filemanager/browser/default/browser.css
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: browser.css
- * CSS styles used by all pages that compose the File Browser.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * CSS styles used by all pages that compose the File Browser.
*/
body
@@ -50,6 +46,7 @@ body.FileArea
{
background-color: #ffffff;
+ margin: 10px;
}
body, td, input, select
diff --git a/editor/editor/filemanager/browser/default/browser.html b/editor/editor/filemanager/browser/default/browser.html
@@ -1,30 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: browser.html
- * This page compose the File Browser dialog frameset.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * This page compose the File Browser dialog frameset.
-->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>FCKeditor - Resources Browser</title>
@@ -36,7 +32,7 @@ function GetUrlParam( paramName )
{
var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' ) ;
var oMatch = oRegex.exec( window.top.location.search ) ;
-
+
if ( oMatch && oMatch.length > 1 )
return decodeURIComponent( oMatch[1] ) ;
else
@@ -69,11 +65,14 @@ oConnector.SendCommand = function( command, params, callBackFunction )
var sUrl = this.ConnectorUrl + 'Command=' + command ;
sUrl += '&Type=' + this.ResourceType ;
sUrl += '&CurrentFolder=' + encodeURIComponent( this.CurrentFolder ) ;
-
+
if ( params ) sUrl += '&' + params ;
+ // Add a random salt to avoid getting a cached version of the command execution
+ sUrl += '&uuid=' + new Date().getTime() ;
+
var oXML = new FCKXml() ;
-
+
if ( callBackFunction )
oXML.LoadUrl( sUrl, callBackFunction ) ; // Asynchronous load.
else
@@ -86,11 +85,11 @@ oConnector.CheckError = function( responseXml )
{
var iErrorNumber = 0 ;
var oErrorNode = responseXml.SelectSingleNode( 'Connector/Error' ) ;
-
+
if ( oErrorNode )
{
iErrorNumber = parseInt( oErrorNode.attributes.getNamedItem('number').value, 10 ) ;
-
+
switch ( iErrorNumber )
{
case 0 :
@@ -120,10 +119,10 @@ oConnector.CheckError = function( responseXml )
var oIcons = new Object() ;
-oIcons.AvailableIconsArray = [
+oIcons.AvailableIconsArray = [
'ai','avi','bmp','cs','dll','doc','exe','fla','gif','htm','html','jpg','js',
- 'mdb','mp3','pdf','ppt','rdp','swf','swt','txt','vsd','xls','xml','zip' ] ;
-
+ 'mdb','mp3','pdf','png','ppt','rdp','swf','swt','txt','vsd','xls','xml','zip' ] ;
+
oIcons.AvailableIcons = new Object() ;
for ( var i = 0 ; i < oIcons.AvailableIconsArray.length ; i++ )
@@ -138,6 +137,12 @@ oIcons.GetIcon = function( fileName )
else
return 'default.icon' ;
}
+
+function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
+{
+ window.frames['frmUpload'].OnUploadCompleted( errorNumber, fileName ) ;
+}
+
</script>
</head>
<frameset cols="150,*" class="Frame" framespacing="3" bordercolor="#f1f1e3" frameborder="1">
diff --git a/editor/editor/filemanager/browser/default/connectors/php/basexml.php b/editor/editor/filemanager/browser/default/connectors/php/basexml.php
@@ -1,79 +0,0 @@
-<?php
-/*
- * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
- * == BEGIN LICENSE ==
- *
- * Licensed under the terms of any of the following licenses at your
- * choice:
- *
- * - GNU General Public License Version 2 or later (the "GPL")
- * http://www.gnu.org/licenses/gpl.html
- *
- * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- * http://www.gnu.org/licenses/lgpl.html
- *
- * - Mozilla Public License Version 1.1 or later (the "MPL")
- * http://www.mozilla.org/MPL/MPL-1.1.html
- *
- * == END LICENSE ==
- *
- * File Name: basexml.php
- * These functions define the base of the XML response sent by the PHP
- * connector.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- */
-
-function SetXmlHeaders()
-{
- ob_end_clean() ;
-
- // Prevent the browser from caching the result.
- // Date in the past
- header('Expires: Mon, 26 Jul 1997 05:00:00 GMT') ;
- // always modified
- header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT') ;
- // HTTP/1.1
- header('Cache-Control: no-store, no-cache, must-revalidate') ;
- header('Cache-Control: post-check=0, pre-check=0', false) ;
- // HTTP/1.0
- header('Pragma: no-cache') ;
-
- // Set the response format.
- header( 'Content-Type:text/xml; charset=utf-8' ) ;
-}
-
-function CreateXmlHeader( $command, $resourceType, $currentFolder )
-{
- SetXmlHeaders() ;
-
- // Create the XML document header.
- echo '<?xml version="1.0" encoding="utf-8" ?>' ;
-
- // Create the main "Connector" node.
- echo '<Connector command="' . $command . '" resourceType="' . $resourceType . '">' ;
-
- // Add the current folder node.
- echo '<CurrentFolder path="' . ConvertToXmlAttribute( $currentFolder ) . '" url="' . ConvertToXmlAttribute( GetUrlFromPath( $resourceType, $currentFolder ) ) . '" />' ;
-}
-
-function CreateXmlFooter()
-{
- echo '</Connector>' ;
-}
-
-function SendError( $number, $text )
-{
- SetXmlHeaders() ;
-
- // Create the XML document header
- echo '<?xml version="1.0" encoding="utf-8" ?>' ;
-
- echo '<Connector><Error number="' . $number . '" text="' . htmlspecialchars( $text ) . '" /></Connector>' ;
-
- exit ;
-}
-?>-
\ No newline at end of file
diff --git a/editor/editor/filemanager/browser/default/connectors/php/commands.php b/editor/editor/filemanager/browser/default/connectors/php/commands.php
@@ -1,226 +0,0 @@
-<?php
-/*
- * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
- * == BEGIN LICENSE ==
- *
- * Licensed under the terms of any of the following licenses at your
- * choice:
- *
- * - GNU General Public License Version 2 or later (the "GPL")
- * http://www.gnu.org/licenses/gpl.html
- *
- * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- * http://www.gnu.org/licenses/lgpl.html
- *
- * - Mozilla Public License Version 1.1 or later (the "MPL")
- * http://www.mozilla.org/MPL/MPL-1.1.html
- *
- * == END LICENSE ==
- *
- * File Name: commands.php
- * This is the File Manager Connector for PHP.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- */
-
-function GetFolders( $resourceType, $currentFolder )
-{
- // Map the virtual path to the local server path.
- $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
-
- // Array that will hold the folders names.
- $aFolders = array() ;
-
- $oCurrentFolder = opendir( $sServerDir ) ;
-
- while ( $sFile = readdir( $oCurrentFolder ) )
- {
- if ( $sFile != '.' && $sFile != '..' && is_dir( $sServerDir . $sFile ) )
- $aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
- }
-
- closedir( $oCurrentFolder ) ;
-
- // Open the "Folders" node.
- echo "<Folders>" ;
-
- natcasesort( $aFolders ) ;
- foreach ( $aFolders as $sFolder )
- echo $sFolder ;
-
- // Close the "Folders" node.
- echo "</Folders>" ;
-}
-
-function GetFoldersAndFiles( $resourceType, $currentFolder )
-{
- // Map the virtual path to the local server path.
- $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
-
- // Arrays that will hold the folders and files names.
- $aFolders = array() ;
- $aFiles = array() ;
-
- $oCurrentFolder = opendir( $sServerDir ) ;
-
- while ( $sFile = readdir( $oCurrentFolder ) )
- {
- if ( $sFile != '.' && $sFile != '..' )
- {
- if ( is_dir( $sServerDir . $sFile ) )
- $aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
- else
- {
- $iFileSize = filesize( $sServerDir . $sFile ) ;
- if ( $iFileSize > 0 )
- {
- $iFileSize = round( $iFileSize / 1024 ) ;
- if ( $iFileSize < 1 ) $iFileSize = 1 ;
- }
-
- $aFiles[] = '<File name="' . ConvertToXmlAttribute( $sFile ) . '" size="' . $iFileSize . '" />' ;
- }
- }
- }
-
- // Send the folders
- natcasesort( $aFolders ) ;
- echo '<Folders>' ;
-
- foreach ( $aFolders as $sFolder )
- echo $sFolder ;
-
- echo '</Folders>' ;
-
- // Send the files
- natcasesort( $aFiles ) ;
- echo '<Files>' ;
-
- foreach ( $aFiles as $sFiles )
- echo $sFiles ;
-
- echo '</Files>' ;
-}
-
-function CreateFolder( $resourceType, $currentFolder )
-{
- $sErrorNumber = '0' ;
- $sErrorMsg = '' ;
-
- if ( isset( $_GET['NewFolderName'] ) )
- {
- $sNewFolderName = $_GET['NewFolderName'] ;
-
- if ( strpos( $sNewFolderName, '..' ) !== FALSE )
- $sErrorNumber = '102' ; // Invalid folder name.
- else
- {
- // Map the virtual path to the local server path of the current folder.
- $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
-
- if ( is_writable( $sServerDir ) )
- {
- $sServerDir .= $sNewFolderName ;
-
- $sErrorMsg = CreateServerFolder( $sServerDir ) ;
-
- switch ( $sErrorMsg )
- {
- case '' :
- $sErrorNumber = '0' ;
- break ;
- case 'Invalid argument' :
- case 'No such file or directory' :
- $sErrorNumber = '102' ; // Path too long.
- break ;
- default :
- $sErrorNumber = '110' ;
- break ;
- }
- }
- else
- $sErrorNumber = '103' ;
- }
- }
- else
- $sErrorNumber = '102' ;
-
- // Create the "Error" node.
- echo '<Error number="' . $sErrorNumber . '" originalDescription="' . ConvertToXmlAttribute( $sErrorMsg ) . '" />' ;
-}
-
-function FileUpload( $resourceType, $currentFolder )
-{
- $sErrorNumber = '0' ;
- $sFileName = '' ;
-
- if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES['NewFile']['tmp_name'] ) )
- {
- global $Config ;
-
- $oFile = $_FILES['NewFile'] ;
-
- // Map the virtual path to the local server path.
- $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
-
- // Get the uploaded file name.
- $sFileName = $oFile['name'] ;
-
- // Replace dots in the name with underscores (only one dot can be there... security issue).
- if ( $Config['ForceSingleExtension'] )
- $sFileName = preg_replace( '/\\.(?![^.]*$)/', '_', $sFileName ) ;
-
- $sOriginalFileName = $sFileName ;
-
- // Get the extension.
- $sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;
- $sExtension = strtolower( $sExtension ) ;
-
- $arAllowed = $Config['AllowedExtensions'][$resourceType] ;
- $arDenied = $Config['DeniedExtensions'][$resourceType] ;
-
- if ( ( count($arAllowed) == 0 || in_array( $sExtension, $arAllowed ) ) && ( count($arDenied) == 0 || !in_array( $sExtension, $arDenied ) ) )
- {
- $iCounter = 0 ;
-
- while ( true )
- {
- $sFilePath = $sServerDir . $sFileName ;
-
- if ( is_file( $sFilePath ) )
- {
- $iCounter++ ;
- $sFileName = RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ;
- $sErrorNumber = '201' ;
- }
- else
- {
- move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ;
-
- if ( is_file( $sFilePath ) )
- {
- $oldumask = umask(0) ;
- chmod( $sFilePath, 0777 ) ;
- umask( $oldumask ) ;
- }
-
- break ;
- }
- }
- }
- else
- $sErrorNumber = '202' ;
- }
- else
- $sErrorNumber = '202' ;
-
- echo '<script type="text/javascript">' ;
- echo 'window.parent.frames["frmUpload"].OnUploadCompleted(' . $sErrorNumber . ',"' . str_replace( '"', '\\"', $sFileName ) . '") ;' ;
- echo '</script>' ;
-
- exit ;
-}
-?>-
\ No newline at end of file
diff --git a/editor/editor/filemanager/browser/default/connectors/php/config.php b/editor/editor/filemanager/browser/default/connectors/php/config.php
@@ -1,59 +0,0 @@
-<?php
-/*
- * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
- * == BEGIN LICENSE ==
- *
- * Licensed under the terms of any of the following licenses at your
- * choice:
- *
- * - GNU General Public License Version 2 or later (the "GPL")
- * http://www.gnu.org/licenses/gpl.html
- *
- * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- * http://www.gnu.org/licenses/lgpl.html
- *
- * - Mozilla Public License Version 1.1 or later (the "MPL")
- * http://www.mozilla.org/MPL/MPL-1.1.html
- *
- * == END LICENSE ==
- *
- * File Name: config.php
- * Configuration file for the File Manager Connector for PHP.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- */
-
-global $Config ;
-
-// SECURITY: You must explicitelly enable this "connector". (Set it to "true").
-$Config['Enabled'] = false ;
-
-// Path to user files relative to the document root.
-$Config['UserFilesPath'] = '/userfiles/' ;
-
-// Fill the following value it you prefer to specify the absolute path for the
-// user files directory. Usefull if you are using a virtual directory, symbolic
-// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
-// Attention: The above 'UserFilesPath' must point to the same directory.
-$Config['UserFilesAbsolutePath'] = '' ;
-
-// Due to security issues with Apache modules, it is reccomended to leave the
-// following setting enabled.
-$Config['ForceSingleExtension'] = true ;
-
-$Config['AllowedExtensions']['File'] = array() ;
-$Config['DeniedExtensions']['File'] = array('html','htm','php','php2','php3','php4','php5','phtml','pwml','inc','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','com','dll','vbs','js','reg','cgi','htaccess','asis') ;
-
-$Config['AllowedExtensions']['Image'] = array('jpg','gif','jpeg','png') ;
-$Config['DeniedExtensions']['Image'] = array() ;
-
-$Config['AllowedExtensions']['Flash'] = array('swf','fla') ;
-$Config['DeniedExtensions']['Flash'] = array() ;
-
-$Config['AllowedExtensions']['Media'] = array('swf','fla','jpg','gif','jpeg','png','avi','mpg','mpeg') ;
-$Config['DeniedExtensions']['Media'] = array() ;
-
-?>-
\ No newline at end of file
diff --git a/editor/editor/filemanager/browser/default/connectors/php/connector.php b/editor/editor/filemanager/browser/default/connectors/php/connector.php
@@ -1,117 +0,0 @@
-<?php
-/*
- * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
- * == BEGIN LICENSE ==
- *
- * Licensed under the terms of any of the following licenses at your
- * choice:
- *
- * - GNU General Public License Version 2 or later (the "GPL")
- * http://www.gnu.org/licenses/gpl.html
- *
- * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- * http://www.gnu.org/licenses/lgpl.html
- *
- * - Mozilla Public License Version 1.1 or later (the "MPL")
- * http://www.mozilla.org/MPL/MPL-1.1.html
- *
- * == END LICENSE ==
- *
- * File Name: connector.php
- * This is the File Manager Connector for PHP.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- */
-
-ob_start() ;
-
-include('config.php') ;
-include('util.php') ;
-include('io.php') ;
-include('basexml.php') ;
-include('commands.php') ;
-
-if ( !$Config['Enabled'] )
- SendError( 1, 'This connector is disabled. Please check the "editor/filemanager/browser/default/connectors/php/config.php" file' ) ;
-
-// Get the "UserFiles" path.
-$GLOBALS["UserFilesPath"] = '' ;
-
-if ( isset( $Config['UserFilesPath'] ) )
- $GLOBALS["UserFilesPath"] = $Config['UserFilesPath'] ;
-else if ( isset( $_GET['ServerPath'] ) )
- $GLOBALS["UserFilesPath"] = $_GET['ServerPath'] ;
-else
- $GLOBALS["UserFilesPath"] = '/userfiles/' ;
-
-if ( ! ereg( '/$', $GLOBALS["UserFilesPath"] ) )
- $GLOBALS["UserFilesPath"] .= '/' ;
-
-if ( strlen( $Config['UserFilesAbsolutePath'] ) > 0 )
-{
- $GLOBALS["UserFilesDirectory"] = $Config['UserFilesAbsolutePath'] ;
-
- if ( ! ereg( '/$', $GLOBALS["UserFilesDirectory"] ) )
- $GLOBALS["UserFilesDirectory"] .= '/' ;
-}
-else
-{
- // Map the "UserFiles" path to a local directory.
- $GLOBALS["UserFilesDirectory"] = GetRootPath() . $GLOBALS["UserFilesPath"] ;
-}
-
-DoResponse() ;
-
-function DoResponse()
-{
- if ( !isset( $_GET['Command'] ) || !isset( $_GET['Type'] ) || !isset( $_GET['CurrentFolder'] ) )
- return ;
-
- // Get the main request informaiton.
- $sCommand = $_GET['Command'] ;
- $sResourceType = $_GET['Type'] ;
- $sCurrentFolder = $_GET['CurrentFolder'] ;
-
- // Check if it is an allowed type.
- if ( !in_array( $sResourceType, array('File','Image','Flash','Media') ) )
- return ;
-
- // Check the current folder syntax (must begin and start with a slash).
- if ( ! ereg( '/$', $sCurrentFolder ) ) $sCurrentFolder .= '/' ;
- if ( strpos( $sCurrentFolder, '/' ) !== 0 ) $sCurrentFolder = '/' . $sCurrentFolder ;
-
- // Check for invalid folder paths (..)
- if ( strpos( $sCurrentFolder, '..' ) )
- SendError( 102, "" ) ;
-
- // File Upload doesn't have to Return XML, so it must be intercepted before anything.
- if ( $sCommand == 'FileUpload' )
- {
- FileUpload( $sResourceType, $sCurrentFolder ) ;
- return ;
- }
-
- CreateXmlHeader( $sCommand, $sResourceType, $sCurrentFolder ) ;
-
- // Execute the required command.
- switch ( $sCommand )
- {
- case 'GetFolders' :
- GetFolders( $sResourceType, $sCurrentFolder ) ;
- break ;
- case 'GetFoldersAndFiles' :
- GetFoldersAndFiles( $sResourceType, $sCurrentFolder ) ;
- break ;
- case 'CreateFolder' :
- CreateFolder( $sResourceType, $sCurrentFolder ) ;
- break ;
- }
-
- CreateXmlFooter() ;
-
- exit ;
-}
-?>-
\ No newline at end of file
diff --git a/editor/editor/filemanager/browser/default/connectors/php/io.php b/editor/editor/filemanager/browser/default/connectors/php/io.php
@@ -1,105 +0,0 @@
-<?php
-/*
- * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
- * == BEGIN LICENSE ==
- *
- * Licensed under the terms of any of the following licenses at your
- * choice:
- *
- * - GNU General Public License Version 2 or later (the "GPL")
- * http://www.gnu.org/licenses/gpl.html
- *
- * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- * http://www.gnu.org/licenses/lgpl.html
- *
- * - Mozilla Public License Version 1.1 or later (the "MPL")
- * http://www.mozilla.org/MPL/MPL-1.1.html
- *
- * == END LICENSE ==
- *
- * File Name: io.php
- * This is the File Manager Connector for ASP.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- */
-
-function GetUrlFromPath( $resourceType, $folderPath )
-{
- if ( $resourceType == '' )
- return RemoveFromEnd( $GLOBALS["UserFilesPath"], '/' ) . $folderPath ;
- else
- return $GLOBALS["UserFilesPath"] . strtolower( $resourceType ) . $folderPath ;
-}
-
-function RemoveExtension( $fileName )
-{
- return substr( $fileName, 0, strrpos( $fileName, '.' ) ) ;
-}
-
-function ServerMapFolder( $resourceType, $folderPath )
-{
- // Get the resource type directory.
- $sResourceTypePath = $GLOBALS["UserFilesDirectory"] . strtolower( $resourceType ) . '/' ;
-
- // Ensure that the directory exists.
- CreateServerFolder( $sResourceTypePath ) ;
-
- // Return the resource type directory combined with the required path.
- return $sResourceTypePath . RemoveFromStart( $folderPath, '/' ) ;
-}
-
-function GetParentFolder( $folderPath )
-{
- $sPattern = "-[/\\\\][^/\\\\]+[/\\\\]?$-" ;
- return preg_replace( $sPattern, '', $folderPath ) ;
-}
-
-function CreateServerFolder( $folderPath )
-{
- $sParent = GetParentFolder( $folderPath ) ;
-
- // Check if the parent exists, or create it.
- if ( !file_exists( $sParent ) )
- {
- $sErrorMsg = CreateServerFolder( $sParent ) ;
- if ( $sErrorMsg != '' )
- return $sErrorMsg ;
- }
-
- if ( !file_exists( $folderPath ) )
- {
- // Turn off all error reporting.
- error_reporting( 0 ) ;
- // Enable error tracking to catch the error.
- ini_set( 'track_errors', '1' ) ;
-
- // To create the folder with 0777 permissions, we need to set umask to zero.
- $oldumask = umask(0) ;
- mkdir( $folderPath, 0777 ) ;
- umask( $oldumask ) ;
-
- $sErrorMsg = $php_errormsg ;
-
- // Restore the configurations.
- ini_restore( 'track_errors' ) ;
- ini_restore( 'error_reporting' ) ;
-
- return $sErrorMsg ;
- }
- else
- return '' ;
-}
-
-function GetRootPath()
-{
- $sRealPath = realpath( './' ) ;
-
- $sSelfPath = $_SERVER['PHP_SELF'] ;
- $sSelfPath = substr( $sSelfPath, 0, strrpos( $sSelfPath, '/' ) ) ;
-
- return substr( $sRealPath, 0, strlen( $sRealPath ) - strlen( $sSelfPath ) ) ;
-}
-?>-
\ No newline at end of file
diff --git a/editor/editor/filemanager/browser/default/connectors/php/util.php b/editor/editor/filemanager/browser/default/connectors/php/util.php
@@ -1,45 +0,0 @@
-<?php
-/*
- * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
- * == BEGIN LICENSE ==
- *
- * Licensed under the terms of any of the following licenses at your
- * choice:
- *
- * - GNU General Public License Version 2 or later (the "GPL")
- * http://www.gnu.org/licenses/gpl.html
- *
- * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- * http://www.gnu.org/licenses/lgpl.html
- *
- * - Mozilla Public License Version 1.1 or later (the "MPL")
- * http://www.mozilla.org/MPL/MPL-1.1.html
- *
- * == END LICENSE ==
- *
- * File Name: util.php
- * Utility functions for the File Manager Connector for PHP.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- */
-
-function RemoveFromStart( $sourceString, $charToRemove )
-{
- $sPattern = '|^' . $charToRemove . '+|' ;
- return preg_replace( $sPattern, '', $sourceString ) ;
-}
-
-function RemoveFromEnd( $sourceString, $charToRemove )
-{
- $sPattern = '|' . $charToRemove . '+$|' ;
- return preg_replace( $sPattern, '', $sourceString ) ;
-}
-
-function ConvertToXmlAttribute( $value )
-{
- return utf8_encode( htmlspecialchars( $value ) ) ;
-}
-?>-
\ No newline at end of file
diff --git a/editor/editor/filemanager/browser/default/connectors/test.html b/editor/editor/filemanager/browser/default/connectors/test.html
@@ -1,185 +0,0 @@
-<!--
- * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
- * == BEGIN LICENSE ==
- *
- * Licensed under the terms of any of the following licenses at your
- * choice:
- *
- * - GNU General Public License Version 2 or later (the "GPL")
- * http://www.gnu.org/licenses/gpl.html
- *
- * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- * http://www.gnu.org/licenses/lgpl.html
- *
- * - Mozilla Public License Version 1.1 or later (the "MPL")
- * http://www.mozilla.org/MPL/MPL-1.1.html
- *
- * == END LICENSE ==
- *
- * File Name: test.html
- * Test page for the File Browser connectors.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>FCKeditor - Connectors Tests</title>
- <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5" />
- <script type="text/javascript">
-
-function BuildBaseUrl( command )
-{
- var sUrl =
- document.getElementById('cmbConnector').value +
- '?Command=' + command +
- '&Type=' + document.getElementById('cmbType').value +
- '&CurrentFolder=' + document.getElementById('txtFolder').value ;
-
- return sUrl ;
-}
-
-function SetFrameUrl( url )
-{
- if ( document.all )
- eRunningFrame.document.location = url ;
- else
- document.getElementById('eRunningFrame').src = url ;
-
- document.getElementById('eUrl').innerHTML = url ;
-}
-
-function GetFolders()
-{
- SetFrameUrl( BuildBaseUrl( 'GetFolders' ) ) ;
- return false ;
-}
-
-function GetFoldersAndFiles()
-{
- SetFrameUrl( BuildBaseUrl( 'GetFoldersAndFiles' ) ) ;
- return false ;
-}
-
-function CreateFolder()
-{
- var sFolder = prompt( 'Type the folder name:', 'Test Folder' ) ;
-
- if ( ! sFolder )
- return false ;
-
- var sUrl = BuildBaseUrl( 'CreateFolder' ) ;
- sUrl += '&NewFolderName=' + encodeURIComponent( sFolder ) ;
-
- SetFrameUrl( sUrl ) ;
- return false ;
-}
-
-function OnUploadCompleted( errorNumber, fileName )
-{
- switch ( errorNumber )
- {
- case 0 :
- alert( 'File uploaded with no errors' ) ;
- break ;
- case 201 :
- GetFoldersAndFiles() ;
- alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
- break ;
- case 202 :
- alert( 'Invalid file' ) ;
- break ;
- default :
- alert( 'Error on file upload. Error number: ' + errorNumber ) ;
- break ;
- }
-}
-
-this.frames.frmUpload = this ;
-
-function SetAction()
-{
- var sUrl = BuildBaseUrl( 'FileUpload' ) ;
- document.getElementById('eUrl').innerHTML = sUrl ;
- document.getElementById('frmUpload').action = sUrl ;
-}
-
- </script>
-</head>
-<body>
- <table height="100%" cellspacing="0" cellpadding="0" width="100%" border="0">
- <tr>
- <td>
- <table cellspacing="0" cellpadding="0" border="0">
- <tr>
- <td>
- Connector:<br />
- <select id="cmbConnector" name="cmbConnector">
- <option value="asp/connector.asp" selected="selected">ASP</option>
- <option value="aspx/connector.aspx">ASP.Net</option>
- <option value="cfm/connector.cfm">ColdFusion</option>
- <option value="lasso/connector.lasso">Lasso</option>
- <option value="perl/connector.cgi">Perl</option>
- <option value="php/connector.php">PHP</option>
- <option value="py/connector.py">Python</option>
- </select>
- </td>
- <td>
- </td>
- <td>
- Current Folder<br />
- <input id="txtFolder" type="text" value="/" name="txtFolder" /></td>
- <td>
- </td>
- <td>
- Resource Type<br />
- <select id="cmbType" name="cmbType">
- <option value="File" selected="selected">File</option>
- <option value="Image">Image</option>
- <option value="Flash">Flash</option>
- <option value="Media">Media</option>
- <option value="Invalid">Invalid Type (for testing)</option>
- </select>
- </td>
- </tr>
- </table>
- <br />
- <table cellspacing="0" cellpadding="0" border="0">
- <tr>
- <td valign="top">
- <a href="#" onclick="GetFolders();">Get Folders</a></td>
- <td>
- </td>
- <td valign="top">
- <a href="#" onclick="GetFoldersAndFiles();">Get Folders and Files</a></td>
- <td>
- </td>
- <td valign="top">
- <a href="#" onclick="CreateFolder();">Create Folder</a></td>
- <td>
- </td>
- <td valign="top">
- <form id="frmUpload" action="" target="eRunningFrame" method="post" enctype="multipart/form-data">
- File Upload<br />
- <input id="txtFileUpload" type="file" name="NewFile" />
- <input type="submit" value="Upload" onclick="SetAction();" />
- </form>
- </td>
- </tr>
- </table>
- <br />
- URL: <span id="eUrl"></span>
- </td>
- </tr>
- <tr>
- <td height="100%" valign="top">
- <iframe id="eRunningFrame" src="javascript:void(0)" name="eRunningFrame" width="100%"
- height="100%"></iframe>
- </td>
- </tr>
- </table>
-</body>
-</html>
diff --git a/editor/editor/filemanager/browser/default/frmactualfolder.html b/editor/editor/filemanager/browser/default/frmactualfolder.html
@@ -1,30 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: frmactualfolder.html
- * This page shows the actual folder path.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * This page shows the actual folder path.
-->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link href="browser.css" type="text/css" rel="stylesheet">
diff --git a/editor/editor/filemanager/browser/default/frmcreatefolder.html b/editor/editor/filemanager/browser/default/frmcreatefolder.html
@@ -1,30 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: frmcreatefolder.html
- * Page used to create new folders in the current folder.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Page used to create new folders in the current folder.
-->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
@@ -41,11 +37,11 @@ function SetCurrentFolder( resourceType, folderPath )
function CreateFolder()
{
var sFolderName ;
-
- while ( true )
+
+ while ( true )
{
sFolderName = prompt( 'Type the name of the new folder:', '' ) ;
-
+
if ( sFolderName == null )
return ;
else if ( sFolderName.length == 0 )
@@ -53,7 +49,7 @@ function CreateFolder()
else
break ;
}
-
+
oConnector.SendCommand( 'CreateFolder', 'NewFolderName=' + encodeURIComponent( sFolderName) , CreateFolderCallBack ) ;
}
@@ -61,12 +57,12 @@ function CreateFolderCallBack( fckXml )
{
if ( oConnector.CheckError( fckXml ) == 0 )
window.parent.frames['frmResourcesList'].Refresh() ;
-
+
/*
// Get the current folder path.
var oNode = fckXml.SelectSingleNode( 'Connector/Error' ) ;
var iErrorNumber = parseInt( oNode.attributes.getNamedItem('number').value ) ;
-
+
switch ( iErrorNumber )
{
case 0 :
diff --git a/editor/editor/filemanager/browser/default/frmfolders.html b/editor/editor/filemanager/browser/default/frmfolders.html
@@ -1,31 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: frmfolders.html
- * This page shows the list of folders available in the parent folder
- * of the current folder.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * This page shows the list of folders available in the parent folder
+ * of the current folder.
-->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link href="browser.css" type="text/css" rel="stylesheet">
@@ -44,7 +40,7 @@ oListManager.Init = function()
this.Table = document.getElementById('tableFiles') ;
this.UpRow = document.getElementById('trUp') ;
- this.TableRows = new Object() ;
+ this.TableRows = new Object() ;
}
oListManager.Clear = function()
@@ -75,14 +71,14 @@ oListManager.AddItem = function( folderName, folderPath )
oCell = oRow.insertCell(-1) ;
oCell.noWrap = true ;
oCell.innerHTML = ' ' + sLink + folderName + '</a>' ;
-
+
this.TableRows[ folderPath ] = oRow ;
}
oListManager.ShowUpFolder = function( upFolderPath )
{
this.UpRow.style.display = ( upFolderPath != null ? '' : 'none' ) ;
-
+
if ( upFolderPath != null )
{
document.getElementById('linkUpIcon').onclick = document.getElementById('linkUp').onclick = function()
@@ -95,8 +91,8 @@ oListManager.ShowUpFolder = function( upFolderPath )
function CheckLoaded()
{
- if ( window.top.IsLoadedActualFolder
- && window.top.IsLoadedCreateFolder
+ if ( window.top.IsLoadedActualFolder
+ && window.top.IsLoadedCreateFolder
&& window.top.IsLoadedUpload
&& window.top.IsLoadedResourcesList )
{
@@ -120,7 +116,7 @@ function OpenFolder( folderPath )
// Change the style for the select row (to show the opened folder).
for ( var sFolderPath in oListManager.TableRows )
{
- oListManager.TableRows[ sFolderPath ].className =
+ oListManager.TableRows[ sFolderPath ].className =
( sFolderPath == folderPath ? 'FolderListCurrentFolder' : 'FolderListFolder' ) ;
}
@@ -128,7 +124,7 @@ function OpenFolder( folderPath )
window.parent.frames['frmActualFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;
window.parent.frames['frmCreateFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;
window.parent.frames['frmUpload'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;
-
+
// Load the resources list for this folder.
window.parent.frames['frmResourcesList'].LoadResources( oConnector.ResourceType, folderPath ) ;
}
@@ -145,7 +141,7 @@ function LoadFolders( folderPath )
// Show/Hide the Up Folder.
oListManager.ShowUpFolder( sParentFolderPath ) ;
-
+
if ( folderPath != '/' )
{
sActiveFolder = folderPath ;
@@ -160,19 +156,19 @@ function GetFoldersCallBack( fckXml )
{
if ( oConnector.CheckError( fckXml ) != 0 )
return ;
-
+
// Get the current folder path.
var oNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ;
var sCurrentFolderPath = oNode.attributes.getNamedItem('path').value ;
-
+
var oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ;
-
+
for ( var i = 0 ; i < oNodes.length ; i++ )
{
var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;
- oListManager.AddItem( sFolderName, sCurrentFolderPath + sFolderName + "/" ) ;
+ oListManager.AddItem( sFolderName, sCurrentFolderPath + sFolderName + '/' ) ;
}
-
+
OpenFolder( sActiveFolder ) ;
}
diff --git a/editor/editor/filemanager/browser/default/frmresourceslist.html b/editor/editor/filemanager/browser/default/frmresourceslist.html
@@ -2,28 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: frmresourceslist.html
- * This page shows all resources available in a folder in the File Browser.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * This page shows all resources available in a folder in the File Browser.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@@ -38,42 +34,49 @@ oListManager.Clear = function()
document.body.innerHTML = '' ;
}
+function ProtectPath(path)
+{
+ path = path.replace( /\\/g, '\\\\') ;
+ path = path.replace( /'/g, '\\\'') ;
+ return path ;
+}
+
oListManager.GetFolderRowHtml = function( folderName, folderPath )
{
// Build the link to view the folder.
- var sLink = '<a href="#" onclick="OpenFolder(\'' + folderPath.replace( /'/g, '\\\'') + '\');return false;">' ;
+ var sLink = '<a href="#" onclick="OpenFolder(\'' + ProtectPath( folderPath ) + '\');return false;">' ;
return '<tr>' +
'<td width="16">' +
sLink +
- '<img alt="" src="images/Folder.gif" width="16" height="16" border="0"></a>' +
- '</td><td nowrap colspan="2"> ' +
- sLink +
- folderName +
- '</a>' +
- '</td></tr>' ;
+ '<img alt="" src="images/Folder.gif" width="16" height="16" border="0"><\/a>' +
+ '<\/td><td nowrap colspan="2"> ' +
+ sLink +
+ folderName +
+ '<\/a>' +
+ '<\/td><\/tr>' ;
}
oListManager.GetFileRowHtml = function( fileName, fileUrl, fileSize )
{
// Build the link to view the folder.
- var sLink = '<a href="#" onclick="OpenFile(\'' + fileUrl.replace( /'/g, '\\\'') + '\');return false;">' ;
+ var sLink = '<a href="#" onclick="OpenFile(\'' + ProtectPath( fileUrl ) + '\');return false;">' ;
// Get the file icon.
var sIcon = oIcons.GetIcon( fileName ) ;
return '<tr>' +
'<td width="16">' +
- sLink +
- '<img alt="" src="images/icons/' + sIcon + '.gif" width="16" height="16" border="0"></a>' +
- '</td><td> ' +
- sLink +
- fileName +
- '</a>' +
- '</td><td align="right" nowrap> ' +
- fileSize +
+ sLink +
+ '<img alt="" src="images/icons/' + sIcon + '.gif" width="16" height="16" border="0"><\/a>' +
+ '<\/td><td> ' +
+ sLink +
+ fileName +
+ '<\/a>' +
+ '<\/td><td align="right" nowrap> ' +
+ fileSize +
' KB' +
- '</td></tr>' ;
+ '<\/td><\/tr>' ;
}
function OpenFolder( folderPath )
@@ -84,7 +87,7 @@ function OpenFolder( folderPath )
function OpenFile( fileUrl )
{
- window.top.opener.SetUrl( fileUrl ) ;
+ window.top.opener.SetUrl( encodeURI( fileUrl ) ) ;
window.top.close() ;
window.top.opener.focus() ;
}
@@ -111,7 +114,7 @@ function GetFoldersAndFilesCallBack( fckXml )
var oFolderNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ;
if ( oFolderNode == null )
{
- alert( 'The server didn\'t reply with a proper XML file\r\nCheck your configuration.' ) ;
+ alert( 'The server didn\'t reply with a proper XML data. Please check your configuration.' ) ;
return ;
}
var sCurrentFolderPath = oFolderNode.attributes.getNamedItem('path').value ;
@@ -121,7 +124,7 @@ function GetFoldersAndFilesCallBack( fckXml )
var oHtml = new StringBuilder( '<table id="tableFiles" cellspacing="1" cellpadding="0" width="100%" border="0">' ) ;
- // Add the Folders.
+ // Add the Folders.
var oNodes ;
oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ;
for ( var i = 0 ; i < oNodes.length ; i++ )
@@ -130,7 +133,7 @@ function GetFoldersAndFilesCallBack( fckXml )
oHtml.Append( oListManager.GetFolderRowHtml( sFolderName, sCurrentFolderPath + sFolderName + "/" ) ) ;
}
- // Add the Files.
+ // Add the Files.
oNodes = fckXml.SelectNodes( 'Connector/Files/File' ) ;
for ( var j = 0 ; j < oNodes.length ; j++ )
{
@@ -141,12 +144,12 @@ function GetFoldersAndFilesCallBack( fckXml )
// Get the optional "url" attribute. If not available, build the url.
var oFileUrlAtt = oNodes[j].attributes.getNamedItem('url') ;
var sFileUrl = oFileUrlAtt != null ? oFileUrlAtt.value : sCurrentFolderUrl + sFileName ;
-
+
oHtml.Append( oListManager.GetFileRowHtml( sFileName, sFileUrl, sFileSize ) ) ;
}
oHtml.Append( '<\/table>' ) ;
-
+
document.body.innerHTML = oHtml.ToString() ;
// window.top.document.title = 'Finished processing in ' + ( ( ( new Date() ) - dTimer ) / 1000 ) + ' seconds' ;
@@ -159,6 +162,6 @@ window.onload = function()
}
</script>
</head>
-<body class="FileArea" bottommargin="10" leftmargin="10" topmargin="10" rightmargin="10">
+<body class="FileArea">
</body>
</html>
diff --git a/editor/editor/filemanager/browser/default/frmresourcetype.html b/editor/editor/filemanager/browser/default/frmresourcetype.html
@@ -1,30 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: frmresourcetype.html
- * This page shows the list of available resource types.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * This page shows the list of available resource types.
-->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
diff --git a/editor/editor/filemanager/browser/default/frmupload.html b/editor/editor/filemanager/browser/default/frmupload.html
@@ -2,31 +2,28 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: frmupload.html
- * Page used to upload new files in the current folder.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Page used to upload new files in the current folder.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
+ <title>File Upload</title>
<link href="browser.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript">
@@ -36,7 +33,7 @@ function SetCurrentFolder( resourceType, folderPath )
var sUrl = oConnector.ConnectorUrl + 'Command=FileUpload' ;
sUrl += '&Type=' + resourceType ;
sUrl += '&CurrentFolder=' + encodeURIComponent( folderPath ) ;
-
+
document.getElementById('frmUpload').action = sUrl ;
}
@@ -51,7 +48,7 @@ function OnSubmit()
// Set the interface elements.
document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder (Upload in progress, please wait...)' ;
document.getElementById('btnUpload').disabled = true ;
-
+
return true ;
}
@@ -59,17 +56,17 @@ function OnUploadCompleted( errorNumber, data )
{
// Reset the Upload Worker Frame.
window.parent.frames['frmUploadWorker'].location = 'javascript:void(0)' ;
-
- // Reset the upload form (On IE we must do a little trick to avout problems).
+
+ // Reset the upload form (On IE we must do a little trick to avoid problems).
if ( document.all )
document.getElementById('NewFile').outerHTML = '<input id="NewFile" name="NewFile" style="WIDTH: 100%" type="file">' ;
else
document.getElementById('frmUpload').reset() ;
-
+
// Reset the interface elements.
document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder' ;
document.getElementById('btnUpload').disabled = false ;
-
+
switch ( errorNumber )
{
case 0 :
diff --git a/editor/editor/filemanager/browser/default/images/icons/32/png.gif b/editor/editor/filemanager/browser/default/images/icons/32/png.gif
Binary files differ.
diff --git a/editor/editor/filemanager/browser/default/images/icons/png.gif b/editor/editor/filemanager/browser/default/images/icons/png.gif
Binary files differ.
diff --git a/editor/editor/filemanager/browser/default/js/common.js b/editor/editor/filemanager/browser/default/js/common.js
@@ -1,29 +1,25 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: common.js
- * Common objects and functions shared by all pages that compose the
- * File Browser dialog window.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Common objects and functions shared by all pages that compose the
+ * File Browser dialog window.
*/
function AddSelectOption( selectElement, optionText, optionValue )
@@ -31,7 +27,7 @@ function AddSelectOption( selectElement, optionText, optionValue )
var oOption = document.createElement("OPTION") ;
oOption.text = optionText ;
- oOption.value = optionValue ;
+ oOption.value = optionValue ;
selectElement.options.add(oOption) ;
diff --git a/editor/editor/filemanager/browser/default/js/fckxml.js b/editor/editor/filemanager/browser/default/js/fckxml.js
@@ -1,31 +1,28 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fckxml.js
- * Defines the FCKXml object that is used for XML data calls
- * and XML processing.
- * This script is shared by almost all pages that compose the
- * File Browser frameset.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Defines the FCKXml object that is used for XML data calls
+ * and XML processing.
+ *
+ * This script is shared by almost all pages that compose the
+ * File Browser frameset.
*/
var FCKXml = function()
@@ -38,7 +35,7 @@ FCKXml.prototype.GetHttpRequest = function()
return new XMLHttpRequest() ;
// IE6
- try { return new ActiveXObject( 'Msxml2.XMLHTTP' ) ; }
+ try { return new ActiveXObject( 'Msxml2.XMLHTTP' ) ; }
catch(e) {}
// IE5
@@ -55,33 +52,32 @@ FCKXml.prototype.LoadUrl = function( urlToCall, asyncFunctionPointer )
var bAsync = ( typeof(asyncFunctionPointer) == 'function' ) ;
var oXmlHttp = this.GetHttpRequest() ;
-
+
oXmlHttp.open( "GET", urlToCall, bAsync ) ;
if ( bAsync )
- {
- oXmlHttp.onreadystatechange = function()
+ {
+ oXmlHttp.onreadystatechange = function()
{
if ( oXmlHttp.readyState == 4 )
{
- if ( oXmlHttp.responseXML == null || oXmlHttp.responseXML.firstChild == null)
+ if ( ( oXmlHttp.status != 200 && oXmlHttp.status != 304 ) || oXmlHttp.responseXML == null || oXmlHttp.responseXML.firstChild == null )
{
- alert( 'The server didn\'t send back a proper XML response.\r\n\r\n' +
- 'Requested URL: ' + urlToCall + '\r\n' +
- 'Response text:\r\n' + oXmlHttp.responseText ) ;
+ alert( 'The server didn\'t send back a proper XML response. Please contact your system administrator.\n\n' +
+ 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')\n\n' +
+ 'Requested URL:\n' + urlToCall + '\n\n' +
+ 'Response text:\n' + oXmlHttp.responseText ) ;
return ;
}
+
oFCKXml.DOMDocument = oXmlHttp.responseXML ;
- if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )
- asyncFunctionPointer( oFCKXml ) ;
- else
- alert( 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')' ) ;
+ asyncFunctionPointer( oFCKXml ) ;
}
}
}
-
+
oXmlHttp.send( null ) ;
-
+
if ( ! bAsync )
{
if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )
@@ -101,9 +97,9 @@ FCKXml.prototype.SelectNodes = function( xpath )
{
var aNodeArray = new Array();
- var xPathResult = this.DOMDocument.evaluate( xpath, this.DOMDocument,
+ var xPathResult = this.DOMDocument.evaluate( xpath, this.DOMDocument,
this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), XPathResult.ORDERED_NODE_ITERATOR_TYPE, null) ;
- if ( xPathResult )
+ if ( xPathResult )
{
var oNode = xPathResult.iterateNext() ;
while( oNode )
@@ -111,12 +107,12 @@ FCKXml.prototype.SelectNodes = function( xpath )
aNodeArray[aNodeArray.length] = oNode ;
oNode = xPathResult.iterateNext();
}
- }
+ }
return aNodeArray ;
}
}
-FCKXml.prototype.SelectSingleNode = function( xpath )
+FCKXml.prototype.SelectSingleNode = function( xpath )
{
if ( navigator.userAgent.indexOf('MSIE') >= 0 ) // IE
return this.DOMDocument.selectSingleNode( xpath ) ;
@@ -127,7 +123,7 @@ FCKXml.prototype.SelectSingleNode = function( xpath )
if ( xPathResult && xPathResult.singleNodeValue )
return xPathResult.singleNodeValue ;
- else
+ else
return null ;
}
}
diff --git a/editor/editor/filemanager/upload/php/config.php b/editor/editor/filemanager/upload/php/config.php
@@ -1,60 +0,0 @@
-<?php
-/*
- * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
- * == BEGIN LICENSE ==
- *
- * Licensed under the terms of any of the following licenses at your
- * choice:
- *
- * - GNU General Public License Version 2 or later (the "GPL")
- * http://www.gnu.org/licenses/gpl.html
- *
- * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- * http://www.gnu.org/licenses/lgpl.html
- *
- * - Mozilla Public License Version 1.1 or later (the "MPL")
- * http://www.mozilla.org/MPL/MPL-1.1.html
- *
- * == END LICENSE ==
- *
- * File Name: config.php
- * Configuration file for the PHP File Uploader.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- */
-
-global $Config ;
-
-// SECURITY: You must explicitelly enable this "uploader".
-$Config['Enabled'] = false ;
-
-// Set if the file type must be considere in the target path.
-// Ex: /userfiles/image/ or /userfiles/file/
-$Config['UseFileType'] = false ;
-
-// Path to uploaded files relative to the document root.
-$Config['UserFilesPath'] = '/userfiles/' ;
-
-// Fill the following value it you prefer to specify the absolute path for the
-// user files directory. Usefull if you are using a virtual directory, symbolic
-// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
-// Attention: The above 'UserFilesPath' must point to the same directory.
-$Config['UserFilesAbsolutePath'] = '' ;
-
-// Due to security issues with Apache modules, it is reccomended to leave the
-// following setting enabled.
-$Config['ForceSingleExtension'] = true ;
-
-$Config['AllowedExtensions']['File'] = array() ;
-$Config['DeniedExtensions']['File'] = array('html','htm','php','php2','php3','php4','php5','phtml','pwml','inc','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','com','dll','vbs','js','reg','cgi','htaccess','asis') ;
-
-$Config['AllowedExtensions']['Image'] = array('jpg','gif','jpeg','png') ;
-$Config['DeniedExtensions']['Image'] = array() ;
-
-$Config['AllowedExtensions']['Flash'] = array('swf','fla') ;
-$Config['DeniedExtensions']['Flash'] = array() ;
-
-?>-
\ No newline at end of file
diff --git a/editor/editor/filemanager/upload/php/upload.php b/editor/editor/filemanager/upload/php/upload.php
@@ -1,128 +0,0 @@
-<?php
-/*
- * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
- * == BEGIN LICENSE ==
- *
- * Licensed under the terms of any of the following licenses at your
- * choice:
- *
- * - GNU General Public License Version 2 or later (the "GPL")
- * http://www.gnu.org/licenses/gpl.html
- *
- * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- * http://www.gnu.org/licenses/lgpl.html
- *
- * - Mozilla Public License Version 1.1 or later (the "MPL")
- * http://www.mozilla.org/MPL/MPL-1.1.html
- *
- * == END LICENSE ==
- *
- * File Name: upload.php
- * This is the "File Uploader" for PHP.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- */
-
-require('config.php') ;
-require('util.php') ;
-
-// This is the function that sends the results of the uploading process.
-function SendResults( $errorNumber, $fileUrl = '', $fileName = '', $customMsg = '' )
-{
- echo '<script type="text/javascript">' ;
- echo 'window.parent.OnUploadCompleted(' . $errorNumber . ',"' . str_replace( '"', '\\"', $fileUrl ) . '","' . str_replace( '"', '\\"', $fileName ) . '", "' . str_replace( '"', '\\"', $customMsg ) . '") ;' ;
- echo '</script>' ;
- exit ;
-}
-
-// Check if this uploader has been enabled.
-if ( !$Config['Enabled'] )
- SendResults( '1', '', '', 'This file uploader is disabled. Please check the "editor/filemanager/upload/php/config.php" file' ) ;
-
-// Check if the file has been correctly uploaded.
-if ( !isset( $_FILES['NewFile'] ) || is_null( $_FILES['NewFile']['tmp_name'] ) || $_FILES['NewFile']['name'] == '' )
- SendResults( '202' ) ;
-
-// Get the posted file.
-$oFile = $_FILES['NewFile'] ;
-
-// Get the uploaded file name extension.
-$sFileName = $oFile['name'] ;
-
-// Replace dots in the name with underscores (only one dot can be there... security issue).
-if ( $Config['ForceSingleExtension'] )
- $sFileName = preg_replace( '/\\.(?![^.]*$)/', '_', $sFileName ) ;
-
-$sOriginalFileName = $sFileName ;
-
-// Get the extension.
-$sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;
-$sExtension = strtolower( $sExtension ) ;
-
-// The the file type (from the QueryString, by default 'File').
-$sType = isset( $_GET['Type'] ) ? $_GET['Type'] : 'File' ;
-
-// Check if it is an allowed type.
-if ( !in_array( $sType, array('File','Image','Flash','Media') ) )
- SendResults( 1, '', '', 'Invalid type specified' ) ;
-
-// Get the allowed and denied extensions arrays.
-$arAllowed = $Config['AllowedExtensions'][$sType] ;
-$arDenied = $Config['DeniedExtensions'][$sType] ;
-
-// Check if it is an allowed extension.
-if ( ( count($arAllowed) > 0 && !in_array( $sExtension, $arAllowed ) ) || ( count($arDenied) > 0 && in_array( $sExtension, $arDenied ) ) )
- SendResults( '202' ) ;
-
-$sErrorNumber = '0' ;
-$sFileUrl = '' ;
-
-// Initializes the counter used to rename the file, if another one with the same name already exists.
-$iCounter = 0 ;
-
-// Get the target directory.
-if ( isset( $Config['UserFilesAbsolutePath'] ) && strlen( $Config['UserFilesAbsolutePath'] ) > 0 )
- $sServerDir = $Config['UserFilesAbsolutePath'] ;
-else
- $sServerDir = GetRootPath() . $Config["UserFilesPath"] ;
-
-if ( $Config['UseFileType'] )
- $sServerDir .= $sType . '/' ;
-
-while ( true )
-{
- // Compose the file path.
- $sFilePath = $sServerDir . $sFileName ;
-
- // If a file with that name already exists.
- if ( is_file( $sFilePath ) )
- {
- $iCounter++ ;
- $sFileName = RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ;
- $sErrorNumber = '201' ;
- }
- else
- {
- move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ;
-
- if ( is_file( $sFilePath ) )
- {
- $oldumask = umask(0) ;
- chmod( $sFilePath, 0777 ) ;
- umask( $oldumask ) ;
- }
-
- if ( $Config['UseFileType'] )
- $sFileUrl = $Config["UserFilesPath"] . $sType . '/' . $sFileName ;
- else
- $sFileUrl = $Config["UserFilesPath"] . $sFileName ;
-
- break ;
- }
-}
-
-SendResults( $sErrorNumber, $sFileUrl, $sFileName ) ;
-?>-
\ No newline at end of file
diff --git a/editor/editor/filemanager/upload/php/util.php b/editor/editor/filemanager/upload/php/util.php
@@ -1,44 +0,0 @@
-<?php
-/*
- * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
- * == BEGIN LICENSE ==
- *
- * Licensed under the terms of any of the following licenses at your
- * choice:
- *
- * - GNU General Public License Version 2 or later (the "GPL")
- * http://www.gnu.org/licenses/gpl.html
- *
- * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- * http://www.gnu.org/licenses/lgpl.html
- *
- * - Mozilla Public License Version 1.1 or later (the "MPL")
- * http://www.mozilla.org/MPL/MPL-1.1.html
- *
- * == END LICENSE ==
- *
- * File Name: util.php
- * This is the File Manager Connector for ASP.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- */
-
-function RemoveExtension( $fileName )
-{
- return substr( $fileName, 0, strrpos( $fileName, '.' ) ) ;
-}
-
-function GetRootPath()
-{
- $sRealPath = realpath( './' ) ;
-
- $sSelfPath = $_SERVER['PHP_SELF'] ;
- $sSelfPath = substr( $sSelfPath, 0, strrpos( $sSelfPath, '/' ) ) ;
-
- return substr( $sRealPath, 0, strlen( $sRealPath ) - strlen( $sSelfPath ) ) ;
-}
-
-?>-
\ No newline at end of file
diff --git a/editor/editor/filemanager/upload/test.html b/editor/editor/filemanager/upload/test.html
@@ -1,137 +0,0 @@
-<!--
- * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
- * == BEGIN LICENSE ==
- *
- * Licensed under the terms of any of the following licenses at your
- * choice:
- *
- * - GNU General Public License Version 2 or later (the "GPL")
- * http://www.gnu.org/licenses/gpl.html
- *
- * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- * http://www.gnu.org/licenses/lgpl.html
- *
- * - Mozilla Public License Version 1.1 or later (the "MPL")
- * http://www.mozilla.org/MPL/MPL-1.1.html
- *
- * == END LICENSE ==
- *
- * File Name: test.html
- * Test page for the "File Uploaders".
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
--->
-<html>
- <head>
- <title>FCKeditor - Uploaders Tests</title>
- <script language="javascript">
-
-function SendFile()
-{
- var sUploaderUrl = cmbUploaderUrl.value ;
-
- if ( sUploaderUrl.length == 0 )
- sUploaderUrl = txtCustomUrl.value ;
-
- if ( sUploaderUrl.length == 0 )
- {
- alert( 'Please provide your custom URL or select a default one' ) ;
- return ;
- }
-
- eURL.innerHTML = sUploaderUrl ;
- txtUrl.value = '' ;
-
- frmUpload.action = sUploaderUrl ;
- frmUpload.submit() ;
-}
-
-function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
-{
- switch ( errorNumber )
- {
- case 0 : // No errors
- txtUrl.value = fileUrl ;
- alert( 'File uploaded with no errors' ) ;
- break ;
- case 1 : // Custom error
- alert( customMsg ) ;
- break ;
- case 10 : // Custom warning
- txtUrl.value = fileUrl ;
- alert( customMsg ) ;
- break ;
- case 201 :
- txtUrl.value = fileUrl ;
- alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
- break ;
- case 202 :
- alert( 'Invalid file' ) ;
- break ;
- case 203 :
- alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;
- break ;
- default :
- alert( 'Error on file upload. Error number: ' + errorNumber ) ;
- break ;
- }
-}
-
- </script>
- </head>
- <body>
- <table cellSpacing="0" cellPadding="0" width="100%" border="0" height="100%">
- <tr>
- <td>
- <table cellSpacing="0" cellPadding="0" width="100%" border="0">
- <tr>
- <td nowrap>
- Select the "File Uploader" to use:<br>
- <select id="cmbUploaderUrl">
- <option selected value="asp/upload.asp">ASP</option>
- <option value="aspx/upload.aspx">ASP.Net</option>
- <option value="cfm/upload.cfm">ColdFusion</option>
- <option value="lasso/upload.lasso">Lasso</option>
- <option value="php/upload.php">PHP</option>
- <option value="">(Custom)</option>
- </select>
- </td>
- <td nowrap> </td>
- <td width="100%">
- Custom Uploader URL:<BR>
- <input id="txtCustomUrl" style="WIDTH: 100%; BACKGROUND-COLOR: #dcdcdc" disabled type="text">
- </td>
- </tr>
- </table>
- <br>
- <table cellSpacing="0" cellPadding="0" width="100%" border="0">
- <tr>
- <td noWrap>
- <form id="frmUpload" target="UploadWindow" enctype="multipart/form-data" action="" method="post">
- Upload a new file:<br>
- <input type="file" name="NewFile"><br>
- <input type="button" value="Send it to the Server" onclick="SendFile();">
- </form>
- </td>
- <td style="WIDTH: 16px"> </td>
- <td vAlign="top" width="100%">
- Uploaded File URL:<br>
- <INPUT id="txtUrl" style="WIDTH: 100%" readonly type="text">
- </td>
- </tr>
- </table>
- <br>
- Post URL: <span id="eURL"> </span>
- </td>
- </tr>
- <tr>
- <td height="100%">
- <iframe name="UploadWindow" width="100%" height="100%" src="javascript:void(0)"></iframe>
- </td>
- </tr>
- </table>
- </body>
-</html>
diff --git a/editor/editor/js/fckeditorcode_gecko.js b/editor/editor/js/fckeditorcode_gecko.js
@@ -17,80 +17,92 @@
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
- *
- * This file has been compacted for better loading performance.
+ *
+ * This file has been compressed for better performance. The original source
+ * can be found at "editor/_source".
*/
-
-var FCK_STATUS_NOTLOADED=window.parent.FCK_STATUS_NOTLOADED=0;var FCK_STATUS_ACTIVE=window.parent.FCK_STATUS_ACTIVE=1;var FCK_STATUS_COMPLETE=window.parent.FCK_STATUS_COMPLETE=2;var FCK_TRISTATE_OFF=window.parent.FCK_TRISTATE_OFF=0;var FCK_TRISTATE_ON=window.parent.FCK_TRISTATE_ON=1;var FCK_TRISTATE_DISABLED=window.parent.FCK_TRISTATE_DISABLED=-1;var FCK_UNKNOWN=window.parent.FCK_UNKNOWN=-9;var FCK_TOOLBARITEM_ONLYICON=window.parent.FCK_TOOLBARITEM_ONLYICON=0;var FCK_TOOLBARITEM_ONLYTEXT=window.parent.FCK_TOOLBARITEM_ONLYTEXT=1;var FCK_TOOLBARITEM_ICONTEXT=window.parent.FCK_TOOLBARITEM_ICONTEXT=2;var FCK_EDITMODE_WYSIWYG=window.parent.FCK_EDITMODE_WYSIWYG=0;var FCK_EDITMODE_SOURCE=window.parent.FCK_EDITMODE_SOURCE=1;var FCK_IMAGES_PATH='images/';var FCK_SPACER_PATH='images/spacer.gif';var CTRL=1000;var SHIFT=2000;var ALT=4000;
-String.prototype.Contains=function(A){return (this.indexOf(A)>-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&&A[0].pop) A=A[0];for (var i=0;i<A.length;i++){if (this==A[i]) return true;};return false;};String.prototype.IEquals=function(){var A=this.toUpperCase();var B=arguments;if (B.length==1&&B[0].pop) B=B[0];for (var i=0;i<B.length;i++){if (A==B[i].toUpperCase()) return true;};return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i<A.length;i++){C=C.replace(A[i],B[i]);};return C;};Array.prototype.AddItem=function(A){var i=this.length;this[i]=A;return i;};Array.prototype.IndexOf=function(A){for (var i=0;i<this.length;i++){if (this[i]==A) return i;};return-1;};String.prototype.StartsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.EndsWith=function(A,B){var C=this.length;var D=A.length;if (D>C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A>0) s=this.substring(0,A);if (A+B<this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.Trim=function(){return this.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,'');};String.prototype.LTrim=function(){return this.replace(/^[ \t\n\r]*/g,'');};String.prototype.RTrim=function(){return this.replace(/[ \t\n\r]*$/g,'');};String.prototype.ReplaceNewLineChars=function(A){return this.replace(/\n/g,A);}
-var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:s.Contains('msie'),IsIE7:s.Contains('msie 7'),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains('safari'),IsOpera:s.Contains('opera'),IsMac:s.Contains('macintosh')};(function(A){A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/gecko\/(\d+)/)[1];A.IsGecko10=B<20051111;}else A.IsGecko10=false;})(FCKBrowserInfo);
+
+var FCK_STATUS_NOTLOADED=window.parent.FCK_STATUS_NOTLOADED=0;var FCK_STATUS_ACTIVE=window.parent.FCK_STATUS_ACTIVE=1;var FCK_STATUS_COMPLETE=window.parent.FCK_STATUS_COMPLETE=2;var FCK_TRISTATE_OFF=window.parent.FCK_TRISTATE_OFF=0;var FCK_TRISTATE_ON=window.parent.FCK_TRISTATE_ON=1;var FCK_TRISTATE_DISABLED=window.parent.FCK_TRISTATE_DISABLED=-1;var FCK_UNKNOWN=window.parent.FCK_UNKNOWN=-9;var FCK_TOOLBARITEM_ONLYICON=window.parent.FCK_TOOLBARITEM_ONLYICON=0;var FCK_TOOLBARITEM_ONLYTEXT=window.parent.FCK_TOOLBARITEM_ONLYTEXT=1;var FCK_TOOLBARITEM_ICONTEXT=window.parent.FCK_TOOLBARITEM_ICONTEXT=2;var FCK_EDITMODE_WYSIWYG=window.parent.FCK_EDITMODE_WYSIWYG=0;var FCK_EDITMODE_SOURCE=window.parent.FCK_EDITMODE_SOURCE=1;var FCK_IMAGES_PATH='images/';var FCK_SPACER_PATH='images/spacer.gif';var CTRL=1000;var SHIFT=2000;var ALT=4000;var FCK_STYLE_BLOCK=0;var FCK_STYLE_INLINE=1;var FCK_STYLE_OBJECT=2;
+String.prototype.Contains=function(A){return (this.indexOf(A)>-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&&A[0].pop) A=A[0];for (var i=0;i<A.length;i++){if (this==A[i]) return true;};return false;};String.prototype.IEquals=function(){var A=this.toUpperCase();var B=arguments;if (B.length==1&&B[0].pop) B=B[0];for (var i=0;i<B.length;i++){if (A==B[i].toUpperCase()) return true;};return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i<A.length;i++){C=C.replace(A[i],B[i]);};return C;};String.prototype.StartsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.EndsWith=function(A,B){var C=this.length;var D=A.length;if (D>C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A>0) s=this.substring(0,A);if (A+B<this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.Trim=function(){return this.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,'');};String.prototype.LTrim=function(){return this.replace(/^[ \t\n\r]*/g,'');};String.prototype.RTrim=function(){return this.replace(/[ \t\n\r]*$/g,'');};String.prototype.ReplaceNewLineChars=function(A){return this.replace(/\n/g,A);};String.prototype.Replace=function(A,B,C){if (typeof B=='function'){return this.replace(A,function(){return B.apply(C||this,arguments);});}else return this.replace(A,B);};Array.prototype.AddItem=function(A){var i=this.length;this[i]=A;return i;};Array.prototype.IndexOf=function(A){for (var i=0;i<this.length;i++){if (this[i]==A) return i;};return-1;};
+var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:/*@cc_on!@*/false,IsIE7:/*@cc_on!@*/false&&s.Contains('msie 7'),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains(' applewebkit/'),IsOpera:!!window.opera,IsMac:s.Contains('macintosh')};(function(A){A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/gecko\/(\d+)/)[1];A.IsGecko10=((B<20051111)||(/rv:1\.7/.test(s)));A.IsGecko19=/rv:1\.9/.test(s);}else A.IsGecko10=false;})(FCKBrowserInfo);
var FCKURLParams={};(function(){var A=document.location.search.substr(1).split('&');for (var i=0;i<A.length;i++){var B=A[i].split('=');var C=decodeURIComponent(B[0]);var D=decodeURIComponent(B[1]);FCKURLParams[C]=D;}})();
-var FCKEvents=function(A){this.Owner=A;this._RegisteredEvents={};};FCKEvents.prototype.AttachEvent=function(A,B){var C;if (!(C=this._RegisteredEvents[A])) this._RegisteredEvents[A]=[B];else C.push(B);};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this._RegisteredEvents[A];if (D){for (var i=0;i<D.length;i++) C=(D[i](this.Owner,B)&&C);};return C;};
-var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){return (this.StartupValue!=this.EditorDocument.body.innerHTML);},ResetIsDirty:function(){if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length>0?'<base href="'+FCKConfig.BaseHref+'" _fcktemp="true"></base>':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86/*V*/) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45/*INS*/) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=false;this.SetHTML(this.GetLinkedFieldValue());},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&&A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:if (!FCKListsLib.BlockElements[D.nodeName.toLowerCase()]) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;};if (F){var G=D.parentNode;if (!E) E=G.insertBefore(B.createElement(A),D);E.appendChild(G.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetXHTML:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B;var C=FCK.EditorDocument;if (!C) return null;if (FCKConfig.FullPage) B=FCKXHtml.GetXHTML(C.getElementsByTagName('html')[0],true,A);else{if (FCKConfig.IgnoreEmptyParagraphValue&&C.body.innerHTML=='<P> </P>') B='';else B=FCKXHtml.GetXHTML(C.body,false,A);};B=FCK.ProtectEventsRestore(B);if (FCKBrowserInfo.IsIE) B=B.replace(FCKRegexLib.ToReplace,'$1');if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) B=FCK.DocTypeDeclaration+'\n'+B;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) B=FCK.XmlDeclaration+'\n'+B;return FCKConfig.ProtectedSource.Revert(B);},UpdateLinkedField:function(){FCK.LinkedField.value=FCK.GetXHTML(FCKConfig.FormatOutput);FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);},RegisterDoubleClickHandler:function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;},OnAfterSetHTML:function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');},ProtectUrls:function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$1$4$2$3$5$2 _fcksavedurl=$2$3$5$2');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$1$4$2$3$5$2 _fcksavedurl=$2$3$5$2');return A;},ProtectEvents:function(A){return A.replace(FCKRegexLib.TagsWithEvent,_FCK_ProtectEvents_ReplaceTags);},ProtectEventsRestore:function(A){return A.replace(FCKRegexLib.ProtectedEvents,_FCK_ProtectEvents_RestoreEvents);},ProtectTags:function(A){var B='META';if (FCKConfig.ProtectedTags.length>0) B+='|'+FCKConfig.ProtectedTags;if (FCKBrowserInfo.IsIE) B+='|ABBR';var C=new RegExp('<('+B+')([ \>])','gi');A=A.replace(C,'<FCK:$1$2');C=new RegExp('<\/('+B+')>','gi');A=A.replace(C,'<\/FCK:$1>');return A;},SetHTML:function(A){this.EditingArea.Mode=FCK.EditMode;if (FCK.EditMode==0){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCKBrowserInfo.IsGecko){A=A.replace(FCKRegexLib.StrongOpener,'<b$1');A=A.replace(FCKRegexLib.StrongCloser,'<\/b>');A=A.replace(FCKRegexLib.EmOpener,'<i$1');A=A.replace(FCKRegexLib.EmCloser,'<\/i>');};var B='';if (FCKConfig.FullPage){if (!FCKRegexLib.HeadOpener.test(A)){if (!FCKRegexLib.HtmlOpener.test(A)) A='<html dir="'+FCKConfig.ContentLangDirection+'">'+A+'</html>';A=A.replace(FCKRegexLib.HtmlOpener,'$&<head></head>');};FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (FCKBrowserInfo.IsIE) B=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) B='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';B+='<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';B=A.replace(FCKRegexLib.HeadCloser,B+'$&');if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) B=B.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);}else{B=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"';if (FCKBrowserInfo.IsIE&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) B+=' style="overflow-y: scroll"';B+='><head><title></title>'+_FCK_GetEditorAreaStyleTags()+'<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';if (FCKBrowserInfo.IsIE) B+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) B+='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';B+=FCK.TempBaseTag;var C='<body';if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) C+=' id="'+FCKConfig.BodyId+'"';if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) C+=' class="'+FCKConfig.BodyClass+'"';B+='</head>'+C+'>';if (FCKBrowserInfo.IsGecko&&(A.length==0||FCKRegexLib.EmptyParagraph.test(A))) B+=GECKO_BOGUS;else B+=A;B+='</body></html>';};this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(B);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},HasFocus:false,RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C){FCKUndo.SaveUndoStep();if (!C&&FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else return FCK.EditorDocument.queryCommandState(A)?1:0;}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A=FCKConfig.ScreenWidth*0.8;var B=FCKConfig.ScreenHeight*0.7;var C=(FCKConfig.ScreenWidth-A)/2;var D=window.open('',null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+A+',height='+B+',left='+C);var E;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) E=FCK.TempBaseTag+FCK.GetXHTML();else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body>'+FCK.GetXHTML()+'</body></html>';};D.document.write(E);D.document.close();},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C;if (B){if (!A&&FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();C=FCK.GetXHTML(FCKConfig.FormatSource);if (C==null) return false;}else C=this.EditingArea.Textarea.value;FCK.EditMode=B?1:0;FCK.SetHTML(C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},CreateElement:function(A){var e=FCK.EditorDocument.createElement(A);return FCK.InsertElementAndGetIt(e);},InsertElementAndGetIt:function(e){e.setAttribute('FCKTempLabel','true');this.InsertElement(e);var A=FCK.EditorDocument.getElementsByTagName(e.tagName);for (var i=0;i<A.length;i++){if (A[i].getAttribute('FCKTempLabel')){A[i].removeAttribute('FCKTempLabel');return A[i];}};return null;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt="'+A.ReplaceAll([/&/g,/'/g,/"/g,/=/g,/</g,/>/g,/\r/g,/\n/g],[''',''','"','=','<','>',' ',' '])+'"';};function _FCK_ProtectEvents_RestoreEvents(A,B){return B.ReplaceAll([/'/g,/"/g,/=/g,/</g,/>/g,/ /g,/ /g,/'/g],["'",'"','=','<','>','\r','\n','&']);};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();if (!FCKConfig.DisableEnterKeyHandler) FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);FCK.OnAfterSetHTML();if (FCK.Status!=0) return;FCK.ResetIsDirty();FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){var A='';var B=FCKConfig.EditorAreaCSS;for (var i=0;i<B.length;i++) A+='<link href="'+B[i]+'" rel="stylesheet" type="text/css" />';return A;};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){if (B=='Paste') return!FCK.Events.FireEvent('OnPaste');}else{if (B.Equals('Paste','Undo','Redo','SelectAll')) return false;};var C=FCK.Commands.GetCommand(B);return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&&B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i<this.Elements.length) this.Elements[i++]==null;this.Elements.length=0;}};var FCKFocusManager=FCK.FocusManager={IsLocked:false,AddWindow:function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);},RemoveWindow:function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);},Lock:function(){this.IsLocked=true;},Unlock:function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;},_ResetTimer:function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&&FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent("OnBlur");}};function FCKFocusManager_Win_OnFocus_Area(){FCK.Focus();FCKFocusManager_Win_OnFocus();};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}};
-FCK.Description="FCKeditor for Gecko Browsers";FCK.InitializeBehaviors=function(){if (FCKBrowserInfo.IsGecko) Window_OnResize();FCKFocusManager.AddWindow(this.EditorWindow);this.ExecOnSelectionChange=function(){FCK.Events.FireEvent("OnSelectionChange");};this.ExecOnSelectionChangeTimer=function(){if (FCK.LastOnChangeTimer) window.clearTimeout(FCK.LastOnChangeTimer);FCK.LastOnChangeTimer=window.setTimeout(FCK.ExecOnSelectionChange,100);};this.EditorDocument.addEventListener('mouseup',this.ExecOnSelectionChange,false);this.EditorDocument.addEventListener('keyup',this.ExecOnSelectionChangeTimer,false);this._DblClickListener=function(e){FCK.OnDoubleClick(e.target);e.stopPropagation();};this.EditorDocument.addEventListener('dblclick',this._DblClickListener,true);FCK.ContextMenu._InnerContextMenu.SetMouseClickWindow(FCK.EditorWindow);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument);};FCK.MakeEditable=function(){this.EditingArea.MakeEditable();};function Document_OnContextMenu(e){if (!e.target._FCKShowContextMenu) e.preventDefault();};document.oncontextmenu=Document_OnContextMenu;FCK._BaseGetNamedCommandState=FCK.GetNamedCommandState;FCK.GetNamedCommandState=function(A){switch (A){case 'Unlink':return FCKSelection.HasAncestorNode('A')?0:-1;default:return FCK._BaseGetNamedCommandState(A);}};FCK.RedirectNamedCommands={Print:true,Paste:true,Cut:true,Copy:true};FCK.ExecuteRedirectedNamedCommand=function(A,B){switch (A){case 'Print':FCK.EditorWindow.print();break;case 'Paste':try { if (FCK.Paste()) FCK.ExecuteNamedCommand('Paste',null,true);}catch (e) { alert(FCKLang.PasteErrorPaste);};break;case 'Cut':try { FCK.ExecuteNamedCommand('Cut',null,true);}catch (e) { alert(FCKLang.PasteErrorCut);};break;case 'Copy':try { FCK.ExecuteNamedCommand('Copy',null,true);}catch (e) { alert(FCKLang.PasteErrorCopy);};break;default:FCK.ExecuteNamedCommand(A,B);}};FCK.AttachToOnSelectionChange=function(A){this.Events.AttachEvent('OnSelectionChange',A);};FCK.Paste=function(){if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};return true;};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectUrls(A);var B=FCKSelection.Delete();var C=B.getRangeAt(0);var D=C.createContextualFragment(A);var E=D.lastChild;C.insertNode(D);FCKSelection.SelectNode(E);FCKSelection.Collapse(false);this.Focus();};FCK.InsertElement=function(A){var B=FCKSelection.Delete();var C=B.getRangeAt(0);C.insertNode(A);FCKSelection.SelectNode(A);FCKSelection.Collapse(false);this.Focus();};FCK.PasteAsPlainText=function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText');};FCK.GetClipboardHTML=function(){return '';};FCK.CreateLink=function(A){FCK.ExecuteNamedCommand('Unlink');if (A.length>0){var B='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',B);var C=this.EditorDocument.evaluate("//a[@href='"+B+"']",this.EditorDocument.body,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;if (C){C.href=A;return C;}};return null;};
-var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi, '/');FCKConfig.BasePath='file://'+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;}else{FCKConfig.BasePath=document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=document.location.protocol+'//'+document.location.host+FCKConfig.BasePath;};FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig={};var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&');for (var i=0;i<B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=decodeURIComponent(C[0]);var E=decodeURIComponent(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()=="true") this.PageConfig[D]=true;else if (E.toLowerCase()=="false") this.PageConfig[D]=false;else if (E.length>0&&!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) {/*Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error).*/}};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';if (typeof(A.EditorAreaCSS)=='string') A.EditorAreaCSS=[A.EditorAreaCSS];var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;else if (typeof(B)=='string') A.ToolbarComboPreviewCSS=[B];};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource.RegexEntries=[/<!--[\s\S]*?-->/g,/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){function _Replace(protectedSource){var B=FCKTempBin.AddElement(protectedSource);return '<!--{PS..'+B+'}-->';};for (var i=0;i<this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};return A.replace(/(<|<)!--\{PS..(\d+)\}--(>|>)/g,_Replace);}
+var FCKEvents=function(A){this.Owner=A;this._RegisteredEvents={};};FCKEvents.prototype.AttachEvent=function(A,B){var C;if (!(C=this._RegisteredEvents[A])) this._RegisteredEvents[A]=[B];else{if (C.IndexOf(B)==-1) C.push(B);}};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this._RegisteredEvents[A];if (D){for (var i=0;i<D.length;i++){try{C=(D[i](this.Owner,B)&&C);}catch(e){if (e.number!=-2146823277) throw e;}}};return C;};
+var FCKDataProcessor=function(){};FCKDataProcessor.prototype={ConvertToHtml:function(A){if (FCKConfig.FullPage){FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (!FCKRegexLib.HasBodyTag.test(A)) A='<body>'+A+'</body>';if (!FCKRegexLib.HtmlOpener.test(A)) A='<html dir="'+FCKConfig.ContentLangDirection+'">'+A+'</html>';if (!FCKRegexLib.HeadOpener.test(A)) A=A.replace(FCKRegexLib.HtmlOpener,'$&<head><title></title></head>');return A;}else{var B=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"';if (FCKBrowserInfo.IsIE&&FCKConfig.DocType.length>0&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) B+=' style="overflow-y: scroll"';B+='><head><title></title></head><body'+FCKConfig.GetBodyAttributes()+'>'+A+'</body></html>';return B;}},ConvertToDataFormat:function(A,B,C,D){var E=FCKXHtml.GetXHTML(A,!B,D);if (C&&FCKRegexLib.EmptyOutParagraph.test(E)) return '';return E;},FixHtml:function(A){return A;}};
+var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,DataProcessor:new FCKDataProcessor(),AttachToOnSelectionChange:function(A){this.Events.AttachEvent('OnSelectionChange',A);},GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){if (this.EditMode==1) return (this.StartupValue!=this.EditingArea.Textarea.value);else{if (!this.EditorDocument) return false;return (this.StartupValue!=this.EditorDocument.body.innerHTML);}},ResetIsDirty:function(){if (this.EditMode==1) this.StartupValue=this.EditingArea.Textarea.value;else if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length>0?'<base href="'+FCKConfig.BaseHref+'" _fcktemp="true"></base>':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86/*V*/) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45/*INS*/) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};A.SetKeystrokes([CTRL+8,true]);this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=FCKConfig.FirefoxSpellChecker;this.SetData(this.GetLinkedFieldValue(),true);FCKTools.AddEventListener(document,"keydown",this._TabKeyHandler);this.AttachToOnSelectionChange(_FCK_PaddingNodeListener);if (FCKBrowserInfo.IsGecko) this.AttachToOnSelectionChange(this._ExecCheckEmptyBlock);},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&&A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:if (!FCKListsLib.BlockElements[D.nodeName.toLowerCase()]&&!D.getAttribute('_fckfakelement')&&D.getAttribute('_moz_dirty')==null) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;};if (F){var G=D.parentNode;if (!E) E=G.insertBefore(B.createElement(A),D);E.appendChild(G.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetData:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B=FCK.EditorDocument;if (!B) return null;var C=FCKConfig.FullPage;var D=FCK.DataProcessor.ConvertToDataFormat(C?B.documentElement:B.body,!C,FCKConfig.IgnoreEmptyParagraphValue,A);D=FCK.ProtectEventsRestore(D);if (FCKBrowserInfo.IsIE) D=D.replace(FCKRegexLib.ToReplace,'$1');if (C){if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) D=FCK.DocTypeDeclaration+'\n'+D;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) D=FCK.XmlDeclaration+'\n'+D;};return FCKConfig.ProtectedSource.Revert(D);},UpdateLinkedField:function(){var A=FCK.GetXHTML(FCKConfig.FormatOutput);if (FCKConfig.HtmlEncodeOutput) A=FCKTools.HTMLEncode(A);FCK.LinkedField.value=A;FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);},RegisterDoubleClickHandler:function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;},OnAfterSetHTML:function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');},ProtectUrls:function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$& _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$& _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsArea,'$& _fcksavedurl=$1');return A;},ProtectEvents:function(A){return A.replace(FCKRegexLib.TagsWithEvent,_FCK_ProtectEvents_ReplaceTags);},ProtectEventsRestore:function(A){return A.replace(FCKRegexLib.ProtectedEvents,_FCK_ProtectEvents_RestoreEvents);},ProtectTags:function(A){var B=FCKConfig.ProtectedTags;if (FCKBrowserInfo.IsIE) B+=B.length>0?'|ABBR|XML|EMBED':'ABBR|XML|EMBED';var C;if (B.length>0){C=new RegExp('<('+B+')(?!\w|:)','gi');A=A.replace(C,'<FCK:$1');C=new RegExp('<\/('+B+')>','gi');A=A.replace(C,'<\/FCK:$1>');};B='META';if (FCKBrowserInfo.IsIE) B+='|HR';C=new RegExp('<(('+B+')(?=\\s|>|/)[\\s\\S]*?)/?>','gi');A=A.replace(C,'<FCK:$1 />');return A;},SetData:function(A,B){this.EditingArea.Mode=FCK.EditMode;if (FCKBrowserInfo.IsIE&&FCK.EditorDocument){FCK.EditorDocument.detachEvent("onselectionchange",Doc_OnSelectionChange);};if (FCK.EditMode==0){this._ForceResetIsDirty=(B===true);A=FCKConfig.ProtectedSource.Protect(A);A=FCK.DataProcessor.ConvertToHtml(A);A=A.replace(FCKRegexLib.InvalidSelfCloseTags,'$1></$2>');A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) A=A.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);var C='';if (!FCKConfig.FullPage) C+=_FCK_GetEditorAreaStyleTags();if (FCKBrowserInfo.IsIE) C+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C+='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';C+='<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';A=A.replace(FCKRegexLib.HeadCloser,C+'$&');this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(A);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;FCKDomTools.PaddingNode=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;if (B) this.ResetIsDirty();FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},HasFocus:false,RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C,D){if (!D) FCKUndo.SaveUndoStep();if (!C&&FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};if (!D) FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (FCKBrowserInfo.IsSafari&&FCK.EditorWindow&&A.IEquals('Paste')) return 0;if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else{return FCK.EditorDocument.queryCommandState(A)?1:0;}}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},Paste:function(A){if (FCK.Status!=2||!FCK.Events.FireEvent('OnPaste')) return false;return A||FCK._ExecPaste();},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A=FCKConfig.ScreenWidth*0.8;var B=FCKConfig.ScreenHeight*0.7;var C=(FCKConfig.ScreenWidth-A)/2;var D=window.open('',null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+A+',height='+B+',left='+C);var E;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) E=FCK.TempBaseTag+FCK.GetXHTML();else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body'+FCKConfig.GetBodyAttributes()+'>'+FCK.GetXHTML()+'</body></html>';};D.document.write(E);D.document.close();},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C=FCK.IsDirty();var D;if (B){FCKCommands.GetCommand('ShowBlocks').SaveState();if (!A&&FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();D=FCK.GetXHTML(FCKConfig.FormatSource);if (D==null) return false;}else D=this.EditingArea.Textarea.value;FCK.EditMode=B?1:0;FCK.SetData(D,!C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},InsertElement:function(A){if (typeof A=='string') A=this.EditorDocument.createElement(A);var B=A.nodeName.toLowerCase();var C=new FCKDomRange(this.EditorWindow);if (FCKListsLib.BlockElements[B]!=null){C.SplitBlock();C.InsertNode(A);var D=FCKDomTools.GetNextSourceElement(A,false,null,['hr','br','param','img','area','input']);if (!D&&FCKConfig.EnterMode!='br'){D=this.EditorDocument.body.appendChild(this.EditorDocument.createElement(FCKConfig.EnterMode));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);};if (FCKListsLib.EmptyElements[B]==null) C.MoveToElementEditStart(A);else if (D) C.MoveToElementEditStart(D);else C.MoveToPosition(A,4);if (FCKBrowserInfo.IsGecko){if (D) D.scrollIntoView(false);A.scrollIntoView(false);}}else{C.MoveToSelection();C.DeleteContents();C.InsertNode(A);C.SetStart(A,4);C.SetEnd(A,4);};C.Select();C.Release();this.Focus();return A;},_InsertBlockElement:function(A){},_IsFunctionKey:function(A){if (A>=16&&A<=20) return true;if (A==27||(A>=33&&A<=40)) return true;if (A==45) return true;return false;},_KeyDownListener:function(A){if (!A) A=FCK.EditorWindow.event;if (FCK.EditorWindow){if (!FCK._IsFunctionKey(A.keyCode)&&!(A.ctrlKey||A.metaKey)&&!(A.keyCode==46)) FCK._KeyDownUndo();};return true;},_KeyDownUndo:function(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.TypesCount++;FCKUndo.Changed=1;if (FCKUndo.TypesCount>FCKUndo.MaxTypes){FCKUndo.TypesCount=0;FCKUndo.SaveUndoStep();}},_TabKeyHandler:function(A){if (!A) A=window.event;var B=A.keyCode;if (B==9&&FCK.EditMode!=0){if (FCKBrowserInfo.IsIE){var C=document.selection.createRange();if (C.parentElement()!=FCK.EditingArea.Textarea) return true;C.text='\t';C.select();}else{var a=[];var D=FCK.EditingArea.Textarea;var E=D.selectionStart;var F=D.selectionEnd;a.push(D.value.substr(0,E));a.push('\t');a.push(D.value.substr(F));D.value=a.join('');D.setSelectionRange(E+1,E+1);};if (A.preventDefault) return A.preventDefault();return A.returnValue=false;};return true;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML=FCK.GetData;FCK.SetHTML=FCK.SetData;FCK.InsertElementAndGetIt=FCK.CreateElement=FCK.InsertElement;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt="'+encodeURIComponent(A)+'"';};function _FCK_ProtectEvents_RestoreEvents(A,B){return decodeURIComponent(B);};function _FCK_MouseEventsListener(A){if (!A) A=window.event;if (A.type=='mousedown') FCK.MouseDownFlag=true;else if (A.type=='mouseup') FCK.MouseDownFlag=false;else if (A.type=='mousemove') FCK.Events.FireEvent('OnMouseMove',A);};function _FCK_PaddingNodeListener(){if (FCKConfig.EnterMode.IEquals('br')) return;FCKDomTools.EnforcePaddingNode(FCK.EditorDocument,FCKConfig.EnterMode);if (!FCKBrowserInfo.IsIE&&FCKDomTools.PaddingNode){var A=FCK.EditorWindow.getSelection();if (A&&A.rangeCount==1){var B=A.getRangeAt(0);if (B.collapsed&&B.startContainer==FCK.EditorDocument.body&&B.startOffset==0){B.selectNodeContents(FCKDomTools.PaddingNode);B.collapse(true);A.removeAllRanges();A.addRange(B);}}}else if (FCKDomTools.PaddingNode){var C=FCKSelection.GetParentElement();var D=FCKDomTools.PaddingNode;if (C&&C.nodeName.IEquals('body')){if (FCK.EditorDocument.body.childNodes.length==1&&FCK.EditorDocument.body.firstChild==D){var B=FCK.EditorDocument.body.createTextRange();var F=false;if (!D.childNodes.firstChild){D.appendChild(D.ownerDocument.createTextNode('\ufeff'));F=true;};B.moveToElementText(D);B.select();if (F) B.pasteHTML('');}}}};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();FCK.MouseDownFlag=false;FCKTools.AddEventListener(FCK.EditorDocument,'mousemove',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mouseup',_FCK_MouseEventsListener);if (FCKBrowserInfo.IsSafari){var A=function(evt){if (!(evt.ctrlKey||evt.metaKey)) return;if (FCK.EditMode!=0) return;switch (evt.keyCode){case 89:FCKUndo.Redo();break;case 90:FCKUndo.Undo();break;}};FCKTools.AddEventListener(FCK.EditorDocument,'keyup',A);};FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode,FCKConfig.TabSpaces);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);if (FCK._ForceResetIsDirty) FCK.ResetIsDirty();if (FCKBrowserInfo.IsIE&&FCK.HasFocus) FCK.EditorDocument.body.setActive();FCK.OnAfterSetHTML();FCKCommands.GetCommand('ShowBlocks').RestoreState();if (FCK.Status!=0) return;if (FCKConfig.Debug) FCKDebug._GetWindow();FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){var A='';var B=FCKConfig.EditorAreaCSS;var C=FCKConfig.EditorAreaStyles;for (var i=0;i<B.length;i++) A+='<link href="'+B[i]+'" rel="stylesheet" type="text/css" />';if (C&&C.length>0) A+="<style>"+C+"</style>";return A;};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){switch (B){case 'Paste':return!FCK.Paste();case 'Cut':FCKUndo.SaveUndoStep();return false;}}else{if (B.Equals('Paste','Undo','Redo','SelectAll','Cut')) return false;};var C=FCK.Commands.GetCommand(B);return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&&B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i<this.Elements.length) this.Elements[i++]=null;this.Elements.length=0;}};var FCKFocusManager=FCK.FocusManager={IsLocked:false,AddWindow:function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else if (FCKBrowserInfo.IsSafari) C=A;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);},RemoveWindow:function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);},Lock:function(){this.IsLocked=true;},Unlock:function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;},_ResetTimer:function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&&FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent("OnBlur");}};function FCKFocusManager_Win_OnFocus_Area(){FCK.Focus();FCKFocusManager_Win_OnFocus();};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}};
+FCK.Description="FCKeditor for Gecko Browsers";FCK.InitializeBehaviors=function(){if (FCKBrowserInfo.IsGecko) Window_OnResize();FCKFocusManager.AddWindow(this.EditorWindow);this.ExecOnSelectionChange=function(){FCK.Events.FireEvent("OnSelectionChange");};this._ExecDrop=function(evt){if (FCK.MouseDownFlag){FCK.MouseDownFlag=false;return;};if (FCKConfig.ForcePasteAsPlainText){if (evt.dataTransfer){var A=evt.dataTransfer.getData('Text');A=FCKTools.HTMLEncode(A);A=FCKTools.ProcessLineBreaks(window,FCKConfig,A);FCK.InsertHtml(A);}else if (FCKConfig.ShowDropDialog) FCK.PasteAsPlainText();}else if (FCKConfig.ShowDropDialog) FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security');evt.preventDefault();evt.stopPropagation();};this._ExecCheckCaret=function(evt){if (FCK.EditMode!=0) return;if (evt.type=='keypress'){var B=evt.keyCode;if (B<33||B>40) return;};var C=function(H){if (H.nodeType!=1) return false;var D=H.tagName.toLowerCase();return (FCKListsLib.BlockElements[D]||FCKListsLib.EmptyElements[D]);};var E=function(){var F=FCK.EditorWindow.getSelection();var G=F.getRangeAt(0);if (!G||!G.collapsed) return;var H=G.endContainer;if (H.nodeType!=3) return;if (H.nodeValue.length!=G.endOffset) return;var I=H.parentNode.tagName.toLowerCase();if (!(I=='a'||(!(FCKListsLib.BlockElements[I]||FCKListsLib.NonEmptyBlockElements[I])&&B==35))) return;var J=FCKTools.GetNextTextNode(H,H.parentNode,C);if (J) return;G=FCK.EditorDocument.createRange();J=FCKTools.GetNextTextNode(H,H.parentNode.parentNode,C);if (J){if (FCKBrowserInfo.IsOpera&&B==37) return;G.setStart(J,0);G.setEnd(J,0);}else{while (H.parentNode&&H.parentNode!=FCK.EditorDocument.body&&H.parentNode!=FCK.EditorDocument.documentElement&&H==H.parentNode.lastChild&&(!FCKListsLib.BlockElements[H.parentNode.tagName.toLowerCase()]&&!FCKListsLib.NonEmptyBlockElements[H.parentNode.tagName.toLowerCase()])) H=H.parentNode;if (FCKListsLib.BlockElements[I]||FCKListsLib.EmptyElements[I]||H==FCK.EditorDocument.body){G.setStart(H,H.childNodes.length);G.setEnd(H,H.childNodes.length);}else{var K=H.nextSibling;while (K){if (K.nodeType!=1){K=K.nextSibling;continue;};var L=K.tagName.toLowerCase();if (FCKListsLib.BlockElements[L]||FCKListsLib.EmptyElements[L]||FCKListsLib.NonEmptyBlockElements[L]) break;K=K.nextSibling;};var M=FCK.EditorDocument.createTextNode('');if (K) H.parentNode.insertBefore(M,K);else H.parentNode.appendChild(M);G.setStart(M,0);G.setEnd(M,0);}};F.removeAllRanges();F.addRange(G);FCK.Events.FireEvent("OnSelectionChange");};setTimeout(E,1);};this.ExecOnSelectionChangeTimer=function(){if (FCK.LastOnChangeTimer) window.clearTimeout(FCK.LastOnChangeTimer);FCK.LastOnChangeTimer=window.setTimeout(FCK.ExecOnSelectionChange,100);};this.EditorDocument.addEventListener('mouseup',this.ExecOnSelectionChange,false);this.EditorDocument.addEventListener('keyup',this.ExecOnSelectionChangeTimer,false);this._DblClickListener=function(e){FCK.OnDoubleClick(e.target);e.stopPropagation();};this.EditorDocument.addEventListener('dblclick',this._DblClickListener,true);this.EditorDocument.addEventListener('keydown',this._KeyDownListener,false);if (FCKBrowserInfo.IsGecko){this.EditorWindow.addEventListener('dragdrop',this._ExecDrop,true);}else if (FCKBrowserInfo.IsSafari){var N=function(evt){ if (!FCK.MouseDownFlag) evt.returnValue=false;};this.EditorDocument.addEventListener('dragenter',N,true);this.EditorDocument.addEventListener('dragover',N,true);this.EditorDocument.addEventListener('drop',this._ExecDrop,true);this.EditorDocument.addEventListener('mousedown',function(ev){var O=ev.srcElement;if (O.nodeName.IEquals('IMG','HR','INPUT','TEXTAREA','SELECT')){FCKSelection.SelectNode(O);}},true);this.EditorDocument.addEventListener('mouseup',function(ev){if (ev.srcElement.nodeName.IEquals('INPUT','TEXTAREA','SELECT')) ev.preventDefault()},true);this.EditorDocument.addEventListener('click',function(ev){if (ev.srcElement.nodeName.IEquals('INPUT','TEXTAREA','SELECT')) ev.preventDefault()},true);};if (FCKBrowserInfo.IsGecko||FCKBrowserInfo.IsOpera){this.EditorDocument.addEventListener('keypress',this._ExecCheckCaret,false);this.EditorDocument.addEventListener('click',this._ExecCheckCaret,false);};FCK.ContextMenu._InnerContextMenu.SetMouseClickWindow(FCK.EditorWindow);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument);};FCK.MakeEditable=function(){this.EditingArea.MakeEditable();};function Document_OnContextMenu(e){if (!e.target._FCKShowContextMenu) e.preventDefault();};document.oncontextmenu=Document_OnContextMenu;FCK._BaseGetNamedCommandState=FCK.GetNamedCommandState;FCK.GetNamedCommandState=function(A){switch (A){case 'Unlink':return FCKSelection.HasAncestorNode('A')?0:-1;default:return FCK._BaseGetNamedCommandState(A);}};FCK.RedirectNamedCommands={Print:true,Paste:true,Cut:true,Copy:true};FCK.ExecuteRedirectedNamedCommand=function(A,B){switch (A){case 'Print':FCK.EditorWindow.print();break;case 'Paste':try{if (FCKBrowserInfo.IsSafari) throw '';if (FCK.Paste()) FCK.ExecuteNamedCommand('Paste',null,true);}catch (e) { FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security');};break;case 'Cut':try { FCK.ExecuteNamedCommand('Cut',null,true);}catch (e) { alert(FCKLang.PasteErrorCut);};break;case 'Copy':try { FCK.ExecuteNamedCommand('Copy',null,true);}catch (e) { alert(FCKLang.PasteErrorCopy);};break;default:FCK.ExecuteNamedCommand(A,B);}};FCK._ExecPaste=function(){FCKUndo.SaveUndoStep();if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};return true;};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);FCKUndo.SaveUndoStep();this.EditorDocument.execCommand('inserthtml',false,A);this.Focus();this.Events.FireEvent("OnSelectionChange");};FCK.PasteAsPlainText=function(){FCKTools.RunFunction(FCKDialog.OpenDialog,FCKDialog,['FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText']);};FCK.GetClipboardHTML=function(){return '';};FCK.CreateLink=function(A,B){var C=[];FCK.ExecuteNamedCommand('Unlink',null,false,!!B);if (A.length>0){var D='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',D,false,!!B);var E=this.EditorDocument.evaluate("//a[@href='"+D+"']",this.EditorDocument.body,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for (var i=0;i<E.snapshotLength;i++){var F=E.snapshotItem(i);F.href=A;if (D==F.innerHTML) F.innerHTML='';C.push(F);}};return C;};FCK._FillEmptyBlock=function(A){if (!A||A.nodeType!=1) return;var B=A.tagName.toLowerCase();if (B!='p'&&B!='div') return;if (A.firstChild) return;FCKTools.AppendBogusBr(A);};FCK._ExecCheckEmptyBlock=function(){FCK._FillEmptyBlock(FCK.EditorDocument.body.firstChild);var A=FCK.EditorWindow.getSelection();if (!A||A.rangeCount<1) return;var B=A.getRangeAt(0);FCK._FillEmptyBlock(B.startContainer);};
+var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi, '/');var sFullProtocol=document.location.href.match(/^(file\:\/{2,3})/)[1];if (FCKBrowserInfo.IsOpera) sFullProtocol+='localhost/';FCKConfig.BasePath=sFullProtocol+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;}else{FCKConfig.BasePath=document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=document.location.protocol+'//'+document.location.host+FCKConfig.BasePath;};FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig={};var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&');for (var i=0;i<B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=decodeURIComponent(C[0]);var E=decodeURIComponent(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()=="true") this.PageConfig[D]=true;else if (E.toLowerCase()=="false") this.PageConfig[D]=false;else if (E.length>0&&!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) {/*Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error).*/}};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';if (typeof(A.EditorAreaCSS)=='string') A.EditorAreaCSS=A.EditorAreaCSS.split(',');var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;else if (typeof(B)=='string') A.ToolbarComboPreviewCSS=[B];};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource._CodeTag=(new Date()).valueOf();FCKConfig.ProtectedSource.RegexEntries=[/<!--[\s\S]*?-->/g,/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi,/<object[\s\S]+?<\/object>/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){var B=this._CodeTag;function _Replace(protectedSource){var C=FCKTempBin.AddElement(protectedSource);return '<!--{'+B+C+'}-->';};for (var i=0;i<this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};var D=new RegExp("(<|<)!--\\{"+this._CodeTag+"(\\d+)\\}--(>|>)","g");return A.replace(D,_Replace);};FCKConfig.GetBodyAttributes=function(){var A='';if (this.BodyId&&this.BodyId.length>0) A+=' id="'+this.BodyId+'"';if (this.BodyClass&&this.BodyClass.length>0) A+=' class="'+this.BodyClass+'"';return A;};FCKConfig.ApplyBodyAttributes=function(A){if (this.BodyId&&this.BodyId.length>0) A.id=FCKConfig.BodyId;if (this.BodyClass&&this.BodyClass.length>0) A.className+=' '+FCKConfig.BodyClass;};
var FCKDebug={};FCKDebug._GetWindow=function(){if (!this.DebugWindow||this.DebugWindow.closed) this.DebugWindow=window.open(FCKConfig.BasePath+'fckdebug.html','FCKeditorDebug','menubar=no,scrollbars=yes,resizable=yes,location=no,toolbar=no,width=600,height=500',true);return this.DebugWindow;};FCKDebug.Output=function(A,B,C){if (!FCKConfig.Debug) return;try{this._GetWindow().Output(A,B);}catch (e) {}};FCKDebug.OutputObject=function(A,B){if (!FCKConfig.Debug) return;try{this._GetWindow().OutputObject(A,B);}catch (e) {}}
-var FCKDomTools={MoveChildren:function(A,B){if (A==B) return;var C;while ((C=A.firstChild)) B.appendChild(A.removeChild(C));},TrimNode:function(A,B){this.LTrimNode(A);this.RTrimNode(A,B);},LTrimNode:function(A){var B;while ((B=A.firstChild)){if (B.nodeType==3){var C=B.nodeValue.LTrim();var D=B.nodeValue.length;if (C.length==0){A.removeChild(B);continue;}else if (C.length<D){B.splitText(D-C.length);A.removeChild(A.firstChild);}};break;}},RTrimNode:function(A,B){var C;while ((C=A.lastChild)){switch (C.nodeType){case 1:if (C.nodeName.toUpperCase()=='BR'&&(B||C.getAttribute('type',2)=='_moz')){A.removeChild(C);continue;};break;case 3:var D=C.nodeValue.RTrim();var E=C.nodeValue.length;if (D.length==0){A.removeChild(C);continue;}else if (D.length<E){C.splitText(D.length);A.removeChild(A.lastChild);}};break;}},RemoveNode:function(A,B){if (B){var C;while ((C=A.firstChild)) A.parentNode.insertBefore(A.removeChild(C),A);};return A.parentNode.removeChild(A);},GetFirstChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.firstChild;while(C){if (C.nodeType==1&&C.tagName.Equals.apply(C.tagName,B)) return C;C=C.nextSibling;};return null;},GetLastChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.lastChild;while(C){if (C.nodeType==1&&(!B||C.tagName.Equals(B))) return C;C=C.previousSibling;};return null;},GetPreviousSourceElement:function(A,B,C,D){if (!A) return null;if (C&&A.nodeType==1&&A.nodeName.IEquals(C)) return null;if (A.previousSibling) A=A.previousSibling;else return this.GetPreviousSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.lastChild) A=A.lastChild;else return this.GetPreviousSourceElement(A,B,C,D);};return null;},GetNextSourceElement:function(A,B,C,D){if (!A) return null;if (A.nextSibling) A=A.nextSibling;else return this.GetNextSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.firstChild) A=A.firstChild;else return this.GetNextSourceElement(A,B,C,D);};return null;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.splice(0,0,A);A=A.parentNode;};return B;},GetIndexOf:function(A){var B=A.parentNode?A.parentNode.firstChild:null;var C=-1;while (B){C++;if (B==A) return C;B=B.nextSibling;};return-1;}};
-var GECKO_BOGUS='<br type="_moz">';var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.AppendStyleSheet=function(A,B){if (typeof(B)=='string') return this._AppendStyleSheet(A,B);else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&&!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.FixDocumentParentWindow=function(A){A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&');A=A.replace(/</g,'<');A=A.replace(/>/g,'>');return A;};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i<arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||'CSS1Compat'));};FCKTools.ArgumentsToArray=function(A,B,C){B=B||0;C=C||A.length;var D=[];for (var i=B;i<B+C&&i<A.length;i++) D.push(A[i]);return D;};FCKTools.CloneObject=function(A){var B=function() {};B.prototype=A;return new B;};
-FCKTools.CancelEvent=function(e){if (e) e.preventDefault();};FCKTools.DisableSelection=function(A){if (FCKBrowserInfo.IsGecko) A.style.MozUserSelect='none';else A.style.userSelect='none';};FCKTools._AppendStyleSheet=function(A,B){var e=A.createElement('LINK');e.rel='stylesheet';e.type='text/css';e.href=B;A.getElementsByTagName("HEAD")[0].appendChild(e);return e;};FCKTools.ClearElementAttributes=function(A){for (var i=0;i<A.attributes.length;i++){A.removeAttribute(A.attributes[i].name,0);}};FCKTools.GetAllChildrenIds=function(A){var B=[];var C=function(parent){for (var i=0;i<parent.childNodes.length;i++){var D=parent.childNodes[i].id;if (D&&D.length>0) B[B.length]=D;C(parent.childNodes[i]);}};C(A);return B;};FCKTools.RemoveOuterTags=function(e){var A=e.ownerDocument.createDocumentFragment();for (var i=0;i<e.childNodes.length;i++) A.appendChild(e.childNodes[i].cloneNode(true));e.parentNode.replaceChild(A,e);};FCKTools.CreateXmlObject=function(A){switch (A){case 'XmlHttp':return new XMLHttpRequest();case 'DOMDocument':return document.implementation.createDocument('','',null);};return null;};FCKTools.GetScrollPosition=function(A){return { X:A.pageXOffset,Y:A.pageYOffset };};FCKTools.AddEventListener=function(A,B,C){A.addEventListener(B,C,false);};FCKTools.RemoveEventListener=function(A,B,C){A.removeEventListener(B,C,false);};FCKTools.AddEventListenerEx=function(A,B,C,D){A.addEventListener(B,function(e){C.apply(A,[e].concat(D||[]));},false);};FCKTools.GetViewPaneSize=function(A){return { Width:A.innerWidth,Height:A.innerHeight };};FCKTools.SaveStyles=function(A){var B={};if (A.className.length>0){B.Class=A.className;A.className='';};var C=A.getAttribute('style');if (C&&C.length>0){B.Inline=C;A.setAttribute('style','',0);};return B;};FCKTools.RestoreStyles=function(A,B){A.className=B.Class||'';if (B.Inline) A.setAttribute('style',B.Inline,0);else A.removeAttribute('style',0);};FCKTools.RegisterDollarFunction=function(A){A.$=function(id){return this.document.getElementById(id);};};FCKTools.AppendElement=function(A,B){return A.appendChild(A.ownerDocument.createElement(B));};FCKTools.GetElementPosition=function(A,B){var c={ X:0,Y:0 };var C=B||window;var D=FCKTools.GetElementWindow(A);while (A){var E=D.getComputedStyle(A,'').position;if (E&&E!='static'&&A.style.zIndex!=FCKConfig.FloatingPanelsZIndex) break;c.X+=A.offsetLeft-A.scrollLeft;c.Y+=A.offsetTop-A.scrollTop;if (A.offsetParent) A=A.offsetParent;else{if (D!=C){A=D.frameElement;if (A) D=FCKTools.GetElementWindow(A);}else{c.X+=A.scrollLeft;c.Y+=A.scrollTop;break;}}};return c;}
-var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='var FCKeditorAPI = {Version : "2.4",VersionBuild : "1148",__Instances : new Object(),GetInstance : function( name ){return this.__Instances[ name ];},_FormSubmit : function(){for ( var name in FCKeditorAPI.__Instances ){var oEditor = FCKeditorAPI.__Instances[ name ] ;if ( oEditor.GetParentForm() == this )oEditor.UpdateLinkedField() ;}this._FCKOriginalSubmit() ;},_FunctionQueue : {Functions : new Array(),IsRunning : false,Add : function( f ){this.Functions.push( f );if ( !this.IsRunning )this.StartNext();},StartNext : function(){var aQueue = this.Functions ;if ( aQueue.length > 0 ){this.IsRunning = true;aQueue[0].call();}else this.IsRunning = false;},Remove : function( f ){var aQueue = this.Functions;var i = 0, fFunc;while( (fFunc = aQueue[ i ]) ){if ( fFunc == f )aQueue.splice( i,1 );i++ ;}this.StartNext();}}}';if (A.execScript) A.execScript(B,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if (FCKBrowserInfo.IsSafari){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;};FCKeditorAPI.__Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&&(typeof(A.submit)=='function'||(!A.submit.tagName&&!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){delete FCKeditorAPI.__Instances[FCK.Name];};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);
-var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i<A.length;i++){var B=document.createElement('img');B.onload=B.onerror=_FCKImagePreloader_OnImage;B._FCKImagePreloader=this;B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(){var A=this._FCKImagePreloader;if ((--A._PreloadCount)==0&&A.OnComplete) A.OnComplete();this._FCKImagePreloader=null;}
-var FCKRegexLib={AposEntity:/'/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BodyContents:/([\s\S]*\<body[^\>]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/(\s*FCK__[A-Za-z]*\s*)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div)>\s*<\/\1>$/i,TagBody:/></,StrongOpener:/<STRONG([ \>])/gi,StrongCloser:/<\/STRONG>/gi,EmOpener:/<EM([ \>])/gi,EmCloser:/<\/EM>/gi,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/(?:(<img(?=\s).*?\ssrc=)("|')(.*?)\2)|(?:(<img\s.*?src=)([^"'][^ >]+))/gi,ProtectUrlsA:/(?:(<a(?=\s).*?\shref=)("|')(.*?)\2)|(?:(<a\s.*?href=)([^"'][^ >]+))/gi,Html4DocType:/HTML 4\.0 Transitional/i,DocTypeTag:/<!DOCTYPE[^>]*>/i,TagsWithEvent:/<[^\>]+ on\w+[\s\r\n]*=[\s\r\n]*?('|")[\s\S]+?\>/g,EventAttributes:/\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|")([\s\S]*?)\2/g,ProtectedEvents:/\s\w+_fckprotectedatt="([^"]+)"/g,StyleProperties:/\S+\s*:/g};var FCKListsLib={BlockElements:{ address:1,blockquote:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 },NonEmptyBlockElements:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,address:1,pre:1,ol:1,ul:1,li:1,td:1,th:1 },PathBlockElements:{ address:1,blockquote:1,div:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1 },InlineChildReqElements:{ abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strong:1,sub:1,sup:1,tt:1,'var':1 },EmptyElements:{ base:1,meta:1,link:1,hr:1,br:1,param:1,img:1,area:1,input:1 }};
-var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French',gl:'Galician',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',it:'Italian',ja:'Japanese',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},GetActiveLanguage:function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length>=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length>=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;},TranslateElements:function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i<e.length;i++){if ((E=e[i].getAttribute('fckLang'))){if ((s=FCKLang[E])){if (D) s=FCKTools.HTMLEncode(s);eval('e[i].'+C+' = s');}}}},TranslatePage:function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);},Initialize:function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage={};this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}};
-var FCKXHtmlEntities={};FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';var B,e;if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.Entities={' ':'nbsp','¡':'iexcl','¢':'cent','£':'pound','¤':'curren','Â¥':'yen','¦':'brvbar','§':'sect','¨':'uml','©':'copy','ª':'ordf','«':'laquo','¬':'not','Â':'shy','®':'reg','¯':'macr','°':'deg','±':'plusmn','²':'sup2','³':'sup3','´':'acute','µ':'micro','¶':'para','·':'middot','¸':'cedil','¹':'sup1','º':'ordm','»':'raquo','¼':'frac14','½':'frac12','¾':'frac34','¿':'iquest','×':'times','÷':'divide','Æ’':'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','"':'quot','ˆ':'circ','Ëœ':'tilde',' ':'ensp',' ':'emsp',' ':'thinsp','‌':'zwnj','â€':'zwj','‎':'lrm','â€':'rlm','–':'ndash','—':'mdash','‘':'lsquo','’':'rsquo','‚':'sbquo','“':'ldquo','â€':'rdquo','„':'bdquo','†':'dagger','‡':'Dagger','‰':'permil','‹':'lsaquo','›':'rsaquo','€':'euro'};for (e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){B={'À':'Agrave','Ã':'Aacute','Â':'Acirc','Ã':'Atilde','Ä':'Auml','Ã…':'Aring','Æ':'AElig','Ç':'Ccedil','È':'Egrave','É':'Eacute','Ê':'Ecirc','Ë':'Euml','ÃŒ':'Igrave','Ã':'Iacute','ÃŽ':'Icirc','Ã':'Iuml','Ã':'ETH','Ñ':'Ntilde','Ã’':'Ograve','Ó':'Oacute','Ô':'Ocirc','Õ':'Otilde','Ö':'Ouml','Ø':'Oslash','Ù':'Ugrave','Ú':'Uacute','Û':'Ucirc','Ãœ':'Uuml','Ã':'Yacute','Þ':'THORN','ß':'szlig','à ':'agrave','á':'aacute','â':'acirc','ã':'atilde','ä':'auml','Ã¥':'aring','æ':'aelig','ç':'ccedil','è':'egrave','é':'eacute','ê':'ecirc','ë':'euml','ì':'igrave','Ã':'iacute','î':'icirc','ï':'iuml','ð':'eth','ñ':'ntilde','ò':'ograve','ó':'oacute','ô':'ocirc','õ':'otilde','ö':'ouml','ø':'oslash','ù':'ugrave','ú':'uacute','û':'ucirc','ü':'uuml','ý':'yacute','þ':'thorn','ÿ':'yuml','Å’':'OElig','Å“':'oelig','Å ':'Scaron','Å¡':'scaron','Ÿ':'Yuml'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){B={'Α':'Alpha','Î’':'Beta','Γ':'Gamma','Δ':'Delta','Ε':'Epsilon','Ζ':'Zeta','Η':'Eta','Θ':'Theta','Ι':'Iota','Κ':'Kappa','Λ':'Lambda','Îœ':'Mu','Î':'Nu','Ξ':'Xi','Ο':'Omicron','Î ':'Pi','Ρ':'Rho','Σ':'Sigma','Τ':'Tau','Î¥':'Upsilon','Φ':'Phi','Χ':'Chi','Ψ':'Psi','Ω':'Omega','α':'alpha','β':'beta','γ':'gamma','δ':'delta','ε':'epsilon','ζ':'zeta','η':'eta','θ':'theta','ι':'iota','κ':'kappa','λ':'lambda','μ':'mu','ν':'nu','ξ':'xi','ο':'omicron','Ï€':'pi','Ï':'rho','Ï‚':'sigmaf','σ':'sigma','Ï„':'tau','Ï…':'upsilon','φ':'phi','χ':'chi','ψ':'psi','ω':'omega'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={};A=' ';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&&D.length>0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');}
-var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKXHtmlEntities.Initialize();var D=FCK.IsDirty();this._CreateNode=FCKConfig.ForceStrongEm?FCKXHtml_CreateNode_StrongEm:FCKXHtml_CreateNode_Normal;FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;E=E.substr(7,E.length-15).Trim();if (FCKBrowserInfo.IsGecko) E=E.replace(/<br\/>$/,'');E=E.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i<FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&');if (!D) FCK.ResetIsDirty();return E;};FCKXHtml._AppendAttribute=function(A,B,C){try{if (C==undefined||C==null) C='';else if (C.replace){if (FCKConfig.ForceSimpleAmpersand) C=C.replace(/&/g,'___FCKAmp___');C=C.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity);};var D=this.XML.createAttribute(B);D.value=C;A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){if (C) FCKDomTools.TrimNode(B);var D=0;var E=B.firstChild;while (E){if (this._AppendNode(A,E)) D++;E=E.nextSibling;};if (D==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,'nbsp');return A;};var F=A.nodeName;if (FCKListsLib.InlineChildReqElements[F]) return null;if (!FCKListsLib.EmptyElements[F]) A.appendChild(this.XML.createTextNode(''));};return A;};FCKXHtml._AppendNode=function(A,B){if (!B) return false;switch (B.nodeType){case 1:if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.hasAttribute('_moz_editor_bogus_node')) return false;if (B.getAttribute('_fcktemp')) return false;var C=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&&B.scopeName!='HTML'&&B.scopeName!='FCK') C=B.scopeName.toLowerCase()+':'+C;}else{if (C.StartsWith('fck:')) C=C.Remove(0,4);};if (!FCKRegexLib.ElementName.test(C)) return false;if (C=='br'&&(B.getAttribute('type',2)=='_moz'||!B.nextSibling)) return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var D=this._CreateNode(C);FCKXHtml._AppendAttributes(A,B,D,C);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var E=FCKXHtml.TagProcessors[C];if (E) D=E(D,B,A);else D=this._AppendChildNodes(D,B,Boolean(FCKListsLib.NonEmptyBlockElements[C]));if (!D) break;A.appendChild(D);break;case 3:return this._AppendTextNode(A,B.nodeValue.ReplaceNewLineChars(' '));case 8:if (FCKBrowserInfo.IsIE&&!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) {/*Do nothing... probably this is a wrong format comment.*/};break;default:A.appendChild(this.XML.createComment("Element not supported - Type: "+B.nodeType+" Name: "+B.nodeName));break;};return true;};function FCKXHtml_CreateNode_StrongEm(A){switch (A){case 'b':A='strong';break;case 'i':A='em';break;};return this.XML.createElement(A);};function FCKXHtml_CreateNode_Normal(A){return this.XML.createElement(A);};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.AddItem(A);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){var C=B.length>0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml._RemoveAttribute=function(A,B,C){var D=A.attributes.getNamedItem(C);if (D&&B.test(D.nodeValue)){var E=D.nodeValue.replace(B,'');if (E.length==0) A.attributes.removeNamedItem(C);else D.nodeValue=E;}};FCKXHtml.TagProcessors={img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);return A;},a:function(A,B){if (B.innerHTML.Trim().length==0&&!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){FCKXHtml._RemoveAttribute(A,FCKRegexLib.FCK_Class,'class');if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};FCKXHtml._AppendChildNodes(A,B,false);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.innerHTML)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;},table:function(A,B){if (FCKBrowserInfo.IsIE) FCKXHtml._RemoveAttribute(A,FCKRegexLib.FCK_Class,'class');FCKXHtml._AppendChildNodes(A,B,false);return A;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&&D.nodeType==3) D=D.previousSibling;if (D&&D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};FCKXHtml._AppendChildNodes(A,B);return A;},span:function(A,B){if (B.innerHTML.length==0) return false;FCKXHtml._AppendChildNodes(A,B,false);return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol;
-FCKXHtml._GetMainXmlString=function(){var A=new XMLSerializer();return A.serializeToString(this.MainNode);};FCKXHtml._AppendAttributes=function(A,B,C){var D=B.attributes;for (var n=0;n<D.length;n++){var E=D[n];if (E.specified){var F=E.nodeName.toLowerCase();var G;if (F.StartsWith('_fck')) continue;else if (F.indexOf('_moz')==0) continue;else if (F=='class') G=E.nodeValue;else if (E.nodeValue===true) G=F;else G=B.getAttribute(F,2);this._AppendAttribute(C,F,G);}}}
+var FCKDomTools={MoveChildren:function(A,B,C){if (A==B) return;var D;if (C){while ((D=A.lastChild)) B.insertBefore(A.removeChild(D),B.firstChild);}else{while ((D=A.firstChild)) B.appendChild(A.removeChild(D));}},MoveNode:function(A,B,C){if (C) B.insertBefore(FCKDomTools.RemoveNode(A),B.firstChild);else B.appendChild(FCKDomTools.RemoveNode(A));},TrimNode:function(A){this.LTrimNode(A);this.RTrimNode(A);},LTrimNode:function(A){var B;while ((B=A.firstChild)){if (B.nodeType==3){var C=B.nodeValue.LTrim();var D=B.nodeValue.length;if (C.length==0){A.removeChild(B);continue;}else if (C.length<D){B.splitText(D-C.length);A.removeChild(A.firstChild);}};break;}},RTrimNode:function(A){var B;while ((B=A.lastChild)){if (B.nodeType==3){var C=B.nodeValue.RTrim();var D=B.nodeValue.length;if (C.length==0){B.parentNode.removeChild(B);continue;}else if (C.length<D){B.splitText(C.length);A.lastChild.parentNode.removeChild(A.lastChild);}};break;};if (!FCKBrowserInfo.IsIE&&!FCKBrowserInfo.IsOpera){B=A.lastChild;if (B&&B.nodeType==1&&B.nodeName.toLowerCase()=='br'){B.parentNode.removeChild(B);}}},RemoveNode:function(A,B){if (B){var C;while ((C=A.firstChild)) A.parentNode.insertBefore(A.removeChild(C),A);};return A.parentNode.removeChild(A);},GetFirstChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.firstChild;while(C){if (C.nodeType==1&&C.tagName.Equals.apply(C.tagName,B)) return C;C=C.nextSibling;};return null;},GetLastChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.lastChild;while(C){if (C.nodeType==1&&(!B||C.tagName.Equals(B))) return C;C=C.previousSibling;};return null;},GetPreviousSourceElement:function(A,B,C,D){if (!A) return null;if (C&&A.nodeType==1&&A.nodeName.IEquals(C)) return null;if (A.previousSibling) A=A.previousSibling;else return this.GetPreviousSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.lastChild) A=A.lastChild;else return this.GetPreviousSourceElement(A,B,C,D);};return null;},GetNextSourceElement:function(A,B,C,D,E){while((A=this.GetNextSourceNode(A,E))){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (D&&A.nodeName.IEquals(D)) return this.GetNextSourceElement(A,B,C,D);return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;};return null;},GetNextSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&&A.firstChild) E=A.firstChild;else{if (D&&A==D) return null;E=A.nextSibling;if (!E&&(!D||D!=A.parentNode)) return this.GetNextSourceNode(A.parentNode,true,C,D);};if (C&&E&&E.nodeType!=C) return this.GetNextSourceNode(E,false,C,D);return E;},GetPreviousSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&&A.lastChild) E=A.lastChild;else{if (D&&A==D) return null;E=A.previousSibling;if (!E&&(!D||D!=A.parentNode)) return this.GetPreviousSourceNode(A.parentNode,true,C,D);};if (C&&E&&E.nodeType!=C) return this.GetPreviousSourceNode(E,false,C,D);return E;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.unshift(A);A=A.parentNode;};return B;},GetCommonParents:function(A,B){var C=this.GetParents(A);var D=this.GetParents(B);var E=[];for (var i=0;i<C.length;i++){if (C[i]==D[i]) E.push(C[i]);};return E;},GetCommonParentNode:function(A,B,C){var D={};if (!C.pop) C=[C];while (C.length>0) D[C.pop().toLowerCase()]=1;var E=this.GetCommonParents(A,B);var F=null;while ((F=E.pop())){if (D[F.nodeName.toLowerCase()]) return F;};return null;},GetIndexOf:function(A){var B=A.parentNode?A.parentNode.firstChild:null;var C=-1;while (B){C++;if (B==A) return C;B=B.nextSibling;};return-1;},PaddingNode:null,EnforcePaddingNode:function(A,B){try{if (!A||!A.body) return;}catch (e){return;};this.CheckAndRemovePaddingNode(A,B,true);try{if (A.body.lastChild&&(A.body.lastChild.nodeType!=1||A.body.lastChild.tagName.toLowerCase()==B.toLowerCase())) return;}catch (e){return;};var C=A.createElement(B);if (FCKBrowserInfo.IsGecko&&FCKListsLib.NonEmptyBlockElements[B]) FCKTools.AppendBogusBr(C);this.PaddingNode=C;if (A.body.childNodes.length==1&&A.body.firstChild.nodeType==1&&A.body.firstChild.tagName.toLowerCase()=='br'&&(A.body.firstChild.getAttribute('_moz_dirty')!=null||A.body.firstChild.getAttribute('type')=='_moz')) A.body.replaceChild(C,A.body.firstChild);else A.body.appendChild(C);},CheckAndRemovePaddingNode:function(A,B,C){var D=this.PaddingNode;if (!D) return;try{if (D.parentNode!=A.body||D.tagName.toLowerCase()!=B||(D.childNodes.length>1)||(D.firstChild&&D.firstChild.nodeValue!='\xa0'&&String(D.firstChild.tagName).toLowerCase()!='br')){this.PaddingNode=null;return;}}catch (e){this.PaddingNode=null;return;};if (!C){if (D.parentNode.childNodes.length>1) D.parentNode.removeChild(D);this.PaddingNode=null;}},HasAttribute:function(A,B){if (A.hasAttribute) return A.hasAttribute(B);else{var C=A.attributes[B];return (C!=undefined&&C.specified);}},HasAttributes:function(A){var B=A.attributes;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsIE&&B[i].nodeName=='class'){if (A.className.length>0) return true;}else if (B[i].specified) return true;};return false;},RemoveAttribute:function(A,B){if (FCKBrowserInfo.IsIE&&B.toLowerCase()=='class') B='className';return A.removeAttribute(B,0);},GetAttributeValue:function(A,B){var C=B;if (typeof B=='string') B=A.attributes[B];else C=B.nodeName;if (B&&B.specified){if (C=='style') return A.style.cssText;else if (C=='class'||C.indexOf('on')==0) return B.nodeValue;else{return A.getAttribute(C,2);}};return null;},Contains:function(A,B){if (A.contains&&B.nodeType==1) return A.contains(B);while ((B=B.parentNode)){if (B==A) return true;};return false;},BreakParent:function(A,B,C){var D=C||new FCKDomRange(FCKTools.GetElementWindow(A));D.SetStart(A,4);D.SetEnd(B,4);var E=D.ExtractContents();D.InsertNode(A.parentNode.removeChild(A));E.InsertAfterNode(A);D.Release(!!C);},GetNodeAddress:function(A,B){var C=[];while (A&&A!=A.ownerDocument.documentElement){var D=A.parentNode;var E=-1;for(var i=0;i<D.childNodes.length;i++){var F=D.childNodes[i];if (B===true&&F.nodeType==3&&F.previousSibling&&F.previousSibling.nodeType==3) continue;E++;if (D.childNodes[i]==A) break;};C.unshift(E);A=A.parentNode;};return C;},GetNodeFromAddress:function(A,B,C){var D=A.documentElement;for (var i=0;i<B.length;i++){var E=B[i];if (!C){D=D.childNodes[E];continue;};var F=-1;for (var j=0;j<D.childNodes.length;j++){var G=D.childNodes[j];if (C===true&&G.nodeType==3&&G.previousSibling&&G.previousSibling.nodeType==3) continue;F++;if (F==E){D=G;break;}}};return D;},CloneElement:function(A){A=A.cloneNode(false);A.removeAttribute('id',false);return A;},ClearElementJSProperty:function(A,B){if (FCKBrowserInfo.IsIE) A.removeAttribute(B);else delete A[B];},SetElementMarker:function (A,B,C,D){var E=String(parseInt(Math.random()*0xfffffff,10));B._FCKMarkerId=E;B[C]=D;if (!A[E]) A[E]={ 'element':B,'markers':{} };A[E]['markers'][C]=D;},ClearElementMarkers:function(A,B,C){var D=B._FCKMarkerId;if (!D) return;this.ClearElementJSProperty(B,'_FCKMarkerId');for (var j in A[D]['markers']) this.ClearElementJSProperty(B,j);if (C) delete A[D];},ClearAllMarkers:function(A){for (var i in A) this.ClearElementMarkers(A,A[i]['element'],true);},ListToArray:function(A,B,C,D,E){if (!A.nodeName.IEquals(['ul','ol'])) return [];if (!D) D=0;if (!C) C=[];for (var i=0;i<A.childNodes.length;i++){var F=A.childNodes[i];if (!F.nodeName.IEquals('li')) continue;var G={ 'parent':A,'indent':D,'contents':[] };if (!E){G.grandparent=A.parentNode;if (G.grandparent&&G.grandparent.nodeName.IEquals('li')) G.grandparent=G.grandparent.parentNode;}else G.grandparent=E;if (B) this.SetElementMarker(B,F,'_FCK_ListArray_Index',C.length);C.push(G);for (var j=0;j<F.childNodes.length;j++){var H=F.childNodes[j];if (H.nodeName.IEquals(['ul','ol'])) this.ListToArray(H,B,C,D+1,G.grandparent);else G.contents.push(H);}};return C;},ArrayToList:function(A,B,C){if (C==undefined) C=0;if (!A||A.length<C+1) return null;var D=A[C].parent.ownerDocument;var E=D.createDocumentFragment();var F=null;var G=C;var H=Math.max(A[C].indent,0);var I=null;while (true){var J=A[G];if (J.indent==H){if (!F||A[G].parent.nodeName!=F.nodeName){F=A[G].parent.cloneNode(false);E.appendChild(F);};I=D.createElement('li');F.appendChild(I);for (var i=0;i<J.contents.length;i++) I.appendChild(J.contents[i].cloneNode(true));G++;}else if (J.indent==Math.max(H,0)+1){var K=this.ArrayToList(A,null,G);I.appendChild(K.listNode);G=K.nextIndex;}else if (J.indent==-1&&C==0&&J.grandparent){var I;if (J.grandparent.nodeName.IEquals(['ul','ol'])) I=D.createElement('li');else{if (FCKConfig.EnterMode.IEquals(['div','p'])&&!J.grandparent.nodeName.IEquals('td')) I=D.createElement(FCKConfig.EnterMode);else I=D.createDocumentFragment();};for (var i=0;i<J.contents.length;i++) I.appendChild(J.contents[i].cloneNode(true));if (I.nodeType==11){if (I.lastChild&&I.lastChild.getAttribute&&I.lastChild.getAttribute('type')=='_moz') I.removeChild(I.lastChild);I.appendChild(D.createElement('br'));};if (I.nodeName.IEquals(FCKConfig.EnterMode)&&I.firstChild){this.TrimNode(I);if (FCKListsLib.BlockBoundaries[I.firstChild.nodeName.toLowerCase()]){var M=D.createDocumentFragment();while (I.firstChild) M.appendChild(I.removeChild(I.firstChild));I=M;}};if (FCKBrowserInfo.IsGeckoLike&&I.nodeName.IEquals(['div','p'])) FCKTools.AppendBogusBr(I);E.appendChild(I);F=null;G++;}else return null;if (A.length<=G||Math.max(A[G].indent,0)<H){break;}};if (B){var N=E.firstChild;while (N){if (N.nodeType==1) this.ClearElementMarkers(B,N);N=this.GetNextSourceNode(N);}};return { 'listNode':E,'nextIndex':G };},GetNextSibling:function(A,B){A=A.nextSibling;while (A&&!B&&A.nodeType!=1&&(A.nodeType!=3||A.nodeValue.length==0)) A=A.nextSibling;return A;},GetPreviousSibling:function(A,B){A=A.previousSibling;while (A&&!B&&A.nodeType!=1&&(A.nodeType!=3||A.nodeValue.length==0)) A=A.previousSibling;return A;},CheckIsEmptyElement:function(A,B){var C=A.firstChild;var D;while (C){if (C.nodeType==1){if (D||!FCKListsLib.InlineNonEmptyElements[C.nodeName.toLowerCase()]) return false;if (!B||B(C)===true) D=C;}else if (C.nodeType==3&&C.nodeValue.length>0) return false;C=C.nextSibling;};return D?this.CheckIsEmptyElement(D,B):true;},SetElementStyles:function(A,B){var C=A.style;for (var D in B) C[D]=B[D];},GetCurrentElementStyle:function(w,A,B){if (FCKBrowserInfo.IsIE) return A.currentStyle[B];else return w.getComputedStyle(A,'')[B];},GetPositionedAncestor:function(w,A){var B=A;while (B!=B.ownerDocument.documentElement){if (this.GetCurrentElementStyle(w,B,'position')!='static') return B;B=B.parentNode;};return null;},ScrollIntoView:function(A,B){var C=FCKTools.GetElementWindow(A);var D=FCKTools.GetViewPaneSize(C).Height;var E=D*-1;if (B===false){E+=A.offsetHeight;E+=parseInt(this.GetCurrentElementStyle(C,A,'marginBottom')||0,10);};E+=A.offsetTop;while ((A=A.offsetParent)) E+=A.offsetTop||0;var F=FCKTools.GetScrollPosition(C).Y;if (E>0&&E>F) C.scrollTo(0,E);}};
+var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.AppendStyleSheet=function(A,B){if (typeof(B)=='string') return this._AppendStyleSheet(A,B);else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.AppendStyleString=function (A,B){this._AppendStyleString(A,B);};FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&&!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.FixDocumentParentWindow=function(A){if (A.document) A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&');A=A.replace(/</g,'<');A=A.replace(/>/g,'>');return A;};FCKTools.HTMLDecode=function(A){if (!A) return '';A=A.replace(/>/g,'>');A=A.replace(/</g,'<');A=A.replace(/&/g,'&');return A;};FCKTools._ProcessLineBreaksForPMode=function(A,B,C,D,E){var F=0;var G="<p>";var H="</p>";var I="<br />";if (C){G="<li>";H="</li>";F=1;};while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='p'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};var n=B.charAt(i+1);if (n=='\r'){i++;n=B.charAt(i+1);};if (n=='\n'){i++;if (F) E.push(H);E.push(G);F=1;}else E.push(I);}};FCKTools._ProcessLineBreaksForDivMode=function(A,B,C,D,E){var F=0;var G="<div>";var H="</div>";if (C){G="<li>";H="</li>";F=1;};while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='div'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F){if (E[E.length-1]==G){E.push(" ");};E.push(H);};E.push(G);F=1;};if (F) E.push(H);};FCKTools._ProcessLineBreaksForBrMode=function(A,B,C,D,E){var F=0;var G="<br />";var H="";if (C){G="<li>";H="</li>";F=1;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F&&H.length) E.push (H);E.push(G);F=1;}};FCKTools.ProcessLineBreaks=function(A,B,C){var D=B.EnterMode.toLowerCase();var E=[];var F=0;var G=new A.FCKDomRange(A.FCK.EditorWindow);G.MoveToSelection();var H=G._Range.startContainer;while (H&&H.nodeType!=1) H=H.parentNode;if (H&&H.tagName.toLowerCase()=='li') F=1;if (D=='p') this._ProcessLineBreaksForPMode(A,C,F,H,E);else if (D=='div') this._ProcessLineBreaksForDivMode(A,C,F,H,E);else if (D=='br') this._ProcessLineBreaksForBrMode(A,C,F,H,E);return E.join("");};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i<arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||'CSS1Compat'));};FCKTools.ArgumentsToArray=function(A,B,C){B=B||0;C=C||A.length;var D=[];for (var i=B;i<B+C&&i<A.length;i++) D.push(A[i]);return D;};FCKTools.CloneObject=function(A){var B=function() {};B.prototype=A;return new B;};FCKTools.AppendBogusBr=function(A){if (!A) return;var B=this.GetLastItem(A.getElementsByTagName('br'));if (!B||(B.getAttribute('type',2)!='_moz'&&B.getAttribute('_moz_dirty')==null)){var C=this.GetElementDocument(A);if (FCKBrowserInfo.IsOpera) A.appendChild(C.createTextNode(''));else A.appendChild(this.CreateBogusBR(C));}};FCKTools.GetLastItem=function(A){if (A.length>0) return A[A.length-1];return null;};FCKTools.GetDocumentPosition=function(w,A){var x=0;var y=0;var B=A;var C=null;var D=FCKTools.GetElementWindow(B);while (B&&!(D==w&&(B==w.document.body||B==w.document.documentElement))){x+=B.offsetLeft-B.scrollLeft;y+=B.offsetTop-B.scrollTop;if (!FCKBrowserInfo.IsOpera){var E=C;while (E&&E!=B){x-=E.scrollLeft;y-=E.scrollTop;E=E.parentNode;}};C=B;if (B.offsetParent) B=B.offsetParent;else{if (D!=w){B=D.frameElement;C=null;if (B) D=FCKTools.GetElementWindow(B);}else B=null;}};if (FCKDomTools.GetCurrentElementStyle(w,w.document.body,'position')!='static'||(FCKBrowserInfo.IsIE&&FCKDomTools.GetPositionedAncestor(w,A)==null)){x+=w.document.body.offsetLeft;y+=w.document.body.offsetTop;};return { "x":x,"y":y };};FCKTools.GetWindowPosition=function(w,A){var B=this.GetDocumentPosition(w,A);var C=FCKTools.GetScrollPosition(w);B.x-=C.X;B.y-=C.Y;return B;};FCKTools.ProtectFormStyles=function(A){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return [];var B=[];var C=['style','className'];for (var i=0;i<C.length;i++){var D=C[i];if (A.elements.namedItem(D)){var E=A.elements.namedItem(D);B.push([E,E.nextSibling]);A.removeChild(E);}};return B;};FCKTools.RestoreFormStyles=function(A,B){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return;if (B.length>0){for (var i=B.length-1;i>=0;i--){var C=B[i][0];var D=B[i][1];if (D) A.insertBefore(C,D);else A.appendChild(C);}}};FCKTools.GetNextNode=function(A,B){if (A.firstChild) return A.firstChild;else if (A.nextSibling) return A.nextSibling;else{var C=A.parentNode;while (C){if (C==B) return null;if (C.nextSibling) return C.nextSibling;else C=C.parentNode;}};return null;};FCKTools.GetNextTextNode=function(A,B,C){node=this.GetNextNode(A,B);if (C&&node&&C(node)) return null;while (node&&node.nodeType!=3){node=this.GetNextNode(node,B);if (C&&node&&C(node)) return null;};return node;};FCKTools.Merge=function(){var A=arguments;var o=A[0];for (var i=1;i<A.length;i++){var B=A[i];for (var p in B) o[p]=B[p];};return o;};FCKTools.IsArray=function(A){return (A instanceof Array);};FCKTools.AppendLengthProperty=function(A,B){var C=0;for (var n in A) C++;return A[B||'length']=C;};FCKTools.NormalizeCssText=function(A){var B=document.createElement('span');B.style.cssText=A;return B.style.cssText;};FCKTools.Hitch=function(A,B){return function() { A[B].apply(A,arguments);};};
+FCKTools.CancelEvent=function(e){if (e) e.preventDefault();};FCKTools.DisableSelection=function(A){if (FCKBrowserInfo.IsGecko) A.style.MozUserSelect='none';else A.style.userSelect='none';};FCKTools._AppendStyleSheet=function(A,B){var e=A.createElement('LINK');e.rel='stylesheet';e.type='text/css';e.href=B;A.getElementsByTagName("HEAD")[0].appendChild(e);return e;};FCKTools._AppendStyleString=function(A,B){var e=A.createElement("STYLE");e.appendChild(A.createTextNode(B));A.getElementsByTagName("HEAD")[0].appendChild(e);return e;};FCKTools.ClearElementAttributes=function(A){for (var i=0;i<A.attributes.length;i++){A.removeAttribute(A.attributes[i].name,0);}};FCKTools.GetAllChildrenIds=function(A){var B=[];var C=function(parent){for (var i=0;i<parent.childNodes.length;i++){var D=parent.childNodes[i].id;if (D&&D.length>0) B[B.length]=D;C(parent.childNodes[i]);}};C(A);return B;};FCKTools.RemoveOuterTags=function(e){var A=e.ownerDocument.createDocumentFragment();for (var i=0;i<e.childNodes.length;i++) A.appendChild(e.childNodes[i].cloneNode(true));e.parentNode.replaceChild(A,e);};FCKTools.CreateXmlObject=function(A){switch (A){case 'XmlHttp':return new XMLHttpRequest();case 'DOMDocument':return document.implementation.createDocument('','',null);};return null;};FCKTools.GetScrollPosition=function(A){return { X:A.pageXOffset,Y:A.pageYOffset };};FCKTools.AddEventListener=function(A,B,C){A.addEventListener(B,C,false);};FCKTools.RemoveEventListener=function(A,B,C){A.removeEventListener(B,C,false);};FCKTools.AddEventListenerEx=function(A,B,C,D){A.addEventListener(B,function(e){C.apply(A,[e].concat(D||[]));},false);};FCKTools.GetViewPaneSize=function(A){return { Width:A.innerWidth,Height:A.innerHeight };};FCKTools.SaveStyles=function(A){var B=FCKTools.ProtectFormStyles(A);var C={};if (A.className.length>0){C.Class=A.className;A.className='';};var D=A.getAttribute('style');if (D&&D.length>0){C.Inline=D;A.setAttribute('style','',0);};FCKTools.RestoreFormStyles(A,B);return C;};FCKTools.RestoreStyles=function(A,B){var C=FCKTools.ProtectFormStyles(A);A.className=B.Class||'';if (B.Inline) A.setAttribute('style',B.Inline,0);else A.removeAttribute('style',0);FCKTools.RestoreFormStyles(A,C);};FCKTools.RegisterDollarFunction=function(A){A.$=function(id){return this.document.getElementById(id);};};FCKTools.AppendElement=function(A,B){return A.appendChild(A.ownerDocument.createElement(B));};FCKTools.GetElementPosition=function(A,B){var c={ X:0,Y:0 };var C=B||window;var D=FCKTools.GetElementWindow(A);var E=null;while (A){var F=D.getComputedStyle(A,'').position;if (F&&F!='static'&&A.style.zIndex!=FCKConfig.FloatingPanelsZIndex) break;c.X+=A.offsetLeft-A.scrollLeft;c.Y+=A.offsetTop-A.scrollTop;if (!FCKBrowserInfo.IsOpera){var G=E;while (G&&G!=A){c.X-=G.scrollLeft;c.Y-=G.scrollTop;G=G.parentNode;}};E=A;if (A.offsetParent) A=A.offsetParent;else{if (D!=C){A=D.frameElement;E=null;if (A) D=FCKTools.GetElementWindow(A);}else{c.X+=A.scrollLeft;c.Y+=A.scrollTop;break;}}};return c;};
+var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='var FCKeditorAPI = {Version : "2.5",VersionBuild : "17352",__Instances : new Object(),GetInstance : function( name ){return this.__Instances[ name ];},_FormSubmit : function(){for ( var name in FCKeditorAPI.__Instances ){var oEditor = FCKeditorAPI.__Instances[ name ] ;if ( oEditor.GetParentForm && oEditor.GetParentForm() == this )oEditor.UpdateLinkedField() ;}this._FCKOriginalSubmit() ;},_FunctionQueue : {Functions : new Array(),IsRunning : false,Add : function( f ){this.Functions.push( f );if ( !this.IsRunning )this.StartNext();},StartNext : function(){var aQueue = this.Functions ;if ( aQueue.length > 0 ){this.IsRunning = true;aQueue[0].call();}else this.IsRunning = false;},Remove : function( f ){var aQueue = this.Functions;var i = 0, fFunc;while( (fFunc = aQueue[ i ]) ){if ( fFunc == f )aQueue.splice( i,1 );i++ ;}this.StartNext();}}}';if (A.execScript) A.execScript(B,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if (FCKBrowserInfo.IsSafari||FCKBrowserInfo.IsGecko19){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;};FCKeditorAPI.__Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&&(typeof(A.submit)=='function'||(!A.submit.tagName&&!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){if (!window.FCKUnloadFlag) return;delete FCKeditorAPI.__Instances[FCK.Name];};function FCKeditorAPI_ConfirmCleanup(){window.FCKUnloadFlag=true;};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);FCKTools.AddEventListener(window,'beforeunload',FCKeditorAPI_ConfirmCleanup);
+var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i<A.length;i++){var B=document.createElement('img');FCKTools.AddEventListenerEx(B,'load',_FCKImagePreloader_OnImage,this);FCKTools.AddEventListenerEx(B,'error',_FCKImagePreloader_OnImage,this);B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(A,B){if ((--B._PreloadCount)==0&&B.OnComplete) B.OnComplete();}
+var FCKRegexLib={AposEntity:/'/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BeforeBody:/(^[\s\S]*\<body[^\>]*\>)/i,AfterBody:/(\<\/body\>[\s\S]*$)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HasBodyTag:/<body[\s|>]/i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/\s*FCK__[^ ]*(?=\s+|$)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>\s*(<\/\1>)?$/,EmptyOutParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>(?:\s*| )(<\/\1>)?$/,TagBody:/></,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/<img(?=\s).*?\ssrc=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,ProtectUrlsA:/<a(?=\s).*?\shref=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,ProtectUrlsArea:/<area(?=\s).*?\shref=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,Html4DocType:/HTML 4\.0 Transitional/i,DocTypeTag:/<!DOCTYPE[^>]*>/i,TagsWithEvent:/<[^\>]+ on\w+[\s\r\n]*=[\s\r\n]*?('|")[\s\S]+?\>/g,EventAttributes:/\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|")([\s\S]*?)\2/g,ProtectedEvents:/\s\w+_fckprotectedatt="([^"]+)"/g,StyleProperties:/\S+\s*:/g,InvalidSelfCloseTags:/(<(?!base|meta|link|hr|br|param|img|area|input)([a-zA-Z0-9:]+)[^>]*)\/>/gi,StyleVariableAttName:/#\(\s*("|')(.+?)\1[^\)]*\s*\)/g,RegExp:/^\/(.*)\/([gim]*)$/};
+var FCKListsLib={BlockElements:{ address:1,blockquote:1,center:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,marquee:1,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 },NonEmptyBlockElements:{ p:1,div:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,address:1,pre:1,ol:1,ul:1,li:1,td:1,th:1 },InlineChildReqElements:{ abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },InlineNonEmptyElements:{ a:1,abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },EmptyElements:{ base:1,col:1,meta:1,link:1,hr:1,br:1,param:1,img:1,area:1,input:1 },PathBlockElements:{ address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,de:1 },PathBlockLimitElements:{ body:1,div:1,td:1,th:1,caption:1,form:1 },StyleBlockElements:{ address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1 },StyleObjectElements:{ img:1,hr:1,li:1,table:1,tr:1,td:1,embed:1,object:1,ol:1,ul:1 },BlockBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1 },ListBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1,br:1 }};
+var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French',gl:'Galician',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',it:'Italian',ja:'Japanese',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},GetActiveLanguage:function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length>=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length>=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;},TranslateElements:function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i<e.length;i++){if ((E=e[i].getAttribute('fckLang'))){if ((s=FCKLang[E])){if (D) s=FCKTools.HTMLEncode(s);e[i][C]=s;}}}},TranslatePage:function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);this.TranslateElements(A,'LEGEND','innerHTML');},Initialize:function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage={};this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}};
+var FCKXHtmlEntities={};FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';var B,e;if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.Entities={' ':'nbsp','¡':'iexcl','¢':'cent','£':'pound','¤':'curren','Â¥':'yen','¦':'brvbar','§':'sect','¨':'uml','©':'copy','ª':'ordf','«':'laquo','¬':'not','Â':'shy','®':'reg','¯':'macr','°':'deg','±':'plusmn','²':'sup2','³':'sup3','´':'acute','µ':'micro','¶':'para','·':'middot','¸':'cedil','¹':'sup1','º':'ordm','»':'raquo','¼':'frac14','½':'frac12','¾':'frac34','¿':'iquest','×':'times','÷':'divide','Æ’':'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','\u2308':'lceil','\u2309':'rceil','\u230a':'lfloor','\u230b':'rfloor','\u2329':'lang','\u232a':'rang','â—Š':'loz','â™ ':'spades','♣':'clubs','♥':'hearts','♦':'diams','"':'quot','ˆ':'circ','Ëœ':'tilde',' ':'ensp',' ':'emsp',' ':'thinsp','‌':'zwnj','â€':'zwj','‎':'lrm','â€':'rlm','–':'ndash','—':'mdash','‘':'lsquo','’':'rsquo','‚':'sbquo','“':'ldquo','â€':'rdquo','„':'bdquo','†':'dagger','‡':'Dagger','‰':'permil','‹':'lsaquo','›':'rsaquo','€':'euro'};for (e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){B={'À':'Agrave','Ã':'Aacute','Â':'Acirc','Ã':'Atilde','Ä':'Auml','Ã…':'Aring','Æ':'AElig','Ç':'Ccedil','È':'Egrave','É':'Eacute','Ê':'Ecirc','Ë':'Euml','ÃŒ':'Igrave','Ã':'Iacute','ÃŽ':'Icirc','Ã':'Iuml','Ã':'ETH','Ñ':'Ntilde','Ã’':'Ograve','Ó':'Oacute','Ô':'Ocirc','Õ':'Otilde','Ö':'Ouml','Ø':'Oslash','Ù':'Ugrave','Ú':'Uacute','Û':'Ucirc','Ãœ':'Uuml','Ã':'Yacute','Þ':'THORN','ß':'szlig','à ':'agrave','á':'aacute','â':'acirc','ã':'atilde','ä':'auml','Ã¥':'aring','æ':'aelig','ç':'ccedil','è':'egrave','é':'eacute','ê':'ecirc','ë':'euml','ì':'igrave','Ã':'iacute','î':'icirc','ï':'iuml','ð':'eth','ñ':'ntilde','ò':'ograve','ó':'oacute','ô':'ocirc','õ':'otilde','ö':'ouml','ø':'oslash','ù':'ugrave','ú':'uacute','û':'ucirc','ü':'uuml','ý':'yacute','þ':'thorn','ÿ':'yuml','Å’':'OElig','Å“':'oelig','Å ':'Scaron','Å¡':'scaron','Ÿ':'Yuml'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){B={'Α':'Alpha','Î’':'Beta','Γ':'Gamma','Δ':'Delta','Ε':'Epsilon','Ζ':'Zeta','Η':'Eta','Θ':'Theta','Ι':'Iota','Κ':'Kappa','Λ':'Lambda','Îœ':'Mu','Î':'Nu','Ξ':'Xi','Ο':'Omicron','Î ':'Pi','Ρ':'Rho','Σ':'Sigma','Τ':'Tau','Î¥':'Upsilon','Φ':'Phi','Χ':'Chi','Ψ':'Psi','Ω':'Omega','α':'alpha','β':'beta','γ':'gamma','δ':'delta','ε':'epsilon','ζ':'zeta','η':'eta','θ':'theta','ι':'iota','κ':'kappa','λ':'lambda','μ':'mu','ν':'nu','ξ':'xi','ο':'omicron','Ï€':'pi','Ï':'rho','Ï‚':'sigmaf','σ':'sigma','Ï„':'tau','Ï…':'upsilon','φ':'phi','χ':'chi','ψ':'psi','ω':'omega','\u03d1':'thetasym','\u03d2':'upsih','\u03d6':'piv'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={};A=' ';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&&D.length>0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');};
+var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKDomTools.CheckAndRemovePaddingNode(A.ownerDocument,FCKConfig.EnterMode);FCKXHtmlEntities.Initialize();this._NbspEntity=(FCKConfig.ProcessHTMLEntities?'nbsp':'#160');var D=FCK.IsDirty();FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;if (FCKBrowserInfo.IsSafari) E=E.replace(/^<xhtml.*?>/,'<xhtml>');E=E.substr(7,E.length-15).Trim();E=E.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i<FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&');if (!D) FCK.ResetIsDirty();FCKDomTools.EnforcePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);return E;};FCKXHtml._AppendAttribute=function(A,B,C){try{if (C==undefined||C==null) C='';else if (C.replace){if (FCKConfig.ForceSimpleAmpersand) C=C.replace(/&/g,'___FCKAmp___');C=C.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity);};var D=this.XML.createAttribute(B);D.value=C;A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){var D=B.firstChild;while (D){this._AppendNode(A,D);D=D.nextSibling;};if (C&&B.tagName&&B.tagName.toLowerCase()!='pre'){FCKDomTools.TrimNode(A);if (FCKConfig.FillEmptyBlocks){var E=A.lastChild;if (E&&E.nodeType==1&&E.nodeName=='br') this._AppendEntity(A,this._NbspEntity);}};if (A.childNodes.length==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,this._NbspEntity);return A;};var F=A.nodeName;if (FCKListsLib.InlineChildReqElements[F]) return null;if (!FCKListsLib.EmptyElements[F]) A.appendChild(this.XML.createTextNode(''));};return A;};FCKXHtml._AppendNode=function(A,B){if (!B) return false;switch (B.nodeType){case 1:if (FCKBrowserInfo.IsGecko&&B.tagName.toLowerCase()=='br'&&B.parentNode.tagName.toLowerCase()=='pre'){var C='\r';if (B==B.parentNode.firstChild) C+='\r';return FCKXHtml._AppendNode(A,this.XML.createTextNode(C));};if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.nextSibling&&(B.hasAttribute('_moz_editor_bogus_node')||B.getAttribute('type')=='_moz')) return false;if (B.getAttribute('_fcktemp')) return false;var D=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&&B.scopeName!='HTML'&&B.scopeName!='FCK') D=B.scopeName.toLowerCase()+':'+D;}else{if (D.StartsWith('fck:')) D=D.Remove(0,4);};if (!FCKRegexLib.ElementName.test(D)) return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var E=this.XML.createElement(D);FCKXHtml._AppendAttributes(A,B,E,D);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var F=FCKXHtml.TagProcessors[D];if (F) E=F(E,B,A);else E=this._AppendChildNodes(E,B,Boolean(FCKListsLib.NonEmptyBlockElements[D]));if (!E) return false;A.appendChild(E);break;case 3:if (B.parentNode&&B.parentNode.nodeName.IEquals('pre')) return this._AppendTextNode(A,B.nodeValue);return this._AppendTextNode(A,B.nodeValue.ReplaceNewLineChars(' '));case 8:if (FCKBrowserInfo.IsIE&&!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) {/*Do nothing... probably this is a wrong format comment.*/};break;default:A.appendChild(this.XML.createComment("Element not supported - Type: "+B.nodeType+" Name: "+B.nodeName));break;};return true;};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.AddItem(A);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){var C=B.length>0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml.TagProcessors={a:function(A,B){if (B.innerHTML.Trim().length==0&&!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};A=FCKXHtml._AppendChildNodes(A,B,false);return A;},area:function(A,B){var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (!A.attributes.getNamedItem('coords')){var D=B.getAttribute('coords',2);if (D&&D!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',D);};if (!A.attributes.getNamedItem('shape')){var E=B.getAttribute('shape',2);if (E&&E.length>0) FCKXHtml._AppendAttribute(A,'shape',E.toLowerCase());}};return A;},body:function(A,B){A=FCKXHtml._AppendChildNodes(A,B,false);A.removeAttribute('spellcheck');return A;},iframe:function(A,B){var C=B.innerHTML;if (FCKBrowserInfo.IsGecko) C=FCKTools.HTMLDecode(C);C=C.replace(/\s_fcksavedurl="[^"]*"/g,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);return A;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&&D.nodeType==3) D=D.previousSibling;if (D&&D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};A=FCKXHtml._AppendChildNodes(A,B);return A;},pre:function (A,B){var C=B.firstChild;if (C&&C.nodeType==3) A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem('\r\n')));FCKXHtml._AppendChildNodes(A,B,true);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},span:function(A,B){if (B.innerHTML.length==0) return false;A=FCKXHtml._AppendChildNodes(A,B,false);return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');var C=B.innerHTML;if (FCKBrowserInfo.IsIE) C=C.replace(/^(\r\n|\n|\r)/,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol;
+FCKXHtml._GetMainXmlString=function(){var A=new XMLSerializer();return A.serializeToString(this.MainNode);};FCKXHtml._AppendAttributes=function(A,B,C){var D=B.attributes;for (var n=0;n<D.length;n++){var E=D[n];if (E.specified){var F=E.nodeName.toLowerCase();var G;if (F.StartsWith('_fck')) continue;else if (F.indexOf('_moz')==0) continue;else if (F=='class'){G=E.nodeValue.replace(FCKRegexLib.FCK_Class,'');if (G.length==0) continue;}else if (E.nodeValue===true) G=F;else G=B.getAttribute(F,2);this._AppendAttribute(C,F,G);}}};if (FCKBrowserInfo.IsOpera){FCKXHtml.TagProcessors['head']=function(A,B){FCKXHtml.XML._HeadElement=A;A=FCKXHtml._AppendChildNodes(A,B,true);return A;};FCKXHtml.TagProcessors['meta']=function(A,B,C){if (B.parentNode.nodeName.toLowerCase()!='head'){var D=FCKXHtml.XML._HeadElement;if (D&&C!=D){delete B._fckxhtmljob;FCKXHtml._AppendNode(D,B);return null;}};return A;}}
var FCKCodeFormatter={};FCKCodeFormatter.Init=function(){var A=this.Regex={};A.BlocksOpener=/\<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.BlocksCloser=/\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.NewLineTags=/\<(BR|HR)[^\>]*\>/gi;A.MainTags=/\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi;A.LineSplitter=/\s*\n+\s*/g;A.IncreaseIndent=/^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i;A.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i;A.FormatIndentatorRemove=new RegExp('^'+FCKConfig.FormatIndentator);A.ProtectedTags=/(<PRE[^>]*>)([\s\S]*?)(<\/PRE>)/gi;};FCKCodeFormatter._ProtectData=function(A,B,C,D){return B+'___FCKpd___'+FCKCodeFormatter.ProtectedData.AddItem(C)+D;};FCKCodeFormatter.Format=function(A){if (!this.Regex) this.Init();FCKCodeFormatter.ProtectedData=[];var B=A.replace(this.Regex.ProtectedTags,FCKCodeFormatter._ProtectData);B=B.replace(this.Regex.BlocksOpener,'\n$&');B=B.replace(this.Regex.BlocksCloser,'$&\n');B=B.replace(this.Regex.NewLineTags,'$&\n');B=B.replace(this.Regex.MainTags,'\n$&\n');var C='';var D=B.split(this.Regex.LineSplitter);B='';for (var i=0;i<D.length;i++){var E=D[i];if (E.length==0) continue;if (this.Regex.DecreaseIndent.test(E)) C=C.replace(this.Regex.FormatIndentatorRemove,'');B+=C+E+'\n';if (this.Regex.IncreaseIndent.test(E)) C+=FCKConfig.FormatIndentator;};for (var j=0;j<FCKCodeFormatter.ProtectedData.length;j++){var F=new RegExp('___FCKpd___'+j);B=B.replace(F,FCKCodeFormatter.ProtectedData[j].replace(/\$/g,'$$$$'));};return B.Trim();}
-var FCKUndo={};FCKUndo.SaveUndoStep=function(){}
-var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=0;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);while(C.childNodes.length>0) C.removeChild(C.childNodes[0]);if (this.Mode==0){var E=this.IFrame=D.createElement('iframe');E.src='javascript:void(0)';E.frameBorder=0;E.width=E.height='100%';C.appendChild(E);if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){if (FCKBrowserInfo.IsGecko) A=A.replace(/(<body[^>]*>)\s*(<\/body>)/i,'$1'+GECKO_BOGUS+'$2');var F=A.match(FCKRegexLib.BodyContents);if (F){A=F[1]+' '+F[3];this._BodyHTML=F[2];}else this._BodyHTML=A;};this.Window=E.contentWindow;var G=this.Document=this.Window.document;G.open();G.write(A);G.close();if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}else{var H=this.Textarea=D.createElement('textarea');H.className='SourceField';H.dir='ltr';H.style.width=H.style.height='100%';H.style.border='none';C.appendChild(H);H.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.contentEditable=true;}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;this._BodyHTML=null;};A.designMode='on';try{A.execCommand('styleWithCSS',false,FCKConfig.GeckoUseSPAN);}catch (e){A.execCommand('useCSS',false,!FCKConfig.GeckoUseSPAN);};A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e) {}}};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE&&this.Document.hasFocus()) return;if (FCKBrowserInfo.IsSafari) this.IFrame.focus();else{this.Window.focus();}}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&&A.activeElement==this.Textarea) return;this.Textarea.focus();}}catch(e) {}};function FCKEditingArea_Cleanup(){this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}}
-var FCKKeystrokeHandler=function(A){this.Keystrokes={};this.CancelCtrlDefaults=(A!==false);};FCKKeystrokeHandler.prototype.AttachToElement=function(A){FCKTools.AddEventListenerEx(A,'keydown',_FCKKeystrokeHandler_OnKeyDown,this);if (FCKBrowserInfo.IsGecko10||FCKBrowserInfo.IsOpera||(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac)) FCKTools.AddEventListenerEx(A,'keypress',_FCKKeystrokeHandler_OnKeyPress,this);};FCKKeystrokeHandler.prototype.SetKeystrokes=function(){for (var i=0;i<arguments.length;i++){var A=arguments[i];if (typeof(A[0])=='object') this.SetKeystrokes.apply(this,A);else{if (A.length==1) delete this.Keystrokes[A[0]];else this.Keystrokes[A[0]]=A[1]===true?true:A;}}};function _FCKKeystrokeHandler_OnKeyDown(A,B){var C=A.keyCode||A.which;var D=0;if (A.ctrlKey||A.metaKey) D+=CTRL;if (A.shiftKey) D+=SHIFT;if (A.altKey) D+=ALT;var E=C+D;var F=B._CancelIt=false;var G=B.Keystrokes[E];if (G){if (G===true||!(B.OnKeystroke&&B.OnKeystroke.apply(B,G))) return true;F=true;};if (F||(B.CancelCtrlDefaults&&D==CTRL&&(C<33||C>40))){B._CancelIt=true;if (A.preventDefault) return A.preventDefault();A.returnValue=false;A.cancelBubble=true;return false;};return true;};function _FCKKeystrokeHandler_OnKeyPress(A,B){if (B._CancelIt){if (A.preventDefault) return A.preventDefault();return false;};return true;}
-var FCKListHandler={OutdentListItem:function(A){var B=A.parentNode;if (B.tagName.toUpperCase().Equals('UL','OL')){var C=FCKTools.GetElementDocument(A);var D=new FCKDocumentFragment(C);var E=D.RootNode;var F=false;var G=FCKDomTools.GetFirstChild(A,['UL','OL']);if (G){F=true;var H;while ((H=G.firstChild)) E.appendChild(G.removeChild(H));FCKDomTools.RemoveNode(G);};var I;var J=false;while ((I=A.nextSibling)){if (!F&&I.nodeType==1&&I.nodeName.toUpperCase()=='LI') J=F=true;E.appendChild(I.parentNode.removeChild(I));if (!J&&I.nodeType==1&&I.nodeName.toUpperCase().Equals('UL','OL')) FCKDomTools.RemoveNode(I,true);};var K=B.parentNode.tagName.toUpperCase();var L=(K=='LI');if (L||K.Equals('UL','OL')){if (F){var G=B.cloneNode(false);D.AppendTo(G);A.appendChild(G);}else if (L) D.InsertAfterNode(B.parentNode);else D.InsertAfterNode(B);if (L) FCKDomTools.InsertAfterNode(B.parentNode,B.removeChild(A));else FCKDomTools.InsertAfterNode(B,B.removeChild(A));}else{if (F){var N=B.cloneNode(false);D.AppendTo(N);FCKDomTools.InsertAfterNode(B,N);};var O=C.createElement('p');FCKDomTools.MoveChildren(B.removeChild(A),O);FCKDomTools.InsertAfterNode(B,O);A=O;};if (this.CheckEmptyList(B)) FCKDomTools.RemoveNode(B,true);};return A;},CheckEmptyList:function(A){return (FCKDomTools.GetFirstChild(A,'LI')==null);},CheckListHasContents:function(A){var B=A.firstChild;while (B){switch (B.nodeType){case 1:if (!B.nodeName.IEquals('UL','LI')) return true;break;case 3:if (B.nodeValue.Trim().length>0) return true;};B=B.nextSibling;};return false;}};
-var FCKElementPath=function(A){var B=null;var C=null;var D=[];var e=A;while (e){if (e.nodeType==1){if (!this.LastElement) this.LastElement=e;var E=e.nodeName.toLowerCase();if (!C&&!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (!C&&(/^(?:body|td|th|caption|form)$/).test(E)) C=e;D.push(e);if (E=='BODY') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;};
-var FCKDomRange=function(A){this.Window=A;};FCKDomRange.prototype={_UpdateElementInfo:function(){if (!this._Range) this.Release(true);else{var A=this._Range.startContainer;var B=this._Range.endContainer;var C=new FCKElementPath(A);this.StartContainer=C.LastElement;this.StartBlock=C.Block;this.StartBlockLimit=C.BlockLimit;if (A!=B) C=new FCKElementPath(B);this.EndContainer=C.LastElement;this.EndBlock=C.Block;this.EndBlockLimit=C.BlockLimit;}},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateElementInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;}},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;},Collapse:function(A){if (this._Range) this._Range.collapse(A);this._UpdateElementInfo();},Clone:function(){var A=FCKTools.CloneObject(this);if (this._Range) A._Range=this._Range.cloneRange();return A;},MoveToNodeContents:function(A){if (!this._Range) this._Range=this.CreateRange();this._Range.selectNodeContents(A);this._UpdateElementInfo();},MoveToElementStart:function(A){this.SetStart(A,1);this.SetEnd(A,1);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(A){if (this.CheckIsCollapsed()) return true;var B=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(B);FCKDomTools.TrimNode(B,A);return (B.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this.Clone();A.Collapse(true);A.SetStart(A.StartBlock||A.StartBlockLimit,1);var B=A.CheckIsEmpty();A.Release();return B;},CheckEndOfBlock:function(A){var B=this.Clone();B.Collapse(false);B.SetEnd(B.EndBlock||B.EndBlockLimit,2);var C=B.CheckIsEmpty(true);B.Release();if (A) this.Select();return C;},CreateBookmark:function(){var A={StartId:'fck_dom_range_start_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000),EndId:'fck_dom_range_end_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000)};var B=this.Window.document;var C;var D;if (!this.CheckIsCollapsed()){C=B.createElement('span');C.id=A.EndId;C.innerHTML=' ';D=this.Clone();D.Collapse(false);D.InsertNode(C);};C=B.createElement('span');C.id=A.StartId;C.innerHTML=' ';D=this.Clone();D.Collapse(true);D.InsertNode(C);return A;},MoveToBookmark:function(A,B){var C=this.Window.document;var D=C.getElementById(A.StartId);var E=C.getElementById(A.EndId);this.SetStart(D,3);if (!B) FCKDomTools.RemoveNode(D);if (E){this.SetEnd(E,3);if (!B) FCKDomTools.RemoveNode(E);}else this.Collapse(true);},SetStart:function(A,B){var C=this._Range;if (!C) C=this._Range=this.CreateRange();switch(B){case 1:C.setStart(A,0);break;case 2:C.setStart(A,A.childNodes.length);break;case 3:C.setStartBefore(A);break;case 4:C.setStartAfter(A);};this._UpdateElementInfo();},SetEnd:function(A,B){var C=this._Range;if (!C) C=this._Range=this.CreateRange();switch(B){case 1:C.setEnd(A,0);break;case 2:C.setEnd(A,A.childNodes.length);break;case 3:C.setEndBefore(A);break;case 4:C.setEndAfter(A);};this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'block_contents':if (this.StartBlock) this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){if (!(B=B.childNodes[this._Range.startOffset])) B=B.firstChild;};if (!B) return;while (true){oSibling=B.previousSibling;if (!oSibling){if (B.parentNode!=this.StartBlockLimit) B=B.parentNode;else break;}else if (oSibling.nodeType!=1||!(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test(oSibling.nodeName.toUpperCase())){B=oSibling;}else break;};this._Range.setStartBefore(B);};if (this.EndBlock) this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;if (!B) return;while (true){oSibling=B.nextSibling;if (!oSibling){if (B.parentNode!=this.EndBlockLimit) B=B.parentNode;else break;}else if (oSibling.nodeType!=1||!(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test(oSibling.nodeName.toUpperCase())){B=oSibling;}else break;};this._Range.setEndAfter(B);};this._UpdateElementInfo();}},Release:function(A){if (!A) this.Window=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;}};
-FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);var A=this.Window.getSelection();if (A.rangeCount==1){this._Range=FCKW3CRange.CreateFromRange(this.Window.document,A.getRangeAt(0));this._UpdateElementInfo();}};FCKDomRange.prototype.Select=function(){var A=this._Range;if (A){var B=this.Window.document.createRange();B.setStart(A.startContainer,A.startOffset);try{B.setEnd(A.endContainer,A.endOffset);}catch (e){if (e.toString().Contains('NS_ERROR_ILLEGAL_VALUE')){A.collapse(true);B.setEnd(A.endContainer,A.endOffset);}else throw(e);};var C=this.Window.getSelection();C.removeAllRanges();C.addRange(B);}};
+var FCKUndo={};FCKUndo.SavedData=[];FCKUndo.CurrentIndex=-1;FCKUndo.TypesCount=0;FCKUndo.Changed=false;FCKUndo.MaxTypes=25;FCKUndo.Typing=false;FCKUndo.SaveLocked=false;FCKUndo._GetBookmark=function(){var A=new FCKDomRange(FCK.EditorWindow);try{A.MoveToSelection();}catch (e){return null;};if (FCKBrowserInfo.IsIE){var B=A.CreateBookmark();var C=FCK.EditorDocument.body.innerHTML;A.MoveToBookmark(B);return [B,C];};return A.CreateBookmark2();};FCKUndo._SelectBookmark=function(A){if (!A) return;var B=new FCKDomRange(FCK.EditorWindow);if (A instanceof Object){if (FCKBrowserInfo.IsIE) B.MoveToBookmark(A[0]);else B.MoveToBookmark2(A);try{B.Select();}catch (e){B.MoveToPosition(FCK.EditorDocument.body,4);B.Select();}}};FCKUndo._CompareCursors=function(A,B){for (var i=0;i<Math.min(A.length,B.length);i++){if (A[i]<B[i]) return-1;else if (A[i]>B[i]) return 1;};if (A.length<B.length) return-1;else if (A.length>B.length) return 1;return 0;};FCKUndo._CheckIsBookmarksEqual=function(A,B){if (!(A&&B)) return false;if (FCKBrowserInfo.IsIE){var C=A[1].search(A[0].StartId);var D=B[1].search(B[0].StartId);var E=A[1].search(A[0].EndId);var F=B[1].search(B[0].EndId);return C==D&&E==F;}else{return this._CompareCursors(A.Start,B.Start)==0&&this._CompareCursors(A.End,B.End)==0;}};FCKUndo.SaveUndoStep=function(){if (FCK.EditMode!=0||this.SaveLocked) return;if (this.SavedData.length) this.Changed=true;var A=FCK.EditorDocument.body.innerHTML;var B=this._GetBookmark();this.SavedData=this.SavedData.slice(0,this.CurrentIndex+1);if (this.CurrentIndex>0&&A==this.SavedData[this.CurrentIndex][0]&&this._CheckIsBookmarksEqual(B,this.SavedData[this.CurrentIndex][1])) return;else if (this.CurrentIndex==0&&this.SavedData.length&&A==this.SavedData[0][0]){this.SavedData[0][1]=B;return;};if (this.CurrentIndex+1>=FCKConfig.MaxUndoLevels) this.SavedData.shift();else this.CurrentIndex++;this.SavedData[this.CurrentIndex]=[A,B];FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.CheckUndoState=function(){return (this.Changed||this.CurrentIndex>0);};FCKUndo.CheckRedoState=function(){return (this.CurrentIndex<(this.SavedData.length-1));};FCKUndo.Undo=function(){if (this.CheckUndoState()){if (this.CurrentIndex==(this.SavedData.length-1)){this.SaveUndoStep();};this._ApplyUndoLevel(--this.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo.Redo=function(){if (this.CheckRedoState()){this._ApplyUndoLevel(++this.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo._ApplyUndoLevel=function(A){var B=this.SavedData[A];if (!B) return;if (FCKBrowserInfo.IsIE){if (B[1]&&B[1][1]) FCK.SetInnerHtml(B[1][1]);else FCK.SetInnerHtml(B[0]);}else FCK.EditorDocument.body.innerHTML=B[0];this._SelectBookmark(B[1]);this.TypesCount=0;this.Changed=false;this.Typing=false;};
+var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=0;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);var E;while((E=C.firstChild)){if (E.contentWindow) E.contentWindow.document.body.innerHTML='';C.removeChild(E);};if (this.Mode==0){var F=this.IFrame=D.createElement('iframe');if (!FCKBrowserInfo.IsGecko) F.src='javascript:void(0)';F.frameBorder=0;F.width=F.height='100%';C.appendChild(F);if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){var G=A.match(FCKRegexLib.BeforeBody);var H=A.match(FCKRegexLib.AfterBody);if (G&&H){var I=A.substr(G[1].length,A.length-G[1].length-H[1].length);A=G[1]+' '+H[1];if (FCKBrowserInfo.IsGecko&&(I.length==0||FCKRegexLib.EmptyParagraph.test(I))) I='<br type="_moz">';this._BodyHTML=I;}else this._BodyHTML=A;};this.Window=F.contentWindow;var J=this.Document=this.Window.document;J.open();J.write(A);J.close();if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}else{var K=this.Textarea=D.createElement('textarea');K.className='SourceField';K.dir='ltr';FCKDomTools.SetElementStyles(K,{width:'100%',height:'100%',border:'none',resize:'none',outline:'none'});C.appendChild(K);K.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.disabled=true;A.body.contentEditable=true;A.body.removeAttribute("disabled");}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;this._BodyHTML=null;};A.designMode='on';try{A.execCommand('styleWithCSS',false,FCKConfig.GeckoUseSPAN);}catch (e){A.execCommand('useCSS',false,!FCKConfig.GeckoUseSPAN);};A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e){FCKTools.AddEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);}}};function FCKEditingArea_Document_AttributeNodeModified(A){var B=A.currentTarget.contentWindow._FCKEditingArea;if (B._timer) window.clearTimeout(B._timer);B._timer=FCKTools.SetTimeout(FCKEditingArea_MakeEditableByMutation,1000,B);};function FCKEditingArea_MakeEditableByMutation(){delete this._timer;FCKTools.RemoveEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);this.MakeEditable();};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE&&this.Document.hasFocus()) this._EnsureFocusIE();this.Window.focus();if (FCKBrowserInfo.IsIE) this._EnsureFocusIE();}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&&A.activeElement==this.Textarea) return;this.Textarea.focus();}}catch(e) {}};FCKEditingArea.prototype._EnsureFocusIE=function(){this.Document.body.setActive();var A=this.Document.selection.createRange();var B=A.parentElement();var C=B.nodeName.toLowerCase();if (B.childNodes.length>0||!(FCKListsLib.BlockElements[C]||FCKListsLib.NonEmptyBlockElements[C])){return;};A.moveEnd("character",1);A.select();if (A.boundingWidth>0){A.moveEnd("character",-1);A.select();}};function FCKEditingArea_Cleanup(){if (this.Document) this.Document.body.innerHTML="";this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}};
+var FCKKeystrokeHandler=function(A){this.Keystrokes={};this.CancelCtrlDefaults=(A!==false);};FCKKeystrokeHandler.prototype.AttachToElement=function(A){FCKTools.AddEventListenerEx(A,'keydown',_FCKKeystrokeHandler_OnKeyDown,this);if (FCKBrowserInfo.IsGecko10||FCKBrowserInfo.IsOpera||(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac)) FCKTools.AddEventListenerEx(A,'keypress',_FCKKeystrokeHandler_OnKeyPress,this);};FCKKeystrokeHandler.prototype.SetKeystrokes=function(){for (var i=0;i<arguments.length;i++){var A=arguments[i];if (!A) continue;if (typeof(A[0])=='object') this.SetKeystrokes.apply(this,A);else{if (A.length==1) delete this.Keystrokes[A[0]];else this.Keystrokes[A[0]]=A[1]===true?true:A;}}};function _FCKKeystrokeHandler_OnKeyDown(A,B){var C=A.keyCode||A.which;var D=0;if (A.ctrlKey||A.metaKey) D+=CTRL;if (A.shiftKey) D+=SHIFT;if (A.altKey) D+=ALT;var E=C+D;var F=B._CancelIt=false;var G=B.Keystrokes[E];if (G){if (G===true||!(B.OnKeystroke&&B.OnKeystroke.apply(B,G))) return true;F=true;};if (F||(B.CancelCtrlDefaults&&D==CTRL&&(C<33||C>40))){B._CancelIt=true;if (A.preventDefault) return A.preventDefault();A.returnValue=false;A.cancelBubble=true;return false;};return true;};function _FCKKeystrokeHandler_OnKeyPress(A,B){if (B._CancelIt){if (A.preventDefault) return A.preventDefault();return false;};return true;};
+FCK.DTD=(function(){X=FCKTools.Merge;var A,L,J,M,N,O,D,H,P,K,Q,F,G,C,B,E,I;A={isindex:1,fieldset:1};B={input:1,button:1,select:1,textarea:1,label:1};C=X({a:1},B);D=X({iframe:1},C);E={hr:1,ul:1,menu:1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1};F={ins:1,del:1,script:1};G=X({b:1,acronym:1,bdo:1,'var':1,'#':1,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1},F);H=X({sub:1,img:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1},G);I=X({p:1},H);J=X({iframe:1},H,B);K={img:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1};L=X({a:1},J);M={tr:1};N={'#':1};O=X({param:1},K);P=X({form:1},A,D,E,I);Q={li:1};return {col:{},tr:{td:1,th:1},img:{},colgroup:{col:1},noscript:P,td:P,br:{},th:P,center:P,kbd:L,button:X(I,E),basefont:{},h5:L,h4:L,samp:L,h6:L,ol:Q,h1:L,h3:L,option:N,h2:L,form:X(A,D,E,I),select:{optgroup:1,option:1},font:J,ins:P,menu:Q,abbr:L,label:L,table:{thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1},code:L,script:N,tfoot:M,cite:L,li:P,input:{},iframe:P,strong:J,textarea:N,noframes:P,big:J,small:J,span:J,hr:{},dt:L,sub:J,optgroup:{option:1},param:{},bdo:L,'var':J,div:P,object:O,sup:J,dd:P,strike:J,area:{},dir:Q,map:X({area:1,form:1,p:1},A,F,E),applet:O,dl:{dt:1,dd:1},del:P,isindex:{},fieldset:X({legend:1},K),thead:M,ul:Q,acronym:L,b:J,a:J,blockquote:P,caption:L,i:J,u:J,tbody:M,s:L,address:X(D,I),tt:J,legend:L,q:L,pre:X(G,C),p:L,em:J,dfn:L};})();
+var FCKStyle=function(A){this.Element=(A.Element||'span').toLowerCase();this._StyleDesc=A;};FCKStyle.prototype={GetType:function(){var A=this.GetType_$;if (A!=undefined) return A;var B=this.Element;if (B=='#'||FCKListsLib.StyleBlockElements[B]) A=0;else if (FCKListsLib.StyleObjectElements[B]) A=2;else A=1;return (this.GetType_$=A);},ApplyToSelection:function(A){var B=new FCKDomRange(A);B.MoveToSelection();this.ApplyToRange(B,true);},ApplyToRange:function(A,B){switch (this.GetType()){case 0:this.ApplyToRange=this._ApplyBlockStyle;break;case 1:this.ApplyToRange=this._ApplyInlineStyle;break;default:return;};this.ApplyToRange(A,B);},ApplyToObject:function(A){if (!A) return;this.BuildElement(null,A);},RemoveFromSelection:function(A){var B=new FCKDomRange(A);B.MoveToSelection();this.RemoveFromRange(B,true);},RemoveFromRange:function(A,B){var C;var D=this._GetAttribsForComparison();var E=this._GetOverridesForComparison();if (A.CheckIsCollapsed()){var C=A.CreateBookmark(true);var G=A.GetBookmarkNode(C,true);var H=new FCKElementPath(G.parentNode);var I=[];var J=!FCKDomTools.GetNextSibling(G);var K=J||!FCKDomTools.GetPreviousSibling(G);var L;var M=-1;for (var i=0;i<H.Elements.length;i++){var N=H.Elements[i];if (this.CheckElementRemovable(N)){if (K&&!FCKDomTools.CheckIsEmptyElement(N,function(el){return (el!=G);})){L=N;M=I.length-1;}else{var O=N.nodeName.toLowerCase();if (O==this.Element){for (var P in D){if (FCKDomTools.HasAttribute(N,P)){switch (P){case 'style':this._RemoveStylesFromElement(N);break;case 'class':if (FCKDomTools.GetAttributeValue(N,P)!=this.GetFinalAttributeValue(P)) continue;default:FCKDomTools.RemoveAttribute(N,P);}}}};this._RemoveOverrides(N,E[O]);this._RemoveNoAttribElement(N);}}else if (K) I.push(N);K=K&&((J&&!FCKDomTools.GetNextSibling(N))||(!J&&!FCKDomTools.GetPreviousSibling(N)));if (L&&(!K||(i==H.Elements.length-1))){var Q=FCKDomTools.RemoveNode(G);for (var j=0;j<=M;j++){var R=FCKDomTools.CloneElement(I[j]);R.appendChild(Q);Q=R;};if (J) FCKDomTools.InsertAfterNode(L,Q);else L.parentNode.insertBefore(Q,L);K=false;L=null;}};if (B) A.SelectBookmark(C);return;};A.Expand('inline_elements');var C=A.CreateBookmark(true);var T=A.GetBookmarkNode(C,true);var U=A.GetBookmarkNode(C,false);A.Release(true);var H=new FCKElementPath(T);var X=H.Elements;var N;for (var i=1;i<X.length;i++){N=X[i];if (N==H.Block||N==H.BlockLimit) break;if (this.CheckElementRemovable(N)) FCKDomTools.BreakParent(T,N,A);};H=new FCKElementPath(U);X=H.Elements;for (var i=1;i<X.length;i++){N=X[i];if (N==H.Block||N==H.BlockLimit) break;b=N.nodeName.toLowerCase();if (this.CheckElementRemovable(N)) FCKDomTools.BreakParent(U,N,A);};var Z=FCKDomTools.GetNextSourceNode(T,true);while (Z){var a=FCKDomTools.GetNextSourceNode(Z);if (Z.nodeType==1){var b=Z.nodeName.toLowerCase();var c=(b==this.Element);if (c){for (var P in D){if (FCKDomTools.HasAttribute(Z,P)){switch (P){case 'style':this._RemoveStylesFromElement(Z);break;case 'class':if (FCKDomTools.GetAttributeValue(Z,P)!=this.GetFinalAttributeValue(P)) continue;default:FCKDomTools.RemoveAttribute(Z,P);}}}}else c=!!E[b];if (c){this._RemoveOverrides(Z,E[b]);this._RemoveNoAttribElement(Z);}};if (a==U) break;Z=a;};this._FixBookmarkStart(T);if (B) A.SelectBookmark(C);},CheckElementRemovable:function(A,B){if (!A) return false;var C=A.nodeName.toLowerCase();if (C==this.Element){if (!B&&!FCKDomTools.HasAttributes(A)) return true;var D=this._GetAttribsForComparison();var E=(D._length==0);for (var F in D){if (F=='_length') continue;if (this._CompareAttributeValues(F,FCKDomTools.GetAttributeValue(A,F),(this.GetFinalAttributeValue(F)||''))){E=true;if (!B) break;}else{E=false;if (B) return false;}};if (E) return true;};var G=this._GetOverridesForComparison()[C];if (G){if (!(D=G.Attributes)) return true;for (var i=0;i<D.length;i++){var H=D[i][0];if (FCKDomTools.HasAttribute(A,H)){var I=D[i][1];if (I==null||(typeof I=='string'&&FCKDomTools.GetAttributeValue(A,H)==I)||I.test(FCKDomTools.GetAttributeValue(A,H))) return true;}}};return false;},CheckActive:function(A){switch (this.GetType()){case 0:return this.CheckElementRemovable(A.Block||A.BlockLimit);case 1:var B=A.Elements;for (var i=0;i<B.length;i++){var C=B[i];if (C==A.Block||C==A.BlockLimit) continue;if (this.CheckElementRemovable(C,true)) return true;}};return false;},RemoveFromElement:function(A){var B=this._GetAttribsForComparison();var C=this._GetOverridesForComparison();var D=A.getElementsByTagName(this.Element);for (var i=D.length-1;i>=0;i--){var E=D[i];for (var F in B){if (FCKDomTools.HasAttribute(E,F)){switch (F){case 'style':this._RemoveStylesFromElement(E);break;case 'class':if (FCKDomTools.GetAttributeValue(E,F)!=this.GetFinalAttributeValue(F)) continue;default:FCKDomTools.RemoveAttribute(E,F);}}};this._RemoveOverrides(E,C[this.Element]);this._RemoveNoAttribElement(E);};for (var G in C){if (G!=this.Element){D=A.getElementsByTagName(G);for (var i=D.length-1;i>=0;i--){var E=D[i];this._RemoveOverrides(E,C[G]);this._RemoveNoAttribElement(E);}}}},_RemoveStylesFromElement:function(A){var B=A.style.cssText;var C=this.GetFinalStyleValue();if (B.length>0&&C.length==0) return;C='(^|;)\\s*('+C.replace(/\s*([^ ]+):.*?(;|$)/g,'$1|').replace(/\|$/,'')+'):[^;]+';var D=new RegExp(C,'gi');B=B.replace(D,'').Trim();if (B.length==0||B==';') FCKDomTools.RemoveAttribute(A,'style');else A.style.cssText=B.replace(D,'');},_RemoveOverrides:function(A,B){var C=B&&B.Attributes;if (C){for (var i=0;i<C.length;i++){var D=C[i][0];if (FCKDomTools.HasAttribute(A,D)){var E=C[i][1];if (E==null||(E.test&&E.test(FCKDomTools.GetAttributeValue(A,D)))||(typeof E=='string'&&FCKDomTools.GetAttributeValue(A,D)==E)) FCKDomTools.RemoveAttribute(A,D);}}}},_RemoveNoAttribElement:function(A){if (!FCKDomTools.HasAttributes(A)){var B=A.firstChild;var C=A.lastChild;FCKDomTools.RemoveNode(A,true);this._MergeSiblings(B);if (B!=C) this._MergeSiblings(C);}},BuildElement:function(A,B){var C=B||A.createElement(this.Element);var D=this._StyleDesc.Attributes;var E;if (D){for (var F in D){E=this.GetFinalAttributeValue(F);if (F.toLowerCase()=='class') C.className=E;else C.setAttribute(F,E);}};if (this._GetStyleText().length>0) C.style.cssText=this.GetFinalStyleValue();return C;},_CompareAttributeValues:function(A,B,C){if (A=='style'&&B&&C){B=B.replace(/;$/,'').toLowerCase();C=C.replace(/;$/,'').toLowerCase();};return (B==C)},GetFinalAttributeValue:function(A){var B=this._StyleDesc.Attributes;var B=B?B[A]:null;if (!B&&A=='style') return this.GetFinalStyleValue();if (B&&this._Variables) B=B.Replace(FCKRegexLib.StyleVariableAttName,this._GetVariableReplace,this);return B;},GetFinalStyleValue:function(){var A=this._GetStyleText();if (A.length>0&&this._Variables){A=A.Replace(FCKRegexLib.StyleVariableAttName,this._GetVariableReplace,this);A=FCKTools.NormalizeCssText(A);};return A;},_GetVariableReplace:function(){return this._Variables[arguments[2]]||arguments[0];},SetVariable:function(A,B){var C=this._Variables;if (!C) C=this._Variables={};this._Variables[A]=B;},_ApplyBlockStyle:function(A,B){var C;if (B) C=A.CreateBookmark(true);var D=new FCKDomRangeIterator(A);D.EnforceRealBlocks=true;var E;while((E=D.GetNextParagraph())){var F=E.parentNode.insertBefore(this.BuildElement(A.Window.document),E);FCKDomTools.MoveChildren(E,F);FCKDomTools.RemoveNode(E);};if (B) A.SelectBookmark(C);},_ApplyInlineStyle:function(A,B){var C=A.Window.document;if (A.CheckIsCollapsed()){var D=this.BuildElement(C);A.InsertNode(D);A.MoveToPosition(D,2);A.Select();return;};var E=this.Element;var F=FCK.DTD[E]||FCK.DTD.span;var G=this._GetAttribsForComparison();var H;A.Expand('inline_elements');var I=A.CreateBookmark(true);var J=A.GetBookmarkNode(I,true);var K=A.GetBookmarkNode(I,false);A.Release(true);var L=FCKDomTools.GetNextSourceNode(J,true);while (L){var M=false;var N=L.nodeType;var O=N==1?L.nodeName.toLowerCase():null;if (!O||F[O]){if ((FCK.DTD[L.parentNode.nodeName.toLowerCase()]||FCK.DTD.span)[E]||!FCK.DTD[E]){if (!A.CheckHasRange()) A.SetStart(L,3);if (N!=1||L.childNodes.length==0){var P=L;var Q=P.parentNode;while (P==Q.lastChild&&F[Q.nodeName.toLowerCase()]){P=Q;};A.SetEnd(P,4);if (P==P.parentNode.lastChild&&!F[P.parentNode.nodeName.toLowerCase()]) M=true;}else{A.SetEnd(L,3);}}else M=true;}else M=true;L=FCKDomTools.GetNextSourceNode(L);if (L==K){L=null;M=true;};if (M&&A.CheckHasRange()&&!A.CheckIsCollapsed()){H=this.BuildElement(C);A.ExtractContents().AppendTo(H);if (H.innerHTML.RTrim().length>0){A.InsertNode(H);this.RemoveFromElement(H);this._MergeSiblings(H,this._GetAttribsForComparison());if (!FCKBrowserInfo.IsIE) H.normalize();};A.Release(true);}};this._FixBookmarkStart(J);if (B) A.SelectBookmark(I);},_FixBookmarkStart:function(A){var B;while ((B=A.nextSibling)){if (B.nodeType==1&&FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){if (!B.firstChild) FCKDomTools.RemoveNode(B);else FCKDomTools.MoveNode(A,B,true);continue;};if (B.nodeType==3&&B.length==0){FCKDomTools.RemoveNode(B);continue;};break;}},_MergeSiblings:function(A,B){if (!A||A.nodeType!=1||!FCKListsLib.InlineNonEmptyElements[A.nodeName.toLowerCase()]) return;this._MergeNextSibling(A,B);this._MergePreviousSibling(A,B);},_MergeNextSibling:function(A,B){var C=A.nextSibling;var D=(C&&C.nodeType==1&&C.getAttribute('_fck_bookmark'));if (D) C=C.nextSibling;if (C&&C.nodeType==1&&C.nodeName==A.nodeName){if (!B) B=this._CreateElementAttribsForComparison(A);if (this._CheckAttributesMatch(C,B)){var E=A.lastChild;if (D) FCKDomTools.MoveNode(A.nextSibling,A);FCKDomTools.MoveChildren(C,A);FCKDomTools.RemoveNode(C);if (E) this._MergeNextSibling(E);}}},_MergePreviousSibling:function(A,B){var C=A.previousSibling;var D=(C&&C.nodeType==1&&C.getAttribute('_fck_bookmark'));if (D) C=C.previousSibling;if (C&&C.nodeType==1&&C.nodeName==A.nodeName){if (!B) B=this._CreateElementAttribsForComparison(A);if (this._CheckAttributesMatch(C,B)){var E=A.firstChild;if (D) FCKDomTools.MoveNode(A.previousSibling,A,true);FCKDomTools.MoveChildren(C,A,true);FCKDomTools.RemoveNode(C);if (E) this._MergePreviousSibling(E);}}},_GetStyleText:function(){var A=this._StyleDesc.Styles;var B=(this._StyleDesc.Attributes?this._StyleDesc.Attributes['style']||'':'');if (B.length>0) B+=';';for (var C in A) B+=C+':'+A[C]+';';if (B.length>0&&!(/#\(/.test(B))){B=FCKTools.NormalizeCssText(B);};return (this._GetStyleText=function() { return B;})();},_GetAttribsForComparison:function(){var A=this._GetAttribsForComparison_$;if (A) return A;A={};var B=this._StyleDesc.Attributes;if (B){for (var C in B){A[C.toLowerCase()]=B[C].toLowerCase();}};if (this._GetStyleText().length>0){A['style']=this._GetStyleText().toLowerCase();};FCKTools.AppendLengthProperty(A,'_length');return (this._GetAttribsForComparison_$=A);},_GetOverridesForComparison:function(){var A=this._GetOverridesForComparison_$;if (A) return A;A={};var B=this._StyleDesc.Overrides;if (B){if (!FCKTools.IsArray(B)) B=[B];for (var i=0;i<B.length;i++){var C=B[i];var D;var E;var F;if (typeof C=='string') D=C.toLowerCase();else{D=C.Element?C.Element.toLowerCase():this.Element;F=C.Attributes;};E=A[D]||(A[D]={});if (F){var G=(E.Attributes=E.Attributes||[]);for (var H in F){G.push([H.toLowerCase(),F[H]]);}}}};return (this._GetOverridesForComparison_$=A);},_CreateElementAttribsForComparison:function(A){var B={};var C=0;for (var i=0;i<A.attributes.length;i++){var D=A.attributes[i];if (D.specified){B[D.nodeName.toLowerCase()]=FCKDomTools.GetAttributeValue(A,D).toLowerCase();C++;}};B._length=C;return B;},_CheckAttributesMatch:function(A,B){var C=A.attributes;var D=0;for (var i=0;i<C.length;i++){var E=C[i];if (E.specified){var F=E.nodeName.toLowerCase();var G=B[F];if (!G) break;if (G!=FCKDomTools.GetAttributeValue(A,E).toLowerCase()) break;D++;}};return (D==B._length);}};
+var FCKStyles=FCK.Styles={_Callbacks:{},_ObjectStyles:{},ApplyStyle:function(A){if (typeof A=='string') A=this.GetStyles()[A];if (A){if (A.GetType()==2) A.ApplyToObject(FCKSelection.GetSelectedElement());else A.ApplyToSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},RemoveStyle:function(A){if (typeof A=='string') A=this.GetStyles()[A];if (A){A.RemoveFromSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},AttachStyleStateChange:function(A,B,C){var D=this._Callbacks[A];if (!D) D=this._Callbacks[A]=[];D.push([B,C]);},CheckSelectionChanges:function(){var A=FCKSelection.GetBoundaryParentElement(true);if (!A) return;var B=new FCKElementPath(A);var C=this.GetStyles();for (var D in C){var E=this._Callbacks[D];if (E){var F=C[D];var G=F.CheckActive(B);if (F._LastState!=G){F._LastState=G;for (var i=0;i<E.length;i++){var H=E[i][0];var I=E[i][1];H.call(I||window,D,G);}}}}},CheckStyleInSelection:function(A){return false;},_GetRemoveFormatTagsRegex:function (){var A=new RegExp('^(?:'+FCKConfig.RemoveFormatTags.replace(/,/g,'|')+')$','i');return (this._GetRemoveFormatTagsRegex=function(){return A;})&&A;},RemoveAll:function(){var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();if (A.CheckIsCollapsed()) return;A.Expand('inline_elements');var B=A.CreateBookmark(true);var C=A.GetBookmarkNode(B,true);var D=A.GetBookmarkNode(B,false);A.Release(true);var E=this._GetRemoveFormatTagsRegex();var F=new FCKElementPath(C);var G=F.Elements;var H;for (var i=1;i<G.length;i++){H=G[i];if (H==F.Block||H==F.BlockLimit) break;if (E.test(H.nodeName)) FCKDomTools.BreakParent(C,H,A);};F=new FCKElementPath(D);G=F.Elements;for (var i=1;i<G.length;i++){H=G[i];if (H==F.Block||H==F.BlockLimit) break;elementName=H.nodeName.toLowerCase();if (E.test(H.nodeName)) FCKDomTools.BreakParent(D,H,A);};var I=FCKDomTools.GetNextSourceNode(C,true,1);while (I){if (I==D) break;var J=FCKDomTools.GetNextSourceNode(I,false,1);if (E.test(I.nodeName)) FCKDomTools.RemoveNode(I,true);I=J;};A.SelectBookmark(B);FCK.Events.FireEvent('OnSelectionChange');},GetStyle:function(A){return this.GetStyles()[A];},GetStyles:function(){var A=this._GetStyles;if (!A){A=this._GetStyles=FCKTools.Merge(this._LoadStylesCore(),this._LoadStylesCustom(),this._LoadStylesXml());};return A;},CheckHasObjectStyle:function(A){return!!this._ObjectStyles[A];},_LoadStylesCore:function(){var A={};var B=FCKConfig.CoreStyles;for (var C in B){var D=A['_FCK_'+C]=new FCKStyle(B[C]);D.IsCore=true;};return A;},_LoadStylesCustom:function(){var A={};var B=FCKConfig.CustomStyles;if (B){for (var C in B){var D=A[C]=new FCKStyle(B[C]);D.Name=C;}};return A;},_LoadStylesXml:function(){var A={};var B=FCKConfig.StylesXmlPath;if (!B||B.length==0) return A;var C=new FCKXml();C.LoadUrl(B);var D=FCKXml.TransformToObject(C.SelectSingleNode('Styles'));var E=D.$Style;if (!E) return A;for (var i=0;i<E.length;i++){var F=E[i];var G=(F.element||'').toLowerCase();if (G.length==0) throw('The element name is required. Error loading "'+B+'"');var H={Element:G,Attributes:{},Styles:{},Overrides:[]};var I=F.$Attribute||[];for (var j=0;j<I.length;j++){H.Attributes[I[j].name]=I[j].value;};var J=F.$Style||[];for (j=0;j<J.length;j++){H.Styles[J[j].name]=J[j].value;};var K=F.$Override;if (K){for (j=0;j<K.length;j++){var L=K[j];var M={Element:L.element};var N=L.$Attribute;if (N){M.Attributes={};for (var k=0;k<N.length;k++){var O=N[k].value||null;if (O){var P=O&&FCKRegexLib.RegExp.exec(O);if (P) O=new RegExp(P[1],P[2]||'');};M.Attributes[N[k].name]=O;}};H.Overrides.push(M);}};var Q=new FCKStyle(H);Q.Name=F.name||G;if (Q.GetType()==2) this._ObjectStyles[G]=true;A[Q.Name]=Q;};return A;}};
+var FCKListHandler={OutdentListItem:function(A){var B=A.parentNode;if (B.tagName.toUpperCase().Equals('UL','OL')){var C=FCKTools.GetElementDocument(A);var D=new FCKDocumentFragment(C);var E=D.RootNode;var F=false;var G=FCKDomTools.GetFirstChild(A,['UL','OL']);if (G){F=true;var H;while ((H=G.firstChild)) E.appendChild(G.removeChild(H));FCKDomTools.RemoveNode(G);};var I;var J=false;while ((I=A.nextSibling)){if (!F&&I.nodeType==1&&I.nodeName.toUpperCase()=='LI') J=F=true;E.appendChild(I.parentNode.removeChild(I));if (!J&&I.nodeType==1&&I.nodeName.toUpperCase().Equals('UL','OL')) FCKDomTools.RemoveNode(I,true);};var K=B.parentNode.tagName.toUpperCase();var L=(K=='LI');if (L||K.Equals('UL','OL')){if (F){var G=B.cloneNode(false);D.AppendTo(G);A.appendChild(G);}else if (L) D.InsertAfterNode(B.parentNode);else D.InsertAfterNode(B);if (L) FCKDomTools.InsertAfterNode(B.parentNode,B.removeChild(A));else FCKDomTools.InsertAfterNode(B,B.removeChild(A));}else{if (F){var N=B.cloneNode(false);D.AppendTo(N);FCKDomTools.InsertAfterNode(B,N);};var O=C.createElement(FCKConfig.EnterMode=='p'?'p':'div');FCKDomTools.MoveChildren(B.removeChild(A),O);FCKDomTools.InsertAfterNode(B,O);if (FCKConfig.EnterMode=='br'){if (FCKBrowserInfo.IsGecko) O.parentNode.insertBefore(FCKTools.CreateBogusBR(C),O);else FCKDomTools.InsertAfterNode(O,FCKTools.CreateBogusBR(C));FCKDomTools.RemoveNode(O,true);}};if (this.CheckEmptyList(B)) FCKDomTools.RemoveNode(B,true);}},CheckEmptyList:function(A){return (FCKDomTools.GetFirstChild(A,'LI')==null);},CheckListHasContents:function(A){var B=A.firstChild;while (B){switch (B.nodeType){case 1:if (!B.nodeName.IEquals('UL','LI')) return true;break;case 3:if (B.nodeValue.Trim().length>0) return true;};B=B.nextSibling;};return false;}};
+var FCKElementPath=function(A){var B=null;var C=null;var D=[];var e=A;while (e){if (e.nodeType==1){if (!this.LastElement) this.LastElement=e;var E=e.nodeName.toLowerCase();if (!C){if (!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (FCKListsLib.PathBlockLimitElements[E]!=null){if (!B&&E=='div') B=e;else C=e;}};D.push(e);if (E=='body') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;};
+var FCKDomRange=function(A){this.Window=A;this._Cache={};};FCKDomRange.prototype={_UpdateElementInfo:function(){var A=this._Range;if (!A) this.Release(true);else{var B=A.startContainer;var C=A.endContainer;var D=new FCKElementPath(B);this.StartNode=B.nodeType==3?B:B.childNodes[A.startOffset];this.StartContainer=B;this.StartBlock=D.Block;this.StartBlockLimit=D.BlockLimit;if (B!=C) D=new FCKElementPath(C);var E=C;if (A.endOffset==0){while (E&&!E.previousSibling) E=E.parentNode;if (E) E=E.previousSibling;}else if (E.nodeType==1) E=E.childNodes[A.endOffset-1];this.EndNode=E;this.EndContainer=C;this.EndBlock=D.Block;this.EndBlockLimit=D.BlockLimit;};this._Cache={};},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateElementInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;}},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;},Collapse:function(A){if (this._Range) this._Range.collapse(A);this._UpdateElementInfo();},Clone:function(){var A=FCKTools.CloneObject(this);if (this._Range) A._Range=this._Range.cloneRange();return A;},MoveToNodeContents:function(A){if (!this._Range) this._Range=this.CreateRange();this._Range.selectNodeContents(A);this._UpdateElementInfo();},MoveToElementStart:function(A){this.SetStart(A,1);this.SetEnd(A,1);},MoveToElementEditStart:function(A){var B;while ((B=A.firstChild)&&B.nodeType==1&&FCKListsLib.EmptyElements[B.nodeName.toLowerCase()]==null) A=B;this.MoveToElementStart(A);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(){if (this.CheckIsCollapsed()) return true;var A=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(A);FCKDomTools.TrimNode(A);return (A.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this._Cache;var B=A.IsStartOfBlock;if (B!=undefined) return B;var C=this.StartBlock||this.StartBlockLimit;var D=this._Range.startContainer;var E=this._Range.startOffset;var F;if (E>0){if (D.nodeType==3){var G=D.nodeValue.substr(0,E).Trim();if (G.length!=0) return A.IsStartOfBlock=false;}else F=D.childNodes[E-1];};if (!F) F=FCKDomTools.GetPreviousSourceNode(D,true,null,C);while (F){switch (F.nodeType){case 1:if (!FCKListsLib.InlineChildReqElements[F.nodeName.toLowerCase()]) return A.IsStartOfBlock=false;break;case 3:if (F.nodeValue.Trim().length>0) return A.IsStartOfBlock=false;};F=FCKDomTools.GetPreviousSourceNode(F,false,null,C);};return A.IsStartOfBlock=true;},CheckEndOfBlock:function(A){var B=this._Cache.IsEndOfBlock;if (B!=undefined) return B;var C=this.EndBlock||this.EndBlockLimit;var D=this._Range.endContainer;var E=this._Range.endOffset;var F;if (D.nodeType==3){var G=D.nodeValue;if (E<G.length){G=G.substr(E);if (G.Trim().length!=0) return this._Cache.IsEndOfBlock=false;}}else F=D.childNodes[E];if (!F) F=FCKDomTools.GetNextSourceNode(D,true,null,C);var H=false;while (F){switch (F.nodeType){case 1:var I=F.nodeName.toLowerCase();if (FCKListsLib.InlineChildReqElements[I]) break;if (I=='br'&&!H){H=true;break;};return this._Cache.IsEndOfBlock=false;case 3:if (F.nodeValue.Trim().length>0) return this._Cache.IsEndOfBlock=false;};F=FCKDomTools.GetNextSourceNode(F,false,null,C);};if (A) this.Select();return this._Cache.IsEndOfBlock=true;},CreateBookmark:function(A){var B={StartId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'S',EndId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'E'};var C=this.Window.document;var D;var E;var F;if (!this.CheckIsCollapsed()){E=C.createElement('span');E.style.display='none';E.id=B.EndId;E.setAttribute('_fck_bookmark',true);E.innerHTML=' ';F=this.Clone();F.Collapse(false);F.InsertNode(E);};D=C.createElement('span');D.style.display='none';D.id=B.StartId;D.setAttribute('_fck_bookmark',true);D.innerHTML=' ';F=this.Clone();F.Collapse(true);F.InsertNode(D);if (A){B.StartNode=D;B.EndNode=E;};if (E){this.SetStart(D,4);this.SetEnd(E,3);}else this.MoveToPosition(D,4);return B;},GetBookmarkNode:function(A,B){var C=this.Window.document;if (B) return A.StartNode||C.getElementById(A.StartId);else return A.EndNode||C.getElementById(A.EndId);},MoveToBookmark:function(A,B){var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);this.SetStart(C,3);if (!B) FCKDomTools.RemoveNode(C);if (D){this.SetEnd(D,3);if (!B) FCKDomTools.RemoveNode(D);}else this.Collapse(true);this._UpdateElementInfo();},CreateBookmark2:function(){if (!this._Range) return { "Start":0,"End":0 };var A={"Start":[this._Range.startOffset],"End":[this._Range.endOffset]};var B=this._Range.startContainer.previousSibling;var C=this._Range.endContainer.previousSibling;var D=this._Range.startContainer;var E=this._Range.endContainer;while (B&&B.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;};while (C&&C.nodeType==3){A.End[0]+=C.length;E=C;C=C.previousSibling;};if (D.nodeType==1&&D.childNodes[A.Start[0]]&&D.childNodes[A.Start[0]].nodeType==3){var F=D.childNodes[A.Start[0]];var G=0;while (F.previousSibling&&F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};D=F;A.Start[0]=G;};if (E.nodeType==1&&E.childNodes[A.End[0]]&&E.childNodes[A.End[0]].nodeType==3){var F=E.childNodes[A.End[0]];var G=0;while (F.previousSibling&&F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};E=F;A.End[0]=G;};A.Start=FCKDomTools.GetNodeAddress(D,true).concat(A.Start);A.End=FCKDomTools.GetNodeAddress(E,true).concat(A.End);return A;},MoveToBookmark2:function(A){var B=FCKDomTools.GetNodeFromAddress(this.Window.document,A.Start.slice(0,-1),true);var C=FCKDomTools.GetNodeFromAddress(this.Window.document,A.End.slice(0,-1),true);this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var D=A.Start[A.Start.length-1];var E=A.End[A.End.length-1];while (B.nodeType==3&&D>B.length){if (!B.nextSibling||B.nextSibling.nodeType!=3) break;D-=B.length;B=B.nextSibling;};while (C.nodeType==3&&E>C.length){if (!C.nextSibling||C.nextSibling.nodeType!=3) break;E-=C.length;C=C.nextSibling;};this._Range.setStart(B,D);this._Range.setEnd(C,E);this._UpdateElementInfo();},MoveToPosition:function(A,B){this.SetStart(A,B);this.Collapse(true);},SetStart:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setStart(A,0);break;case 2:D.setStart(A,A.childNodes.length);break;case 3:D.setStartBefore(A);break;case 4:D.setStartAfter(A);};if (!C) this._UpdateElementInfo();},SetEnd:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setEnd(A,0);break;case 2:D.setEnd(A,A.childNodes.length);break;case 3:D.setEndBefore(A);break;case 4:D.setEndAfter(A);};if (!C) this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'inline_elements':if (this._Range.startOffset==0){B=this._Range.startContainer;if (B.nodeType!=1) B=B.previousSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setStartBefore(B);if (B!=B.parentNode.firstChild) break;B=B.parentNode;}}};B=this._Range.endContainer;var C=this._Range.endOffset;if ((B.nodeType==3&&C>=B.nodeValue.length)||(B.nodeType==1&&C>=B.childNodes.length)||(B.nodeType!=1&&B.nodeType!=3)){if (B.nodeType!=1) B=B.nextSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setEndAfter(B);if (B!=B.parentNode.lastChild) break;B=B.parentNode;}}};break;case 'block_contents':case 'list_contents':var D=FCKListsLib.BlockBoundaries;if (A=='list_contents'||FCKConfig.EnterMode=='br') D=FCKListsLib.ListBoundaries;if (this.StartBlock&&FCKConfig.EnterMode!='br'&&A=='block_contents') this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){var E=B.childNodes[this._Range.startOffset];if (E) B=FCKDomTools.GetPreviousSourceNode(E,true);else B=B.lastChild||B;};while (B&&(B.nodeType!=1||(B!=this.StartBlockLimit&&!D[B.nodeName.toLowerCase()]))){this._Range.setStartBefore(B);B=B.previousSibling||B.parentNode;}};if (this.EndBlock&&FCKConfig.EnterMode!='br'&&A=='block_contents'&&this.EndBlock.nodeName.toLowerCase()!='li') this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;while (B&&(B.nodeType!=1||(B!=this.StartBlockLimit&&!D[B.nodeName.toLowerCase()]))){this._Range.setEndAfter(B);B=B.nextSibling||B.parentNode;};if (B&&B.nodeName.toLowerCase()=='br') this._Range.setEndAfter(B);};this._UpdateElementInfo();}},SplitBlock:function(){if (!this._Range) this.MoveToSelection();if (this.StartBlockLimit==this.EndBlockLimit){var A=this.StartBlock;var B=this.EndBlock;var C=null;if (FCKConfig.EnterMode!='br'){if (!A){A=this.FixBlock(true);B=this.EndBlock;};if (!B) B=this.FixBlock(false);};var D=(A!=null&&this.CheckStartOfBlock());var E=(B!=null&&this.CheckEndOfBlock());if (!this.CheckIsEmpty()) this.DeleteContents();if (A&&B&&A==B){if (E){C=new FCKElementPath(this.StartContainer);this.MoveToPosition(B,4);B=null;}else if (D){C=new FCKElementPath(this.StartContainer);this.MoveToPosition(A,3);A=null;}else{this.SetEnd(A,2);var F=this.ExtractContents();B=A.cloneNode(false);B.removeAttribute('id',false);F.AppendTo(B);FCKDomTools.InsertAfterNode(A,B);this.MoveToPosition(A,4);if (FCKBrowserInfo.IsGecko&&!A.nodeName.IEquals(['ul','ol'])) FCKTools.AppendBogusBr(A);}};return {PreviousBlock:A,NextBlock:B,WasStartOfBlock:D,WasEndOfBlock:E,ElementPath:C};};return null;},FixBlock:function(A){var B=this.CreateBookmark();this.Collapse(A);this.Expand('block_contents');var C=this.Window.document.createElement(FCKConfig.EnterMode);this.ExtractContents().AppendTo(C);FCKDomTools.TrimNode(C);this.InsertNode(C);this.MoveToBookmark(B);return C;},Release:function(A){if (!A) this.Window=null;this.StartNode=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndNode=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;this._Cache=null;},CheckHasRange:function(){return!!this._Range;},GetTouchedStartNode:function(){var A=this._Range;var B=A.startContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.startOffset]||B;},GetTouchedEndNode:function(){var A=this._Range;var B=A.endContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.endOffset-1]||B;}};
+FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);var A=this.Window.getSelection();if (A&&A.rangeCount>0){this._Range=FCKW3CRange.CreateFromRange(this.Window.document,A.getRangeAt(0));this._UpdateElementInfo();}else if (this.Window.document) this.MoveToElementStart(this.Window.document.body);};FCKDomRange.prototype.Select=function(){var A=this._Range;if (A){var B=A.startContainer;if (A.collapsed&&B.nodeType==1&&B.childNodes.length==0) B.appendChild(A._Document.createTextNode(''));var C=this.Window.document.createRange();C.setStart(B,A.startOffset);try{C.setEnd(A.endContainer,A.endOffset);}catch (e){if (e.toString().Contains('NS_ERROR_ILLEGAL_VALUE')){A.collapse(true);C.setEnd(A.endContainer,A.endOffset);}else throw(e);};var D=this.Window.getSelection();D.removeAllRanges();D.addRange(C);}};FCKDomRange.prototype.SelectBookmark=function(A){var B=this.Window.document.createRange();var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);B.setStart(C.parentNode,FCKDomTools.GetIndexOf(C));FCKDomTools.RemoveNode(C);if (D){B.setEnd(D.parentNode,FCKDomTools.GetIndexOf(D));FCKDomTools.RemoveNode(D);};var E=this.Window.getSelection();E.removeAllRanges();E.addRange(B);}
+var FCKDomRangeIterator=function(A){this.Range=A;this.ForceBrBreak=false;this.EnforceRealBlocks=false;};FCKDomRangeIterator.CreateFromSelection=function(A){var B=new FCKDomRange(A);B.MoveToSelection();return new FCKDomRangeIterator(B);};FCKDomRangeIterator.prototype={GetNextParagraph:function(){var A;var B;var C;var D;var E;var F=this.ForceBrBreak?FCKListsLib.ListBoundaries:FCKListsLib.BlockBoundaries;if (!this._LastNode){var B=this.Range.Clone();B.Expand(this.ForceBrBreak?'list_contents':'block_contents');this._NextNode=B.GetTouchedStartNode();this._LastNode=B.GetTouchedEndNode();B=null;};var H=this._NextNode;var I=this._LastNode;while (H){var J=false;var K=(H.nodeType!=1);var L=false;if (!K){var M=H.nodeName.toLowerCase();if (F[M]){if (M=='br') K=true;else if (!B&&H.childNodes.length==0&&M!='hr'){A=H;C=H==I;break;};J=true;}else{if (H.firstChild){if (!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};H=H.firstChild;continue;};K=true;}}else if (H.nodeType==3){if (/^[\r\n\t ]+$/.test(H.nodeValue)) K=false;};if (K&&!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};C=((!J||K)&&H==I);if (B&&!J){while (!H.nextSibling&&!C){var N=H.parentNode;if (F[N.nodeName.toLowerCase()]){J=true;C=C||(N==I);break;};H=N;C=(H==I);L=true;}};if (K) B.SetEnd(H,4,true);if ((J||C)&&B){B._UpdateElementInfo();if (B.StartNode==B.EndNode&&B.StartNode.parentNode==B.StartBlockLimit&&B.StartNode.getAttribute&&B.StartNode.getAttribute('_fck_bookmark')) B=null;else break;};if (C) break;H=FCKDomTools.GetNextSourceNode(H,L,null,I);};if (!A){if (!B){this._NextNode=null;return null;};A=B.StartBlock;if (!A&&!this.EnforceRealBlocks&&B.StartBlockLimit.nodeName.IEquals('DIV','TH','TD')&&B.CheckStartOfBlock()&&B.CheckEndOfBlock()){A=B.StartBlockLimit;}else if (!A||(this.EnforceRealBlocks&&A.nodeName.toLowerCase()=='li')){A=this.Range.Window.document.createElement(FCKConfig.EnterMode=='p'?'p':'div');B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);B.InsertNode(A);D=true;E=true;}else if (A.nodeName.toLowerCase()!='li'){if (!B.CheckStartOfBlock()||!B.CheckEndOfBlock()){A=A.cloneNode(false);B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);var O=B.SplitBlock();D=!O.WasStartOfBlock;E=!O.WasEndOfBlock;FCKDebug.Output('removePreviousBr='+D+',removeLastBr='+E);B.InsertNode(A);}}else if (!C){this._NextNode=A==I?null:FCKDomTools.GetNextSourceNode(B.EndNode,true,null,I);return A;}};if (D){var P=A.previousSibling;if (P&&P.nodeType==1){if (P.nodeName.toLowerCase()=='br') P.parentNode.removeChild(P);else if (P.lastChild&&P.lastChild.nodeName.IEquals('br')) P.removeChild(P.lastChild);}};if (E){var Q=A.lastChild;if (Q&&Q.nodeType==1&&Q.nodeName.toLowerCase()=='br') A.removeChild(Q);};this._NextNode=(C||A==I)?null:FCKDomTools.GetNextSourceNode(A,true,null,I);return A;}};
var FCKDocumentFragment=function(A,B){this.RootNode=B||A.createDocumentFragment();};FCKDocumentFragment.prototype={AppendTo:function(A){A.appendChild(this.RootNode);},InsertAfterNode:function(A){FCKDomTools.InsertAfterNode(A,this.RootNode);}}
-var FCKW3CRange=function(A){this._Document=A;this.startContainer=null;this.startOffset=null;this.endContainer=null;this.endOffset=null;this.collapsed=true;};FCKW3CRange.CreateRange=function(A){return new FCKW3CRange(A);};FCKW3CRange.CreateFromRange=function(A,B){var C=FCKW3CRange.CreateRange(A);C.setStart(B.startContainer,B.startOffset);C.setEnd(B.endContainer,B.endOffset);return C;};FCKW3CRange.prototype={_UpdateCollapsed:function(){this.collapsed=(this.startContainer==this.endContainer&&this.startOffset==this.endOffset);},setStart:function(A,B){this.startContainer=A;this.startOffset=B;if (!this.endContainer){this.endContainer=A;this.endOffset=B;};this._UpdateCollapsed();},setEnd:function(A,B){this.endContainer=A;this.endOffset=B;if (!this.startContainer){this.startContainer=A;this.startOffset=B;};this._UpdateCollapsed();},setStartAfter:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setStartBefore:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A));},setEndAfter:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setEndBefore:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A));},collapse:function(A){if (A){this.endContainer=this.startContainer;this.endOffset=this.startOffset;}else{this.startContainer=this.endContainer;this.startOffset=this.endOffset;};this.collapsed=true;},selectNodeContents:function(A){this.setStart(A,0);this.setEnd(A,A.nodeType==3?A.data.length:A.childNodes.length);},insertNode:function(A){var B=this.startContainer;var C=this.startOffset;if (B.nodeType==3){B.splitText(C);if (B==this.endContainer) this.setEnd(B.nextSibling,this.endOffset-this.startOffset);FCKDomTools.InsertAfterNode(B,A);return;}else{B.insertBefore(A,B.childNodes[C]||null);if (B==this.endContainer){this.endOffset++;this.collapsed=false;}}},deleteContents:function(){if (this.collapsed) return;this._ExecContentsAction(0);},extractContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(1,A);return A;},cloneContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(2,A);return A;},_ExecContentsAction:function(A,B){var C=this.startContainer;var D=this.endContainer;var E=this.startOffset;var F=this.endOffset;var G=false;var H=false;if (D.nodeType==3) D=D.splitText(F);else{if (D.childNodes.length>0){if (F>D.childNodes.length-1){D=FCKDomTools.InsertAfterNode(D.lastChild,this._Document.createTextNode(''));H=true;}else D=D.childNodes[F];}};if (C.nodeType==3){C.splitText(E);if (C==D) D=C.nextSibling;}else{if (C.childNodes.length>0&&E<=C.childNodes.length-1){if (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else C=C.childNodes[E].previousSibling;}};var I=FCKDomTools.GetParents(C);var J=FCKDomTools.GetParents(D);var i,topStart,topEnd;for (i=0;i<I.length;i++){topStart=I[i];topEnd=J[i];if (topStart!=topEnd) break;};var K,levelStartNode,levelClone,currentNode,currentSibling;if (B) K=B.RootNode;for (var j=i;j<I.length;j++){levelStartNode=I[j];if (K&&levelStartNode!=C) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==C));currentNode=levelStartNode.nextSibling;while(currentNode){if (currentNode==J[j]||currentNode==D) break;currentSibling=currentNode.nextSibling;if (A==2) K.appendChild(currentNode.cloneNode(true));else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.appendChild(currentNode);};currentNode=currentSibling;};if (K) K=levelClone;};if (B) K=B.RootNode;for (var k=i;k<J.length;k++){levelStartNode=J[k];if (A>0&&levelStartNode!=D) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==D));if (!I[k]||levelStartNode.parentNode!=I[k].parentNode){currentNode=levelStartNode.previousSibling;while(currentNode){if (currentNode==I[k]||currentNode==C) break;currentSibling=currentNode.previousSibling;if (A==2) K.insertBefore(currentNode.cloneNode(true),K.firstChild);else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.insertBefore(currentNode,K.firstChild);};currentNode=currentSibling;}};if (K) K=levelClone;};if (A==2){var L=this.startContainer;if (L.nodeType==3){L.data+=L.nextSibling.data;L.parentNode.removeChild(L.nextSibling);};var M=this.endContainer;if (M.nodeType==3&&M.nextSibling){M.data+=M.nextSibling.data;M.parentNode.removeChild(M.nextSibling);}}else{if (topStart&&topEnd&&(C.parentNode!=topStart.parentNode||D.parentNode!=topEnd.parentNode)) this.setStart(topEnd.parentNode,FCKDomTools.GetIndexOf(topEnd));this.collapse(true);};if(G) C.parentNode.removeChild(C);if(H&&D.parentNode) D.parentNode.removeChild(D);},cloneRange:function(){return FCKW3CRange.CreateFromRange(this._Document,this);},toString:function(){var A=this.cloneContents();var B=this._Document.createElement('div');A.AppendTo(B);return B.textContent||B.innerText;}};
-var FCKEnterKey=function(A,B,C){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var D=new FCKKeystrokeHandler(false);D._EnterKey=this;D.OnKeystroke=FCKEnterKey_OnKeystroke;D.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[8,'Backspace'],[46,'Delete']]);D.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){this._HasShift=(B===true);var C=A||this.EnterMode;if (C=='br') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(C);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (!B.CheckIsCollapsed()) return false;var C=B.StartBlock;var D=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&C&&D){if (!B.CheckIsCollapsed()){var E=B.CheckEndOfBlock();B.DeleteContents();if (C!=D){B.SetStart(D,1);B.SetEnd(D,1);};B.Select();A=(C==D);};if (B.CheckStartOfBlock()){var F=B.StartBlock;var G=FCKDomTools.GetPreviousSourceElement(F,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,G,F);}else if (FCKBrowserInfo.IsGecko){B.Select();}};B.Release();return A;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&&C.nodeName.IEquals('LI')&&C.parentNode.parentNode.nodeName.IEquals('LI')){B=C.parentNode.parentNode;C=FCKListHandler.OutdentListItem(C);};if (B&&B.nodeName.IEquals('LI')){var E=FCKDomTools.GetLastChild(B,['UL','OL']);while (E){B=FCKDomTools.GetLastChild(E,'LI');E=FCKDomTools.GetLastChild(B,['UL','OL']);}};if (B&&C){if (C.nodeName.IEquals('LI')&&!B.nodeName.IEquals('LI')) C=FCKListHandler.OutdentListItem(C);var F=C.parentNode;if (B.nodeName.IEquals('TABLE','HR')){FCKDomTools.RemoveNode(B);D=true;}else{FCKDomTools.RemoveNode(C);while (F.innerHTML.Trim().length==0){var G=F.parentNode;G.removeChild(F);F=G;};FCKDomTools.TrimNode(C);FCKDomTools.TrimNode(B);A.SetStart(B,2);A.Collapse(true);var H=A.CreateBookmark();FCKDomTools.MoveChildren(C,B);A.MoveToBookmark(H);A.Select();D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.CheckIsCollapsed()&&B.CheckEndOfBlock(FCKBrowserInfo.IsGecko)){var C=B.StartBlock;var D=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,C,D);};B.Release();return A;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){if (!B.StartBlock) this._FixBlock(B,true,A);if (!B.EndBlock) this._FixBlock(B,false,A);var C=B.StartBlock;var D=B.EndBlock;if (!B.CheckIsEmpty()) B.DeleteContents();if (C==D){var E;var F=B.CheckStartOfBlock();var G=B.CheckEndOfBlock();if (F&&!G){E=C.cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) E.innerHTML=GECKO_BOGUS;C.parentNode.insertBefore(E,C);if (FCKBrowserInfo.IsIE){B.MoveToNodeContents(E);B.Select();};B.MoveToElementStart(C);}else{if (G){var H=C.tagName.toUpperCase();if (F&&H=='LI'){var I=FCKListHandler.OutdentListItem(C);B.MoveToElementStart(I);}else{if ((/^H[1-6]$/).test(H)) E=this.Window.document.createElement(A);else E=C.cloneNode(false);if (FCKBrowserInfo.IsGeckoLike){E.innerHTML=GECKO_BOGUS;if (F) C.innerHTML=GECKO_BOGUS;}}}else{B.SetEnd(C,2);var J=B.ExtractContents();E=C.cloneNode(false);FCKDomTools.TrimNode(J.RootNode);if (J.RootNode.firstChild.nodeType==1&&J.RootNode.firstChild.tagName.toUpperCase().Equals('UL','OL')) E.innerHTML=GECKO_BOGUS;J.AppendTo(E);if (FCKBrowserInfo.IsGecko){var K=FCKDomTools.GetLastChild(E);if (!K||K.nodeName.toLowerCase()!='br'||K.getAttribute('type',2)!='_moz') E.appendChild(FCKTools.CreateBogusBR(this.Window.document));}};if (E){FCKDomTools.InsertAfterNode(C,E);B.MoveToElementStart(E);if (FCKBrowserInfo.IsGecko) E.scrollIntoView(false);}}}else{B.MoveToElementStart(D);};B.Select();};B.Release();return true;};FCKEnterKey.prototype._ExecuteEnterBr=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){B.DeleteContents();B.MoveToSelection();var C=B.CheckStartOfBlock();var D=B.CheckEndOfBlock();var E=B.StartBlock?B.StartBlock.tagName.toUpperCase():'';var F=this._HasShift;if (!F&&E=='LI') return this._ExecuteEnterBlock(null);if (!F&&D&&(/^H[1-6]$/).test(E)){FCKDebug.Output('BR - Header');FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createElement('br'));if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createTextNode(''));B.SetStart(B.StartBlock.nextSibling,FCKBrowserInfo.IsIE?3:1);}else{FCKDebug.Output('BR - No Header');var G=this.Window.document.createElement('br');B.InsertNode(G);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(G,this.Window.document.createTextNode(''));if (D&&FCKBrowserInfo.IsGecko){var H=FCKDomTools.GetLastChild(G.parentNode,'BR');if (H&&H.getAttribute('type',2)!='_moz') G.parentNode.appendChild(FCKTools.CreateBogusBR(this.Window.document));};if (FCKBrowserInfo.IsIE) B.SetStart(G,4);else B.SetStart(G.nextSibling,1);};B.Collapse(true);B.Select();};B.Release();return true;};FCKEnterKey.prototype._FixBlock=function(A,B,C){var D=A.CreateBookmark();A.Collapse(B);A.Expand('block_contents');var E=this.Window.document.createElement(C);A.ExtractContents().AppendTo(E);FCKDomTools.TrimNode(E);A.InsertNode(E);A.MoveToBookmark(D);}
-var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B,i=0;while((B=this._Items[i++])) B.ProcessDocument(A);};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCK.EditorDocument.createElement('IMG');C.className=A;C.src=FCKConfig.FullBasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0){if (C.innerHTML!=''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.childNodes.length==1&&C.childNodes[0].style&&C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKFlashProcessor=FCKDocumentProcessor.AppendNew();FCKFlashProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('EMBED');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.src.EndsWith('.swf',true)){var D=C.cloneNode(true);if (FCKBrowserInfo.IsIE){var E=['scale','play','loop','menu','wmode','quality'];for (var F=0;i<E.length;i++){var G=C.getAttribute(E[F]);if (G) D.setAttribute(E[F],G);}};var H=FCKDocumentProcessor_CreateFakeImage('FCK__Flash',D);H.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(H,C);C.parentNode.insertBefore(H,C);C.parentNode.removeChild(C);}}};FCKFlashProcessor.RefreshView=function(A,B){if (B.width>0) A.style.width=FCKTools.ConvertHtmlSizeToStyle(B.width);if (B.height>0) A.style.height=FCKTools.ConvertHtmlSizeToStyle(B.height);};FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length>0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length>0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};
-var FCKSelection=FCK.Selection={};
-FCKSelection.GetType=function(){this._Type='Text';var A;try { A=FCK.EditorWindow.getSelection();}catch (e) {};if (A&&A.rangeCount==1){var B=A.getRangeAt(0);if (B.startContainer==B.endContainer&&(B.endOffset-B.startOffset)==1&&B.startContainer.nodeType!=Node.TEXT_NODE) this._Type='Control';};return this._Type;};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=FCK.EditorWindow.getSelection();return A.anchorNode.childNodes[A.anchorOffset];};return null;};FCKSelection.GetParentElement=function(){if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentNode;else{var A=FCK.EditorWindow.getSelection();if (A){var B=A.anchorNode;while (B&&B.nodeType!=1) B=B.parentNode;return B;}};return null;};FCKSelection.SelectNode=function(A){var B=FCK.EditorDocument.createRange();B.selectNode(A);var C=FCK.EditorWindow.getSelection();C.removeAllRanges();C.addRange(B);};FCKSelection.Collapse=function(A){var B=FCK.EditorWindow.getSelection();if (A==null||A===true) B.collapseToStart();else B.collapseToEnd();};FCKSelection.HasAncestorNode=function(A){var B=this.GetSelectedElement();if (!B&&FCK.EditorWindow){try { B=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;}catch(e){}};while (B){if (B.nodeType==1&&B.tagName==A) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B;var C=this.GetSelectedElement();if (!C) C=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;while (C){if (C.nodeName==A) return C;C=C.parentNode;};return null;};FCKSelection.Delete=function(){var A=FCK.EditorWindow.getSelection();for (var i=0;i<A.rangeCount;i++){A.getRangeAt(i).deleteContents();};return A;};
-var FCKTableHandler={};FCKTableHandler.InsertRow=function(){var A=FCKSelection.MoveToAncestorNode('TR');if (!A) return;var B=A.cloneNode(true);A.parentNode.insertBefore(B,A);FCKTableHandler.ClearRow(A);};FCKTableHandler.DeleteRows=function(A){if (!A) A=FCKSelection.MoveToAncestorNode('TR');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');if (B.rows.length==1){FCKTableHandler.DeleteTable(B);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex+1;for (var i=0;i<B.rows.length;i++){var D=B.rows[i];if (D.cells.length<C) continue;A=D.cells[C-1].cloneNode(false);if (FCKBrowserInfo.IsGecko) A.innerHTML=GECKO_BOGUS;var E=D.cells[C];if (E) D.insertBefore(A,E);else D.appendChild(A);}};FCKTableHandler.DeleteColumns=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex;for (var i=B.rows.length-1;i>=0;i--){var D=B.rows[i];if (C==0&&D.cells.length==1){FCKTableHandler.DeleteRows(D);continue;};if (D.cells[C]) D.removeChild(D.cells[C]);}};FCKTableHandler.InsertCell=function(A){var B=A?A:FCKSelection.MoveToAncestorNode('TD');if (!B) return null;var C=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGecko) C.innerHTML=GECKO_BOGUS;if (B.cellIndex==B.parentNode.cells.length-1){B.parentNode.appendChild(C);}else{B.parentNode.insertBefore(C,B.nextSibling);};return C;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler.MergeCells=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<2) return;if (A[0].parentNode!=A[A.length-1].parentNode) return;var B=isNaN(A[0].colSpan)?1:A[0].colSpan;var C='';var D=FCK.EditorDocument.createDocumentFragment();for (var i=A.length-1;i>=0;i--){var E=A[i];for (var c=E.childNodes.length-1;c>=0;c--){var F=E.removeChild(E.childNodes[c]);if ((F.hasAttribute&&F.hasAttribute('_moz_editor_bogus_node'))||(F.getAttribute&&F.getAttribute('type',2)=='_moz')) continue;D.insertBefore(F,D.firstChild);};if (i>0){B+=isNaN(E.colSpan)?1:E.colSpan;FCKTableHandler.DeleteCell(E);}};A[0].colSpan=B;if (FCKBrowserInfo.IsGecko&&D.childNodes.length==0) A[0].innerHTML=GECKO_BOGUS;else A[0].appendChild(D);};FCKTableHandler.SplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=FCKTableHandler._GetCellIndexSpan(B,A[0].parentNode.rowIndex,A[0]);var D=this._GetCollumnCells(B,C);for (var i=0;i<D.length;i++){if (D[i]==A[0]){var E=this.InsertCell(A[0]);if (!isNaN(A[0].rowSpan)&&A[0].rowSpan>1) E.rowSpan=A[0].rowSpan;}else{if (isNaN(D[i].colSpan)) D[i].colSpan=2;else D[i].colSpan+=1;}}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length<B+1) return null;var D=A[B];for (var c=0;c<D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCollumnCells=function(A,B){var C=[];for (var r=0;r<A.length;r++){var D=A[r][B];if (D&&(C.length==0||C[C.length-1]!=D)) C[C.length]=D;};return C;};FCKTableHandler._CreateTableMap=function(A){var B=A.rows;var r=-1;var C=[];for (var i=0;i<B.length;i++){r++;if (!C[r]) C[r]=[];var c=-1;for (var j=0;j<B[i].cells.length;j++){var D=B[i].cells[j];c++;while (C[r][c]) c++;var E=isNaN(D.colSpan)?1:D.colSpan;var F=isNaN(D.rowSpan)?1:D.rowSpan;for (var G=0;G<F;G++){if (!C[r+G]) C[r+G]=[];for (var H=0;H<E;H++){C[r+G][c+H]=B[i].cells[j];}};c+=E-1;}};return C;};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsGecko) B[i].innerHTML=GECKO_BOGUS;else B[i].innerHTML='';}};
-FCKTableHandler.GetSelectedCells=function(){var A=[];var B=FCK.EditorWindow.getSelection();if (B.rangeCount==1&&B.anchorNode.nodeType==3){var C=FCKTools.GetElementAscensor(B.anchorNode,'TD,TH');if (C){A[0]=C;return A;}};for (var i=0;i<B.rangeCount;i++){var D=B.getRangeAt(i);var E;if (D.startContainer.tagName.Equals('TD','TH')) E=D.startContainer;else E=D.startContainer.childNodes[D.startOffset];if (E.tagName.Equals('TD','TH')) A[A.length]=E;};return A;};
-var FCKXml=function(){};FCKXml.prototype.LoadUrl=function(A){this.Error=false;var B=this;var C=FCKTools.CreateXmlObject('XmlHttp');C.open("GET",A,false);C.send(null);if (C.status==200||C.status==304) this.DOMDocument=C.responseXML;else if (C.status==0&&C.readyState==4) this.DOMDocument=C.responseXML;else this.DOMDocument=null;if (this.DOMDocument==null||this.DOMDocument.firstChild==null){this.Error=true;if (window.confirm('Error loading "'+A+'"\r\nDo you want to see more info?')) alert('URL requested: "'+A+'"\r\nServer response:\r\nStatus: '+C.status+'\r\nResponse text:\r\n'+C.responseText);}};FCKXml.prototype.SelectNodes=function(A,B){if (this.Error) return [];var C=[];var D=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);if (D){var E=D.iterateNext();while(E){C[C.length]=E;E=D.iterateNext();}};return C;};FCKXml.prototype.SelectSingleNode=function(A,B){if (this.Error) return null;var C=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),9,null);if (C&&C.singleNodeValue) return C.singleNodeValue;else return null;}
-var FCKStyleDef=function(A,B){this.Name=A;this.Element=B.toUpperCase();this.IsObjectElement=FCKRegexLib.ObjectElements.test(this.Element);this.Attributes={};};FCKStyleDef.prototype.AddAttribute=function(A,B){this.Attributes[A]=B;};FCKStyleDef.prototype.GetOpenerTag=function(){var s='<'+this.Element;for (var a in this.Attributes) s+=' '+a+'="'+this.Attributes[a]+'"';return s+'>';};FCKStyleDef.prototype.GetCloserTag=function(){return '</'+this.Element+'>';};FCKStyleDef.prototype.RemoveFromSelection=function(){if (FCKSelection.GetType()=='Control') this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement());else this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetParentElement());}
-FCKStyleDef.prototype.ApplyToSelection=function(){if (FCKSelection.GetType()=='Text'&&!this.IsObjectElement){var A=FCK.ToolbarSet.CurrentInstance.EditorWindow.getSelection();var e=FCK.ToolbarSet.CurrentInstance.EditorDocument.createElement(this.Element);for (var i=0;i<A.rangeCount;i++){e.appendChild(A.getRangeAt(i).extractContents());};this._AddAttributes(e);this._RemoveDuplicates(e);var B=A.getRangeAt(0);B.insertNode(e);}else{var C=FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement();if (C.tagName==this.Element) this._AddAttributes(C);}};FCKStyleDef.prototype._AddAttributes=function(A){for (var a in this.Attributes){switch (a.toLowerCase()){case 'src':A.setAttribute('_fcksavedurl',this.Attributes[a],0);default:A.setAttribute(a,this.Attributes[a],0);}}};FCKStyleDef.prototype._RemoveDuplicates=function(A){for (var i=0;i<A.childNodes.length;i++){var B=A.childNodes[i];if (B.nodeType!=1) continue;this._RemoveDuplicates(B);if (this.IsEqual(B)) FCKTools.RemoveOuterTags(B);}};FCKStyleDef.prototype.IsEqual=function(e){if (e.tagName!=this.Element) return false;for (var a in this.Attributes){if (e.getAttribute(a)!=this.Attributes[a]) return false;};return true;};FCKStyleDef.prototype._RemoveMe=function(A){if (!A) return;var B=A.parentNode;if (A.nodeType==1&&this.IsEqual(A)){if (this.IsObjectElement){for (var a in this.Attributes) A.removeAttribute(a,0);return;}else FCKTools.RemoveOuterTags(A);};this._RemoveMe(B);}
-var FCKStylesLoader=function(){this.Styles={};this.StyleGroups={};this.Loaded=false;this.HasObjectElements=false;};FCKStylesLoader.prototype.Load=function(A){var B=new FCKXml();B.LoadUrl(A);var C=B.SelectNodes('Styles/Style');for (var i=0;i<C.length;i++){var D=C[i].attributes.getNamedItem('element').value.toUpperCase();var E=new FCKStyleDef(C[i].attributes.getNamedItem('name').value,D);if (E.IsObjectElement) this.HasObjectElements=true;var F=B.SelectNodes('Attribute',C[i]);for (var j=0;j<F.length;j++){var G=F[j].attributes.getNamedItem('name').value;var H=F[j].attributes.getNamedItem('value').value;if (G.toLowerCase()=='style'){var I=document.createElement('SPAN');I.style.cssText=H;H=I.style.cssText;};E.AddAttribute(G,H);};this.Styles[E.Name]=E;var J=this.StyleGroups[D];if (J==null){this.StyleGroups[D]=[];J=this.StyleGroups[D];};J[J.length]=E;};this.Loaded=true;}
+var FCKW3CRange=function(A){this._Document=A;this.startContainer=null;this.startOffset=null;this.endContainer=null;this.endOffset=null;this.collapsed=true;};FCKW3CRange.CreateRange=function(A){return new FCKW3CRange(A);};FCKW3CRange.CreateFromRange=function(A,B){var C=FCKW3CRange.CreateRange(A);C.setStart(B.startContainer,B.startOffset);C.setEnd(B.endContainer,B.endOffset);return C;};FCKW3CRange.prototype={_UpdateCollapsed:function(){this.collapsed=(this.startContainer==this.endContainer&&this.startOffset==this.endOffset);},setStart:function(A,B){this.startContainer=A;this.startOffset=B;if (!this.endContainer){this.endContainer=A;this.endOffset=B;};this._UpdateCollapsed();},setEnd:function(A,B){this.endContainer=A;this.endOffset=B;if (!this.startContainer){this.startContainer=A;this.startOffset=B;};this._UpdateCollapsed();},setStartAfter:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setStartBefore:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A));},setEndAfter:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setEndBefore:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A));},collapse:function(A){if (A){this.endContainer=this.startContainer;this.endOffset=this.startOffset;}else{this.startContainer=this.endContainer;this.startOffset=this.endOffset;};this.collapsed=true;},selectNodeContents:function(A){this.setStart(A,0);this.setEnd(A,A.nodeType==3?A.data.length:A.childNodes.length);},insertNode:function(A){var B=this.startContainer;var C=this.startOffset;if (B.nodeType==3){B.splitText(C);if (B==this.endContainer) this.setEnd(B.nextSibling,this.endOffset-this.startOffset);FCKDomTools.InsertAfterNode(B,A);return;}else{B.insertBefore(A,B.childNodes[C]||null);if (B==this.endContainer){this.endOffset++;this.collapsed=false;}}},deleteContents:function(){if (this.collapsed) return;this._ExecContentsAction(0);},extractContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(1,A);return A;},cloneContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(2,A);return A;},_ExecContentsAction:function(A,B){var C=this.startContainer;var D=this.endContainer;var E=this.startOffset;var F=this.endOffset;var G=false;var H=false;if (D.nodeType==3) D=D.splitText(F);else{if (D.childNodes.length>0){if (F>D.childNodes.length-1){D=FCKDomTools.InsertAfterNode(D.lastChild,this._Document.createTextNode(''));H=true;}else D=D.childNodes[F];}};if (C.nodeType==3){C.splitText(E);if (C==D) D=C.nextSibling;}else{if (C.childNodes.length>0&&E<=C.childNodes.length-1){if (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else C=C.childNodes[E].previousSibling;}};var I=FCKDomTools.GetParents(C);var J=FCKDomTools.GetParents(D);var i,topStart,topEnd;for (i=0;i<I.length;i++){topStart=I[i];topEnd=J[i];if (topStart!=topEnd) break;};var K,levelStartNode,levelClone,currentNode,currentSibling;if (B) K=B.RootNode;for (var j=i;j<I.length;j++){levelStartNode=I[j];if (K&&levelStartNode!=C) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==C));currentNode=levelStartNode.nextSibling;while(currentNode){if (currentNode==J[j]||currentNode==D) break;currentSibling=currentNode.nextSibling;if (A==2) K.appendChild(currentNode.cloneNode(true));else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.appendChild(currentNode);};currentNode=currentSibling;};if (K) K=levelClone;};if (B) K=B.RootNode;for (var k=i;k<J.length;k++){levelStartNode=J[k];if (A>0&&levelStartNode!=D) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==D));if (!I[k]||levelStartNode.parentNode!=I[k].parentNode){currentNode=levelStartNode.previousSibling;while(currentNode){if (currentNode==I[k]||currentNode==C) break;currentSibling=currentNode.previousSibling;if (A==2) K.insertBefore(currentNode.cloneNode(true),K.firstChild);else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.insertBefore(currentNode,K.firstChild);};currentNode=currentSibling;}};if (K) K=levelClone;};if (A==2){var L=this.startContainer;if (L.nodeType==3){L.data+=L.nextSibling.data;L.parentNode.removeChild(L.nextSibling);};var M=this.endContainer;if (M.nodeType==3&&M.nextSibling){M.data+=M.nextSibling.data;M.parentNode.removeChild(M.nextSibling);}}else{if (topStart&&topEnd&&(C.parentNode!=topStart.parentNode||D.parentNode!=topEnd.parentNode)){var N=FCKDomTools.GetIndexOf(topEnd);if (G&&topEnd.parentNode==C.parentNode) N--;this.setStart(topEnd.parentNode,N);};this.collapse(true);};if(G) C.parentNode.removeChild(C);if(H&&D.parentNode) D.parentNode.removeChild(D);},cloneRange:function(){return FCKW3CRange.CreateFromRange(this._Document,this);}};
+var FCKEnterKey=function(A,B,C,D){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var E=new FCKKeystrokeHandler(false);E._EnterKey=this;E.OnKeystroke=FCKEnterKey_OnKeystroke;E.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[9,'Tab'],[8,'Backspace'],[CTRL+8,'CtrlBackspace'],[46,'Delete']]);if (D>0){this.TabText='';while (D-->0) this.TabText+='\xa0';};E.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();break;case 'Tab':return C.DoTab();break;case 'CtrlBackspace':return C.DoCtrlBackspace();break;}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){FCKUndo.SaveUndoStep();this._HasShift=(B===true);var C=FCKSelection.GetParentElement();var D=new FCKElementPath(C);var E=A||this.EnterMode;if (E=='br'||D.Block&&D.Block.tagName.toLowerCase()=='pre') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(E);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};var C=B.CheckIsCollapsed();if (!C){if (FCKBrowserInfo.IsIE&&this.Window.document.selection.type.toLowerCase()=="control"){var D=this.Window.document.selection.createRange();for (var i=D.length-1;i>=0;i--){var E=D.item(i);E.parentNode.removeChild(E);};return true;};return false;};var F=B.StartBlock;var G=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&F&&G){if (!C){var H=B.CheckEndOfBlock();B.DeleteContents();if (F!=G){B.SetStart(G,1);B.SetEnd(G,1);};B.Select();A=(F==G);};if (B.CheckStartOfBlock()){var I=B.StartBlock;var J=FCKDomTools.GetPreviousSourceElement(I,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,J,I);}else if (FCKBrowserInfo.IsGeckoLike){B.Select();}};B.Release();return A;};FCKEnterKey.prototype.DoCtrlBackspace=function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(this.Window);A.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(A,this.Window.document.body)){this._FixIESelectAllBug(A);return true;};return false;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&&C&&C.nodeName.IEquals('LI')&&C.parentNode.parentNode.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};if (B&&B.nodeName.IEquals('LI')){var E=FCKDomTools.GetLastChild(B,['UL','OL']);while (E){B=FCKDomTools.GetLastChild(E,'LI');E=FCKDomTools.GetLastChild(B,['UL','OL']);}};if (B&&C){if (C.nodeName.IEquals('LI')&&!B.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};var F=C.parentNode;var G=B.nodeName.toLowerCase();if (FCKListsLib.EmptyElements[G]!=null||G=='table'){FCKDomTools.RemoveNode(B);D=true;}else{FCKDomTools.RemoveNode(C);while (F.innerHTML.Trim().length==0){var H=F.parentNode;H.removeChild(F);F=H;};FCKDomTools.LTrimNode(C);FCKDomTools.RTrimNode(B);A.SetStart(B,2,true);A.Collapse(true);var I=A.CreateBookmark(true);if (!C.tagName.IEquals(['TABLE'])) FCKDomTools.MoveChildren(C,B);A.SelectBookmark(I);D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){FCKUndo.SaveUndoStep();var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};if (B.CheckIsCollapsed()&&B.CheckEndOfBlock(FCKBrowserInfo.IsGeckoLike)){var C=B.StartBlock;var D=FCKTools.GetElementAscensor(C,'td');var E=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL','TR'],true);if (D){var F=FCKTools.GetElementAscensor(E,'td');if (F!=D) return true;};A=this._ExecuteBackspace(B,C,E);};B.Release();return A;};FCKEnterKey.prototype.DoTab=function(){var A=new FCKDomRange(this.Window);A.MoveToSelection();var B=A._Range.startContainer;while (B){if (B.nodeType==1){var C=B.tagName.toLowerCase();if (C=="tr"||C=="td"||C=="th"||C=="tbody"||C=="table") return false;else break;};B=B.parentNode;};if (this.TabText){A.DeleteContents();A.InsertNode(this.Window.document.createTextNode(this.TabText));A.Collapse(false);A.Select();};return true;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A,B){var C=B||new FCKDomRange(this.Window);var D=C.SplitBlock();if (D){var E=D.PreviousBlock;var F=D.NextBlock;var G=D.WasStartOfBlock;var H=D.WasEndOfBlock;if (!D.WasStartOfBlock&&!D.WasEndOfBlock){if (F.nodeName.IEquals('li')&&F.firstChild&&F.firstChild.nodeName.IEquals(['ul','ol'])) F.insertBefore(F.ownerDocument.createTextNode('\xa0'),F.firstChild);if (F) C.MoveToElementEditStart(F);}else{if (G&&H&&E.tagName.toUpperCase()=='LI'){C.MoveToElementStart(E);this._OutdentWithSelection(E,C);C.Release();return true;};var I;if (E){var J=E.tagName.toUpperCase();if (!this._HasShift&&!(/^H[1-6]$/).test(J)){I=FCKDomTools.CloneElement(E);}}else if (F) I=FCKDomTools.CloneElement(F);if (!I) I=this.Window.document.createElement(A);var K=D.ElementPath;if (K){var L=I;for (var i=0,len=K.Elements.length;i<len;i++){var M=K.Elements[i];if (M==K.Block||M==K.BlockLimit) break;if (FCKListsLib.InlineChildReqElements[M.nodeName.toLowerCase()]) L=L.appendChild(FCKDomTools.CloneElement(M));}};if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);C.InsertNode(I);if (FCKBrowserInfo.IsIE){C.MoveToNodeContents(I);C.Select();};C.MoveToElementEditStart(G&&!H?F:I);};if (FCKBrowserInfo.IsSafari) FCKDomTools.ScrollIntoView(F||I,false);else if (FCKBrowserInfo.IsGeckoLike) (F||I).scrollIntoView(false);C.Select();};C.Release();return true;};FCKEnterKey.prototype._ExecuteEnterBr=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){B.DeleteContents();B.MoveToSelection();var C=B.CheckStartOfBlock();var D=B.CheckEndOfBlock();var E=B.StartBlock?B.StartBlock.tagName.toUpperCase():'';var F=this._HasShift;var G=false;if (!F&&E=='LI') return this._ExecuteEnterBlock(null,B);if (!F&&D&&(/^H[1-6]$/).test(E)){FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createElement('br'));if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createTextNode(''));B.SetStart(B.StartBlock.nextSibling,FCKBrowserInfo.IsIE?3:1);}else{var H;G=E.IEquals('pre');if (G) H=this.Window.document.createTextNode(FCKBrowserInfo.IsIE?'\r':'\n');else H=this.Window.document.createElement('br');B.InsertNode(H);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(H,this.Window.document.createTextNode(''));if (D&&FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H.parentNode);if (FCKBrowserInfo.IsIE) B.SetStart(H,4);else B.SetStart(H.nextSibling,1);if (!FCKBrowserInfo.IsIE){var I=null;if (FCKBrowserInfo.IsOpera) I=this.Window.document.createElement('span');else I=this.Window.document.createElement('br');H.parentNode.insertBefore(I,H.nextSibling);if (FCKBrowserInfo.IsSafari) FCKDomTools.ScrollIntoView(I,false);else I.scrollIntoView(false);I.parentNode.removeChild(I);}};B.Collapse(true);B.Select(G);};B.Release();return true;};FCKEnterKey.prototype._OutdentWithSelection=function(A,B){var C=B.CreateBookmark();FCKListHandler.OutdentListItem(A);B.MoveToBookmark(C);B.Select();};FCKEnterKey.prototype._CheckIsAllContentsIncluded=function(A,B){var C=false;var D=false;if (A.StartContainer==B||A.StartContainer==B.firstChild) C=(A._Range.startOffset==0);if (A.EndContainer==B||A.EndContainer==B.lastChild){var E=A.EndContainer.nodeType==3?A.EndContainer.length:A.EndContainer.childNodes.length;D=(A._Range.endOffset==E);};return C&&D;};FCKEnterKey.prototype._FixIESelectAllBug=function(A){var B=this.Window.document;B.body.innerHTML='';var C;if (FCKConfig.EnterMode.IEquals(['div','p'])){C=B.createElement(FCKConfig.EnterMode);B.body.appendChild(C);}else C=B.body;A.MoveToNodeContents(C);A.Collapse(true);A.Select();A.Release();};
+var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B,i=0;while((B=this._Items[i++])) B.ProcessDocument(A);};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCK.EditorDocument.createElement('IMG');C.className=A;C.src=FCKConfig.FullBasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0){if (C.innerHTML!==''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.childNodes.length==1&&C.childNodes[0].style&&C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKFlashProcessor=FCKDocumentProcessor.AppendNew();FCKFlashProcessor.ProcessDocument=function(A){var B=FCK.IsDirty();var C=A.getElementsByTagName('EMBED');var D;var i=C.length-1;while (i>=0&&(D=C[i--])){var E=D.attributes['type'];if ((D.src&&D.src.EndsWith('.swf',true))||(E&&E.nodeValue=='application/x-shockwave-flash')){var F=D.cloneNode(true);var G=FCKDocumentProcessor_CreateFakeImage('FCK__Flash',F);G.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(G,D);D.parentNode.insertBefore(G,D);D.parentNode.removeChild(D);}};if (!B) FCK.ResetIsDirty();};FCKFlashProcessor.RefreshView=function(A,B){if (B.getAttribute('width')>0) A.style.width=FCKTools.ConvertHtmlSizeToStyle(B.getAttribute('width'));if (B.getAttribute('height')>0) A.style.height=FCKTools.ConvertHtmlSizeToStyle(B.getAttribute('height'));};FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length>0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length>0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};if (FCKBrowserInfo.IsIE){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('HR');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){var D=A.createElement('hr');D.mergeAttributes(C,true);FCKDomTools.InsertAfterNode(C,D);C.parentNode.removeChild(C);}}};FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('INPUT');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.type=='hidden'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__InputHidden',C.cloneNode(true));D.setAttribute('_fckinputhidden','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}
+var FCKSelection=FCK.Selection={GetParentBlock:function(){var A=this.GetParentElement();while (A){if (FCKListsLib.BlockBoundaries[A.nodeName.toLowerCase()]) break;A=A.parentNode;};return A;},ApplyStyle:function(A){FCKStyles.ApplyStyle(new FCKStyle(A));}};
+FCKSelection.GetType=function(){var A='Text';var B;try { B=FCK.EditorWindow.getSelection();} catch (e) {};if (B&&B.rangeCount==1){var C=B.getRangeAt(0);if (C.startContainer==C.endContainer&&(C.endOffset-C.startOffset)==1&&C.startContainer.nodeType==1&&FCKListsLib.StyleObjectElements[C.startContainer.childNodes[C.startOffset].nodeName.toLowerCase()]){A='Control';}};return A;};FCKSelection.GetSelectedElement=function(){var A=null;var B=!!FCK.EditorWindow&&FCK.EditorWindow.getSelection();if (B&&B.anchorNode&&B.anchorNode.nodeType==1){if (this.GetType()=='Control'){A=B.anchorNode.childNodes[B.anchorOffset];if (!A) A=B.anchorNode;else if (A.nodeType!=1) return null;}};return A;};FCKSelection.GetParentElement=function(){if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentNode;else{var A=FCK.EditorWindow.getSelection();if (A){if (A.anchorNode&&A.anchorNode==A.focusNode) return A.anchorNode.parentNode;var B=new FCKElementPath(A.anchorNode);var C=new FCKElementPath(A.focusNode);var D=null;var E=null;if (B.Elements.length>C.Elements.length){D=B.Elements;E=C.Elements;}else{D=C.Elements;E=B.Elements;};var F=D.length-E.length;for(var i=0;i<E.length;i++){if (D[F+i]==E[i]) return E[i];};return null;}};return null;};FCKSelection.GetBoundaryParentElement=function(A){if (!FCK.EditorWindow) return null;if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentNode;else{var B=FCK.EditorWindow.getSelection();if (B&&B.rangeCount>0){var C=B.getRangeAt(A?0:(B.rangeCount-1));var D=A?C.startContainer:C.endContainer;return (D.nodeType==1?D:D.parentNode);}};return null;};FCKSelection.SelectNode=function(A){var B=FCK.EditorDocument.createRange();B.selectNode(A);var C=FCK.EditorWindow.getSelection();C.removeAllRanges();C.addRange(B);};FCKSelection.Collapse=function(A){var B=FCK.EditorWindow.getSelection();if (A==null||A===true) B.collapseToStart();else B.collapseToEnd();};FCKSelection.HasAncestorNode=function(A){var B=this.GetSelectedElement();if (!B&&FCK.EditorWindow){try { B=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;}catch(e){}};while (B){if (B.nodeType==1&&B.tagName==A) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B;var C=this.GetSelectedElement();if (!C) C=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;while (C){if (C.nodeName==A) return C;C=C.parentNode;};return null;};FCKSelection.Delete=function(){var A=FCK.EditorWindow.getSelection();for (var i=0;i<A.rangeCount;i++){A.getRangeAt(i).deleteContents();};return A;};
+var FCKTableHandler={};FCKTableHandler.InsertRow=function(A){var B=FCKSelection.MoveToAncestorNode('TR');if (!B) return;var C=B.cloneNode(true);B.parentNode.insertBefore(C,B);FCKTableHandler.ClearRow(A?C:B);};FCKTableHandler.DeleteRows=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();var C=[];for (var i=0;i<B.length;i++){var D=FCKTools.GetElementAscensor(B[i],'TR');C[D.rowIndex]=D;};for (var i=C.length;i>=0;i--){if (C[i]) FCKTableHandler.DeleteRows(C[i]);};return;};var E=FCKTools.GetElementAscensor(A,'TABLE');if (E.rows.length==1){FCKTableHandler.DeleteTable(E);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();if (A.parentNode.childNodes.length==1) A.parentNode.parentNode.removeChild(A.parentNode);else A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(A){var B=null;var C=this.GetSelectedCells();if (C&&C.length) B=C[A?0:(C.length-1)];if (!B) return;var D=FCKTools.GetElementAscensor(B,'TABLE');var E=B.cellIndex;for (var i=0;i<D.rows.length;i++){var F=D.rows[i];if (F.cells.length<(E+1)) continue;B=F.cells[E].cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B);var G=F.cells[E];if (A) F.insertBefore(B,G);else if (G.nextSibling) F.insertBefore(B,G.nextSibling);else F.appendChild(B);}};FCKTableHandler.DeleteColumns=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();for (var i=B.length;i>=0;i--){if (B[i]) FCKTableHandler.DeleteColumns(B[i]);};return;};if (!A) return;var C=FCKTools.GetElementAscensor(A,'TABLE');var D=A.cellIndex;for (var i=C.rows.length-1;i>=0;i--){var E=C.rows[i];if (D==0&&E.cells.length==1){FCKTableHandler.DeleteRows(E);continue;};if (E.cells[D]) E.removeChild(E.cells[D]);}};FCKTableHandler.InsertCell=function(A,B){var C=null;var D=this.GetSelectedCells();if (D&&D.length) C=D[B?0:(D.length-1)];if (!C) return null;var E=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(E);if (!B&&C.cellIndex==C.parentNode.cells.length-1) C.parentNode.appendChild(E);else C.parentNode.insertBefore(E,B?C:C.nextSibling);return E;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler._MarkCells=function(A,B){for (var i=0;i<A.length;i++) A[i][B]=true;};FCKTableHandler._UnmarkCells=function(A,B){for (var i=0;i<A.length;i++){if (FCKBrowserInfo.IsIE) A[i].removeAttribute(B);else delete A[i][B];}};FCKTableHandler._ReplaceCellsByMarker=function(A,B,C){for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){if (A[i][j][B]) A[i][j]=C;}}};FCKTableHandler._GetMarkerGeometry=function(A,B,C,D){var E=0;var F=0;var G=0;var H=0;for (var i=C;A[B][i]&&A[B][i][D];i++) E++;for (var i=C-1;A[B][i]&&A[B][i][D];i--){E++;G++;};for (var i=B;A[i]&&A[i][C]&&A[i][C][D];i++) F++;for (var i=B-1;A[i]&&A[i][C]&&A[i][C][D];i--){F++;H++;};return { 'width':E,'height':F,'x':G,'y':H };};FCKTableHandler.CheckIsSelectionRectangular=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<1) return false;this._MarkCells(A,'_CellSelected');var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=A[0].parentNode.rowIndex;var D=this._GetCellIndexSpan(B,C,A[0]);var E=this._GetMarkerGeometry(B,C,D,'_CellSelected');var F=D-E.x;var G=C-E.y;if (E.width>=E.height){for (D=F;D<F+E.width;D++){C=G+(D-F) % E.height;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}}else{for (C=G;C<G+E.height;C++){D=F+(C-G) % E.width;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}};this._UnmarkCells(A,'_CellSelected');return true;};FCKTableHandler.MergeCells=function(){var A=this.GetSelectedCells();if (A.length<2) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);this._MarkCells(A,'_SelectedCells');var F=this._GetMarkerGeometry(C,D,E,'_SelectedCells');var G=E-F.x;var H=D-F.y;var I=B.ownerDocument.createDocumentFragment();for (var i=0;i<F.height;i++){var J=0;for (var j=0;j<F.width;j++){var K=C[H+i][G+j];while (K.childNodes.length>0){var L=K.removeChild(K.firstChild);if (L.nodeType!=1||(L.getAttribute('type',2)!='_moz'&&L.getAttribute('_moz_dirty')!=null)){I.appendChild(L);J++;}}};if (J>0) I.appendChild(B.ownerDocument.createElement('br'));};this._ReplaceCellsByMarker(C,'_SelectedCells',B);this._UnmarkCells(A,'_SelectedCells');this._InstallTableMap(C,B.parentNode.parentNode);B.appendChild(I);if (FCKBrowserInfo.IsGeckoLike&&(!B.firstChild)) FCKTools.AppendBogusBr(B);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeRight=function(){var A=this.GetMergeRightTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCK.EditorDocument.createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));D.parentNode.removeChild(D);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeDown=function(){var A=this.GetMergeDownTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=B.ownerDocument.createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));if (E.firstChild) E.insertBefore(D.ownerDocument.createElement('br'),E.firstChild);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.HorizontalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;if (F>1){var G=Math.ceil(F/2);var H=B.ownerDocument.createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H);var I=E+G;var J=E+F;var K=isNaN(B.rowSpan)?1:B.rowSpan;for (var r=D;r<D+K;r++){for (var i=I;i<J;i++) C[r][i]=H;}}else{var L=[];for (var i=0;i<C.length;i++){var M=C[i].slice(0,E);if (C[i].length<=E){L.push(M);continue;};if (C[i][E]==B){M.push(B);M.push(B.ownerDocument.createElement('td'));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(M[M.length-1]);}else{M.push(C[i][E]);M.push(C[i][E]);};for (var j=E+1;j<C[i].length;j++) M.push(C[i][j]);L.push(M);};C=L;};this._InstallTableMap(C,B.parentNode.parentNode);};FCKTableHandler.VerticalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=FCKTableHandler._GetCellIndexSpan(C,B.parentNode.rowIndex,B);var E=B.rowSpan;var F=B.parentNode.rowIndex;if (isNaN(E)) E=1;if (E>1){B.rowSpan=Math.ceil(E/2);var G=F+Math.ceil(E/2);var H=null;for (var i=D+1;i<C[G].length;i++){if (C[G][i].parentNode.rowIndex==G){H=C[G][i];break;}};var I=FCK.EditorDocument.createElement('td');I.rowSpan=Math.floor(E/2);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);B.parentNode.parentNode.rows[G].insertBefore(I,H);}else{var G=F+1;var K=FCK.EditorDocument.createElement('tr');B.parentNode.parentNode.insertBefore(K,B.parentNode.parentNode.rows[G]);for (var i=0;i<C[F].length;){var L=C[F][i].colSpan;if (isNaN(L)||L<1) L=1;if (i==D){i+=L;continue;};var M=C[F][i].rowSpan;if (isNaN(M)) M=1;C[F][i].rowSpan=M+1;i+=L;};var I=FCK.EditorDocument.createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);K.appendChild(I);}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length<B+1) return null;var D=A[B];for (var c=0;c<D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCellLocation=function(A,B){for (var i=0;i<A.length;i++){for (var c=0;c<A[i].length;c++){if (A[i][c]==B) return [i,c];}};return null;};FCKTableHandler._GetColumnCells=function(A,B){var C=[];for (var r=0;r<A.length;r++){var D=A[r][B];if (D&&(C.length==0||C[C.length-1]!=D)) C[C.length]=D;};return C;};FCKTableHandler._CreateTableMap=function(A){var B=A.rows;var r=-1;var C=[];for (var i=0;i<B.length;i++){r++;if (!C[r]) C[r]=[];var c=-1;for (var j=0;j<B[i].cells.length;j++){var D=B[i].cells[j];c++;while (C[r][c]) c++;var E=isNaN(D.colSpan)?1:D.colSpan;var F=isNaN(D.rowSpan)?1:D.rowSpan;for (var G=0;G<F;G++){if (!C[r+G]) C[r+G]=[];for (var H=0;H<E;H++){C[r+G][c+H]=B[i].cells[j];}};c+=E-1;}};return C;};FCKTableHandler._InstallTableMap=function(A,B){while (B.rows.length>0){var C=B.rows[0];C.parentNode.removeChild(C);};for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (D.parentNode) D.parentNode.removeChild(D);D.colSpan=D.rowSpan=1;}};var E=0;for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (!D) continue;if (j>E) E=j;if (D._colScanned===true) continue;if (A[i][j-1]==D) D.colSpan++;if (A[i][j+1]!=D) D._colScanned=true;}};for (var i=0;i<=E;i++){for (var j=0;j<A.length;j++){if (!A[j]) continue;var D=A[j][i];if (!D||D._rowScanned===true) continue;if (A[j-1]&&A[j-1][i]==D) D.rowSpan++;if (!A[j+1]||A[j+1][i]!=D) D._rowScanned=true;}};for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (FCKBrowserInfo.IsIE){D.removeAttribute('_colScanned');D.removeAttribute('_rowScanned');}else{delete D._colScanned;delete D._rowScanned;}}};for (var i=0;i<A.length;i++){var I=B.ownerDocument.createElement('tr');for (var j=0;j<A[i].length;){var D=A[i][j];if (A[i-1]&&A[i-1][j]==D){j+=D.colSpan;continue;};I.appendChild(D);j+=D.colSpan;if (D.colSpan==1) D.removeAttribute('colspan');if (D.rowSpan==1) D.removeAttribute('rowspan');};B.appendChild(I);}};FCKTableHandler._MoveCaretToCell=function (A,B){var C=new FCKDomRange(FCK.EditorWindow);C.MoveToNodeContents(A);C.Collapse(B);C.Select();};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){B[i].innerHTML='';if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B[i]);}};FCKTableHandler.GetMergeRightTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=E+(isNaN(B.colSpan)?1:B.colSpan);var G=C[D][F];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,D,F,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.height!=I.height||H.y!=I.y) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};FCKTableHandler.GetMergeDownTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=D+(isNaN(B.rowSpan)?1:B.rowSpan);if (!C[F]) return null;var G=C[F][E];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,F,E,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.width!=I.width||H.x!=I.x) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};
+FCKTableHandler.GetSelectedCells=function(){var A=[];var B=FCK.EditorWindow.getSelection();if (B.rangeCount==1&&B.anchorNode.nodeType==3){var C=FCKTools.GetElementAscensor(B.anchorNode,'TD,TH');if (C) A[0]=C;return A;};for (var i=0;i<B.rangeCount;i++){var D=B.getRangeAt(i);var E;if (D.startContainer.tagName.Equals('TD','TH')) E=D.startContainer;else E=D.startContainer.childNodes[D.startOffset];if (E.tagName.Equals('TD','TH')) A[A.length]=E;};return A;};
+var FCKXml=function(){this.Error=false;};FCKXml.GetAttribute=function(A,B,C){var D=A.attributes.getNamedItem(B);return D?D.value:C;};FCKXml.TransformToObject=function(A){if (!A) return null;var B={};var C=A.attributes;for (var i=0;i<C.length;i++){var D=C[i];B[D.name]=D.value;};var E=A.childNodes;for (i=0;i<E.length;i++){var F=E[i];if (F.nodeType==1){var G='$'+F.nodeName;var H=B[G];if (!H) H=B[G]=[];H.push(this.TransformToObject(F));}};return B;}
+FCKXml.prototype={LoadUrl:function(A){this.Error=false;var B=this;var C=FCKTools.CreateXmlObject('XmlHttp');C.open("GET",A,false);C.send(null);if (C.status==200||C.status==304) this.DOMDocument=C.responseXML;else if (C.status==0&&C.readyState==4) this.DOMDocument=C.responseXML;else this.DOMDocument=null;if (this.DOMDocument==null||this.DOMDocument.firstChild==null){this.Error=true;if (window.confirm('Error loading "'+A+'"\r\nDo you want to see more info?')) alert('URL requested: "'+A+'"\r\nServer response:\r\nStatus: '+C.status+'\r\nResponse text:\r\n'+C.responseText);}},SelectNodes:function(A,B){if (this.Error) return [];var C=[];var D=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);if (D){var E=D.iterateNext();while(E){C[C.length]=E;E=D.iterateNext();}};return C;},SelectSingleNode:function(A,B){if (this.Error) return null;var C=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),9,null);if (C&&C.singleNodeValue) return C.singleNodeValue;else return null;}};
var FCKNamedCommand=function(A){this.Name=A;};FCKNamedCommand.prototype.Execute=function(){FCK.ExecuteNamedCommand(this.Name);};FCKNamedCommand.prototype.GetState=function(){return FCK.GetNamedCommandState(this.Name);};
-var FCKDialogCommand=function(A,B,C,D,E,F,G){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.GetStateFunction=F;this.GetStateParam=G;this.Resizable=false;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height,null,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return 0;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFontNameCommand=function(){this.Name='FontName';};FCKFontNameCommand.prototype.Execute=function(A){if (A==null||A==""){}else FCK.ExecuteNamedCommand('FontName',A);};FCKFontNameCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontName');};var FCKFontSizeCommand=function(){this.Name='FontSize';};FCKFontSizeCommand.prototype.Execute=function(A){if (typeof(A)=='string') A=parseInt(A,10);if (A==null||A==''){FCK.ExecuteNamedCommand('FontSize',3);}else FCK.ExecuteNamedCommand('FontSize',A);};FCKFontSizeCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontSize');};var FCKFormatBlockCommand=function(){this.Name='FormatBlock';};FCKFormatBlockCommand.prototype.Execute=function(A){if (A==null||A=='') FCK.ExecuteNamedCommand('FormatBlock','<P>');else if (A=='div'&&FCKBrowserInfo.IsGecko) FCK.ExecuteNamedCommand('FormatBlock','div');else FCK.ExecuteNamedCommand('FormatBlock','<'+A+'>');};FCKFormatBlockCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FormatBlock');};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return 0;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.GetParentForm();if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};A.submit();};FCKSaveCommand.prototype.GetState=function(){return 0;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};FCKNewPageCommand.prototype.GetState=function(){return 0;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==0?0:1);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Undo();else FCK.ExecuteNamedCommand('Undo');};FCKUndoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckUndoState()?0:-1);else return FCK.GetNamedCommandState('Undo');};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Redo();else FCK.ExecuteNamedCommand('Redo');};FCKRedoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckRedoState()?0:-1);else return FCK.GetNamedCommandState('Redo');};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none"> </span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);A=FCK.InsertElement(A);};FCKPageBreakCommand.prototype.GetState=function(){return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsGecko){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCK.Selection.SelectNode(A);};FCK.ExecuteNamedCommand(this.Name);if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);};FCKUnlinkCommand.prototype.GetState=function(){var A=FCK.GetNamedCommandState(this.Name);if (A==0&&FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&&B.name.length>0&&B.href.length==0);if (C) A=-1;};return A;};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype=new FCKNamedCommand('SelectAll');FCKSelectAllCommand.prototype.GetState=function(){return 0;}
+var FCKStyleCommand=function(){};FCKStyleCommand.prototype={Name:'Style',Execute:function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) FCK.Styles.RemoveStyle(B.Style);else FCK.Styles.ApplyStyle(B.Style);FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (!FCK.EditorDocument) return -1;if (FCKSelection.GetType()=='Control'){var A=FCKSelection.GetSelectedElement();if (!A||!FCKStyles.CheckHasObjectStyle(A.nodeName.toLowerCase())) return -1;};return 0;}};
+var FCKDialogCommand=function(A,B,C,D,E,F,G){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.GetStateFunction=F;this.GetStateParam=G;this.Resizable=false;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height,null,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return 0;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFormatBlockCommand=function(){};FCKFormatBlockCommand.prototype={Name:'FormatBlock',Execute:FCKStyleCommand.prototype.Execute,GetState:function(){return FCK.EditorDocument?0:-1;}};var FCKFontNameCommand=function(){};FCKFontNameCommand.prototype={Name:'FontName',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKFontSizeCommand=function(){};FCKFontSizeCommand.prototype={Name:'FontSize',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return 0;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.GetParentForm();if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};if (typeof(A.submit)=='function') A.submit();else A.submit.click();};FCKSaveCommand.prototype.GetState=function(){return 0;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetData('');FCKUndo.Typing=true;FCK.Focus();};FCKNewPageCommand.prototype.GetState=function(){return 0;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==0?0:1);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){FCKUndo.Undo();};FCKUndoCommand.prototype.GetState=function(){return (FCKUndo.CheckUndoState()?0:-1);};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){FCKUndo.Redo();};FCKRedoCommand.prototype.GetState=function(){return (FCKUndo.CheckRedoState()?0:-1);};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none"> </span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.SplitBlock();if (C.NextBlock) C.NextBlock.parentNode.insertBefore(A,C.NextBlock);else C.PreviousBlock.parentNode.insertBefore(A,C.PreviousBlock.nextSibling);FCK.Events.FireEvent('OnSelectionChange');};FCKPageBreakCommand.prototype.GetState=function(){return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (FCKBrowserInfo.IsGeckoLike){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCKTools.RemoveOuterTags(A);return;};FCK.ExecuteNamedCommand(this.Name);};FCKUnlinkCommand.prototype.GetState=function(){var A=FCK.GetNamedCommandState(this.Name);if (A==0&&FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&&B.name.length>0&&B.href.length==0);if (C) A=-1;};return A;};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype.Execute=function(){if (FCK.EditMode==0){FCK.ExecuteNamedCommand('SelectAll');}else{var A=FCK.EditingArea.Textarea;if (FCKBrowserInfo.IsIE){A.createTextRange().execCommand('SelectAll');}else{A.selectionStart=0;A.selectionEnd=A.value.length;};A.focus();}};FCKSelectAllCommand.prototype.GetState=function(){return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){return FCK.GetNamedCommandState('Paste');}};var FCKRuleCommand=function(){this.Name='Rule';};FCKRuleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();FCK.InsertElement('hr');},GetState:function(){return FCK.GetNamedCommandState('InsertHorizontalRule');}};var FCKCopyCommand=function(){this.Name='Copy';};FCKCopyCommand.prototype={Execute:function(){FCK.ExecuteNamedCommand(this.Name);},GetState:function(){return FCK.GetNamedCommandState('Cut');}};var FCKAnchorDeleteCommand=function(){this.Name='AnchorDelete';};FCKAnchorDeleteCommand.prototype={Execute:function(){if (FCK.Selection.GetType()=='Control'){FCK.Selection.Delete();}else{var A=FCK.Selection.GetSelectedElement();if (A){if (A.tagName=='IMG'&&A.getAttribute('_fckanchor')) oAnchor=FCK.GetRealElement(A);else A=null;};if (!A){oAnchor=FCK.Selection.MoveToAncestorNode('A');if (oAnchor) FCK.Selection.SelectNode(oAnchor);};if (oAnchor.href.length!=0){oAnchor.removeAttribute('name');if (FCKBrowserInfo.IsIE) oAnchor.className=oAnchor.className.replace(FCKRegexLib.FCK_Class,'');return;};if (A){A.parentNode.removeChild(A);return;};if (oAnchor.innerHTML.length==0){oAnchor.parentNode.removeChild(oAnchor);return;};FCKTools.RemoveOuterTags(oAnchor);};if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);},GetState:function(){return FCK.GetNamedCommandState('Unlink');}};
+var FCKShowBlockCommand=function(A,B){this.Name=A;if (B!=undefined) this._SavedState=B;else this._SavedState=null;};FCKShowBlockCommand.prototype.Execute=function(){var A=this.GetState();if (A==-1) return;var B=FCK.EditorDocument.body;if (A==1) B.className=B.className.replace(/(^| )FCK__ShowBlocks/g,'');else B.className+=' FCK__ShowBlocks';FCK.Events.FireEvent('OnSelectionChange');};FCKShowBlockCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;if (!FCK.EditorDocument) return 0;if (/FCK__ShowBlocks(?:\s|$)/.test(FCK.EditorDocument.body.className)) return 1;return 0;};FCKShowBlockCommand.prototype.SaveState=function(){this._SavedState=this.GetState();};FCKShowBlockCommand.prototype.RestoreState=function(){if (this._SavedState!=null&&this.GetState()!=this._SavedState) this.Execute();};
var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=(FCKConfig.SpellChecker=='SpellerPages');};FCKSpellCheckCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);};FCKSpellCheckCommand.prototype.GetState=function(){return this.IsEnabled?0:-1;}
-var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;var B;if (FCKBrowserInfo.IsIE) B=window;else if (FCK.ToolbarSet._IFrame) B=FCKTools.GetElementWindow(FCK.ToolbarSet._IFrame);else B=window.parent;this._Panel=new FCKPanel(B,true);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){FCK._ActiveColorPanelType=this.Type;this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){if (FCK._ActiveColorPanelType=='ForeColor') FCK.ExecuteNamedCommand('ForeColor',A);else if (FCKBrowserInfo.IsGeckoLike){if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,false);FCK.ExecuteNamedCommand('hilitecolor',A);if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,true);}else FCK.ExecuteNamedCommand('BackColor',A);delete FCK._ActiveColorPanelType;};FCKTextColorCommand.prototype.GetState=function(){return 0;};function FCKTextColorCommand_OnMouseOver() { this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut() { this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(){this.className='ColorDeselected';this.Command.SetColor('#'+this.Color);this.Command._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(){this.className='ColorDeselected';this.Command.SetColor('');this.Command._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(){this.className='ColorDeselected';this.Command._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',400,330,this.Command.SetColor);};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';C.onmouseover=FCKTextColorCommand_OnMouseOver;C.onmouseout=FCKTextColorCommand_OnMouseOut;return C;};var D=B.appendChild(A.createElement("TABLE"));D.className='ForceBaseFont';D.style.tableLayout='fixed';D.cellPadding=0;D.cellSpacing=0;D.border=0;D.width=150;var E=D.insertRow(-1).insertCell(-1);E.colSpan=8;var C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table cellspacing="0" cellpadding="0" width="100%" border="0">\n <tr>\n <td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\n <td nowrap width="100%" align="center">'+FCKLang.ColorAutomatic+'</td>\n </tr>\n </table>';C.Command=this;C.onclick=FCKTextColorCommand_AutoOnClick;var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8&&H<G.length;i++,H++){C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.Color=G[H];C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #'+G[H]+'"></div></div>';C.Command=this;C.onclick=FCKTextColorCommand_OnClick;}};E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">'+FCKLang.ColorMoreColors+'</td></tr></table>';C.Command=this;C.onclick=FCKTextColorCommand_MoreOnClick;}
+var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;var B;if (FCKBrowserInfo.IsIE) B=window;else if (FCK.ToolbarSet._IFrame) B=FCKTools.GetElementWindow(FCK.ToolbarSet._IFrame);else B=window.parent;this._Panel=new FCKPanel(B);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){FCKUndo.SaveUndoStep();var B=FCKStyles.GetStyle('_FCK_'+(this.Type=='ForeColor'?'Color':'BackColor'));if (!A||A.length==0) FCK.Styles.RemoveStyle(B);else{B.SetVariable('Color',A);FCKStyles.ApplyStyle(B);};FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');};FCKTextColorCommand.prototype.GetState=function(){return 0;};function FCKTextColorCommand_OnMouseOver(){this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut(){this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(A,B,C){this.className='ColorDeselected';B.SetColor(C);B._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(A,B){this.className='ColorDeselected';B.SetColor('');B._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(A,B){this.className='ColorDeselected';B._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',400,330,FCKTools.Hitch(B,'SetColor'));};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';FCKTools.AddEventListenerEx(C,'mouseover',FCKTextColorCommand_OnMouseOver);FCKTools.AddEventListenerEx(C,'mouseout',FCKTextColorCommand_OnMouseOut);return C;};var D=B.appendChild(A.createElement("TABLE"));D.className='ForceBaseFont';D.style.tableLayout='fixed';D.cellPadding=0;D.cellSpacing=0;D.border=0;D.width=150;var E=D.insertRow(-1).insertCell(-1);E.colSpan=8;var C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table cellspacing="0" cellpadding="0" width="100%" border="0">\n <tr>\n <td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\n <td nowrap width="100%" align="center">'+FCKLang.ColorAutomatic+'</td>\n </tr>\n </table>';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_AutoOnClick,this);if (!FCKBrowserInfo.IsIE) C.style.width='96%';var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8;i++,H++){if (H<G.length){var J=G[H].split('/');var K='#'+J[0];var L=J[1]||K;};C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: '+K+'"></div></div>';if (H>=G.length) C.style.visibility='hidden';else FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_OnClick,[this,L]);}};if (FCKConfig.EnableMoreFontColors){E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">'+FCKLang.ColorMoreColors+'</td></tr></table>';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_MoreOnClick,this);};if (!FCKBrowserInfo.IsIE) C.style.width='96%';};
var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){return FCK.GetNamedCommandState('Paste');};
var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCKConfig.ForcePasteAsPlainText) return -1;else return FCK.GetNamedCommandState('Paste');};
-var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();switch (this.Name){case 'TableInsertRow':FCKTableHandler.InsertRow();break;case 'TableDeleteRows':FCKTableHandler.DeleteRows();break;case 'TableInsertColumn':FCKTableHandler.InsertColumn();break;case 'TableDeleteColumns':FCKTableHandler.DeleteColumns();break;case 'TableInsertCell':FCKTableHandler.InsertCell();break;case 'TableDeleteCells':FCKTableHandler.DeleteCells();break;case 'TableMergeCells':FCKTableHandler.MergeCells();break;case 'TableSplitCell':FCKTableHandler.SplitCell();break;case 'TableDelete':FCKTableHandler.DeleteTable();break;default:alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){return 0;}
-var FCKStyleCommand=function(){this.Name='Style';this.StylesLoader=new FCKStylesLoader();this.StylesLoader.Load(FCKConfig.StylesXmlPath);this.Styles=this.StylesLoader.Styles;};FCKStyleCommand.prototype.Execute=function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) B.Style.RemoveFromSelection();else B.Style.ApplyToSelection();FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent("OnSelectionChange");};FCKStyleCommand.prototype.GetState=function(){if (!FCK.EditorDocument) return -1;var A=FCK.EditorDocument.selection;if (FCKSelection.GetType()=='Control'){var e=FCKSelection.GetSelectedElement();if (e) return this.StylesLoader.StyleGroups[e.tagName]?0:-1;};return 0;};FCKStyleCommand.prototype.GetActiveStyles=function(){var A=[];if (FCKSelection.GetType()=='Control') this._CheckStyle(FCKSelection.GetSelectedElement(),A,false);else this._CheckStyle(FCKSelection.GetParentElement(),A,true);return A;};FCKStyleCommand.prototype._CheckStyle=function(A,B,C){if (!A) return;if (A.nodeType==1){var D=this.StylesLoader.StyleGroups[A.tagName];if (D){for (var i=0;i<D.length;i++){if (D[i].IsEqual(A)) B[B.length]=D[i];}}};if (C) this._CheckStyle(A.parentNode,B,C);}
-var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1) G._fckSavedStyles=FCKTools.SaveStyles(G);};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var H=FCKTools.GetViewPaneSize(C);B.position="absolute";B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=H.Width+"px";B.height=H.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent("onresize",FCKFitWindow_Resize);else C.removeEventListener("resize",FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();FCK.EditingArea.MakeEditable();FCK.Focus();};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';};
-var FCKCommands=FCK.Commands={};FCKCommands.LoadedCommands={};FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,390,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,170);break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,170);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,170);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',400,330);break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindTitle,'dialog/fck_find.html',340,170);break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgReplaceTitle,'dialog/fck_replace.html',340,200);break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,400);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,320);break;case 'Smiley':B=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight);break;case 'Table':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html',450,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',400,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,250);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'TableInsertRow':B=new FCKTableCommand('TableInsertRow');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumn':B=new FCKTableCommand('TableInsertColumn');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCell':B=new FCKTableCommand('TableInsertCell');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableSplitCell':B=new FCKTableCommand('TableSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,230);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,230);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,230);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,230);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,230);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,230);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,230);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,380);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,400);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();break;case 'SelectAll':B=new FCKSelectAllCommand();break;case 'Undefined':B=new FCKUndefinedCommand();break;default:if (FCKRegexLib.NamedCommands.test(A)) B=new FCKNamedCommand(A);else{alert(FCKLang.UnknownCommand.replace(/%1/g,A));return null;}};FCKCommands.LoadedCommands[A]=B;return B;};FCKCommands.GetFullPageState=function(){return FCKConfig.FullPage?0:-1;};
-var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();B=this.Document=this._Popup.document;FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var C=this._IFrame=this._Window.document.createElement('iframe');C.src='javascript:void(0)';C.allowTransparency=true;C.frameBorder='0';C.scrolling='no';C.style.position='absolute';C.style.zIndex=FCKConfig.FloatingPanelsZIndex;C.width=C.height=0;if (this._Window==window.parent&&window.frameElement) window.frameElement.parentNode.insertBefore(C,window.frameElement);else this._Window.document.body.appendChild(C);var D=C.contentWindow;B=this.Document=D.document;B.open();B.write('<html><head></head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();FCKTools.AddEventListenerEx(D,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(D,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;B.oncontextmenu=FCKTools.CancelEvent;this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;if (this._Popup){this._Popup.show(x,y,0,0,A);this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';D=this.MainNode.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,this.MainNode.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Lock();if (this.ParentPanel) this.ParentPanel.Lock();this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';D=this.MainNode.offsetWidth;if (!B) this._IFrame.width=1;if (!C) this._IFrame.height=1;D=this.MainNode.offsetWidth;var E=FCKTools.GetElementPosition(A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A,this._Window);if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=E.X;y+=E.Y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var F=FCKTools.GetViewPaneSize(this._Window);var G=FCKTools.GetScrollPosition(this._Window);var H=F.Height+G.Y;var I=F.Width+G.X;if ((x+D)>I) x-=x+D-I;if ((y+this.MainNode.offsetHeight)>H) y-=y+this.MainNode.offsetHeight-H;};if (x<0) x=0;this._IFrame.style.left=x+'px';this._IFrame.style.top=y+'px';var J=D;var K=this.MainNode.offsetHeight;this._IFrame.width=J;this._IFrame.height=K;this._IFrame.contentWindow.focus();};this._IsOpened=true;FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened) return;if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A,true);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&&!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;}
-var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B,eIconImage;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path;eIconImage.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url('+this.Path+')';}}else{B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path?this.Path:FCK_SPACER_PATH;};B.className='TB_Button_Image';return B;}
-var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||0;this.State=F||0;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=this.MainElement;if (B){FCKToolbarButtonUI_Cleanup.call(this);if (B.parentNode) B.parentNode.removeChild(B);B=this.MainElement=null;};var C=FCKTools.GetElementDocument(A);B=this.MainElement=C.createElement('DIV');B._FCKButton=this;B.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) B.onmousedown=FCKTools.CancelEvent;this.ChangeState(this.State,true);if (this.Style==0&&!this.ShowArrow){B.appendChild(this.Icon.CreateIconElement(C));}else{var D=B.appendChild(C.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==0||this.Style==2) F.appendChild(this.Icon.CreateIconElement(C));else F.appendChild(this._CreatePaddingElement(C));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(C.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(C));};F=E.insertCell(-1);var G=F.appendChild(C.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(C));};A.appendChild(B);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';e.onmouseover=FCKToolbarButton_OnMouseOverOff;e.onmouseout=FCKToolbarButton_OnMouseOutOff;e.onclick=FCKToolbarButton_OnClick;break;case 1:e.className='TB_Button_On';e.onmouseover=FCKToolbarButton_OnMouseOverOn;e.onmouseout=FCKToolbarButton_OnMouseOutOn;e.onclick=FCKToolbarButton_OnClick;break;case -1:e.className='TB_Button_Disabled';e.onmouseover=null;e.onmouseout=null;e.onclick=null;break;};this.State=A;};function FCKToolbarButtonUI_Cleanup(){if (this.MainElement){this.MainElement._FCKButton=null;this.MainElement=null;}};function FCKToolbarButton_OnMouseOverOn(){this.className='TB_Button_On_Over';};function FCKToolbarButton_OnMouseOutOn(){this.className='TB_Button_On';};function FCKToolbarButton_OnMouseOverOff(){this.className='TB_Button_Off_Over';};function FCKToolbarButton_OnMouseOutOff(){this.className='TB_Button_Off';};function FCKToolbarButton_OnClick(e){if (this._FCKButton.OnClick) this._FCKButton.OnClick(this._FCKButton);};
-var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (A==this._UIButton.State) return;this._UIButton.ChangeState(A);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);}
-var FCKSpecialCombo=function(A,B,C,D,E){this.FieldWidth=B||100;this.PanelWidth=C||150;this.PanelMaxHeight=D||150;this.Label=' ';this.Caption=A;this.Tooltip=A;this.Style=2;this.Enabled=true;this.Items={};this._Panel=new FCKPanel(E||window,true);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._PanelBox=this._Panel.MainNode.appendChild(this._Panel.Document.createElement('DIV'));this._PanelBox.className='SC_Panel';this._PanelBox.style.width=this.PanelWidth+'px';this._PanelBox.innerHTML='<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>';this._ItemsHolderEl=this._PanelBox.getElementsByTagName('TD')[0];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKSpecialCombo_Cleanup);};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(){this.className=this.originalClass;this.FCKSpecialCombo._Panel.Hide();this.FCKSpecialCombo.SetLabel(this.FCKItemLabel);if (typeof(this.FCKSpecialCombo.OnSelect)=='function') this.FCKSpecialCombo.OnSelect(this.FCKItemID,this);};FCKSpecialCombo.prototype.AddItem=function(A,B,C,D){var E=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));E.className=E.originalClass='SC_Item';E.innerHTML=B;E.FCKItemID=A;E.FCKItemLabel=C||A;E.FCKSpecialCombo=this;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;E.onmouseover=FCKSpecialCombo_ItemOnMouseOver;E.onmouseout=FCKSpecialCombo_ItemOnMouseOut;E.onclick=FCKSpecialCombo_ItemOnClick;this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];if (B){B.className=B.originalClass='SC_ItemSelected';B.Selected=true;}};FCKSpecialCombo.prototype.SelectItemByLabel=function(A,B){for (var C in this.Items){var D=this.Items[C];if (D.FCKItemLabel==A){D.className=D.originalClass='SC_ItemSelected';D.Selected=true;if (B) this.SetLabel(A);}}};FCKSpecialCombo.prototype.DeselectAll=function(A){for (var i in this.Items){this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};if (A) this.SetLabel('');};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){this.Label=A.length==0?' ':A;if (this._LabelEl){this._LabelEl.innerHTML=this.Label;FCKTools.DisableSelection(this._LabelEl);}};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this._OuterTable=A.appendChild(B.createElement('TABLE'));C.cellPadding=0;C.cellSpacing=0;C.insertRow(-1);var D;var E;switch (this.Style){case 0:D='TB_ButtonType_Icon';E=false;break;case 1:D='TB_ButtonType_Text';E=false;break;case 2:E=true;break;};if (this.Caption&&this.Caption.length>0&&E){var F=C.rows[0].insertCell(-1);F.innerHTML=this.Caption;F.className='SC_FieldCaption';};var G=FCKTools.AppendElement(C.rows[0].insertCell(-1),'div');if (E){G.className='SC_Field';G.style.width=this.FieldWidth+'px';G.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldLabel"><label> </label></td><td class="SC_FieldButton"> </td></tr></tbody></table>';this._LabelEl=G.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{G.className='TB_Button_Off';G.innerHTML='<table title="'+this.Tooltip+'" class="'+D+'" cellspacing="0" cellpadding="0" border="0"><tr><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_Text">'+this.Caption+'</td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_ButtonArrow"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td></tr></table>';};G.SpecialCombo=this;G.onmouseover=FCKSpecialCombo_OnMouseOver;G.onmouseout=FCKSpecialCombo_OnMouseOut;G.onclick=FCKSpecialCombo_OnClick;FCKTools.DisableSelection(this._Panel.Document.body);};function FCKSpecialCombo_Cleanup(){this._LabelEl=null;this._OuterTable=null;this._ItemsHolderEl=null;this._PanelBox=null;if (this.Items){for (var A in this.Items) this.Items[A]=null;}};function FCKSpecialCombo_OnMouseOver(){if (this.SpecialCombo.Enabled){switch (this.SpecialCombo.Style){case 0:this.className='TB_Button_On_Over';break;case 1:this.className='TB_Button_On_Over';break;case 2:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(){switch (this.SpecialCombo.Style){case 0:this.className='TB_Button_Off';break;case 1:this.className='TB_Button_Off';break;case 2:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e){var A=this.SpecialCombo;if (A.Enabled){var B=A._Panel;var C=A._PanelBox;var D=A._ItemsHolderEl;var E=A.PanelMaxHeight;if (A.OnBeforeClick) A.OnBeforeClick(A);if (FCKBrowserInfo.IsIE) B.Preload(0,this.offsetHeight,this);if (D.offsetHeight>E) C.style.height=E+'px';else C.style.height='';B.Show(0,this.offsetHeight,this);}};
-var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;this._LastValue=null;};function FCKToolbarSpecialCombo_OnSelect(A,B){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(A,B);};FCKToolbarSpecialCombo.prototype.Create=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel(),this.FieldWidth,this.PanelWidth,this.PanelMaxHeight,FCKBrowserInfo.IsIE?window:FCKTools.GetElementWindow(A).parent);this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A);this._Combo.CommandName=this.CommandName;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(A,B){A.DeselectAll();A.SelectItem(B);A.SetLabelById(B);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=-1){A=1;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!=B){this._LastValue=B;FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=-1;if (A==this.State) return;if (A==-1){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=-1);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=-1;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);};
-var FCKToolbarFontsCombo=function(A,B){this.CommandName='FontName';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarFontsCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.CreateItems=function(A){var B=FCKConfig.FontNames.split(';');for (var i=0;i<B.length;i++) this._Combo.AddItem(B[i],'<font face="'+B[i]+'" style="font-size: 12px">'+B[i]+'</font>');}
-var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.CreateItems=function(A){A.FieldWidth=70;var B=FCKConfig.FontSizes.split(';');for (var i=0;i<B.length;i++){var C=B[i].split('/');this._Combo.AddItem(C[0],'<font size="'+C[0]+'">'+C[1]+'</font>',C[1]);}}
-var FCKToolbarFontFormatCombo=function(A,B){this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.NormalLabel='Normal';this.PanelWidth=190;};FCKToolbarFontFormatCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) B.body.id=FCKConfig.BodyId;if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) B.body.className+=' '+FCKConfig.BodyClass;var C=FCKLang['FontFormats'].split(';');var D={p:C[0],pre:C[1],address:C[2],h1:C[3],h2:C[4],h3:C[5],h4:C[6],h5:C[7],h6:C[8],div:C[9]};var E=FCKConfig.FontFormats.split(';');for (var i=0;i<E.length;i++){var F=E[i];var G=D[F];if (F=='p') this.NormalLabel=G;this._Combo.AddItem(F,'<div class="BaseFont"><'+F+'>'+G+'</'+F+'></div>',G);}};if (FCKBrowserInfo.IsIE){FCKToolbarFontFormatCombo.prototype.RefreshActiveItems=function(A,B){if (B==this.NormalLabel){if (A.Label!=' ') A.DeselectAll(true);}else{if (this._LastValue==B) return;A.SelectItemByLabel(B,true);};this._LastValue=B;}}
-var FCKToolbarStyleCombo=function(A,B){this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);B.body.className+=' ForceBaseFont';if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) B.body.id=FCKConfig.BodyId;if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) B.body.className+=' '+FCKConfig.BodyClass;if (!(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsGecko10)) A.OnBeforeClick=this.RefreshVisibleItems;var C=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Styles;for (var s in C){var D=C[s];var E;if (D.IsObjectElement) E=A.AddItem(s,s);else E=A.AddItem(s,D.GetOpenerTag()+s+D.GetCloserTag());E.Style=D;}};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){A.DeselectAll();var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetActiveStyles();if (B.length>0){for (var i=0;i<B.length;i++) A.SelectItem(B[i].Name);A.SetLabelById(B[0].Name);}else A.SetLabel('');};FCKToolbarStyleCombo.prototype.RefreshVisibleItems=function(A){if (FCKSelection.GetType()=='Control') var B=FCKSelection.GetSelectedElement().tagName;for (var i in A.Items){var C=A.Items[i];if ((B&&C.Style.Element==B)||(!B&&!C.Style.IsObjectElement)) C.style.display='';else C.style.display='none';}}
-var FCKToolbarPanelButton=function(A,B,C,D,E){this.CommandName=A;var F;if (E==null) F=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(E)=='number') F=[FCKConfig.SkinPath+'fck_strip.gif',16,E];var G=this._UIButton=new FCKToolbarButtonUI(A,B,C,F,D);G._FCKToolbarPanelButton=this;G.ShowArrow=true;G.OnClick=FCKToolbarPanelButton_OnButtonClick;};FCKToolbarPanelButton.prototype.TypeName='FCKToolbarPanelButton';FCKToolbarPanelButton.prototype.Create=function(A){A.className+='Menu';this._UIButton.Create(A);var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName)._Panel;B._FCKToolbarPanelButton=this;var C=B.Document.body.appendChild(B.Document.createElement('div'));C.style.position='absolute';C.style.top='0px';var D=this.LineImg=C.appendChild(B.Document.createElement('IMG'));D.className='TB_ConnectionLine';D.src=FCK_SPACER_PATH;B.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(A){var B=this._FCKToolbarPanelButton;var e=B._UIButton.MainElement;B._UIButton.ChangeState(1);B.LineImg.style.width=(e.offsetWidth-2)+'px';FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(B.CommandName).Execute(0,e.offsetHeight-1,e);};function FCKToolbarPanelButton_OnPanelHide(){var A=this._FCKToolbarPanelButton;A._UIButton.ChangeState(0);};FCKToolbarPanelButton.prototype.RefreshState=FCKToolbarButton.prototype.RefreshState;FCKToolbarPanelButton.prototype.Enable=FCKToolbarButton.prototype.Enable;FCKToolbarPanelButton.prototype.Disable=FCKToolbarButton.prototype.Disable;
-var FCKToolbarItems={};FCKToolbarItems.LoadedItems={};FCKToolbarItems.RegisterItem=function(A,B){this.LoadedItems[A]=B;};FCKToolbarItems.GetItem=function(A){var B=FCKToolbarItems.LoadedItems[A];if (B) return B;switch (A){case 'Source':B=new FCKToolbarButton('Source',FCKLang.Source,null,2,true,true,1);break;case 'DocProps':B=new FCKToolbarButton('DocProps',FCKLang.DocProps,null,null,null,null,2);break;case 'Save':B=new FCKToolbarButton('Save',FCKLang.Save,null,null,true,null,3);break;case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;case 'Preview':B=new FCKToolbarButton('Preview',FCKLang.Preview,null,null,true,null,5);break;case 'Templates':B=new FCKToolbarButton('Templates',FCKLang.Templates,null,null,null,null,6);break;case 'About':B=new FCKToolbarButton('About',FCKLang.About,null,null,true,null,47);break;case 'Cut':B=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,false,true,7);break;case 'Copy':B=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,false,true,8);break;case 'Paste':B=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,false,true,9);break;case 'PasteText':B=new FCKToolbarButton('PasteText',FCKLang.PasteText,null,null,false,true,10);break;case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true,11);break;case 'Print':B=new FCKToolbarButton('Print',FCKLang.Print,null,null,false,true,12);break;case 'SpellCheck':B=new FCKToolbarButton('SpellCheck',FCKLang.SpellCheck,null,null,null,null,13);break;case 'Undo':B=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,false,true,14);break;case 'Redo':B=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,false,true,15);break;case 'SelectAll':B=new FCKToolbarButton('SelectAll',FCKLang.SelectAll,null,null,null,null,18);break;case 'RemoveFormat':B=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat,null,null,false,true,19);break;case 'FitWindow':B=new FCKToolbarButton('FitWindow',FCKLang.FitWindow,null,null,true,true,66);break;case 'Bold':B=new FCKToolbarButton('Bold',FCKLang.Bold,null,null,false,true,20);break;case 'Italic':B=new FCKToolbarButton('Italic',FCKLang.Italic,null,null,false,true,21);break;case 'Underline':B=new FCKToolbarButton('Underline',FCKLang.Underline,null,null,false,true,22);break;case 'StrikeThrough':B=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough,null,null,false,true,23);break;case 'Subscript':B=new FCKToolbarButton('Subscript',FCKLang.Subscript,null,null,false,true,24);break;case 'Superscript':B=new FCKToolbarButton('Superscript',FCKLang.Superscript,null,null,false,true,25);break;case 'OrderedList':B=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList,null,false,true,26);break;case 'UnorderedList':B=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList,null,false,true,27);break;case 'Outdent':B=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent,null,null,false,true,28);break;case 'Indent':B=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent,null,null,false,true,29);break;case 'Link':B=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink,null,false,true,34);break;case 'Unlink':B=new FCKToolbarButton('Unlink',FCKLang.RemoveLink,null,null,false,true,35);break;case 'Anchor':B=new FCKToolbarButton('Anchor',FCKLang.Anchor,null,null,null,null,36);break;case 'Image':B=new FCKToolbarButton('Image',FCKLang.InsertImageLbl,FCKLang.InsertImage,null,false,true,37);break;case 'Flash':B=new FCKToolbarButton('Flash',FCKLang.InsertFlashLbl,FCKLang.InsertFlash,null,false,true,38);break;case 'Table':B=new FCKToolbarButton('Table',FCKLang.InsertTableLbl,FCKLang.InsertTable,null,false,true,39);break;case 'SpecialChar':B=new FCKToolbarButton('SpecialChar',FCKLang.InsertSpecialCharLbl,FCKLang.InsertSpecialChar,null,false,true,42);break;case 'Smiley':B=new FCKToolbarButton('Smiley',FCKLang.InsertSmileyLbl,FCKLang.InsertSmiley,null,false,true,41);break;case 'PageBreak':B=new FCKToolbarButton('PageBreak',FCKLang.PageBreakLbl,FCKLang.PageBreak,null,false,true,43);break;case 'Rule':B=new FCKToolbarButton('InsertHorizontalRule',FCKLang.InsertLineLbl,FCKLang.InsertLine,null,false,true,40);break;case 'JustifyLeft':B=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify,null,null,false,true,30);break;case 'JustifyCenter':B=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify,null,null,false,true,31);break;case 'JustifyRight':B=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify,null,null,false,true,32);break;case 'JustifyFull':B=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify,null,null,false,true,33);break;case 'Style':B=new FCKToolbarStyleCombo();break;case 'FontName':B=new FCKToolbarFontsCombo();break;case 'FontSize':B=new FCKToolbarFontSizeCombo();break;case 'FontFormat':B=new FCKToolbarFontFormatCombo();break;case 'TextColor':B=new FCKToolbarPanelButton('TextColor',FCKLang.TextColor,null,null,45);break;case 'BGColor':B=new FCKToolbarPanelButton('BGColor',FCKLang.BGColor,null,null,46);break;case 'Find':B=new FCKToolbarButton('Find',FCKLang.Find,null,null,null,null,16);break;case 'Replace':B=new FCKToolbarButton('Replace',FCKLang.Replace,null,null,null,null,17);break;case 'Form':B=new FCKToolbarButton('Form',FCKLang.Form,null,null,null,null,48);break;case 'Checkbox':B=new FCKToolbarButton('Checkbox',FCKLang.Checkbox,null,null,null,null,49);break;case 'Radio':B=new FCKToolbarButton('Radio',FCKLang.RadioButton,null,null,null,null,50);break;case 'TextField':B=new FCKToolbarButton('TextField',FCKLang.TextField,null,null,null,null,51);break;case 'Textarea':B=new FCKToolbarButton('Textarea',FCKLang.Textarea,null,null,null,null,52);break;case 'HiddenField':B=new FCKToolbarButton('HiddenField',FCKLang.HiddenField,null,null,null,null,56);break;case 'Button':B=new FCKToolbarButton('Button',FCKLang.Button,null,null,null,null,54);break;case 'Select':B=new FCKToolbarButton('Select',FCKLang.SelectionField,null,null,null,null,53);break;case 'ImageButton':B=new FCKToolbarButton('ImageButton',FCKLang.ImageButton,null,null,null,null,55);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;}
-var FCKToolbar=function(){this.Items=[];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbar_Cleanup);};FCKToolbar.prototype.AddItem=function(A){return this.Items[this.Items.length]=A;};FCKToolbar.prototype.AddButton=function(A,B,C,D,E,F){if (typeof(D)=='number') D=[this.DefaultIconsStrip,this.DefaultIconSize,D];var G=new FCKToolbarButtonUI(A,B,C,D,E,F);G._FCKToolbar=this;G.OnClick=FCKToolbar_OnItemClick;return this.AddItem(G);};function FCKToolbar_OnItemClick(A){var B=A._FCKToolbar;if (B.OnItemClick) B.OnItemClick(B,A);};FCKToolbar.prototype.AddSeparator=function(){this.AddItem(new FCKToolbarSeparator());};FCKToolbar.prototype.Create=function(A){if (this.MainElement){if (this.MainElement.parentNode) this.MainElement.parentNode.removeChild(this.MainElement);this.MainElement=null;};var B=FCKTools.GetElementDocument(A);var e=this.MainElement=B.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=(FCKLang.Dir=='ltr'?'left':'right');e.dir=FCKLang.Dir;e.cellPadding=0;e.cellSpacing=0;this.RowElement=e.insertRow(-1);var C;if (!this.HideStart){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i<this.Items.length;i++){this.Items[i].Create(this.RowElement.insertCell(-1));};if (!this.HideEnd){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};function FCKToolbar_Cleanup(){this.MainElement=null;this.RowElement=null;};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';}
+var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (!FCKBrowserInfo.IsGecko){switch (this.Name){case 'TableMergeRight':return FCKTableHandler.MergeRight();case 'TableMergeDown':return FCKTableHandler.MergeDown();}};switch (this.Name){case 'TableInsertRowAfter':return FCKTableHandler.InsertRow(false);case 'TableInsertRowBefore':return FCKTableHandler.InsertRow(true);case 'TableDeleteRows':return FCKTableHandler.DeleteRows();case 'TableInsertColumnAfter':return FCKTableHandler.InsertColumn(false);case 'TableInsertColumnBefore':return FCKTableHandler.InsertColumn(true);case 'TableDeleteColumns':return FCKTableHandler.DeleteColumns();case 'TableInsertCellAfter':return FCKTableHandler.InsertCell(null,false);case 'TableInsertCellBefore':return FCKTableHandler.InsertCell(null,true);case 'TableDeleteCells':return FCKTableHandler.DeleteCells();case 'TableMergeCells':return FCKTableHandler.MergeCells();case 'TableHorizontalSplitCell':return FCKTableHandler.HorizontalSplitCell();case 'TableVerticalSplitCell':return FCKTableHandler.VerticalSplitCell();case 'TableDelete':return FCKTableHandler.DeleteTable();default:return alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){if (FCK.EditorDocument!=null&&FCKSelection.HasAncestorNode('TABLE')){switch (this.Name){case 'TableHorizontalSplitCell':case 'TableVerticalSplitCell':if (FCKTableHandler.GetSelectedCells().length==1) return 0;else return -1;case 'TableMergeCells':if (FCKTableHandler.CheckIsSelectionRectangular()&&FCKTableHandler.GetSelectedCells().length>1) return 0;else return -1;case 'TableMergeRight':return FCKTableHandler.GetMergeRightTarget()?0:-1;case 'TableMergeDown':return FCKTableHandler.GetMergeDownTarget()?0:-1;default:return 0;}}else return -1;};
+var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1){G._fckSavedStyles=FCKTools.SaveStyles(G);G.style.zIndex=FCKConfig.FloatingPanelsZIndex-1;}};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var H=FCKTools.GetViewPaneSize(C);B.position="absolute";B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=H.Width+"px";B.height=H.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);var I=FCKTools.GetWindowPosition(C,A);if (I.x!=0) B.left=(-1*I.x)+"px";if (I.y!=0) B.top=(-1*I.y)+"px";this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent("onresize",FCKFitWindow_Resize);else C.removeEventListener("resize",FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();if (FCK.EditMode==0) FCK.EditingArea.MakeEditable();FCK.Focus();};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';};
+var FCKListCommand=function(A,B){this.Name=A;this.TagName=B;};FCKListCommand.prototype={GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=FCKSelection.GetBoundaryParentElement(true);var B=A;while (B){if (B.nodeName.IEquals(['ul','ol'])) break;B=B.parentNode;};if (B&&B.nodeName.IEquals(this.TagName)) return 1;else return 0;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCK.EditorDocument;var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=this.GetState();if (C==0){FCKDomTools.TrimNode(A.body);if (!A.body.firstChild){var D=A.createElement('p');A.body.appendChild(D);B.MoveToNodeContents(D);}};var E=B.CreateBookmark();var F=[];var G={};var H=new FCKDomRangeIterator(B);var I;H.ForceBrBreak=(C==0);var J=true;var K=null;while (J){while ((I=H.GetNextParagraph())){var L=new FCKElementPath(I);var M=null;var N=false;var O=L.BlockLimit;for (var i=L.Elements.length-1;i>=0;i--){var P=L.Elements[i];if (P.nodeName.IEquals(['ol','ul'])){if (O._FCK_ListGroupObject) O._FCK_ListGroupObject=null;var Q=P._FCK_ListGroupObject;if (Q) Q.contents.push(I);else{Q={ 'root':P,'contents':[I] };F.push(Q);FCKDomTools.SetElementMarker(G,P,'_FCK_ListGroupObject',Q);};N=true;break;}};if (N) continue;var R=O;if (R._FCK_ListGroupObject) R._FCK_ListGroupObject.contents.push(I);else{var Q={ 'root':R,'contents':[I] };FCKDomTools.SetElementMarker(G,R,'_FCK_ListGroupObject',Q);F.push(Q);}};if (FCKBrowserInfo.IsIE) J=false;else{if (K==null){K=[];var T=FCK.EditorWindow.getSelection();if (T&&F.length==0) K.push(T.getRangeAt(0));for (var i=1;T&&i<T.rangeCount;i++) K.push(T.getRangeAt(i));};if (K.length<1) J=false;else{var U=FCKW3CRange.CreateFromRange(A,K.shift());B._Range=U;B._UpdateElementInfo();if (B.StartNode.nodeName.IEquals('td')) B.SetStart(B.StartNode,1);if (B.EndNode.nodeName.IEquals('td')) B.SetEnd(B.EndNode,2);H=new FCKDomRangeIterator(B);H.ForceBrBreak=(C==0);}}};var W=[];while (F.length>0){var Q=F.shift();if (C==0){if (Q.root.nodeName.IEquals(['ul','ol'])) this._ChangeListType(Q,G,W);else this._CreateList(Q,W);}else if (C==1&&Q.root.nodeName.IEquals(['ul','ol'])) this._RemoveList(Q,G);};for (var i=0;i<W.length;i++){var M=W[i];var Z=false;var a=M;while (!Z){a=a.nextSibling;if (a&&a.nodeType==3&&a.nodeValue.search(/^[\n\r\t ]*$/)==0) continue;Z=true;};if (a&&a.nodeName.IEquals(this.TagName)){a.parentNode.removeChild(a);while (a.firstChild) M.appendChild(a.removeChild(a.firstChild));};Z=false;a=M;while (!Z){a=a.previousSibling;if (a&&a.nodeType==3&&a.nodeValue.search(/^[\n\r\t ]*$/)==0) continue;Z=true;};if (a&&a.nodeName.IEquals(this.TagName)){a.parentNode.removeChild(a);while (a.lastChild) M.insertBefore(a.removeChild(a.lastChild),M.firstChild);}};FCKDomTools.ClearAllMarkers(G);B.MoveToBookmark(E);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},_ChangeListType:function(A,B,C){var D=FCKDomTools.ListToArray(A.root,B);var E=[];for (var i=0;i<A.contents.length;i++){var F=A.contents[i];F=FCKTools.GetElementAscensor(F,'li');if (!F||F._FCK_ListItem_Processed) continue;E.push(F);FCKDomTools.SetElementMarker(B,F,'_FCK_ListItem_Processed',true);};var G=A.root.ownerDocument.createElement(this.TagName);for (var i=0;i<E.length;i++){var H=E[i]._FCK_ListArray_Index;D[H].parent=G;};var I=FCKDomTools.ArrayToList(D,B);for (var i=0;i<I.listNode.childNodes.length;i++){if (I.listNode.childNodes[i].nodeName.IEquals(this.TagName)) C.push(I.listNode.childNodes[i]);};A.root.parentNode.replaceChild(I.listNode,A.root);},_CreateList:function(A,B){var C=A.contents;var D=A.root.ownerDocument;var E=[];if (C.length==1&&C[0]==A.root){var F=D.createElement('div');while (C[0].firstChild) F.appendChild(C[0].removeChild(C[0].firstChild));C[0].appendChild(F);C[0]=F;};var G=A.contents[0].parentNode;for (var i=0;i<C.length;i++) G=FCKDomTools.GetCommonParents(G,C[i].parentNode).pop();for (var i=0;i<C.length;i++){var H=C[i];while (H.parentNode){if (H.parentNode==G){E.push(H);break;};H=H.parentNode;}};if (E.length<1) return;var I=E[E.length-1].nextSibling;var J=D.createElement(this.TagName);B.push(J);while (E.length){var K=E.shift();var L=D.createDocumentFragment();while (K.firstChild) L.appendChild(K.removeChild(K.firstChild));K.parentNode.removeChild(K);var M=D.createElement('li');M.appendChild(L);J.appendChild(M);};G.insertBefore(J,I);},_RemoveList:function(A,B){var C=FCKDomTools.ListToArray(A.root,B);var D=[];for (var i=0;i<A.contents.length;i++){var E=A.contents[i];E=FCKTools.GetElementAscensor(E,'li');if (!E||E._FCK_ListItem_Processed) continue;D.push(E);FCKDomTools.SetElementMarker(B,E,'_FCK_ListItem_Processed',true);};var F=null;for (var i=0;i<D.length;i++){var G=D[i]._FCK_ListArray_Index;C[G].indent=-1;F=G;};for (var i=F+1;i<C.length;i++){if (C[i].indent>C[i-1].indent+1){var H=C[i-1].indent+1-C[i].indent;var I=C[i].indent;while (C[i]&&C[i].indent>=I){C[i].indent+=H;i++;};i--;}};var J=FCKDomTools.ArrayToList(C,B);if (A.root.nextSibling==null||A.root.nextSibling.nodeName.IEquals('br')){if (J.listNode.lastChild.nodeName.IEquals('br')) J.listNode.removeChild(J.listNode.lastChild);};A.root.parentNode.replaceChild(J.listNode,A.root);}};
+var FCKJustifyCommand=function(A){this.AlignValue=A;var B=FCKConfig.ContentLangDirection.toLowerCase();this.IsDefaultAlign=(A=='left'&&B=='ltr')||(A=='right'&&B=='rtl');var C=this._CssClassName=(function(){var D=FCKConfig.JustifyClasses;if (D){switch (A){case 'left':return D[0];case 'center':return D[1];case 'right':return D[2];case 'justify':return D[3];}};return null;})();if (C&&C.length>0) this._CssClassRegex=new RegExp('(?:^|\\s+)'+C+'(?=$|\\s)');};FCKJustifyCommand._GetClassNameRegex=function(){var A=FCKJustifyCommand._ClassRegex;if (A!=undefined) return A;var B=[];var C=FCKConfig.JustifyClasses;if (C){for (var i=0;i<4;i++){var D=C[i];if (D&&D.length>0) B.push(D);}};if (B.length>0) A=new RegExp('(?:^|\\s+)(?:'+B.join('|')+')(?=$|\\s)');else A=null;return FCKJustifyCommand._ClassRegex=A;};FCKJustifyCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=this.GetState();if (B==-1) return;var C=A.CreateBookmark();var D=this._CssClassName;var E=new FCKDomRangeIterator(A);var F;while ((F=E.GetNextParagraph())){F.removeAttribute('align');if (D){var G=F.className.replace(FCKJustifyCommand._GetClassNameRegex(),'');if (B==0){if (G.length>0) G+=' ';F.className=G+D;}else if (G.length==0) FCKDomTools.RemoveAttribute(F,'class');}else{var H=F.style;if (B==0) H.textAlign=this.AlignValue;else{H.textAlign='';if (H.cssText.length==0) F.removeAttribute('style');}}};A.MoveToBookmark(C);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;var C;if (FCKBrowserInfo.IsIE) C=B.currentStyle.textAlign;else C=FCK.EditorWindow.getComputedStyle(B,'').getPropertyValue('text-align');C=C.replace(/(-moz-|-webkit-|start|auto)/i,'');if ((!C&&this.IsDefaultAlign)||C==this.AlignValue) return 1;return 0;}};
+var FCKIndentCommand=function(A,B){this.Name=A;this.Offset=B;this.IndentCSSProperty=FCKConfig.ContentLangDirection.IEquals('ltr')?'marginLeft':'marginRight';};FCKIndentCommand._InitIndentModeParameters=function(){if (FCKConfig.IndentClasses&&FCKConfig.IndentClasses.length>0){this._UseIndentClasses=true;this._IndentClassMap={};for (var i=0;i<FCKConfig.IndentClasses.length;i++) this._IndentClassMap[FCKConfig.IndentClasses[i]]=i+1;this._ClassNameRegex=new RegExp('(?:^|\\s+)('+FCKConfig.IndentClasses.join('|')+')(?=$|\\s)');}else this._UseIndentClasses=false;};FCKIndentCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=A.CreateBookmark();var C=FCKDomTools.GetCommonParentNode(A.StartNode||A.StartContainer,A.EndNode||A.EndContainer,['ul','ol']);if (C) this._IndentList(A,C);else this._IndentBlock(A);A.MoveToBookmark(B);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;if (FCKIndentCommand._UseIndentClasses==undefined) FCKIndentCommand._InitIndentModeParameters();var A=FCKSelection.GetBoundaryParentElement(true);var B=FCKSelection.GetBoundaryParentElement(false);var C=FCKDomTools.GetCommonParentNode(A,B,['ul','ol']);if (C){if (this.Name.IEquals('outdent')) return 0;var D=FCKTools.GetElementAscensor(A,'li');if (!D||!D.previousSibling) return -1;return 0;};if (!FCKIndentCommand._UseIndentClasses&&this.Name.IEquals('indent')) return 0;var E=new FCKElementPath(A);var F=E.Block||E.BlockLimit;if (!F) return -1;if (FCKIndentCommand._UseIndentClasses){var G=F.className.match(FCKIndentCommand._ClassNameRegex);var H=0;if (G!=null){G=G[1];H=FCKIndentCommand._IndentClassMap[G];};if ((this.Name=='outdent'&&H==0)||(this.Name=='indent'&&H==FCKConfig.IndentClasses.length)) return -1;return 0;}else{var I=parseInt(F.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;if (I<=0) return -1;return 0;}},_IndentBlock:function(A){var B=new FCKDomRangeIterator(A);A.Expand('block_contents');var C=FCKDomTools.GetCommonParents(A.StartContainer,A.EndContainer);var D=C[C.length-1];var E;while ((E=B.GetNextParagraph())){if (!(E==D||E.parentNode==D)) continue;if (FCKIndentCommand._UseIndentClasses){var F=E.className.match(FCKIndentCommand._ClassNameRegex);var G=0;if (F!=null){F=F[1];G=FCKIndentCommand._IndentClassMap[F];};if (this.Name.IEquals('outdent')) G--;else if (this.Name.IEquals('indent')) G++;G=Math.min(G,FCKConfig.IndentClasses.length);G=Math.max(G,0);var H=E.className.replace(FCKIndentCommand._ClassNameRegex,'');if (G<1) E.className=H;else E.className=(H.length>0?H+' ':'')+FCKConfig.IndentClasses[G-1];}else{var I=parseInt(E.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;I+=this.Offset;I=Math.max(I,0);I=Math.ceil(I/this.Offset)*this.Offset;E.style[this.IndentCSSProperty]=I?I+FCKConfig.IndentUnit:'';if (E.getAttribute('style')=='') E.removeAttribute('style');}}},_IndentList:function(A,B){var C=A.StartContainer;var D=A.EndContainer;while (C&&C.parentNode!=B) C=C.parentNode;while (D&&D.parentNode!=B) D=D.parentNode;if (!C||!D) return;var E=C;var F=[];var G=false;while (G==false){if (E==D) G=true;F.push(E);E=E.nextSibling;};if (F.length<1) return;var H=FCKDomTools.GetParents(B);for (var i=0;i<H.length;i++){if (H[i].nodeName.IEquals(['ul','ol'])){B=H[i];break;}};var I=this.Name.IEquals('indent')?1:-1;var J=F[0];var K=F[F.length-1];var L={};var M=FCKDomTools.ListToArray(B,L);var N=M[K._FCK_ListArray_Index].indent;for (var i=J._FCK_ListArray_Index;i<=K._FCK_ListArray_Index;i++) M[i].indent+=I;for (var i=K._FCK_ListArray_Index+1;i<M.length&&M[i].indent>N;i++) M[i].indent+=I;var O=FCKDomTools.ArrayToList(M);if (O) B.parentNode.replaceChild(O.listNode,B);FCKDomTools.ClearAllMarkers(L);}};
+var FCKBlockQuoteCommand=function(){};FCKBlockQuoteCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=this.GetState();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();if (FCKBrowserInfo.IsIE){var D=B.GetBookmarkNode(C,true);var E=B.GetBookmarkNode(C,false);var F;if (D&&D.parentNode.nodeName.IEquals('blockquote')&&!D.previousSibling){F=D;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]) FCKDomTools.MoveNode(D,F,true);}};if (E&&E.parentNode.nodeName.IEquals('blockquote')&&!E.previousSibling){F=E;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]){if (F.firstChild==D) FCKDomTools.InsertAfterNode(D,E);else FCKDomTools.MoveNode(E,F,true);}}}};var G=new FCKDomRangeIterator(B);var H;if (A==0){G.EnforceRealBlocks=true;var I=[];while ((H=G.GetNextParagraph())) I.push(H);if (I.length<1){para=B.Window.document.createElement(FCKConfig.EnterMode.IEquals('p')?'p':'div');B.InsertNode(para);para.appendChild(B.Window.document.createTextNode('\ufeff'));B.MoveToBookmark(C);B.MoveToNodeContents(para);B.Collapse(true);C=B.CreateBookmark();I.push(para);};var J=I[0].parentNode;var K=[];for (var i=0;i<I.length;i++){H=I[i];J=FCKDomTools.GetCommonParents(H.parentNode,J).pop();};var L=null;while (I.length>0){H=I.shift();while (H.parentNode!=J) H=H.parentNode;if (H!=L) K.push(H);L=H;};while (K.length>0){H=K.shift();if (H.nodeName.IEquals('blockquote')){var M=H.ownerDocument.createDocumentFragment();while (H.firstChild){M.appendChild(H.removeChild(H.firstChild));I.push(M.lastChild);};H.parentNode.replaceChild(M,H);}else I.push(H);};var N=B.Window.document.createElement('blockquote');J.insertBefore(N,I[0]);while (I.length>0){H=I.shift();N.appendChild(H);}}else if (A==1){var O=[];while ((H=G.GetNextParagraph())){var P=null;var Q=null;while (H.parentNode){if (H.parentNode.nodeName.IEquals('blockquote')){P=H.parentNode;Q=H;break;};H=H.parentNode;};if (P&&Q) O.push(Q);};var R=[];while (O.length>0){var S=O.shift();var N=S.parentNode;if (S==S.parentNode.firstChild){N.parentNode.insertBefore(N.removeChild(S),N);if (!N.firstChild) N.parentNode.removeChild(N);}else if (S==S.parentNode.lastChild){N.parentNode.insertBefore(N.removeChild(S),N.nextSibling);if (!N.firstChild) N.parentNode.removeChild(N);}else FCKDomTools.BreakParent(S,S.parentNode,B);R.push(S);};if (FCKConfig.EnterMode.IEquals('br')){while (R.length){var S=R.shift();var W=true;if (S.nodeName.IEquals('div')){var M=S.ownerDocument.createDocumentFragment();var Y=W&&S.previousSibling&&!FCKListsLib.BlockBoundaries[S.previousSibling.nodeName.toLowerCase()];if (W&&Y) M.appendChild(S.ownerDocument.createElement('br'));var Z=S.nextSibling&&!FCKListsLib.BlockBoundaries[S.nextSibling.nodeName.toLowerCase()];while (S.firstChild) M.appendChild(S.removeChild(S.firstChild));if (Z) M.appendChild(S.ownerDocument.createElement('br'));S.parentNode.replaceChild(M,S);W=false;}}}};B.MoveToBookmark(C);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;for (var i=0;i<A.Elements.length;i++){if (A.Elements[i].nodeName.IEquals('blockquote')) return 1;};return 0;}};
+var FCKCoreStyleCommand=function(A){this.Name='CoreStyle';this.StyleName='_FCK_'+A;this.IsActive=false;FCKStyles.AttachStyleStateChange(this.StyleName,this._OnStyleStateChange,this);};FCKCoreStyleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();if (this.IsActive) FCKStyles.RemoveStyle(this.StyleName);else FCKStyles.ApplyStyle(this.StyleName);FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){return this.IsActive?1:0;},_OnStyleStateChange:function(A,B){this.IsActive=B;}};
+var FCKRemoveFormatCommand=function(){this.Name='RemoveFormat';};FCKRemoveFormatCommand.prototype={Execute:function(){FCKStyles.RemoveAll();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){return FCK.EditorWindow?0:-1;}};
+var FCKCommands=FCK.Commands={};FCKCommands.LoadedCommands={};FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'Bold':case 'Italic':case 'Underline':case 'StrikeThrough':case 'Subscript':case 'Superscript':B=new FCKCoreStyleCommand(A);break;case 'RemoveFormat':B=new FCKRemoveFormatCommand();break;case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,390,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,170);break;case 'AnchorDelete':B=new FCKAnchorDeleteCommand();break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,170);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,170);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',400,330);break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,250);break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,250);break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,400);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,320);break;case 'Smiley':B=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight);break;case 'Table':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html',480,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',480,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,250);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'Rule':B=new FCKRuleCommand();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'Paste':B=new FCKPasteCommand();break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'JustifyLeft':B=new FCKJustifyCommand('left');break;case 'JustifyCenter':B=new FCKJustifyCommand('center');break;case 'JustifyRight':B=new FCKJustifyCommand('right');break;case 'JustifyFull':B=new FCKJustifyCommand('justify');break;case 'Indent':B=new FCKIndentCommand('indent',FCKConfig.IndentLength);break;case 'Outdent':B=new FCKIndentCommand('outdent',FCKConfig.IndentLength*-1);break;case 'Blockquote':B=new FCKBlockQuoteCommand();break;case 'TableInsertRowAfter':B=new FCKTableCommand('TableInsertRowAfter');break;case 'TableInsertRowBefore':B=new FCKTableCommand('TableInsertRowBefore');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumnAfter':B=new FCKTableCommand('TableInsertColumnAfter');break;case 'TableInsertColumnBefore':B=new FCKTableCommand('TableInsertColumnBefore');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCellAfter':B=new FCKTableCommand('TableInsertCellAfter');break;case 'TableInsertCellBefore':B=new FCKTableCommand('TableInsertCellBefore');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableMergeRight':B=new FCKTableCommand('TableMergeRight');break;case 'TableMergeDown':B=new FCKTableCommand('TableMergeDown');break;case 'TableHorizontalSplitCell':B=new FCKTableCommand('TableHorizontalSplitCell');break;case 'TableVerticalSplitCell':B=new FCKTableCommand('TableVerticalSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,230);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,230);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,230);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,230);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,230);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,230);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,230);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,380);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,400);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();break;case 'Copy':B=new FCKCopyCommand();break;case 'SelectAll':B=new FCKSelectAllCommand();break;case 'InsertOrderedList':B=new FCKListCommand('insertorderedlist','ol');break;case 'InsertUnorderedList':B=new FCKListCommand('insertunorderedlist','ul');break;case 'ShowBlocks':B=new FCKShowBlockCommand('ShowBlocks',FCKConfig.StartupShowBlocks?1:0);break;case 'Undefined':B=new FCKUndefinedCommand();break;default:if (FCKRegexLib.NamedCommands.test(A)) B=new FCKNamedCommand(A);else{alert(FCKLang.UnknownCommand.replace(/%1/g,A));return null;}};FCKCommands.LoadedCommands[A]=B;return B;};FCKCommands.GetFullPageState=function(){return FCKConfig.FullPage?0:-1;};FCKCommands.GetBooleanState=function(A){return A?-1:0;};
+var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();B=this.Document=this._Popup.document;FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var C=this._IFrame=this._Window.document.createElement('iframe');C.src='javascript:void(0)';C.allowTransparency=true;C.frameBorder='0';C.scrolling='no';C.width=C.height=0;FCKDomTools.SetElementStyles(C,{position:'absolute',zIndex:FCKConfig.FloatingPanelsZIndex});if (this._Window==window.parent&&window.frameElement){var D=null;if (FCKBrowserInfo.IsGecko&&FCK&&FCK.EditorDocument) D=[FCK.EditorDocument.body.scrollLeft,FCK.EditorDocument.body.scrollTop];window.frameElement.parentNode.insertBefore(C,window.frameElement);if (D){var E=function(){FCK.EditorDocument.body.scrollLeft=D[0];FCK.EditorDocument.body.scrollTop=D[1];};setTimeout(E,500);}}else this._Window.document.body.appendChild(C);var F=C.contentWindow;B=this.Document=F.document;var G='';if (FCKBrowserInfo.IsSafari) G='<base href="'+window.document.location+'">';B.open();B.write('<html><head>'+G+'<\/head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();FCKTools.AddEventListenerEx(F,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(F,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;FCKTools.AddEventListener(B,'contextmenu',FCKTools.CancelEvent);this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;var E=this.MainNode;if (this._Popup){this._Popup.show(x,y,0,0,A);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,E.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCK.ToolbarSet.CurrentInstance.FocusManager)!='undefined') FCK.ToolbarSet.CurrentInstance.FocusManager.Lock();if (this.ParentPanel){this.ParentPanel.Lock();FCKPanel_Window_OnBlur(null,this.ParentPanel);};if (FCKPanel._OpenedPanel) FCKPanel._OpenedPanel.Hide();FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (!B) this._IFrame.width=1;if (!C) this._IFrame.height=1;D=E.offsetWidth||E.firstChild.offsetWidth;var F=FCKTools.GetDocumentPosition(this._Window,A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A);var G=FCKDomTools.GetPositionedAncestor(FCKTools.GetElementWindow(this._IFrame),this._IFrame.parentNode);if (G){var H=FCKTools.GetDocumentPosition(FCKTools.GetElementWindow(G),G);F.x-=H.x;F.y-=H.y;};if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=F.x;y+=F.y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var I=FCKTools.GetViewPaneSize(this._Window);var J=FCKTools.GetScrollPosition(this._Window);var K=I.Height+J.Y;var L=I.Width+J.X;if ((x+D)>L) x-=x+D-L;if ((y+E.offsetHeight)>K) y-=y+E.offsetHeight-K;};if (x<0) x=0;FCKDomTools.SetElementStyles(this._IFrame,{left:x+'px',top:y+'px'});var M=D;var N=E.offsetHeight;this._IFrame.width=M;this._IFrame.height=N;this._IFrame.contentWindow.focus();FCKPanel._OpenedPanel=this;};this._IsOpened=true;FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened||this._LockCounter>0) return;if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&&!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;};
+var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B,eIconImage;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path;eIconImage.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url("'+this.Path+'")';}}else{if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path?this.Path:FCK_SPACER_PATH;}else{B=A.createElement('IMG');B.src=this.Path?this.Path:FCK_SPACER_PATH;}};B.className='TB_Button_Image';return B;}
+var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||0;this.State=F||0;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this.MainElement=B.createElement('DIV');C.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) C.onmousedown=FCKTools.CancelEvent;FCKTools.AddEventListenerEx(C,'mouseover',FCKToolbarButtonUI_OnMouseOver,this);FCKTools.AddEventListenerEx(C,'mouseout',FCKToolbarButtonUI_OnMouseOut,this);FCKTools.AddEventListenerEx(C,'click',FCKToolbarButtonUI_OnClick,this);this.ChangeState(this.State,true);if (this.Style==0&&!this.ShowArrow){C.appendChild(this.Icon.CreateIconElement(B));}else{var D=C.appendChild(B.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==0||this.Style==2) F.appendChild(this.Icon.CreateIconElement(B));else F.appendChild(this._CreatePaddingElement(B));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(B.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(B));};F=E.insertCell(-1);var G=F.appendChild(B.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(B));};A.appendChild(C);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;if (!e) return;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';break;case 1:e.className='TB_Button_On';break;case -1:e.className='TB_Button_Disabled';break;};this.State=A;};function FCKToolbarButtonUI_OnMouseOver(A,B){if (B.State==0) this.className='TB_Button_Off_Over';else if (B.State==1) this.className='TB_Button_On_Over';};function FCKToolbarButtonUI_OnMouseOut(A,B){if (B.State==0) this.className='TB_Button_Off';else if (B.State==1) this.className='TB_Button_On';};function FCKToolbarButtonUI_OnClick(A,B){if (B.OnClick&&B.State!=-1) B.OnClick(B);};function FCKToolbarButtonUI_Cleanup(){this.MainElement=null;};
+var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];else this.IconPath=G;};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (A==this._UIButton.State) return;this._UIButton.ChangeState(A);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);}
+var FCKSpecialCombo=function(A,B,C,D,E){this.FieldWidth=B||100;this.PanelWidth=C||150;this.PanelMaxHeight=D||150;this.Label=' ';this.Caption=A;this.Tooltip=A;this.Style=2;this.Enabled=true;this.Items={};this._Panel=new FCKPanel(E||window);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._PanelBox=this._Panel.MainNode.appendChild(this._Panel.Document.createElement('DIV'));this._PanelBox.className='SC_Panel';this._PanelBox.style.width=this.PanelWidth+'px';this._PanelBox.innerHTML='<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>';this._ItemsHolderEl=this._PanelBox.getElementsByTagName('TD')[0];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKSpecialCombo_Cleanup);};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(A,B,C){this.className=this.originalClass;B._Panel.Hide();B.SetLabel(this.FCKItemLabel);if (typeof(B.OnSelect)=='function') B.OnSelect(C,this);};FCKSpecialCombo.prototype.ClearItems=function (){if (this.Items) this.Items={};var A=this._ItemsHolderEl;while (A.firstChild) A.removeChild(A.firstChild);};FCKSpecialCombo.prototype.AddItem=function(A,B,C,D){var E=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));E.className=E.originalClass='SC_Item';E.innerHTML=B;E.FCKItemLabel=C||A;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;FCKTools.AddEventListenerEx(E,'mouseover',FCKSpecialCombo_ItemOnMouseOver);FCKTools.AddEventListenerEx(E,'mouseout',FCKSpecialCombo_ItemOnMouseOut);FCKTools.AddEventListenerEx(E,'click',FCKSpecialCombo_ItemOnClick,[this,A]);this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){if (typeof A=='string') A=this.Items[A.toString().toLowerCase()];if (A){A.className=A.originalClass='SC_ItemSelected';A.Selected=true;}};FCKSpecialCombo.prototype.SelectItemByLabel=function(A,B){for (var C in this.Items){var D=this.Items[C];if (D.FCKItemLabel==A){D.className=D.originalClass='SC_ItemSelected';D.Selected=true;if (B) this.SetLabel(A);}}};FCKSpecialCombo.prototype.DeselectAll=function(A){for (var i in this.Items){if (!this.Items[i]) continue;this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};if (A) this.SetLabel('');};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){A=(!A||A.length==0)?' ':A;if (A==this.Label) return;this.Label=A;var B=this._LabelEl;if (B){B.innerHTML=A;FCKTools.DisableSelection(B);}};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;if (this._OuterTable) this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this._OuterTable=A.appendChild(B.createElement('TABLE'));C.cellPadding=0;C.cellSpacing=0;C.insertRow(-1);var D;var E;switch (this.Style){case 0:D='TB_ButtonType_Icon';E=false;break;case 1:D='TB_ButtonType_Text';E=false;break;case 2:E=true;break;};if (this.Caption&&this.Caption.length>0&&E){var F=C.rows[0].insertCell(-1);F.innerHTML=this.Caption;F.className='SC_FieldCaption';};var G=FCKTools.AppendElement(C.rows[0].insertCell(-1),'div');if (E){G.className='SC_Field';G.style.width=this.FieldWidth+'px';G.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldLabel"><label> </label></td><td class="SC_FieldButton"> </td></tr></tbody></table>';this._LabelEl=G.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{G.className='TB_Button_Off';G.innerHTML='<table title="'+this.Tooltip+'" class="'+D+'" cellspacing="0" cellpadding="0" border="0"><tr><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_Text">'+this.Caption+'</td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_ButtonArrow"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td></tr></table>';};FCKTools.AddEventListenerEx(G,'mouseover',FCKSpecialCombo_OnMouseOver,this);FCKTools.AddEventListenerEx(G,'mouseout',FCKSpecialCombo_OnMouseOut,this);FCKTools.AddEventListenerEx(G,'click',FCKSpecialCombo_OnClick,this);FCKTools.DisableSelection(this._Panel.Document.body);};function FCKSpecialCombo_Cleanup(){this._LabelEl=null;this._OuterTable=null;this._ItemsHolderEl=null;this._PanelBox=null;if (this.Items){for (var A in this.Items) this.Items[A]=null;}};function FCKSpecialCombo_OnMouseOver(A,B){if (B.Enabled){switch (B.Style){case 0:this.className='TB_Button_On_Over';break;case 1:this.className='TB_Button_On_Over';break;case 2:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(A,B){switch (B.Style){case 0:this.className='TB_Button_Off';break;case 1:this.className='TB_Button_Off';break;case 2:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e,A){if (A.Enabled){var B=A._Panel;var C=A._PanelBox;var D=A._ItemsHolderEl;var E=A.PanelMaxHeight;if (A.OnBeforeClick) A.OnBeforeClick(A);if (FCKBrowserInfo.IsIE) B.Preload(0,this.offsetHeight,this);if (D.offsetHeight>E) C.style.height=E+'px';else C.style.height='';B.Show(0,this.offsetHeight,this);}};
+var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;};FCKToolbarSpecialCombo.prototype.DefaultLabel='';function FCKToolbarSpecialCombo_OnSelect(A,B){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(A,B);};FCKToolbarSpecialCombo.prototype.Create=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel(),this.FieldWidth,this.PanelWidth,this.PanelMaxHeight,FCKBrowserInfo.IsIE?window:FCKTools.GetElementWindow(A).parent);this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A);this._Combo.CommandName=this.CommandName;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(A,B){A.DeselectAll();A.SelectItem(B);A.SetLabelById(B);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=-1){A=1;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!==B){this._LastValue=B;if (!B||B.length==0){this._Combo.DeselectAll();this._Combo.SetLabel(this.DefaultLabel);}else FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=-1;if (A==this.State) return;if (A==-1){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=-1);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=-1;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);};
+var FCKToolbarStyleCombo=function(A,B){if (A===false) return;this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultStyleLabel||'';};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.GetStyles=function(){var A={};var B=FCK.ToolbarSet.CurrentInstance.Styles.GetStyles();for (var C in B){var D=B[C];if (!D.IsCore) A[C]=D;};return A;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);FCKTools.AppendStyleString(B,FCKConfig.EditorAreaStyles);B.body.className+=' ForceBaseFont';FCKConfig.ApplyBodyAttributes(B.body);var C=this.GetStyles();for (var D in C){var E=C[D];var F=E.GetType()==2?D:FCKToolbarStyleCombo_BuildPreview(E,E.Label||D);var G=A.AddItem(D,F);G.Style=E;};A.OnBeforeClick=this.StyleCombo_OnBeforeClick;};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Elements;for (var e=0;e<D.length;e++){for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D[e],true)){A.SetLabel(F.Label||F.Name);return;}}}};A.SetLabel(this.DefaultLabel);};FCKToolbarStyleCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B;var C;var D;var E=FCK.ToolbarSet.CurrentInstance.Selection;if (E.GetType()=='Control'){B=E.GetSelectedElement();D=B.nodeName.toLowerCase();}else{B=E.GetBoundaryParentElement(true);C=new FCKElementPath(B);};for (var i in A.Items){var F=A.Items[i];var G=F.Style;if ((D&&G.Element==D)||(!D&&G.GetType()!=2)){F.style.display='';if ((C&&G.CheckActive(C))||(!C&&G.CheckElementRemovable(B,true))) A.SelectItem(G.Name);}else F.style.display='none';}};function FCKToolbarStyleCombo_BuildPreview(A,B){var C=A.GetType();var D=[];if (C==0) D.push('<div class="BaseFont">');var E=A.Element;if (E=='bdo') E='span';D=['<',E];var F=A._StyleDesc.Attributes;if (F){for (var G in F){D.push(' ',G,'="',A.GetFinalAttributeValue(G),'"');}};if (A._GetStyleText().length>0) D.push(' style="',A.GetFinalStyleValue(),'"');D.push('>',B,'</',E,'>');if (C==0) D.push('</div>');return D.join('');}
+var FCKToolbarFontFormatCombo=function(A,B){if (A===false) return;this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.NormalLabel='Normal';this.PanelWidth=190;this.DefaultLabel=FCKConfig.DefaultFontFormatLabel||'';};FCKToolbarFontFormatCombo.prototype=new FCKToolbarStyleCombo(false);FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.GetStyles=function(){var A={};var B=FCKLang['FontFormats'].split(';');var C={p:B[0],pre:B[1],address:B[2],h1:B[3],h2:B[4],h3:B[5],h4:B[6],h5:B[7],h6:B[8],div:B[9]||(B[0]+' (DIV)')};var D=FCKConfig.FontFormats.split(';');for (var i=0;i<D.length;i++){var E=D[i];var F=FCKStyles.GetStyle('_FCK_'+E);if (F){F.Label=C[E];A['_FCK_'+E]=F;}else alert("The FCKConfig.CoreStyles['"+E+"'] setting was not found. Please check the fckconfig.js file");};return A;};FCKToolbarFontFormatCombo.prototype.RefreshActiveItems=function(A){var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Block;if (D){for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D)){A.SetLabel(F.Label);return;}}}};A.SetLabel(this.DefaultLabel);};FCKToolbarFontFormatCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Block;for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D)){A.SelectItem(E);return;}}}};
+var FCKToolbarFontsCombo=function(A,B){this.CommandName='FontName';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultFontLabel||'';};FCKToolbarFontsCombo.prototype=new FCKToolbarFontFormatCombo(false);FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.GetStyles=function(){var A=FCKStyles.GetStyle('_FCK_FontFace');if (!A){alert("The FCKConfig.CoreStyles['Size'] setting was not found. Please check the fckconfig.js file");return {};};var B={};var C=FCKConfig.FontNames.split(';');for (var i=0;i<C.length;i++){var D=C[i].split('/');var E=D[0];var F=D[1]||E;var G=FCKTools.CloneObject(A);G.SetVariable('Font',E);G.Label=F;B[F]=G;};return B;};FCKToolbarFontsCombo.prototype.RefreshActiveItems=FCKToolbarStyleCombo.prototype.RefreshActiveItems;FCKToolbarFontsCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B=FCKSelection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);for (var i in A.Items){var D=A.Items[i];var E=D.Style;if (E.CheckActive(C)){A.SelectItem(D);return;}}}};
+var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultFontSizeLabel||'';this.FieldWidth=70;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarFontFormatCombo(false);FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.GetStyles=function(){var A=FCKStyles.GetStyle('_FCK_Size');if (!A){alert("The FCKConfig.CoreStyles['FontFace'] setting was not found. Please check the fckconfig.js file");return {};};var B={};var C=FCKConfig.FontSizes.split(';');for (var i=0;i<C.length;i++){var D=C[i].split('/');var E=D[0];var F=D[1]||E;var G=FCKTools.CloneObject(A);G.SetVariable('Size',E);G.Label=F;B[F]=G;};return B;};FCKToolbarFontSizeCombo.prototype.RefreshActiveItems=FCKToolbarStyleCombo.prototype.RefreshActiveItems;FCKToolbarFontSizeCombo.prototype.StyleCombo_OnBeforeClick=FCKToolbarFontsCombo.prototype.StyleCombo_OnBeforeClick;
+var FCKToolbarPanelButton=function(A,B,C,D,E){this.CommandName=A;var F;if (E==null) F=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(E)=='number') F=[FCKConfig.SkinPath+'fck_strip.gif',16,E];var G=this._UIButton=new FCKToolbarButtonUI(A,B,C,F,D);G._FCKToolbarPanelButton=this;G.ShowArrow=true;G.OnClick=FCKToolbarPanelButton_OnButtonClick;};FCKToolbarPanelButton.prototype.TypeName='FCKToolbarPanelButton';FCKToolbarPanelButton.prototype.Create=function(A){A.className+='Menu';this._UIButton.Create(A);var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName)._Panel;B._FCKToolbarPanelButton=this;var C=B.Document.body.appendChild(B.Document.createElement('div'));C.style.position='absolute';C.style.top='0px';var D=this.LineImg=C.appendChild(B.Document.createElement('IMG'));D.className='TB_ConnectionLine';D.style.position='absolute';D.src=FCK_SPACER_PATH;B.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(A){var B=this._FCKToolbarPanelButton;var e=B._UIButton.MainElement;B._UIButton.ChangeState(1);B.LineImg.style.width=(e.offsetWidth-2)+'px';FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(B.CommandName).Execute(0,e.offsetHeight-1,e);};function FCKToolbarPanelButton_OnPanelHide(){var A=this._FCKToolbarPanelButton;A._UIButton.ChangeState(0);};FCKToolbarPanelButton.prototype.RefreshState=FCKToolbarButton.prototype.RefreshState;FCKToolbarPanelButton.prototype.Enable=FCKToolbarButton.prototype.Enable;FCKToolbarPanelButton.prototype.Disable=FCKToolbarButton.prototype.Disable;
+var FCKToolbarItems={};FCKToolbarItems.LoadedItems={};FCKToolbarItems.RegisterItem=function(A,B){this.LoadedItems[A]=B;};FCKToolbarItems.GetItem=function(A){var B=FCKToolbarItems.LoadedItems[A];if (B) return B;switch (A){case 'Source':B=new FCKToolbarButton('Source',FCKLang.Source,null,2,true,true,1);break;case 'DocProps':B=new FCKToolbarButton('DocProps',FCKLang.DocProps,null,null,null,null,2);break;case 'Save':B=new FCKToolbarButton('Save',FCKLang.Save,null,null,true,null,3);break;case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;case 'Preview':B=new FCKToolbarButton('Preview',FCKLang.Preview,null,null,true,null,5);break;case 'Templates':B=new FCKToolbarButton('Templates',FCKLang.Templates,null,null,null,null,6);break;case 'About':B=new FCKToolbarButton('About',FCKLang.About,null,null,true,null,47);break;case 'Cut':B=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,false,true,7);break;case 'Copy':B=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,false,true,8);break;case 'Paste':B=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,false,true,9);break;case 'PasteText':B=new FCKToolbarButton('PasteText',FCKLang.PasteText,null,null,false,true,10);break;case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true,11);break;case 'Print':B=new FCKToolbarButton('Print',FCKLang.Print,null,null,false,true,12);break;case 'SpellCheck':B=new FCKToolbarButton('SpellCheck',FCKLang.SpellCheck,null,null,null,null,13);break;case 'Undo':B=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,false,true,14);break;case 'Redo':B=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,false,true,15);break;case 'SelectAll':B=new FCKToolbarButton('SelectAll',FCKLang.SelectAll,null,null,true,null,18);break;case 'RemoveFormat':B=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat,null,null,false,true,19);break;case 'FitWindow':B=new FCKToolbarButton('FitWindow',FCKLang.FitWindow,null,null,true,true,66);break;case 'Bold':B=new FCKToolbarButton('Bold',FCKLang.Bold,null,null,false,true,20);break;case 'Italic':B=new FCKToolbarButton('Italic',FCKLang.Italic,null,null,false,true,21);break;case 'Underline':B=new FCKToolbarButton('Underline',FCKLang.Underline,null,null,false,true,22);break;case 'StrikeThrough':B=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough,null,null,false,true,23);break;case 'Subscript':B=new FCKToolbarButton('Subscript',FCKLang.Subscript,null,null,false,true,24);break;case 'Superscript':B=new FCKToolbarButton('Superscript',FCKLang.Superscript,null,null,false,true,25);break;case 'OrderedList':B=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList,null,false,true,26);break;case 'UnorderedList':B=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList,null,false,true,27);break;case 'Outdent':B=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent,null,null,false,true,28);break;case 'Indent':B=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent,null,null,false,true,29);break;case 'Blockquote':B=new FCKToolbarButton('Blockquote',FCKLang.Blockquote,null,null,false,true,73);break;case 'Link':B=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink,null,false,true,34);break;case 'Unlink':B=new FCKToolbarButton('Unlink',FCKLang.RemoveLink,null,null,false,true,35);break;case 'Anchor':B=new FCKToolbarButton('Anchor',FCKLang.Anchor,null,null,null,null,36);break;case 'Image':B=new FCKToolbarButton('Image',FCKLang.InsertImageLbl,FCKLang.InsertImage,null,false,true,37);break;case 'Flash':B=new FCKToolbarButton('Flash',FCKLang.InsertFlashLbl,FCKLang.InsertFlash,null,false,true,38);break;case 'Table':B=new FCKToolbarButton('Table',FCKLang.InsertTableLbl,FCKLang.InsertTable,null,false,true,39);break;case 'SpecialChar':B=new FCKToolbarButton('SpecialChar',FCKLang.InsertSpecialCharLbl,FCKLang.InsertSpecialChar,null,false,true,42);break;case 'Smiley':B=new FCKToolbarButton('Smiley',FCKLang.InsertSmileyLbl,FCKLang.InsertSmiley,null,false,true,41);break;case 'PageBreak':B=new FCKToolbarButton('PageBreak',FCKLang.PageBreakLbl,FCKLang.PageBreak,null,false,true,43);break;case 'Rule':B=new FCKToolbarButton('Rule',FCKLang.InsertLineLbl,FCKLang.InsertLine,null,false,true,40);break;case 'JustifyLeft':B=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify,null,null,false,true,30);break;case 'JustifyCenter':B=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify,null,null,false,true,31);break;case 'JustifyRight':B=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify,null,null,false,true,32);break;case 'JustifyFull':B=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify,null,null,false,true,33);break;case 'Style':B=new FCKToolbarStyleCombo();break;case 'FontName':B=new FCKToolbarFontsCombo();break;case 'FontSize':B=new FCKToolbarFontSizeCombo();break;case 'FontFormat':B=new FCKToolbarFontFormatCombo();break;case 'TextColor':B=new FCKToolbarPanelButton('TextColor',FCKLang.TextColor,null,null,45);break;case 'BGColor':B=new FCKToolbarPanelButton('BGColor',FCKLang.BGColor,null,null,46);break;case 'Find':B=new FCKToolbarButton('Find',FCKLang.Find,null,null,null,null,16);break;case 'Replace':B=new FCKToolbarButton('Replace',FCKLang.Replace,null,null,null,null,17);break;case 'Form':B=new FCKToolbarButton('Form',FCKLang.Form,null,null,null,null,48);break;case 'Checkbox':B=new FCKToolbarButton('Checkbox',FCKLang.Checkbox,null,null,null,null,49);break;case 'Radio':B=new FCKToolbarButton('Radio',FCKLang.RadioButton,null,null,null,null,50);break;case 'TextField':B=new FCKToolbarButton('TextField',FCKLang.TextField,null,null,null,null,51);break;case 'Textarea':B=new FCKToolbarButton('Textarea',FCKLang.Textarea,null,null,null,null,52);break;case 'HiddenField':B=new FCKToolbarButton('HiddenField',FCKLang.HiddenField,null,null,null,null,56);break;case 'Button':B=new FCKToolbarButton('Button',FCKLang.Button,null,null,null,null,54);break;case 'Select':B=new FCKToolbarButton('Select',FCKLang.SelectionField,null,null,null,null,53);break;case 'ImageButton':B=new FCKToolbarButton('ImageButton',FCKLang.ImageButton,null,null,null,null,55);break;case 'ShowBlocks':B=new FCKToolbarButton('ShowBlocks',FCKLang.ShowBlocks,null,null,null,true,72);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;};
+var FCKToolbar=function(){this.Items=[];};FCKToolbar.prototype.AddItem=function(A){return this.Items[this.Items.length]=A;};FCKToolbar.prototype.AddButton=function(A,B,C,D,E,F){if (typeof(D)=='number') D=[this.DefaultIconsStrip,this.DefaultIconSize,D];var G=new FCKToolbarButtonUI(A,B,C,D,E,F);G._FCKToolbar=this;G.OnClick=FCKToolbar_OnItemClick;return this.AddItem(G);};function FCKToolbar_OnItemClick(A){var B=A._FCKToolbar;if (B.OnItemClick) B.OnItemClick(B,A);};FCKToolbar.prototype.AddSeparator=function(){this.AddItem(new FCKToolbarSeparator());};FCKToolbar.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var e=B.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=(FCKLang.Dir=='ltr'?'left':'right');e.dir=FCKLang.Dir;e.cellPadding=0;e.cellSpacing=0;var C=e.insertRow(-1);var D;if (!this.HideStart){D=C.insertCell(-1);D.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i<this.Items.length;i++){this.Items[i].Create(C.insertCell(-1));};if (!this.HideEnd){D=C.insertCell(-1);D.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';}
var FCKToolbarBreak=function(){};FCKToolbarBreak.prototype.Create=function(A){var B=A.ownerDocument.createElement('div');B.style.clear=B.style.cssFloat=FCKLang.Dir=='rtl'?'right':'left';A.appendChild(B);}
-function FCKToolbarSet_Create(A){var B;var C=A||FCKConfig.ToolbarLocation;switch (C){case 'In':document.getElementById('xToolbarRow').style.display='';B=new FCKToolbarSet(document);break;default:FCK.Events.AttachEvent('OnBlur',FCK_OnBlur);FCK.Events.AttachEvent('OnFocus',FCK_OnFocus);var D;var E=C.match(/^Out:(.+)\((\w+)\)$/);if (E){D=eval('parent.'+E[1]).document.getElementById(E[2]);}else{E=C.match(/^Out:(\w+)$/);if (E) D=parent.document.getElementById(E[1]);};if (!D){alert('Invalid value for "ToolbarLocation"');return this._Init('In');};B=D.__FCKToolbarSet;if (B) break;var F=FCKTools.GetElementDocument(D).createElement('iframe');F.frameBorder=0;F.width='100%';F.height='10';D.appendChild(F);F.unselectable='on';var G=F.contentWindow.document;G.open();G.write('<html><head><script type="text/javascript"> window.onload = window.onresize = function() { window.frameElement.height = document.body.scrollHeight ; } </script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');G.close();G.oncontextmenu=FCKTools.CancelEvent;FCKTools.AppendStyleSheet(G,FCKConfig.SkinPath+'fck_editor.css');B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;FCK.AttachToOnSelectionChange(B.RefreshItemsState);return B;};function FCK_OnBlur(A){var B=A.ToolbarSet;if (B.CurrentInstance==A) B.Disable();};function FCK_OnFocus(A){var B=A.ToolbarSet;var C=A||FCK;B.CurrentInstance.FocusManager.RemoveWindow(B._IFrame.contentWindow);B.CurrentInstance=C;C.FocusManager.AddWindow(B._IFrame.contentWindow,true);B.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;B.onclick=FCKToolbarSet_Expand_OnClick;C.title=FCKLang.ToolbarCollapse;C.onclick=FCKToolbarSet_Collapse_OnClick;if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();C.style.display=FCKConfig.ToolbarCanCollapse?'':'none';if (FCKConfig.ToolbarCanCollapse) C.style.display='';else A.getElementById('xTBLeftBorder').style.display='';this.Toolbars=[];this.IsLoaded=false;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarSet_Cleanup);};function FCKToolbarSet_Expand_OnClick(){FCK.ToolbarSet.Expand();};function FCKToolbarSet_Collapse_OnClick(){FCK.ToolbarSet.Collapse();};FCKToolbarSet.prototype.Expand=function(){this._ChangeVisibility(false);};FCKToolbarSet.prototype.Collapse=function(){this._ChangeVisibility(true);};FCKToolbarSet.prototype._ChangeVisibility=function(A){this._Document.getElementById('xCollapsed').style.display=A?'':'none';this._Document.getElementById('xExpanded').style.display=A?'none':'';if (FCKBrowserInfo.IsGecko){FCKTools.RunFunction(window.onresize);}};FCKToolbarSet.prototype.Load=function(A){this.Name=A;this.Items=[];this.ItemsWysiwygOnly=[];this.ItemsContextSensitive=[];this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=[];for (var x=0;x<B.length;x++){var C=B[x];var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j<C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);this.Items.push(F);if (!F.SourceView) this.ItemsWysiwygOnly.push(F);if (F.ContextSensitive) this.ItemsContextSensitive.push(F);}}}};D.Create(this._TargetElement);this.Toolbars[this.Toolbars.length]=D;};FCKTools.DisableSelection(this._Document.getElementById('xCollapseHandle').parentNode);if (FCK.Status!=2) FCK.Events.AttachEvent('OnStatusChange',this.RefreshModeState);else this.RefreshModeState();this.IsLoaded=true;this.IsEnabled=true;FCKTools.RunFunction(this.OnLoad);};FCKToolbarSet.prototype.Enable=function(){if (this.IsEnabled) return;this.IsEnabled=true;var A=this.Items;for (var i=0;i<A.length;i++) A[i].RefreshState();};FCKToolbarSet.prototype.Disable=function(){if (!this.IsEnabled) return;this.IsEnabled=false;var A=this.Items;for (var i=0;i<A.length;i++) A[i].Disable();};FCKToolbarSet.prototype.RefreshModeState=function(A){if (FCK.Status!=2) return;var B=A?A.ToolbarSet:this;var C=B.ItemsWysiwygOnly;if (FCK.EditMode==0){for (var i=0;i<C.length;i++) C[i].Enable();B.RefreshItemsState(A);}else{B.RefreshItemsState(A);for (var j=0;j<C.length;j++) C[j].Disable();}};FCKToolbarSet.prototype.RefreshItemsState=function(A){var B=(A?A.ToolbarSet:this).ItemsContextSensitive;for (var i=0;i<B.length;i++) B[i].RefreshState();};
+function FCKToolbarSet_Create(A){var B;var C=A||FCKConfig.ToolbarLocation;switch (C){case 'In':document.getElementById('xToolbarRow').style.display='';B=new FCKToolbarSet(document);break;case 'None':B=new FCKToolbarSet(document);break;default:FCK.Events.AttachEvent('OnBlur',FCK_OnBlur);FCK.Events.AttachEvent('OnFocus',FCK_OnFocus);var D;var E=C.match(/^Out:(.+)\((\w+)\)$/);if (E){D=eval('parent.'+E[1]).document.getElementById(E[2]);}else{E=C.match(/^Out:(\w+)$/);if (E) D=parent.document.getElementById(E[1]);};if (!D){alert('Invalid value for "ToolbarLocation"');return arguments.callee('In');};B=D.__FCKToolbarSet;if (B) break;var F=FCKTools.GetElementDocument(D).createElement('iframe');F.src='javascript:void(0)';F.frameBorder=0;F.width='100%';F.height='10';D.appendChild(F);F.unselectable='on';var G=F.contentWindow.document;var H='';if (FCKBrowserInfo.IsSafari) H='<base href="'+window.document.location+'">';G.open();G.write('<html><head>'+H+'<script type="text/javascript"> var adjust = function() { window.frameElement.height = document.body.scrollHeight ; }; window.onresize = adjust; window.onload = function () {window.setTimeout( adjust, 0 );}</script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');G.close();FCKTools.AddEventListener(G,'contextmenu',FCKTools.CancelEvent);FCKTools.AppendStyleSheet(G,FCKConfig.SkinPath+'fck_editor.css');B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;FCK.AttachToOnSelectionChange(B.RefreshItemsState);return B;};function FCK_OnBlur(A){var B=A.ToolbarSet;if (B.CurrentInstance==A) B.Disable();};function FCK_OnFocus(A){var B=A.ToolbarSet;var C=A||FCK;B.CurrentInstance.FocusManager.RemoveWindow(B._IFrame.contentWindow);B.CurrentInstance=C;C.FocusManager.AddWindow(B._IFrame.contentWindow,true);B.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;FCKTools.AddEventListener(B,'click',FCKToolbarSet_Expand_OnClick);C.title=FCKLang.ToolbarCollapse;FCKTools.AddEventListener(C,'click',FCKToolbarSet_Collapse_OnClick);if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();C.style.display=FCKConfig.ToolbarCanCollapse?'':'none';if (FCKConfig.ToolbarCanCollapse) C.style.display='';else A.getElementById('xTBLeftBorder').style.display='';this.Toolbars=[];this.IsLoaded=false;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarSet_Cleanup);};function FCKToolbarSet_Expand_OnClick(){FCK.ToolbarSet.Expand();};function FCKToolbarSet_Collapse_OnClick(){FCK.ToolbarSet.Collapse();};FCKToolbarSet.prototype.Expand=function(){this._ChangeVisibility(false);};FCKToolbarSet.prototype.Collapse=function(){this._ChangeVisibility(true);};FCKToolbarSet.prototype._ChangeVisibility=function(A){this._Document.getElementById('xCollapsed').style.display=A?'':'none';this._Document.getElementById('xExpanded').style.display=A?'none':'';if (FCKBrowserInfo.IsGecko){FCKTools.RunFunction(window.onresize);}};FCKToolbarSet.prototype.Load=function(A){this.Name=A;this.Items=[];this.ItemsWysiwygOnly=[];this.ItemsContextSensitive=[];this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=[];for (var x=0;x<B.length;x++){var C=B[x];if (!C) continue;var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j<C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);this.Items.push(F);if (!F.SourceView) this.ItemsWysiwygOnly.push(F);if (F.ContextSensitive) this.ItemsContextSensitive.push(F);}}}};D.Create(this._TargetElement);this.Toolbars[this.Toolbars.length]=D;};FCKTools.DisableSelection(this._Document.getElementById('xCollapseHandle').parentNode);if (FCK.Status!=2) FCK.Events.AttachEvent('OnStatusChange',this.RefreshModeState);else this.RefreshModeState();this.IsLoaded=true;this.IsEnabled=true;FCKTools.RunFunction(this.OnLoad);};FCKToolbarSet.prototype.Enable=function(){if (this.IsEnabled) return;this.IsEnabled=true;var A=this.Items;for (var i=0;i<A.length;i++) A[i].RefreshState();};FCKToolbarSet.prototype.Disable=function(){if (!this.IsEnabled) return;this.IsEnabled=false;var A=this.Items;for (var i=0;i<A.length;i++) A[i].Disable();};FCKToolbarSet.prototype.RefreshModeState=function(A){if (FCK.Status!=2) return;var B=A?A.ToolbarSet:this;var C=B.ItemsWysiwygOnly;if (FCK.EditMode==0){for (var i=0;i<C.length;i++) C[i].Enable();B.RefreshItemsState(A);}else{B.RefreshItemsState(A);for (var j=0;j<C.length;j++) C[j].Disable();}};FCKToolbarSet.prototype.RefreshItemsState=function(A){var B=(A?A.ToolbarSet:this).ItemsContextSensitive;for (var i=0;i<B.length;i++) B[i].RefreshState();};
var FCKDialog={};FCKDialog.OpenDialog=function(A,B,C,D,E,F,G,H){var I={};I.Title=B;I.Page=C;I.Editor=window;I.CustomValue=F;var J=FCKConfig.BasePath+'fckdialog.html';this.Show(I,A,J,D,E,G,H);};
-FCKDialog.Show=function(A,B,C,D,E,F,G){var H=(FCKConfig.ScreenHeight-E)/2;var I=(FCKConfig.ScreenWidth-D)/2;var J="location=no,menubar=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable="+(G?'yes':'no')+",width="+D+",height="+E+",top="+H+",left="+I;if (!F) F=window;FCKFocusManager.Lock();var K=F.open('','FCKeditorDialog_'+B,J,true);if (!K){alert(FCKLang.DialogBlocked);FCKFocusManager.Unlock();return;};K.moveTo(I,H);K.resizeTo(D,E);K.focus();K.location.href=C;K.dialogArguments=A;F.FCKLastDialogInfo=A;this.Window=K;try{window.top.parent.addEventListener('mousedown',this.CheckFocus,true);window.top.parent.addEventListener('mouseup',this.CheckFocus,true);window.top.parent.addEventListener('click',this.CheckFocus,true);window.top.parent.addEventListener('focus',this.CheckFocus,true);}catch (e){}};FCKDialog.CheckFocus=function(){if (typeof(FCKDialog)!="object") return false;if (FCKDialog.Window&&!FCKDialog.Window.closed) FCKDialog.Window.focus();else{try{window.top.parent.removeEventListener('onmousedown',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('mouseup',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('click',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('onfocus',FCKDialog.CheckFocus,true);}catch (e){}};return false;};
+FCKDialog.Show=function(A,B,C,D,E,F,G){var H=(FCKConfig.ScreenHeight-E)/2;var I=(FCKConfig.ScreenWidth-D)/2;var J="location=no,menubar=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,alwaysRaised=yes,resizable="+(G?'yes':'no')+",width="+D+",height="+E+",top="+H+",left="+I;if (!F) F=window;FCKFocusManager.Lock();var K=F.open('','FCKeditorDialog_'+B,J,true);if (!K){alert(FCKLang.DialogBlocked);FCKFocusManager.Unlock();return;};K.moveTo(I,H);K.resizeTo(D,E);K.focus();K.location.href=C;K.dialogArguments=A;F.FCKLastDialogInfo=A;this.Window=K;try{window.top.parent.addEventListener('mousedown',this.CheckFocus,true);window.top.parent.addEventListener('mouseup',this.CheckFocus,true);window.top.parent.addEventListener('click',this.CheckFocus,true);window.top.parent.addEventListener('focus',this.CheckFocus,true);}catch (e){}};FCKDialog.CheckFocus=function(){if (typeof(FCKDialog)!="object") return false;if (FCKDialog.Window&&!FCKDialog.Window.closed) FCKDialog.Window.focus();else{try{window.top.parent.removeEventListener('onmousedown',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('mouseup',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('click',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('onfocus',FCKDialog.CheckFocus,true);}catch (e){}};return false;};
var FCKMenuItem=function(A,B,C,D,E){this.Name=B;this.Label=C||B;this.IsDisabled=E;this.Icon=new FCKIcon(D);this.SubMenu=new FCKMenuBlockPanel();this.SubMenu.Parent=A;this.SubMenu.OnClick=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnClick,this);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D);};FCKMenuItem.prototype.AddSeparator=function(){this.SubMenu.AddSeparator();};FCKMenuItem.prototype.Create=function(A){var B=this.HasSubMenu;var C=FCKTools.GetElementDocument(A);var r=this.MainElement=A.insertRow(-1);r.className=this.IsDisabled?'MN_Item_Disabled':'MN_Item';if (!this.IsDisabled){FCKTools.AddEventListenerEx(r,'mouseover',FCKMenuItem_OnMouseOver,[this]);FCKTools.AddEventListenerEx(r,'click',FCKMenuItem_OnClick,[this]);if (!B) FCKTools.AddEventListenerEx(r,'mouseout',FCKMenuItem_OnMouseOut,[this]);};var D=r.insertCell(-1);D.className='MN_Icon';D.appendChild(this.Icon.CreateIconElement(C));D=r.insertCell(-1);D.className='MN_Label';D.noWrap=true;D.appendChild(C.createTextNode(this.Label));D=r.insertCell(-1);if (B){D.className='MN_Arrow';var E=D.appendChild(C.createElement('IMG'));E.src=FCK_IMAGES_PATH+'arrow_'+FCKLang.Dir+'.gif';E.width=4;E.height=7;this.SubMenu.Create();this.SubMenu.Panel.OnHide=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnHide,this);}};FCKMenuItem.prototype.Activate=function(){this.MainElement.className='MN_Item_Over';if (this.HasSubMenu){this.SubMenu.Show(this.MainElement.offsetWidth+2,-2,this.MainElement);};FCKTools.RunFunction(this.OnActivate,this);};FCKMenuItem.prototype.Deactivate=function(){this.MainElement.className='MN_Item';if (this.HasSubMenu) this.SubMenu.Hide();};function FCKMenuItem_SubMenu_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuItem_SubMenu_OnHide(A){A.Deactivate();};function FCKMenuItem_OnClick(A,B){if (B.HasSubMenu) B.Activate();else{B.Deactivate();FCKTools.RunFunction(B.OnClick,B,[B]);}};function FCKMenuItem_OnMouseOver(A,B){B.Activate();};function FCKMenuItem_OnMouseOut(A,B){B.Deactivate();};function FCKMenuItem_Cleanup(){this.MainElement=null;}
-var FCKMenuBlock=function(){this._Items=[];};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D){var E=new FCKMenuItem(this,A,B,C,D);E.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);E.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(E);return E;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=[];var A=this._ItemsTable;if (A){while (A.rows.length>0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i<this._Items.length;i++) this._Items[i].Create(this._ItemsTable);};function FCKMenuBlock_Item_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuBlock_Item_OnActivate(A){var B=A._ActiveItem;if (B&&B!=this){if (!FCKBrowserInfo.IsIE&&B.HasSubMenu&&!this.HasSubMenu) A._Window.focus();B.Deactivate();};A._ActiveItem=this;};function FCKMenuBlock_Cleanup(){this._Window=null;this._ItemsTable=null;};var FCKMenuSeparator=function(){};FCKMenuSeparator.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var r=A.insertRow(-1);var C=r.insertCell(-1);C.className='MN_Separator MN_Icon';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';}
+var FCKMenuBlock=function(){this._Items=[];};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D){var E=new FCKMenuItem(this,A,B,C,D);E.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);E.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(E);return E;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=[];var A=this._ItemsTable;if (A){while (A.rows.length>0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i<this._Items.length;i++) this._Items[i].Create(this._ItemsTable);};function FCKMenuBlock_Item_OnClick(A,B){if (B.Hide) B.Hide();FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuBlock_Item_OnActivate(A){var B=A._ActiveItem;if (B&&B!=this){if (!FCKBrowserInfo.IsIE&&B.HasSubMenu&&!this.HasSubMenu){A._Window.focus();A.Panel.HasFocus=true;};B.Deactivate();};A._ActiveItem=this;};function FCKMenuBlock_Cleanup(){this._Window=null;this._ItemsTable=null;};var FCKMenuSeparator=function(){};FCKMenuSeparator.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var r=A.insertRow(-1);var C=r.insertCell(-1);C.className='MN_Separator MN_Icon';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';}
var FCKMenuBlockPanel=function(){FCKMenuBlock.call(this);};FCKMenuBlockPanel.prototype=new FCKMenuBlock();FCKMenuBlockPanel.prototype.Create=function(){var A=this.Panel=(this.Parent&&this.Parent.Panel?this.Parent.Panel.CreateChildPanel():new FCKPanel());A.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');FCKMenuBlock.prototype.Create.call(this,A.MainNode);};FCKMenuBlockPanel.prototype.Show=function(x,y,A){if (!this.Panel.CheckIsOpened()) this.Panel.Show(x,y,A);};FCKMenuBlockPanel.prototype.Hide=function(){if (this.Panel.CheckIsOpened()) this.Panel.Hide();}
-var FCKContextMenu=function(A,B){var C=this._Panel=new FCKPanel(A,true);C.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');C.IsContextMenu=true;var D=this._MenuBlock=new FCKMenuBlock();D.Panel=C;D.OnClick=FCKTools.CreateEventListener(FCKContextMenu_MenuBlock_OnClick,this);this._Redraw=true;};FCKContextMenu.prototype.SetMouseClickWindow=function(A){if (!FCKBrowserInfo.IsIE){this._Document=A.document;this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D){var E=this._MenuBlock.AddItem(A,B,C,D);this._Redraw=true;return E;};FCKContextMenu.prototype.AddSeparator=function(){this._MenuBlock.AddSeparator();this._Redraw=true;};FCKContextMenu.prototype.RemoveAllItems=function(){this._MenuBlock.RemoveAllItems();this._Redraw=true;};FCKContextMenu.prototype.AttachToElement=function(A){if (FCKBrowserInfo.IsIE) FCKTools.AddEventListenerEx(A,'contextmenu',FCKContextMenu_AttachedElement_OnContextMenu,this);else A._FCKContextMenu=this;};function FCKContextMenu_Document_OnContextMenu(e){var A=e.target;while (A){if (A._FCKContextMenu){FCKTools.CancelEvent(e);FCKContextMenu_AttachedElement_OnContextMenu(e,A._FCKContextMenu,A);};A=A.parentNode;}};function FCKContextMenu_AttachedElement_OnContextMenu(A,B,C){var D=C||this;if (B.OnBeforeOpen) B.OnBeforeOpen.call(B,D);if (B._MenuBlock.Count()==0) return false;if (B._Redraw){B._MenuBlock.Create(B._Panel.MainNode);B._Redraw=false;};B._Panel.Show(A.pageX||A.screenX,A.pageY||A.screenY,A.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(A,B){B._Panel.Hide();FCKTools.RunFunction(B.OnItemClick,B,A);}
-FCK.ContextMenu={};FCK.ContextMenu.Listeners=[];FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var A=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCKLang.Dir);A.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;A.OnItemClick=FCK_ContextMenu_OnItemClick;var B=FCK.ContextMenu;for (var i=0;i<FCKConfig.ContextMenu.length;i++) B.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(A){switch (A){case 'Generic':return {AddItems:function(menu,tag,tagName){menu.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==-1);menu.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==-1);menu.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==-1);}};case 'Table':return {AddItems:function(menu,tag,tagName){var B=(tagName=='TABLE');var C=(!B&&FCKSelection.HasAncestorNode('TABLE'));if (C){menu.AddSeparator();var D=menu.AddItem('Cell',FCKLang.CellCM);D.AddItem('TableInsertCell',FCKLang.InsertCell,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);D.AddItem('TableMergeCells',FCKLang.MergeCells,60);D.AddItem('TableSplitCell',FCKLang.SplitCell,61);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRow',FCKLang.InsertRow,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumn',FCKLang.InsertColumn,64);D.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (B||C){menu.AddSeparator();menu.AddItem('TableDelete',FCKLang.TableDelete);menu.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(menu,tag,tagName){var E=(tagName=='A'||FCKSelection.HasAncestorNode('A'));if (E||FCK.GetNamedCommandState('Unlink')!=-1){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0&&F.href.length==0);if (G) return;menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0);if (G||(tagName=='IMG'&&tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='hidden'){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i<C.length;i++) C[i].AddItems(B,A,sTagName);};function FCK_ContextMenu_OnItemClick(A){FCK.Focus();FCKCommands.GetCommand(A.Name).Execute();};
+var FCKContextMenu=function(A,B){this.CtrlDisable=false;var C=this._Panel=new FCKPanel(A);C.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');C.IsContextMenu=true;if (FCKBrowserInfo.IsGecko) C.Document.addEventListener('draggesture',function(e) {e.preventDefault();return false;},true);var D=this._MenuBlock=new FCKMenuBlock();D.Panel=C;D.OnClick=FCKTools.CreateEventListener(FCKContextMenu_MenuBlock_OnClick,this);this._Redraw=true;};FCKContextMenu.prototype.SetMouseClickWindow=function(A){if (!FCKBrowserInfo.IsIE){this._Document=A.document;if (FCKBrowserInfo.IsOpera&&!('oncontextmenu' in document.createElement('foo'))){this._Document.addEventListener('mousedown',FCKContextMenu_Document_OnMouseDown,false);this._Document.addEventListener('mouseup',FCKContextMenu_Document_OnMouseUp,false);};this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D){var E=this._MenuBlock.AddItem(A,B,C,D);this._Redraw=true;return E;};FCKContextMenu.prototype.AddSeparator=function(){this._MenuBlock.AddSeparator();this._Redraw=true;};FCKContextMenu.prototype.RemoveAllItems=function(){this._MenuBlock.RemoveAllItems();this._Redraw=true;};FCKContextMenu.prototype.AttachToElement=function(A){if (FCKBrowserInfo.IsIE) FCKTools.AddEventListenerEx(A,'contextmenu',FCKContextMenu_AttachedElement_OnContextMenu,this);else A._FCKContextMenu=this;};function FCKContextMenu_Document_OnContextMenu(e){var A=e.target;while (A){if (A._FCKContextMenu){if (A._FCKContextMenu.CtrlDisable&&(e.ctrlKey||e.metaKey)) return true;FCKTools.CancelEvent(e);FCKContextMenu_AttachedElement_OnContextMenu(e,A._FCKContextMenu,A);return false;};A=A.parentNode;};return true;};var FCKContextMenu_OverrideButton;function FCKContextMenu_Document_OnMouseDown(e){if(!e||e.button!=2) return false;var A=e.target;while (A){if (A._FCKContextMenu){if (A._FCKContextMenu.CtrlDisable&&(e.ctrlKey||e.metaKey)) return true;var B=FCKContextMenu_OverrideButton;if(!B){var C=e.target.ownerDocument;B=FCKContextMenu_OverrideButton=C.createElement('input');B.type='button';var D=C.createElement('p');C.body.appendChild(D);D.appendChild(B);};B.style.cssText='position:absolute;top:'+(e.clientY-2)+'px;left:'+(e.clientX-2)+'px;width:5px;height:5px;opacity:0.01';};A=A.parentNode;};return false;};function FCKContextMenu_Document_OnMouseUp(e){var A=FCKContextMenu_OverrideButton;if (A){var B=A.parentNode;B.parentNode.removeChild(B);FCKContextMenu_OverrideButton=undefined;if(e&&e.button==2){FCKContextMenu_Document_OnContextMenu(e);return false;}}};function FCKContextMenu_AttachedElement_OnContextMenu(A,B,C){if (B.CtrlDisable&&(A.ctrlKey||A.metaKey)) return true;var D=C||this;if (B.OnBeforeOpen) B.OnBeforeOpen.call(B,D);if (B._MenuBlock.Count()==0) return false;if (B._Redraw){B._MenuBlock.Create(B._Panel.MainNode);B._Redraw=false;};FCKTools.DisableSelection(B._Panel.Document.body);var x=0;var y=0;if (FCKBrowserInfo.IsIE){x=A.screenX;y=A.screenY;}else if (FCKBrowserInfo.IsSafari){x=A.clientX;y=A.clientY;}else{x=A.pageX;y=A.pageY;};B._Panel.Show(x,y,A.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(A,B){B._Panel.Hide();FCKTools.RunFunction(B.OnItemClick,B,A);};
+FCK.ContextMenu={};FCK.ContextMenu.Listeners=[];FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var A=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCKLang.Dir);A.CtrlDisable=FCKConfig.BrowserContextMenuOnCtrl;A.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;A.OnItemClick=FCK_ContextMenu_OnItemClick;var B=FCK.ContextMenu;for (var i=0;i<FCKConfig.ContextMenu.length;i++) B.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(A){switch (A){case 'Generic':return {AddItems:function(menu,tag,tagName){menu.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==-1);menu.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==-1);menu.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==-1);}};case 'Table':return {AddItems:function(menu,tag,tagName){var B=(tagName=='TABLE');var C=(!B&&FCKSelection.HasAncestorNode('TABLE'));if (C){menu.AddSeparator();var D=menu.AddItem('Cell',FCKLang.CellCM);D.AddItem('TableInsertCellBefore',FCKLang.InsertCellBefore,69);D.AddItem('TableInsertCellAfter',FCKLang.InsertCellAfter,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);if (FCKBrowserInfo.IsGecko) D.AddItem('TableMergeCells',FCKLang.MergeCells,60,FCKCommands.GetCommand('TableMergeCells').GetState()==-1);else{D.AddItem('TableMergeRight',FCKLang.MergeRight,60,FCKCommands.GetCommand('TableMergeRight').GetState()==-1);D.AddItem('TableMergeDown',FCKLang.MergeDown,60,FCKCommands.GetCommand('TableMergeDown').GetState()==-1);};D.AddItem('TableHorizontalSplitCell',FCKLang.HorizontalSplitCell,61,FCKCommands.GetCommand('TableHorizontalSplitCell').GetState()==-1);D.AddItem('TableVerticalSplitCell',FCKLang.VerticalSplitCell,61,FCKCommands.GetCommand('TableVerticalSplitCell').GetState()==-1);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57,FCKCommands.GetCommand('TableCellProp').GetState()==-1);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRowBefore',FCKLang.InsertRowBefore,70);D.AddItem('TableInsertRowAfter',FCKLang.InsertRowAfter,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumnBefore',FCKLang.InsertColumnBefore,71);D.AddItem('TableInsertColumnAfter',FCKLang.InsertColumnAfter,64);D.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (B||C){menu.AddSeparator();menu.AddItem('TableDelete',FCKLang.TableDelete);menu.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(menu,tag,tagName){var E=(tagName=='A'||FCKSelection.HasAncestorNode('A'));if (E||FCK.GetNamedCommandState('Unlink')!=-1){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0&&F.href.length==0);if (G) return;menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0);if (G||(tagName=='IMG'&&tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);menu.AddItem('AnchorDelete',FCKLang.AnchorDelete);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckinputhidden')){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i<C.length;i++) C[i].AddItems(B,A,sTagName);};function FCK_ContextMenu_OnItemClick(A){FCK.Focus();FCKCommands.GetCommand(A.Name).Execute();};
var FCKPlugin=function(A,B,C){this.Name=A;this.BasePath=C?C:FCKConfig.PluginsPath;this.Path=this.BasePath+A+'/';if (!B||B.length==0) this.AvailableLangs=[];else this.AvailableLangs=B.split(',');};FCKPlugin.prototype.Load=function(){if (this.AvailableLangs.length>0){var A;if (this.AvailableLangs.IndexOf(FCKLanguageManager.ActiveLanguage.Code)>=0) A=FCKLanguageManager.ActiveLanguage.Code;else A=this.AvailableLangs[0];LoadScript(this.Path+'lang/'+A+'.js');};LoadScript(this.Path+'fckplugin.js');}
var FCKPlugins=FCK.Plugins={};FCKPlugins.ItemsCount=0;FCKPlugins.Items={};FCKPlugins.Load=function(){var A=FCKPlugins.Items;for (var i=0;i<FCKConfig.Plugins.Items.length;i++){var B=FCKConfig.Plugins.Items[i];var C=A[B[0]]=new FCKPlugin(B[0],B[1],B[2]);FCKPlugins.ItemsCount++;};for (var s in A) A[s].Load();FCKPlugins.Load=null;}
diff --git a/editor/editor/js/fckeditorcode_ie.js b/editor/editor/js/fckeditorcode_ie.js
@@ -17,81 +17,93 @@
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
- *
- * This file has been compacted for better loading performance.
+ *
+ * This file has been compressed for better performance. The original source
+ * can be found at "editor/_source".
*/
-
-var FCK_STATUS_NOTLOADED=window.parent.FCK_STATUS_NOTLOADED=0;var FCK_STATUS_ACTIVE=window.parent.FCK_STATUS_ACTIVE=1;var FCK_STATUS_COMPLETE=window.parent.FCK_STATUS_COMPLETE=2;var FCK_TRISTATE_OFF=window.parent.FCK_TRISTATE_OFF=0;var FCK_TRISTATE_ON=window.parent.FCK_TRISTATE_ON=1;var FCK_TRISTATE_DISABLED=window.parent.FCK_TRISTATE_DISABLED=-1;var FCK_UNKNOWN=window.parent.FCK_UNKNOWN=-9;var FCK_TOOLBARITEM_ONLYICON=window.parent.FCK_TOOLBARITEM_ONLYICON=0;var FCK_TOOLBARITEM_ONLYTEXT=window.parent.FCK_TOOLBARITEM_ONLYTEXT=1;var FCK_TOOLBARITEM_ICONTEXT=window.parent.FCK_TOOLBARITEM_ICONTEXT=2;var FCK_EDITMODE_WYSIWYG=window.parent.FCK_EDITMODE_WYSIWYG=0;var FCK_EDITMODE_SOURCE=window.parent.FCK_EDITMODE_SOURCE=1;var FCK_IMAGES_PATH='images/';var FCK_SPACER_PATH='images/spacer.gif';var CTRL=1000;var SHIFT=2000;var ALT=4000;
-String.prototype.Contains=function(A){return (this.indexOf(A)>-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&&A[0].pop) A=A[0];for (var i=0;i<A.length;i++){if (this==A[i]) return true;};return false;};String.prototype.IEquals=function(){var A=this.toUpperCase();var B=arguments;if (B.length==1&&B[0].pop) B=B[0];for (var i=0;i<B.length;i++){if (A==B[i].toUpperCase()) return true;};return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i<A.length;i++){C=C.replace(A[i],B[i]);};return C;};Array.prototype.AddItem=function(A){var i=this.length;this[i]=A;return i;};Array.prototype.IndexOf=function(A){for (var i=0;i<this.length;i++){if (this[i]==A) return i;};return-1;};String.prototype.StartsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.EndsWith=function(A,B){var C=this.length;var D=A.length;if (D>C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A>0) s=this.substring(0,A);if (A+B<this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.Trim=function(){return this.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,'');};String.prototype.LTrim=function(){return this.replace(/^[ \t\n\r]*/g,'');};String.prototype.RTrim=function(){return this.replace(/[ \t\n\r]*$/g,'');};String.prototype.ReplaceNewLineChars=function(A){return this.replace(/\n/g,A);}
-var FCKIECleanup=function(A){if (A._FCKCleanupObj) this.Items=A._FCKCleanupObj.Items;else{this.Items=[];A._FCKCleanupObj=this;FCKTools.AddEventListenerEx(A,'unload',FCKIECleanup_Cleanup);}};FCKIECleanup.prototype.AddItem=function(A,B){this.Items.push([A,B]);};function FCKIECleanup_Cleanup(){if (!this._FCKCleanupObj) return;var A=this._FCKCleanupObj.Items;while (A.length>0){var B=A.pop();if (B) B[1].call(B[0]);};this._FCKCleanupObj=null;if (CollectGarbage) CollectGarbage();}
-var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:s.Contains('msie'),IsIE7:s.Contains('msie 7'),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains('safari'),IsOpera:s.Contains('opera'),IsMac:s.Contains('macintosh')};(function(A){A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/gecko\/(\d+)/)[1];A.IsGecko10=B<20051111;}else A.IsGecko10=false;})(FCKBrowserInfo);
+
+var FCK_STATUS_NOTLOADED=window.parent.FCK_STATUS_NOTLOADED=0;var FCK_STATUS_ACTIVE=window.parent.FCK_STATUS_ACTIVE=1;var FCK_STATUS_COMPLETE=window.parent.FCK_STATUS_COMPLETE=2;var FCK_TRISTATE_OFF=window.parent.FCK_TRISTATE_OFF=0;var FCK_TRISTATE_ON=window.parent.FCK_TRISTATE_ON=1;var FCK_TRISTATE_DISABLED=window.parent.FCK_TRISTATE_DISABLED=-1;var FCK_UNKNOWN=window.parent.FCK_UNKNOWN=-9;var FCK_TOOLBARITEM_ONLYICON=window.parent.FCK_TOOLBARITEM_ONLYICON=0;var FCK_TOOLBARITEM_ONLYTEXT=window.parent.FCK_TOOLBARITEM_ONLYTEXT=1;var FCK_TOOLBARITEM_ICONTEXT=window.parent.FCK_TOOLBARITEM_ICONTEXT=2;var FCK_EDITMODE_WYSIWYG=window.parent.FCK_EDITMODE_WYSIWYG=0;var FCK_EDITMODE_SOURCE=window.parent.FCK_EDITMODE_SOURCE=1;var FCK_IMAGES_PATH='images/';var FCK_SPACER_PATH='images/spacer.gif';var CTRL=1000;var SHIFT=2000;var ALT=4000;var FCK_STYLE_BLOCK=0;var FCK_STYLE_INLINE=1;var FCK_STYLE_OBJECT=2;
+String.prototype.Contains=function(A){return (this.indexOf(A)>-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&&A[0].pop) A=A[0];for (var i=0;i<A.length;i++){if (this==A[i]) return true;};return false;};String.prototype.IEquals=function(){var A=this.toUpperCase();var B=arguments;if (B.length==1&&B[0].pop) B=B[0];for (var i=0;i<B.length;i++){if (A==B[i].toUpperCase()) return true;};return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i<A.length;i++){C=C.replace(A[i],B[i]);};return C;};String.prototype.StartsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.EndsWith=function(A,B){var C=this.length;var D=A.length;if (D>C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A>0) s=this.substring(0,A);if (A+B<this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.Trim=function(){return this.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,'');};String.prototype.LTrim=function(){return this.replace(/^[ \t\n\r]*/g,'');};String.prototype.RTrim=function(){return this.replace(/[ \t\n\r]*$/g,'');};String.prototype.ReplaceNewLineChars=function(A){return this.replace(/\n/g,A);};String.prototype.Replace=function(A,B,C){if (typeof B=='function'){return this.replace(A,function(){return B.apply(C||this,arguments);});}else return this.replace(A,B);};Array.prototype.AddItem=function(A){var i=this.length;this[i]=A;return i;};Array.prototype.IndexOf=function(A){for (var i=0;i<this.length;i++){if (this[i]==A) return i;};return-1;};
+var FCKIECleanup=function(A){if (A._FCKCleanupObj) this.Items=A._FCKCleanupObj.Items;else{this.Items=[];A._FCKCleanupObj=this;FCKTools.AddEventListenerEx(A,'unload',FCKIECleanup_Cleanup);}};FCKIECleanup.prototype.AddItem=function(A,B){this.Items.push([A,B]);};function FCKIECleanup_Cleanup(){if (!this._FCKCleanupObj||!window.FCKUnloadFlag) return;var A=this._FCKCleanupObj.Items;while (A.length>0){var B=A.pop();if (B) B[1].call(B[0]);};this._FCKCleanupObj=null;if (CollectGarbage) CollectGarbage();};
+var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:/*@cc_on!@*/false,IsIE7:/*@cc_on!@*/false&&s.Contains('msie 7'),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains(' applewebkit/'),IsOpera:!!window.opera,IsMac:s.Contains('macintosh')};(function(A){A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/gecko\/(\d+)/)[1];A.IsGecko10=((B<20051111)||(/rv:1\.7/.test(s)));A.IsGecko19=/rv:1\.9/.test(s);}else A.IsGecko10=false;})(FCKBrowserInfo);
var FCKURLParams={};(function(){var A=document.location.search.substr(1).split('&');for (var i=0;i<A.length;i++){var B=A[i].split('=');var C=decodeURIComponent(B[0]);var D=decodeURIComponent(B[1]);FCKURLParams[C]=D;}})();
-var FCKEvents=function(A){this.Owner=A;this._RegisteredEvents={};};FCKEvents.prototype.AttachEvent=function(A,B){var C;if (!(C=this._RegisteredEvents[A])) this._RegisteredEvents[A]=[B];else C.push(B);};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this._RegisteredEvents[A];if (D){for (var i=0;i<D.length;i++) C=(D[i](this.Owner,B)&&C);};return C;};
-var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){return (this.StartupValue!=this.EditorDocument.body.innerHTML);},ResetIsDirty:function(){if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length>0?'<base href="'+FCKConfig.BaseHref+'" _fcktemp="true"></base>':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86/*V*/) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45/*INS*/) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=false;this.SetHTML(this.GetLinkedFieldValue());},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&&A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:if (!FCKListsLib.BlockElements[D.nodeName.toLowerCase()]) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;};if (F){var G=D.parentNode;if (!E) E=G.insertBefore(B.createElement(A),D);E.appendChild(G.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetXHTML:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B;var C=FCK.EditorDocument;if (!C) return null;if (FCKConfig.FullPage) B=FCKXHtml.GetXHTML(C.getElementsByTagName('html')[0],true,A);else{if (FCKConfig.IgnoreEmptyParagraphValue&&C.body.innerHTML=='<P> </P>') B='';else B=FCKXHtml.GetXHTML(C.body,false,A);};B=FCK.ProtectEventsRestore(B);if (FCKBrowserInfo.IsIE) B=B.replace(FCKRegexLib.ToReplace,'$1');if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) B=FCK.DocTypeDeclaration+'\n'+B;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) B=FCK.XmlDeclaration+'\n'+B;return FCKConfig.ProtectedSource.Revert(B);},UpdateLinkedField:function(){FCK.LinkedField.value=FCK.GetXHTML(FCKConfig.FormatOutput);FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);},RegisterDoubleClickHandler:function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;},OnAfterSetHTML:function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');},ProtectUrls:function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$1$4$2$3$5$2 _fcksavedurl=$2$3$5$2');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$1$4$2$3$5$2 _fcksavedurl=$2$3$5$2');return A;},ProtectEvents:function(A){return A.replace(FCKRegexLib.TagsWithEvent,_FCK_ProtectEvents_ReplaceTags);},ProtectEventsRestore:function(A){return A.replace(FCKRegexLib.ProtectedEvents,_FCK_ProtectEvents_RestoreEvents);},ProtectTags:function(A){var B='META';if (FCKConfig.ProtectedTags.length>0) B+='|'+FCKConfig.ProtectedTags;if (FCKBrowserInfo.IsIE) B+='|ABBR';var C=new RegExp('<('+B+')([ \>])','gi');A=A.replace(C,'<FCK:$1$2');C=new RegExp('<\/('+B+')>','gi');A=A.replace(C,'<\/FCK:$1>');return A;},SetHTML:function(A){this.EditingArea.Mode=FCK.EditMode;if (FCK.EditMode==0){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCKBrowserInfo.IsGecko){A=A.replace(FCKRegexLib.StrongOpener,'<b$1');A=A.replace(FCKRegexLib.StrongCloser,'<\/b>');A=A.replace(FCKRegexLib.EmOpener,'<i$1');A=A.replace(FCKRegexLib.EmCloser,'<\/i>');};var B='';if (FCKConfig.FullPage){if (!FCKRegexLib.HeadOpener.test(A)){if (!FCKRegexLib.HtmlOpener.test(A)) A='<html dir="'+FCKConfig.ContentLangDirection+'">'+A+'</html>';A=A.replace(FCKRegexLib.HtmlOpener,'$&<head></head>');};FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (FCKBrowserInfo.IsIE) B=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) B='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';B+='<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';B=A.replace(FCKRegexLib.HeadCloser,B+'$&');if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) B=B.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);}else{B=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"';if (FCKBrowserInfo.IsIE&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) B+=' style="overflow-y: scroll"';B+='><head><title></title>'+_FCK_GetEditorAreaStyleTags()+'<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';if (FCKBrowserInfo.IsIE) B+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) B+='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';B+=FCK.TempBaseTag;var C='<body';if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) C+=' id="'+FCKConfig.BodyId+'"';if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) C+=' class="'+FCKConfig.BodyClass+'"';B+='</head>'+C+'>';if (FCKBrowserInfo.IsGecko&&(A.length==0||FCKRegexLib.EmptyParagraph.test(A))) B+=GECKO_BOGUS;else B+=A;B+='</body></html>';};this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(B);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},HasFocus:false,RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C){FCKUndo.SaveUndoStep();if (!C&&FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else return FCK.EditorDocument.queryCommandState(A)?1:0;}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A=FCKConfig.ScreenWidth*0.8;var B=FCKConfig.ScreenHeight*0.7;var C=(FCKConfig.ScreenWidth-A)/2;var D=window.open('',null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+A+',height='+B+',left='+C);var E;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) E=FCK.TempBaseTag+FCK.GetXHTML();else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body>'+FCK.GetXHTML()+'</body></html>';};D.document.write(E);D.document.close();},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C;if (B){if (!A&&FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();C=FCK.GetXHTML(FCKConfig.FormatSource);if (C==null) return false;}else C=this.EditingArea.Textarea.value;FCK.EditMode=B?1:0;FCK.SetHTML(C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},CreateElement:function(A){var e=FCK.EditorDocument.createElement(A);return FCK.InsertElementAndGetIt(e);},InsertElementAndGetIt:function(e){e.setAttribute('FCKTempLabel','true');this.InsertElement(e);var A=FCK.EditorDocument.getElementsByTagName(e.tagName);for (var i=0;i<A.length;i++){if (A[i].getAttribute('FCKTempLabel')){A[i].removeAttribute('FCKTempLabel');return A[i];}};return null;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt="'+A.ReplaceAll([/&/g,/'/g,/"/g,/=/g,/</g,/>/g,/\r/g,/\n/g],[''',''','"','=','<','>',' ',' '])+'"';};function _FCK_ProtectEvents_RestoreEvents(A,B){return B.ReplaceAll([/'/g,/"/g,/=/g,/</g,/>/g,/ /g,/ /g,/'/g],["'",'"','=','<','>','\r','\n','&']);};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();if (!FCKConfig.DisableEnterKeyHandler) FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);FCK.OnAfterSetHTML();if (FCK.Status!=0) return;FCK.ResetIsDirty();FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){var A='';var B=FCKConfig.EditorAreaCSS;for (var i=0;i<B.length;i++) A+='<link href="'+B[i]+'" rel="stylesheet" type="text/css" />';return A;};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){if (B=='Paste') return!FCK.Events.FireEvent('OnPaste');}else{if (B.Equals('Paste','Undo','Redo','SelectAll')) return false;};var C=FCK.Commands.GetCommand(B);return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&&B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i<this.Elements.length) this.Elements[i++]==null;this.Elements.length=0;}};var FCKFocusManager=FCK.FocusManager={IsLocked:false,AddWindow:function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);},RemoveWindow:function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);},Lock:function(){this.IsLocked=true;},Unlock:function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;},_ResetTimer:function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&&FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent("OnBlur");}};function FCKFocusManager_Win_OnFocus_Area(){FCK.Focus();FCKFocusManager_Win_OnFocus();};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}};
-FCK.Description="FCKeditor for Internet Explorer 5.5+";FCK._GetBehaviorsStyle=function(){if (!FCK._BehaviorsStyle){var A=FCKConfig.FullBasePath;var B='';var C;C='<style type="text/css" _fcktemp="true">INPUT { behavior: url('+A+'css/behaviors/hiddenfield.htc) ; }';if (FCKConfig.ShowBorders) B='url('+A+'css/behaviors/showtableborders.htc)';C+='INPUT,TEXTAREA,SELECT,.FCK__Anchor,.FCK__PageBreak';if (FCKConfig.DisableObjectResizing){C+=',IMG';B+=' url('+A+'css/behaviors/disablehandles.htc)';};C+=' { behavior: url('+A+'css/behaviors/disablehandles.htc) ; }';if (B.length>0) C+='TABLE { behavior: '+B+' ; }';C+='</style>';FCK._BehaviorsStyle=C;};return FCK._BehaviorsStyle;};function Doc_OnMouseUp(){if (FCK.EditorWindow.event.srcElement.tagName=='HTML'){FCK.Focus();FCK.EditorWindow.event.cancelBubble=true;FCK.EditorWindow.event.returnValue=false;}};function Doc_OnPaste(){return (FCK.Status==2&&FCK.Events.FireEvent("OnPaste"));};function Doc_OnKeyDown(){if (FCK.EditorWindow){var e=FCK.EditorWindow.event;if (!(e.keyCode>=16&&e.keyCode<=18)) Doc_OnKeyDownUndo();};return true;};function Doc_OnKeyDownUndo(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent("OnSelectionChange");};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;};function Doc_OnSelectionChange(){FCK.Events.FireEvent("OnSelectionChange");};FCK.InitializeBehaviors=function(A){this.EditorDocument.attachEvent('onmouseup',Doc_OnMouseUp);this.EditorDocument.body.attachEvent('onpaste',Doc_OnPaste);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument.body);if (FCKConfig.TabSpaces>0){window.FCKTabHTML='';for (i=0;i<FCKConfig.TabSpaces;i++) window.FCKTabHTML+=" ";};this.EditorDocument.attachEvent("onkeydown",Doc_OnKeyDown);this.EditorDocument.attachEvent("ondblclick",Doc_OnDblClick);this.EditorDocument.attachEvent("onselectionchange",Doc_OnSelectionChange);};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectUrls(A);FCK.EditorWindow.focus();FCKUndo.SaveUndoStep();var B=FCK.EditorDocument.selection;if (B.type.toLowerCase()=='control') B.clear();B.createRange().pasteHTML(A);FCKDocumentProcessor.Process(FCK.EditorDocument);};FCK.SetInnerHtml=function(A){var B=FCK.EditorDocument;B.body.innerHTML='<div id="__fakeFCKRemove__"> </div>'+A;B.getElementById('__fakeFCKRemove__').removeNode(true);};function FCK_PreloadImages(){var A=new FCKImagePreloader();A.AddImages(FCKConfig.PreloadImages);A.AddImages(FCKConfig.SkinPath+'fck_strip.gif');A.OnComplete=LoadToolbarSetup;A.Start();};function Document_OnContextMenu(){return (event.srcElement._FCKShowContextMenu==true);};document.oncontextmenu=Document_OnContextMenu;function FCK_Cleanup(){this.EditorWindow=null;this.EditorDocument=null;};FCK.Paste=function(){if (FCK._PasteIsRunning) return true;if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};var A=FCK.GetClipboardHTML();if (FCKConfig.AutoDetectPasteFromWord&&A.length>0){var B=/<\w[^>]*(( class="?MsoNormal"?)|(="mso-))/gi;if (B.test(A)){if (confirm(FCKLang.PasteWordConfirm)){FCK.PasteFromWord();return false;}}};FCK._PasteIsRunning=true;FCK.ExecuteNamedCommand('Paste');delete FCK._PasteIsRunning;return false;};FCK.PasteAsPlainText=function(){var A=clipboardData.getData("Text");if (A&&A.length>0){A=FCKTools.HTMLEncode(A).replace(/\n/g,'<BR>');this.InsertHtml(A);}};FCK.InsertElement=function(A){FCK.InsertHtml(A.outerHTML);};FCK.GetClipboardHTML=function(){var A=document.getElementById('___FCKHiddenDiv');if (!A){A=document.createElement('DIV');A.id='___FCKHiddenDiv';var B=A.style;B.position='absolute';B.visibility=B.overflow='hidden';B.width=B.height=1;document.body.appendChild(A);};A.innerHTML='';var C=document.body.createTextRange();C.moveToElementText(A);C.execCommand('Paste');var D=A.innerHTML;A.innerHTML='';return D;};FCK.AttachToOnSelectionChange=function(A){this.Events.AttachEvent('OnSelectionChange',A);};FCK.CreateLink=function(A){FCK.ExecuteNamedCommand('Unlink');if (A.length>0){var B='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',B);var C=this.EditorDocument.links;for (i=0;i<C.length;i++){var D=C[i];if (D.href==B){var E=D.innerHTML;D.href=A;D.innerHTML=E;return D;}}};return null;};
-var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi, '/');FCKConfig.BasePath='file://'+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;}else{FCKConfig.BasePath=document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=document.location.protocol+'//'+document.location.host+FCKConfig.BasePath;};FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig={};var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&');for (var i=0;i<B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=decodeURIComponent(C[0]);var E=decodeURIComponent(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()=="true") this.PageConfig[D]=true;else if (E.toLowerCase()=="false") this.PageConfig[D]=false;else if (E.length>0&&!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) {/*Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error).*/}};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';if (typeof(A.EditorAreaCSS)=='string') A.EditorAreaCSS=[A.EditorAreaCSS];var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;else if (typeof(B)=='string') A.ToolbarComboPreviewCSS=[B];};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource.RegexEntries=[/<!--[\s\S]*?-->/g,/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){function _Replace(protectedSource){var B=FCKTempBin.AddElement(protectedSource);return '<!--{PS..'+B+'}-->';};for (var i=0;i<this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};return A.replace(/(<|<)!--\{PS..(\d+)\}--(>|>)/g,_Replace);}
+var FCKEvents=function(A){this.Owner=A;this._RegisteredEvents={};};FCKEvents.prototype.AttachEvent=function(A,B){var C;if (!(C=this._RegisteredEvents[A])) this._RegisteredEvents[A]=[B];else{if (C.IndexOf(B)==-1) C.push(B);}};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this._RegisteredEvents[A];if (D){for (var i=0;i<D.length;i++){try{C=(D[i](this.Owner,B)&&C);}catch(e){if (e.number!=-2146823277) throw e;}}};return C;};
+var FCKDataProcessor=function(){};FCKDataProcessor.prototype={ConvertToHtml:function(A){if (FCKConfig.FullPage){FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (!FCKRegexLib.HasBodyTag.test(A)) A='<body>'+A+'</body>';if (!FCKRegexLib.HtmlOpener.test(A)) A='<html dir="'+FCKConfig.ContentLangDirection+'">'+A+'</html>';if (!FCKRegexLib.HeadOpener.test(A)) A=A.replace(FCKRegexLib.HtmlOpener,'$&<head><title></title></head>');return A;}else{var B=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"';if (FCKBrowserInfo.IsIE&&FCKConfig.DocType.length>0&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) B+=' style="overflow-y: scroll"';B+='><head><title></title></head><body'+FCKConfig.GetBodyAttributes()+'>'+A+'</body></html>';return B;}},ConvertToDataFormat:function(A,B,C,D){var E=FCKXHtml.GetXHTML(A,!B,D);if (C&&FCKRegexLib.EmptyOutParagraph.test(E)) return '';return E;},FixHtml:function(A){return A;}};
+var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,DataProcessor:new FCKDataProcessor(),AttachToOnSelectionChange:function(A){this.Events.AttachEvent('OnSelectionChange',A);},GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){if (this.EditMode==1) return (this.StartupValue!=this.EditingArea.Textarea.value);else{if (!this.EditorDocument) return false;return (this.StartupValue!=this.EditorDocument.body.innerHTML);}},ResetIsDirty:function(){if (this.EditMode==1) this.StartupValue=this.EditingArea.Textarea.value;else if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length>0?'<base href="'+FCKConfig.BaseHref+'" _fcktemp="true"></base>':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86/*V*/) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45/*INS*/) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};A.SetKeystrokes([CTRL+8,true]);this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=FCKConfig.FirefoxSpellChecker;this.SetData(this.GetLinkedFieldValue(),true);FCKTools.AddEventListener(document,"keydown",this._TabKeyHandler);this.AttachToOnSelectionChange(_FCK_PaddingNodeListener);if (FCKBrowserInfo.IsGecko) this.AttachToOnSelectionChange(this._ExecCheckEmptyBlock);},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&&A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:if (!FCKListsLib.BlockElements[D.nodeName.toLowerCase()]&&!D.getAttribute('_fckfakelement')&&D.getAttribute('_moz_dirty')==null) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;};if (F){var G=D.parentNode;if (!E) E=G.insertBefore(B.createElement(A),D);E.appendChild(G.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetData:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B=FCK.EditorDocument;if (!B) return null;var C=FCKConfig.FullPage;var D=FCK.DataProcessor.ConvertToDataFormat(C?B.documentElement:B.body,!C,FCKConfig.IgnoreEmptyParagraphValue,A);D=FCK.ProtectEventsRestore(D);if (FCKBrowserInfo.IsIE) D=D.replace(FCKRegexLib.ToReplace,'$1');if (C){if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) D=FCK.DocTypeDeclaration+'\n'+D;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) D=FCK.XmlDeclaration+'\n'+D;};return FCKConfig.ProtectedSource.Revert(D);},UpdateLinkedField:function(){var A=FCK.GetXHTML(FCKConfig.FormatOutput);if (FCKConfig.HtmlEncodeOutput) A=FCKTools.HTMLEncode(A);FCK.LinkedField.value=A;FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);},RegisterDoubleClickHandler:function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;},OnAfterSetHTML:function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');},ProtectUrls:function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$& _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$& _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsArea,'$& _fcksavedurl=$1');return A;},ProtectEvents:function(A){return A.replace(FCKRegexLib.TagsWithEvent,_FCK_ProtectEvents_ReplaceTags);},ProtectEventsRestore:function(A){return A.replace(FCKRegexLib.ProtectedEvents,_FCK_ProtectEvents_RestoreEvents);},ProtectTags:function(A){var B=FCKConfig.ProtectedTags;if (FCKBrowserInfo.IsIE) B+=B.length>0?'|ABBR|XML|EMBED':'ABBR|XML|EMBED';var C;if (B.length>0){C=new RegExp('<('+B+')(?!\w|:)','gi');A=A.replace(C,'<FCK:$1');C=new RegExp('<\/('+B+')>','gi');A=A.replace(C,'<\/FCK:$1>');};B='META';if (FCKBrowserInfo.IsIE) B+='|HR';C=new RegExp('<(('+B+')(?=\\s|>|/)[\\s\\S]*?)/?>','gi');A=A.replace(C,'<FCK:$1 />');return A;},SetData:function(A,B){this.EditingArea.Mode=FCK.EditMode;if (FCKBrowserInfo.IsIE&&FCK.EditorDocument){FCK.EditorDocument.detachEvent("onselectionchange",Doc_OnSelectionChange);};if (FCK.EditMode==0){this._ForceResetIsDirty=(B===true);A=FCKConfig.ProtectedSource.Protect(A);A=FCK.DataProcessor.ConvertToHtml(A);A=A.replace(FCKRegexLib.InvalidSelfCloseTags,'$1></$2>');A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) A=A.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);var C='';if (!FCKConfig.FullPage) C+=_FCK_GetEditorAreaStyleTags();if (FCKBrowserInfo.IsIE) C+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C+='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';C+='<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';A=A.replace(FCKRegexLib.HeadCloser,C+'$&');this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(A);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;FCKDomTools.PaddingNode=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;if (B) this.ResetIsDirty();FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},HasFocus:false,RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C,D){if (!D) FCKUndo.SaveUndoStep();if (!C&&FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};if (!D) FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (FCKBrowserInfo.IsSafari&&FCK.EditorWindow&&A.IEquals('Paste')) return 0;if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else{return FCK.EditorDocument.queryCommandState(A)?1:0;}}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},Paste:function(A){if (FCK.Status!=2||!FCK.Events.FireEvent('OnPaste')) return false;return A||FCK._ExecPaste();},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A=FCKConfig.ScreenWidth*0.8;var B=FCKConfig.ScreenHeight*0.7;var C=(FCKConfig.ScreenWidth-A)/2;var D=window.open('',null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+A+',height='+B+',left='+C);var E;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) E=FCK.TempBaseTag+FCK.GetXHTML();else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body'+FCKConfig.GetBodyAttributes()+'>'+FCK.GetXHTML()+'</body></html>';};D.document.write(E);D.document.close();},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C=FCK.IsDirty();var D;if (B){FCKCommands.GetCommand('ShowBlocks').SaveState();if (!A&&FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();D=FCK.GetXHTML(FCKConfig.FormatSource);if (D==null) return false;}else D=this.EditingArea.Textarea.value;FCK.EditMode=B?1:0;FCK.SetData(D,!C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},InsertElement:function(A){if (typeof A=='string') A=this.EditorDocument.createElement(A);var B=A.nodeName.toLowerCase();var C=new FCKDomRange(this.EditorWindow);if (FCKListsLib.BlockElements[B]!=null){C.SplitBlock();C.InsertNode(A);var D=FCKDomTools.GetNextSourceElement(A,false,null,['hr','br','param','img','area','input']);if (!D&&FCKConfig.EnterMode!='br'){D=this.EditorDocument.body.appendChild(this.EditorDocument.createElement(FCKConfig.EnterMode));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);};if (FCKListsLib.EmptyElements[B]==null) C.MoveToElementEditStart(A);else if (D) C.MoveToElementEditStart(D);else C.MoveToPosition(A,4);if (FCKBrowserInfo.IsGecko){if (D) D.scrollIntoView(false);A.scrollIntoView(false);}}else{C.MoveToSelection();C.DeleteContents();C.InsertNode(A);C.SetStart(A,4);C.SetEnd(A,4);};C.Select();C.Release();this.Focus();return A;},_InsertBlockElement:function(A){},_IsFunctionKey:function(A){if (A>=16&&A<=20) return true;if (A==27||(A>=33&&A<=40)) return true;if (A==45) return true;return false;},_KeyDownListener:function(A){if (!A) A=FCK.EditorWindow.event;if (FCK.EditorWindow){if (!FCK._IsFunctionKey(A.keyCode)&&!(A.ctrlKey||A.metaKey)&&!(A.keyCode==46)) FCK._KeyDownUndo();};return true;},_KeyDownUndo:function(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.TypesCount++;FCKUndo.Changed=1;if (FCKUndo.TypesCount>FCKUndo.MaxTypes){FCKUndo.TypesCount=0;FCKUndo.SaveUndoStep();}},_TabKeyHandler:function(A){if (!A) A=window.event;var B=A.keyCode;if (B==9&&FCK.EditMode!=0){if (FCKBrowserInfo.IsIE){var C=document.selection.createRange();if (C.parentElement()!=FCK.EditingArea.Textarea) return true;C.text='\t';C.select();}else{var a=[];var D=FCK.EditingArea.Textarea;var E=D.selectionStart;var F=D.selectionEnd;a.push(D.value.substr(0,E));a.push('\t');a.push(D.value.substr(F));D.value=a.join('');D.setSelectionRange(E+1,E+1);};if (A.preventDefault) return A.preventDefault();return A.returnValue=false;};return true;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML=FCK.GetData;FCK.SetHTML=FCK.SetData;FCK.InsertElementAndGetIt=FCK.CreateElement=FCK.InsertElement;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt="'+encodeURIComponent(A)+'"';};function _FCK_ProtectEvents_RestoreEvents(A,B){return decodeURIComponent(B);};function _FCK_MouseEventsListener(A){if (!A) A=window.event;if (A.type=='mousedown') FCK.MouseDownFlag=true;else if (A.type=='mouseup') FCK.MouseDownFlag=false;else if (A.type=='mousemove') FCK.Events.FireEvent('OnMouseMove',A);};function _FCK_PaddingNodeListener(){if (FCKConfig.EnterMode.IEquals('br')) return;FCKDomTools.EnforcePaddingNode(FCK.EditorDocument,FCKConfig.EnterMode);if (!FCKBrowserInfo.IsIE&&FCKDomTools.PaddingNode){var A=FCK.EditorWindow.getSelection();if (A&&A.rangeCount==1){var B=A.getRangeAt(0);if (B.collapsed&&B.startContainer==FCK.EditorDocument.body&&B.startOffset==0){B.selectNodeContents(FCKDomTools.PaddingNode);B.collapse(true);A.removeAllRanges();A.addRange(B);}}}else if (FCKDomTools.PaddingNode){var C=FCKSelection.GetParentElement();var D=FCKDomTools.PaddingNode;if (C&&C.nodeName.IEquals('body')){if (FCK.EditorDocument.body.childNodes.length==1&&FCK.EditorDocument.body.firstChild==D){var B=FCK.EditorDocument.body.createTextRange();var F=false;if (!D.childNodes.firstChild){D.appendChild(D.ownerDocument.createTextNode('\ufeff'));F=true;};B.moveToElementText(D);B.select();if (F) B.pasteHTML('');}}}};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();FCK.MouseDownFlag=false;FCKTools.AddEventListener(FCK.EditorDocument,'mousemove',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mouseup',_FCK_MouseEventsListener);if (FCKBrowserInfo.IsSafari){var A=function(evt){if (!(evt.ctrlKey||evt.metaKey)) return;if (FCK.EditMode!=0) return;switch (evt.keyCode){case 89:FCKUndo.Redo();break;case 90:FCKUndo.Undo();break;}};FCKTools.AddEventListener(FCK.EditorDocument,'keyup',A);};FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode,FCKConfig.TabSpaces);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);if (FCK._ForceResetIsDirty) FCK.ResetIsDirty();if (FCKBrowserInfo.IsIE&&FCK.HasFocus) FCK.EditorDocument.body.setActive();FCK.OnAfterSetHTML();FCKCommands.GetCommand('ShowBlocks').RestoreState();if (FCK.Status!=0) return;if (FCKConfig.Debug) FCKDebug._GetWindow();FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){var A='';var B=FCKConfig.EditorAreaCSS;var C=FCKConfig.EditorAreaStyles;for (var i=0;i<B.length;i++) A+='<link href="'+B[i]+'" rel="stylesheet" type="text/css" />';if (C&&C.length>0) A+="<style>"+C+"</style>";return A;};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){switch (B){case 'Paste':return!FCK.Paste();case 'Cut':FCKUndo.SaveUndoStep();return false;}}else{if (B.Equals('Paste','Undo','Redo','SelectAll','Cut')) return false;};var C=FCK.Commands.GetCommand(B);return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&&B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i<this.Elements.length) this.Elements[i++]=null;this.Elements.length=0;}};var FCKFocusManager=FCK.FocusManager={IsLocked:false,AddWindow:function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else if (FCKBrowserInfo.IsSafari) C=A;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);},RemoveWindow:function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);},Lock:function(){this.IsLocked=true;},Unlock:function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;},_ResetTimer:function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&&FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent("OnBlur");}};function FCKFocusManager_Win_OnFocus_Area(){FCK.Focus();FCKFocusManager_Win_OnFocus();};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}};
+FCK.Description="FCKeditor for Internet Explorer 5.5+";FCK._GetBehaviorsStyle=function(){if (!FCK._BehaviorsStyle){var A=FCKConfig.FullBasePath;var B='';var C;C='<style type="text/css" _fcktemp="true">';if (FCKConfig.ShowBorders) B='url('+A+'css/behaviors/showtableborders.htc)';C+='INPUT,TEXTAREA,SELECT,.FCK__Anchor,.FCK__PageBreak,.FCK__InputHidden';if (FCKConfig.DisableObjectResizing){C+=',IMG';B+=' url('+A+'css/behaviors/disablehandles.htc)';};C+=' { behavior: url('+A+'css/behaviors/disablehandles.htc) ; }';if (B.length>0) C+='TABLE { behavior: '+B+' ; }';C+='</style>';FCK._BehaviorsStyle=C;};return FCK._BehaviorsStyle;};function Doc_OnMouseUp(){if (FCK.EditorWindow.event.srcElement.tagName=='HTML'){FCK.Focus();FCK.EditorWindow.event.cancelBubble=true;FCK.EditorWindow.event.returnValue=false;}};function Doc_OnPaste(){var A=FCK.EditorDocument.body;A.detachEvent('onpaste',Doc_OnPaste);var B=FCK.Paste(!FCKConfig.ForcePasteAsPlainText&&!FCKConfig.AutoDetectPasteFromWord);A.attachEvent('onpaste',Doc_OnPaste);return B;};function Doc_OnDblClick(){FCK.OnDoubleClick(FCK.EditorWindow.event.srcElement);FCK.EditorWindow.event.cancelBubble=true;};function Doc_OnSelectionChange(){if (FCK.EditorDocument) FCK.Events.FireEvent("OnSelectionChange");};function Doc_OnDrop(){if (FCK.MouseDownFlag){FCK.MouseDownFlag=false;return;};var A=FCK.EditorWindow.event;if (FCKConfig.ForcePasteAsPlainText){if (FCK._CheckIsPastingEnabled()||FCKConfig.ShowDropDialog) FCK.PasteAsPlainText(A.dataTransfer.getData('Text'));}else{if (FCKConfig.ShowDropDialog) FCKTools.RunFunction(FCKDialog.OpenDialog,FCKDialog,['FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security']);};A.returnValue=false;A.cancelBubble=true;};FCK.InitializeBehaviors=function(A){this.EditorDocument.attachEvent('onmouseup',Doc_OnMouseUp);this.EditorDocument.body.attachEvent('onpaste',Doc_OnPaste);this.EditorDocument.body.attachEvent('ondrop',Doc_OnDrop);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument.body);this.EditorDocument.attachEvent("onkeydown",FCK._KeyDownListener);this.EditorDocument.attachEvent("ondblclick",Doc_OnDblClick);this.EditorDocument.attachEvent("onselectionchange",Doc_OnSelectionChange);};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);FCK.EditorWindow.focus();FCKUndo.SaveUndoStep();var B=FCK.EditorDocument.selection;if (B.type.toLowerCase()=='control') B.clear();A='<span id="__fakeFCKRemove__"> </span>'+A;B.createRange().pasteHTML(A);FCK.EditorDocument.getElementById('__fakeFCKRemove__').removeNode(true);FCKDocumentProcessor.Process(FCK.EditorDocument);this.Events.FireEvent("OnSelectionChange");};FCK.SetInnerHtml=function(A){var B=FCK.EditorDocument;B.body.innerHTML='<div id="__fakeFCKRemove__"> </div>'+A;B.getElementById('__fakeFCKRemove__').removeNode(true);};function FCK_PreloadImages(){var A=new FCKImagePreloader();A.AddImages(FCKConfig.PreloadImages);A.AddImages(FCKConfig.SkinPath+'fck_strip.gif');A.OnComplete=LoadToolbarSetup;A.Start();};function Document_OnContextMenu(){return (event.srcElement._FCKShowContextMenu==true);};document.oncontextmenu=Document_OnContextMenu;function FCK_Cleanup(){this.LinkedField=null;this.EditorWindow=null;this.EditorDocument=null;};FCK._ExecPaste=function(){if (FCK._PasteIsRunning) return true;if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};var A=FCK._CheckIsPastingEnabled(true);if (A===false) FCKTools.RunFunction(FCKDialog.OpenDialog,FCKDialog,['FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security']);else{if (FCKConfig.AutoDetectPasteFromWord&&A.length>0){var B=/<\w[^>]*(( class="?MsoNormal"?)|(="mso-))/gi;if (B.test(A)){if (confirm(FCKLang.PasteWordConfirm)){FCK.PasteFromWord();return false;}}};FCK._PasteIsRunning=true;FCK.ExecuteNamedCommand('Paste');delete FCK._PasteIsRunning;};return false;};FCK.PasteAsPlainText=function(A){if (!FCK._CheckIsPastingEnabled()){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText');return;};var B=null;if (!A) B=clipboardData.getData("Text");else B=A;if (B&&B.length>0){B=FCKTools.HTMLEncode(B);B=FCKTools.ProcessLineBreaks(window,FCKConfig,B);var C=B.search('</p>');var D=B.search('<p>');if ((C!=-1&&D!=-1&&C<D)||(C!=-1&&D==-1)){var E=B.substr(0,C);B=B.substr(C+4);this.InsertHtml(E);};FCKUndo.SaveLocked=true;this.InsertHtml(B);FCKUndo.SaveLocked=false;}};FCK._CheckIsPastingEnabled=function(A){FCK._PasteIsEnabled=false;document.body.attachEvent('onpaste',FCK_CheckPasting_Listener);var B=FCK.GetClipboardHTML();document.body.detachEvent('onpaste',FCK_CheckPasting_Listener);if (FCK._PasteIsEnabled){if (!A) B=true;}else B=false;delete FCK._PasteIsEnabled;return B;};function FCK_CheckPasting_Listener(){FCK._PasteIsEnabled=true;};FCK.GetClipboardHTML=function(){var A=document.getElementById('___FCKHiddenDiv');if (!A){A=document.createElement('DIV');A.id='___FCKHiddenDiv';var B=A.style;B.position='absolute';B.visibility=B.overflow='hidden';B.width=B.height=1;document.body.appendChild(A);};A.innerHTML='';var C=document.body.createTextRange();C.moveToElementText(A);C.execCommand('Paste');var D=A.innerHTML;A.innerHTML='';return D;};FCK.CreateLink=function(A,B){var C=[];FCK.ExecuteNamedCommand('Unlink',null,false,!!B);if (A.length>0){if (FCKSelection.GetType()=='Control'){var D=this.EditorDocument.createElement('A');D.href=A;var E=FCKSelection.GetSelectedElement();E.parentNode.insertBefore(D,E);E.parentNode.removeChild(E);D.appendChild(E);return [D];};var F='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',F,false,!!B);var G=this.EditorDocument.links;for (i=0;i<G.length;i++){var D=G[i];if (D.getAttribute('href',2)==F){var I=D.innerHTML;D.href=A;D.innerHTML=I;var J=D.lastChild;if (J&&J.nodeName=='BR'){FCKDomTools.InsertAfterNode(D,D.removeChild(J));};C.push(D);}}};return C;};
+var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi, '/');var sFullProtocol=document.location.href.match(/^(file\:\/{2,3})/)[1];if (FCKBrowserInfo.IsOpera) sFullProtocol+='localhost/';FCKConfig.BasePath=sFullProtocol+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;}else{FCKConfig.BasePath=document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=document.location.protocol+'//'+document.location.host+FCKConfig.BasePath;};FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig={};var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&');for (var i=0;i<B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=decodeURIComponent(C[0]);var E=decodeURIComponent(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()=="true") this.PageConfig[D]=true;else if (E.toLowerCase()=="false") this.PageConfig[D]=false;else if (E.length>0&&!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) {/*Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error).*/}};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';if (typeof(A.EditorAreaCSS)=='string') A.EditorAreaCSS=A.EditorAreaCSS.split(',');var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;else if (typeof(B)=='string') A.ToolbarComboPreviewCSS=[B];};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource._CodeTag=(new Date()).valueOf();FCKConfig.ProtectedSource.RegexEntries=[/<!--[\s\S]*?-->/g,/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi,/<object[\s\S]+?<\/object>/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){var B=this._CodeTag;function _Replace(protectedSource){var C=FCKTempBin.AddElement(protectedSource);return '<!--{'+B+C+'}-->';};for (var i=0;i<this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};var D=new RegExp("(<|<)!--\\{"+this._CodeTag+"(\\d+)\\}--(>|>)","g");return A.replace(D,_Replace);};FCKConfig.GetBodyAttributes=function(){var A='';if (this.BodyId&&this.BodyId.length>0) A+=' id="'+this.BodyId+'"';if (this.BodyClass&&this.BodyClass.length>0) A+=' class="'+this.BodyClass+'"';return A;};FCKConfig.ApplyBodyAttributes=function(A){if (this.BodyId&&this.BodyId.length>0) A.id=FCKConfig.BodyId;if (this.BodyClass&&this.BodyClass.length>0) A.className+=' '+FCKConfig.BodyClass;};
var FCKDebug={};FCKDebug._GetWindow=function(){if (!this.DebugWindow||this.DebugWindow.closed) this.DebugWindow=window.open(FCKConfig.BasePath+'fckdebug.html','FCKeditorDebug','menubar=no,scrollbars=yes,resizable=yes,location=no,toolbar=no,width=600,height=500',true);return this.DebugWindow;};FCKDebug.Output=function(A,B,C){if (!FCKConfig.Debug) return;try{this._GetWindow().Output(A,B);}catch (e) {}};FCKDebug.OutputObject=function(A,B){if (!FCKConfig.Debug) return;try{this._GetWindow().OutputObject(A,B);}catch (e) {}}
-var FCKDomTools={MoveChildren:function(A,B){if (A==B) return;var C;while ((C=A.firstChild)) B.appendChild(A.removeChild(C));},TrimNode:function(A,B){this.LTrimNode(A);this.RTrimNode(A,B);},LTrimNode:function(A){var B;while ((B=A.firstChild)){if (B.nodeType==3){var C=B.nodeValue.LTrim();var D=B.nodeValue.length;if (C.length==0){A.removeChild(B);continue;}else if (C.length<D){B.splitText(D-C.length);A.removeChild(A.firstChild);}};break;}},RTrimNode:function(A,B){var C;while ((C=A.lastChild)){switch (C.nodeType){case 1:if (C.nodeName.toUpperCase()=='BR'&&(B||C.getAttribute('type',2)=='_moz')){A.removeChild(C);continue;};break;case 3:var D=C.nodeValue.RTrim();var E=C.nodeValue.length;if (D.length==0){A.removeChild(C);continue;}else if (D.length<E){C.splitText(D.length);A.removeChild(A.lastChild);}};break;}},RemoveNode:function(A,B){if (B){var C;while ((C=A.firstChild)) A.parentNode.insertBefore(A.removeChild(C),A);};return A.parentNode.removeChild(A);},GetFirstChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.firstChild;while(C){if (C.nodeType==1&&C.tagName.Equals.apply(C.tagName,B)) return C;C=C.nextSibling;};return null;},GetLastChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.lastChild;while(C){if (C.nodeType==1&&(!B||C.tagName.Equals(B))) return C;C=C.previousSibling;};return null;},GetPreviousSourceElement:function(A,B,C,D){if (!A) return null;if (C&&A.nodeType==1&&A.nodeName.IEquals(C)) return null;if (A.previousSibling) A=A.previousSibling;else return this.GetPreviousSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.lastChild) A=A.lastChild;else return this.GetPreviousSourceElement(A,B,C,D);};return null;},GetNextSourceElement:function(A,B,C,D){if (!A) return null;if (A.nextSibling) A=A.nextSibling;else return this.GetNextSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.firstChild) A=A.firstChild;else return this.GetNextSourceElement(A,B,C,D);};return null;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.splice(0,0,A);A=A.parentNode;};return B;},GetIndexOf:function(A){var B=A.parentNode?A.parentNode.firstChild:null;var C=-1;while (B){C++;if (B==A) return C;B=B.nextSibling;};return-1;}};
-var GECKO_BOGUS='<br type="_moz">';var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.AppendStyleSheet=function(A,B){if (typeof(B)=='string') return this._AppendStyleSheet(A,B);else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&&!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.FixDocumentParentWindow=function(A){A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&');A=A.replace(/</g,'<');A=A.replace(/>/g,'>');return A;};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i<arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||'CSS1Compat'));};FCKTools.ArgumentsToArray=function(A,B,C){B=B||0;C=C||A.length;var D=[];for (var i=B;i<B+C&&i<A.length;i++) D.push(A[i]);return D;};FCKTools.CloneObject=function(A){var B=function() {};B.prototype=A;return new B;};
-FCKTools.CancelEvent=function(e){return false;};FCKTools._AppendStyleSheet=function(A,B){return A.createStyleSheet(B).owningElement;};FCKTools.ClearElementAttributes=function(A){A.clearAttributes();};FCKTools.GetAllChildrenIds=function(A){var B=[];for (var i=0;i<A.all.length;i++){var C=A.all[i].id;if (C&&C.length>0) B[B.length]=C;};return B;};FCKTools.RemoveOuterTags=function(e){e.insertAdjacentHTML('beforeBegin',e.innerHTML);e.parentNode.removeChild(e);};FCKTools.CreateXmlObject=function(A){var B;switch (A){case 'XmlHttp':B=['MSXML2.XmlHttp','Microsoft.XmlHttp'];break;case 'DOMDocument':B=['MSXML2.DOMDocument','Microsoft.XmlDom'];break;};for (var i=0;i<2;i++){try { return new ActiveXObject(B[i]);}catch (e){}};if (FCKLang.NoActiveX){alert(FCKLang.NoActiveX);FCKLang.NoActiveX=null;};return null;};FCKTools.DisableSelection=function(A){A.unselectable='on';var e,i=0;while ((e=A.all[i++])){switch (e.tagName){case 'IFRAME':case 'TEXTAREA':case 'INPUT':case 'SELECT':break;default:e.unselectable='on';}}};FCKTools.GetScrollPosition=function(A){var B=A.document;var C={ X:B.documentElement.scrollLeft,Y:B.documentElement.scrollTop };if (C.X>0||C.Y>0) return C;return { X:B.body.scrollLeft,Y:B.body.scrollTop };};FCKTools.AddEventListener=function(A,B,C){A.attachEvent('on'+B,C);};FCKTools.RemoveEventListener=function(A,B,C){A.detachEvent('on'+B,C);};FCKTools.AddEventListenerEx=function(A,B,C,D){var o={};o.Source=A;o.Params=D||[];o.Listener=function(ev){return C.apply(o.Source,[ev].concat(o.Params));};if (FCK.IECleanup) FCK.IECleanup.AddItem(null,function() { o.Source=null;o.Params=null;});A.attachEvent('on'+B,o.Listener);A=null;D=null;};FCKTools.GetViewPaneSize=function(A){var B;var C=A.document.documentElement;if (C&&C.clientWidth) B=C;else B=top.document.body;if (B) return { Width:B.clientWidth,Height:B.clientHeight };else return { Width:0,Height:0 };};FCKTools.SaveStyles=function(A){var B={};if (A.className.length>0){B.Class=A.className;A.className='';};var C=A.style.cssText;if (C.length>0){B.Inline=C;A.style.cssText='';};return B;};FCKTools.RestoreStyles=function(A,B){A.className=B.Class||'';A.style.cssText=B.Inline||'';};FCKTools.RegisterDollarFunction=function(A){A.$=A.document.getElementById;};FCKTools.AppendElement=function(A,B){return A.appendChild(this.GetElementDocument(A).createElement(B));};FCKTools.ToLowerCase=function(A){return A.toLowerCase();}
-var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='var FCKeditorAPI = {Version : "2.4",VersionBuild : "1148",__Instances : new Object(),GetInstance : function( name ){return this.__Instances[ name ];},_FormSubmit : function(){for ( var name in FCKeditorAPI.__Instances ){var oEditor = FCKeditorAPI.__Instances[ name ] ;if ( oEditor.GetParentForm() == this )oEditor.UpdateLinkedField() ;}this._FCKOriginalSubmit() ;},_FunctionQueue : {Functions : new Array(),IsRunning : false,Add : function( f ){this.Functions.push( f );if ( !this.IsRunning )this.StartNext();},StartNext : function(){var aQueue = this.Functions ;if ( aQueue.length > 0 ){this.IsRunning = true;aQueue[0].call();}else this.IsRunning = false;},Remove : function( f ){var aQueue = this.Functions;var i = 0, fFunc;while( (fFunc = aQueue[ i ]) ){if ( fFunc == f )aQueue.splice( i,1 );i++ ;}this.StartNext();}}}';if (A.execScript) A.execScript(B,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if (FCKBrowserInfo.IsSafari){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;};FCKeditorAPI.__Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&&(typeof(A.submit)=='function'||(!A.submit.tagName&&!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){delete FCKeditorAPI.__Instances[FCK.Name];};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);
-var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i<A.length;i++){var B=document.createElement('img');B.onload=B.onerror=_FCKImagePreloader_OnImage;B._FCKImagePreloader=this;B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(){var A=this._FCKImagePreloader;if ((--A._PreloadCount)==0&&A.OnComplete) A.OnComplete();this._FCKImagePreloader=null;}
-var FCKRegexLib={AposEntity:/'/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BodyContents:/([\s\S]*\<body[^\>]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/(\s*FCK__[A-Za-z]*\s*)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div)>\s*<\/\1>$/i,TagBody:/></,StrongOpener:/<STRONG([ \>])/gi,StrongCloser:/<\/STRONG>/gi,EmOpener:/<EM([ \>])/gi,EmCloser:/<\/EM>/gi,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/(?:(<img(?=\s).*?\ssrc=)("|')(.*?)\2)|(?:(<img\s.*?src=)([^"'][^ >]+))/gi,ProtectUrlsA:/(?:(<a(?=\s).*?\shref=)("|')(.*?)\2)|(?:(<a\s.*?href=)([^"'][^ >]+))/gi,Html4DocType:/HTML 4\.0 Transitional/i,DocTypeTag:/<!DOCTYPE[^>]*>/i,TagsWithEvent:/<[^\>]+ on\w+[\s\r\n]*=[\s\r\n]*?('|")[\s\S]+?\>/g,EventAttributes:/\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|")([\s\S]*?)\2/g,ProtectedEvents:/\s\w+_fckprotectedatt="([^"]+)"/g,StyleProperties:/\S+\s*:/g};var FCKListsLib={BlockElements:{ address:1,blockquote:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 },NonEmptyBlockElements:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,address:1,pre:1,ol:1,ul:1,li:1,td:1,th:1 },PathBlockElements:{ address:1,blockquote:1,div:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1 },InlineChildReqElements:{ abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strong:1,sub:1,sup:1,tt:1,'var':1 },EmptyElements:{ base:1,meta:1,link:1,hr:1,br:1,param:1,img:1,area:1,input:1 }};
-var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French',gl:'Galician',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',it:'Italian',ja:'Japanese',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},GetActiveLanguage:function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length>=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length>=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;},TranslateElements:function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i<e.length;i++){if ((E=e[i].getAttribute('fckLang'))){if ((s=FCKLang[E])){if (D) s=FCKTools.HTMLEncode(s);eval('e[i].'+C+' = s');}}}},TranslatePage:function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);},Initialize:function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage={};this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}};
-var FCKXHtmlEntities={};FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';var B,e;if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.Entities={' ':'nbsp','¡':'iexcl','¢':'cent','£':'pound','¤':'curren','Â¥':'yen','¦':'brvbar','§':'sect','¨':'uml','©':'copy','ª':'ordf','«':'laquo','¬':'not','Â':'shy','®':'reg','¯':'macr','°':'deg','±':'plusmn','²':'sup2','³':'sup3','´':'acute','µ':'micro','¶':'para','·':'middot','¸':'cedil','¹':'sup1','º':'ordm','»':'raquo','¼':'frac14','½':'frac12','¾':'frac34','¿':'iquest','×':'times','÷':'divide','Æ’':'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','"':'quot','ˆ':'circ','Ëœ':'tilde',' ':'ensp',' ':'emsp',' ':'thinsp','‌':'zwnj','â€':'zwj','‎':'lrm','â€':'rlm','–':'ndash','—':'mdash','‘':'lsquo','’':'rsquo','‚':'sbquo','“':'ldquo','â€':'rdquo','„':'bdquo','†':'dagger','‡':'Dagger','‰':'permil','‹':'lsaquo','›':'rsaquo','€':'euro'};for (e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){B={'À':'Agrave','Ã':'Aacute','Â':'Acirc','Ã':'Atilde','Ä':'Auml','Ã…':'Aring','Æ':'AElig','Ç':'Ccedil','È':'Egrave','É':'Eacute','Ê':'Ecirc','Ë':'Euml','ÃŒ':'Igrave','Ã':'Iacute','ÃŽ':'Icirc','Ã':'Iuml','Ã':'ETH','Ñ':'Ntilde','Ã’':'Ograve','Ó':'Oacute','Ô':'Ocirc','Õ':'Otilde','Ö':'Ouml','Ø':'Oslash','Ù':'Ugrave','Ú':'Uacute','Û':'Ucirc','Ãœ':'Uuml','Ã':'Yacute','Þ':'THORN','ß':'szlig','à ':'agrave','á':'aacute','â':'acirc','ã':'atilde','ä':'auml','Ã¥':'aring','æ':'aelig','ç':'ccedil','è':'egrave','é':'eacute','ê':'ecirc','ë':'euml','ì':'igrave','Ã':'iacute','î':'icirc','ï':'iuml','ð':'eth','ñ':'ntilde','ò':'ograve','ó':'oacute','ô':'ocirc','õ':'otilde','ö':'ouml','ø':'oslash','ù':'ugrave','ú':'uacute','û':'ucirc','ü':'uuml','ý':'yacute','þ':'thorn','ÿ':'yuml','Å’':'OElig','Å“':'oelig','Å ':'Scaron','Å¡':'scaron','Ÿ':'Yuml'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){B={'Α':'Alpha','Î’':'Beta','Γ':'Gamma','Δ':'Delta','Ε':'Epsilon','Ζ':'Zeta','Η':'Eta','Θ':'Theta','Ι':'Iota','Κ':'Kappa','Λ':'Lambda','Îœ':'Mu','Î':'Nu','Ξ':'Xi','Ο':'Omicron','Î ':'Pi','Ρ':'Rho','Σ':'Sigma','Τ':'Tau','Î¥':'Upsilon','Φ':'Phi','Χ':'Chi','Ψ':'Psi','Ω':'Omega','α':'alpha','β':'beta','γ':'gamma','δ':'delta','ε':'epsilon','ζ':'zeta','η':'eta','θ':'theta','ι':'iota','κ':'kappa','λ':'lambda','μ':'mu','ν':'nu','ξ':'xi','ο':'omicron','Ï€':'pi','Ï':'rho','Ï‚':'sigmaf','σ':'sigma','Ï„':'tau','Ï…':'upsilon','φ':'phi','χ':'chi','ψ':'psi','ω':'omega'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={};A=' ';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&&D.length>0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');}
-var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKXHtmlEntities.Initialize();var D=FCK.IsDirty();this._CreateNode=FCKConfig.ForceStrongEm?FCKXHtml_CreateNode_StrongEm:FCKXHtml_CreateNode_Normal;FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;E=E.substr(7,E.length-15).Trim();if (FCKBrowserInfo.IsGecko) E=E.replace(/<br\/>$/,'');E=E.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i<FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&');if (!D) FCK.ResetIsDirty();return E;};FCKXHtml._AppendAttribute=function(A,B,C){try{if (C==undefined||C==null) C='';else if (C.replace){if (FCKConfig.ForceSimpleAmpersand) C=C.replace(/&/g,'___FCKAmp___');C=C.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity);};var D=this.XML.createAttribute(B);D.value=C;A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){if (C) FCKDomTools.TrimNode(B);var D=0;var E=B.firstChild;while (E){if (this._AppendNode(A,E)) D++;E=E.nextSibling;};if (D==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,'nbsp');return A;};var F=A.nodeName;if (FCKListsLib.InlineChildReqElements[F]) return null;if (!FCKListsLib.EmptyElements[F]) A.appendChild(this.XML.createTextNode(''));};return A;};FCKXHtml._AppendNode=function(A,B){if (!B) return false;switch (B.nodeType){case 1:if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.hasAttribute('_moz_editor_bogus_node')) return false;if (B.getAttribute('_fcktemp')) return false;var C=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&&B.scopeName!='HTML'&&B.scopeName!='FCK') C=B.scopeName.toLowerCase()+':'+C;}else{if (C.StartsWith('fck:')) C=C.Remove(0,4);};if (!FCKRegexLib.ElementName.test(C)) return false;if (C=='br'&&(B.getAttribute('type',2)=='_moz'||!B.nextSibling)) return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var D=this._CreateNode(C);FCKXHtml._AppendAttributes(A,B,D,C);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var E=FCKXHtml.TagProcessors[C];if (E) D=E(D,B,A);else D=this._AppendChildNodes(D,B,Boolean(FCKListsLib.NonEmptyBlockElements[C]));if (!D) break;A.appendChild(D);break;case 3:return this._AppendTextNode(A,B.nodeValue.ReplaceNewLineChars(' '));case 8:if (FCKBrowserInfo.IsIE&&!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) {/*Do nothing... probably this is a wrong format comment.*/};break;default:A.appendChild(this.XML.createComment("Element not supported - Type: "+B.nodeType+" Name: "+B.nodeName));break;};return true;};function FCKXHtml_CreateNode_StrongEm(A){switch (A){case 'b':A='strong';break;case 'i':A='em';break;};return this.XML.createElement(A);};function FCKXHtml_CreateNode_Normal(A){return this.XML.createElement(A);};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.AddItem(A);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){var C=B.length>0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml._RemoveAttribute=function(A,B,C){var D=A.attributes.getNamedItem(C);if (D&&B.test(D.nodeValue)){var E=D.nodeValue.replace(B,'');if (E.length==0) A.attributes.removeNamedItem(C);else D.nodeValue=E;}};FCKXHtml.TagProcessors={img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);return A;},a:function(A,B){if (B.innerHTML.Trim().length==0&&!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){FCKXHtml._RemoveAttribute(A,FCKRegexLib.FCK_Class,'class');if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};FCKXHtml._AppendChildNodes(A,B,false);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.innerHTML)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;},table:function(A,B){if (FCKBrowserInfo.IsIE) FCKXHtml._RemoveAttribute(A,FCKRegexLib.FCK_Class,'class');FCKXHtml._AppendChildNodes(A,B,false);return A;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&&D.nodeType==3) D=D.previousSibling;if (D&&D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};FCKXHtml._AppendChildNodes(A,B);return A;},span:function(A,B){if (B.innerHTML.length==0) return false;FCKXHtml._AppendChildNodes(A,B,false);return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol;
-FCKXHtml._GetMainXmlString=function(){return this.MainNode.xml;};FCKXHtml._AppendAttributes=function(A,B,C,D){var E=B.attributes;for (var n=0;n<E.length;n++){var F=E[n];if (F.specified){var G=F.nodeName.toLowerCase();var H;if (G.StartsWith('_fck')) continue;else if (G=='style') H=B.style.cssText.replace(FCKRegexLib.StyleProperties,FCKTools.ToLowerCase);else if (G=='class'||G.indexOf('on')==0) H=F.nodeValue;else if (D=='body'&&G=='contenteditable') continue;else if (F.nodeValue===true) H=G;else{try{H=B.getAttribute(G,2);}catch (e) {}};this._AppendAttribute(C,G,H||F.nodeValue);}}};FCKXHtml.TagProcessors['meta']=function(A,B){var C=A.attributes.getNamedItem('http-equiv');if (C==null||C.value.length==0){var D=B.outerHTML.match(FCKRegexLib.MetaHttpEquiv);if (D){D=D[1];FCKXHtml._AppendAttribute(A,'http-equiv',D);}};return A;};FCKXHtml.TagProcessors['font']=function(A,B){if (A.attributes.length==0) A=FCKXHtml.XML.createDocumentFragment();FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['input']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);if (B.value&&!A.attributes.getNamedItem('value')) FCKXHtml._AppendAttribute(A,'value',B.value);if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text');return A;};FCKXHtml.TagProcessors['option']=function(A,B){if (B.selected&&!A.attributes.getNamedItem('selected')) FCKXHtml._AppendAttribute(A,'selected','selected');FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['area']=function(A,B){if (!A.attributes.getNamedItem('coords')){var C=B.getAttribute('coords',2);if (C&&C!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',C);};if (!A.attributes.getNamedItem('shape')){var D=B.getAttribute('shape',2);if (D&&D.length>0) FCKXHtml._AppendAttribute(A,'shape',D);};return A;};FCKXHtml.TagProcessors['label']=function(A,B){if (B.htmlFor.length>0) FCKXHtml._AppendAttribute(A,'for',B.htmlFor);FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['form']=function(A,B){if (B.acceptCharset&&B.acceptCharset.length>0&&B.acceptCharset!='UNKNOWN') FCKXHtml._AppendAttribute(A,'accept-charset',B.acceptCharset);if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['textarea']=FCKXHtml.TagProcessors['select']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['div']=function(A,B){if (B.align.length>0) FCKXHtml._AppendAttribute(A,'align',B.align);FCKXHtml._AppendChildNodes(A,B,true);return A;}
+var FCKDomTools={MoveChildren:function(A,B,C){if (A==B) return;var D;if (C){while ((D=A.lastChild)) B.insertBefore(A.removeChild(D),B.firstChild);}else{while ((D=A.firstChild)) B.appendChild(A.removeChild(D));}},MoveNode:function(A,B,C){if (C) B.insertBefore(FCKDomTools.RemoveNode(A),B.firstChild);else B.appendChild(FCKDomTools.RemoveNode(A));},TrimNode:function(A){this.LTrimNode(A);this.RTrimNode(A);},LTrimNode:function(A){var B;while ((B=A.firstChild)){if (B.nodeType==3){var C=B.nodeValue.LTrim();var D=B.nodeValue.length;if (C.length==0){A.removeChild(B);continue;}else if (C.length<D){B.splitText(D-C.length);A.removeChild(A.firstChild);}};break;}},RTrimNode:function(A){var B;while ((B=A.lastChild)){if (B.nodeType==3){var C=B.nodeValue.RTrim();var D=B.nodeValue.length;if (C.length==0){B.parentNode.removeChild(B);continue;}else if (C.length<D){B.splitText(C.length);A.lastChild.parentNode.removeChild(A.lastChild);}};break;};if (!FCKBrowserInfo.IsIE&&!FCKBrowserInfo.IsOpera){B=A.lastChild;if (B&&B.nodeType==1&&B.nodeName.toLowerCase()=='br'){B.parentNode.removeChild(B);}}},RemoveNode:function(A,B){if (B){var C;while ((C=A.firstChild)) A.parentNode.insertBefore(A.removeChild(C),A);};return A.parentNode.removeChild(A);},GetFirstChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.firstChild;while(C){if (C.nodeType==1&&C.tagName.Equals.apply(C.tagName,B)) return C;C=C.nextSibling;};return null;},GetLastChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.lastChild;while(C){if (C.nodeType==1&&(!B||C.tagName.Equals(B))) return C;C=C.previousSibling;};return null;},GetPreviousSourceElement:function(A,B,C,D){if (!A) return null;if (C&&A.nodeType==1&&A.nodeName.IEquals(C)) return null;if (A.previousSibling) A=A.previousSibling;else return this.GetPreviousSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.lastChild) A=A.lastChild;else return this.GetPreviousSourceElement(A,B,C,D);};return null;},GetNextSourceElement:function(A,B,C,D,E){while((A=this.GetNextSourceNode(A,E))){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (D&&A.nodeName.IEquals(D)) return this.GetNextSourceElement(A,B,C,D);return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;};return null;},GetNextSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&&A.firstChild) E=A.firstChild;else{if (D&&A==D) return null;E=A.nextSibling;if (!E&&(!D||D!=A.parentNode)) return this.GetNextSourceNode(A.parentNode,true,C,D);};if (C&&E&&E.nodeType!=C) return this.GetNextSourceNode(E,false,C,D);return E;},GetPreviousSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&&A.lastChild) E=A.lastChild;else{if (D&&A==D) return null;E=A.previousSibling;if (!E&&(!D||D!=A.parentNode)) return this.GetPreviousSourceNode(A.parentNode,true,C,D);};if (C&&E&&E.nodeType!=C) return this.GetPreviousSourceNode(E,false,C,D);return E;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.unshift(A);A=A.parentNode;};return B;},GetCommonParents:function(A,B){var C=this.GetParents(A);var D=this.GetParents(B);var E=[];for (var i=0;i<C.length;i++){if (C[i]==D[i]) E.push(C[i]);};return E;},GetCommonParentNode:function(A,B,C){var D={};if (!C.pop) C=[C];while (C.length>0) D[C.pop().toLowerCase()]=1;var E=this.GetCommonParents(A,B);var F=null;while ((F=E.pop())){if (D[F.nodeName.toLowerCase()]) return F;};return null;},GetIndexOf:function(A){var B=A.parentNode?A.parentNode.firstChild:null;var C=-1;while (B){C++;if (B==A) return C;B=B.nextSibling;};return-1;},PaddingNode:null,EnforcePaddingNode:function(A,B){try{if (!A||!A.body) return;}catch (e){return;};this.CheckAndRemovePaddingNode(A,B,true);try{if (A.body.lastChild&&(A.body.lastChild.nodeType!=1||A.body.lastChild.tagName.toLowerCase()==B.toLowerCase())) return;}catch (e){return;};var C=A.createElement(B);if (FCKBrowserInfo.IsGecko&&FCKListsLib.NonEmptyBlockElements[B]) FCKTools.AppendBogusBr(C);this.PaddingNode=C;if (A.body.childNodes.length==1&&A.body.firstChild.nodeType==1&&A.body.firstChild.tagName.toLowerCase()=='br'&&(A.body.firstChild.getAttribute('_moz_dirty')!=null||A.body.firstChild.getAttribute('type')=='_moz')) A.body.replaceChild(C,A.body.firstChild);else A.body.appendChild(C);},CheckAndRemovePaddingNode:function(A,B,C){var D=this.PaddingNode;if (!D) return;try{if (D.parentNode!=A.body||D.tagName.toLowerCase()!=B||(D.childNodes.length>1)||(D.firstChild&&D.firstChild.nodeValue!='\xa0'&&String(D.firstChild.tagName).toLowerCase()!='br')){this.PaddingNode=null;return;}}catch (e){this.PaddingNode=null;return;};if (!C){if (D.parentNode.childNodes.length>1) D.parentNode.removeChild(D);this.PaddingNode=null;}},HasAttribute:function(A,B){if (A.hasAttribute) return A.hasAttribute(B);else{var C=A.attributes[B];return (C!=undefined&&C.specified);}},HasAttributes:function(A){var B=A.attributes;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsIE&&B[i].nodeName=='class'){if (A.className.length>0) return true;}else if (B[i].specified) return true;};return false;},RemoveAttribute:function(A,B){if (FCKBrowserInfo.IsIE&&B.toLowerCase()=='class') B='className';return A.removeAttribute(B,0);},GetAttributeValue:function(A,B){var C=B;if (typeof B=='string') B=A.attributes[B];else C=B.nodeName;if (B&&B.specified){if (C=='style') return A.style.cssText;else if (C=='class'||C.indexOf('on')==0) return B.nodeValue;else{return A.getAttribute(C,2);}};return null;},Contains:function(A,B){if (A.contains&&B.nodeType==1) return A.contains(B);while ((B=B.parentNode)){if (B==A) return true;};return false;},BreakParent:function(A,B,C){var D=C||new FCKDomRange(FCKTools.GetElementWindow(A));D.SetStart(A,4);D.SetEnd(B,4);var E=D.ExtractContents();D.InsertNode(A.parentNode.removeChild(A));E.InsertAfterNode(A);D.Release(!!C);},GetNodeAddress:function(A,B){var C=[];while (A&&A!=A.ownerDocument.documentElement){var D=A.parentNode;var E=-1;for(var i=0;i<D.childNodes.length;i++){var F=D.childNodes[i];if (B===true&&F.nodeType==3&&F.previousSibling&&F.previousSibling.nodeType==3) continue;E++;if (D.childNodes[i]==A) break;};C.unshift(E);A=A.parentNode;};return C;},GetNodeFromAddress:function(A,B,C){var D=A.documentElement;for (var i=0;i<B.length;i++){var E=B[i];if (!C){D=D.childNodes[E];continue;};var F=-1;for (var j=0;j<D.childNodes.length;j++){var G=D.childNodes[j];if (C===true&&G.nodeType==3&&G.previousSibling&&G.previousSibling.nodeType==3) continue;F++;if (F==E){D=G;break;}}};return D;},CloneElement:function(A){A=A.cloneNode(false);A.removeAttribute('id',false);return A;},ClearElementJSProperty:function(A,B){if (FCKBrowserInfo.IsIE) A.removeAttribute(B);else delete A[B];},SetElementMarker:function (A,B,C,D){var E=String(parseInt(Math.random()*0xfffffff,10));B._FCKMarkerId=E;B[C]=D;if (!A[E]) A[E]={ 'element':B,'markers':{} };A[E]['markers'][C]=D;},ClearElementMarkers:function(A,B,C){var D=B._FCKMarkerId;if (!D) return;this.ClearElementJSProperty(B,'_FCKMarkerId');for (var j in A[D]['markers']) this.ClearElementJSProperty(B,j);if (C) delete A[D];},ClearAllMarkers:function(A){for (var i in A) this.ClearElementMarkers(A,A[i]['element'],true);},ListToArray:function(A,B,C,D,E){if (!A.nodeName.IEquals(['ul','ol'])) return [];if (!D) D=0;if (!C) C=[];for (var i=0;i<A.childNodes.length;i++){var F=A.childNodes[i];if (!F.nodeName.IEquals('li')) continue;var G={ 'parent':A,'indent':D,'contents':[] };if (!E){G.grandparent=A.parentNode;if (G.grandparent&&G.grandparent.nodeName.IEquals('li')) G.grandparent=G.grandparent.parentNode;}else G.grandparent=E;if (B) this.SetElementMarker(B,F,'_FCK_ListArray_Index',C.length);C.push(G);for (var j=0;j<F.childNodes.length;j++){var H=F.childNodes[j];if (H.nodeName.IEquals(['ul','ol'])) this.ListToArray(H,B,C,D+1,G.grandparent);else G.contents.push(H);}};return C;},ArrayToList:function(A,B,C){if (C==undefined) C=0;if (!A||A.length<C+1) return null;var D=A[C].parent.ownerDocument;var E=D.createDocumentFragment();var F=null;var G=C;var H=Math.max(A[C].indent,0);var I=null;while (true){var J=A[G];if (J.indent==H){if (!F||A[G].parent.nodeName!=F.nodeName){F=A[G].parent.cloneNode(false);E.appendChild(F);};I=D.createElement('li');F.appendChild(I);for (var i=0;i<J.contents.length;i++) I.appendChild(J.contents[i].cloneNode(true));G++;}else if (J.indent==Math.max(H,0)+1){var K=this.ArrayToList(A,null,G);I.appendChild(K.listNode);G=K.nextIndex;}else if (J.indent==-1&&C==0&&J.grandparent){var I;if (J.grandparent.nodeName.IEquals(['ul','ol'])) I=D.createElement('li');else{if (FCKConfig.EnterMode.IEquals(['div','p'])&&!J.grandparent.nodeName.IEquals('td')) I=D.createElement(FCKConfig.EnterMode);else I=D.createDocumentFragment();};for (var i=0;i<J.contents.length;i++) I.appendChild(J.contents[i].cloneNode(true));if (I.nodeType==11){if (I.lastChild&&I.lastChild.getAttribute&&I.lastChild.getAttribute('type')=='_moz') I.removeChild(I.lastChild);I.appendChild(D.createElement('br'));};if (I.nodeName.IEquals(FCKConfig.EnterMode)&&I.firstChild){this.TrimNode(I);if (FCKListsLib.BlockBoundaries[I.firstChild.nodeName.toLowerCase()]){var M=D.createDocumentFragment();while (I.firstChild) M.appendChild(I.removeChild(I.firstChild));I=M;}};if (FCKBrowserInfo.IsGeckoLike&&I.nodeName.IEquals(['div','p'])) FCKTools.AppendBogusBr(I);E.appendChild(I);F=null;G++;}else return null;if (A.length<=G||Math.max(A[G].indent,0)<H){break;}};if (B){var N=E.firstChild;while (N){if (N.nodeType==1) this.ClearElementMarkers(B,N);N=this.GetNextSourceNode(N);}};return { 'listNode':E,'nextIndex':G };},GetNextSibling:function(A,B){A=A.nextSibling;while (A&&!B&&A.nodeType!=1&&(A.nodeType!=3||A.nodeValue.length==0)) A=A.nextSibling;return A;},GetPreviousSibling:function(A,B){A=A.previousSibling;while (A&&!B&&A.nodeType!=1&&(A.nodeType!=3||A.nodeValue.length==0)) A=A.previousSibling;return A;},CheckIsEmptyElement:function(A,B){var C=A.firstChild;var D;while (C){if (C.nodeType==1){if (D||!FCKListsLib.InlineNonEmptyElements[C.nodeName.toLowerCase()]) return false;if (!B||B(C)===true) D=C;}else if (C.nodeType==3&&C.nodeValue.length>0) return false;C=C.nextSibling;};return D?this.CheckIsEmptyElement(D,B):true;},SetElementStyles:function(A,B){var C=A.style;for (var D in B) C[D]=B[D];},GetCurrentElementStyle:function(w,A,B){if (FCKBrowserInfo.IsIE) return A.currentStyle[B];else return w.getComputedStyle(A,'')[B];},GetPositionedAncestor:function(w,A){var B=A;while (B!=B.ownerDocument.documentElement){if (this.GetCurrentElementStyle(w,B,'position')!='static') return B;B=B.parentNode;};return null;},ScrollIntoView:function(A,B){var C=FCKTools.GetElementWindow(A);var D=FCKTools.GetViewPaneSize(C).Height;var E=D*-1;if (B===false){E+=A.offsetHeight;E+=parseInt(this.GetCurrentElementStyle(C,A,'marginBottom')||0,10);};E+=A.offsetTop;while ((A=A.offsetParent)) E+=A.offsetTop||0;var F=FCKTools.GetScrollPosition(C).Y;if (E>0&&E>F) C.scrollTo(0,E);}};
+var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.AppendStyleSheet=function(A,B){if (typeof(B)=='string') return this._AppendStyleSheet(A,B);else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.AppendStyleString=function (A,B){this._AppendStyleString(A,B);};FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&&!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.FixDocumentParentWindow=function(A){if (A.document) A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&');A=A.replace(/</g,'<');A=A.replace(/>/g,'>');return A;};FCKTools.HTMLDecode=function(A){if (!A) return '';A=A.replace(/>/g,'>');A=A.replace(/</g,'<');A=A.replace(/&/g,'&');return A;};FCKTools._ProcessLineBreaksForPMode=function(A,B,C,D,E){var F=0;var G="<p>";var H="</p>";var I="<br />";if (C){G="<li>";H="</li>";F=1;};while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='p'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};var n=B.charAt(i+1);if (n=='\r'){i++;n=B.charAt(i+1);};if (n=='\n'){i++;if (F) E.push(H);E.push(G);F=1;}else E.push(I);}};FCKTools._ProcessLineBreaksForDivMode=function(A,B,C,D,E){var F=0;var G="<div>";var H="</div>";if (C){G="<li>";H="</li>";F=1;};while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='div'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F){if (E[E.length-1]==G){E.push(" ");};E.push(H);};E.push(G);F=1;};if (F) E.push(H);};FCKTools._ProcessLineBreaksForBrMode=function(A,B,C,D,E){var F=0;var G="<br />";var H="";if (C){G="<li>";H="</li>";F=1;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F&&H.length) E.push (H);E.push(G);F=1;}};FCKTools.ProcessLineBreaks=function(A,B,C){var D=B.EnterMode.toLowerCase();var E=[];var F=0;var G=new A.FCKDomRange(A.FCK.EditorWindow);G.MoveToSelection();var H=G._Range.startContainer;while (H&&H.nodeType!=1) H=H.parentNode;if (H&&H.tagName.toLowerCase()=='li') F=1;if (D=='p') this._ProcessLineBreaksForPMode(A,C,F,H,E);else if (D=='div') this._ProcessLineBreaksForDivMode(A,C,F,H,E);else if (D=='br') this._ProcessLineBreaksForBrMode(A,C,F,H,E);return E.join("");};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i<arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||'CSS1Compat'));};FCKTools.ArgumentsToArray=function(A,B,C){B=B||0;C=C||A.length;var D=[];for (var i=B;i<B+C&&i<A.length;i++) D.push(A[i]);return D;};FCKTools.CloneObject=function(A){var B=function() {};B.prototype=A;return new B;};FCKTools.AppendBogusBr=function(A){if (!A) return;var B=this.GetLastItem(A.getElementsByTagName('br'));if (!B||(B.getAttribute('type',2)!='_moz'&&B.getAttribute('_moz_dirty')==null)){var C=this.GetElementDocument(A);if (FCKBrowserInfo.IsOpera) A.appendChild(C.createTextNode(''));else A.appendChild(this.CreateBogusBR(C));}};FCKTools.GetLastItem=function(A){if (A.length>0) return A[A.length-1];return null;};FCKTools.GetDocumentPosition=function(w,A){var x=0;var y=0;var B=A;var C=null;var D=FCKTools.GetElementWindow(B);while (B&&!(D==w&&(B==w.document.body||B==w.document.documentElement))){x+=B.offsetLeft-B.scrollLeft;y+=B.offsetTop-B.scrollTop;if (!FCKBrowserInfo.IsOpera){var E=C;while (E&&E!=B){x-=E.scrollLeft;y-=E.scrollTop;E=E.parentNode;}};C=B;if (B.offsetParent) B=B.offsetParent;else{if (D!=w){B=D.frameElement;C=null;if (B) D=FCKTools.GetElementWindow(B);}else B=null;}};if (FCKDomTools.GetCurrentElementStyle(w,w.document.body,'position')!='static'||(FCKBrowserInfo.IsIE&&FCKDomTools.GetPositionedAncestor(w,A)==null)){x+=w.document.body.offsetLeft;y+=w.document.body.offsetTop;};return { "x":x,"y":y };};FCKTools.GetWindowPosition=function(w,A){var B=this.GetDocumentPosition(w,A);var C=FCKTools.GetScrollPosition(w);B.x-=C.X;B.y-=C.Y;return B;};FCKTools.ProtectFormStyles=function(A){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return [];var B=[];var C=['style','className'];for (var i=0;i<C.length;i++){var D=C[i];if (A.elements.namedItem(D)){var E=A.elements.namedItem(D);B.push([E,E.nextSibling]);A.removeChild(E);}};return B;};FCKTools.RestoreFormStyles=function(A,B){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return;if (B.length>0){for (var i=B.length-1;i>=0;i--){var C=B[i][0];var D=B[i][1];if (D) A.insertBefore(C,D);else A.appendChild(C);}}};FCKTools.GetNextNode=function(A,B){if (A.firstChild) return A.firstChild;else if (A.nextSibling) return A.nextSibling;else{var C=A.parentNode;while (C){if (C==B) return null;if (C.nextSibling) return C.nextSibling;else C=C.parentNode;}};return null;};FCKTools.GetNextTextNode=function(A,B,C){node=this.GetNextNode(A,B);if (C&&node&&C(node)) return null;while (node&&node.nodeType!=3){node=this.GetNextNode(node,B);if (C&&node&&C(node)) return null;};return node;};FCKTools.Merge=function(){var A=arguments;var o=A[0];for (var i=1;i<A.length;i++){var B=A[i];for (var p in B) o[p]=B[p];};return o;};FCKTools.IsArray=function(A){return (A instanceof Array);};FCKTools.AppendLengthProperty=function(A,B){var C=0;for (var n in A) C++;return A[B||'length']=C;};FCKTools.NormalizeCssText=function(A){var B=document.createElement('span');B.style.cssText=A;return B.style.cssText;};FCKTools.Hitch=function(A,B){return function() { A[B].apply(A,arguments);};};
+FCKTools.CancelEvent=function(e){return false;};FCKTools._AppendStyleSheet=function(A,B){return A.createStyleSheet(B).owningElement;};FCKTools._AppendStyleString=function(A,B){var s=A.createStyleSheet("");s.cssText=B;return s;};FCKTools.ClearElementAttributes=function(A){A.clearAttributes();};FCKTools.GetAllChildrenIds=function(A){var B=[];for (var i=0;i<A.all.length;i++){var C=A.all[i].id;if (C&&C.length>0) B[B.length]=C;};return B;};FCKTools.RemoveOuterTags=function(e){e.insertAdjacentHTML('beforeBegin',e.innerHTML);e.parentNode.removeChild(e);};FCKTools.CreateXmlObject=function(A){var B;switch (A){case 'XmlHttp':B=['MSXML2.XmlHttp','Microsoft.XmlHttp'];break;case 'DOMDocument':B=['MSXML2.DOMDocument','Microsoft.XmlDom'];break;};for (var i=0;i<2;i++){try { return new ActiveXObject(B[i]);}catch (e){}};if (FCKLang.NoActiveX){alert(FCKLang.NoActiveX);FCKLang.NoActiveX=null;};return null;};FCKTools.DisableSelection=function(A){A.unselectable='on';var e,i=0;while ((e=A.all[i++])){switch (e.tagName){case 'IFRAME':case 'TEXTAREA':case 'INPUT':case 'SELECT':break;default:e.unselectable='on';}}};FCKTools.GetScrollPosition=function(A){var B=A.document;var C={ X:B.documentElement.scrollLeft,Y:B.documentElement.scrollTop };if (C.X>0||C.Y>0) return C;return { X:B.body.scrollLeft,Y:B.body.scrollTop };};FCKTools.AddEventListener=function(A,B,C){A.attachEvent('on'+B,C);};FCKTools.RemoveEventListener=function(A,B,C){A.detachEvent('on'+B,C);};FCKTools.AddEventListenerEx=function(A,B,C,D){var o={};o.Source=A;o.Params=D||[];o.Listener=function(ev){return C.apply(o.Source,[ev].concat(o.Params));};if (FCK.IECleanup) FCK.IECleanup.AddItem(null,function() { o.Source=null;o.Params=null;});A.attachEvent('on'+B,o.Listener);A=null;D=null;};FCKTools.GetViewPaneSize=function(A){var B;var C=A.document.documentElement;if (C&&C.clientWidth) B=C;else B=A.document.body;if (B) return { Width:B.clientWidth,Height:B.clientHeight };else return { Width:0,Height:0 };};FCKTools.SaveStyles=function(A){var B=FCKTools.ProtectFormStyles(A);var C={};if (A.className.length>0){C.Class=A.className;A.className='';};var D=A.style.cssText;if (D.length>0){C.Inline=D;A.style.cssText='';};FCKTools.RestoreFormStyles(A,B);return C;};FCKTools.RestoreStyles=function(A,B){var C=FCKTools.ProtectFormStyles(A);A.className=B.Class||'';A.style.cssText=B.Inline||'';FCKTools.RestoreFormStyles(A,C);};FCKTools.RegisterDollarFunction=function(A){A.$=A.document.getElementById;};FCKTools.AppendElement=function(A,B){return A.appendChild(this.GetElementDocument(A).createElement(B));};FCKTools.ToLowerCase=function(A){return A.toLowerCase();};
+var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='var FCKeditorAPI = {Version : "2.5",VersionBuild : "17352",__Instances : new Object(),GetInstance : function( name ){return this.__Instances[ name ];},_FormSubmit : function(){for ( var name in FCKeditorAPI.__Instances ){var oEditor = FCKeditorAPI.__Instances[ name ] ;if ( oEditor.GetParentForm && oEditor.GetParentForm() == this )oEditor.UpdateLinkedField() ;}this._FCKOriginalSubmit() ;},_FunctionQueue : {Functions : new Array(),IsRunning : false,Add : function( f ){this.Functions.push( f );if ( !this.IsRunning )this.StartNext();},StartNext : function(){var aQueue = this.Functions ;if ( aQueue.length > 0 ){this.IsRunning = true;aQueue[0].call();}else this.IsRunning = false;},Remove : function( f ){var aQueue = this.Functions;var i = 0, fFunc;while( (fFunc = aQueue[ i ]) ){if ( fFunc == f )aQueue.splice( i,1 );i++ ;}this.StartNext();}}}';if (A.execScript) A.execScript(B,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if (FCKBrowserInfo.IsSafari||FCKBrowserInfo.IsGecko19){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;};FCKeditorAPI.__Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&&(typeof(A.submit)=='function'||(!A.submit.tagName&&!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){if (!window.FCKUnloadFlag) return;delete FCKeditorAPI.__Instances[FCK.Name];};function FCKeditorAPI_ConfirmCleanup(){window.FCKUnloadFlag=true;};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);FCKTools.AddEventListener(window,'beforeunload',FCKeditorAPI_ConfirmCleanup);
+var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i<A.length;i++){var B=document.createElement('img');FCKTools.AddEventListenerEx(B,'load',_FCKImagePreloader_OnImage,this);FCKTools.AddEventListenerEx(B,'error',_FCKImagePreloader_OnImage,this);B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(A,B){if ((--B._PreloadCount)==0&&B.OnComplete) B.OnComplete();}
+var FCKRegexLib={AposEntity:/'/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BeforeBody:/(^[\s\S]*\<body[^\>]*\>)/i,AfterBody:/(\<\/body\>[\s\S]*$)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HasBodyTag:/<body[\s|>]/i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/\s*FCK__[^ ]*(?=\s+|$)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>\s*(<\/\1>)?$/,EmptyOutParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>(?:\s*| )(<\/\1>)?$/,TagBody:/></,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/<img(?=\s).*?\ssrc=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,ProtectUrlsA:/<a(?=\s).*?\shref=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,ProtectUrlsArea:/<area(?=\s).*?\shref=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,Html4DocType:/HTML 4\.0 Transitional/i,DocTypeTag:/<!DOCTYPE[^>]*>/i,TagsWithEvent:/<[^\>]+ on\w+[\s\r\n]*=[\s\r\n]*?('|")[\s\S]+?\>/g,EventAttributes:/\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|")([\s\S]*?)\2/g,ProtectedEvents:/\s\w+_fckprotectedatt="([^"]+)"/g,StyleProperties:/\S+\s*:/g,InvalidSelfCloseTags:/(<(?!base|meta|link|hr|br|param|img|area|input)([a-zA-Z0-9:]+)[^>]*)\/>/gi,StyleVariableAttName:/#\(\s*("|')(.+?)\1[^\)]*\s*\)/g,RegExp:/^\/(.*)\/([gim]*)$/};
+var FCKListsLib={BlockElements:{ address:1,blockquote:1,center:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,marquee:1,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 },NonEmptyBlockElements:{ p:1,div:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,address:1,pre:1,ol:1,ul:1,li:1,td:1,th:1 },InlineChildReqElements:{ abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },InlineNonEmptyElements:{ a:1,abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },EmptyElements:{ base:1,col:1,meta:1,link:1,hr:1,br:1,param:1,img:1,area:1,input:1 },PathBlockElements:{ address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,de:1 },PathBlockLimitElements:{ body:1,div:1,td:1,th:1,caption:1,form:1 },StyleBlockElements:{ address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1 },StyleObjectElements:{ img:1,hr:1,li:1,table:1,tr:1,td:1,embed:1,object:1,ol:1,ul:1 },BlockBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1 },ListBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1,br:1 }};
+var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French',gl:'Galician',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',it:'Italian',ja:'Japanese',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},GetActiveLanguage:function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length>=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length>=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;},TranslateElements:function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i<e.length;i++){if ((E=e[i].getAttribute('fckLang'))){if ((s=FCKLang[E])){if (D) s=FCKTools.HTMLEncode(s);e[i][C]=s;}}}},TranslatePage:function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);this.TranslateElements(A,'LEGEND','innerHTML');},Initialize:function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage={};this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}};
+var FCKXHtmlEntities={};FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';var B,e;if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.Entities={' ':'nbsp','¡':'iexcl','¢':'cent','£':'pound','¤':'curren','Â¥':'yen','¦':'brvbar','§':'sect','¨':'uml','©':'copy','ª':'ordf','«':'laquo','¬':'not','Â':'shy','®':'reg','¯':'macr','°':'deg','±':'plusmn','²':'sup2','³':'sup3','´':'acute','µ':'micro','¶':'para','·':'middot','¸':'cedil','¹':'sup1','º':'ordm','»':'raquo','¼':'frac14','½':'frac12','¾':'frac34','¿':'iquest','×':'times','÷':'divide','Æ’':'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','\u2308':'lceil','\u2309':'rceil','\u230a':'lfloor','\u230b':'rfloor','\u2329':'lang','\u232a':'rang','â—Š':'loz','â™ ':'spades','♣':'clubs','♥':'hearts','♦':'diams','"':'quot','ˆ':'circ','Ëœ':'tilde',' ':'ensp',' ':'emsp',' ':'thinsp','‌':'zwnj','â€':'zwj','‎':'lrm','â€':'rlm','–':'ndash','—':'mdash','‘':'lsquo','’':'rsquo','‚':'sbquo','“':'ldquo','â€':'rdquo','„':'bdquo','†':'dagger','‡':'Dagger','‰':'permil','‹':'lsaquo','›':'rsaquo','€':'euro'};for (e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){B={'À':'Agrave','Ã':'Aacute','Â':'Acirc','Ã':'Atilde','Ä':'Auml','Ã…':'Aring','Æ':'AElig','Ç':'Ccedil','È':'Egrave','É':'Eacute','Ê':'Ecirc','Ë':'Euml','ÃŒ':'Igrave','Ã':'Iacute','ÃŽ':'Icirc','Ã':'Iuml','Ã':'ETH','Ñ':'Ntilde','Ã’':'Ograve','Ó':'Oacute','Ô':'Ocirc','Õ':'Otilde','Ö':'Ouml','Ø':'Oslash','Ù':'Ugrave','Ú':'Uacute','Û':'Ucirc','Ãœ':'Uuml','Ã':'Yacute','Þ':'THORN','ß':'szlig','à ':'agrave','á':'aacute','â':'acirc','ã':'atilde','ä':'auml','Ã¥':'aring','æ':'aelig','ç':'ccedil','è':'egrave','é':'eacute','ê':'ecirc','ë':'euml','ì':'igrave','Ã':'iacute','î':'icirc','ï':'iuml','ð':'eth','ñ':'ntilde','ò':'ograve','ó':'oacute','ô':'ocirc','õ':'otilde','ö':'ouml','ø':'oslash','ù':'ugrave','ú':'uacute','û':'ucirc','ü':'uuml','ý':'yacute','þ':'thorn','ÿ':'yuml','Å’':'OElig','Å“':'oelig','Å ':'Scaron','Å¡':'scaron','Ÿ':'Yuml'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){B={'Α':'Alpha','Î’':'Beta','Γ':'Gamma','Δ':'Delta','Ε':'Epsilon','Ζ':'Zeta','Η':'Eta','Θ':'Theta','Ι':'Iota','Κ':'Kappa','Λ':'Lambda','Îœ':'Mu','Î':'Nu','Ξ':'Xi','Ο':'Omicron','Î ':'Pi','Ρ':'Rho','Σ':'Sigma','Τ':'Tau','Î¥':'Upsilon','Φ':'Phi','Χ':'Chi','Ψ':'Psi','Ω':'Omega','α':'alpha','β':'beta','γ':'gamma','δ':'delta','ε':'epsilon','ζ':'zeta','η':'eta','θ':'theta','ι':'iota','κ':'kappa','λ':'lambda','μ':'mu','ν':'nu','ξ':'xi','ο':'omicron','Ï€':'pi','Ï':'rho','Ï‚':'sigmaf','σ':'sigma','Ï„':'tau','Ï…':'upsilon','φ':'phi','χ':'chi','ψ':'psi','ω':'omega','\u03d1':'thetasym','\u03d2':'upsih','\u03d6':'piv'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={};A=' ';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&&D.length>0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');};
+var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKDomTools.CheckAndRemovePaddingNode(A.ownerDocument,FCKConfig.EnterMode);FCKXHtmlEntities.Initialize();this._NbspEntity=(FCKConfig.ProcessHTMLEntities?'nbsp':'#160');var D=FCK.IsDirty();FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;if (FCKBrowserInfo.IsSafari) E=E.replace(/^<xhtml.*?>/,'<xhtml>');E=E.substr(7,E.length-15).Trim();E=E.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i<FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&');if (!D) FCK.ResetIsDirty();FCKDomTools.EnforcePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);return E;};FCKXHtml._AppendAttribute=function(A,B,C){try{if (C==undefined||C==null) C='';else if (C.replace){if (FCKConfig.ForceSimpleAmpersand) C=C.replace(/&/g,'___FCKAmp___');C=C.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity);};var D=this.XML.createAttribute(B);D.value=C;A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){var D=B.firstChild;while (D){this._AppendNode(A,D);D=D.nextSibling;};if (C&&B.tagName&&B.tagName.toLowerCase()!='pre'){FCKDomTools.TrimNode(A);if (FCKConfig.FillEmptyBlocks){var E=A.lastChild;if (E&&E.nodeType==1&&E.nodeName=='br') this._AppendEntity(A,this._NbspEntity);}};if (A.childNodes.length==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,this._NbspEntity);return A;};var F=A.nodeName;if (FCKListsLib.InlineChildReqElements[F]) return null;if (!FCKListsLib.EmptyElements[F]) A.appendChild(this.XML.createTextNode(''));};return A;};FCKXHtml._AppendNode=function(A,B){if (!B) return false;switch (B.nodeType){case 1:if (FCKBrowserInfo.IsGecko&&B.tagName.toLowerCase()=='br'&&B.parentNode.tagName.toLowerCase()=='pre'){var C='\r';if (B==B.parentNode.firstChild) C+='\r';return FCKXHtml._AppendNode(A,this.XML.createTextNode(C));};if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.nextSibling&&(B.hasAttribute('_moz_editor_bogus_node')||B.getAttribute('type')=='_moz')) return false;if (B.getAttribute('_fcktemp')) return false;var D=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&&B.scopeName!='HTML'&&B.scopeName!='FCK') D=B.scopeName.toLowerCase()+':'+D;}else{if (D.StartsWith('fck:')) D=D.Remove(0,4);};if (!FCKRegexLib.ElementName.test(D)) return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var E=this.XML.createElement(D);FCKXHtml._AppendAttributes(A,B,E,D);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var F=FCKXHtml.TagProcessors[D];if (F) E=F(E,B,A);else E=this._AppendChildNodes(E,B,Boolean(FCKListsLib.NonEmptyBlockElements[D]));if (!E) return false;A.appendChild(E);break;case 3:if (B.parentNode&&B.parentNode.nodeName.IEquals('pre')) return this._AppendTextNode(A,B.nodeValue);return this._AppendTextNode(A,B.nodeValue.ReplaceNewLineChars(' '));case 8:if (FCKBrowserInfo.IsIE&&!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) {/*Do nothing... probably this is a wrong format comment.*/};break;default:A.appendChild(this.XML.createComment("Element not supported - Type: "+B.nodeType+" Name: "+B.nodeName));break;};return true;};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.AddItem(A);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){var C=B.length>0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml.TagProcessors={a:function(A,B){if (B.innerHTML.Trim().length==0&&!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};A=FCKXHtml._AppendChildNodes(A,B,false);return A;},area:function(A,B){var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (!A.attributes.getNamedItem('coords')){var D=B.getAttribute('coords',2);if (D&&D!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',D);};if (!A.attributes.getNamedItem('shape')){var E=B.getAttribute('shape',2);if (E&&E.length>0) FCKXHtml._AppendAttribute(A,'shape',E.toLowerCase());}};return A;},body:function(A,B){A=FCKXHtml._AppendChildNodes(A,B,false);A.removeAttribute('spellcheck');return A;},iframe:function(A,B){var C=B.innerHTML;if (FCKBrowserInfo.IsGecko) C=FCKTools.HTMLDecode(C);C=C.replace(/\s_fcksavedurl="[^"]*"/g,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);return A;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&&D.nodeType==3) D=D.previousSibling;if (D&&D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};A=FCKXHtml._AppendChildNodes(A,B);return A;},pre:function (A,B){var C=B.firstChild;if (C&&C.nodeType==3) A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem('\r\n')));FCKXHtml._AppendChildNodes(A,B,true);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},span:function(A,B){if (B.innerHTML.length==0) return false;A=FCKXHtml._AppendChildNodes(A,B,false);return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');var C=B.innerHTML;if (FCKBrowserInfo.IsIE) C=C.replace(/^(\r\n|\n|\r)/,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol;
+FCKXHtml._GetMainXmlString=function(){return this.MainNode.xml;};FCKXHtml._AppendAttributes=function(A,B,C,D){var E=B.attributes;for (var n=0;n<E.length;n++){var F=E[n];if (F.specified){var G=F.nodeName.toLowerCase();var H;if (G.StartsWith('_fck')) continue;else if (G=='style'){var I=FCKTools.ProtectFormStyles(B);H=B.style.cssText.replace(FCKRegexLib.StyleProperties,FCKTools.ToLowerCase);FCKTools.RestoreFormStyles(B,I);}else if (G=='class'){H=F.nodeValue.replace(FCKRegexLib.FCK_Class,'');if (H.length==0) continue;}else if (G.indexOf('on')==0) H=F.nodeValue;else if (D=='body'&&G=='contenteditable') continue;else if (F.nodeValue===true) H=G;else{try{H=B.getAttribute(G,2);}catch (e) {}};this._AppendAttribute(C,G,H||F.nodeValue);}}};FCKXHtml.TagProcessors['div']=function(A,B){if (B.align.length>0) FCKXHtml._AppendAttribute(A,'align',B.align);A=FCKXHtml._AppendChildNodes(A,B,true);return A;};FCKXHtml.TagProcessors['font']=function(A,B){if (A.attributes.length==0) A=FCKXHtml.XML.createDocumentFragment();A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['form']=function(A,B){if (B.acceptCharset&&B.acceptCharset.length>0&&B.acceptCharset!='UNKNOWN') FCKXHtml._AppendAttribute(A,'accept-charset',B.acceptCharset);var C=B.attributes['name'];if (C&&C.value.length>0) FCKXHtml._AppendAttribute(A,'name',C.value);A=FCKXHtml._AppendChildNodes(A,B,true);return A;};FCKXHtml.TagProcessors['input']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);if (B.value&&!A.attributes.getNamedItem('value')) FCKXHtml._AppendAttribute(A,'value',B.value);if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text');return A;};FCKXHtml.TagProcessors['label']=function(A,B){if (B.htmlFor.length>0) FCKXHtml._AppendAttribute(A,'for',B.htmlFor);A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['map']=function(A,B){if (!A.attributes.getNamedItem('name')){var C=B.name;if (C) FCKXHtml._AppendAttribute(A,'name',C);};A=FCKXHtml._AppendChildNodes(A,B,true);return A;};FCKXHtml.TagProcessors['meta']=function(A,B){var C=A.attributes.getNamedItem('http-equiv');if (C==null||C.value.length==0){var D=B.outerHTML.match(FCKRegexLib.MetaHttpEquiv);if (D){D=D[1];FCKXHtml._AppendAttribute(A,'http-equiv',D);}};return A;};FCKXHtml.TagProcessors['option']=function(A,B){if (B.selected&&!A.attributes.getNamedItem('selected')) FCKXHtml._AppendAttribute(A,'selected','selected');A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['textarea']=FCKXHtml.TagProcessors['select']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);A=FCKXHtml._AppendChildNodes(A,B);return A;}
var FCKCodeFormatter={};FCKCodeFormatter.Init=function(){var A=this.Regex={};A.BlocksOpener=/\<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.BlocksCloser=/\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.NewLineTags=/\<(BR|HR)[^\>]*\>/gi;A.MainTags=/\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi;A.LineSplitter=/\s*\n+\s*/g;A.IncreaseIndent=/^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i;A.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i;A.FormatIndentatorRemove=new RegExp('^'+FCKConfig.FormatIndentator);A.ProtectedTags=/(<PRE[^>]*>)([\s\S]*?)(<\/PRE>)/gi;};FCKCodeFormatter._ProtectData=function(A,B,C,D){return B+'___FCKpd___'+FCKCodeFormatter.ProtectedData.AddItem(C)+D;};FCKCodeFormatter.Format=function(A){if (!this.Regex) this.Init();FCKCodeFormatter.ProtectedData=[];var B=A.replace(this.Regex.ProtectedTags,FCKCodeFormatter._ProtectData);B=B.replace(this.Regex.BlocksOpener,'\n$&');B=B.replace(this.Regex.BlocksCloser,'$&\n');B=B.replace(this.Regex.NewLineTags,'$&\n');B=B.replace(this.Regex.MainTags,'\n$&\n');var C='';var D=B.split(this.Regex.LineSplitter);B='';for (var i=0;i<D.length;i++){var E=D[i];if (E.length==0) continue;if (this.Regex.DecreaseIndent.test(E)) C=C.replace(this.Regex.FormatIndentatorRemove,'');B+=C+E+'\n';if (this.Regex.IncreaseIndent.test(E)) C+=FCKConfig.FormatIndentator;};for (var j=0;j<FCKCodeFormatter.ProtectedData.length;j++){var F=new RegExp('___FCKpd___'+j);B=B.replace(F,FCKCodeFormatter.ProtectedData[j].replace(/\$/g,'$$$$'));};return B.Trim();}
-var FCKUndo={};FCKUndo.SavedData=[];FCKUndo.CurrentIndex=-1;FCKUndo.TypesCount=FCKUndo.MaxTypes=25;FCKUndo.Typing=false;FCKUndo.SaveUndoStep=function(){if (FCK.EditMode!=0) return;FCKUndo.SavedData=FCKUndo.SavedData.slice(0,FCKUndo.CurrentIndex+1);var A=FCK.EditorDocument.body.innerHTML;if (FCKUndo.CurrentIndex>=0&&A==FCKUndo.SavedData[FCKUndo.CurrentIndex][0]) return;if (FCKUndo.CurrentIndex+1>=FCKConfig.MaxUndoLevels) FCKUndo.SavedData.shift();else FCKUndo.CurrentIndex++;var B;if (FCK.EditorDocument.selection.type=='Text') B=FCK.EditorDocument.selection.createRange().getBookmark();FCKUndo.SavedData[FCKUndo.CurrentIndex]=[A,B];FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.CheckUndoState=function(){return (FCKUndo.Typing||FCKUndo.CurrentIndex>0);};FCKUndo.CheckRedoState=function(){return (!FCKUndo.Typing&&FCKUndo.CurrentIndex<(FCKUndo.SavedData.length-1));};FCKUndo.Undo=function(){if (FCKUndo.CheckUndoState()){if (FCKUndo.CurrentIndex==(FCKUndo.SavedData.length-1)){FCKUndo.SaveUndoStep();};FCKUndo._ApplyUndoLevel(--FCKUndo.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo.Redo=function(){if (FCKUndo.CheckRedoState()){FCKUndo._ApplyUndoLevel(++FCKUndo.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo._ApplyUndoLevel=function(A){var B=FCKUndo.SavedData[A];if (!B) return;FCK.SetInnerHtml(B[0]);if (B[1]){var C=FCK.EditorDocument.selection.createRange();C.moveToBookmark(B[1]);C.select();};FCKUndo.TypesCount=0;FCKUndo.Typing=false;}
-var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=0;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);while(C.childNodes.length>0) C.removeChild(C.childNodes[0]);if (this.Mode==0){var E=this.IFrame=D.createElement('iframe');E.src='javascript:void(0)';E.frameBorder=0;E.width=E.height='100%';C.appendChild(E);if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){if (FCKBrowserInfo.IsGecko) A=A.replace(/(<body[^>]*>)\s*(<\/body>)/i,'$1'+GECKO_BOGUS+'$2');var F=A.match(FCKRegexLib.BodyContents);if (F){A=F[1]+' '+F[3];this._BodyHTML=F[2];}else this._BodyHTML=A;};this.Window=E.contentWindow;var G=this.Document=this.Window.document;G.open();G.write(A);G.close();if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}else{var H=this.Textarea=D.createElement('textarea');H.className='SourceField';H.dir='ltr';H.style.width=H.style.height='100%';H.style.border='none';C.appendChild(H);H.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.contentEditable=true;}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;this._BodyHTML=null;};A.designMode='on';try{A.execCommand('styleWithCSS',false,FCKConfig.GeckoUseSPAN);}catch (e){A.execCommand('useCSS',false,!FCKConfig.GeckoUseSPAN);};A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e) {}}};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE&&this.Document.hasFocus()) return;if (FCKBrowserInfo.IsSafari) this.IFrame.focus();else{this.Window.focus();}}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&&A.activeElement==this.Textarea) return;this.Textarea.focus();}}catch(e) {}};function FCKEditingArea_Cleanup(){this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}}
-var FCKKeystrokeHandler=function(A){this.Keystrokes={};this.CancelCtrlDefaults=(A!==false);};FCKKeystrokeHandler.prototype.AttachToElement=function(A){FCKTools.AddEventListenerEx(A,'keydown',_FCKKeystrokeHandler_OnKeyDown,this);if (FCKBrowserInfo.IsGecko10||FCKBrowserInfo.IsOpera||(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac)) FCKTools.AddEventListenerEx(A,'keypress',_FCKKeystrokeHandler_OnKeyPress,this);};FCKKeystrokeHandler.prototype.SetKeystrokes=function(){for (var i=0;i<arguments.length;i++){var A=arguments[i];if (typeof(A[0])=='object') this.SetKeystrokes.apply(this,A);else{if (A.length==1) delete this.Keystrokes[A[0]];else this.Keystrokes[A[0]]=A[1]===true?true:A;}}};function _FCKKeystrokeHandler_OnKeyDown(A,B){var C=A.keyCode||A.which;var D=0;if (A.ctrlKey||A.metaKey) D+=CTRL;if (A.shiftKey) D+=SHIFT;if (A.altKey) D+=ALT;var E=C+D;var F=B._CancelIt=false;var G=B.Keystrokes[E];if (G){if (G===true||!(B.OnKeystroke&&B.OnKeystroke.apply(B,G))) return true;F=true;};if (F||(B.CancelCtrlDefaults&&D==CTRL&&(C<33||C>40))){B._CancelIt=true;if (A.preventDefault) return A.preventDefault();A.returnValue=false;A.cancelBubble=true;return false;};return true;};function _FCKKeystrokeHandler_OnKeyPress(A,B){if (B._CancelIt){if (A.preventDefault) return A.preventDefault();return false;};return true;}
-var FCKListHandler={OutdentListItem:function(A){var B=A.parentNode;if (B.tagName.toUpperCase().Equals('UL','OL')){var C=FCKTools.GetElementDocument(A);var D=new FCKDocumentFragment(C);var E=D.RootNode;var F=false;var G=FCKDomTools.GetFirstChild(A,['UL','OL']);if (G){F=true;var H;while ((H=G.firstChild)) E.appendChild(G.removeChild(H));FCKDomTools.RemoveNode(G);};var I;var J=false;while ((I=A.nextSibling)){if (!F&&I.nodeType==1&&I.nodeName.toUpperCase()=='LI') J=F=true;E.appendChild(I.parentNode.removeChild(I));if (!J&&I.nodeType==1&&I.nodeName.toUpperCase().Equals('UL','OL')) FCKDomTools.RemoveNode(I,true);};var K=B.parentNode.tagName.toUpperCase();var L=(K=='LI');if (L||K.Equals('UL','OL')){if (F){var G=B.cloneNode(false);D.AppendTo(G);A.appendChild(G);}else if (L) D.InsertAfterNode(B.parentNode);else D.InsertAfterNode(B);if (L) FCKDomTools.InsertAfterNode(B.parentNode,B.removeChild(A));else FCKDomTools.InsertAfterNode(B,B.removeChild(A));}else{if (F){var N=B.cloneNode(false);D.AppendTo(N);FCKDomTools.InsertAfterNode(B,N);};var O=C.createElement('p');FCKDomTools.MoveChildren(B.removeChild(A),O);FCKDomTools.InsertAfterNode(B,O);A=O;};if (this.CheckEmptyList(B)) FCKDomTools.RemoveNode(B,true);};return A;},CheckEmptyList:function(A){return (FCKDomTools.GetFirstChild(A,'LI')==null);},CheckListHasContents:function(A){var B=A.firstChild;while (B){switch (B.nodeType){case 1:if (!B.nodeName.IEquals('UL','LI')) return true;break;case 3:if (B.nodeValue.Trim().length>0) return true;};B=B.nextSibling;};return false;}};
-var FCKElementPath=function(A){var B=null;var C=null;var D=[];var e=A;while (e){if (e.nodeType==1){if (!this.LastElement) this.LastElement=e;var E=e.nodeName.toLowerCase();if (!C&&!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (!C&&(/^(?:body|td|th|caption|form)$/).test(E)) C=e;D.push(e);if (E=='BODY') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;};
-var FCKDomRange=function(A){this.Window=A;};FCKDomRange.prototype={_UpdateElementInfo:function(){if (!this._Range) this.Release(true);else{var A=this._Range.startContainer;var B=this._Range.endContainer;var C=new FCKElementPath(A);this.StartContainer=C.LastElement;this.StartBlock=C.Block;this.StartBlockLimit=C.BlockLimit;if (A!=B) C=new FCKElementPath(B);this.EndContainer=C.LastElement;this.EndBlock=C.Block;this.EndBlockLimit=C.BlockLimit;}},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateElementInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;}},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;},Collapse:function(A){if (this._Range) this._Range.collapse(A);this._UpdateElementInfo();},Clone:function(){var A=FCKTools.CloneObject(this);if (this._Range) A._Range=this._Range.cloneRange();return A;},MoveToNodeContents:function(A){if (!this._Range) this._Range=this.CreateRange();this._Range.selectNodeContents(A);this._UpdateElementInfo();},MoveToElementStart:function(A){this.SetStart(A,1);this.SetEnd(A,1);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(A){if (this.CheckIsCollapsed()) return true;var B=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(B);FCKDomTools.TrimNode(B,A);return (B.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this.Clone();A.Collapse(true);A.SetStart(A.StartBlock||A.StartBlockLimit,1);var B=A.CheckIsEmpty();A.Release();return B;},CheckEndOfBlock:function(A){var B=this.Clone();B.Collapse(false);B.SetEnd(B.EndBlock||B.EndBlockLimit,2);var C=B.CheckIsEmpty(true);B.Release();if (A) this.Select();return C;},CreateBookmark:function(){var A={StartId:'fck_dom_range_start_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000),EndId:'fck_dom_range_end_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000)};var B=this.Window.document;var C;var D;if (!this.CheckIsCollapsed()){C=B.createElement('span');C.id=A.EndId;C.innerHTML=' ';D=this.Clone();D.Collapse(false);D.InsertNode(C);};C=B.createElement('span');C.id=A.StartId;C.innerHTML=' ';D=this.Clone();D.Collapse(true);D.InsertNode(C);return A;},MoveToBookmark:function(A,B){var C=this.Window.document;var D=C.getElementById(A.StartId);var E=C.getElementById(A.EndId);this.SetStart(D,3);if (!B) FCKDomTools.RemoveNode(D);if (E){this.SetEnd(E,3);if (!B) FCKDomTools.RemoveNode(E);}else this.Collapse(true);},SetStart:function(A,B){var C=this._Range;if (!C) C=this._Range=this.CreateRange();switch(B){case 1:C.setStart(A,0);break;case 2:C.setStart(A,A.childNodes.length);break;case 3:C.setStartBefore(A);break;case 4:C.setStartAfter(A);};this._UpdateElementInfo();},SetEnd:function(A,B){var C=this._Range;if (!C) C=this._Range=this.CreateRange();switch(B){case 1:C.setEnd(A,0);break;case 2:C.setEnd(A,A.childNodes.length);break;case 3:C.setEndBefore(A);break;case 4:C.setEndAfter(A);};this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'block_contents':if (this.StartBlock) this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){if (!(B=B.childNodes[this._Range.startOffset])) B=B.firstChild;};if (!B) return;while (true){oSibling=B.previousSibling;if (!oSibling){if (B.parentNode!=this.StartBlockLimit) B=B.parentNode;else break;}else if (oSibling.nodeType!=1||!(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test(oSibling.nodeName.toUpperCase())){B=oSibling;}else break;};this._Range.setStartBefore(B);};if (this.EndBlock) this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;if (!B) return;while (true){oSibling=B.nextSibling;if (!oSibling){if (B.parentNode!=this.EndBlockLimit) B=B.parentNode;else break;}else if (oSibling.nodeType!=1||!(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test(oSibling.nodeName.toUpperCase())){B=oSibling;}else break;};this._Range.setEndAfter(B);};this._UpdateElementInfo();}},Release:function(A){if (!A) this.Window=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;}};
-FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var A=this.Window.document.selection;if (A.type!='Control'){B=this._GetSelectionMarkerTag(true);this._Range.setStart(B.parentNode,FCKDomTools.GetIndexOf(B));B.parentNode.removeChild(B);var B=this._GetSelectionMarkerTag(false);this._Range.setEnd(B.parentNode,FCKDomTools.GetIndexOf(B));B.parentNode.removeChild(B);this._UpdateElementInfo();}else{var C=A.createRange().item(0);if (C){this._Range.setStartBefore(C);this._Range.setEndAfter(C);this._UpdateElementInfo();}}};FCKDomRange.prototype.Select=function(){if (this._Range){var A=this.CheckIsCollapsed();var B=this._GetRangeMarkerTag(true);if (!A) var C=this._GetRangeMarkerTag(false);var D=this.Window.document.body.createTextRange();D.moveToElementText(B);D.moveStart('character',1);if (!A){var E=this.Window.document.body.createTextRange();E.moveToElementText(C);D.setEndPoint('EndToEnd',E);D.moveEnd('character',-1);};this._Range.setStartBefore(B);B.parentNode.removeChild(B);if (A){try{D.pasteHTML(' ');D.moveStart('character',-1);}catch (e){};D.select();D.pasteHTML('');}else{this._Range.setEndBefore(C);C.parentNode.removeChild(C);D.select();}}};FCKDomRange.prototype._GetSelectionMarkerTag=function(A){var B=this.Window.document.selection.createRange();B.collapse(A===true);var C='fck_dom_range_temp_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000);B.pasteHTML('<span id="'+C+'"></span>');return this.Window.document.getElementById(C);};FCKDomRange.prototype._GetRangeMarkerTag=function(A){var B=this._Range;if (!A){B=B.cloneRange();B.collapse(A===true);};var C=this.Window.document.createElement('span');C.innerHTML=' ';B.insertNode(C);return C;}
+var FCKUndo={};FCKUndo.SavedData=[];FCKUndo.CurrentIndex=-1;FCKUndo.TypesCount=0;FCKUndo.Changed=false;FCKUndo.MaxTypes=25;FCKUndo.Typing=false;FCKUndo.SaveLocked=false;FCKUndo._GetBookmark=function(){var A=new FCKDomRange(FCK.EditorWindow);try{A.MoveToSelection();}catch (e){return null;};if (FCKBrowserInfo.IsIE){var B=A.CreateBookmark();var C=FCK.EditorDocument.body.innerHTML;A.MoveToBookmark(B);return [B,C];};return A.CreateBookmark2();};FCKUndo._SelectBookmark=function(A){if (!A) return;var B=new FCKDomRange(FCK.EditorWindow);if (A instanceof Object){if (FCKBrowserInfo.IsIE) B.MoveToBookmark(A[0]);else B.MoveToBookmark2(A);try{B.Select();}catch (e){B.MoveToPosition(FCK.EditorDocument.body,4);B.Select();}}};FCKUndo._CompareCursors=function(A,B){for (var i=0;i<Math.min(A.length,B.length);i++){if (A[i]<B[i]) return-1;else if (A[i]>B[i]) return 1;};if (A.length<B.length) return-1;else if (A.length>B.length) return 1;return 0;};FCKUndo._CheckIsBookmarksEqual=function(A,B){if (!(A&&B)) return false;if (FCKBrowserInfo.IsIE){var C=A[1].search(A[0].StartId);var D=B[1].search(B[0].StartId);var E=A[1].search(A[0].EndId);var F=B[1].search(B[0].EndId);return C==D&&E==F;}else{return this._CompareCursors(A.Start,B.Start)==0&&this._CompareCursors(A.End,B.End)==0;}};FCKUndo.SaveUndoStep=function(){if (FCK.EditMode!=0||this.SaveLocked) return;if (this.SavedData.length) this.Changed=true;var A=FCK.EditorDocument.body.innerHTML;var B=this._GetBookmark();this.SavedData=this.SavedData.slice(0,this.CurrentIndex+1);if (this.CurrentIndex>0&&A==this.SavedData[this.CurrentIndex][0]&&this._CheckIsBookmarksEqual(B,this.SavedData[this.CurrentIndex][1])) return;else if (this.CurrentIndex==0&&this.SavedData.length&&A==this.SavedData[0][0]){this.SavedData[0][1]=B;return;};if (this.CurrentIndex+1>=FCKConfig.MaxUndoLevels) this.SavedData.shift();else this.CurrentIndex++;this.SavedData[this.CurrentIndex]=[A,B];FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.CheckUndoState=function(){return (this.Changed||this.CurrentIndex>0);};FCKUndo.CheckRedoState=function(){return (this.CurrentIndex<(this.SavedData.length-1));};FCKUndo.Undo=function(){if (this.CheckUndoState()){if (this.CurrentIndex==(this.SavedData.length-1)){this.SaveUndoStep();};this._ApplyUndoLevel(--this.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo.Redo=function(){if (this.CheckRedoState()){this._ApplyUndoLevel(++this.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo._ApplyUndoLevel=function(A){var B=this.SavedData[A];if (!B) return;if (FCKBrowserInfo.IsIE){if (B[1]&&B[1][1]) FCK.SetInnerHtml(B[1][1]);else FCK.SetInnerHtml(B[0]);}else FCK.EditorDocument.body.innerHTML=B[0];this._SelectBookmark(B[1]);this.TypesCount=0;this.Changed=false;this.Typing=false;};
+var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=0;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);var E;while((E=C.firstChild)){if (E.contentWindow) E.contentWindow.document.body.innerHTML='';C.removeChild(E);};if (this.Mode==0){var F=this.IFrame=D.createElement('iframe');if (!FCKBrowserInfo.IsGecko) F.src='javascript:void(0)';F.frameBorder=0;F.width=F.height='100%';C.appendChild(F);if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){var G=A.match(FCKRegexLib.BeforeBody);var H=A.match(FCKRegexLib.AfterBody);if (G&&H){var I=A.substr(G[1].length,A.length-G[1].length-H[1].length);A=G[1]+' '+H[1];if (FCKBrowserInfo.IsGecko&&(I.length==0||FCKRegexLib.EmptyParagraph.test(I))) I='<br type="_moz">';this._BodyHTML=I;}else this._BodyHTML=A;};this.Window=F.contentWindow;var J=this.Document=this.Window.document;J.open();J.write(A);J.close();if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}else{var K=this.Textarea=D.createElement('textarea');K.className='SourceField';K.dir='ltr';FCKDomTools.SetElementStyles(K,{width:'100%',height:'100%',border:'none',resize:'none',outline:'none'});C.appendChild(K);K.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.disabled=true;A.body.contentEditable=true;A.body.removeAttribute("disabled");}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;this._BodyHTML=null;};A.designMode='on';try{A.execCommand('styleWithCSS',false,FCKConfig.GeckoUseSPAN);}catch (e){A.execCommand('useCSS',false,!FCKConfig.GeckoUseSPAN);};A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e){FCKTools.AddEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);}}};function FCKEditingArea_Document_AttributeNodeModified(A){var B=A.currentTarget.contentWindow._FCKEditingArea;if (B._timer) window.clearTimeout(B._timer);B._timer=FCKTools.SetTimeout(FCKEditingArea_MakeEditableByMutation,1000,B);};function FCKEditingArea_MakeEditableByMutation(){delete this._timer;FCKTools.RemoveEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);this.MakeEditable();};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE&&this.Document.hasFocus()) this._EnsureFocusIE();this.Window.focus();if (FCKBrowserInfo.IsIE) this._EnsureFocusIE();}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&&A.activeElement==this.Textarea) return;this.Textarea.focus();}}catch(e) {}};FCKEditingArea.prototype._EnsureFocusIE=function(){this.Document.body.setActive();var A=this.Document.selection.createRange();var B=A.parentElement();var C=B.nodeName.toLowerCase();if (B.childNodes.length>0||!(FCKListsLib.BlockElements[C]||FCKListsLib.NonEmptyBlockElements[C])){return;};A.moveEnd("character",1);A.select();if (A.boundingWidth>0){A.moveEnd("character",-1);A.select();}};function FCKEditingArea_Cleanup(){if (this.Document) this.Document.body.innerHTML="";this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}};
+var FCKKeystrokeHandler=function(A){this.Keystrokes={};this.CancelCtrlDefaults=(A!==false);};FCKKeystrokeHandler.prototype.AttachToElement=function(A){FCKTools.AddEventListenerEx(A,'keydown',_FCKKeystrokeHandler_OnKeyDown,this);if (FCKBrowserInfo.IsGecko10||FCKBrowserInfo.IsOpera||(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac)) FCKTools.AddEventListenerEx(A,'keypress',_FCKKeystrokeHandler_OnKeyPress,this);};FCKKeystrokeHandler.prototype.SetKeystrokes=function(){for (var i=0;i<arguments.length;i++){var A=arguments[i];if (!A) continue;if (typeof(A[0])=='object') this.SetKeystrokes.apply(this,A);else{if (A.length==1) delete this.Keystrokes[A[0]];else this.Keystrokes[A[0]]=A[1]===true?true:A;}}};function _FCKKeystrokeHandler_OnKeyDown(A,B){var C=A.keyCode||A.which;var D=0;if (A.ctrlKey||A.metaKey) D+=CTRL;if (A.shiftKey) D+=SHIFT;if (A.altKey) D+=ALT;var E=C+D;var F=B._CancelIt=false;var G=B.Keystrokes[E];if (G){if (G===true||!(B.OnKeystroke&&B.OnKeystroke.apply(B,G))) return true;F=true;};if (F||(B.CancelCtrlDefaults&&D==CTRL&&(C<33||C>40))){B._CancelIt=true;if (A.preventDefault) return A.preventDefault();A.returnValue=false;A.cancelBubble=true;return false;};return true;};function _FCKKeystrokeHandler_OnKeyPress(A,B){if (B._CancelIt){if (A.preventDefault) return A.preventDefault();return false;};return true;};
+FCK.DTD=(function(){X=FCKTools.Merge;var A,L,J,M,N,O,D,H,P,K,Q,F,G,C,B,E,I;A={isindex:1,fieldset:1};B={input:1,button:1,select:1,textarea:1,label:1};C=X({a:1},B);D=X({iframe:1},C);E={hr:1,ul:1,menu:1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1};F={ins:1,del:1,script:1};G=X({b:1,acronym:1,bdo:1,'var':1,'#':1,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1},F);H=X({sub:1,img:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1},G);I=X({p:1},H);J=X({iframe:1},H,B);K={img:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1};L=X({a:1},J);M={tr:1};N={'#':1};O=X({param:1},K);P=X({form:1},A,D,E,I);Q={li:1};return {col:{},tr:{td:1,th:1},img:{},colgroup:{col:1},noscript:P,td:P,br:{},th:P,center:P,kbd:L,button:X(I,E),basefont:{},h5:L,h4:L,samp:L,h6:L,ol:Q,h1:L,h3:L,option:N,h2:L,form:X(A,D,E,I),select:{optgroup:1,option:1},font:J,ins:P,menu:Q,abbr:L,label:L,table:{thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1},code:L,script:N,tfoot:M,cite:L,li:P,input:{},iframe:P,strong:J,textarea:N,noframes:P,big:J,small:J,span:J,hr:{},dt:L,sub:J,optgroup:{option:1},param:{},bdo:L,'var':J,div:P,object:O,sup:J,dd:P,strike:J,area:{},dir:Q,map:X({area:1,form:1,p:1},A,F,E),applet:O,dl:{dt:1,dd:1},del:P,isindex:{},fieldset:X({legend:1},K),thead:M,ul:Q,acronym:L,b:J,a:J,blockquote:P,caption:L,i:J,u:J,tbody:M,s:L,address:X(D,I),tt:J,legend:L,q:L,pre:X(G,C),p:L,em:J,dfn:L};})();
+var FCKStyle=function(A){this.Element=(A.Element||'span').toLowerCase();this._StyleDesc=A;};FCKStyle.prototype={GetType:function(){var A=this.GetType_$;if (A!=undefined) return A;var B=this.Element;if (B=='#'||FCKListsLib.StyleBlockElements[B]) A=0;else if (FCKListsLib.StyleObjectElements[B]) A=2;else A=1;return (this.GetType_$=A);},ApplyToSelection:function(A){var B=new FCKDomRange(A);B.MoveToSelection();this.ApplyToRange(B,true);},ApplyToRange:function(A,B){switch (this.GetType()){case 0:this.ApplyToRange=this._ApplyBlockStyle;break;case 1:this.ApplyToRange=this._ApplyInlineStyle;break;default:return;};this.ApplyToRange(A,B);},ApplyToObject:function(A){if (!A) return;this.BuildElement(null,A);},RemoveFromSelection:function(A){var B=new FCKDomRange(A);B.MoveToSelection();this.RemoveFromRange(B,true);},RemoveFromRange:function(A,B){var C;var D=this._GetAttribsForComparison();var E=this._GetOverridesForComparison();if (A.CheckIsCollapsed()){var C=A.CreateBookmark(true);var G=A.GetBookmarkNode(C,true);var H=new FCKElementPath(G.parentNode);var I=[];var J=!FCKDomTools.GetNextSibling(G);var K=J||!FCKDomTools.GetPreviousSibling(G);var L;var M=-1;for (var i=0;i<H.Elements.length;i++){var N=H.Elements[i];if (this.CheckElementRemovable(N)){if (K&&!FCKDomTools.CheckIsEmptyElement(N,function(el){return (el!=G);})){L=N;M=I.length-1;}else{var O=N.nodeName.toLowerCase();if (O==this.Element){for (var P in D){if (FCKDomTools.HasAttribute(N,P)){switch (P){case 'style':this._RemoveStylesFromElement(N);break;case 'class':if (FCKDomTools.GetAttributeValue(N,P)!=this.GetFinalAttributeValue(P)) continue;default:FCKDomTools.RemoveAttribute(N,P);}}}};this._RemoveOverrides(N,E[O]);this._RemoveNoAttribElement(N);}}else if (K) I.push(N);K=K&&((J&&!FCKDomTools.GetNextSibling(N))||(!J&&!FCKDomTools.GetPreviousSibling(N)));if (L&&(!K||(i==H.Elements.length-1))){var Q=FCKDomTools.RemoveNode(G);for (var j=0;j<=M;j++){var R=FCKDomTools.CloneElement(I[j]);R.appendChild(Q);Q=R;};if (J) FCKDomTools.InsertAfterNode(L,Q);else L.parentNode.insertBefore(Q,L);K=false;L=null;}};if (B) A.SelectBookmark(C);return;};A.Expand('inline_elements');var C=A.CreateBookmark(true);var T=A.GetBookmarkNode(C,true);var U=A.GetBookmarkNode(C,false);A.Release(true);var H=new FCKElementPath(T);var X=H.Elements;var N;for (var i=1;i<X.length;i++){N=X[i];if (N==H.Block||N==H.BlockLimit) break;if (this.CheckElementRemovable(N)) FCKDomTools.BreakParent(T,N,A);};H=new FCKElementPath(U);X=H.Elements;for (var i=1;i<X.length;i++){N=X[i];if (N==H.Block||N==H.BlockLimit) break;b=N.nodeName.toLowerCase();if (this.CheckElementRemovable(N)) FCKDomTools.BreakParent(U,N,A);};var Z=FCKDomTools.GetNextSourceNode(T,true);while (Z){var a=FCKDomTools.GetNextSourceNode(Z);if (Z.nodeType==1){var b=Z.nodeName.toLowerCase();var c=(b==this.Element);if (c){for (var P in D){if (FCKDomTools.HasAttribute(Z,P)){switch (P){case 'style':this._RemoveStylesFromElement(Z);break;case 'class':if (FCKDomTools.GetAttributeValue(Z,P)!=this.GetFinalAttributeValue(P)) continue;default:FCKDomTools.RemoveAttribute(Z,P);}}}}else c=!!E[b];if (c){this._RemoveOverrides(Z,E[b]);this._RemoveNoAttribElement(Z);}};if (a==U) break;Z=a;};this._FixBookmarkStart(T);if (B) A.SelectBookmark(C);},CheckElementRemovable:function(A,B){if (!A) return false;var C=A.nodeName.toLowerCase();if (C==this.Element){if (!B&&!FCKDomTools.HasAttributes(A)) return true;var D=this._GetAttribsForComparison();var E=(D._length==0);for (var F in D){if (F=='_length') continue;if (this._CompareAttributeValues(F,FCKDomTools.GetAttributeValue(A,F),(this.GetFinalAttributeValue(F)||''))){E=true;if (!B) break;}else{E=false;if (B) return false;}};if (E) return true;};var G=this._GetOverridesForComparison()[C];if (G){if (!(D=G.Attributes)) return true;for (var i=0;i<D.length;i++){var H=D[i][0];if (FCKDomTools.HasAttribute(A,H)){var I=D[i][1];if (I==null||(typeof I=='string'&&FCKDomTools.GetAttributeValue(A,H)==I)||I.test(FCKDomTools.GetAttributeValue(A,H))) return true;}}};return false;},CheckActive:function(A){switch (this.GetType()){case 0:return this.CheckElementRemovable(A.Block||A.BlockLimit);case 1:var B=A.Elements;for (var i=0;i<B.length;i++){var C=B[i];if (C==A.Block||C==A.BlockLimit) continue;if (this.CheckElementRemovable(C,true)) return true;}};return false;},RemoveFromElement:function(A){var B=this._GetAttribsForComparison();var C=this._GetOverridesForComparison();var D=A.getElementsByTagName(this.Element);for (var i=D.length-1;i>=0;i--){var E=D[i];for (var F in B){if (FCKDomTools.HasAttribute(E,F)){switch (F){case 'style':this._RemoveStylesFromElement(E);break;case 'class':if (FCKDomTools.GetAttributeValue(E,F)!=this.GetFinalAttributeValue(F)) continue;default:FCKDomTools.RemoveAttribute(E,F);}}};this._RemoveOverrides(E,C[this.Element]);this._RemoveNoAttribElement(E);};for (var G in C){if (G!=this.Element){D=A.getElementsByTagName(G);for (var i=D.length-1;i>=0;i--){var E=D[i];this._RemoveOverrides(E,C[G]);this._RemoveNoAttribElement(E);}}}},_RemoveStylesFromElement:function(A){var B=A.style.cssText;var C=this.GetFinalStyleValue();if (B.length>0&&C.length==0) return;C='(^|;)\\s*('+C.replace(/\s*([^ ]+):.*?(;|$)/g,'$1|').replace(/\|$/,'')+'):[^;]+';var D=new RegExp(C,'gi');B=B.replace(D,'').Trim();if (B.length==0||B==';') FCKDomTools.RemoveAttribute(A,'style');else A.style.cssText=B.replace(D,'');},_RemoveOverrides:function(A,B){var C=B&&B.Attributes;if (C){for (var i=0;i<C.length;i++){var D=C[i][0];if (FCKDomTools.HasAttribute(A,D)){var E=C[i][1];if (E==null||(E.test&&E.test(FCKDomTools.GetAttributeValue(A,D)))||(typeof E=='string'&&FCKDomTools.GetAttributeValue(A,D)==E)) FCKDomTools.RemoveAttribute(A,D);}}}},_RemoveNoAttribElement:function(A){if (!FCKDomTools.HasAttributes(A)){var B=A.firstChild;var C=A.lastChild;FCKDomTools.RemoveNode(A,true);this._MergeSiblings(B);if (B!=C) this._MergeSiblings(C);}},BuildElement:function(A,B){var C=B||A.createElement(this.Element);var D=this._StyleDesc.Attributes;var E;if (D){for (var F in D){E=this.GetFinalAttributeValue(F);if (F.toLowerCase()=='class') C.className=E;else C.setAttribute(F,E);}};if (this._GetStyleText().length>0) C.style.cssText=this.GetFinalStyleValue();return C;},_CompareAttributeValues:function(A,B,C){if (A=='style'&&B&&C){B=B.replace(/;$/,'').toLowerCase();C=C.replace(/;$/,'').toLowerCase();};return (B==C)},GetFinalAttributeValue:function(A){var B=this._StyleDesc.Attributes;var B=B?B[A]:null;if (!B&&A=='style') return this.GetFinalStyleValue();if (B&&this._Variables) B=B.Replace(FCKRegexLib.StyleVariableAttName,this._GetVariableReplace,this);return B;},GetFinalStyleValue:function(){var A=this._GetStyleText();if (A.length>0&&this._Variables){A=A.Replace(FCKRegexLib.StyleVariableAttName,this._GetVariableReplace,this);A=FCKTools.NormalizeCssText(A);};return A;},_GetVariableReplace:function(){return this._Variables[arguments[2]]||arguments[0];},SetVariable:function(A,B){var C=this._Variables;if (!C) C=this._Variables={};this._Variables[A]=B;},_ApplyBlockStyle:function(A,B){var C;if (B) C=A.CreateBookmark(true);var D=new FCKDomRangeIterator(A);D.EnforceRealBlocks=true;var E;while((E=D.GetNextParagraph())){var F=E.parentNode.insertBefore(this.BuildElement(A.Window.document),E);FCKDomTools.MoveChildren(E,F);FCKDomTools.RemoveNode(E);};if (B) A.SelectBookmark(C);},_ApplyInlineStyle:function(A,B){var C=A.Window.document;if (A.CheckIsCollapsed()){var D=this.BuildElement(C);A.InsertNode(D);A.MoveToPosition(D,2);A.Select();return;};var E=this.Element;var F=FCK.DTD[E]||FCK.DTD.span;var G=this._GetAttribsForComparison();var H;A.Expand('inline_elements');var I=A.CreateBookmark(true);var J=A.GetBookmarkNode(I,true);var K=A.GetBookmarkNode(I,false);A.Release(true);var L=FCKDomTools.GetNextSourceNode(J,true);while (L){var M=false;var N=L.nodeType;var O=N==1?L.nodeName.toLowerCase():null;if (!O||F[O]){if ((FCK.DTD[L.parentNode.nodeName.toLowerCase()]||FCK.DTD.span)[E]||!FCK.DTD[E]){if (!A.CheckHasRange()) A.SetStart(L,3);if (N!=1||L.childNodes.length==0){var P=L;var Q=P.parentNode;while (P==Q.lastChild&&F[Q.nodeName.toLowerCase()]){P=Q;};A.SetEnd(P,4);if (P==P.parentNode.lastChild&&!F[P.parentNode.nodeName.toLowerCase()]) M=true;}else{A.SetEnd(L,3);}}else M=true;}else M=true;L=FCKDomTools.GetNextSourceNode(L);if (L==K){L=null;M=true;};if (M&&A.CheckHasRange()&&!A.CheckIsCollapsed()){H=this.BuildElement(C);A.ExtractContents().AppendTo(H);if (H.innerHTML.RTrim().length>0){A.InsertNode(H);this.RemoveFromElement(H);this._MergeSiblings(H,this._GetAttribsForComparison());if (!FCKBrowserInfo.IsIE) H.normalize();};A.Release(true);}};this._FixBookmarkStart(J);if (B) A.SelectBookmark(I);},_FixBookmarkStart:function(A){var B;while ((B=A.nextSibling)){if (B.nodeType==1&&FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){if (!B.firstChild) FCKDomTools.RemoveNode(B);else FCKDomTools.MoveNode(A,B,true);continue;};if (B.nodeType==3&&B.length==0){FCKDomTools.RemoveNode(B);continue;};break;}},_MergeSiblings:function(A,B){if (!A||A.nodeType!=1||!FCKListsLib.InlineNonEmptyElements[A.nodeName.toLowerCase()]) return;this._MergeNextSibling(A,B);this._MergePreviousSibling(A,B);},_MergeNextSibling:function(A,B){var C=A.nextSibling;var D=(C&&C.nodeType==1&&C.getAttribute('_fck_bookmark'));if (D) C=C.nextSibling;if (C&&C.nodeType==1&&C.nodeName==A.nodeName){if (!B) B=this._CreateElementAttribsForComparison(A);if (this._CheckAttributesMatch(C,B)){var E=A.lastChild;if (D) FCKDomTools.MoveNode(A.nextSibling,A);FCKDomTools.MoveChildren(C,A);FCKDomTools.RemoveNode(C);if (E) this._MergeNextSibling(E);}}},_MergePreviousSibling:function(A,B){var C=A.previousSibling;var D=(C&&C.nodeType==1&&C.getAttribute('_fck_bookmark'));if (D) C=C.previousSibling;if (C&&C.nodeType==1&&C.nodeName==A.nodeName){if (!B) B=this._CreateElementAttribsForComparison(A);if (this._CheckAttributesMatch(C,B)){var E=A.firstChild;if (D) FCKDomTools.MoveNode(A.previousSibling,A,true);FCKDomTools.MoveChildren(C,A,true);FCKDomTools.RemoveNode(C);if (E) this._MergePreviousSibling(E);}}},_GetStyleText:function(){var A=this._StyleDesc.Styles;var B=(this._StyleDesc.Attributes?this._StyleDesc.Attributes['style']||'':'');if (B.length>0) B+=';';for (var C in A) B+=C+':'+A[C]+';';if (B.length>0&&!(/#\(/.test(B))){B=FCKTools.NormalizeCssText(B);};return (this._GetStyleText=function() { return B;})();},_GetAttribsForComparison:function(){var A=this._GetAttribsForComparison_$;if (A) return A;A={};var B=this._StyleDesc.Attributes;if (B){for (var C in B){A[C.toLowerCase()]=B[C].toLowerCase();}};if (this._GetStyleText().length>0){A['style']=this._GetStyleText().toLowerCase();};FCKTools.AppendLengthProperty(A,'_length');return (this._GetAttribsForComparison_$=A);},_GetOverridesForComparison:function(){var A=this._GetOverridesForComparison_$;if (A) return A;A={};var B=this._StyleDesc.Overrides;if (B){if (!FCKTools.IsArray(B)) B=[B];for (var i=0;i<B.length;i++){var C=B[i];var D;var E;var F;if (typeof C=='string') D=C.toLowerCase();else{D=C.Element?C.Element.toLowerCase():this.Element;F=C.Attributes;};E=A[D]||(A[D]={});if (F){var G=(E.Attributes=E.Attributes||[]);for (var H in F){G.push([H.toLowerCase(),F[H]]);}}}};return (this._GetOverridesForComparison_$=A);},_CreateElementAttribsForComparison:function(A){var B={};var C=0;for (var i=0;i<A.attributes.length;i++){var D=A.attributes[i];if (D.specified){B[D.nodeName.toLowerCase()]=FCKDomTools.GetAttributeValue(A,D).toLowerCase();C++;}};B._length=C;return B;},_CheckAttributesMatch:function(A,B){var C=A.attributes;var D=0;for (var i=0;i<C.length;i++){var E=C[i];if (E.specified){var F=E.nodeName.toLowerCase();var G=B[F];if (!G) break;if (G!=FCKDomTools.GetAttributeValue(A,E).toLowerCase()) break;D++;}};return (D==B._length);}};
+var FCKStyles=FCK.Styles={_Callbacks:{},_ObjectStyles:{},ApplyStyle:function(A){if (typeof A=='string') A=this.GetStyles()[A];if (A){if (A.GetType()==2) A.ApplyToObject(FCKSelection.GetSelectedElement());else A.ApplyToSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},RemoveStyle:function(A){if (typeof A=='string') A=this.GetStyles()[A];if (A){A.RemoveFromSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},AttachStyleStateChange:function(A,B,C){var D=this._Callbacks[A];if (!D) D=this._Callbacks[A]=[];D.push([B,C]);},CheckSelectionChanges:function(){var A=FCKSelection.GetBoundaryParentElement(true);if (!A) return;var B=new FCKElementPath(A);var C=this.GetStyles();for (var D in C){var E=this._Callbacks[D];if (E){var F=C[D];var G=F.CheckActive(B);if (F._LastState!=G){F._LastState=G;for (var i=0;i<E.length;i++){var H=E[i][0];var I=E[i][1];H.call(I||window,D,G);}}}}},CheckStyleInSelection:function(A){return false;},_GetRemoveFormatTagsRegex:function (){var A=new RegExp('^(?:'+FCKConfig.RemoveFormatTags.replace(/,/g,'|')+')$','i');return (this._GetRemoveFormatTagsRegex=function(){return A;})&&A;},RemoveAll:function(){var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();if (A.CheckIsCollapsed()) return;A.Expand('inline_elements');var B=A.CreateBookmark(true);var C=A.GetBookmarkNode(B,true);var D=A.GetBookmarkNode(B,false);A.Release(true);var E=this._GetRemoveFormatTagsRegex();var F=new FCKElementPath(C);var G=F.Elements;var H;for (var i=1;i<G.length;i++){H=G[i];if (H==F.Block||H==F.BlockLimit) break;if (E.test(H.nodeName)) FCKDomTools.BreakParent(C,H,A);};F=new FCKElementPath(D);G=F.Elements;for (var i=1;i<G.length;i++){H=G[i];if (H==F.Block||H==F.BlockLimit) break;elementName=H.nodeName.toLowerCase();if (E.test(H.nodeName)) FCKDomTools.BreakParent(D,H,A);};var I=FCKDomTools.GetNextSourceNode(C,true,1);while (I){if (I==D) break;var J=FCKDomTools.GetNextSourceNode(I,false,1);if (E.test(I.nodeName)) FCKDomTools.RemoveNode(I,true);I=J;};A.SelectBookmark(B);FCK.Events.FireEvent('OnSelectionChange');},GetStyle:function(A){return this.GetStyles()[A];},GetStyles:function(){var A=this._GetStyles;if (!A){A=this._GetStyles=FCKTools.Merge(this._LoadStylesCore(),this._LoadStylesCustom(),this._LoadStylesXml());};return A;},CheckHasObjectStyle:function(A){return!!this._ObjectStyles[A];},_LoadStylesCore:function(){var A={};var B=FCKConfig.CoreStyles;for (var C in B){var D=A['_FCK_'+C]=new FCKStyle(B[C]);D.IsCore=true;};return A;},_LoadStylesCustom:function(){var A={};var B=FCKConfig.CustomStyles;if (B){for (var C in B){var D=A[C]=new FCKStyle(B[C]);D.Name=C;}};return A;},_LoadStylesXml:function(){var A={};var B=FCKConfig.StylesXmlPath;if (!B||B.length==0) return A;var C=new FCKXml();C.LoadUrl(B);var D=FCKXml.TransformToObject(C.SelectSingleNode('Styles'));var E=D.$Style;if (!E) return A;for (var i=0;i<E.length;i++){var F=E[i];var G=(F.element||'').toLowerCase();if (G.length==0) throw('The element name is required. Error loading "'+B+'"');var H={Element:G,Attributes:{},Styles:{},Overrides:[]};var I=F.$Attribute||[];for (var j=0;j<I.length;j++){H.Attributes[I[j].name]=I[j].value;};var J=F.$Style||[];for (j=0;j<J.length;j++){H.Styles[J[j].name]=J[j].value;};var K=F.$Override;if (K){for (j=0;j<K.length;j++){var L=K[j];var M={Element:L.element};var N=L.$Attribute;if (N){M.Attributes={};for (var k=0;k<N.length;k++){var O=N[k].value||null;if (O){var P=O&&FCKRegexLib.RegExp.exec(O);if (P) O=new RegExp(P[1],P[2]||'');};M.Attributes[N[k].name]=O;}};H.Overrides.push(M);}};var Q=new FCKStyle(H);Q.Name=F.name||G;if (Q.GetType()==2) this._ObjectStyles[G]=true;A[Q.Name]=Q;};return A;}};
+var FCKListHandler={OutdentListItem:function(A){var B=A.parentNode;if (B.tagName.toUpperCase().Equals('UL','OL')){var C=FCKTools.GetElementDocument(A);var D=new FCKDocumentFragment(C);var E=D.RootNode;var F=false;var G=FCKDomTools.GetFirstChild(A,['UL','OL']);if (G){F=true;var H;while ((H=G.firstChild)) E.appendChild(G.removeChild(H));FCKDomTools.RemoveNode(G);};var I;var J=false;while ((I=A.nextSibling)){if (!F&&I.nodeType==1&&I.nodeName.toUpperCase()=='LI') J=F=true;E.appendChild(I.parentNode.removeChild(I));if (!J&&I.nodeType==1&&I.nodeName.toUpperCase().Equals('UL','OL')) FCKDomTools.RemoveNode(I,true);};var K=B.parentNode.tagName.toUpperCase();var L=(K=='LI');if (L||K.Equals('UL','OL')){if (F){var G=B.cloneNode(false);D.AppendTo(G);A.appendChild(G);}else if (L) D.InsertAfterNode(B.parentNode);else D.InsertAfterNode(B);if (L) FCKDomTools.InsertAfterNode(B.parentNode,B.removeChild(A));else FCKDomTools.InsertAfterNode(B,B.removeChild(A));}else{if (F){var N=B.cloneNode(false);D.AppendTo(N);FCKDomTools.InsertAfterNode(B,N);};var O=C.createElement(FCKConfig.EnterMode=='p'?'p':'div');FCKDomTools.MoveChildren(B.removeChild(A),O);FCKDomTools.InsertAfterNode(B,O);if (FCKConfig.EnterMode=='br'){if (FCKBrowserInfo.IsGecko) O.parentNode.insertBefore(FCKTools.CreateBogusBR(C),O);else FCKDomTools.InsertAfterNode(O,FCKTools.CreateBogusBR(C));FCKDomTools.RemoveNode(O,true);}};if (this.CheckEmptyList(B)) FCKDomTools.RemoveNode(B,true);}},CheckEmptyList:function(A){return (FCKDomTools.GetFirstChild(A,'LI')==null);},CheckListHasContents:function(A){var B=A.firstChild;while (B){switch (B.nodeType){case 1:if (!B.nodeName.IEquals('UL','LI')) return true;break;case 3:if (B.nodeValue.Trim().length>0) return true;};B=B.nextSibling;};return false;}};
+var FCKElementPath=function(A){var B=null;var C=null;var D=[];var e=A;while (e){if (e.nodeType==1){if (!this.LastElement) this.LastElement=e;var E=e.nodeName.toLowerCase();if (!C){if (!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (FCKListsLib.PathBlockLimitElements[E]!=null){if (!B&&E=='div') B=e;else C=e;}};D.push(e);if (E=='body') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;};
+var FCKDomRange=function(A){this.Window=A;this._Cache={};};FCKDomRange.prototype={_UpdateElementInfo:function(){var A=this._Range;if (!A) this.Release(true);else{var B=A.startContainer;var C=A.endContainer;var D=new FCKElementPath(B);this.StartNode=B.nodeType==3?B:B.childNodes[A.startOffset];this.StartContainer=B;this.StartBlock=D.Block;this.StartBlockLimit=D.BlockLimit;if (B!=C) D=new FCKElementPath(C);var E=C;if (A.endOffset==0){while (E&&!E.previousSibling) E=E.parentNode;if (E) E=E.previousSibling;}else if (E.nodeType==1) E=E.childNodes[A.endOffset-1];this.EndNode=E;this.EndContainer=C;this.EndBlock=D.Block;this.EndBlockLimit=D.BlockLimit;};this._Cache={};},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateElementInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;}},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;},Collapse:function(A){if (this._Range) this._Range.collapse(A);this._UpdateElementInfo();},Clone:function(){var A=FCKTools.CloneObject(this);if (this._Range) A._Range=this._Range.cloneRange();return A;},MoveToNodeContents:function(A){if (!this._Range) this._Range=this.CreateRange();this._Range.selectNodeContents(A);this._UpdateElementInfo();},MoveToElementStart:function(A){this.SetStart(A,1);this.SetEnd(A,1);},MoveToElementEditStart:function(A){var B;while ((B=A.firstChild)&&B.nodeType==1&&FCKListsLib.EmptyElements[B.nodeName.toLowerCase()]==null) A=B;this.MoveToElementStart(A);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(){if (this.CheckIsCollapsed()) return true;var A=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(A);FCKDomTools.TrimNode(A);return (A.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this._Cache;var B=A.IsStartOfBlock;if (B!=undefined) return B;var C=this.StartBlock||this.StartBlockLimit;var D=this._Range.startContainer;var E=this._Range.startOffset;var F;if (E>0){if (D.nodeType==3){var G=D.nodeValue.substr(0,E).Trim();if (G.length!=0) return A.IsStartOfBlock=false;}else F=D.childNodes[E-1];};if (!F) F=FCKDomTools.GetPreviousSourceNode(D,true,null,C);while (F){switch (F.nodeType){case 1:if (!FCKListsLib.InlineChildReqElements[F.nodeName.toLowerCase()]) return A.IsStartOfBlock=false;break;case 3:if (F.nodeValue.Trim().length>0) return A.IsStartOfBlock=false;};F=FCKDomTools.GetPreviousSourceNode(F,false,null,C);};return A.IsStartOfBlock=true;},CheckEndOfBlock:function(A){var B=this._Cache.IsEndOfBlock;if (B!=undefined) return B;var C=this.EndBlock||this.EndBlockLimit;var D=this._Range.endContainer;var E=this._Range.endOffset;var F;if (D.nodeType==3){var G=D.nodeValue;if (E<G.length){G=G.substr(E);if (G.Trim().length!=0) return this._Cache.IsEndOfBlock=false;}}else F=D.childNodes[E];if (!F) F=FCKDomTools.GetNextSourceNode(D,true,null,C);var H=false;while (F){switch (F.nodeType){case 1:var I=F.nodeName.toLowerCase();if (FCKListsLib.InlineChildReqElements[I]) break;if (I=='br'&&!H){H=true;break;};return this._Cache.IsEndOfBlock=false;case 3:if (F.nodeValue.Trim().length>0) return this._Cache.IsEndOfBlock=false;};F=FCKDomTools.GetNextSourceNode(F,false,null,C);};if (A) this.Select();return this._Cache.IsEndOfBlock=true;},CreateBookmark:function(A){var B={StartId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'S',EndId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'E'};var C=this.Window.document;var D;var E;var F;if (!this.CheckIsCollapsed()){E=C.createElement('span');E.style.display='none';E.id=B.EndId;E.setAttribute('_fck_bookmark',true);E.innerHTML=' ';F=this.Clone();F.Collapse(false);F.InsertNode(E);};D=C.createElement('span');D.style.display='none';D.id=B.StartId;D.setAttribute('_fck_bookmark',true);D.innerHTML=' ';F=this.Clone();F.Collapse(true);F.InsertNode(D);if (A){B.StartNode=D;B.EndNode=E;};if (E){this.SetStart(D,4);this.SetEnd(E,3);}else this.MoveToPosition(D,4);return B;},GetBookmarkNode:function(A,B){var C=this.Window.document;if (B) return A.StartNode||C.getElementById(A.StartId);else return A.EndNode||C.getElementById(A.EndId);},MoveToBookmark:function(A,B){var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);this.SetStart(C,3);if (!B) FCKDomTools.RemoveNode(C);if (D){this.SetEnd(D,3);if (!B) FCKDomTools.RemoveNode(D);}else this.Collapse(true);this._UpdateElementInfo();},CreateBookmark2:function(){if (!this._Range) return { "Start":0,"End":0 };var A={"Start":[this._Range.startOffset],"End":[this._Range.endOffset]};var B=this._Range.startContainer.previousSibling;var C=this._Range.endContainer.previousSibling;var D=this._Range.startContainer;var E=this._Range.endContainer;while (B&&B.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;};while (C&&C.nodeType==3){A.End[0]+=C.length;E=C;C=C.previousSibling;};if (D.nodeType==1&&D.childNodes[A.Start[0]]&&D.childNodes[A.Start[0]].nodeType==3){var F=D.childNodes[A.Start[0]];var G=0;while (F.previousSibling&&F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};D=F;A.Start[0]=G;};if (E.nodeType==1&&E.childNodes[A.End[0]]&&E.childNodes[A.End[0]].nodeType==3){var F=E.childNodes[A.End[0]];var G=0;while (F.previousSibling&&F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};E=F;A.End[0]=G;};A.Start=FCKDomTools.GetNodeAddress(D,true).concat(A.Start);A.End=FCKDomTools.GetNodeAddress(E,true).concat(A.End);return A;},MoveToBookmark2:function(A){var B=FCKDomTools.GetNodeFromAddress(this.Window.document,A.Start.slice(0,-1),true);var C=FCKDomTools.GetNodeFromAddress(this.Window.document,A.End.slice(0,-1),true);this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var D=A.Start[A.Start.length-1];var E=A.End[A.End.length-1];while (B.nodeType==3&&D>B.length){if (!B.nextSibling||B.nextSibling.nodeType!=3) break;D-=B.length;B=B.nextSibling;};while (C.nodeType==3&&E>C.length){if (!C.nextSibling||C.nextSibling.nodeType!=3) break;E-=C.length;C=C.nextSibling;};this._Range.setStart(B,D);this._Range.setEnd(C,E);this._UpdateElementInfo();},MoveToPosition:function(A,B){this.SetStart(A,B);this.Collapse(true);},SetStart:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setStart(A,0);break;case 2:D.setStart(A,A.childNodes.length);break;case 3:D.setStartBefore(A);break;case 4:D.setStartAfter(A);};if (!C) this._UpdateElementInfo();},SetEnd:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setEnd(A,0);break;case 2:D.setEnd(A,A.childNodes.length);break;case 3:D.setEndBefore(A);break;case 4:D.setEndAfter(A);};if (!C) this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'inline_elements':if (this._Range.startOffset==0){B=this._Range.startContainer;if (B.nodeType!=1) B=B.previousSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setStartBefore(B);if (B!=B.parentNode.firstChild) break;B=B.parentNode;}}};B=this._Range.endContainer;var C=this._Range.endOffset;if ((B.nodeType==3&&C>=B.nodeValue.length)||(B.nodeType==1&&C>=B.childNodes.length)||(B.nodeType!=1&&B.nodeType!=3)){if (B.nodeType!=1) B=B.nextSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setEndAfter(B);if (B!=B.parentNode.lastChild) break;B=B.parentNode;}}};break;case 'block_contents':case 'list_contents':var D=FCKListsLib.BlockBoundaries;if (A=='list_contents'||FCKConfig.EnterMode=='br') D=FCKListsLib.ListBoundaries;if (this.StartBlock&&FCKConfig.EnterMode!='br'&&A=='block_contents') this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){var E=B.childNodes[this._Range.startOffset];if (E) B=FCKDomTools.GetPreviousSourceNode(E,true);else B=B.lastChild||B;};while (B&&(B.nodeType!=1||(B!=this.StartBlockLimit&&!D[B.nodeName.toLowerCase()]))){this._Range.setStartBefore(B);B=B.previousSibling||B.parentNode;}};if (this.EndBlock&&FCKConfig.EnterMode!='br'&&A=='block_contents'&&this.EndBlock.nodeName.toLowerCase()!='li') this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;while (B&&(B.nodeType!=1||(B!=this.StartBlockLimit&&!D[B.nodeName.toLowerCase()]))){this._Range.setEndAfter(B);B=B.nextSibling||B.parentNode;};if (B&&B.nodeName.toLowerCase()=='br') this._Range.setEndAfter(B);};this._UpdateElementInfo();}},SplitBlock:function(){if (!this._Range) this.MoveToSelection();if (this.StartBlockLimit==this.EndBlockLimit){var A=this.StartBlock;var B=this.EndBlock;var C=null;if (FCKConfig.EnterMode!='br'){if (!A){A=this.FixBlock(true);B=this.EndBlock;};if (!B) B=this.FixBlock(false);};var D=(A!=null&&this.CheckStartOfBlock());var E=(B!=null&&this.CheckEndOfBlock());if (!this.CheckIsEmpty()) this.DeleteContents();if (A&&B&&A==B){if (E){C=new FCKElementPath(this.StartContainer);this.MoveToPosition(B,4);B=null;}else if (D){C=new FCKElementPath(this.StartContainer);this.MoveToPosition(A,3);A=null;}else{this.SetEnd(A,2);var F=this.ExtractContents();B=A.cloneNode(false);B.removeAttribute('id',false);F.AppendTo(B);FCKDomTools.InsertAfterNode(A,B);this.MoveToPosition(A,4);if (FCKBrowserInfo.IsGecko&&!A.nodeName.IEquals(['ul','ol'])) FCKTools.AppendBogusBr(A);}};return {PreviousBlock:A,NextBlock:B,WasStartOfBlock:D,WasEndOfBlock:E,ElementPath:C};};return null;},FixBlock:function(A){var B=this.CreateBookmark();this.Collapse(A);this.Expand('block_contents');var C=this.Window.document.createElement(FCKConfig.EnterMode);this.ExtractContents().AppendTo(C);FCKDomTools.TrimNode(C);this.InsertNode(C);this.MoveToBookmark(B);return C;},Release:function(A){if (!A) this.Window=null;this.StartNode=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndNode=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;this._Cache=null;},CheckHasRange:function(){return!!this._Range;},GetTouchedStartNode:function(){var A=this._Range;var B=A.startContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.startOffset]||B;},GetTouchedEndNode:function(){var A=this._Range;var B=A.endContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.endOffset-1]||B;}};
+FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var A=this.Window.document.selection;if (A.type!='Control'){var B=this._GetSelectionMarkerTag(true);var C=this._GetSelectionMarkerTag(false);if (!B&&!C){this._Range.setStart(this.Window.document.body,0);this._UpdateElementInfo();return;};this._Range.setStart(B.parentNode,FCKDomTools.GetIndexOf(B));B.parentNode.removeChild(B);this._Range.setEnd(C.parentNode,FCKDomTools.GetIndexOf(C));C.parentNode.removeChild(C);this._UpdateElementInfo();}else{var D=A.createRange().item(0);if (D){this._Range.setStartBefore(D);this._Range.setEndAfter(D);this._UpdateElementInfo();}}};FCKDomRange.prototype.Select=function(A){if (this._Range) this.SelectBookmark(this.CreateBookmark(true),A);};FCKDomRange.prototype.SelectBookmark=function(A,B){var C=this.CheckIsCollapsed();var D;var E;var F=this.GetBookmarkNode(A,true);if (!F) return;var G;if (!C) G=this.GetBookmarkNode(A,false);var H=this.Window.document.body.createTextRange();H.moveToElementText(F);H.moveStart('character',1);if (G){var I=this.Window.document.body.createTextRange();I.moveToElementText(G);H.setEndPoint('EndToEnd',I);H.moveEnd('character',-1);}else{D=(B||!F.previousSibling||F.previousSibling.nodeName.toLowerCase()=='br')&&!F.nextSibing;E=this.Window.document.createElement('span');E.innerHTML='';F.parentNode.insertBefore(E,F);if (D){F.parentNode.insertBefore(this.Window.document.createTextNode('\ufeff'),F);}};if (!this._Range) this._Range=this.CreateRange();this._Range.setStartBefore(F);F.parentNode.removeChild(F);if (C){if (D){H.moveStart('character',-1);H.select();this.Window.document.selection.clear();}else H.select();FCKDomTools.RemoveNode(E);}else{this._Range.setEndBefore(G);G.parentNode.removeChild(G);H.select();}};FCKDomRange.prototype._GetSelectionMarkerTag=function(A){var B=this.Window.document;var C=B.selection;var D;try{D=C.createRange();}catch (e){return null;};if (D.parentElement().document!=B) return null;D.collapse(A===true);var E='fck_dom_range_temp_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000);D.pasteHTML('<span id="'+E+'"></span>');return B.getElementById(E);};
+var FCKDomRangeIterator=function(A){this.Range=A;this.ForceBrBreak=false;this.EnforceRealBlocks=false;};FCKDomRangeIterator.CreateFromSelection=function(A){var B=new FCKDomRange(A);B.MoveToSelection();return new FCKDomRangeIterator(B);};FCKDomRangeIterator.prototype={GetNextParagraph:function(){var A;var B;var C;var D;var E;var F=this.ForceBrBreak?FCKListsLib.ListBoundaries:FCKListsLib.BlockBoundaries;if (!this._LastNode){var B=this.Range.Clone();B.Expand(this.ForceBrBreak?'list_contents':'block_contents');this._NextNode=B.GetTouchedStartNode();this._LastNode=B.GetTouchedEndNode();B=null;};var H=this._NextNode;var I=this._LastNode;while (H){var J=false;var K=(H.nodeType!=1);var L=false;if (!K){var M=H.nodeName.toLowerCase();if (F[M]){if (M=='br') K=true;else if (!B&&H.childNodes.length==0&&M!='hr'){A=H;C=H==I;break;};J=true;}else{if (H.firstChild){if (!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};H=H.firstChild;continue;};K=true;}}else if (H.nodeType==3){if (/^[\r\n\t ]+$/.test(H.nodeValue)) K=false;};if (K&&!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};C=((!J||K)&&H==I);if (B&&!J){while (!H.nextSibling&&!C){var N=H.parentNode;if (F[N.nodeName.toLowerCase()]){J=true;C=C||(N==I);break;};H=N;C=(H==I);L=true;}};if (K) B.SetEnd(H,4,true);if ((J||C)&&B){B._UpdateElementInfo();if (B.StartNode==B.EndNode&&B.StartNode.parentNode==B.StartBlockLimit&&B.StartNode.getAttribute&&B.StartNode.getAttribute('_fck_bookmark')) B=null;else break;};if (C) break;H=FCKDomTools.GetNextSourceNode(H,L,null,I);};if (!A){if (!B){this._NextNode=null;return null;};A=B.StartBlock;if (!A&&!this.EnforceRealBlocks&&B.StartBlockLimit.nodeName.IEquals('DIV','TH','TD')&&B.CheckStartOfBlock()&&B.CheckEndOfBlock()){A=B.StartBlockLimit;}else if (!A||(this.EnforceRealBlocks&&A.nodeName.toLowerCase()=='li')){A=this.Range.Window.document.createElement(FCKConfig.EnterMode=='p'?'p':'div');B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);B.InsertNode(A);D=true;E=true;}else if (A.nodeName.toLowerCase()!='li'){if (!B.CheckStartOfBlock()||!B.CheckEndOfBlock()){A=A.cloneNode(false);B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);var O=B.SplitBlock();D=!O.WasStartOfBlock;E=!O.WasEndOfBlock;FCKDebug.Output('removePreviousBr='+D+',removeLastBr='+E);B.InsertNode(A);}}else if (!C){this._NextNode=A==I?null:FCKDomTools.GetNextSourceNode(B.EndNode,true,null,I);return A;}};if (D){var P=A.previousSibling;if (P&&P.nodeType==1){if (P.nodeName.toLowerCase()=='br') P.parentNode.removeChild(P);else if (P.lastChild&&P.lastChild.nodeName.IEquals('br')) P.removeChild(P.lastChild);}};if (E){var Q=A.lastChild;if (Q&&Q.nodeType==1&&Q.nodeName.toLowerCase()=='br') A.removeChild(Q);};this._NextNode=(C||A==I)?null:FCKDomTools.GetNextSourceNode(A,true,null,I);return A;}};
var FCKDocumentFragment=function(A){this._Document=A;this.RootNode=A.createElement('div');};FCKDocumentFragment.prototype={AppendTo:function(A){FCKDomTools.MoveChildren(this.RootNode,A);},AppendHtml:function(A){var B=this._Document.createElement('div');B.innerHTML=A;FCKDomTools.MoveChildren(B,this.RootNode);},InsertAfterNode:function(A){var B=this.RootNode;var C;while((C=B.lastChild)) FCKDomTools.InsertAfterNode(A,B.removeChild(C));}};
-var FCKW3CRange=function(A){this._Document=A;this.startContainer=null;this.startOffset=null;this.endContainer=null;this.endOffset=null;this.collapsed=true;};FCKW3CRange.CreateRange=function(A){return new FCKW3CRange(A);};FCKW3CRange.CreateFromRange=function(A,B){var C=FCKW3CRange.CreateRange(A);C.setStart(B.startContainer,B.startOffset);C.setEnd(B.endContainer,B.endOffset);return C;};FCKW3CRange.prototype={_UpdateCollapsed:function(){this.collapsed=(this.startContainer==this.endContainer&&this.startOffset==this.endOffset);},setStart:function(A,B){this.startContainer=A;this.startOffset=B;if (!this.endContainer){this.endContainer=A;this.endOffset=B;};this._UpdateCollapsed();},setEnd:function(A,B){this.endContainer=A;this.endOffset=B;if (!this.startContainer){this.startContainer=A;this.startOffset=B;};this._UpdateCollapsed();},setStartAfter:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setStartBefore:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A));},setEndAfter:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setEndBefore:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A));},collapse:function(A){if (A){this.endContainer=this.startContainer;this.endOffset=this.startOffset;}else{this.startContainer=this.endContainer;this.startOffset=this.endOffset;};this.collapsed=true;},selectNodeContents:function(A){this.setStart(A,0);this.setEnd(A,A.nodeType==3?A.data.length:A.childNodes.length);},insertNode:function(A){var B=this.startContainer;var C=this.startOffset;if (B.nodeType==3){B.splitText(C);if (B==this.endContainer) this.setEnd(B.nextSibling,this.endOffset-this.startOffset);FCKDomTools.InsertAfterNode(B,A);return;}else{B.insertBefore(A,B.childNodes[C]||null);if (B==this.endContainer){this.endOffset++;this.collapsed=false;}}},deleteContents:function(){if (this.collapsed) return;this._ExecContentsAction(0);},extractContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(1,A);return A;},cloneContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(2,A);return A;},_ExecContentsAction:function(A,B){var C=this.startContainer;var D=this.endContainer;var E=this.startOffset;var F=this.endOffset;var G=false;var H=false;if (D.nodeType==3) D=D.splitText(F);else{if (D.childNodes.length>0){if (F>D.childNodes.length-1){D=FCKDomTools.InsertAfterNode(D.lastChild,this._Document.createTextNode(''));H=true;}else D=D.childNodes[F];}};if (C.nodeType==3){C.splitText(E);if (C==D) D=C.nextSibling;}else{if (C.childNodes.length>0&&E<=C.childNodes.length-1){if (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else C=C.childNodes[E].previousSibling;}};var I=FCKDomTools.GetParents(C);var J=FCKDomTools.GetParents(D);var i,topStart,topEnd;for (i=0;i<I.length;i++){topStart=I[i];topEnd=J[i];if (topStart!=topEnd) break;};var K,levelStartNode,levelClone,currentNode,currentSibling;if (B) K=B.RootNode;for (var j=i;j<I.length;j++){levelStartNode=I[j];if (K&&levelStartNode!=C) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==C));currentNode=levelStartNode.nextSibling;while(currentNode){if (currentNode==J[j]||currentNode==D) break;currentSibling=currentNode.nextSibling;if (A==2) K.appendChild(currentNode.cloneNode(true));else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.appendChild(currentNode);};currentNode=currentSibling;};if (K) K=levelClone;};if (B) K=B.RootNode;for (var k=i;k<J.length;k++){levelStartNode=J[k];if (A>0&&levelStartNode!=D) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==D));if (!I[k]||levelStartNode.parentNode!=I[k].parentNode){currentNode=levelStartNode.previousSibling;while(currentNode){if (currentNode==I[k]||currentNode==C) break;currentSibling=currentNode.previousSibling;if (A==2) K.insertBefore(currentNode.cloneNode(true),K.firstChild);else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.insertBefore(currentNode,K.firstChild);};currentNode=currentSibling;}};if (K) K=levelClone;};if (A==2){var L=this.startContainer;if (L.nodeType==3){L.data+=L.nextSibling.data;L.parentNode.removeChild(L.nextSibling);};var M=this.endContainer;if (M.nodeType==3&&M.nextSibling){M.data+=M.nextSibling.data;M.parentNode.removeChild(M.nextSibling);}}else{if (topStart&&topEnd&&(C.parentNode!=topStart.parentNode||D.parentNode!=topEnd.parentNode)) this.setStart(topEnd.parentNode,FCKDomTools.GetIndexOf(topEnd));this.collapse(true);};if(G) C.parentNode.removeChild(C);if(H&&D.parentNode) D.parentNode.removeChild(D);},cloneRange:function(){return FCKW3CRange.CreateFromRange(this._Document,this);},toString:function(){var A=this.cloneContents();var B=this._Document.createElement('div');A.AppendTo(B);return B.textContent||B.innerText;}};
-var FCKEnterKey=function(A,B,C){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var D=new FCKKeystrokeHandler(false);D._EnterKey=this;D.OnKeystroke=FCKEnterKey_OnKeystroke;D.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[8,'Backspace'],[46,'Delete']]);D.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){this._HasShift=(B===true);var C=A||this.EnterMode;if (C=='br') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(C);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (!B.CheckIsCollapsed()) return false;var C=B.StartBlock;var D=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&C&&D){if (!B.CheckIsCollapsed()){var E=B.CheckEndOfBlock();B.DeleteContents();if (C!=D){B.SetStart(D,1);B.SetEnd(D,1);};B.Select();A=(C==D);};if (B.CheckStartOfBlock()){var F=B.StartBlock;var G=FCKDomTools.GetPreviousSourceElement(F,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,G,F);}else if (FCKBrowserInfo.IsGecko){B.Select();}};B.Release();return A;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&&C.nodeName.IEquals('LI')&&C.parentNode.parentNode.nodeName.IEquals('LI')){B=C.parentNode.parentNode;C=FCKListHandler.OutdentListItem(C);};if (B&&B.nodeName.IEquals('LI')){var E=FCKDomTools.GetLastChild(B,['UL','OL']);while (E){B=FCKDomTools.GetLastChild(E,'LI');E=FCKDomTools.GetLastChild(B,['UL','OL']);}};if (B&&C){if (C.nodeName.IEquals('LI')&&!B.nodeName.IEquals('LI')) C=FCKListHandler.OutdentListItem(C);var F=C.parentNode;if (B.nodeName.IEquals('TABLE','HR')){FCKDomTools.RemoveNode(B);D=true;}else{FCKDomTools.RemoveNode(C);while (F.innerHTML.Trim().length==0){var G=F.parentNode;G.removeChild(F);F=G;};FCKDomTools.TrimNode(C);FCKDomTools.TrimNode(B);A.SetStart(B,2);A.Collapse(true);var H=A.CreateBookmark();FCKDomTools.MoveChildren(C,B);A.MoveToBookmark(H);A.Select();D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.CheckIsCollapsed()&&B.CheckEndOfBlock(FCKBrowserInfo.IsGecko)){var C=B.StartBlock;var D=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,C,D);};B.Release();return A;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){if (!B.StartBlock) this._FixBlock(B,true,A);if (!B.EndBlock) this._FixBlock(B,false,A);var C=B.StartBlock;var D=B.EndBlock;if (!B.CheckIsEmpty()) B.DeleteContents();if (C==D){var E;var F=B.CheckStartOfBlock();var G=B.CheckEndOfBlock();if (F&&!G){E=C.cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) E.innerHTML=GECKO_BOGUS;C.parentNode.insertBefore(E,C);if (FCKBrowserInfo.IsIE){B.MoveToNodeContents(E);B.Select();};B.MoveToElementStart(C);}else{if (G){var H=C.tagName.toUpperCase();if (F&&H=='LI'){var I=FCKListHandler.OutdentListItem(C);B.MoveToElementStart(I);}else{if ((/^H[1-6]$/).test(H)) E=this.Window.document.createElement(A);else E=C.cloneNode(false);if (FCKBrowserInfo.IsGeckoLike){E.innerHTML=GECKO_BOGUS;if (F) C.innerHTML=GECKO_BOGUS;}}}else{B.SetEnd(C,2);var J=B.ExtractContents();E=C.cloneNode(false);FCKDomTools.TrimNode(J.RootNode);if (J.RootNode.firstChild.nodeType==1&&J.RootNode.firstChild.tagName.toUpperCase().Equals('UL','OL')) E.innerHTML=GECKO_BOGUS;J.AppendTo(E);if (FCKBrowserInfo.IsGecko){var K=FCKDomTools.GetLastChild(E);if (!K||K.nodeName.toLowerCase()!='br'||K.getAttribute('type',2)!='_moz') E.appendChild(FCKTools.CreateBogusBR(this.Window.document));}};if (E){FCKDomTools.InsertAfterNode(C,E);B.MoveToElementStart(E);if (FCKBrowserInfo.IsGecko) E.scrollIntoView(false);}}}else{B.MoveToElementStart(D);};B.Select();};B.Release();return true;};FCKEnterKey.prototype._ExecuteEnterBr=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){B.DeleteContents();B.MoveToSelection();var C=B.CheckStartOfBlock();var D=B.CheckEndOfBlock();var E=B.StartBlock?B.StartBlock.tagName.toUpperCase():'';var F=this._HasShift;if (!F&&E=='LI') return this._ExecuteEnterBlock(null);if (!F&&D&&(/^H[1-6]$/).test(E)){FCKDebug.Output('BR - Header');FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createElement('br'));if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createTextNode(''));B.SetStart(B.StartBlock.nextSibling,FCKBrowserInfo.IsIE?3:1);}else{FCKDebug.Output('BR - No Header');var G=this.Window.document.createElement('br');B.InsertNode(G);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(G,this.Window.document.createTextNode(''));if (D&&FCKBrowserInfo.IsGecko){var H=FCKDomTools.GetLastChild(G.parentNode,'BR');if (H&&H.getAttribute('type',2)!='_moz') G.parentNode.appendChild(FCKTools.CreateBogusBR(this.Window.document));};if (FCKBrowserInfo.IsIE) B.SetStart(G,4);else B.SetStart(G.nextSibling,1);};B.Collapse(true);B.Select();};B.Release();return true;};FCKEnterKey.prototype._FixBlock=function(A,B,C){var D=A.CreateBookmark();A.Collapse(B);A.Expand('block_contents');var E=this.Window.document.createElement(C);A.ExtractContents().AppendTo(E);FCKDomTools.TrimNode(E);A.InsertNode(E);A.MoveToBookmark(D);}
-var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B,i=0;while((B=this._Items[i++])) B.ProcessDocument(A);};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCK.EditorDocument.createElement('IMG');C.className=A;C.src=FCKConfig.FullBasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0){if (C.innerHTML!=''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.childNodes.length==1&&C.childNodes[0].style&&C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKFlashProcessor=FCKDocumentProcessor.AppendNew();FCKFlashProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('EMBED');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.src.EndsWith('.swf',true)){var D=C.cloneNode(true);if (FCKBrowserInfo.IsIE){var E=['scale','play','loop','menu','wmode','quality'];for (var F=0;i<E.length;i++){var G=C.getAttribute(E[F]);if (G) D.setAttribute(E[F],G);}};var H=FCKDocumentProcessor_CreateFakeImage('FCK__Flash',D);H.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(H,C);C.parentNode.insertBefore(H,C);C.parentNode.removeChild(C);}}};FCKFlashProcessor.RefreshView=function(A,B){if (B.width>0) A.style.width=FCKTools.ConvertHtmlSizeToStyle(B.width);if (B.height>0) A.style.height=FCKTools.ConvertHtmlSizeToStyle(B.height);};FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length>0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length>0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};
-var FCKSelection=FCK.Selection={};
-FCKSelection.GetType=function(){return FCK.EditorDocument.selection.type;};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=FCK.EditorDocument.selection.createRange();if (A&&A.item) return FCK.EditorDocument.selection.createRange().item(0);}};FCKSelection.GetParentElement=function(){switch (this.GetType()){case 'Control':return FCKSelection.GetSelectedElement().parentElement;case 'None':return null;default:return FCK.EditorDocument.selection.createRange().parentElement();}};FCKSelection.SelectNode=function(A){FCK.Focus();FCK.EditorDocument.selection.empty();var B;try{B=FCK.EditorDocument.body.createControlRange();B.addElement(A);}catch(e){B=FCK.EditorDocument.selection.createRange();B.moveToElementText(A);};B.select();};FCKSelection.Collapse=function(A){FCK.Focus();if (this.GetType()=='Text'){var B=FCK.EditorDocument.selection.createRange();B.collapse(A==null||A===true);B.select();}};FCKSelection.HasAncestorNode=function(A){var B;if (FCK.EditorDocument.selection.type=="Control"){B=this.GetSelectedElement();}else{var C=FCK.EditorDocument.selection.createRange();B=C.parentElement();};while (B){if (B.tagName==A) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B,oRange;if (!FCK.EditorDocument) return null;if (FCK.EditorDocument.selection.type=="Control"){oRange=FCK.EditorDocument.selection.createRange();for (i=0;i<oRange.length;i++){if (oRange(i).parentNode){B=oRange(i).parentNode;break;}}}else{oRange=FCK.EditorDocument.selection.createRange();B=oRange.parentElement();};while (B&&B.nodeName!=A) B=B.parentNode;return B;};FCKSelection.Delete=function(){var A=FCK.EditorDocument.selection;if (A.type.toLowerCase()!="none"){A.clear();};return A;};
-var FCKTableHandler={};FCKTableHandler.InsertRow=function(){var A=FCKSelection.MoveToAncestorNode('TR');if (!A) return;var B=A.cloneNode(true);A.parentNode.insertBefore(B,A);FCKTableHandler.ClearRow(A);};FCKTableHandler.DeleteRows=function(A){if (!A) A=FCKSelection.MoveToAncestorNode('TR');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');if (B.rows.length==1){FCKTableHandler.DeleteTable(B);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex+1;for (var i=0;i<B.rows.length;i++){var D=B.rows[i];if (D.cells.length<C) continue;A=D.cells[C-1].cloneNode(false);if (FCKBrowserInfo.IsGecko) A.innerHTML=GECKO_BOGUS;var E=D.cells[C];if (E) D.insertBefore(A,E);else D.appendChild(A);}};FCKTableHandler.DeleteColumns=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex;for (var i=B.rows.length-1;i>=0;i--){var D=B.rows[i];if (C==0&&D.cells.length==1){FCKTableHandler.DeleteRows(D);continue;};if (D.cells[C]) D.removeChild(D.cells[C]);}};FCKTableHandler.InsertCell=function(A){var B=A?A:FCKSelection.MoveToAncestorNode('TD');if (!B) return null;var C=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGecko) C.innerHTML=GECKO_BOGUS;if (B.cellIndex==B.parentNode.cells.length-1){B.parentNode.appendChild(C);}else{B.parentNode.insertBefore(C,B.nextSibling);};return C;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler.MergeCells=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<2) return;if (A[0].parentNode!=A[A.length-1].parentNode) return;var B=isNaN(A[0].colSpan)?1:A[0].colSpan;var C='';var D=FCK.EditorDocument.createDocumentFragment();for (var i=A.length-1;i>=0;i--){var E=A[i];for (var c=E.childNodes.length-1;c>=0;c--){var F=E.removeChild(E.childNodes[c]);if ((F.hasAttribute&&F.hasAttribute('_moz_editor_bogus_node'))||(F.getAttribute&&F.getAttribute('type',2)=='_moz')) continue;D.insertBefore(F,D.firstChild);};if (i>0){B+=isNaN(E.colSpan)?1:E.colSpan;FCKTableHandler.DeleteCell(E);}};A[0].colSpan=B;if (FCKBrowserInfo.IsGecko&&D.childNodes.length==0) A[0].innerHTML=GECKO_BOGUS;else A[0].appendChild(D);};FCKTableHandler.SplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=FCKTableHandler._GetCellIndexSpan(B,A[0].parentNode.rowIndex,A[0]);var D=this._GetCollumnCells(B,C);for (var i=0;i<D.length;i++){if (D[i]==A[0]){var E=this.InsertCell(A[0]);if (!isNaN(A[0].rowSpan)&&A[0].rowSpan>1) E.rowSpan=A[0].rowSpan;}else{if (isNaN(D[i].colSpan)) D[i].colSpan=2;else D[i].colSpan+=1;}}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length<B+1) return null;var D=A[B];for (var c=0;c<D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCollumnCells=function(A,B){var C=[];for (var r=0;r<A.length;r++){var D=A[r][B];if (D&&(C.length==0||C[C.length-1]!=D)) C[C.length]=D;};return C;};FCKTableHandler._CreateTableMap=function(A){var B=A.rows;var r=-1;var C=[];for (var i=0;i<B.length;i++){r++;if (!C[r]) C[r]=[];var c=-1;for (var j=0;j<B[i].cells.length;j++){var D=B[i].cells[j];c++;while (C[r][c]) c++;var E=isNaN(D.colSpan)?1:D.colSpan;var F=isNaN(D.rowSpan)?1:D.rowSpan;for (var G=0;G<F;G++){if (!C[r+G]) C[r+G]=[];for (var H=0;H<E;H++){C[r+G][c+H]=B[i].cells[j];}};c+=E-1;}};return C;};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsGecko) B[i].innerHTML=GECKO_BOGUS;else B[i].innerHTML='';}};
-FCKTableHandler.GetSelectedCells=function(){var A=[];var B=FCK.EditorDocument.selection.createRange();var C=FCKSelection.GetParentElement();if (C&&C.tagName.Equals('TD','TH')) A[0]=C;else{C=FCKSelection.MoveToAncestorNode('TABLE');if (C){for (var i=0;i<C.cells.length;i++){var D=FCK.EditorDocument.selection.createRange();D.moveToElementText(C.cells[i]);if (B.inRange(D)||(B.compareEndPoints('StartToStart',D)>=0&&B.compareEndPoints('StartToEnd',D)<=0)||(B.compareEndPoints('EndToStart',D)>=0&&B.compareEndPoints('EndToEnd',D)<=0)){A[A.length]=C.cells[i];}}}};return A;};
-var FCKXml=function(){this.Error=false;};FCKXml.prototype.LoadUrl=function(A){this.Error=false;var B=FCKTools.CreateXmlObject('XmlHttp');if (!B){this.Error=true;return;};B.open("GET",A,false);B.send(null);if (B.status==200||B.status==304) this.DOMDocument=B.responseXML;else if (B.status==0&&B.readyState==4){this.DOMDocument=FCKTools.CreateXmlObject('DOMDocument');this.DOMDocument.async=false;this.DOMDocument.resolveExternals=false;this.DOMDocument.loadXML(B.responseText);}else{this.DOMDocument=null;};if (this.DOMDocument==null||this.DOMDocument.firstChild==null){this.Error=true;if (window.confirm('Error loading "'+A+'"\r\nDo you want to see more info?')) alert('URL requested: "'+A+'"\r\nServer response:\r\nStatus: '+B.status+'\r\nResponse text:\r\n'+B.responseText);}};FCKXml.prototype.SelectNodes=function(A,B){if (this.Error) return [];if (B) return B.selectNodes(A);else return this.DOMDocument.selectNodes(A);};FCKXml.prototype.SelectSingleNode=function(A,B){if (this.Error) return null;if (B) return B.selectSingleNode(A);else return this.DOMDocument.selectSingleNode(A);}
-var FCKStyleDef=function(A,B){this.Name=A;this.Element=B.toUpperCase();this.IsObjectElement=FCKRegexLib.ObjectElements.test(this.Element);this.Attributes={};};FCKStyleDef.prototype.AddAttribute=function(A,B){this.Attributes[A]=B;};FCKStyleDef.prototype.GetOpenerTag=function(){var s='<'+this.Element;for (var a in this.Attributes) s+=' '+a+'="'+this.Attributes[a]+'"';return s+'>';};FCKStyleDef.prototype.GetCloserTag=function(){return '</'+this.Element+'>';};FCKStyleDef.prototype.RemoveFromSelection=function(){if (FCKSelection.GetType()=='Control') this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement());else this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetParentElement());}
-FCKStyleDef.prototype.ApplyToSelection=function(){var A=FCK.ToolbarSet.CurrentInstance.EditorDocument.selection;if (A.type=='Text'){var B=A.createRange();var e=document.createElement(this.Element);e.innerHTML=B.htmlText;this._AddAttributes(e);this._RemoveDuplicates(e);B.pasteHTML(e.outerHTML);}else if (A.type=='Control'){var C=FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement();if (C.tagName==this.Element) this._AddAttributes(C);}};FCKStyleDef.prototype._AddAttributes=function(A){for (var a in this.Attributes){switch (a.toLowerCase()){case 'style':A.style.cssText=this.Attributes[a];break;case 'class':A.setAttribute('className',this.Attributes[a],0);break;case 'src':A.setAttribute('_fcksavedurl',this.Attributes[a],0);default:A.setAttribute(a,this.Attributes[a],0);}}};FCKStyleDef.prototype._RemoveDuplicates=function(A){for (var i=0;i<A.children.length;i++){var B=A.children[i];this._RemoveDuplicates(B);if (this.IsEqual(B)) FCKTools.RemoveOuterTags(B);}};FCKStyleDef.prototype.IsEqual=function(e){if (e.tagName!=this.Element) return false;for (var a in this.Attributes){switch (a.toLowerCase()){case 'style':if (e.style.cssText.toLowerCase()!=this.Attributes[a].toLowerCase()) return false;break;case 'class':if (e.getAttribute('className',0)!=this.Attributes[a]) return false;break;default:if (e.getAttribute(a,0)!=this.Attributes[a]) return false;}};return true;};FCKStyleDef.prototype._RemoveMe=function(A){if (!A) return;var B=A.parentElement;if (this.IsEqual(A)){if (this.IsObjectElement){for (var a in this.Attributes){switch (a.toLowerCase()){case 'class':A.removeAttribute('className',0);break;default:A.removeAttribute(a,0);}};return;}else FCKTools.RemoveOuterTags(A);};this._RemoveMe(B);}
-var FCKStylesLoader=function(){this.Styles={};this.StyleGroups={};this.Loaded=false;this.HasObjectElements=false;};FCKStylesLoader.prototype.Load=function(A){var B=new FCKXml();B.LoadUrl(A);var C=B.SelectNodes('Styles/Style');for (var i=0;i<C.length;i++){var D=C[i].attributes.getNamedItem('element').value.toUpperCase();var E=new FCKStyleDef(C[i].attributes.getNamedItem('name').value,D);if (E.IsObjectElement) this.HasObjectElements=true;var F=B.SelectNodes('Attribute',C[i]);for (var j=0;j<F.length;j++){var G=F[j].attributes.getNamedItem('name').value;var H=F[j].attributes.getNamedItem('value').value;if (G.toLowerCase()=='style'){var I=document.createElement('SPAN');I.style.cssText=H;H=I.style.cssText;};E.AddAttribute(G,H);};this.Styles[E.Name]=E;var J=this.StyleGroups[D];if (J==null){this.StyleGroups[D]=[];J=this.StyleGroups[D];};J[J.length]=E;};this.Loaded=true;}
+var FCKW3CRange=function(A){this._Document=A;this.startContainer=null;this.startOffset=null;this.endContainer=null;this.endOffset=null;this.collapsed=true;};FCKW3CRange.CreateRange=function(A){return new FCKW3CRange(A);};FCKW3CRange.CreateFromRange=function(A,B){var C=FCKW3CRange.CreateRange(A);C.setStart(B.startContainer,B.startOffset);C.setEnd(B.endContainer,B.endOffset);return C;};FCKW3CRange.prototype={_UpdateCollapsed:function(){this.collapsed=(this.startContainer==this.endContainer&&this.startOffset==this.endOffset);},setStart:function(A,B){this.startContainer=A;this.startOffset=B;if (!this.endContainer){this.endContainer=A;this.endOffset=B;};this._UpdateCollapsed();},setEnd:function(A,B){this.endContainer=A;this.endOffset=B;if (!this.startContainer){this.startContainer=A;this.startOffset=B;};this._UpdateCollapsed();},setStartAfter:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setStartBefore:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A));},setEndAfter:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setEndBefore:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A));},collapse:function(A){if (A){this.endContainer=this.startContainer;this.endOffset=this.startOffset;}else{this.startContainer=this.endContainer;this.startOffset=this.endOffset;};this.collapsed=true;},selectNodeContents:function(A){this.setStart(A,0);this.setEnd(A,A.nodeType==3?A.data.length:A.childNodes.length);},insertNode:function(A){var B=this.startContainer;var C=this.startOffset;if (B.nodeType==3){B.splitText(C);if (B==this.endContainer) this.setEnd(B.nextSibling,this.endOffset-this.startOffset);FCKDomTools.InsertAfterNode(B,A);return;}else{B.insertBefore(A,B.childNodes[C]||null);if (B==this.endContainer){this.endOffset++;this.collapsed=false;}}},deleteContents:function(){if (this.collapsed) return;this._ExecContentsAction(0);},extractContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(1,A);return A;},cloneContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(2,A);return A;},_ExecContentsAction:function(A,B){var C=this.startContainer;var D=this.endContainer;var E=this.startOffset;var F=this.endOffset;var G=false;var H=false;if (D.nodeType==3) D=D.splitText(F);else{if (D.childNodes.length>0){if (F>D.childNodes.length-1){D=FCKDomTools.InsertAfterNode(D.lastChild,this._Document.createTextNode(''));H=true;}else D=D.childNodes[F];}};if (C.nodeType==3){C.splitText(E);if (C==D) D=C.nextSibling;}else{if (C.childNodes.length>0&&E<=C.childNodes.length-1){if (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else C=C.childNodes[E].previousSibling;}};var I=FCKDomTools.GetParents(C);var J=FCKDomTools.GetParents(D);var i,topStart,topEnd;for (i=0;i<I.length;i++){topStart=I[i];topEnd=J[i];if (topStart!=topEnd) break;};var K,levelStartNode,levelClone,currentNode,currentSibling;if (B) K=B.RootNode;for (var j=i;j<I.length;j++){levelStartNode=I[j];if (K&&levelStartNode!=C) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==C));currentNode=levelStartNode.nextSibling;while(currentNode){if (currentNode==J[j]||currentNode==D) break;currentSibling=currentNode.nextSibling;if (A==2) K.appendChild(currentNode.cloneNode(true));else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.appendChild(currentNode);};currentNode=currentSibling;};if (K) K=levelClone;};if (B) K=B.RootNode;for (var k=i;k<J.length;k++){levelStartNode=J[k];if (A>0&&levelStartNode!=D) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==D));if (!I[k]||levelStartNode.parentNode!=I[k].parentNode){currentNode=levelStartNode.previousSibling;while(currentNode){if (currentNode==I[k]||currentNode==C) break;currentSibling=currentNode.previousSibling;if (A==2) K.insertBefore(currentNode.cloneNode(true),K.firstChild);else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.insertBefore(currentNode,K.firstChild);};currentNode=currentSibling;}};if (K) K=levelClone;};if (A==2){var L=this.startContainer;if (L.nodeType==3){L.data+=L.nextSibling.data;L.parentNode.removeChild(L.nextSibling);};var M=this.endContainer;if (M.nodeType==3&&M.nextSibling){M.data+=M.nextSibling.data;M.parentNode.removeChild(M.nextSibling);}}else{if (topStart&&topEnd&&(C.parentNode!=topStart.parentNode||D.parentNode!=topEnd.parentNode)){var N=FCKDomTools.GetIndexOf(topEnd);if (G&&topEnd.parentNode==C.parentNode) N--;this.setStart(topEnd.parentNode,N);};this.collapse(true);};if(G) C.parentNode.removeChild(C);if(H&&D.parentNode) D.parentNode.removeChild(D);},cloneRange:function(){return FCKW3CRange.CreateFromRange(this._Document,this);}};
+var FCKEnterKey=function(A,B,C,D){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var E=new FCKKeystrokeHandler(false);E._EnterKey=this;E.OnKeystroke=FCKEnterKey_OnKeystroke;E.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[9,'Tab'],[8,'Backspace'],[CTRL+8,'CtrlBackspace'],[46,'Delete']]);if (D>0){this.TabText='';while (D-->0) this.TabText+='\xa0';};E.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();break;case 'Tab':return C.DoTab();break;case 'CtrlBackspace':return C.DoCtrlBackspace();break;}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){FCKUndo.SaveUndoStep();this._HasShift=(B===true);var C=FCKSelection.GetParentElement();var D=new FCKElementPath(C);var E=A||this.EnterMode;if (E=='br'||D.Block&&D.Block.tagName.toLowerCase()=='pre') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(E);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};var C=B.CheckIsCollapsed();if (!C){if (FCKBrowserInfo.IsIE&&this.Window.document.selection.type.toLowerCase()=="control"){var D=this.Window.document.selection.createRange();for (var i=D.length-1;i>=0;i--){var E=D.item(i);E.parentNode.removeChild(E);};return true;};return false;};var F=B.StartBlock;var G=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&F&&G){if (!C){var H=B.CheckEndOfBlock();B.DeleteContents();if (F!=G){B.SetStart(G,1);B.SetEnd(G,1);};B.Select();A=(F==G);};if (B.CheckStartOfBlock()){var I=B.StartBlock;var J=FCKDomTools.GetPreviousSourceElement(I,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,J,I);}else if (FCKBrowserInfo.IsGeckoLike){B.Select();}};B.Release();return A;};FCKEnterKey.prototype.DoCtrlBackspace=function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(this.Window);A.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(A,this.Window.document.body)){this._FixIESelectAllBug(A);return true;};return false;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&&C&&C.nodeName.IEquals('LI')&&C.parentNode.parentNode.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};if (B&&B.nodeName.IEquals('LI')){var E=FCKDomTools.GetLastChild(B,['UL','OL']);while (E){B=FCKDomTools.GetLastChild(E,'LI');E=FCKDomTools.GetLastChild(B,['UL','OL']);}};if (B&&C){if (C.nodeName.IEquals('LI')&&!B.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};var F=C.parentNode;var G=B.nodeName.toLowerCase();if (FCKListsLib.EmptyElements[G]!=null||G=='table'){FCKDomTools.RemoveNode(B);D=true;}else{FCKDomTools.RemoveNode(C);while (F.innerHTML.Trim().length==0){var H=F.parentNode;H.removeChild(F);F=H;};FCKDomTools.LTrimNode(C);FCKDomTools.RTrimNode(B);A.SetStart(B,2,true);A.Collapse(true);var I=A.CreateBookmark(true);if (!C.tagName.IEquals(['TABLE'])) FCKDomTools.MoveChildren(C,B);A.SelectBookmark(I);D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){FCKUndo.SaveUndoStep();var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};if (B.CheckIsCollapsed()&&B.CheckEndOfBlock(FCKBrowserInfo.IsGeckoLike)){var C=B.StartBlock;var D=FCKTools.GetElementAscensor(C,'td');var E=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL','TR'],true);if (D){var F=FCKTools.GetElementAscensor(E,'td');if (F!=D) return true;};A=this._ExecuteBackspace(B,C,E);};B.Release();return A;};FCKEnterKey.prototype.DoTab=function(){var A=new FCKDomRange(this.Window);A.MoveToSelection();var B=A._Range.startContainer;while (B){if (B.nodeType==1){var C=B.tagName.toLowerCase();if (C=="tr"||C=="td"||C=="th"||C=="tbody"||C=="table") return false;else break;};B=B.parentNode;};if (this.TabText){A.DeleteContents();A.InsertNode(this.Window.document.createTextNode(this.TabText));A.Collapse(false);A.Select();};return true;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A,B){var C=B||new FCKDomRange(this.Window);var D=C.SplitBlock();if (D){var E=D.PreviousBlock;var F=D.NextBlock;var G=D.WasStartOfBlock;var H=D.WasEndOfBlock;if (!D.WasStartOfBlock&&!D.WasEndOfBlock){if (F.nodeName.IEquals('li')&&F.firstChild&&F.firstChild.nodeName.IEquals(['ul','ol'])) F.insertBefore(F.ownerDocument.createTextNode('\xa0'),F.firstChild);if (F) C.MoveToElementEditStart(F);}else{if (G&&H&&E.tagName.toUpperCase()=='LI'){C.MoveToElementStart(E);this._OutdentWithSelection(E,C);C.Release();return true;};var I;if (E){var J=E.tagName.toUpperCase();if (!this._HasShift&&!(/^H[1-6]$/).test(J)){I=FCKDomTools.CloneElement(E);}}else if (F) I=FCKDomTools.CloneElement(F);if (!I) I=this.Window.document.createElement(A);var K=D.ElementPath;if (K){var L=I;for (var i=0,len=K.Elements.length;i<len;i++){var M=K.Elements[i];if (M==K.Block||M==K.BlockLimit) break;if (FCKListsLib.InlineChildReqElements[M.nodeName.toLowerCase()]) L=L.appendChild(FCKDomTools.CloneElement(M));}};if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);C.InsertNode(I);if (FCKBrowserInfo.IsIE){C.MoveToNodeContents(I);C.Select();};C.MoveToElementEditStart(G&&!H?F:I);};if (FCKBrowserInfo.IsSafari) FCKDomTools.ScrollIntoView(F||I,false);else if (FCKBrowserInfo.IsGeckoLike) (F||I).scrollIntoView(false);C.Select();};C.Release();return true;};FCKEnterKey.prototype._ExecuteEnterBr=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){B.DeleteContents();B.MoveToSelection();var C=B.CheckStartOfBlock();var D=B.CheckEndOfBlock();var E=B.StartBlock?B.StartBlock.tagName.toUpperCase():'';var F=this._HasShift;var G=false;if (!F&&E=='LI') return this._ExecuteEnterBlock(null,B);if (!F&&D&&(/^H[1-6]$/).test(E)){FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createElement('br'));if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createTextNode(''));B.SetStart(B.StartBlock.nextSibling,FCKBrowserInfo.IsIE?3:1);}else{var H;G=E.IEquals('pre');if (G) H=this.Window.document.createTextNode(FCKBrowserInfo.IsIE?'\r':'\n');else H=this.Window.document.createElement('br');B.InsertNode(H);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(H,this.Window.document.createTextNode(''));if (D&&FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H.parentNode);if (FCKBrowserInfo.IsIE) B.SetStart(H,4);else B.SetStart(H.nextSibling,1);if (!FCKBrowserInfo.IsIE){var I=null;if (FCKBrowserInfo.IsOpera) I=this.Window.document.createElement('span');else I=this.Window.document.createElement('br');H.parentNode.insertBefore(I,H.nextSibling);if (FCKBrowserInfo.IsSafari) FCKDomTools.ScrollIntoView(I,false);else I.scrollIntoView(false);I.parentNode.removeChild(I);}};B.Collapse(true);B.Select(G);};B.Release();return true;};FCKEnterKey.prototype._OutdentWithSelection=function(A,B){var C=B.CreateBookmark();FCKListHandler.OutdentListItem(A);B.MoveToBookmark(C);B.Select();};FCKEnterKey.prototype._CheckIsAllContentsIncluded=function(A,B){var C=false;var D=false;if (A.StartContainer==B||A.StartContainer==B.firstChild) C=(A._Range.startOffset==0);if (A.EndContainer==B||A.EndContainer==B.lastChild){var E=A.EndContainer.nodeType==3?A.EndContainer.length:A.EndContainer.childNodes.length;D=(A._Range.endOffset==E);};return C&&D;};FCKEnterKey.prototype._FixIESelectAllBug=function(A){var B=this.Window.document;B.body.innerHTML='';var C;if (FCKConfig.EnterMode.IEquals(['div','p'])){C=B.createElement(FCKConfig.EnterMode);B.body.appendChild(C);}else C=B.body;A.MoveToNodeContents(C);A.Collapse(true);A.Select();A.Release();};
+var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B,i=0;while((B=this._Items[i++])) B.ProcessDocument(A);};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCK.EditorDocument.createElement('IMG');C.className=A;C.src=FCKConfig.FullBasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0){if (C.innerHTML!==''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.childNodes.length==1&&C.childNodes[0].style&&C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKFlashProcessor=FCKDocumentProcessor.AppendNew();FCKFlashProcessor.ProcessDocument=function(A){var B=FCK.IsDirty();var C=A.getElementsByTagName('EMBED');var D;var i=C.length-1;while (i>=0&&(D=C[i--])){var E=D.attributes['type'];if ((D.src&&D.src.EndsWith('.swf',true))||(E&&E.nodeValue=='application/x-shockwave-flash')){var F=D.cloneNode(true);var G=FCKDocumentProcessor_CreateFakeImage('FCK__Flash',F);G.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(G,D);D.parentNode.insertBefore(G,D);D.parentNode.removeChild(D);}};if (!B) FCK.ResetIsDirty();};FCKFlashProcessor.RefreshView=function(A,B){if (B.getAttribute('width')>0) A.style.width=FCKTools.ConvertHtmlSizeToStyle(B.getAttribute('width'));if (B.getAttribute('height')>0) A.style.height=FCKTools.ConvertHtmlSizeToStyle(B.getAttribute('height'));};FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length>0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length>0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};if (FCKBrowserInfo.IsIE){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('HR');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){var D=A.createElement('hr');D.mergeAttributes(C,true);FCKDomTools.InsertAfterNode(C,D);C.parentNode.removeChild(C);}}};FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('INPUT');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.type=='hidden'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__InputHidden',C.cloneNode(true));D.setAttribute('_fckinputhidden','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}
+var FCKSelection=FCK.Selection={GetParentBlock:function(){var A=this.GetParentElement();while (A){if (FCKListsLib.BlockBoundaries[A.nodeName.toLowerCase()]) break;A=A.parentNode;};return A;},ApplyStyle:function(A){FCKStyles.ApplyStyle(new FCKStyle(A));}};
+FCKSelection.GetType=function(){try{var A=FCK.EditorDocument.selection.type;if (A=='Control'||A=='Text') return A;if (FCK.EditorDocument.selection.createRange().parentElement) return 'Text';}catch(e){};return 'None';};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=FCK.EditorDocument.selection.createRange();if (A&&A.item) return FCK.EditorDocument.selection.createRange().item(0);};return null;};FCKSelection.GetParentElement=function(){switch (this.GetType()){case 'Control':var A=FCKSelection.GetSelectedElement();return A?A.parentElement:null;case 'None':return null;default:return FCK.EditorDocument.selection.createRange().parentElement();}};FCKSelection.GetBoundaryParentElement=function(A){switch (this.GetType()){case 'Control':var B=FCKSelection.GetSelectedElement();return B?B.parentElement:null;case 'None':return null;default:var C=FCK.EditorDocument;var D=C.selection.createRange();D.collapse(A!==false);var B=D.parentElement();return FCKTools.GetElementDocument(B)==C?B:null;}};FCKSelection.SelectNode=function(A){FCK.Focus();FCK.EditorDocument.selection.empty();var B;try{B=FCK.EditorDocument.body.createControlRange();B.addElement(A);}catch(e){B=FCK.EditorDocument.body.createTextRange();B.moveToElementText(A);};B.select();};FCKSelection.Collapse=function(A){FCK.Focus();if (this.GetType()=='Text'){var B=FCK.EditorDocument.selection.createRange();B.collapse(A==null||A===true);B.select();}};FCKSelection.HasAncestorNode=function(A){var B;if (FCK.EditorDocument.selection.type=="Control"){B=this.GetSelectedElement();}else{var C=FCK.EditorDocument.selection.createRange();B=C.parentElement();};while (B){if (B.tagName==A) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B,oRange;if (!FCK.EditorDocument) return null;if (FCK.EditorDocument.selection.type=="Control"){oRange=FCK.EditorDocument.selection.createRange();for (i=0;i<oRange.length;i++){if (oRange(i).parentNode){B=oRange(i).parentNode;break;}}}else{oRange=FCK.EditorDocument.selection.createRange();B=oRange.parentElement();};while (B&&B.nodeName!=A) B=B.parentNode;return B;};FCKSelection.Delete=function(){var A=FCK.EditorDocument.selection;if (A.type.toLowerCase()!="none"){A.clear();};return A;};
+var FCKTableHandler={};FCKTableHandler.InsertRow=function(A){var B=FCKSelection.MoveToAncestorNode('TR');if (!B) return;var C=B.cloneNode(true);B.parentNode.insertBefore(C,B);FCKTableHandler.ClearRow(A?C:B);};FCKTableHandler.DeleteRows=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();var C=[];for (var i=0;i<B.length;i++){var D=FCKTools.GetElementAscensor(B[i],'TR');C[D.rowIndex]=D;};for (var i=C.length;i>=0;i--){if (C[i]) FCKTableHandler.DeleteRows(C[i]);};return;};var E=FCKTools.GetElementAscensor(A,'TABLE');if (E.rows.length==1){FCKTableHandler.DeleteTable(E);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();if (A.parentNode.childNodes.length==1) A.parentNode.parentNode.removeChild(A.parentNode);else A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(A){var B=null;var C=this.GetSelectedCells();if (C&&C.length) B=C[A?0:(C.length-1)];if (!B) return;var D=FCKTools.GetElementAscensor(B,'TABLE');var E=B.cellIndex;for (var i=0;i<D.rows.length;i++){var F=D.rows[i];if (F.cells.length<(E+1)) continue;B=F.cells[E].cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B);var G=F.cells[E];if (A) F.insertBefore(B,G);else if (G.nextSibling) F.insertBefore(B,G.nextSibling);else F.appendChild(B);}};FCKTableHandler.DeleteColumns=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();for (var i=B.length;i>=0;i--){if (B[i]) FCKTableHandler.DeleteColumns(B[i]);};return;};if (!A) return;var C=FCKTools.GetElementAscensor(A,'TABLE');var D=A.cellIndex;for (var i=C.rows.length-1;i>=0;i--){var E=C.rows[i];if (D==0&&E.cells.length==1){FCKTableHandler.DeleteRows(E);continue;};if (E.cells[D]) E.removeChild(E.cells[D]);}};FCKTableHandler.InsertCell=function(A,B){var C=null;var D=this.GetSelectedCells();if (D&&D.length) C=D[B?0:(D.length-1)];if (!C) return null;var E=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(E);if (!B&&C.cellIndex==C.parentNode.cells.length-1) C.parentNode.appendChild(E);else C.parentNode.insertBefore(E,B?C:C.nextSibling);return E;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler._MarkCells=function(A,B){for (var i=0;i<A.length;i++) A[i][B]=true;};FCKTableHandler._UnmarkCells=function(A,B){for (var i=0;i<A.length;i++){if (FCKBrowserInfo.IsIE) A[i].removeAttribute(B);else delete A[i][B];}};FCKTableHandler._ReplaceCellsByMarker=function(A,B,C){for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){if (A[i][j][B]) A[i][j]=C;}}};FCKTableHandler._GetMarkerGeometry=function(A,B,C,D){var E=0;var F=0;var G=0;var H=0;for (var i=C;A[B][i]&&A[B][i][D];i++) E++;for (var i=C-1;A[B][i]&&A[B][i][D];i--){E++;G++;};for (var i=B;A[i]&&A[i][C]&&A[i][C][D];i++) F++;for (var i=B-1;A[i]&&A[i][C]&&A[i][C][D];i--){F++;H++;};return { 'width':E,'height':F,'x':G,'y':H };};FCKTableHandler.CheckIsSelectionRectangular=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<1) return false;this._MarkCells(A,'_CellSelected');var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=A[0].parentNode.rowIndex;var D=this._GetCellIndexSpan(B,C,A[0]);var E=this._GetMarkerGeometry(B,C,D,'_CellSelected');var F=D-E.x;var G=C-E.y;if (E.width>=E.height){for (D=F;D<F+E.width;D++){C=G+(D-F) % E.height;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}}else{for (C=G;C<G+E.height;C++){D=F+(C-G) % E.width;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}};this._UnmarkCells(A,'_CellSelected');return true;};FCKTableHandler.MergeCells=function(){var A=this.GetSelectedCells();if (A.length<2) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);this._MarkCells(A,'_SelectedCells');var F=this._GetMarkerGeometry(C,D,E,'_SelectedCells');var G=E-F.x;var H=D-F.y;var I=B.ownerDocument.createDocumentFragment();for (var i=0;i<F.height;i++){var J=0;for (var j=0;j<F.width;j++){var K=C[H+i][G+j];while (K.childNodes.length>0){var L=K.removeChild(K.firstChild);if (L.nodeType!=1||(L.getAttribute('type',2)!='_moz'&&L.getAttribute('_moz_dirty')!=null)){I.appendChild(L);J++;}}};if (J>0) I.appendChild(B.ownerDocument.createElement('br'));};this._ReplaceCellsByMarker(C,'_SelectedCells',B);this._UnmarkCells(A,'_SelectedCells');this._InstallTableMap(C,B.parentNode.parentNode);B.appendChild(I);if (FCKBrowserInfo.IsGeckoLike&&(!B.firstChild)) FCKTools.AppendBogusBr(B);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeRight=function(){var A=this.GetMergeRightTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCK.EditorDocument.createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));D.parentNode.removeChild(D);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeDown=function(){var A=this.GetMergeDownTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=B.ownerDocument.createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));if (E.firstChild) E.insertBefore(D.ownerDocument.createElement('br'),E.firstChild);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.HorizontalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;if (F>1){var G=Math.ceil(F/2);var H=B.ownerDocument.createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H);var I=E+G;var J=E+F;var K=isNaN(B.rowSpan)?1:B.rowSpan;for (var r=D;r<D+K;r++){for (var i=I;i<J;i++) C[r][i]=H;}}else{var L=[];for (var i=0;i<C.length;i++){var M=C[i].slice(0,E);if (C[i].length<=E){L.push(M);continue;};if (C[i][E]==B){M.push(B);M.push(B.ownerDocument.createElement('td'));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(M[M.length-1]);}else{M.push(C[i][E]);M.push(C[i][E]);};for (var j=E+1;j<C[i].length;j++) M.push(C[i][j]);L.push(M);};C=L;};this._InstallTableMap(C,B.parentNode.parentNode);};FCKTableHandler.VerticalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=FCKTableHandler._GetCellIndexSpan(C,B.parentNode.rowIndex,B);var E=B.rowSpan;var F=B.parentNode.rowIndex;if (isNaN(E)) E=1;if (E>1){B.rowSpan=Math.ceil(E/2);var G=F+Math.ceil(E/2);var H=null;for (var i=D+1;i<C[G].length;i++){if (C[G][i].parentNode.rowIndex==G){H=C[G][i];break;}};var I=FCK.EditorDocument.createElement('td');I.rowSpan=Math.floor(E/2);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);B.parentNode.parentNode.rows[G].insertBefore(I,H);}else{var G=F+1;var K=FCK.EditorDocument.createElement('tr');B.parentNode.parentNode.insertBefore(K,B.parentNode.parentNode.rows[G]);for (var i=0;i<C[F].length;){var L=C[F][i].colSpan;if (isNaN(L)||L<1) L=1;if (i==D){i+=L;continue;};var M=C[F][i].rowSpan;if (isNaN(M)) M=1;C[F][i].rowSpan=M+1;i+=L;};var I=FCK.EditorDocument.createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);K.appendChild(I);}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length<B+1) return null;var D=A[B];for (var c=0;c<D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCellLocation=function(A,B){for (var i=0;i<A.length;i++){for (var c=0;c<A[i].length;c++){if (A[i][c]==B) return [i,c];}};return null;};FCKTableHandler._GetColumnCells=function(A,B){var C=[];for (var r=0;r<A.length;r++){var D=A[r][B];if (D&&(C.length==0||C[C.length-1]!=D)) C[C.length]=D;};return C;};FCKTableHandler._CreateTableMap=function(A){var B=A.rows;var r=-1;var C=[];for (var i=0;i<B.length;i++){r++;if (!C[r]) C[r]=[];var c=-1;for (var j=0;j<B[i].cells.length;j++){var D=B[i].cells[j];c++;while (C[r][c]) c++;var E=isNaN(D.colSpan)?1:D.colSpan;var F=isNaN(D.rowSpan)?1:D.rowSpan;for (var G=0;G<F;G++){if (!C[r+G]) C[r+G]=[];for (var H=0;H<E;H++){C[r+G][c+H]=B[i].cells[j];}};c+=E-1;}};return C;};FCKTableHandler._InstallTableMap=function(A,B){while (B.rows.length>0){var C=B.rows[0];C.parentNode.removeChild(C);};for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (D.parentNode) D.parentNode.removeChild(D);D.colSpan=D.rowSpan=1;}};var E=0;for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (!D) continue;if (j>E) E=j;if (D._colScanned===true) continue;if (A[i][j-1]==D) D.colSpan++;if (A[i][j+1]!=D) D._colScanned=true;}};for (var i=0;i<=E;i++){for (var j=0;j<A.length;j++){if (!A[j]) continue;var D=A[j][i];if (!D||D._rowScanned===true) continue;if (A[j-1]&&A[j-1][i]==D) D.rowSpan++;if (!A[j+1]||A[j+1][i]!=D) D._rowScanned=true;}};for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (FCKBrowserInfo.IsIE){D.removeAttribute('_colScanned');D.removeAttribute('_rowScanned');}else{delete D._colScanned;delete D._rowScanned;}}};for (var i=0;i<A.length;i++){var I=B.ownerDocument.createElement('tr');for (var j=0;j<A[i].length;){var D=A[i][j];if (A[i-1]&&A[i-1][j]==D){j+=D.colSpan;continue;};I.appendChild(D);j+=D.colSpan;if (D.colSpan==1) D.removeAttribute('colspan');if (D.rowSpan==1) D.removeAttribute('rowspan');};B.appendChild(I);}};FCKTableHandler._MoveCaretToCell=function (A,B){var C=new FCKDomRange(FCK.EditorWindow);C.MoveToNodeContents(A);C.Collapse(B);C.Select();};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){B[i].innerHTML='';if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B[i]);}};FCKTableHandler.GetMergeRightTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=E+(isNaN(B.colSpan)?1:B.colSpan);var G=C[D][F];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,D,F,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.height!=I.height||H.y!=I.y) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};FCKTableHandler.GetMergeDownTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=D+(isNaN(B.rowSpan)?1:B.rowSpan);if (!C[F]) return null;var G=C[F][E];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,F,E,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.width!=I.width||H.x!=I.x) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};
+FCKTableHandler.GetSelectedCells=function(){if (FCKSelection.GetType()=='Control'){var A=FCKSelection.MoveToAncestorNode('TD');return A?[A]:[];};var B=[];var C=FCK.EditorDocument.selection.createRange();var D=FCKSelection.GetParentElement();if (D&&D.tagName.Equals('TD','TH')) B[0]=D;else{D=FCKSelection.MoveToAncestorNode('TABLE');if (D){for (var i=0;i<D.cells.length;i++){var E=FCK.EditorDocument.body.createTextRange();E.moveToElementText(D.cells[i]);if (C.inRange(E)||(C.compareEndPoints('StartToStart',E)>=0&&C.compareEndPoints('StartToEnd',E)<=0)||(C.compareEndPoints('EndToStart',E)>=0&&C.compareEndPoints('EndToEnd',E)<=0)){B[B.length]=D.cells[i];}}}};return B;};
+var FCKXml=function(){this.Error=false;};FCKXml.GetAttribute=function(A,B,C){var D=A.attributes.getNamedItem(B);return D?D.value:C;};FCKXml.TransformToObject=function(A){if (!A) return null;var B={};var C=A.attributes;for (var i=0;i<C.length;i++){var D=C[i];B[D.name]=D.value;};var E=A.childNodes;for (i=0;i<E.length;i++){var F=E[i];if (F.nodeType==1){var G='$'+F.nodeName;var H=B[G];if (!H) H=B[G]=[];H.push(this.TransformToObject(F));}};return B;}
+FCKXml.prototype={LoadUrl:function(A){this.Error=false;var B=FCKTools.CreateXmlObject('XmlHttp');if (!B){this.Error=true;return;};B.open("GET",A,false);B.send(null);if (B.status==200||B.status==304) this.DOMDocument=B.responseXML;else if (B.status==0&&B.readyState==4){this.DOMDocument=FCKTools.CreateXmlObject('DOMDocument');this.DOMDocument.async=false;this.DOMDocument.resolveExternals=false;this.DOMDocument.loadXML(B.responseText);}else{this.DOMDocument=null;};if (this.DOMDocument==null||this.DOMDocument.firstChild==null){this.Error=true;if (window.confirm('Error loading "'+A+'"\r\nDo you want to see more info?')) alert('URL requested: "'+A+'"\r\nServer response:\r\nStatus: '+B.status+'\r\nResponse text:\r\n'+B.responseText);}},SelectNodes:function(A,B){if (this.Error) return [];if (B) return B.selectNodes(A);else return this.DOMDocument.selectNodes(A);},SelectSingleNode:function(A,B){if (this.Error) return null;if (B) return B.selectSingleNode(A);else return this.DOMDocument.selectSingleNode(A);}};
var FCKNamedCommand=function(A){this.Name=A;};FCKNamedCommand.prototype.Execute=function(){FCK.ExecuteNamedCommand(this.Name);};FCKNamedCommand.prototype.GetState=function(){return FCK.GetNamedCommandState(this.Name);};
-var FCKDialogCommand=function(A,B,C,D,E,F,G){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.GetStateFunction=F;this.GetStateParam=G;this.Resizable=false;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height,null,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return 0;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFontNameCommand=function(){this.Name='FontName';};FCKFontNameCommand.prototype.Execute=function(A){if (A==null||A==""){}else FCK.ExecuteNamedCommand('FontName',A);};FCKFontNameCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontName');};var FCKFontSizeCommand=function(){this.Name='FontSize';};FCKFontSizeCommand.prototype.Execute=function(A){if (typeof(A)=='string') A=parseInt(A,10);if (A==null||A==''){FCK.ExecuteNamedCommand('FontSize',3);}else FCK.ExecuteNamedCommand('FontSize',A);};FCKFontSizeCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontSize');};var FCKFormatBlockCommand=function(){this.Name='FormatBlock';};FCKFormatBlockCommand.prototype.Execute=function(A){if (A==null||A=='') FCK.ExecuteNamedCommand('FormatBlock','<P>');else if (A=='div'&&FCKBrowserInfo.IsGecko) FCK.ExecuteNamedCommand('FormatBlock','div');else FCK.ExecuteNamedCommand('FormatBlock','<'+A+'>');};FCKFormatBlockCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FormatBlock');};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return 0;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.GetParentForm();if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};A.submit();};FCKSaveCommand.prototype.GetState=function(){return 0;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};FCKNewPageCommand.prototype.GetState=function(){return 0;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==0?0:1);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Undo();else FCK.ExecuteNamedCommand('Undo');};FCKUndoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckUndoState()?0:-1);else return FCK.GetNamedCommandState('Undo');};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Redo();else FCK.ExecuteNamedCommand('Redo');};FCKRedoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckRedoState()?0:-1);else return FCK.GetNamedCommandState('Redo');};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none"> </span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);A=FCK.InsertElement(A);};FCKPageBreakCommand.prototype.GetState=function(){return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsGecko){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCK.Selection.SelectNode(A);};FCK.ExecuteNamedCommand(this.Name);if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);};FCKUnlinkCommand.prototype.GetState=function(){var A=FCK.GetNamedCommandState(this.Name);if (A==0&&FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&&B.name.length>0&&B.href.length==0);if (C) A=-1;};return A;};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype=new FCKNamedCommand('SelectAll');FCKSelectAllCommand.prototype.GetState=function(){return 0;}
+var FCKStyleCommand=function(){};FCKStyleCommand.prototype={Name:'Style',Execute:function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) FCK.Styles.RemoveStyle(B.Style);else FCK.Styles.ApplyStyle(B.Style);FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (!FCK.EditorDocument) return -1;if (FCKSelection.GetType()=='Control'){var A=FCKSelection.GetSelectedElement();if (!A||!FCKStyles.CheckHasObjectStyle(A.nodeName.toLowerCase())) return -1;};return 0;}};
+var FCKDialogCommand=function(A,B,C,D,E,F,G){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.GetStateFunction=F;this.GetStateParam=G;this.Resizable=false;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height,null,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return 0;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFormatBlockCommand=function(){};FCKFormatBlockCommand.prototype={Name:'FormatBlock',Execute:FCKStyleCommand.prototype.Execute,GetState:function(){return FCK.EditorDocument?0:-1;}};var FCKFontNameCommand=function(){};FCKFontNameCommand.prototype={Name:'FontName',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKFontSizeCommand=function(){};FCKFontSizeCommand.prototype={Name:'FontSize',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return 0;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.GetParentForm();if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};if (typeof(A.submit)=='function') A.submit();else A.submit.click();};FCKSaveCommand.prototype.GetState=function(){return 0;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetData('');FCKUndo.Typing=true;FCK.Focus();};FCKNewPageCommand.prototype.GetState=function(){return 0;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==0?0:1);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){FCKUndo.Undo();};FCKUndoCommand.prototype.GetState=function(){return (FCKUndo.CheckUndoState()?0:-1);};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){FCKUndo.Redo();};FCKRedoCommand.prototype.GetState=function(){return (FCKUndo.CheckRedoState()?0:-1);};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none"> </span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.SplitBlock();if (C.NextBlock) C.NextBlock.parentNode.insertBefore(A,C.NextBlock);else C.PreviousBlock.parentNode.insertBefore(A,C.PreviousBlock.nextSibling);FCK.Events.FireEvent('OnSelectionChange');};FCKPageBreakCommand.prototype.GetState=function(){return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (FCKBrowserInfo.IsGeckoLike){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCKTools.RemoveOuterTags(A);return;};FCK.ExecuteNamedCommand(this.Name);};FCKUnlinkCommand.prototype.GetState=function(){var A=FCK.GetNamedCommandState(this.Name);if (A==0&&FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&&B.name.length>0&&B.href.length==0);if (C) A=-1;};return A;};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype.Execute=function(){if (FCK.EditMode==0){FCK.ExecuteNamedCommand('SelectAll');}else{var A=FCK.EditingArea.Textarea;if (FCKBrowserInfo.IsIE){A.createTextRange().execCommand('SelectAll');}else{A.selectionStart=0;A.selectionEnd=A.value.length;};A.focus();}};FCKSelectAllCommand.prototype.GetState=function(){return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){return FCK.GetNamedCommandState('Paste');}};var FCKRuleCommand=function(){this.Name='Rule';};FCKRuleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();FCK.InsertElement('hr');},GetState:function(){return FCK.GetNamedCommandState('InsertHorizontalRule');}};var FCKCopyCommand=function(){this.Name='Copy';};FCKCopyCommand.prototype={Execute:function(){FCK.ExecuteNamedCommand(this.Name);},GetState:function(){return FCK.GetNamedCommandState('Cut');}};var FCKAnchorDeleteCommand=function(){this.Name='AnchorDelete';};FCKAnchorDeleteCommand.prototype={Execute:function(){if (FCK.Selection.GetType()=='Control'){FCK.Selection.Delete();}else{var A=FCK.Selection.GetSelectedElement();if (A){if (A.tagName=='IMG'&&A.getAttribute('_fckanchor')) oAnchor=FCK.GetRealElement(A);else A=null;};if (!A){oAnchor=FCK.Selection.MoveToAncestorNode('A');if (oAnchor) FCK.Selection.SelectNode(oAnchor);};if (oAnchor.href.length!=0){oAnchor.removeAttribute('name');if (FCKBrowserInfo.IsIE) oAnchor.className=oAnchor.className.replace(FCKRegexLib.FCK_Class,'');return;};if (A){A.parentNode.removeChild(A);return;};if (oAnchor.innerHTML.length==0){oAnchor.parentNode.removeChild(oAnchor);return;};FCKTools.RemoveOuterTags(oAnchor);};if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);},GetState:function(){return FCK.GetNamedCommandState('Unlink');}};
+var FCKShowBlockCommand=function(A,B){this.Name=A;if (B!=undefined) this._SavedState=B;else this._SavedState=null;};FCKShowBlockCommand.prototype.Execute=function(){var A=this.GetState();if (A==-1) return;var B=FCK.EditorDocument.body;if (A==1) B.className=B.className.replace(/(^| )FCK__ShowBlocks/g,'');else B.className+=' FCK__ShowBlocks';FCK.Events.FireEvent('OnSelectionChange');};FCKShowBlockCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;if (!FCK.EditorDocument) return 0;if (/FCK__ShowBlocks(?:\s|$)/.test(FCK.EditorDocument.body.className)) return 1;return 0;};FCKShowBlockCommand.prototype.SaveState=function(){this._SavedState=this.GetState();};FCKShowBlockCommand.prototype.RestoreState=function(){if (this._SavedState!=null&&this.GetState()!=this._SavedState) this.Execute();};
var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=(FCKConfig.SpellChecker=='ieSpell'||FCKConfig.SpellChecker=='SpellerPages');};FCKSpellCheckCommand.prototype.Execute=function(){switch (FCKConfig.SpellChecker){case 'ieSpell':this._RunIeSpell();break;case 'SpellerPages':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);break;}};FCKSpellCheckCommand.prototype._RunIeSpell=function(){try{var A=new ActiveXObject("ieSpell.ieSpellExtension");A.CheckAllLinkedDocuments(FCK.EditorDocument);}catch(e){if(e.number==-2146827859){if (confirm(FCKLang.IeSpellDownload)) window.open(FCKConfig.IeSpellDownloadUrl,'IeSpellDownload');}else alert('Error Loading ieSpell: '+e.message+' ('+e.number+')');}};FCKSpellCheckCommand.prototype.GetState=function(){return this.IsEnabled?0:-1;}
-var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;var B;if (FCKBrowserInfo.IsIE) B=window;else if (FCK.ToolbarSet._IFrame) B=FCKTools.GetElementWindow(FCK.ToolbarSet._IFrame);else B=window.parent;this._Panel=new FCKPanel(B,true);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){FCK._ActiveColorPanelType=this.Type;this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){if (FCK._ActiveColorPanelType=='ForeColor') FCK.ExecuteNamedCommand('ForeColor',A);else if (FCKBrowserInfo.IsGeckoLike){if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,false);FCK.ExecuteNamedCommand('hilitecolor',A);if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,true);}else FCK.ExecuteNamedCommand('BackColor',A);delete FCK._ActiveColorPanelType;};FCKTextColorCommand.prototype.GetState=function(){return 0;};function FCKTextColorCommand_OnMouseOver() { this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut() { this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(){this.className='ColorDeselected';this.Command.SetColor('#'+this.Color);this.Command._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(){this.className='ColorDeselected';this.Command.SetColor('');this.Command._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(){this.className='ColorDeselected';this.Command._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',400,330,this.Command.SetColor);};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';C.onmouseover=FCKTextColorCommand_OnMouseOver;C.onmouseout=FCKTextColorCommand_OnMouseOut;return C;};var D=B.appendChild(A.createElement("TABLE"));D.className='ForceBaseFont';D.style.tableLayout='fixed';D.cellPadding=0;D.cellSpacing=0;D.border=0;D.width=150;var E=D.insertRow(-1).insertCell(-1);E.colSpan=8;var C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table cellspacing="0" cellpadding="0" width="100%" border="0">\n <tr>\n <td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\n <td nowrap width="100%" align="center">'+FCKLang.ColorAutomatic+'</td>\n </tr>\n </table>';C.Command=this;C.onclick=FCKTextColorCommand_AutoOnClick;var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8&&H<G.length;i++,H++){C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.Color=G[H];C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #'+G[H]+'"></div></div>';C.Command=this;C.onclick=FCKTextColorCommand_OnClick;}};E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">'+FCKLang.ColorMoreColors+'</td></tr></table>';C.Command=this;C.onclick=FCKTextColorCommand_MoreOnClick;}
+var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;var B;if (FCKBrowserInfo.IsIE) B=window;else if (FCK.ToolbarSet._IFrame) B=FCKTools.GetElementWindow(FCK.ToolbarSet._IFrame);else B=window.parent;this._Panel=new FCKPanel(B);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){FCKUndo.SaveUndoStep();var B=FCKStyles.GetStyle('_FCK_'+(this.Type=='ForeColor'?'Color':'BackColor'));if (!A||A.length==0) FCK.Styles.RemoveStyle(B);else{B.SetVariable('Color',A);FCKStyles.ApplyStyle(B);};FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');};FCKTextColorCommand.prototype.GetState=function(){return 0;};function FCKTextColorCommand_OnMouseOver(){this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut(){this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(A,B,C){this.className='ColorDeselected';B.SetColor(C);B._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(A,B){this.className='ColorDeselected';B.SetColor('');B._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(A,B){this.className='ColorDeselected';B._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',400,330,FCKTools.Hitch(B,'SetColor'));};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';FCKTools.AddEventListenerEx(C,'mouseover',FCKTextColorCommand_OnMouseOver);FCKTools.AddEventListenerEx(C,'mouseout',FCKTextColorCommand_OnMouseOut);return C;};var D=B.appendChild(A.createElement("TABLE"));D.className='ForceBaseFont';D.style.tableLayout='fixed';D.cellPadding=0;D.cellSpacing=0;D.border=0;D.width=150;var E=D.insertRow(-1).insertCell(-1);E.colSpan=8;var C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table cellspacing="0" cellpadding="0" width="100%" border="0">\n <tr>\n <td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\n <td nowrap width="100%" align="center">'+FCKLang.ColorAutomatic+'</td>\n </tr>\n </table>';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_AutoOnClick,this);if (!FCKBrowserInfo.IsIE) C.style.width='96%';var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8;i++,H++){if (H<G.length){var J=G[H].split('/');var K='#'+J[0];var L=J[1]||K;};C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: '+K+'"></div></div>';if (H>=G.length) C.style.visibility='hidden';else FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_OnClick,[this,L]);}};if (FCKConfig.EnableMoreFontColors){E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">'+FCKLang.ColorMoreColors+'</td></tr></table>';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_MoreOnClick,this);};if (!FCKBrowserInfo.IsIE) C.style.width='96%';};
var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){return FCK.GetNamedCommandState('Paste');};
var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCKConfig.ForcePasteAsPlainText) return -1;else return FCK.GetNamedCommandState('Paste');};
-var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();switch (this.Name){case 'TableInsertRow':FCKTableHandler.InsertRow();break;case 'TableDeleteRows':FCKTableHandler.DeleteRows();break;case 'TableInsertColumn':FCKTableHandler.InsertColumn();break;case 'TableDeleteColumns':FCKTableHandler.DeleteColumns();break;case 'TableInsertCell':FCKTableHandler.InsertCell();break;case 'TableDeleteCells':FCKTableHandler.DeleteCells();break;case 'TableMergeCells':FCKTableHandler.MergeCells();break;case 'TableSplitCell':FCKTableHandler.SplitCell();break;case 'TableDelete':FCKTableHandler.DeleteTable();break;default:alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){return 0;}
-var FCKStyleCommand=function(){this.Name='Style';this.StylesLoader=new FCKStylesLoader();this.StylesLoader.Load(FCKConfig.StylesXmlPath);this.Styles=this.StylesLoader.Styles;};FCKStyleCommand.prototype.Execute=function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) B.Style.RemoveFromSelection();else B.Style.ApplyToSelection();FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent("OnSelectionChange");};FCKStyleCommand.prototype.GetState=function(){if (!FCK.EditorDocument) return -1;var A=FCK.EditorDocument.selection;if (FCKSelection.GetType()=='Control'){var e=FCKSelection.GetSelectedElement();if (e) return this.StylesLoader.StyleGroups[e.tagName]?0:-1;};return 0;};FCKStyleCommand.prototype.GetActiveStyles=function(){var A=[];if (FCKSelection.GetType()=='Control') this._CheckStyle(FCKSelection.GetSelectedElement(),A,false);else this._CheckStyle(FCKSelection.GetParentElement(),A,true);return A;};FCKStyleCommand.prototype._CheckStyle=function(A,B,C){if (!A) return;if (A.nodeType==1){var D=this.StylesLoader.StyleGroups[A.tagName];if (D){for (var i=0;i<D.length;i++){if (D[i].IsEqual(A)) B[B.length]=D[i];}}};if (C) this._CheckStyle(A.parentNode,B,C);}
-var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1) G._fckSavedStyles=FCKTools.SaveStyles(G);};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var H=FCKTools.GetViewPaneSize(C);B.position="absolute";B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=H.Width+"px";B.height=H.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent("onresize",FCKFitWindow_Resize);else C.removeEventListener("resize",FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();FCK.EditingArea.MakeEditable();FCK.Focus();};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';};
-var FCKCommands=FCK.Commands={};FCKCommands.LoadedCommands={};FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,390,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,170);break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,170);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,170);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',400,330);break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindTitle,'dialog/fck_find.html',340,170);break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgReplaceTitle,'dialog/fck_replace.html',340,200);break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,400);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,320);break;case 'Smiley':B=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight);break;case 'Table':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html',450,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',400,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,250);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'TableInsertRow':B=new FCKTableCommand('TableInsertRow');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumn':B=new FCKTableCommand('TableInsertColumn');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCell':B=new FCKTableCommand('TableInsertCell');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableSplitCell':B=new FCKTableCommand('TableSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,230);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,230);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,230);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,230);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,230);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,230);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,230);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,380);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,400);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();break;case 'SelectAll':B=new FCKSelectAllCommand();break;case 'Undefined':B=new FCKUndefinedCommand();break;default:if (FCKRegexLib.NamedCommands.test(A)) B=new FCKNamedCommand(A);else{alert(FCKLang.UnknownCommand.replace(/%1/g,A));return null;}};FCKCommands.LoadedCommands[A]=B;return B;};FCKCommands.GetFullPageState=function(){return FCKConfig.FullPage?0:-1;};
-var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();B=this.Document=this._Popup.document;FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var C=this._IFrame=this._Window.document.createElement('iframe');C.src='javascript:void(0)';C.allowTransparency=true;C.frameBorder='0';C.scrolling='no';C.style.position='absolute';C.style.zIndex=FCKConfig.FloatingPanelsZIndex;C.width=C.height=0;if (this._Window==window.parent&&window.frameElement) window.frameElement.parentNode.insertBefore(C,window.frameElement);else this._Window.document.body.appendChild(C);var D=C.contentWindow;B=this.Document=D.document;B.open();B.write('<html><head></head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();FCKTools.AddEventListenerEx(D,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(D,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;B.oncontextmenu=FCKTools.CancelEvent;this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;if (this._Popup){this._Popup.show(x,y,0,0,A);this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';D=this.MainNode.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,this.MainNode.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Lock();if (this.ParentPanel) this.ParentPanel.Lock();this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';D=this.MainNode.offsetWidth;if (!B) this._IFrame.width=1;if (!C) this._IFrame.height=1;D=this.MainNode.offsetWidth;var E=FCKTools.GetElementPosition(A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A,this._Window);if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=E.X;y+=E.Y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var F=FCKTools.GetViewPaneSize(this._Window);var G=FCKTools.GetScrollPosition(this._Window);var H=F.Height+G.Y;var I=F.Width+G.X;if ((x+D)>I) x-=x+D-I;if ((y+this.MainNode.offsetHeight)>H) y-=y+this.MainNode.offsetHeight-H;};if (x<0) x=0;this._IFrame.style.left=x+'px';this._IFrame.style.top=y+'px';var J=D;var K=this.MainNode.offsetHeight;this._IFrame.width=J;this._IFrame.height=K;this._IFrame.contentWindow.focus();};this._IsOpened=true;FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened) return;if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A,true);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&&!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;}
-var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B,eIconImage;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path;eIconImage.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url('+this.Path+')';}}else{B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path?this.Path:FCK_SPACER_PATH;};B.className='TB_Button_Image';return B;}
-var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||0;this.State=F||0;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=this.MainElement;if (B){FCKToolbarButtonUI_Cleanup.call(this);if (B.parentNode) B.parentNode.removeChild(B);B=this.MainElement=null;};var C=FCKTools.GetElementDocument(A);B=this.MainElement=C.createElement('DIV');B._FCKButton=this;B.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) B.onmousedown=FCKTools.CancelEvent;this.ChangeState(this.State,true);if (this.Style==0&&!this.ShowArrow){B.appendChild(this.Icon.CreateIconElement(C));}else{var D=B.appendChild(C.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==0||this.Style==2) F.appendChild(this.Icon.CreateIconElement(C));else F.appendChild(this._CreatePaddingElement(C));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(C.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(C));};F=E.insertCell(-1);var G=F.appendChild(C.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(C));};A.appendChild(B);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';e.onmouseover=FCKToolbarButton_OnMouseOverOff;e.onmouseout=FCKToolbarButton_OnMouseOutOff;e.onclick=FCKToolbarButton_OnClick;break;case 1:e.className='TB_Button_On';e.onmouseover=FCKToolbarButton_OnMouseOverOn;e.onmouseout=FCKToolbarButton_OnMouseOutOn;e.onclick=FCKToolbarButton_OnClick;break;case -1:e.className='TB_Button_Disabled';e.onmouseover=null;e.onmouseout=null;e.onclick=null;break;};this.State=A;};function FCKToolbarButtonUI_Cleanup(){if (this.MainElement){this.MainElement._FCKButton=null;this.MainElement=null;}};function FCKToolbarButton_OnMouseOverOn(){this.className='TB_Button_On_Over';};function FCKToolbarButton_OnMouseOutOn(){this.className='TB_Button_On';};function FCKToolbarButton_OnMouseOverOff(){this.className='TB_Button_Off_Over';};function FCKToolbarButton_OnMouseOutOff(){this.className='TB_Button_Off';};function FCKToolbarButton_OnClick(e){if (this._FCKButton.OnClick) this._FCKButton.OnClick(this._FCKButton);};
-var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (A==this._UIButton.State) return;this._UIButton.ChangeState(A);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);}
-var FCKSpecialCombo=function(A,B,C,D,E){this.FieldWidth=B||100;this.PanelWidth=C||150;this.PanelMaxHeight=D||150;this.Label=' ';this.Caption=A;this.Tooltip=A;this.Style=2;this.Enabled=true;this.Items={};this._Panel=new FCKPanel(E||window,true);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._PanelBox=this._Panel.MainNode.appendChild(this._Panel.Document.createElement('DIV'));this._PanelBox.className='SC_Panel';this._PanelBox.style.width=this.PanelWidth+'px';this._PanelBox.innerHTML='<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>';this._ItemsHolderEl=this._PanelBox.getElementsByTagName('TD')[0];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKSpecialCombo_Cleanup);};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(){this.className=this.originalClass;this.FCKSpecialCombo._Panel.Hide();this.FCKSpecialCombo.SetLabel(this.FCKItemLabel);if (typeof(this.FCKSpecialCombo.OnSelect)=='function') this.FCKSpecialCombo.OnSelect(this.FCKItemID,this);};FCKSpecialCombo.prototype.AddItem=function(A,B,C,D){var E=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));E.className=E.originalClass='SC_Item';E.innerHTML=B;E.FCKItemID=A;E.FCKItemLabel=C||A;E.FCKSpecialCombo=this;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;E.onmouseover=FCKSpecialCombo_ItemOnMouseOver;E.onmouseout=FCKSpecialCombo_ItemOnMouseOut;E.onclick=FCKSpecialCombo_ItemOnClick;this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];if (B){B.className=B.originalClass='SC_ItemSelected';B.Selected=true;}};FCKSpecialCombo.prototype.SelectItemByLabel=function(A,B){for (var C in this.Items){var D=this.Items[C];if (D.FCKItemLabel==A){D.className=D.originalClass='SC_ItemSelected';D.Selected=true;if (B) this.SetLabel(A);}}};FCKSpecialCombo.prototype.DeselectAll=function(A){for (var i in this.Items){this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};if (A) this.SetLabel('');};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){this.Label=A.length==0?' ':A;if (this._LabelEl){this._LabelEl.innerHTML=this.Label;FCKTools.DisableSelection(this._LabelEl);}};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this._OuterTable=A.appendChild(B.createElement('TABLE'));C.cellPadding=0;C.cellSpacing=0;C.insertRow(-1);var D;var E;switch (this.Style){case 0:D='TB_ButtonType_Icon';E=false;break;case 1:D='TB_ButtonType_Text';E=false;break;case 2:E=true;break;};if (this.Caption&&this.Caption.length>0&&E){var F=C.rows[0].insertCell(-1);F.innerHTML=this.Caption;F.className='SC_FieldCaption';};var G=FCKTools.AppendElement(C.rows[0].insertCell(-1),'div');if (E){G.className='SC_Field';G.style.width=this.FieldWidth+'px';G.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldLabel"><label> </label></td><td class="SC_FieldButton"> </td></tr></tbody></table>';this._LabelEl=G.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{G.className='TB_Button_Off';G.innerHTML='<table title="'+this.Tooltip+'" class="'+D+'" cellspacing="0" cellpadding="0" border="0"><tr><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_Text">'+this.Caption+'</td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_ButtonArrow"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td></tr></table>';};G.SpecialCombo=this;G.onmouseover=FCKSpecialCombo_OnMouseOver;G.onmouseout=FCKSpecialCombo_OnMouseOut;G.onclick=FCKSpecialCombo_OnClick;FCKTools.DisableSelection(this._Panel.Document.body);};function FCKSpecialCombo_Cleanup(){this._LabelEl=null;this._OuterTable=null;this._ItemsHolderEl=null;this._PanelBox=null;if (this.Items){for (var A in this.Items) this.Items[A]=null;}};function FCKSpecialCombo_OnMouseOver(){if (this.SpecialCombo.Enabled){switch (this.SpecialCombo.Style){case 0:this.className='TB_Button_On_Over';break;case 1:this.className='TB_Button_On_Over';break;case 2:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(){switch (this.SpecialCombo.Style){case 0:this.className='TB_Button_Off';break;case 1:this.className='TB_Button_Off';break;case 2:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e){var A=this.SpecialCombo;if (A.Enabled){var B=A._Panel;var C=A._PanelBox;var D=A._ItemsHolderEl;var E=A.PanelMaxHeight;if (A.OnBeforeClick) A.OnBeforeClick(A);if (FCKBrowserInfo.IsIE) B.Preload(0,this.offsetHeight,this);if (D.offsetHeight>E) C.style.height=E+'px';else C.style.height='';B.Show(0,this.offsetHeight,this);}};
-var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;this._LastValue=null;};function FCKToolbarSpecialCombo_OnSelect(A,B){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(A,B);};FCKToolbarSpecialCombo.prototype.Create=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel(),this.FieldWidth,this.PanelWidth,this.PanelMaxHeight,FCKBrowserInfo.IsIE?window:FCKTools.GetElementWindow(A).parent);this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A);this._Combo.CommandName=this.CommandName;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(A,B){A.DeselectAll();A.SelectItem(B);A.SetLabelById(B);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=-1){A=1;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!=B){this._LastValue=B;FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=-1;if (A==this.State) return;if (A==-1){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=-1);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=-1;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);};
-var FCKToolbarFontsCombo=function(A,B){this.CommandName='FontName';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarFontsCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.CreateItems=function(A){var B=FCKConfig.FontNames.split(';');for (var i=0;i<B.length;i++) this._Combo.AddItem(B[i],'<font face="'+B[i]+'" style="font-size: 12px">'+B[i]+'</font>');}
-var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.CreateItems=function(A){A.FieldWidth=70;var B=FCKConfig.FontSizes.split(';');for (var i=0;i<B.length;i++){var C=B[i].split('/');this._Combo.AddItem(C[0],'<font size="'+C[0]+'">'+C[1]+'</font>',C[1]);}}
-var FCKToolbarFontFormatCombo=function(A,B){this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.NormalLabel='Normal';this.PanelWidth=190;};FCKToolbarFontFormatCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) B.body.id=FCKConfig.BodyId;if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) B.body.className+=' '+FCKConfig.BodyClass;var C=FCKLang['FontFormats'].split(';');var D={p:C[0],pre:C[1],address:C[2],h1:C[3],h2:C[4],h3:C[5],h4:C[6],h5:C[7],h6:C[8],div:C[9]};var E=FCKConfig.FontFormats.split(';');for (var i=0;i<E.length;i++){var F=E[i];var G=D[F];if (F=='p') this.NormalLabel=G;this._Combo.AddItem(F,'<div class="BaseFont"><'+F+'>'+G+'</'+F+'></div>',G);}};if (FCKBrowserInfo.IsIE){FCKToolbarFontFormatCombo.prototype.RefreshActiveItems=function(A,B){if (B==this.NormalLabel){if (A.Label!=' ') A.DeselectAll(true);}else{if (this._LastValue==B) return;A.SelectItemByLabel(B,true);};this._LastValue=B;}}
-var FCKToolbarStyleCombo=function(A,B){this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);B.body.className+=' ForceBaseFont';if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) B.body.id=FCKConfig.BodyId;if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) B.body.className+=' '+FCKConfig.BodyClass;if (!(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsGecko10)) A.OnBeforeClick=this.RefreshVisibleItems;var C=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Styles;for (var s in C){var D=C[s];var E;if (D.IsObjectElement) E=A.AddItem(s,s);else E=A.AddItem(s,D.GetOpenerTag()+s+D.GetCloserTag());E.Style=D;}};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){A.DeselectAll();var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetActiveStyles();if (B.length>0){for (var i=0;i<B.length;i++) A.SelectItem(B[i].Name);A.SetLabelById(B[0].Name);}else A.SetLabel('');};FCKToolbarStyleCombo.prototype.RefreshVisibleItems=function(A){if (FCKSelection.GetType()=='Control') var B=FCKSelection.GetSelectedElement().tagName;for (var i in A.Items){var C=A.Items[i];if ((B&&C.Style.Element==B)||(!B&&!C.Style.IsObjectElement)) C.style.display='';else C.style.display='none';}}
-var FCKToolbarPanelButton=function(A,B,C,D,E){this.CommandName=A;var F;if (E==null) F=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(E)=='number') F=[FCKConfig.SkinPath+'fck_strip.gif',16,E];var G=this._UIButton=new FCKToolbarButtonUI(A,B,C,F,D);G._FCKToolbarPanelButton=this;G.ShowArrow=true;G.OnClick=FCKToolbarPanelButton_OnButtonClick;};FCKToolbarPanelButton.prototype.TypeName='FCKToolbarPanelButton';FCKToolbarPanelButton.prototype.Create=function(A){A.className+='Menu';this._UIButton.Create(A);var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName)._Panel;B._FCKToolbarPanelButton=this;var C=B.Document.body.appendChild(B.Document.createElement('div'));C.style.position='absolute';C.style.top='0px';var D=this.LineImg=C.appendChild(B.Document.createElement('IMG'));D.className='TB_ConnectionLine';D.src=FCK_SPACER_PATH;B.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(A){var B=this._FCKToolbarPanelButton;var e=B._UIButton.MainElement;B._UIButton.ChangeState(1);B.LineImg.style.width=(e.offsetWidth-2)+'px';FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(B.CommandName).Execute(0,e.offsetHeight-1,e);};function FCKToolbarPanelButton_OnPanelHide(){var A=this._FCKToolbarPanelButton;A._UIButton.ChangeState(0);};FCKToolbarPanelButton.prototype.RefreshState=FCKToolbarButton.prototype.RefreshState;FCKToolbarPanelButton.prototype.Enable=FCKToolbarButton.prototype.Enable;FCKToolbarPanelButton.prototype.Disable=FCKToolbarButton.prototype.Disable;
-var FCKToolbarItems={};FCKToolbarItems.LoadedItems={};FCKToolbarItems.RegisterItem=function(A,B){this.LoadedItems[A]=B;};FCKToolbarItems.GetItem=function(A){var B=FCKToolbarItems.LoadedItems[A];if (B) return B;switch (A){case 'Source':B=new FCKToolbarButton('Source',FCKLang.Source,null,2,true,true,1);break;case 'DocProps':B=new FCKToolbarButton('DocProps',FCKLang.DocProps,null,null,null,null,2);break;case 'Save':B=new FCKToolbarButton('Save',FCKLang.Save,null,null,true,null,3);break;case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;case 'Preview':B=new FCKToolbarButton('Preview',FCKLang.Preview,null,null,true,null,5);break;case 'Templates':B=new FCKToolbarButton('Templates',FCKLang.Templates,null,null,null,null,6);break;case 'About':B=new FCKToolbarButton('About',FCKLang.About,null,null,true,null,47);break;case 'Cut':B=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,false,true,7);break;case 'Copy':B=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,false,true,8);break;case 'Paste':B=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,false,true,9);break;case 'PasteText':B=new FCKToolbarButton('PasteText',FCKLang.PasteText,null,null,false,true,10);break;case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true,11);break;case 'Print':B=new FCKToolbarButton('Print',FCKLang.Print,null,null,false,true,12);break;case 'SpellCheck':B=new FCKToolbarButton('SpellCheck',FCKLang.SpellCheck,null,null,null,null,13);break;case 'Undo':B=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,false,true,14);break;case 'Redo':B=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,false,true,15);break;case 'SelectAll':B=new FCKToolbarButton('SelectAll',FCKLang.SelectAll,null,null,null,null,18);break;case 'RemoveFormat':B=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat,null,null,false,true,19);break;case 'FitWindow':B=new FCKToolbarButton('FitWindow',FCKLang.FitWindow,null,null,true,true,66);break;case 'Bold':B=new FCKToolbarButton('Bold',FCKLang.Bold,null,null,false,true,20);break;case 'Italic':B=new FCKToolbarButton('Italic',FCKLang.Italic,null,null,false,true,21);break;case 'Underline':B=new FCKToolbarButton('Underline',FCKLang.Underline,null,null,false,true,22);break;case 'StrikeThrough':B=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough,null,null,false,true,23);break;case 'Subscript':B=new FCKToolbarButton('Subscript',FCKLang.Subscript,null,null,false,true,24);break;case 'Superscript':B=new FCKToolbarButton('Superscript',FCKLang.Superscript,null,null,false,true,25);break;case 'OrderedList':B=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList,null,false,true,26);break;case 'UnorderedList':B=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList,null,false,true,27);break;case 'Outdent':B=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent,null,null,false,true,28);break;case 'Indent':B=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent,null,null,false,true,29);break;case 'Link':B=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink,null,false,true,34);break;case 'Unlink':B=new FCKToolbarButton('Unlink',FCKLang.RemoveLink,null,null,false,true,35);break;case 'Anchor':B=new FCKToolbarButton('Anchor',FCKLang.Anchor,null,null,null,null,36);break;case 'Image':B=new FCKToolbarButton('Image',FCKLang.InsertImageLbl,FCKLang.InsertImage,null,false,true,37);break;case 'Flash':B=new FCKToolbarButton('Flash',FCKLang.InsertFlashLbl,FCKLang.InsertFlash,null,false,true,38);break;case 'Table':B=new FCKToolbarButton('Table',FCKLang.InsertTableLbl,FCKLang.InsertTable,null,false,true,39);break;case 'SpecialChar':B=new FCKToolbarButton('SpecialChar',FCKLang.InsertSpecialCharLbl,FCKLang.InsertSpecialChar,null,false,true,42);break;case 'Smiley':B=new FCKToolbarButton('Smiley',FCKLang.InsertSmileyLbl,FCKLang.InsertSmiley,null,false,true,41);break;case 'PageBreak':B=new FCKToolbarButton('PageBreak',FCKLang.PageBreakLbl,FCKLang.PageBreak,null,false,true,43);break;case 'Rule':B=new FCKToolbarButton('InsertHorizontalRule',FCKLang.InsertLineLbl,FCKLang.InsertLine,null,false,true,40);break;case 'JustifyLeft':B=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify,null,null,false,true,30);break;case 'JustifyCenter':B=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify,null,null,false,true,31);break;case 'JustifyRight':B=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify,null,null,false,true,32);break;case 'JustifyFull':B=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify,null,null,false,true,33);break;case 'Style':B=new FCKToolbarStyleCombo();break;case 'FontName':B=new FCKToolbarFontsCombo();break;case 'FontSize':B=new FCKToolbarFontSizeCombo();break;case 'FontFormat':B=new FCKToolbarFontFormatCombo();break;case 'TextColor':B=new FCKToolbarPanelButton('TextColor',FCKLang.TextColor,null,null,45);break;case 'BGColor':B=new FCKToolbarPanelButton('BGColor',FCKLang.BGColor,null,null,46);break;case 'Find':B=new FCKToolbarButton('Find',FCKLang.Find,null,null,null,null,16);break;case 'Replace':B=new FCKToolbarButton('Replace',FCKLang.Replace,null,null,null,null,17);break;case 'Form':B=new FCKToolbarButton('Form',FCKLang.Form,null,null,null,null,48);break;case 'Checkbox':B=new FCKToolbarButton('Checkbox',FCKLang.Checkbox,null,null,null,null,49);break;case 'Radio':B=new FCKToolbarButton('Radio',FCKLang.RadioButton,null,null,null,null,50);break;case 'TextField':B=new FCKToolbarButton('TextField',FCKLang.TextField,null,null,null,null,51);break;case 'Textarea':B=new FCKToolbarButton('Textarea',FCKLang.Textarea,null,null,null,null,52);break;case 'HiddenField':B=new FCKToolbarButton('HiddenField',FCKLang.HiddenField,null,null,null,null,56);break;case 'Button':B=new FCKToolbarButton('Button',FCKLang.Button,null,null,null,null,54);break;case 'Select':B=new FCKToolbarButton('Select',FCKLang.SelectionField,null,null,null,null,53);break;case 'ImageButton':B=new FCKToolbarButton('ImageButton',FCKLang.ImageButton,null,null,null,null,55);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;}
-var FCKToolbar=function(){this.Items=[];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbar_Cleanup);};FCKToolbar.prototype.AddItem=function(A){return this.Items[this.Items.length]=A;};FCKToolbar.prototype.AddButton=function(A,B,C,D,E,F){if (typeof(D)=='number') D=[this.DefaultIconsStrip,this.DefaultIconSize,D];var G=new FCKToolbarButtonUI(A,B,C,D,E,F);G._FCKToolbar=this;G.OnClick=FCKToolbar_OnItemClick;return this.AddItem(G);};function FCKToolbar_OnItemClick(A){var B=A._FCKToolbar;if (B.OnItemClick) B.OnItemClick(B,A);};FCKToolbar.prototype.AddSeparator=function(){this.AddItem(new FCKToolbarSeparator());};FCKToolbar.prototype.Create=function(A){if (this.MainElement){if (this.MainElement.parentNode) this.MainElement.parentNode.removeChild(this.MainElement);this.MainElement=null;};var B=FCKTools.GetElementDocument(A);var e=this.MainElement=B.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=(FCKLang.Dir=='ltr'?'left':'right');e.dir=FCKLang.Dir;e.cellPadding=0;e.cellSpacing=0;this.RowElement=e.insertRow(-1);var C;if (!this.HideStart){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i<this.Items.length;i++){this.Items[i].Create(this.RowElement.insertCell(-1));};if (!this.HideEnd){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};function FCKToolbar_Cleanup(){this.MainElement=null;this.RowElement=null;};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';}
-var FCKToolbarBreak=function(){};FCKToolbarBreak.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A).createElement('div');B.className='TB_Break';B.style.clear=FCKLang.Dir=='rtl'?'left':'right';A.appendChild(B);}
-function FCKToolbarSet_Create(A){var B;var C=A||FCKConfig.ToolbarLocation;switch (C){case 'In':document.getElementById('xToolbarRow').style.display='';B=new FCKToolbarSet(document);break;default:FCK.Events.AttachEvent('OnBlur',FCK_OnBlur);FCK.Events.AttachEvent('OnFocus',FCK_OnFocus);var D;var E=C.match(/^Out:(.+)\((\w+)\)$/);if (E){D=eval('parent.'+E[1]).document.getElementById(E[2]);}else{E=C.match(/^Out:(\w+)$/);if (E) D=parent.document.getElementById(E[1]);};if (!D){alert('Invalid value for "ToolbarLocation"');return this._Init('In');};B=D.__FCKToolbarSet;if (B) break;var F=FCKTools.GetElementDocument(D).createElement('iframe');F.frameBorder=0;F.width='100%';F.height='10';D.appendChild(F);F.unselectable='on';var G=F.contentWindow.document;G.open();G.write('<html><head><script type="text/javascript"> window.onload = window.onresize = function() { window.frameElement.height = document.body.scrollHeight ; } </script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');G.close();G.oncontextmenu=FCKTools.CancelEvent;FCKTools.AppendStyleSheet(G,FCKConfig.SkinPath+'fck_editor.css');B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;FCK.AttachToOnSelectionChange(B.RefreshItemsState);return B;};function FCK_OnBlur(A){var B=A.ToolbarSet;if (B.CurrentInstance==A) B.Disable();};function FCK_OnFocus(A){var B=A.ToolbarSet;var C=A||FCK;B.CurrentInstance.FocusManager.RemoveWindow(B._IFrame.contentWindow);B.CurrentInstance=C;C.FocusManager.AddWindow(B._IFrame.contentWindow,true);B.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;B.onclick=FCKToolbarSet_Expand_OnClick;C.title=FCKLang.ToolbarCollapse;C.onclick=FCKToolbarSet_Collapse_OnClick;if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();C.style.display=FCKConfig.ToolbarCanCollapse?'':'none';if (FCKConfig.ToolbarCanCollapse) C.style.display='';else A.getElementById('xTBLeftBorder').style.display='';this.Toolbars=[];this.IsLoaded=false;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarSet_Cleanup);};function FCKToolbarSet_Expand_OnClick(){FCK.ToolbarSet.Expand();};function FCKToolbarSet_Collapse_OnClick(){FCK.ToolbarSet.Collapse();};FCKToolbarSet.prototype.Expand=function(){this._ChangeVisibility(false);};FCKToolbarSet.prototype.Collapse=function(){this._ChangeVisibility(true);};FCKToolbarSet.prototype._ChangeVisibility=function(A){this._Document.getElementById('xCollapsed').style.display=A?'':'none';this._Document.getElementById('xExpanded').style.display=A?'none':'';if (FCKBrowserInfo.IsGecko){FCKTools.RunFunction(window.onresize);}};FCKToolbarSet.prototype.Load=function(A){this.Name=A;this.Items=[];this.ItemsWysiwygOnly=[];this.ItemsContextSensitive=[];this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=[];for (var x=0;x<B.length;x++){var C=B[x];var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j<C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);this.Items.push(F);if (!F.SourceView) this.ItemsWysiwygOnly.push(F);if (F.ContextSensitive) this.ItemsContextSensitive.push(F);}}}};D.Create(this._TargetElement);this.Toolbars[this.Toolbars.length]=D;};FCKTools.DisableSelection(this._Document.getElementById('xCollapseHandle').parentNode);if (FCK.Status!=2) FCK.Events.AttachEvent('OnStatusChange',this.RefreshModeState);else this.RefreshModeState();this.IsLoaded=true;this.IsEnabled=true;FCKTools.RunFunction(this.OnLoad);};FCKToolbarSet.prototype.Enable=function(){if (this.IsEnabled) return;this.IsEnabled=true;var A=this.Items;for (var i=0;i<A.length;i++) A[i].RefreshState();};FCKToolbarSet.prototype.Disable=function(){if (!this.IsEnabled) return;this.IsEnabled=false;var A=this.Items;for (var i=0;i<A.length;i++) A[i].Disable();};FCKToolbarSet.prototype.RefreshModeState=function(A){if (FCK.Status!=2) return;var B=A?A.ToolbarSet:this;var C=B.ItemsWysiwygOnly;if (FCK.EditMode==0){for (var i=0;i<C.length;i++) C[i].Enable();B.RefreshItemsState(A);}else{B.RefreshItemsState(A);for (var j=0;j<C.length;j++) C[j].Disable();}};FCKToolbarSet.prototype.RefreshItemsState=function(A){var B=(A?A.ToolbarSet:this).ItemsContextSensitive;for (var i=0;i<B.length;i++) B[i].RefreshState();};
+var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (!FCKBrowserInfo.IsGecko){switch (this.Name){case 'TableMergeRight':return FCKTableHandler.MergeRight();case 'TableMergeDown':return FCKTableHandler.MergeDown();}};switch (this.Name){case 'TableInsertRowAfter':return FCKTableHandler.InsertRow(false);case 'TableInsertRowBefore':return FCKTableHandler.InsertRow(true);case 'TableDeleteRows':return FCKTableHandler.DeleteRows();case 'TableInsertColumnAfter':return FCKTableHandler.InsertColumn(false);case 'TableInsertColumnBefore':return FCKTableHandler.InsertColumn(true);case 'TableDeleteColumns':return FCKTableHandler.DeleteColumns();case 'TableInsertCellAfter':return FCKTableHandler.InsertCell(null,false);case 'TableInsertCellBefore':return FCKTableHandler.InsertCell(null,true);case 'TableDeleteCells':return FCKTableHandler.DeleteCells();case 'TableMergeCells':return FCKTableHandler.MergeCells();case 'TableHorizontalSplitCell':return FCKTableHandler.HorizontalSplitCell();case 'TableVerticalSplitCell':return FCKTableHandler.VerticalSplitCell();case 'TableDelete':return FCKTableHandler.DeleteTable();default:return alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){if (FCK.EditorDocument!=null&&FCKSelection.HasAncestorNode('TABLE')){switch (this.Name){case 'TableHorizontalSplitCell':case 'TableVerticalSplitCell':if (FCKTableHandler.GetSelectedCells().length==1) return 0;else return -1;case 'TableMergeCells':if (FCKTableHandler.CheckIsSelectionRectangular()&&FCKTableHandler.GetSelectedCells().length>1) return 0;else return -1;case 'TableMergeRight':return FCKTableHandler.GetMergeRightTarget()?0:-1;case 'TableMergeDown':return FCKTableHandler.GetMergeDownTarget()?0:-1;default:return 0;}}else return -1;};
+var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1){G._fckSavedStyles=FCKTools.SaveStyles(G);G.style.zIndex=FCKConfig.FloatingPanelsZIndex-1;}};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var H=FCKTools.GetViewPaneSize(C);B.position="absolute";B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=H.Width+"px";B.height=H.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);var I=FCKTools.GetWindowPosition(C,A);if (I.x!=0) B.left=(-1*I.x)+"px";if (I.y!=0) B.top=(-1*I.y)+"px";this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent("onresize",FCKFitWindow_Resize);else C.removeEventListener("resize",FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();if (FCK.EditMode==0) FCK.EditingArea.MakeEditable();FCK.Focus();};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';};
+var FCKListCommand=function(A,B){this.Name=A;this.TagName=B;};FCKListCommand.prototype={GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=FCKSelection.GetBoundaryParentElement(true);var B=A;while (B){if (B.nodeName.IEquals(['ul','ol'])) break;B=B.parentNode;};if (B&&B.nodeName.IEquals(this.TagName)) return 1;else return 0;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCK.EditorDocument;var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=this.GetState();if (C==0){FCKDomTools.TrimNode(A.body);if (!A.body.firstChild){var D=A.createElement('p');A.body.appendChild(D);B.MoveToNodeContents(D);}};var E=B.CreateBookmark();var F=[];var G={};var H=new FCKDomRangeIterator(B);var I;H.ForceBrBreak=(C==0);var J=true;var K=null;while (J){while ((I=H.GetNextParagraph())){var L=new FCKElementPath(I);var M=null;var N=false;var O=L.BlockLimit;for (var i=L.Elements.length-1;i>=0;i--){var P=L.Elements[i];if (P.nodeName.IEquals(['ol','ul'])){if (O._FCK_ListGroupObject) O._FCK_ListGroupObject=null;var Q=P._FCK_ListGroupObject;if (Q) Q.contents.push(I);else{Q={ 'root':P,'contents':[I] };F.push(Q);FCKDomTools.SetElementMarker(G,P,'_FCK_ListGroupObject',Q);};N=true;break;}};if (N) continue;var R=O;if (R._FCK_ListGroupObject) R._FCK_ListGroupObject.contents.push(I);else{var Q={ 'root':R,'contents':[I] };FCKDomTools.SetElementMarker(G,R,'_FCK_ListGroupObject',Q);F.push(Q);}};if (FCKBrowserInfo.IsIE) J=false;else{if (K==null){K=[];var T=FCK.EditorWindow.getSelection();if (T&&F.length==0) K.push(T.getRangeAt(0));for (var i=1;T&&i<T.rangeCount;i++) K.push(T.getRangeAt(i));};if (K.length<1) J=false;else{var U=FCKW3CRange.CreateFromRange(A,K.shift());B._Range=U;B._UpdateElementInfo();if (B.StartNode.nodeName.IEquals('td')) B.SetStart(B.StartNode,1);if (B.EndNode.nodeName.IEquals('td')) B.SetEnd(B.EndNode,2);H=new FCKDomRangeIterator(B);H.ForceBrBreak=(C==0);}}};var W=[];while (F.length>0){var Q=F.shift();if (C==0){if (Q.root.nodeName.IEquals(['ul','ol'])) this._ChangeListType(Q,G,W);else this._CreateList(Q,W);}else if (C==1&&Q.root.nodeName.IEquals(['ul','ol'])) this._RemoveList(Q,G);};for (var i=0;i<W.length;i++){var M=W[i];var Z=false;var a=M;while (!Z){a=a.nextSibling;if (a&&a.nodeType==3&&a.nodeValue.search(/^[\n\r\t ]*$/)==0) continue;Z=true;};if (a&&a.nodeName.IEquals(this.TagName)){a.parentNode.removeChild(a);while (a.firstChild) M.appendChild(a.removeChild(a.firstChild));};Z=false;a=M;while (!Z){a=a.previousSibling;if (a&&a.nodeType==3&&a.nodeValue.search(/^[\n\r\t ]*$/)==0) continue;Z=true;};if (a&&a.nodeName.IEquals(this.TagName)){a.parentNode.removeChild(a);while (a.lastChild) M.insertBefore(a.removeChild(a.lastChild),M.firstChild);}};FCKDomTools.ClearAllMarkers(G);B.MoveToBookmark(E);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},_ChangeListType:function(A,B,C){var D=FCKDomTools.ListToArray(A.root,B);var E=[];for (var i=0;i<A.contents.length;i++){var F=A.contents[i];F=FCKTools.GetElementAscensor(F,'li');if (!F||F._FCK_ListItem_Processed) continue;E.push(F);FCKDomTools.SetElementMarker(B,F,'_FCK_ListItem_Processed',true);};var G=A.root.ownerDocument.createElement(this.TagName);for (var i=0;i<E.length;i++){var H=E[i]._FCK_ListArray_Index;D[H].parent=G;};var I=FCKDomTools.ArrayToList(D,B);for (var i=0;i<I.listNode.childNodes.length;i++){if (I.listNode.childNodes[i].nodeName.IEquals(this.TagName)) C.push(I.listNode.childNodes[i]);};A.root.parentNode.replaceChild(I.listNode,A.root);},_CreateList:function(A,B){var C=A.contents;var D=A.root.ownerDocument;var E=[];if (C.length==1&&C[0]==A.root){var F=D.createElement('div');while (C[0].firstChild) F.appendChild(C[0].removeChild(C[0].firstChild));C[0].appendChild(F);C[0]=F;};var G=A.contents[0].parentNode;for (var i=0;i<C.length;i++) G=FCKDomTools.GetCommonParents(G,C[i].parentNode).pop();for (var i=0;i<C.length;i++){var H=C[i];while (H.parentNode){if (H.parentNode==G){E.push(H);break;};H=H.parentNode;}};if (E.length<1) return;var I=E[E.length-1].nextSibling;var J=D.createElement(this.TagName);B.push(J);while (E.length){var K=E.shift();var L=D.createDocumentFragment();while (K.firstChild) L.appendChild(K.removeChild(K.firstChild));K.parentNode.removeChild(K);var M=D.createElement('li');M.appendChild(L);J.appendChild(M);};G.insertBefore(J,I);},_RemoveList:function(A,B){var C=FCKDomTools.ListToArray(A.root,B);var D=[];for (var i=0;i<A.contents.length;i++){var E=A.contents[i];E=FCKTools.GetElementAscensor(E,'li');if (!E||E._FCK_ListItem_Processed) continue;D.push(E);FCKDomTools.SetElementMarker(B,E,'_FCK_ListItem_Processed',true);};var F=null;for (var i=0;i<D.length;i++){var G=D[i]._FCK_ListArray_Index;C[G].indent=-1;F=G;};for (var i=F+1;i<C.length;i++){if (C[i].indent>C[i-1].indent+1){var H=C[i-1].indent+1-C[i].indent;var I=C[i].indent;while (C[i]&&C[i].indent>=I){C[i].indent+=H;i++;};i--;}};var J=FCKDomTools.ArrayToList(C,B);if (A.root.nextSibling==null||A.root.nextSibling.nodeName.IEquals('br')){if (J.listNode.lastChild.nodeName.IEquals('br')) J.listNode.removeChild(J.listNode.lastChild);};A.root.parentNode.replaceChild(J.listNode,A.root);}};
+var FCKJustifyCommand=function(A){this.AlignValue=A;var B=FCKConfig.ContentLangDirection.toLowerCase();this.IsDefaultAlign=(A=='left'&&B=='ltr')||(A=='right'&&B=='rtl');var C=this._CssClassName=(function(){var D=FCKConfig.JustifyClasses;if (D){switch (A){case 'left':return D[0];case 'center':return D[1];case 'right':return D[2];case 'justify':return D[3];}};return null;})();if (C&&C.length>0) this._CssClassRegex=new RegExp('(?:^|\\s+)'+C+'(?=$|\\s)');};FCKJustifyCommand._GetClassNameRegex=function(){var A=FCKJustifyCommand._ClassRegex;if (A!=undefined) return A;var B=[];var C=FCKConfig.JustifyClasses;if (C){for (var i=0;i<4;i++){var D=C[i];if (D&&D.length>0) B.push(D);}};if (B.length>0) A=new RegExp('(?:^|\\s+)(?:'+B.join('|')+')(?=$|\\s)');else A=null;return FCKJustifyCommand._ClassRegex=A;};FCKJustifyCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=this.GetState();if (B==-1) return;var C=A.CreateBookmark();var D=this._CssClassName;var E=new FCKDomRangeIterator(A);var F;while ((F=E.GetNextParagraph())){F.removeAttribute('align');if (D){var G=F.className.replace(FCKJustifyCommand._GetClassNameRegex(),'');if (B==0){if (G.length>0) G+=' ';F.className=G+D;}else if (G.length==0) FCKDomTools.RemoveAttribute(F,'class');}else{var H=F.style;if (B==0) H.textAlign=this.AlignValue;else{H.textAlign='';if (H.cssText.length==0) F.removeAttribute('style');}}};A.MoveToBookmark(C);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;var C;if (FCKBrowserInfo.IsIE) C=B.currentStyle.textAlign;else C=FCK.EditorWindow.getComputedStyle(B,'').getPropertyValue('text-align');C=C.replace(/(-moz-|-webkit-|start|auto)/i,'');if ((!C&&this.IsDefaultAlign)||C==this.AlignValue) return 1;return 0;}};
+var FCKIndentCommand=function(A,B){this.Name=A;this.Offset=B;this.IndentCSSProperty=FCKConfig.ContentLangDirection.IEquals('ltr')?'marginLeft':'marginRight';};FCKIndentCommand._InitIndentModeParameters=function(){if (FCKConfig.IndentClasses&&FCKConfig.IndentClasses.length>0){this._UseIndentClasses=true;this._IndentClassMap={};for (var i=0;i<FCKConfig.IndentClasses.length;i++) this._IndentClassMap[FCKConfig.IndentClasses[i]]=i+1;this._ClassNameRegex=new RegExp('(?:^|\\s+)('+FCKConfig.IndentClasses.join('|')+')(?=$|\\s)');}else this._UseIndentClasses=false;};FCKIndentCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=A.CreateBookmark();var C=FCKDomTools.GetCommonParentNode(A.StartNode||A.StartContainer,A.EndNode||A.EndContainer,['ul','ol']);if (C) this._IndentList(A,C);else this._IndentBlock(A);A.MoveToBookmark(B);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;if (FCKIndentCommand._UseIndentClasses==undefined) FCKIndentCommand._InitIndentModeParameters();var A=FCKSelection.GetBoundaryParentElement(true);var B=FCKSelection.GetBoundaryParentElement(false);var C=FCKDomTools.GetCommonParentNode(A,B,['ul','ol']);if (C){if (this.Name.IEquals('outdent')) return 0;var D=FCKTools.GetElementAscensor(A,'li');if (!D||!D.previousSibling) return -1;return 0;};if (!FCKIndentCommand._UseIndentClasses&&this.Name.IEquals('indent')) return 0;var E=new FCKElementPath(A);var F=E.Block||E.BlockLimit;if (!F) return -1;if (FCKIndentCommand._UseIndentClasses){var G=F.className.match(FCKIndentCommand._ClassNameRegex);var H=0;if (G!=null){G=G[1];H=FCKIndentCommand._IndentClassMap[G];};if ((this.Name=='outdent'&&H==0)||(this.Name=='indent'&&H==FCKConfig.IndentClasses.length)) return -1;return 0;}else{var I=parseInt(F.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;if (I<=0) return -1;return 0;}},_IndentBlock:function(A){var B=new FCKDomRangeIterator(A);A.Expand('block_contents');var C=FCKDomTools.GetCommonParents(A.StartContainer,A.EndContainer);var D=C[C.length-1];var E;while ((E=B.GetNextParagraph())){if (!(E==D||E.parentNode==D)) continue;if (FCKIndentCommand._UseIndentClasses){var F=E.className.match(FCKIndentCommand._ClassNameRegex);var G=0;if (F!=null){F=F[1];G=FCKIndentCommand._IndentClassMap[F];};if (this.Name.IEquals('outdent')) G--;else if (this.Name.IEquals('indent')) G++;G=Math.min(G,FCKConfig.IndentClasses.length);G=Math.max(G,0);var H=E.className.replace(FCKIndentCommand._ClassNameRegex,'');if (G<1) E.className=H;else E.className=(H.length>0?H+' ':'')+FCKConfig.IndentClasses[G-1];}else{var I=parseInt(E.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;I+=this.Offset;I=Math.max(I,0);I=Math.ceil(I/this.Offset)*this.Offset;E.style[this.IndentCSSProperty]=I?I+FCKConfig.IndentUnit:'';if (E.getAttribute('style')=='') E.removeAttribute('style');}}},_IndentList:function(A,B){var C=A.StartContainer;var D=A.EndContainer;while (C&&C.parentNode!=B) C=C.parentNode;while (D&&D.parentNode!=B) D=D.parentNode;if (!C||!D) return;var E=C;var F=[];var G=false;while (G==false){if (E==D) G=true;F.push(E);E=E.nextSibling;};if (F.length<1) return;var H=FCKDomTools.GetParents(B);for (var i=0;i<H.length;i++){if (H[i].nodeName.IEquals(['ul','ol'])){B=H[i];break;}};var I=this.Name.IEquals('indent')?1:-1;var J=F[0];var K=F[F.length-1];var L={};var M=FCKDomTools.ListToArray(B,L);var N=M[K._FCK_ListArray_Index].indent;for (var i=J._FCK_ListArray_Index;i<=K._FCK_ListArray_Index;i++) M[i].indent+=I;for (var i=K._FCK_ListArray_Index+1;i<M.length&&M[i].indent>N;i++) M[i].indent+=I;var O=FCKDomTools.ArrayToList(M);if (O) B.parentNode.replaceChild(O.listNode,B);FCKDomTools.ClearAllMarkers(L);}};
+var FCKBlockQuoteCommand=function(){};FCKBlockQuoteCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=this.GetState();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();if (FCKBrowserInfo.IsIE){var D=B.GetBookmarkNode(C,true);var E=B.GetBookmarkNode(C,false);var F;if (D&&D.parentNode.nodeName.IEquals('blockquote')&&!D.previousSibling){F=D;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]) FCKDomTools.MoveNode(D,F,true);}};if (E&&E.parentNode.nodeName.IEquals('blockquote')&&!E.previousSibling){F=E;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]){if (F.firstChild==D) FCKDomTools.InsertAfterNode(D,E);else FCKDomTools.MoveNode(E,F,true);}}}};var G=new FCKDomRangeIterator(B);var H;if (A==0){G.EnforceRealBlocks=true;var I=[];while ((H=G.GetNextParagraph())) I.push(H);if (I.length<1){para=B.Window.document.createElement(FCKConfig.EnterMode.IEquals('p')?'p':'div');B.InsertNode(para);para.appendChild(B.Window.document.createTextNode('\ufeff'));B.MoveToBookmark(C);B.MoveToNodeContents(para);B.Collapse(true);C=B.CreateBookmark();I.push(para);};var J=I[0].parentNode;var K=[];for (var i=0;i<I.length;i++){H=I[i];J=FCKDomTools.GetCommonParents(H.parentNode,J).pop();};var L=null;while (I.length>0){H=I.shift();while (H.parentNode!=J) H=H.parentNode;if (H!=L) K.push(H);L=H;};while (K.length>0){H=K.shift();if (H.nodeName.IEquals('blockquote')){var M=H.ownerDocument.createDocumentFragment();while (H.firstChild){M.appendChild(H.removeChild(H.firstChild));I.push(M.lastChild);};H.parentNode.replaceChild(M,H);}else I.push(H);};var N=B.Window.document.createElement('blockquote');J.insertBefore(N,I[0]);while (I.length>0){H=I.shift();N.appendChild(H);}}else if (A==1){var O=[];while ((H=G.GetNextParagraph())){var P=null;var Q=null;while (H.parentNode){if (H.parentNode.nodeName.IEquals('blockquote')){P=H.parentNode;Q=H;break;};H=H.parentNode;};if (P&&Q) O.push(Q);};var R=[];while (O.length>0){var S=O.shift();var N=S.parentNode;if (S==S.parentNode.firstChild){N.parentNode.insertBefore(N.removeChild(S),N);if (!N.firstChild) N.parentNode.removeChild(N);}else if (S==S.parentNode.lastChild){N.parentNode.insertBefore(N.removeChild(S),N.nextSibling);if (!N.firstChild) N.parentNode.removeChild(N);}else FCKDomTools.BreakParent(S,S.parentNode,B);R.push(S);};if (FCKConfig.EnterMode.IEquals('br')){while (R.length){var S=R.shift();var W=true;if (S.nodeName.IEquals('div')){var M=S.ownerDocument.createDocumentFragment();var Y=W&&S.previousSibling&&!FCKListsLib.BlockBoundaries[S.previousSibling.nodeName.toLowerCase()];if (W&&Y) M.appendChild(S.ownerDocument.createElement('br'));var Z=S.nextSibling&&!FCKListsLib.BlockBoundaries[S.nextSibling.nodeName.toLowerCase()];while (S.firstChild) M.appendChild(S.removeChild(S.firstChild));if (Z) M.appendChild(S.ownerDocument.createElement('br'));S.parentNode.replaceChild(M,S);W=false;}}}};B.MoveToBookmark(C);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;for (var i=0;i<A.Elements.length;i++){if (A.Elements[i].nodeName.IEquals('blockquote')) return 1;};return 0;}};
+var FCKCoreStyleCommand=function(A){this.Name='CoreStyle';this.StyleName='_FCK_'+A;this.IsActive=false;FCKStyles.AttachStyleStateChange(this.StyleName,this._OnStyleStateChange,this);};FCKCoreStyleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();if (this.IsActive) FCKStyles.RemoveStyle(this.StyleName);else FCKStyles.ApplyStyle(this.StyleName);FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){return this.IsActive?1:0;},_OnStyleStateChange:function(A,B){this.IsActive=B;}};
+var FCKRemoveFormatCommand=function(){this.Name='RemoveFormat';};FCKRemoveFormatCommand.prototype={Execute:function(){FCKStyles.RemoveAll();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){return FCK.EditorWindow?0:-1;}};
+var FCKCommands=FCK.Commands={};FCKCommands.LoadedCommands={};FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'Bold':case 'Italic':case 'Underline':case 'StrikeThrough':case 'Subscript':case 'Superscript':B=new FCKCoreStyleCommand(A);break;case 'RemoveFormat':B=new FCKRemoveFormatCommand();break;case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,390,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,170);break;case 'AnchorDelete':B=new FCKAnchorDeleteCommand();break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,170);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,170);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',400,330);break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,250);break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,250);break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,400);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,320);break;case 'Smiley':B=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight);break;case 'Table':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html',480,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',480,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,250);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'Rule':B=new FCKRuleCommand();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'Paste':B=new FCKPasteCommand();break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'JustifyLeft':B=new FCKJustifyCommand('left');break;case 'JustifyCenter':B=new FCKJustifyCommand('center');break;case 'JustifyRight':B=new FCKJustifyCommand('right');break;case 'JustifyFull':B=new FCKJustifyCommand('justify');break;case 'Indent':B=new FCKIndentCommand('indent',FCKConfig.IndentLength);break;case 'Outdent':B=new FCKIndentCommand('outdent',FCKConfig.IndentLength*-1);break;case 'Blockquote':B=new FCKBlockQuoteCommand();break;case 'TableInsertRowAfter':B=new FCKTableCommand('TableInsertRowAfter');break;case 'TableInsertRowBefore':B=new FCKTableCommand('TableInsertRowBefore');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumnAfter':B=new FCKTableCommand('TableInsertColumnAfter');break;case 'TableInsertColumnBefore':B=new FCKTableCommand('TableInsertColumnBefore');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCellAfter':B=new FCKTableCommand('TableInsertCellAfter');break;case 'TableInsertCellBefore':B=new FCKTableCommand('TableInsertCellBefore');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableMergeRight':B=new FCKTableCommand('TableMergeRight');break;case 'TableMergeDown':B=new FCKTableCommand('TableMergeDown');break;case 'TableHorizontalSplitCell':B=new FCKTableCommand('TableHorizontalSplitCell');break;case 'TableVerticalSplitCell':B=new FCKTableCommand('TableVerticalSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,230);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,230);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,230);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,230);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,230);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,230);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,230);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,380);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,400);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();break;case 'Copy':B=new FCKCopyCommand();break;case 'SelectAll':B=new FCKSelectAllCommand();break;case 'InsertOrderedList':B=new FCKListCommand('insertorderedlist','ol');break;case 'InsertUnorderedList':B=new FCKListCommand('insertunorderedlist','ul');break;case 'ShowBlocks':B=new FCKShowBlockCommand('ShowBlocks',FCKConfig.StartupShowBlocks?1:0);break;case 'Undefined':B=new FCKUndefinedCommand();break;default:if (FCKRegexLib.NamedCommands.test(A)) B=new FCKNamedCommand(A);else{alert(FCKLang.UnknownCommand.replace(/%1/g,A));return null;}};FCKCommands.LoadedCommands[A]=B;return B;};FCKCommands.GetFullPageState=function(){return FCKConfig.FullPage?0:-1;};FCKCommands.GetBooleanState=function(A){return A?-1:0;};
+var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();B=this.Document=this._Popup.document;FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var C=this._IFrame=this._Window.document.createElement('iframe');C.src='javascript:void(0)';C.allowTransparency=true;C.frameBorder='0';C.scrolling='no';C.width=C.height=0;FCKDomTools.SetElementStyles(C,{position:'absolute',zIndex:FCKConfig.FloatingPanelsZIndex});if (this._Window==window.parent&&window.frameElement){var D=null;if (FCKBrowserInfo.IsGecko&&FCK&&FCK.EditorDocument) D=[FCK.EditorDocument.body.scrollLeft,FCK.EditorDocument.body.scrollTop];window.frameElement.parentNode.insertBefore(C,window.frameElement);if (D){var E=function(){FCK.EditorDocument.body.scrollLeft=D[0];FCK.EditorDocument.body.scrollTop=D[1];};setTimeout(E,500);}}else this._Window.document.body.appendChild(C);var F=C.contentWindow;B=this.Document=F.document;var G='';if (FCKBrowserInfo.IsSafari) G='<base href="'+window.document.location+'">';B.open();B.write('<html><head>'+G+'<\/head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();FCKTools.AddEventListenerEx(F,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(F,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;FCKTools.AddEventListener(B,'contextmenu',FCKTools.CancelEvent);this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;var E=this.MainNode;if (this._Popup){this._Popup.show(x,y,0,0,A);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,E.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCK.ToolbarSet.CurrentInstance.FocusManager)!='undefined') FCK.ToolbarSet.CurrentInstance.FocusManager.Lock();if (this.ParentPanel){this.ParentPanel.Lock();FCKPanel_Window_OnBlur(null,this.ParentPanel);};if (FCKPanel._OpenedPanel) FCKPanel._OpenedPanel.Hide();FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (!B) this._IFrame.width=1;if (!C) this._IFrame.height=1;D=E.offsetWidth||E.firstChild.offsetWidth;var F=FCKTools.GetDocumentPosition(this._Window,A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A);var G=FCKDomTools.GetPositionedAncestor(FCKTools.GetElementWindow(this._IFrame),this._IFrame.parentNode);if (G){var H=FCKTools.GetDocumentPosition(FCKTools.GetElementWindow(G),G);F.x-=H.x;F.y-=H.y;};if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=F.x;y+=F.y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var I=FCKTools.GetViewPaneSize(this._Window);var J=FCKTools.GetScrollPosition(this._Window);var K=I.Height+J.Y;var L=I.Width+J.X;if ((x+D)>L) x-=x+D-L;if ((y+E.offsetHeight)>K) y-=y+E.offsetHeight-K;};if (x<0) x=0;FCKDomTools.SetElementStyles(this._IFrame,{left:x+'px',top:y+'px'});var M=D;var N=E.offsetHeight;this._IFrame.width=M;this._IFrame.height=N;this._IFrame.contentWindow.focus();FCKPanel._OpenedPanel=this;};this._IsOpened=true;FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened||this._LockCounter>0) return;if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&&!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;};
+var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B,eIconImage;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path;eIconImage.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url("'+this.Path+'")';}}else{if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path?this.Path:FCK_SPACER_PATH;}else{B=A.createElement('IMG');B.src=this.Path?this.Path:FCK_SPACER_PATH;}};B.className='TB_Button_Image';return B;}
+var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||0;this.State=F||0;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this.MainElement=B.createElement('DIV');C.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) C.onmousedown=FCKTools.CancelEvent;FCKTools.AddEventListenerEx(C,'mouseover',FCKToolbarButtonUI_OnMouseOver,this);FCKTools.AddEventListenerEx(C,'mouseout',FCKToolbarButtonUI_OnMouseOut,this);FCKTools.AddEventListenerEx(C,'click',FCKToolbarButtonUI_OnClick,this);this.ChangeState(this.State,true);if (this.Style==0&&!this.ShowArrow){C.appendChild(this.Icon.CreateIconElement(B));}else{var D=C.appendChild(B.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==0||this.Style==2) F.appendChild(this.Icon.CreateIconElement(B));else F.appendChild(this._CreatePaddingElement(B));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(B.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(B));};F=E.insertCell(-1);var G=F.appendChild(B.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(B));};A.appendChild(C);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;if (!e) return;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';break;case 1:e.className='TB_Button_On';break;case -1:e.className='TB_Button_Disabled';break;};this.State=A;};function FCKToolbarButtonUI_OnMouseOver(A,B){if (B.State==0) this.className='TB_Button_Off_Over';else if (B.State==1) this.className='TB_Button_On_Over';};function FCKToolbarButtonUI_OnMouseOut(A,B){if (B.State==0) this.className='TB_Button_Off';else if (B.State==1) this.className='TB_Button_On';};function FCKToolbarButtonUI_OnClick(A,B){if (B.OnClick&&B.State!=-1) B.OnClick(B);};function FCKToolbarButtonUI_Cleanup(){this.MainElement=null;};
+var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];else this.IconPath=G;};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (A==this._UIButton.State) return;this._UIButton.ChangeState(A);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);}
+var FCKSpecialCombo=function(A,B,C,D,E){this.FieldWidth=B||100;this.PanelWidth=C||150;this.PanelMaxHeight=D||150;this.Label=' ';this.Caption=A;this.Tooltip=A;this.Style=2;this.Enabled=true;this.Items={};this._Panel=new FCKPanel(E||window);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._PanelBox=this._Panel.MainNode.appendChild(this._Panel.Document.createElement('DIV'));this._PanelBox.className='SC_Panel';this._PanelBox.style.width=this.PanelWidth+'px';this._PanelBox.innerHTML='<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>';this._ItemsHolderEl=this._PanelBox.getElementsByTagName('TD')[0];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKSpecialCombo_Cleanup);};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(A,B,C){this.className=this.originalClass;B._Panel.Hide();B.SetLabel(this.FCKItemLabel);if (typeof(B.OnSelect)=='function') B.OnSelect(C,this);};FCKSpecialCombo.prototype.ClearItems=function (){if (this.Items) this.Items={};var A=this._ItemsHolderEl;while (A.firstChild) A.removeChild(A.firstChild);};FCKSpecialCombo.prototype.AddItem=function(A,B,C,D){var E=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));E.className=E.originalClass='SC_Item';E.innerHTML=B;E.FCKItemLabel=C||A;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;FCKTools.AddEventListenerEx(E,'mouseover',FCKSpecialCombo_ItemOnMouseOver);FCKTools.AddEventListenerEx(E,'mouseout',FCKSpecialCombo_ItemOnMouseOut);FCKTools.AddEventListenerEx(E,'click',FCKSpecialCombo_ItemOnClick,[this,A]);this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){if (typeof A=='string') A=this.Items[A.toString().toLowerCase()];if (A){A.className=A.originalClass='SC_ItemSelected';A.Selected=true;}};FCKSpecialCombo.prototype.SelectItemByLabel=function(A,B){for (var C in this.Items){var D=this.Items[C];if (D.FCKItemLabel==A){D.className=D.originalClass='SC_ItemSelected';D.Selected=true;if (B) this.SetLabel(A);}}};FCKSpecialCombo.prototype.DeselectAll=function(A){for (var i in this.Items){if (!this.Items[i]) continue;this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};if (A) this.SetLabel('');};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){A=(!A||A.length==0)?' ':A;if (A==this.Label) return;this.Label=A;var B=this._LabelEl;if (B){B.innerHTML=A;FCKTools.DisableSelection(B);}};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;if (this._OuterTable) this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this._OuterTable=A.appendChild(B.createElement('TABLE'));C.cellPadding=0;C.cellSpacing=0;C.insertRow(-1);var D;var E;switch (this.Style){case 0:D='TB_ButtonType_Icon';E=false;break;case 1:D='TB_ButtonType_Text';E=false;break;case 2:E=true;break;};if (this.Caption&&this.Caption.length>0&&E){var F=C.rows[0].insertCell(-1);F.innerHTML=this.Caption;F.className='SC_FieldCaption';};var G=FCKTools.AppendElement(C.rows[0].insertCell(-1),'div');if (E){G.className='SC_Field';G.style.width=this.FieldWidth+'px';G.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldLabel"><label> </label></td><td class="SC_FieldButton"> </td></tr></tbody></table>';this._LabelEl=G.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{G.className='TB_Button_Off';G.innerHTML='<table title="'+this.Tooltip+'" class="'+D+'" cellspacing="0" cellpadding="0" border="0"><tr><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_Text">'+this.Caption+'</td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_ButtonArrow"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td></tr></table>';};FCKTools.AddEventListenerEx(G,'mouseover',FCKSpecialCombo_OnMouseOver,this);FCKTools.AddEventListenerEx(G,'mouseout',FCKSpecialCombo_OnMouseOut,this);FCKTools.AddEventListenerEx(G,'click',FCKSpecialCombo_OnClick,this);FCKTools.DisableSelection(this._Panel.Document.body);};function FCKSpecialCombo_Cleanup(){this._LabelEl=null;this._OuterTable=null;this._ItemsHolderEl=null;this._PanelBox=null;if (this.Items){for (var A in this.Items) this.Items[A]=null;}};function FCKSpecialCombo_OnMouseOver(A,B){if (B.Enabled){switch (B.Style){case 0:this.className='TB_Button_On_Over';break;case 1:this.className='TB_Button_On_Over';break;case 2:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(A,B){switch (B.Style){case 0:this.className='TB_Button_Off';break;case 1:this.className='TB_Button_Off';break;case 2:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e,A){if (A.Enabled){var B=A._Panel;var C=A._PanelBox;var D=A._ItemsHolderEl;var E=A.PanelMaxHeight;if (A.OnBeforeClick) A.OnBeforeClick(A);if (FCKBrowserInfo.IsIE) B.Preload(0,this.offsetHeight,this);if (D.offsetHeight>E) C.style.height=E+'px';else C.style.height='';B.Show(0,this.offsetHeight,this);}};
+var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;};FCKToolbarSpecialCombo.prototype.DefaultLabel='';function FCKToolbarSpecialCombo_OnSelect(A,B){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(A,B);};FCKToolbarSpecialCombo.prototype.Create=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel(),this.FieldWidth,this.PanelWidth,this.PanelMaxHeight,FCKBrowserInfo.IsIE?window:FCKTools.GetElementWindow(A).parent);this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A);this._Combo.CommandName=this.CommandName;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(A,B){A.DeselectAll();A.SelectItem(B);A.SetLabelById(B);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=-1){A=1;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!==B){this._LastValue=B;if (!B||B.length==0){this._Combo.DeselectAll();this._Combo.SetLabel(this.DefaultLabel);}else FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=-1;if (A==this.State) return;if (A==-1){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=-1);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=-1;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);};
+var FCKToolbarStyleCombo=function(A,B){if (A===false) return;this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultStyleLabel||'';};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.GetStyles=function(){var A={};var B=FCK.ToolbarSet.CurrentInstance.Styles.GetStyles();for (var C in B){var D=B[C];if (!D.IsCore) A[C]=D;};return A;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);FCKTools.AppendStyleString(B,FCKConfig.EditorAreaStyles);B.body.className+=' ForceBaseFont';FCKConfig.ApplyBodyAttributes(B.body);var C=this.GetStyles();for (var D in C){var E=C[D];var F=E.GetType()==2?D:FCKToolbarStyleCombo_BuildPreview(E,E.Label||D);var G=A.AddItem(D,F);G.Style=E;};A.OnBeforeClick=this.StyleCombo_OnBeforeClick;};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Elements;for (var e=0;e<D.length;e++){for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D[e],true)){A.SetLabel(F.Label||F.Name);return;}}}};A.SetLabel(this.DefaultLabel);};FCKToolbarStyleCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B;var C;var D;var E=FCK.ToolbarSet.CurrentInstance.Selection;if (E.GetType()=='Control'){B=E.GetSelectedElement();D=B.nodeName.toLowerCase();}else{B=E.GetBoundaryParentElement(true);C=new FCKElementPath(B);};for (var i in A.Items){var F=A.Items[i];var G=F.Style;if ((D&&G.Element==D)||(!D&&G.GetType()!=2)){F.style.display='';if ((C&&G.CheckActive(C))||(!C&&G.CheckElementRemovable(B,true))) A.SelectItem(G.Name);}else F.style.display='none';}};function FCKToolbarStyleCombo_BuildPreview(A,B){var C=A.GetType();var D=[];if (C==0) D.push('<div class="BaseFont">');var E=A.Element;if (E=='bdo') E='span';D=['<',E];var F=A._StyleDesc.Attributes;if (F){for (var G in F){D.push(' ',G,'="',A.GetFinalAttributeValue(G),'"');}};if (A._GetStyleText().length>0) D.push(' style="',A.GetFinalStyleValue(),'"');D.push('>',B,'</',E,'>');if (C==0) D.push('</div>');return D.join('');}
+var FCKToolbarFontFormatCombo=function(A,B){if (A===false) return;this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.NormalLabel='Normal';this.PanelWidth=190;this.DefaultLabel=FCKConfig.DefaultFontFormatLabel||'';};FCKToolbarFontFormatCombo.prototype=new FCKToolbarStyleCombo(false);FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.GetStyles=function(){var A={};var B=FCKLang['FontFormats'].split(';');var C={p:B[0],pre:B[1],address:B[2],h1:B[3],h2:B[4],h3:B[5],h4:B[6],h5:B[7],h6:B[8],div:B[9]||(B[0]+' (DIV)')};var D=FCKConfig.FontFormats.split(';');for (var i=0;i<D.length;i++){var E=D[i];var F=FCKStyles.GetStyle('_FCK_'+E);if (F){F.Label=C[E];A['_FCK_'+E]=F;}else alert("The FCKConfig.CoreStyles['"+E+"'] setting was not found. Please check the fckconfig.js file");};return A;};FCKToolbarFontFormatCombo.prototype.RefreshActiveItems=function(A){var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Block;if (D){for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D)){A.SetLabel(F.Label);return;}}}};A.SetLabel(this.DefaultLabel);};FCKToolbarFontFormatCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Block;for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D)){A.SelectItem(E);return;}}}};
+var FCKToolbarFontsCombo=function(A,B){this.CommandName='FontName';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultFontLabel||'';};FCKToolbarFontsCombo.prototype=new FCKToolbarFontFormatCombo(false);FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.GetStyles=function(){var A=FCKStyles.GetStyle('_FCK_FontFace');if (!A){alert("The FCKConfig.CoreStyles['Size'] setting was not found. Please check the fckconfig.js file");return {};};var B={};var C=FCKConfig.FontNames.split(';');for (var i=0;i<C.length;i++){var D=C[i].split('/');var E=D[0];var F=D[1]||E;var G=FCKTools.CloneObject(A);G.SetVariable('Font',E);G.Label=F;B[F]=G;};return B;};FCKToolbarFontsCombo.prototype.RefreshActiveItems=FCKToolbarStyleCombo.prototype.RefreshActiveItems;FCKToolbarFontsCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B=FCKSelection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);for (var i in A.Items){var D=A.Items[i];var E=D.Style;if (E.CheckActive(C)){A.SelectItem(D);return;}}}};
+var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultFontSizeLabel||'';this.FieldWidth=70;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarFontFormatCombo(false);FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.GetStyles=function(){var A=FCKStyles.GetStyle('_FCK_Size');if (!A){alert("The FCKConfig.CoreStyles['FontFace'] setting was not found. Please check the fckconfig.js file");return {};};var B={};var C=FCKConfig.FontSizes.split(';');for (var i=0;i<C.length;i++){var D=C[i].split('/');var E=D[0];var F=D[1]||E;var G=FCKTools.CloneObject(A);G.SetVariable('Size',E);G.Label=F;B[F]=G;};return B;};FCKToolbarFontSizeCombo.prototype.RefreshActiveItems=FCKToolbarStyleCombo.prototype.RefreshActiveItems;FCKToolbarFontSizeCombo.prototype.StyleCombo_OnBeforeClick=FCKToolbarFontsCombo.prototype.StyleCombo_OnBeforeClick;
+var FCKToolbarPanelButton=function(A,B,C,D,E){this.CommandName=A;var F;if (E==null) F=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(E)=='number') F=[FCKConfig.SkinPath+'fck_strip.gif',16,E];var G=this._UIButton=new FCKToolbarButtonUI(A,B,C,F,D);G._FCKToolbarPanelButton=this;G.ShowArrow=true;G.OnClick=FCKToolbarPanelButton_OnButtonClick;};FCKToolbarPanelButton.prototype.TypeName='FCKToolbarPanelButton';FCKToolbarPanelButton.prototype.Create=function(A){A.className+='Menu';this._UIButton.Create(A);var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName)._Panel;B._FCKToolbarPanelButton=this;var C=B.Document.body.appendChild(B.Document.createElement('div'));C.style.position='absolute';C.style.top='0px';var D=this.LineImg=C.appendChild(B.Document.createElement('IMG'));D.className='TB_ConnectionLine';D.style.position='absolute';D.src=FCK_SPACER_PATH;B.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(A){var B=this._FCKToolbarPanelButton;var e=B._UIButton.MainElement;B._UIButton.ChangeState(1);B.LineImg.style.width=(e.offsetWidth-2)+'px';FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(B.CommandName).Execute(0,e.offsetHeight-1,e);};function FCKToolbarPanelButton_OnPanelHide(){var A=this._FCKToolbarPanelButton;A._UIButton.ChangeState(0);};FCKToolbarPanelButton.prototype.RefreshState=FCKToolbarButton.prototype.RefreshState;FCKToolbarPanelButton.prototype.Enable=FCKToolbarButton.prototype.Enable;FCKToolbarPanelButton.prototype.Disable=FCKToolbarButton.prototype.Disable;
+var FCKToolbarItems={};FCKToolbarItems.LoadedItems={};FCKToolbarItems.RegisterItem=function(A,B){this.LoadedItems[A]=B;};FCKToolbarItems.GetItem=function(A){var B=FCKToolbarItems.LoadedItems[A];if (B) return B;switch (A){case 'Source':B=new FCKToolbarButton('Source',FCKLang.Source,null,2,true,true,1);break;case 'DocProps':B=new FCKToolbarButton('DocProps',FCKLang.DocProps,null,null,null,null,2);break;case 'Save':B=new FCKToolbarButton('Save',FCKLang.Save,null,null,true,null,3);break;case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;case 'Preview':B=new FCKToolbarButton('Preview',FCKLang.Preview,null,null,true,null,5);break;case 'Templates':B=new FCKToolbarButton('Templates',FCKLang.Templates,null,null,null,null,6);break;case 'About':B=new FCKToolbarButton('About',FCKLang.About,null,null,true,null,47);break;case 'Cut':B=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,false,true,7);break;case 'Copy':B=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,false,true,8);break;case 'Paste':B=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,false,true,9);break;case 'PasteText':B=new FCKToolbarButton('PasteText',FCKLang.PasteText,null,null,false,true,10);break;case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true,11);break;case 'Print':B=new FCKToolbarButton('Print',FCKLang.Print,null,null,false,true,12);break;case 'SpellCheck':B=new FCKToolbarButton('SpellCheck',FCKLang.SpellCheck,null,null,null,null,13);break;case 'Undo':B=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,false,true,14);break;case 'Redo':B=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,false,true,15);break;case 'SelectAll':B=new FCKToolbarButton('SelectAll',FCKLang.SelectAll,null,null,true,null,18);break;case 'RemoveFormat':B=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat,null,null,false,true,19);break;case 'FitWindow':B=new FCKToolbarButton('FitWindow',FCKLang.FitWindow,null,null,true,true,66);break;case 'Bold':B=new FCKToolbarButton('Bold',FCKLang.Bold,null,null,false,true,20);break;case 'Italic':B=new FCKToolbarButton('Italic',FCKLang.Italic,null,null,false,true,21);break;case 'Underline':B=new FCKToolbarButton('Underline',FCKLang.Underline,null,null,false,true,22);break;case 'StrikeThrough':B=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough,null,null,false,true,23);break;case 'Subscript':B=new FCKToolbarButton('Subscript',FCKLang.Subscript,null,null,false,true,24);break;case 'Superscript':B=new FCKToolbarButton('Superscript',FCKLang.Superscript,null,null,false,true,25);break;case 'OrderedList':B=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList,null,false,true,26);break;case 'UnorderedList':B=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList,null,false,true,27);break;case 'Outdent':B=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent,null,null,false,true,28);break;case 'Indent':B=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent,null,null,false,true,29);break;case 'Blockquote':B=new FCKToolbarButton('Blockquote',FCKLang.Blockquote,null,null,false,true,73);break;case 'Link':B=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink,null,false,true,34);break;case 'Unlink':B=new FCKToolbarButton('Unlink',FCKLang.RemoveLink,null,null,false,true,35);break;case 'Anchor':B=new FCKToolbarButton('Anchor',FCKLang.Anchor,null,null,null,null,36);break;case 'Image':B=new FCKToolbarButton('Image',FCKLang.InsertImageLbl,FCKLang.InsertImage,null,false,true,37);break;case 'Flash':B=new FCKToolbarButton('Flash',FCKLang.InsertFlashLbl,FCKLang.InsertFlash,null,false,true,38);break;case 'Table':B=new FCKToolbarButton('Table',FCKLang.InsertTableLbl,FCKLang.InsertTable,null,false,true,39);break;case 'SpecialChar':B=new FCKToolbarButton('SpecialChar',FCKLang.InsertSpecialCharLbl,FCKLang.InsertSpecialChar,null,false,true,42);break;case 'Smiley':B=new FCKToolbarButton('Smiley',FCKLang.InsertSmileyLbl,FCKLang.InsertSmiley,null,false,true,41);break;case 'PageBreak':B=new FCKToolbarButton('PageBreak',FCKLang.PageBreakLbl,FCKLang.PageBreak,null,false,true,43);break;case 'Rule':B=new FCKToolbarButton('Rule',FCKLang.InsertLineLbl,FCKLang.InsertLine,null,false,true,40);break;case 'JustifyLeft':B=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify,null,null,false,true,30);break;case 'JustifyCenter':B=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify,null,null,false,true,31);break;case 'JustifyRight':B=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify,null,null,false,true,32);break;case 'JustifyFull':B=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify,null,null,false,true,33);break;case 'Style':B=new FCKToolbarStyleCombo();break;case 'FontName':B=new FCKToolbarFontsCombo();break;case 'FontSize':B=new FCKToolbarFontSizeCombo();break;case 'FontFormat':B=new FCKToolbarFontFormatCombo();break;case 'TextColor':B=new FCKToolbarPanelButton('TextColor',FCKLang.TextColor,null,null,45);break;case 'BGColor':B=new FCKToolbarPanelButton('BGColor',FCKLang.BGColor,null,null,46);break;case 'Find':B=new FCKToolbarButton('Find',FCKLang.Find,null,null,null,null,16);break;case 'Replace':B=new FCKToolbarButton('Replace',FCKLang.Replace,null,null,null,null,17);break;case 'Form':B=new FCKToolbarButton('Form',FCKLang.Form,null,null,null,null,48);break;case 'Checkbox':B=new FCKToolbarButton('Checkbox',FCKLang.Checkbox,null,null,null,null,49);break;case 'Radio':B=new FCKToolbarButton('Radio',FCKLang.RadioButton,null,null,null,null,50);break;case 'TextField':B=new FCKToolbarButton('TextField',FCKLang.TextField,null,null,null,null,51);break;case 'Textarea':B=new FCKToolbarButton('Textarea',FCKLang.Textarea,null,null,null,null,52);break;case 'HiddenField':B=new FCKToolbarButton('HiddenField',FCKLang.HiddenField,null,null,null,null,56);break;case 'Button':B=new FCKToolbarButton('Button',FCKLang.Button,null,null,null,null,54);break;case 'Select':B=new FCKToolbarButton('Select',FCKLang.SelectionField,null,null,null,null,53);break;case 'ImageButton':B=new FCKToolbarButton('ImageButton',FCKLang.ImageButton,null,null,null,null,55);break;case 'ShowBlocks':B=new FCKToolbarButton('ShowBlocks',FCKLang.ShowBlocks,null,null,null,true,72);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;};
+var FCKToolbar=function(){this.Items=[];};FCKToolbar.prototype.AddItem=function(A){return this.Items[this.Items.length]=A;};FCKToolbar.prototype.AddButton=function(A,B,C,D,E,F){if (typeof(D)=='number') D=[this.DefaultIconsStrip,this.DefaultIconSize,D];var G=new FCKToolbarButtonUI(A,B,C,D,E,F);G._FCKToolbar=this;G.OnClick=FCKToolbar_OnItemClick;return this.AddItem(G);};function FCKToolbar_OnItemClick(A){var B=A._FCKToolbar;if (B.OnItemClick) B.OnItemClick(B,A);};FCKToolbar.prototype.AddSeparator=function(){this.AddItem(new FCKToolbarSeparator());};FCKToolbar.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var e=B.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=(FCKLang.Dir=='ltr'?'left':'right');e.dir=FCKLang.Dir;e.cellPadding=0;e.cellSpacing=0;var C=e.insertRow(-1);var D;if (!this.HideStart){D=C.insertCell(-1);D.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i<this.Items.length;i++){this.Items[i].Create(C.insertCell(-1));};if (!this.HideEnd){D=C.insertCell(-1);D.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';}
+var FCKToolbarBreak=function(){};FCKToolbarBreak.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A).createElement('div');B.className='TB_Break';B.style.clear=FCKLang.Dir=='rtl'?'left':'right';A.appendChild(B);};
+function FCKToolbarSet_Create(A){var B;var C=A||FCKConfig.ToolbarLocation;switch (C){case 'In':document.getElementById('xToolbarRow').style.display='';B=new FCKToolbarSet(document);break;case 'None':B=new FCKToolbarSet(document);break;default:FCK.Events.AttachEvent('OnBlur',FCK_OnBlur);FCK.Events.AttachEvent('OnFocus',FCK_OnFocus);var D;var E=C.match(/^Out:(.+)\((\w+)\)$/);if (E){D=eval('parent.'+E[1]).document.getElementById(E[2]);}else{E=C.match(/^Out:(\w+)$/);if (E) D=parent.document.getElementById(E[1]);};if (!D){alert('Invalid value for "ToolbarLocation"');return arguments.callee('In');};B=D.__FCKToolbarSet;if (B) break;var F=FCKTools.GetElementDocument(D).createElement('iframe');F.src='javascript:void(0)';F.frameBorder=0;F.width='100%';F.height='10';D.appendChild(F);F.unselectable='on';var G=F.contentWindow.document;var H='';if (FCKBrowserInfo.IsSafari) H='<base href="'+window.document.location+'">';G.open();G.write('<html><head>'+H+'<script type="text/javascript"> var adjust = function() { window.frameElement.height = document.body.scrollHeight ; }; window.onresize = adjust; window.onload = function () {window.setTimeout( adjust, 0 );}</script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');G.close();FCKTools.AddEventListener(G,'contextmenu',FCKTools.CancelEvent);FCKTools.AppendStyleSheet(G,FCKConfig.SkinPath+'fck_editor.css');B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;FCK.AttachToOnSelectionChange(B.RefreshItemsState);return B;};function FCK_OnBlur(A){var B=A.ToolbarSet;if (B.CurrentInstance==A) B.Disable();};function FCK_OnFocus(A){var B=A.ToolbarSet;var C=A||FCK;B.CurrentInstance.FocusManager.RemoveWindow(B._IFrame.contentWindow);B.CurrentInstance=C;C.FocusManager.AddWindow(B._IFrame.contentWindow,true);B.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;FCKTools.AddEventListener(B,'click',FCKToolbarSet_Expand_OnClick);C.title=FCKLang.ToolbarCollapse;FCKTools.AddEventListener(C,'click',FCKToolbarSet_Collapse_OnClick);if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();C.style.display=FCKConfig.ToolbarCanCollapse?'':'none';if (FCKConfig.ToolbarCanCollapse) C.style.display='';else A.getElementById('xTBLeftBorder').style.display='';this.Toolbars=[];this.IsLoaded=false;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarSet_Cleanup);};function FCKToolbarSet_Expand_OnClick(){FCK.ToolbarSet.Expand();};function FCKToolbarSet_Collapse_OnClick(){FCK.ToolbarSet.Collapse();};FCKToolbarSet.prototype.Expand=function(){this._ChangeVisibility(false);};FCKToolbarSet.prototype.Collapse=function(){this._ChangeVisibility(true);};FCKToolbarSet.prototype._ChangeVisibility=function(A){this._Document.getElementById('xCollapsed').style.display=A?'':'none';this._Document.getElementById('xExpanded').style.display=A?'none':'';if (FCKBrowserInfo.IsGecko){FCKTools.RunFunction(window.onresize);}};FCKToolbarSet.prototype.Load=function(A){this.Name=A;this.Items=[];this.ItemsWysiwygOnly=[];this.ItemsContextSensitive=[];this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=[];for (var x=0;x<B.length;x++){var C=B[x];if (!C) continue;var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j<C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);this.Items.push(F);if (!F.SourceView) this.ItemsWysiwygOnly.push(F);if (F.ContextSensitive) this.ItemsContextSensitive.push(F);}}}};D.Create(this._TargetElement);this.Toolbars[this.Toolbars.length]=D;};FCKTools.DisableSelection(this._Document.getElementById('xCollapseHandle').parentNode);if (FCK.Status!=2) FCK.Events.AttachEvent('OnStatusChange',this.RefreshModeState);else this.RefreshModeState();this.IsLoaded=true;this.IsEnabled=true;FCKTools.RunFunction(this.OnLoad);};FCKToolbarSet.prototype.Enable=function(){if (this.IsEnabled) return;this.IsEnabled=true;var A=this.Items;for (var i=0;i<A.length;i++) A[i].RefreshState();};FCKToolbarSet.prototype.Disable=function(){if (!this.IsEnabled) return;this.IsEnabled=false;var A=this.Items;for (var i=0;i<A.length;i++) A[i].Disable();};FCKToolbarSet.prototype.RefreshModeState=function(A){if (FCK.Status!=2) return;var B=A?A.ToolbarSet:this;var C=B.ItemsWysiwygOnly;if (FCK.EditMode==0){for (var i=0;i<C.length;i++) C[i].Enable();B.RefreshItemsState(A);}else{B.RefreshItemsState(A);for (var j=0;j<C.length;j++) C[j].Disable();}};FCKToolbarSet.prototype.RefreshItemsState=function(A){var B=(A?A.ToolbarSet:this).ItemsContextSensitive;for (var i=0;i<B.length;i++) B[i].RefreshState();};
var FCKDialog={};FCKDialog.OpenDialog=function(A,B,C,D,E,F,G,H){var I={};I.Title=B;I.Page=C;I.Editor=window;I.CustomValue=F;var J=FCKConfig.BasePath+'fckdialog.html';this.Show(I,A,J,D,E,G,H);};
-FCKDialog.Show=function(A,B,C,D,E,F,G){if (!F) F=window;var H='help:no;scroll:no;status:no;resizable:'+(G?'yes':'no')+';dialogWidth:'+D+'px;dialogHeight:'+E+'px';FCKFocusManager.Lock();var I='B';try{I=F.showModalDialog(C,A,H);}catch(e) {};if ('B'===I) alert(FCKLang.DialogBlocked);FCKFocusManager.Unlock();};
+FCKDialog.Show=function(A,B,C,D,E,F,G){if (!F) F=window;var H='help:no;scroll:no;status:no;resizable:'+(G?'yes':'no')+';dialogWidth:'+D+'px;dialogHeight:'+E+'px';FCKFocusManager.Lock();var I='B';try{A.DialogName=B;I=F.showModalDialog(C,A,H);}catch(e) {};if ('B'===I) alert(FCKLang.DialogBlocked);FCKFocusManager.Unlock();};
var FCKMenuItem=function(A,B,C,D,E){this.Name=B;this.Label=C||B;this.IsDisabled=E;this.Icon=new FCKIcon(D);this.SubMenu=new FCKMenuBlockPanel();this.SubMenu.Parent=A;this.SubMenu.OnClick=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnClick,this);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D);};FCKMenuItem.prototype.AddSeparator=function(){this.SubMenu.AddSeparator();};FCKMenuItem.prototype.Create=function(A){var B=this.HasSubMenu;var C=FCKTools.GetElementDocument(A);var r=this.MainElement=A.insertRow(-1);r.className=this.IsDisabled?'MN_Item_Disabled':'MN_Item';if (!this.IsDisabled){FCKTools.AddEventListenerEx(r,'mouseover',FCKMenuItem_OnMouseOver,[this]);FCKTools.AddEventListenerEx(r,'click',FCKMenuItem_OnClick,[this]);if (!B) FCKTools.AddEventListenerEx(r,'mouseout',FCKMenuItem_OnMouseOut,[this]);};var D=r.insertCell(-1);D.className='MN_Icon';D.appendChild(this.Icon.CreateIconElement(C));D=r.insertCell(-1);D.className='MN_Label';D.noWrap=true;D.appendChild(C.createTextNode(this.Label));D=r.insertCell(-1);if (B){D.className='MN_Arrow';var E=D.appendChild(C.createElement('IMG'));E.src=FCK_IMAGES_PATH+'arrow_'+FCKLang.Dir+'.gif';E.width=4;E.height=7;this.SubMenu.Create();this.SubMenu.Panel.OnHide=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnHide,this);}};FCKMenuItem.prototype.Activate=function(){this.MainElement.className='MN_Item_Over';if (this.HasSubMenu){this.SubMenu.Show(this.MainElement.offsetWidth+2,-2,this.MainElement);};FCKTools.RunFunction(this.OnActivate,this);};FCKMenuItem.prototype.Deactivate=function(){this.MainElement.className='MN_Item';if (this.HasSubMenu) this.SubMenu.Hide();};function FCKMenuItem_SubMenu_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuItem_SubMenu_OnHide(A){A.Deactivate();};function FCKMenuItem_OnClick(A,B){if (B.HasSubMenu) B.Activate();else{B.Deactivate();FCKTools.RunFunction(B.OnClick,B,[B]);}};function FCKMenuItem_OnMouseOver(A,B){B.Activate();};function FCKMenuItem_OnMouseOut(A,B){B.Deactivate();};function FCKMenuItem_Cleanup(){this.MainElement=null;}
-var FCKMenuBlock=function(){this._Items=[];};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D){var E=new FCKMenuItem(this,A,B,C,D);E.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);E.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(E);return E;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=[];var A=this._ItemsTable;if (A){while (A.rows.length>0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i<this._Items.length;i++) this._Items[i].Create(this._ItemsTable);};function FCKMenuBlock_Item_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuBlock_Item_OnActivate(A){var B=A._ActiveItem;if (B&&B!=this){if (!FCKBrowserInfo.IsIE&&B.HasSubMenu&&!this.HasSubMenu) A._Window.focus();B.Deactivate();};A._ActiveItem=this;};function FCKMenuBlock_Cleanup(){this._Window=null;this._ItemsTable=null;};var FCKMenuSeparator=function(){};FCKMenuSeparator.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var r=A.insertRow(-1);var C=r.insertCell(-1);C.className='MN_Separator MN_Icon';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';}
+var FCKMenuBlock=function(){this._Items=[];};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D){var E=new FCKMenuItem(this,A,B,C,D);E.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);E.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(E);return E;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=[];var A=this._ItemsTable;if (A){while (A.rows.length>0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i<this._Items.length;i++) this._Items[i].Create(this._ItemsTable);};function FCKMenuBlock_Item_OnClick(A,B){if (B.Hide) B.Hide();FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuBlock_Item_OnActivate(A){var B=A._ActiveItem;if (B&&B!=this){if (!FCKBrowserInfo.IsIE&&B.HasSubMenu&&!this.HasSubMenu){A._Window.focus();A.Panel.HasFocus=true;};B.Deactivate();};A._ActiveItem=this;};function FCKMenuBlock_Cleanup(){this._Window=null;this._ItemsTable=null;};var FCKMenuSeparator=function(){};FCKMenuSeparator.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var r=A.insertRow(-1);var C=r.insertCell(-1);C.className='MN_Separator MN_Icon';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';}
var FCKMenuBlockPanel=function(){FCKMenuBlock.call(this);};FCKMenuBlockPanel.prototype=new FCKMenuBlock();FCKMenuBlockPanel.prototype.Create=function(){var A=this.Panel=(this.Parent&&this.Parent.Panel?this.Parent.Panel.CreateChildPanel():new FCKPanel());A.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');FCKMenuBlock.prototype.Create.call(this,A.MainNode);};FCKMenuBlockPanel.prototype.Show=function(x,y,A){if (!this.Panel.CheckIsOpened()) this.Panel.Show(x,y,A);};FCKMenuBlockPanel.prototype.Hide=function(){if (this.Panel.CheckIsOpened()) this.Panel.Hide();}
-var FCKContextMenu=function(A,B){var C=this._Panel=new FCKPanel(A,true);C.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');C.IsContextMenu=true;var D=this._MenuBlock=new FCKMenuBlock();D.Panel=C;D.OnClick=FCKTools.CreateEventListener(FCKContextMenu_MenuBlock_OnClick,this);this._Redraw=true;};FCKContextMenu.prototype.SetMouseClickWindow=function(A){if (!FCKBrowserInfo.IsIE){this._Document=A.document;this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D){var E=this._MenuBlock.AddItem(A,B,C,D);this._Redraw=true;return E;};FCKContextMenu.prototype.AddSeparator=function(){this._MenuBlock.AddSeparator();this._Redraw=true;};FCKContextMenu.prototype.RemoveAllItems=function(){this._MenuBlock.RemoveAllItems();this._Redraw=true;};FCKContextMenu.prototype.AttachToElement=function(A){if (FCKBrowserInfo.IsIE) FCKTools.AddEventListenerEx(A,'contextmenu',FCKContextMenu_AttachedElement_OnContextMenu,this);else A._FCKContextMenu=this;};function FCKContextMenu_Document_OnContextMenu(e){var A=e.target;while (A){if (A._FCKContextMenu){FCKTools.CancelEvent(e);FCKContextMenu_AttachedElement_OnContextMenu(e,A._FCKContextMenu,A);};A=A.parentNode;}};function FCKContextMenu_AttachedElement_OnContextMenu(A,B,C){var D=C||this;if (B.OnBeforeOpen) B.OnBeforeOpen.call(B,D);if (B._MenuBlock.Count()==0) return false;if (B._Redraw){B._MenuBlock.Create(B._Panel.MainNode);B._Redraw=false;};B._Panel.Show(A.pageX||A.screenX,A.pageY||A.screenY,A.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(A,B){B._Panel.Hide();FCKTools.RunFunction(B.OnItemClick,B,A);}
-FCK.ContextMenu={};FCK.ContextMenu.Listeners=[];FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var A=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCKLang.Dir);A.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;A.OnItemClick=FCK_ContextMenu_OnItemClick;var B=FCK.ContextMenu;for (var i=0;i<FCKConfig.ContextMenu.length;i++) B.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(A){switch (A){case 'Generic':return {AddItems:function(menu,tag,tagName){menu.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==-1);menu.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==-1);menu.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==-1);}};case 'Table':return {AddItems:function(menu,tag,tagName){var B=(tagName=='TABLE');var C=(!B&&FCKSelection.HasAncestorNode('TABLE'));if (C){menu.AddSeparator();var D=menu.AddItem('Cell',FCKLang.CellCM);D.AddItem('TableInsertCell',FCKLang.InsertCell,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);D.AddItem('TableMergeCells',FCKLang.MergeCells,60);D.AddItem('TableSplitCell',FCKLang.SplitCell,61);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRow',FCKLang.InsertRow,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumn',FCKLang.InsertColumn,64);D.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (B||C){menu.AddSeparator();menu.AddItem('TableDelete',FCKLang.TableDelete);menu.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(menu,tag,tagName){var E=(tagName=='A'||FCKSelection.HasAncestorNode('A'));if (E||FCK.GetNamedCommandState('Unlink')!=-1){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0&&F.href.length==0);if (G) return;menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0);if (G||(tagName=='IMG'&&tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='hidden'){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i<C.length;i++) C[i].AddItems(B,A,sTagName);};function FCK_ContextMenu_OnItemClick(A){FCK.Focus();FCKCommands.GetCommand(A.Name).Execute();};
+var FCKContextMenu=function(A,B){this.CtrlDisable=false;var C=this._Panel=new FCKPanel(A);C.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');C.IsContextMenu=true;if (FCKBrowserInfo.IsGecko) C.Document.addEventListener('draggesture',function(e) {e.preventDefault();return false;},true);var D=this._MenuBlock=new FCKMenuBlock();D.Panel=C;D.OnClick=FCKTools.CreateEventListener(FCKContextMenu_MenuBlock_OnClick,this);this._Redraw=true;};FCKContextMenu.prototype.SetMouseClickWindow=function(A){if (!FCKBrowserInfo.IsIE){this._Document=A.document;if (FCKBrowserInfo.IsOpera&&!('oncontextmenu' in document.createElement('foo'))){this._Document.addEventListener('mousedown',FCKContextMenu_Document_OnMouseDown,false);this._Document.addEventListener('mouseup',FCKContextMenu_Document_OnMouseUp,false);};this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D){var E=this._MenuBlock.AddItem(A,B,C,D);this._Redraw=true;return E;};FCKContextMenu.prototype.AddSeparator=function(){this._MenuBlock.AddSeparator();this._Redraw=true;};FCKContextMenu.prototype.RemoveAllItems=function(){this._MenuBlock.RemoveAllItems();this._Redraw=true;};FCKContextMenu.prototype.AttachToElement=function(A){if (FCKBrowserInfo.IsIE) FCKTools.AddEventListenerEx(A,'contextmenu',FCKContextMenu_AttachedElement_OnContextMenu,this);else A._FCKContextMenu=this;};function FCKContextMenu_Document_OnContextMenu(e){var A=e.target;while (A){if (A._FCKContextMenu){if (A._FCKContextMenu.CtrlDisable&&(e.ctrlKey||e.metaKey)) return true;FCKTools.CancelEvent(e);FCKContextMenu_AttachedElement_OnContextMenu(e,A._FCKContextMenu,A);return false;};A=A.parentNode;};return true;};var FCKContextMenu_OverrideButton;function FCKContextMenu_Document_OnMouseDown(e){if(!e||e.button!=2) return false;var A=e.target;while (A){if (A._FCKContextMenu){if (A._FCKContextMenu.CtrlDisable&&(e.ctrlKey||e.metaKey)) return true;var B=FCKContextMenu_OverrideButton;if(!B){var C=e.target.ownerDocument;B=FCKContextMenu_OverrideButton=C.createElement('input');B.type='button';var D=C.createElement('p');C.body.appendChild(D);D.appendChild(B);};B.style.cssText='position:absolute;top:'+(e.clientY-2)+'px;left:'+(e.clientX-2)+'px;width:5px;height:5px;opacity:0.01';};A=A.parentNode;};return false;};function FCKContextMenu_Document_OnMouseUp(e){var A=FCKContextMenu_OverrideButton;if (A){var B=A.parentNode;B.parentNode.removeChild(B);FCKContextMenu_OverrideButton=undefined;if(e&&e.button==2){FCKContextMenu_Document_OnContextMenu(e);return false;}}};function FCKContextMenu_AttachedElement_OnContextMenu(A,B,C){if (B.CtrlDisable&&(A.ctrlKey||A.metaKey)) return true;var D=C||this;if (B.OnBeforeOpen) B.OnBeforeOpen.call(B,D);if (B._MenuBlock.Count()==0) return false;if (B._Redraw){B._MenuBlock.Create(B._Panel.MainNode);B._Redraw=false;};FCKTools.DisableSelection(B._Panel.Document.body);var x=0;var y=0;if (FCKBrowserInfo.IsIE){x=A.screenX;y=A.screenY;}else if (FCKBrowserInfo.IsSafari){x=A.clientX;y=A.clientY;}else{x=A.pageX;y=A.pageY;};B._Panel.Show(x,y,A.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(A,B){B._Panel.Hide();FCKTools.RunFunction(B.OnItemClick,B,A);};
+FCK.ContextMenu={};FCK.ContextMenu.Listeners=[];FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var A=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCKLang.Dir);A.CtrlDisable=FCKConfig.BrowserContextMenuOnCtrl;A.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;A.OnItemClick=FCK_ContextMenu_OnItemClick;var B=FCK.ContextMenu;for (var i=0;i<FCKConfig.ContextMenu.length;i++) B.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(A){switch (A){case 'Generic':return {AddItems:function(menu,tag,tagName){menu.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==-1);menu.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==-1);menu.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==-1);}};case 'Table':return {AddItems:function(menu,tag,tagName){var B=(tagName=='TABLE');var C=(!B&&FCKSelection.HasAncestorNode('TABLE'));if (C){menu.AddSeparator();var D=menu.AddItem('Cell',FCKLang.CellCM);D.AddItem('TableInsertCellBefore',FCKLang.InsertCellBefore,69);D.AddItem('TableInsertCellAfter',FCKLang.InsertCellAfter,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);if (FCKBrowserInfo.IsGecko) D.AddItem('TableMergeCells',FCKLang.MergeCells,60,FCKCommands.GetCommand('TableMergeCells').GetState()==-1);else{D.AddItem('TableMergeRight',FCKLang.MergeRight,60,FCKCommands.GetCommand('TableMergeRight').GetState()==-1);D.AddItem('TableMergeDown',FCKLang.MergeDown,60,FCKCommands.GetCommand('TableMergeDown').GetState()==-1);};D.AddItem('TableHorizontalSplitCell',FCKLang.HorizontalSplitCell,61,FCKCommands.GetCommand('TableHorizontalSplitCell').GetState()==-1);D.AddItem('TableVerticalSplitCell',FCKLang.VerticalSplitCell,61,FCKCommands.GetCommand('TableVerticalSplitCell').GetState()==-1);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57,FCKCommands.GetCommand('TableCellProp').GetState()==-1);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRowBefore',FCKLang.InsertRowBefore,70);D.AddItem('TableInsertRowAfter',FCKLang.InsertRowAfter,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumnBefore',FCKLang.InsertColumnBefore,71);D.AddItem('TableInsertColumnAfter',FCKLang.InsertColumnAfter,64);D.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (B||C){menu.AddSeparator();menu.AddItem('TableDelete',FCKLang.TableDelete);menu.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(menu,tag,tagName){var E=(tagName=='A'||FCKSelection.HasAncestorNode('A'));if (E||FCK.GetNamedCommandState('Unlink')!=-1){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0&&F.href.length==0);if (G) return;menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0);if (G||(tagName=='IMG'&&tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);menu.AddItem('AnchorDelete',FCKLang.AnchorDelete);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckinputhidden')){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i<C.length;i++) C[i].AddItems(B,A,sTagName);};function FCK_ContextMenu_OnItemClick(A){FCK.Focus();FCKCommands.GetCommand(A.Name).Execute();};
var FCKPlugin=function(A,B,C){this.Name=A;this.BasePath=C?C:FCKConfig.PluginsPath;this.Path=this.BasePath+A+'/';if (!B||B.length==0) this.AvailableLangs=[];else this.AvailableLangs=B.split(',');};FCKPlugin.prototype.Load=function(){if (this.AvailableLangs.length>0){var A;if (this.AvailableLangs.IndexOf(FCKLanguageManager.ActiveLanguage.Code)>=0) A=FCKLanguageManager.ActiveLanguage.Code;else A=this.AvailableLangs[0];LoadScript(this.Path+'lang/'+A+'.js');};LoadScript(this.Path+'fckplugin.js');}
var FCKPlugins=FCK.Plugins={};FCKPlugins.ItemsCount=0;FCKPlugins.Items={};FCKPlugins.Load=function(){var A=FCKPlugins.Items;for (var i=0;i<FCKConfig.Plugins.Items.length;i++){var B=FCKConfig.Plugins.Items[i];var C=A[B[0]]=new FCKPlugin(B[0],B[1],B[2]);FCKPlugins.ItemsCount++;};for (var s in A) A[s].Load();FCKPlugins.Load=null;}
diff --git a/editor/editor/lang/_translationstatus.txt b/editor/editor/lang/_translationstatus.txt
@@ -1,80 +1,76 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: _translationstatus.txt
- * Translations Status.
- *
- * File Authors:
- * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ *
+ * Translations Status.
*/
-af.js Found: 402 Missing: 0
-ar.js Found: 402 Missing: 0
-bg.js Found: 379 Missing: 23
-bn.js Found: 387 Missing: 15
-bs.js Found: 231 Missing: 171
-ca.js Found: 402 Missing: 0
-cs.js Found: 387 Missing: 15
-da.js Found: 387 Missing: 15
-de.js Found: 402 Missing: 0
-el.js Found: 402 Missing: 0
-en-au.js Found: 402 Missing: 0
-en-ca.js Found: 402 Missing: 0
-en-uk.js Found: 402 Missing: 0
-eo.js Found: 351 Missing: 51
-es.js Found: 387 Missing: 15
-et.js Found: 387 Missing: 15
-eu.js Found: 387 Missing: 15
-fa.js Found: 402 Missing: 0
-fi.js Found: 387 Missing: 15
-fo.js Found: 402 Missing: 0
-fr.js Found: 402 Missing: 0
-gl.js Found: 387 Missing: 15
-he.js Found: 402 Missing: 0
-hi.js Found: 402 Missing: 0
-hr.js Found: 402 Missing: 0
-hu.js Found: 402 Missing: 0
-it.js Found: 402 Missing: 0
-ja.js Found: 402 Missing: 0
-km.js Found: 376 Missing: 26
-ko.js Found: 374 Missing: 28
-lt.js Found: 382 Missing: 20
-lv.js Found: 387 Missing: 15
-mn.js Found: 231 Missing: 171
-ms.js Found: 357 Missing: 45
-nb.js Found: 402 Missing: 0
-nl.js Found: 402 Missing: 0
-no.js Found: 402 Missing: 0
-pl.js Found: 387 Missing: 15
-pt-br.js Found: 402 Missing: 0
-pt.js Found: 387 Missing: 15
-ro.js Found: 401 Missing: 1
-ru.js Found: 402 Missing: 0
-sk.js Found: 402 Missing: 0
-sl.js Found: 379 Missing: 23
-sr-latn.js Found: 374 Missing: 28
-sr.js Found: 374 Missing: 28
-sv.js Found: 382 Missing: 20
-th.js Found: 351 Missing: 51
-tr.js Found: 402 Missing: 0
-uk.js Found: 402 Missing: 0
-vi.js Found: 402 Missing: 0
-zh-cn.js Found: 402 Missing: 0
-zh.js Found: 402 Missing: 0
+af.js Found: 397 Missing: 15
+ar.js Found: 412 Missing: 0
+bg.js Found: 374 Missing: 38
+bn.js Found: 381 Missing: 31
+bs.js Found: 226 Missing: 186
+ca.js Found: 412 Missing: 0
+cs.js Found: 397 Missing: 15
+da.js Found: 382 Missing: 30
+de.js Found: 412 Missing: 0
+el.js Found: 397 Missing: 15
+en-au.js Found: 412 Missing: 0
+en-ca.js Found: 412 Missing: 0
+en-uk.js Found: 412 Missing: 0
+eo.js Found: 346 Missing: 66
+es.js Found: 412 Missing: 0
+et.js Found: 412 Missing: 0
+eu.js Found: 382 Missing: 30
+fa.js Found: 398 Missing: 14
+fi.js Found: 412 Missing: 0
+fo.js Found: 397 Missing: 15
+fr.js Found: 412 Missing: 0
+gl.js Found: 382 Missing: 30
+he.js Found: 412 Missing: 0
+hi.js Found: 412 Missing: 0
+hr.js Found: 412 Missing: 0
+hu.js Found: 412 Missing: 0
+it.js Found: 397 Missing: 15
+ja.js Found: 412 Missing: 0
+km.js Found: 371 Missing: 41
+ko.js Found: 369 Missing: 43
+lt.js Found: 377 Missing: 35
+lv.js Found: 382 Missing: 30
+mn.js Found: 226 Missing: 186
+ms.js Found: 352 Missing: 60
+nb.js Found: 396 Missing: 16
+nl.js Found: 412 Missing: 0
+no.js Found: 396 Missing: 16
+pl.js Found: 412 Missing: 0
+pt-br.js Found: 397 Missing: 15
+pt.js Found: 382 Missing: 30
+ro.js Found: 411 Missing: 1
+ru.js Found: 397 Missing: 15
+sk.js Found: 397 Missing: 15
+sl.js Found: 412 Missing: 0
+sr-latn.js Found: 369 Missing: 43
+sr.js Found: 369 Missing: 43
+sv.js Found: 397 Missing: 15
+th.js Found: 394 Missing: 18
+tr.js Found: 397 Missing: 15
+uk.js Found: 398 Missing: 14
+vi.js Found: 397 Missing: 15
+zh-cn.js Found: 412 Missing: 0
+zh.js Found: 412 Missing: 0
diff --git a/editor/editor/lang/af.js b/editor/editor/lang/af.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: af.js
- * Afrikaans language file.
- *
- * File Authors:
- * Willem Petrus Botha (w@adesso.za.net)
+ *
+ * Afrikaans language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Skakel",
InsertLink : "Skakel byvoeg/verander",
RemoveLink : "Skakel verweider",
Anchor : "Plekhouer byvoeg/verander",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Beeld",
InsertImage : "Beeld byvoeg/verander",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "Regs rig",
BlockJustify : "Blok paradeer",
DecreaseIndent : "Paradeering verkort",
IncreaseIndent : "Paradeering verleng",
+Blockquote : "Blockquote", //MISSING
Undo : "Ont-skep",
Redo : "Her-skep",
NumberedListLbl : "Genommerde lys",
@@ -107,20 +105,27 @@ SelectionField : "Opklapbare keuse strook",
ImageButton : "Beeld knop",
FitWindow : "Maksimaliseer venster grote",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Verander skakel",
CellCM : "Cell",
RowCM : "Ry",
ColumnCM : "Kolom",
-InsertRow : "Ry byvoeg",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Ry verweider",
-InsertColumn : "Kolom byvoeg",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Kolom verweider",
-InsertCell : "Cell byvoeg",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Cell verweider",
MergeCells : "Cell verenig",
-SplitCell : "Cell verdeel",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Tabel verweider",
CellProperties : "Cell eienskappe",
TableProperties : "Tabel eienskappe",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Opklapbare keuse strook eienskappe",
TextareaProp : "Karakter area eienskappe",
FormProp : "Form eienskappe",
-FontFormats : "Normaal;Geformateerd;Adres;Opskrif 1;Opskrif 2;Opskrif 3;Opskrif 4;Opskrif 5;Opskrif 6;Normaal (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normaal;Geformateerd;Adres;Opskrif 1;Opskrif 2;Opskrif 3;Opskrif 4;Opskrif 5;Opskrif 6;Normaal (DIV)",
// Alerts and Messages
ProcessingXHTML : "XHTML word verarbeit. U geduld asseblief...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Kies 'n plekhouer",
DlgLnkAnchorByName : "Volgens plekhouer naam",
DlgLnkAnchorById : "Volgens element Id",
-DlgLnkNoAnchors : "<Geen plekhouers beskikbaar in dokument>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Geen plekhouers beskikbaar in dokument}",
DlgLnkEMail : "E-Mail Adres",
DlgLnkEMailSubject : "Boodskap Opskrif",
DlgLnkEMailBody : "Boodskap Inhoud",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Agtergrond Kleur",
DlgCellBorderColor : "Kant Kleur",
DlgCellBtnSelect : "Keuse...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Vind",
DlgFindFindBtn : "Vind",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Vervang alles",
DlgReplaceWordChk : "Vergelyk komplete woord",
// Paste Operations / Dialog
-PasteErrorPaste : "U browser se sekuriteit instelling behinder die byvoeg aksie. Gebruik asseblief die sleutel kombenasie(Ctrl+V).",
PasteErrorCut : "U browser se sekuriteit instelling behinder die uitsny aksie. Gebruik asseblief die sleutel kombenasie(Ctrl+X).",
PasteErrorCopy : "U browser se sekuriteit instelling behinder die kopieerings aksie. Gebruik asseblief die sleutel kombenasie(Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Voeg slegs karakters by",
PasteFromWord : "Byvoeging uit Word",
DlgPasteMsg2 : "Voeg asseblief die inhoud in die gegewe box by met sleutel kombenasie(<STRONG>Ctrl+V</STRONG>) en druk <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Ignoreer karakter soort defenisies",
DlgPasteRemoveStyles : "Verweider Styl defenisies",
DlgPasteCleanBox : "Maak Box Skoon",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Blaai Informasie deur",
DlgAboutLicenseTab : "Lesensie",
DlgAboutVersion : "weergawe",
DlgAboutInfo : "Vir meer informasie gaan na "
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/ar.js b/editor/editor/lang/ar.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: ar.js
- * Arabic language file.
- *
- * File Authors:
- * Abdul-Aziz Abdul-Kareem Al-Oraij (http://aziz.oraij.com)
- * Abu Faisal (http://www.24at24.com)
+ *
+ * Arabic language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "رابط",
InsertLink : "إدراج/تØرير رابط",
RemoveLink : "إزالة رابط",
Anchor : "إدراج/تØرير إشارة مرجعية",
+AnchorDelete : "إزالة إشارة مرجعية",
InsertImageLbl : "صورة",
InsertImage : "إدراج/تØرير صورة",
InsertFlashLbl : "Ùلاش",
@@ -75,6 +71,7 @@ RightJustify : "Ù…Øاذاة إلى اليمين",
BlockJustify : "ضبط",
DecreaseIndent : "إنقاص المساÙØ© البادئة",
IncreaseIndent : "زيادة المساÙØ© البادئة",
+Blockquote : "اقتباس",
Undo : "تراجع",
Redo : "إعادة",
NumberedListLbl : "تعداد رقمي",
@@ -108,20 +105,27 @@ SelectionField : "قائمة منسدلة",
ImageButton : "زر صورة",
FitWindow : "تكبير Øجم المØرر",
+ShowBlocks : "مخطط تÙصيلي",
// Context Menu
EditLink : "تØرير رابط",
CellCM : "خلية",
RowCM : "صÙ",
ColumnCM : "عمود",
-InsertRow : "إدراج صÙ",
+InsertRowAfter : "إدراج ص٠بعد",
+InsertRowBefore : "إدراج ص٠قبل",
DeleteRows : "Øذ٠صÙÙˆÙ",
-InsertColumn : "إدراج عمود",
+InsertColumnAfter : "إدراج عمود بعد",
+InsertColumnBefore : "إدراج عمود قبل",
DeleteColumns : "Øذ٠أعمدة",
-InsertCell : "إدراج خلية",
+InsertCellAfter : "إدراج خلية بعد",
+InsertCellBefore : "إدراج خلية قبل",
DeleteCells : "Øذ٠خلايا",
MergeCells : "دمج خلايا",
-SplitCell : "تقسيم خلية",
+MergeRight : "دمج لليمين",
+MergeDown : "دمج للأسÙÙ„",
+HorizontalSplitCell : "تقسيم الخلية Ø£Ùقياً",
+VerticalSplitCell : "تقسيم الخلية عمودياً",
TableDelete : "Øذ٠الجدول",
CellProperties : "خصائص الخلية",
TableProperties : "خصائص الجدول",
@@ -139,7 +143,7 @@ SelectionFieldProp : "خصائص القائمة المنسدلة",
TextareaProp : "خصائص ناØية النص",
FormProp : "خصائص النموذج",
-FontFormats : "عادي;منسّق;دوس;العنوان 1;العنوان 2;العنوان 3;العنوان 4;العنوان 5;العنوان 6", //REVIEW : Check _getfontformat.html
+FontFormats : "عادي;منسّق;دوس;العنوان 1;العنوان 2;العنوان 3;العنوان 4;العنوان 5;العنوان 6",
// Alerts and Messages
ProcessingXHTML : "إنتظر قليلاً ريثما تتم معالَجة†XHTML. لن يستغرق طويلاً...",
@@ -234,7 +238,7 @@ DlgLnkURL : "الموقع",
DlgLnkAnchorSel : "اختر علامة مرجعية",
DlgLnkAnchorByName : "Øسب اسم العلامة",
DlgLnkAnchorById : "Øسب تعري٠العنصر",
-DlgLnkNoAnchors : "<لا يوجد علامات مرجعية ÙÙŠ هذا المستند>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(لا يوجد علامات مرجعية ÙÙŠ هذا المستند)",
DlgLnkEMail : "عنوان بريد إلكتروني",
DlgLnkEMailSubject : "موضوع الرسالة",
DlgLnkEMailBody : "Ù…Øتوى الرسالة",
@@ -327,6 +331,9 @@ DlgCellBackColor : "لون الخلÙية",
DlgCellBorderColor : "لون الØدود",
DlgCellBtnSelect : "Øدّد...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "بØØ« واستبدال",
+
// Find Dialog
DlgFindTitle : "بØØ«",
DlgFindFindBtn : "ابØØ«",
@@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "إستبدال الكل",
DlgReplaceWordChk : "الكلمة بالكامل Ùقط",
// Paste Operations / Dialog
-PasteErrorPaste : "الإعدادات الأمنية للمتصÙØ Ø§Ù„Ø°ÙŠ تستخدمه تمنع اللصق التلقائي. Ùضلاً إستخدم لوØØ© المÙØ§ØªÙŠØ Ù„Ùعل ذلك (Ctrl+V).",
PasteErrorCut : "الإعدادات الأمنية للمتصÙØ Ø§Ù„Ø°ÙŠ تستخدمه تمنع القص التلقائي. Ùضلاً إستخدم لوØØ© المÙØ§ØªÙŠØ Ù„Ùعل ذلك (Ctrl+X).",
PasteErrorCopy : "الإعدادات الأمنية للمتصÙØ Ø§Ù„Ø°ÙŠ تستخدمه تمنع النسخ التلقائي. Ùضلاً إستخدم لوØØ© المÙØ§ØªÙŠØ Ù„Ùعل ذلك (Ctrl+C).",
@@ -350,6 +356,7 @@ PasteAsText : "لصق كنص بسيط",
PasteFromWord : "لصق من وورد",
DlgPasteMsg2 : "الصق داخل الصندوق بإستخدام زرّي (<STRONG>Ctrl+V</STRONG>) ÙÙŠ لوØØ© المÙاتيØØŒ ثم اضغط زر <STRONG>مواÙÙ‚</STRONG>.",
+DlgPasteSec : "نظراً لإعدادات الأمان الخاصة بمتصÙØك، لن يتمكن هذا المØرر من الوصول لمØتوى ØاÙظتك، لذا وجب عليك لصق المØتوى مرة أخرى ÙÙŠ هذه الناÙذة.",
DlgPasteIgnoreFont : "تجاهل تعريÙات أسماء الخطوط",
DlgPasteRemoveStyles : "إزالة تعريÙات الأنماط",
DlgPasteCleanBox : "نظّ٠مØتوى الصندوق",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "معلومات متصÙØÙƒ",
DlgAboutLicenseTab : "الترخيص",
DlgAboutVersion : "الإصدار",
DlgAboutInfo : "لمزيد من المعلومات تÙضل بزيارة"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/bg.js b/editor/editor/lang/bg.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: bg.js
- * Bulgarian language file.
- *
- * File Authors:
- * Miroslav Ivanov (miro@primal-chaos.net)
+ *
+ * Bulgarian language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Връзка",
InsertLink : "Добави/Редактирай връзка",
RemoveLink : "Изтрий връзка",
Anchor : "Добави/Редактирай котва",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Изображение",
InsertImage : "Добави/Редактирай изображение",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "ПодравнÑване в дÑÑно",
BlockJustify : "ДвуÑтранно подравнÑване",
DecreaseIndent : "Ðамали отÑтъпа",
IncreaseIndent : "Увеличи отÑтъпа",
+Blockquote : "Blockquote", //MISSING
Undo : "Отмени",
Redo : "Повтори",
NumberedListLbl : "Ðумериран ÑпиÑък",
@@ -107,20 +105,27 @@ SelectionField : "Падащо меню Ñ Ð¾Ð¿Ñ†Ð¸Ð¸",
ImageButton : "Бутон-изображение",
FitWindow : "Maximize the editor size", //MISSING
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Редактирай връзка",
CellCM : "Cell", //MISSING
RowCM : "Row", //MISSING
ColumnCM : "Column", //MISSING
-InsertRow : "Добави ред",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Изтрий редовете",
-InsertColumn : "Добави колона",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Изтрий колоните",
-InsertCell : "Добави клетка",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Изтрий клетките",
MergeCells : "Обедини клетките",
-SplitCell : "Раздели клетката",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Изтрий таблицата",
CellProperties : "Параметри на клетката",
TableProperties : "Параметри на таблицата",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Параметри на падащото меню Ñ Ð¾Ð¿Ñ
TextareaProp : "Параметри на текÑтовата облаÑÑ‚",
FormProp : "Параметри на формулÑра",
-FontFormats : "Ðормален;Форматиран;ÐдреÑ;Заглавие 1;Заглавие 2;Заглавие 3;Заглавие 4;Заглавие 5;Заглавие 6;Параграф (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Ðормален;Форматиран;ÐдреÑ;Заглавие 1;Заглавие 2;Заглавие 3;Заглавие 4;Заглавие 5;Заглавие 6;Параграф (DIV)",
// Alerts and Messages
ProcessingXHTML : "Обработка на XHTML. ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ...",
@@ -233,7 +238,7 @@ DlgLnkURL : "Пълен път (URL)",
DlgLnkAnchorSel : "Изберете котва",
DlgLnkAnchorByName : "По име на котвата",
DlgLnkAnchorById : "По идентификатор на елемент",
-DlgLnkNoAnchors : "<ÐÑма котви в Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(ÐÑма котви в Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚)",
DlgLnkEMail : "ÐÐ´Ñ€ÐµÑ Ð·Ð° е-поща",
DlgLnkEMailSubject : "Тема на пиÑмото",
DlgLnkEMailBody : "ТекÑÑ‚ на пиÑмото",
@@ -326,6 +331,9 @@ DlgCellBackColor : "фонов цвÑÑ‚",
DlgCellBorderColor : "цвÑÑ‚ на рамката",
DlgCellBtnSelect : "Изберете...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "ТърÑи",
DlgFindFindBtn : "ТърÑи",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "ЗамеÑти вÑички",
DlgReplaceWordChk : "ТърÑи Ñъщата дума",
// Paste Operations / Dialog
-PasteErrorPaste : "ÐаÑтройките за ÑигурноÑÑ‚ на Ð²Ð°ÑˆÐ¸Ñ Ð±Ñ€Ð°Ð·ÑƒÑŠÑ€ не разрешават на редактора да изпълни вмъкването. За целта използвайте клавиатурата (Ctrl+V).",
PasteErrorCut : "ÐаÑтройките за ÑигурноÑÑ‚ на Ð²Ð°ÑˆÐ¸Ñ Ð±Ñ€Ð°Ð·ÑƒÑŠÑ€ не разрешават на редактора да изпълни изрÑзването. За целта използвайте клавиатурата (Ctrl+X).",
PasteErrorCopy : "ÐаÑтройките за ÑигурноÑÑ‚ на Ð²Ð°ÑˆÐ¸Ñ Ð±Ñ€Ð°Ð·ÑƒÑŠÑ€ не разрешават на редактора да изпълни запаметÑването. За целта използвайте клавиатурата (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Вмъкни като чиÑÑ‚ текÑÑ‚",
PasteFromWord : "Вмъкни от MS Word",
DlgPasteMsg2 : "Вмъкнете тук Ñъдъжанието Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÐ°Ñ€Ð°Ñ‚Ð° (<STRONG>Ctrl+V</STRONG>) и натиÑнете <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Игнорирай шрифтовите дефиниции",
DlgPasteRemoveStyles : "Изтрий Ñтиловите дефиниции",
DlgPasteCleanBox : "ИзчиÑти",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° браузъра",
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "верÑиÑ",
DlgAboutInfo : "За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ñетете"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/bn.js b/editor/editor/lang/bn.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: bn.js
- * Bengali/Bangla language file.
- *
- * File Authors:
- * Richard Walledge (darkdoctrine@hotmail.com)
- * S M Mahbub Murshed (udvranto@yahoo.com)
+ *
+ * Bengali/Bangla language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "লিংকের যà§à¦•à§à¦¤ করার লেবেà¦
InsertLink : "লিংক যà§à¦•à§à¦¤ কর",
RemoveLink : "লিংক সরাও",
Anchor : "নোঙà§à¦—র",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "ছবির লেবেল যà§à¦•à§à¦¤ কর",
InsertImage : "ছবি যà§à¦•à§à¦¤ কর",
InsertFlashLbl : "ফà§à¦²à¦¾à¦¶ লেবেল যà§à¦•à§à¦¤ কর",
@@ -75,6 +71,7 @@ RightJustify : "ডান দিকে ঘেà¦à¦·à¦¾",
BlockJustify : "বà§à¦²à¦• জাসà§à¦Ÿà¦¿à¦«à¦¾à¦‡",
DecreaseIndent : "ইনডেনà§à¦Ÿ কমাও",
IncreaseIndent : "ইনডেনà§à¦Ÿ বাড়াও",
+Blockquote : "Blockquote", //MISSING
Undo : "আনডà§",
Redo : "রি-ডà§",
NumberedListLbl : "সাংখà§à¦¯à¦¿à¦• লিসà§à¦Ÿà§‡à¦° লেবেল",
@@ -108,20 +105,27 @@ SelectionField : "বাছাই ফীলà§à¦¡",
ImageButton : "ছবির বাটন",
FitWindow : "উইনà§à¦¡à§‹ ফিট কর",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "লিংক সমà§à¦ªà¦¾à¦¦à¦¨",
CellCM : "সেল",
RowCM : "রো",
ColumnCM : "কলাম",
-InsertRow : "রো যà§à¦•à§à¦¤ কর",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "রো মà§à¦›à§‡ দাও",
-InsertColumn : "কলাম যà§à¦•à§à¦¤ কর",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "কলাম মà§à¦›à§‡ দাও",
-InsertCell : "সেল যà§à¦•à§à¦¤ কর",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "সেল মà§à¦›à§‡ দাও",
MergeCells : "সেল জোড়া দাও",
-SplitCell : "সেল আলাদা কর",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "টেবিল ডিলীট কর",
CellProperties : "সেলের পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿à¦œ",
TableProperties : "টেবিল পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
@@ -139,7 +143,7 @@ SelectionFieldProp : "বাছাই ফীলà§à¦¡ পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦
TextareaProp : "টেকà§à¦¸à¦Ÿ à¦à¦°à¦¿à§Ÿà¦¾ পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
FormProp : "ফরà§à¦® পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿",
-FontFormats : "সাধারণ;ফরà§à¦®à§‡à¦Ÿà§‡à¦¡;ঠিকানা;শীরà§à¦·à¦• ১;শীরà§à¦·à¦• ২;শীরà§à¦·à¦• ৩;শীরà§à¦·à¦• ৪;শীরà§à¦·à¦• ৫;শীরà§à¦·à¦• ৬;শীরà§à¦·à¦• (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "সাধারণ;ফরà§à¦®à§‡à¦Ÿà§‡à¦¡;ঠিকানা;শীরà§à¦·à¦• ১;শীরà§à¦·à¦• ২;শীরà§à¦·à¦• ৩;শীরà§à¦·à¦• ৪;শীরà§à¦·à¦• ৫;শীরà§à¦·à¦• ৬;শীরà§à¦·à¦• (DIV)",
// Alerts and Messages
ProcessingXHTML : "XHTML পà§à¦°à¦¸à§‡à¦¸ করা হচà§à¦›à§‡",
@@ -234,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "নোঙর বাছাই",
DlgLnkAnchorByName : "নোঙরের নাম দিয়ে",
DlgLnkAnchorById : "নোঙরের আইডি দিয়ে",
-DlgLnkNoAnchors : "<ডকà§à¦®à§‡à¦¨à§à¦Ÿà§‡ আর কোন নোঙর নেই>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(No anchors available in the document)", //MISSING
DlgLnkEMail : "ইমেইল ঠিকানা",
DlgLnkEMailSubject : "মেসেজের বিষয়",
DlgLnkEMailBody : "মেসেজের দেহ",
@@ -327,6 +331,9 @@ DlgCellBackColor : "বà§à¦¯à¦¾à¦•à¦—à§à¦°à¦¾à¦‰à¦¨à§à¦¡ রং",
DlgCellBorderColor : "বরà§à¦¡à¦¾à¦°à§‡à¦° রং",
DlgCellBtnSelect : "বাছাই কর",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "খোà¦à¦œà§‹",
DlgFindFindBtn : "খোà¦à¦œà§‹",
@@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "সব বদলে দাও",
DlgReplaceWordChk : "পà§à¦°à¦¾ শবà§à¦¦ মেলাও",
// Paste Operations / Dialog
-PasteErrorPaste : "আপনার বà§à¦°à¦¾à¦‰à¦œà¦¾à¦°à§‡à¦° সà§à¦°à¦•à§à¦·à¦¾ সেটিংস à¦à¦¡à¦¿à¦Ÿà¦°à¦•à§‡ অটোমেটিক পেসà§à¦Ÿ করার অনà§à¦®à¦¤à¦¿ দেয়নি। দয়া করে à¦à¦‡ কাজের জনà§à¦¯ কিবোরà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨ (Ctrl+V)।",
PasteErrorCut : "আপনার বà§à¦°à¦¾à¦‰à¦œà¦¾à¦°à§‡à¦° সà§à¦°à¦•à§à¦·à¦¾ সেটিংস à¦à¦¡à¦¿à¦Ÿà¦°à¦•à§‡ অটোমেটিক কাট করার অনà§à¦®à¦¤à¦¿ দেয়নি। দয়া করে à¦à¦‡ কাজের জনà§à¦¯ কিবোরà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨ (Ctrl+X)।",
PasteErrorCopy : "আপনার বà§à¦°à¦¾à¦‰à¦œà¦¾à¦°à§‡à¦° সà§à¦°à¦•à§à¦·à¦¾ সেটিংস à¦à¦¡à¦¿à¦Ÿà¦°à¦•à§‡ অটোমেটিক কপি করার অনà§à¦®à¦¤à¦¿ দেয়নি। দয়া করে à¦à¦‡ কাজের জনà§à¦¯ কিবোরà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨ (Ctrl+C)।",
@@ -350,6 +356,7 @@ PasteAsText : "সাদা টেকà§à¦¸à¦Ÿ হিসেবে পেসà§à
PasteFromWord : "ওয়ারà§à¦¡ থেকে পেসà§à¦Ÿ কর",
DlgPasteMsg2 : "অনà§à¦—à§à¦°à¦¹ করে নীচের বাকà§à¦¸à§‡ কিবোরà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে (<STRONG>Ctrl+V</STRONG>) পেসà§à¦Ÿ করà§à¦¨ à¦à¦¬à¦‚ <STRONG>OK</STRONG> চাপ দিন",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "ফনà§à¦Ÿ ফেস ডেফিনেশন ইগনোর করà§à¦¨",
DlgPasteRemoveStyles : "সà§à¦Ÿà¦¾à¦‡à¦² ডেফিনেশন সরিয়ে দিন",
DlgPasteCleanBox : "বাকà§à¦¸ পরিষà§à¦•à¦¾à¦° করà§à¦¨",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "বà§à¦°à¦¾à¦‰à¦œà¦¾à¦°à§‡à¦° বà§à¦¯à¦¾à¦ªà¦¾à¦°à§
DlgAboutLicenseTab : "লাইসেনà§à¦¸",
DlgAboutVersion : "à¦à¦¾à¦°à§à¦¸à¦¨",
DlgAboutInfo : "আরও তথà§à¦¯à§‡à¦° জনà§à¦¯ যান"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/bs.js b/editor/editor/lang/bs.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: bs.js
- * Bosnian language file.
- *
- * File Authors:
- * Muris Trax (www.elektronika.ba)
+ *
+ * Bosnian language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Link",
InsertLink : "Ubaci/Izmjeni link",
RemoveLink : "Izbriši link",
Anchor : "Insert/Edit Anchor", //MISSING
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Slika",
InsertImage : "Ubaci/Izmjeni sliku",
InsertFlashLbl : "Flash", //MISSING
@@ -74,6 +71,7 @@ RightJustify : "Desno poravnanje",
BlockJustify : "Puno poravnanje",
DecreaseIndent : "Smanji uvod",
IncreaseIndent : "Poveæaj uvod",
+Blockquote : "Blockquote", //MISSING
Undo : "Vrati",
Redo : "Ponovi",
NumberedListLbl : "Numerisana lista",
@@ -107,20 +105,27 @@ SelectionField : "Selection Field", //MISSING
ImageButton : "Image Button", //MISSING
FitWindow : "Maximize the editor size", //MISSING
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Izmjeni link",
CellCM : "Cell", //MISSING
RowCM : "Row", //MISSING
ColumnCM : "Column", //MISSING
-InsertRow : "Ubaci red",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Briši redove",
-InsertColumn : "Ubaci kolonu",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Briši kolone",
-InsertCell : "Ubaci æeliju",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Briši æelije",
MergeCells : "Spoji æelije",
-SplitCell : "Razdvoji æeliju",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Delete Table", //MISSING
CellProperties : "Svojstva æelije",
TableProperties : "Svojstva tabele",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Selection Field Properties", //MISSING
TextareaProp : "Textarea Properties", //MISSING
FormProp : "Form Properties", //MISSING
-FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",
// Alerts and Messages
ProcessingXHTML : "Procesiram XHTML. Molim saèekajte...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Izaberi sidro",
DlgLnkAnchorByName : "Po nazivu sidra",
DlgLnkAnchorById : "Po Id-u elementa",
-DlgLnkNoAnchors : "<Nema dostupnih sidra na stranici>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Nema dostupnih sidra na stranici)",
DlgLnkEMail : "E-Mail Adresa",
DlgLnkEMailSubject : "Subjekt poruke",
DlgLnkEMailBody : "Poruka",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Boja pozadine",
DlgCellBorderColor : "Boja okvira",
DlgCellBtnSelect : "Selektuj...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Naði",
DlgFindFindBtn : "Naði",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Zamjeni sve",
DlgReplaceWordChk : "Uporeðuj samo cijelu rijeè",
// Paste Operations / Dialog
-PasteErrorPaste : "Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog lijepljenja. Molimo koristite kraticu na tastaturi (Ctrl+V).",
PasteErrorCut : "Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl+X).",
PasteErrorCopy : "Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Zalijepi kao obièan tekst",
PasteFromWord : "Zalijepi iz Word-a",
DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.", //MISSING
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Ignore Font Face definitions", //MISSING
DlgPasteRemoveStyles : "Remove Styles definitions", //MISSING
DlgPasteCleanBox : "Clean Up Box", //MISSING
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Browser Info", //MISSING
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "verzija",
DlgAboutInfo : "Za više informacija posjetite"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/ca.js b/editor/editor/lang/ca.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: ca.js
- * Catalan language file.
- *
- * File Authors:
- * Jordi Cerdan (nan@myp.ad)
- * Marc Folch (mcus21@gmail.com)
+ *
+ * Catalan language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "Enllaç",
InsertLink : "Insereix/Edita enllaç",
RemoveLink : "Elimina enllaç",
Anchor : "Insereix/Edita à ncora",
+AnchorDelete : "Elimina à ncora",
InsertImageLbl : "Imatge",
InsertImage : "Insereix/Edita imatge",
InsertFlashLbl : "Flash",
@@ -75,6 +71,7 @@ RightJustify : "Aliniament dreta",
BlockJustify : "Justifica",
DecreaseIndent : "Sagna el text",
IncreaseIndent : "Treu el sagnat del text",
+Blockquote : "Bloc de cita",
Undo : "Desfés",
Redo : "Refés",
NumberedListLbl : "Llista numerada",
@@ -108,20 +105,27 @@ SelectionField : "Camp de selecció",
ImageButton : "Botó d'imatge",
FitWindow : "Maximiza la mida de l'editor",
+ShowBlocks : "Mostra els blocs",
// Context Menu
EditLink : "Edita l'enllaç",
CellCM : "Cel·la",
RowCM : "Fila",
ColumnCM : "Columna",
-InsertRow : "Insereix una fila",
+InsertRowAfter : "Insereix fila darrera",
+InsertRowBefore : "Insereix fila abans de",
DeleteRows : "Suprimeix una fila",
-InsertColumn : "Afegeix una columna",
+InsertColumnAfter : "Insereix columna darrera",
+InsertColumnBefore : "Insereix columna abans de",
DeleteColumns : "Suprimeix una columna",
-InsertCell : "Insereix una cel·la",
+InsertCellAfter : "Insereix cel·la darrera",
+InsertCellBefore : "Insereix cel·la abans de",
DeleteCells : "Suprimeix les cel·les",
MergeCells : "Fusiona les cel·les",
-SplitCell : "Separa les cel·les",
+MergeRight : "Fusiona cap a la dreta",
+MergeDown : "Fusiona cap avall",
+HorizontalSplitCell : "Divideix la cel·la horitzontalment",
+VerticalSplitCell : "Divideix la cel·la verticalment",
TableDelete : "Suprimeix la taula",
CellProperties : "Propietats de la cel·la",
TableProperties : "Propietats de la taula",
@@ -139,7 +143,7 @@ SelectionFieldProp : "Propietats del camp de selecció",
TextareaProp : "Propietats de l'Ã rea de text",
FormProp : "Propietats del formulari",
-FontFormats : "Normal;Formatejat;Adreça;Encapçalament 1;Encapçalament 2;Encapçalament 3;Encapçalament 4;Encapçalament 5;Encapçalament 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatejat;Adreça;Encapçalament 1;Encapçalament 2;Encapçalament 3;Encapçalament 4;Encapçalament 5;Encapçalament 6",
// Alerts and Messages
ProcessingXHTML : "Processant XHTML. Si us plau esperi...",
@@ -227,15 +231,15 @@ DlgLnkTargetTab : "DestÃ",
DlgLnkType : "Tipus d'enllaç",
DlgLnkTypeURL : "URL",
DlgLnkTypeAnchor : "Àncora en aquesta pà gina",
-DlgLnkTypeEMail : "E-Mail",
+DlgLnkTypeEMail : "Correu electrònic",
DlgLnkProto : "Protocol",
DlgLnkProtoOther : "<altra>",
DlgLnkURL : "URL",
DlgLnkAnchorSel : "Selecciona una à ncora",
DlgLnkAnchorByName : "Per nom d'Ã ncora",
DlgLnkAnchorById : "Per Id d'element",
-DlgLnkNoAnchors : "<No hi ha à ncores disponibles en aquest document>", //REVIEW : Change < and > with ( and )
-DlgLnkEMail : "Adreça d'E-Mail",
+DlgLnkNoAnchors : "(No hi ha à ncores disponibles en aquest document)",
+DlgLnkEMail : "Adreça de correu electrònic",
DlgLnkEMailSubject : "Assumpte del missatge",
DlgLnkEMailBody : "Cos del missatge",
DlgLnkUpload : "Puja",
@@ -265,7 +269,7 @@ DlgLnkPopLeft : "Posició esquerra",
DlgLnkPopTop : "Posició dalt",
DlnLnkMsgNoUrl : "Si us plau, escrigui l'enllaç URL",
-DlnLnkMsgNoEMail : "Si us plau, escrigui l'adreça e-mail",
+DlnLnkMsgNoEMail : "Si us plau, escrigui l'adreça correu electrònic",
DlnLnkMsgNoAnchor : "Si us plau, escrigui l'Ã ncora",
DlnLnkMsgInvPopName : "El nom de la finestra emergent ha de començar amb una lletra i no pot tenir espais",
@@ -285,7 +289,7 @@ DlgSpecialCharTitle : "Selecciona el carà cter especial",
DlgTableTitle : "Propietats de la taula",
DlgTableRows : "Files",
DlgTableColumns : "Columnes",
-DlgTableBorder : "Tamany vora",
+DlgTableBorder : "Mida vora",
DlgTableAlign : "Alineació",
DlgTableAlignNotSet : "<No Definit>",
DlgTableAlignLeft : "Esquerra",
@@ -327,6 +331,9 @@ DlgCellBackColor : "Color de fons",
DlgCellBorderColor : "Color de la vora",
DlgCellBtnSelect : "Seleccioneu...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Cerca i reemplaça",
+
// Find Dialog
DlgFindTitle : "Cerca",
DlgFindFindBtn : "Cerca",
@@ -336,20 +343,20 @@ DlgFindNotFoundMsg : "El text especificat no s'ha trobat.",
DlgReplaceTitle : "Reemplaça",
DlgReplaceFindLbl : "Cerca:",
DlgReplaceReplaceLbl : "Remplaça amb:",
-DlgReplaceCaseChk : "Sensible a majúscules",
+DlgReplaceCaseChk : "Distingeix majúscules/minúscules",
DlgReplaceReplaceBtn : "Reemplaça",
-DlgReplaceReplAllBtn : "Reemplaça'ls tots",
-DlgReplaceWordChk : "Cerca paraula completa",
+DlgReplaceReplAllBtn : "Reemplaça-ho tot",
+DlgReplaceWordChk : "Només paraules completes",
// Paste Operations / Dialog
-PasteErrorPaste : "La seguretat del vostre navegador no permet executar automà ticament les operacions d'enganxat. Si us plau, utilitzeu el teclat (Ctrl+V).",
PasteErrorCut : "La seguretat del vostre navegador no permet executar automà ticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl+X).",
PasteErrorCopy : "La seguretat del vostre navegador no permet executar automà ticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl+C).",
-PasteAsText : "Enganxa com a text sense format",
+PasteAsText : "Enganxa com a text no formatat",
PasteFromWord : "Enganxa com a Word",
DlgPasteMsg2 : "Si us plau, enganxeu dins del següent camp utilitzant el teclat (<STRONG>Ctrl+V</STRONG>) i premeu <STRONG>OK</STRONG>.",
+DlgPasteSec : "A causa de la configuració de seguretat del vostre navegador, l'editor no pot accedir al porta-retalls directament. Enganxeu-ho un altre cop en aquesta finestra.",
DlgPasteIgnoreFont : "Ignora definicions de font",
DlgPasteRemoveStyles : "Elimina definicions d'estil",
DlgPasteCleanBox : "Neteja camp",
@@ -403,7 +410,7 @@ DlgFormMethod : "Mètode",
// Select Field Dialog
DlgSelectName : "Nom",
DlgSelectValue : "Valor",
-DlgSelectSize : "Tamany",
+DlgSelectSize : "Mida",
DlgSelectLines : "LÃnies",
DlgSelectChkMulti : "Permet múltiples seleccions",
DlgSelectOpAvail : "Opcions disponibles",
@@ -452,13 +459,13 @@ DlgLstTypeLRoman : "Números romans majúscules (I, II, III)",
DlgDocGeneralTab : "General",
DlgDocBackTab : "Fons",
DlgDocColorsTab : "Colors i marges",
-DlgDocMetaTab : "Dades Meta",
+DlgDocMetaTab : "Metadades",
DlgDocPageTitle : "TÃtol de la pà gina",
-DlgDocLangDir : "Direcció llenguatge",
+DlgDocLangDir : "Direcció idioma",
DlgDocLangDirLTR : "Esquerra a dreta (LTR)",
DlgDocLangDirRTL : "Dreta a esquerra (RTL)",
-DlgDocLangCode : "Codi de llenguatge",
+DlgDocLangCode : "Codi d'idioma",
DlgDocCharSet : "Codificació de conjunt de carà cters",
DlgDocCharSetCE : "Centreeuropeu",
DlgDocCharSetCT : "Xinès tradicional (Big5)",
@@ -472,7 +479,7 @@ DlgDocCharSetWE : "Europeu occidental",
DlgDocCharSetOther : "Una altra codificació de carà cters",
DlgDocDocType : "Capçalera de tipus de document",
-DlgDocDocTypeOther : "Altra Capçalera de tipus de document",
+DlgDocDocTypeOther : "Un altra capçalera de tipus de document",
DlgDocIncXHTML : "Incloure declaracions XHTML",
DlgDocBgColor : "Color de fons",
DlgDocBgImage : "URL de la imatge de fons",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Informació del navegador",
DlgAboutLicenseTab : "Llicència",
DlgAboutVersion : "versió",
DlgAboutInfo : "Per a més informació aneu a"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/cs.js b/editor/editor/lang/cs.js
@@ -1,30 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: cs.js
- * Czech language file.
- *
- * File Authors:
- * David Horák (david.horak@email.cz)
- * Petr PlavjanÃk (plavjanik@gmail.com)
- * Dave MacBlack (davemacblack@users.sourceforge.net)
+ *
+ * Czech language file.
*/
var FCKLang =
@@ -51,6 +45,7 @@ InsertLinkLbl : "Odkaz",
InsertLink : "Vložit/změnit odkaz",
RemoveLink : "Odstranit odkaz",
Anchor : "VložÃt/zmÄ›nit záložku",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Obrázek",
InsertImage : "Vložit/změnit obrázek",
InsertFlashLbl : "Flash",
@@ -76,6 +71,7 @@ RightJustify : "Zarovnat vpravo",
BlockJustify : "Zarovnat do bloku",
DecreaseIndent : "ZmenÅ¡it odsazenÃ",
IncreaseIndent : "ZvÄ›tÅ¡it odsazenÃ",
+Blockquote : "Blockquote", //MISSING
Undo : "Zpět",
Redo : "Znovu",
NumberedListLbl : "ÄŒÃslovánÃ",
@@ -109,20 +105,27 @@ SelectionField : "Seznam",
ImageButton : "Obrázkové tlaÄÃtko",
FitWindow : "Maximalizovat velikost editoru",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Změnit odkaz",
CellCM : "Buňka",
RowCM : "Řádek",
ColumnCM : "Sloupec",
-InsertRow : "Vložit řádek",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Smazat řádek",
-InsertColumn : "Vložit sloupec",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Smazat sloupec",
-InsertCell : "Vložit buňku",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Smazat buňky",
MergeCells : "SlouÄit buňky",
-SplitCell : "Rozdělit buňku",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Smazat tabulku",
CellProperties : "Vlastnosti buňky",
TableProperties : "Vlastnosti tabulky",
@@ -140,7 +143,7 @@ SelectionFieldProp : "Vlastnosti seznamu",
TextareaProp : "Vlastnosti textové oblasti",
FormProp : "Vlastnosti formuláře",
-FontFormats : "NormálnÃ;Formátovaný;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6", //REVIEW : Check _getfontformat.html
+FontFormats : "NormálnÃ;Naformátováno;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6;Normálnà (DIV)",
// Alerts and Messages
ProcessingXHTML : "ProbÃhá zpracovánà XHTML. ProsÃm Äekejte...",
@@ -235,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Vybrat kotvu",
DlgLnkAnchorByName : "Podle jména kotvy",
DlgLnkAnchorById : "Podle Id objektu",
-DlgLnkNoAnchors : "<Ve stránce žádná kotva nenà definována>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Ve stránce žádná kotva nenà definována)",
DlgLnkEMail : "E-Mailová adresa",
DlgLnkEMailSubject : "Předmět zprávy",
DlgLnkEMailBody : "Tělo zprávy",
@@ -268,7 +271,7 @@ DlgLnkPopTop : "Hornà okraj",
DlnLnkMsgNoUrl : "Zadejte prosÃm URL odkazu",
DlnLnkMsgNoEMail : "Zadejte prosÃm e-mailovou adresu",
DlnLnkMsgNoAnchor : "Vyberte prosÃm kotvu",
-DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING
+DlnLnkMsgInvPopName : "Název vyskakovacÃho okna musà zaÄÃnat pÃsmenem a nesmà obsahovat mezery",
// Color Dialog
DlgColorTitle : "Výběr barvy",
@@ -328,6 +331,9 @@ DlgCellBackColor : "Barva pozadÃ",
DlgCellBorderColor : "Barva ohraniÄenÃ",
DlgCellBtnSelect : "Výběr...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Hledat",
DlgFindFindBtn : "Hledat",
@@ -343,7 +349,6 @@ DlgReplaceReplAllBtn : "Nahradit vše",
DlgReplaceWordChk : "Pouze celá slova",
// Paste Operations / Dialog
-PasteErrorPaste : "BezpeÄnostnà nastavenà VaÅ¡eho prohlÞeÄe nedovolujà editoru spustit funkci pro vloženà textu ze schránky. ProsÃm vložte text ze schránky pomocà klávesnice (Ctrl+V).",
PasteErrorCut : "BezpeÄnostnà nastavenà VaÅ¡eho prohlÞeÄe nedovolujà editoru spustit funkci pro vyjmutà zvoleného textu do schránky. ProsÃm vyjmÄ›te zvolený text do schránky pomocà klávesnice (Ctrl+X).",
PasteErrorCopy : "BezpeÄnostnà nastavenà VaÅ¡eho prohlÞeÄe nedovolujà editoru spustit funkci pro kopÃrovánà zvoleného textu do schránky. ProsÃm zkopÃrujte zvolený text do schránky pomocà klávesnice (Ctrl+C).",
@@ -351,6 +356,7 @@ PasteAsText : "Vložit jako Äistý text",
PasteFromWord : "Vložit text z Wordu",
DlgPasteMsg2 : "Do následujÃcÃho pole vložte požadovaný obsah pomocà klávesnice (<STRONG>Ctrl+V</STRONG>) a stisknÄ›te <STRONG>OK</STRONG>.",
+DlgPasteSec : "Z důvodů nastavenà bezpeÄnosti VaÅ¡eho prohlÞeÄe nemůže editor pÅ™istupovat pÅ™Ãmo do schránky. Obsah schránky prosÃm vložte znovu do tohoto okna.",
DlgPasteIgnoreFont : "Ignorovat pÃsmo",
DlgPasteRemoveStyles : "Odstranit styly",
DlgPasteCleanBox : "VyÄistit",
@@ -387,9 +393,9 @@ IeSpellDownload : "Kontrola pravopisu nenà nainstalována. Chcete ji nynà st
// Button Dialog
DlgButtonText : "Popisek",
DlgButtonType : "Typ",
-DlgButtonTypeBtn : "Button", //MISSING
-DlgButtonTypeSbm : "Submit", //MISSING
-DlgButtonTypeRst : "Reset", //MISSING
+DlgButtonTypeBtn : "TlaÄÃtko",
+DlgButtonTypeSbm : "Odeslat",
+DlgButtonTypeRst : "Obnovit",
// Checkbox and Radio Button Dialogs
DlgCheckboxName : "Název",
@@ -461,15 +467,15 @@ DlgDocLangDirLTR : "Zleva do prava ",
DlgDocLangDirRTL : "Zprava doleva",
DlgDocLangCode : "Kód jazyku",
DlgDocCharSet : "Znaková sada",
-DlgDocCharSetCE : "Central European", //MISSING
-DlgDocCharSetCT : "Chinese Traditional (Big5)", //MISSING
-DlgDocCharSetCR : "Cyrillic", //MISSING
-DlgDocCharSetGR : "Greek", //MISSING
-DlgDocCharSetJP : "Japanese", //MISSING
-DlgDocCharSetKR : "Korean", //MISSING
-DlgDocCharSetTR : "Turkish", //MISSING
-DlgDocCharSetUN : "Unicode (UTF-8)", //MISSING
-DlgDocCharSetWE : "Western European", //MISSING
+DlgDocCharSetCE : "Středoevropské jazyky",
+DlgDocCharSetCT : "TradiÄnà ÄÃnÅ¡tina (Big5)",
+DlgDocCharSetCR : "Cyrilice",
+DlgDocCharSetGR : "ŘeÄtina",
+DlgDocCharSetJP : "Japonština",
+DlgDocCharSetKR : "Korejština",
+DlgDocCharSetTR : "TureÄtina",
+DlgDocCharSetUN : "Unicode (UTF-8)",
+DlgDocCharSetWE : "Západoevropské jazyky",
DlgDocCharSetOther : "Dalšà znaková sada",
DlgDocDocType : "Typ dokumentu",
@@ -499,7 +505,7 @@ DlgTemplatesTitle : "Å ablony obsahu",
DlgTemplatesSelMsg : "ProsÃm zvolte Å¡ablonu pro otevÅ™enà v editoru<br>(aktuálnà obsah editoru bude ztracen):",
DlgTemplatesLoading : "Nahrávám pÅ™eheld Å¡ablon. ProsÃm Äekejte...",
DlgTemplatesNoTpl : "(Nenà definována žádná šablona)",
-DlgTemplatesReplace : "Replace actual contents", //MISSING
+DlgTemplatesReplace : "Nahradit aktuálnà obsah",
// About Dialog
DlgAboutAboutTab : "O aplikaci",
@@ -507,4 +513,4 @@ DlgAboutBrowserInfoTab : "Informace o prohlÞeÄi",
DlgAboutLicenseTab : "Licence",
DlgAboutVersion : "verze",
DlgAboutInfo : "VÃce informacà zÃskáte na"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/da.js b/editor/editor/lang/da.js
@@ -1,30 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: da.js
- * Danish language file.
- *
- * File Authors:
- * Jørgen Nordstrøm (jn@FirstWeb.dk)
- * Jesper Michelsen (jm@i-deVision.dk)
- * Bo Brandt (bbr@dynamicweb.dk)
+ *
+ * Danish language file.
*/
var FCKLang =
@@ -51,6 +45,7 @@ InsertLinkLbl : "Hyperlink",
InsertLink : "Indsæt/rediger hyperlink",
RemoveLink : "Fjern hyperlink",
Anchor : "Indsæt/rediger bogmærke",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Indsæt billede",
InsertImage : "Indsæt/rediger billede",
InsertFlashLbl : "Flash",
@@ -76,6 +71,7 @@ RightJustify : "Højrestillet",
BlockJustify : "Lige margener",
DecreaseIndent : "Formindsk indrykning",
IncreaseIndent : "Forøg indrykning",
+Blockquote : "Blockquote", //MISSING
Undo : "Fortryd",
Redo : "Annuller fortryd",
NumberedListLbl : "Talopstilling",
@@ -109,20 +105,27 @@ SelectionField : "Indsæt liste",
ImageButton : "Indsæt billedknap",
FitWindow : "Maksimer editor vinduet",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Rediger hyperlink",
CellCM : "Celle",
RowCM : "Række",
ColumnCM : "Kolonne",
-InsertRow : "Indsæt række",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Slet række",
-InsertColumn : "Indsæt kolonne",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Slet kolonne",
-InsertCell : "Indsæt celle",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Slet celle",
MergeCells : "Flet celler",
-SplitCell : "Opdel celle",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Slet tabel",
CellProperties : "Egenskaber for celle",
TableProperties : "Egenskaber for tabel",
@@ -140,7 +143,7 @@ SelectionFieldProp : "Egenskaber for liste",
TextareaProp : "Egenskaber for tekstboks",
FormProp : "Egenskaber for formular",
-FontFormats : "Normal;Formateret;Adresse;Overskrift 1;Overskrift 2;Overskrift 3;Overskrift 4;Overskrift 5;Overskrift 6;Normal (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formateret;Adresse;Overskrift 1;Overskrift 2;Overskrift 3;Overskrift 4;Overskrift 5;Overskrift 6;Normal (DIV)",
// Alerts and Messages
ProcessingXHTML : "Behandler XHTML...",
@@ -235,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Vælg et anker",
DlgLnkAnchorByName : "Efter anker navn",
DlgLnkAnchorById : "Efter element Id",
-DlgLnkNoAnchors : "<Ingen bogmærker dokumentet>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Ingen bogmærker dokumentet)",
DlgLnkEMail : "E-mailadresse",
DlgLnkEMailSubject : "Emne",
DlgLnkEMailBody : "Brødtekst",
@@ -328,6 +331,9 @@ DlgCellBackColor : "Baggrundsfarve",
DlgCellBorderColor : "Rammefarve",
DlgCellBtnSelect : "Vælg...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Find",
DlgFindFindBtn : "Find",
@@ -343,7 +349,6 @@ DlgReplaceReplAllBtn : "Erstat alle",
DlgReplaceWordChk : "Kun hele ord",
// Paste Operations / Dialog
-PasteErrorPaste : "Din browsers sikkerhedsindstillinger tillader ikke editoren at indsætte tekst automatisk!<br>Brug i stedet tastaturet til at indsætte teksten (Ctrl+V).",
PasteErrorCut : "Din browsers sikkerhedsindstillinger tillader ikke editoren at klippe tekst automatisk!<br>Brug i stedet tastaturet til at klippe teksten (Ctrl+X).",
PasteErrorCopy : "Din browsers sikkerhedsindstillinger tillader ikke editoren at kopiere tekst automatisk!<br>Brug i stedet tastaturet til at kopiere teksten (Ctrl+C).",
@@ -351,6 +356,7 @@ PasteAsText : "Indsæt som ikke-formateret tekst",
PasteFromWord : "Indsæt fra Word",
DlgPasteMsg2 : "Indsæt i feltet herunder (<STRONG>Ctrl+V</STRONG>) og klik <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Ignorer font definitioner",
DlgPasteRemoveStyles : "Ignorer typografi",
DlgPasteCleanBox : "Slet indhold",
@@ -507,4 +513,4 @@ DlgAboutBrowserInfoTab : "Generelt",
DlgAboutLicenseTab : "Licens",
DlgAboutVersion : "version",
DlgAboutInfo : "For yderlig information gå til"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/de.js b/editor/editor/lang/de.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: de.js
- * German language file.
- *
- * File Authors:
- * Maik Unruh (m.unruh@mm-concept.de)
- * Hendrik Kramer (HK@lwd.de)
+ *
+ * German language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "Link",
InsertLink : "Link einfügen/editieren",
RemoveLink : "Link entfernen",
Anchor : "Anker einfügen/editieren",
+AnchorDelete : "Anker entfernen",
InsertImageLbl : "Bild",
InsertImage : "Bild einfügen/editieren",
InsertFlashLbl : "Flash",
@@ -75,6 +71,7 @@ RightJustify : "Rechtsbündig",
BlockJustify : "Blocksatz",
DecreaseIndent : "Einzug verringern",
IncreaseIndent : "Einzug erhöhen",
+Blockquote : "Zitatblock",
Undo : "Rückgängig",
Redo : "Wiederherstellen",
NumberedListLbl : "Nummerierte Liste",
@@ -90,7 +87,7 @@ FontSize : "Größe",
TextColor : "Textfarbe",
BGColor : "Hintergrundfarbe",
Source : "Quellcode",
-Find : "Finden",
+Find : "Suchen",
Replace : "Ersetzen",
SpellCheck : "Rechtschreibprüfung",
UniversalKeyboard : "Universal-Tastatur",
@@ -108,38 +105,45 @@ SelectionField : "Auswahlfeld",
ImageButton : "Bildbutton",
FitWindow : "Editor maximieren",
+ShowBlocks : "Blöcke anzeigen",
// Context Menu
EditLink : "Link editieren",
CellCM : "Zelle",
RowCM : "Zeile",
ColumnCM : "Spalte",
-InsertRow : "Zeile einfügen",
+InsertRowAfter : "Zeile unterhalb einfügen",
+InsertRowBefore : "Zeile oberhalb einfügen",
DeleteRows : "Zeile entfernen",
-InsertColumn : "Spalte einfügen",
+InsertColumnAfter : "Spalte rechts danach einfügen",
+InsertColumnBefore : "Spalte links davor einfügen",
DeleteColumns : "Spalte löschen",
-InsertCell : "Zelle einfügen",
+InsertCellAfter : "Zelle danach einfügen",
+InsertCellBefore : "Zelle davor einfügen",
DeleteCells : "Zelle löschen",
-MergeCells : "Zellen vereinen",
-SplitCell : "Zelle teilen",
+MergeCells : "Zellen verbinden",
+MergeRight : "nach rechts verbinden",
+MergeDown : "nach unten verbinden",
+HorizontalSplitCell : "Zelle horizontal teilen",
+VerticalSplitCell : "Zelle vertikal teilen",
TableDelete : "Tabelle löschen",
-CellProperties : "Zellen Eigenschaften",
-TableProperties : "Tabellen Eigenschaften",
-ImageProperties : "Bild Eigenschaften",
-FlashProperties : "Flash Eigenschaften",
-
-AnchorProp : "Anker Eigenschaften",
-ButtonProp : "Button Eigenschaften",
-CheckboxProp : "Checkbox Eigenschaften",
-HiddenFieldProp : "Verstecktes Feld Eigenschaften",
-RadioButtonProp : "Optionsfeld Eigenschaften",
-ImageButtonProp : "Bildbutton Eigenschaften",
+CellProperties : "Zellen-Eigenschaften",
+TableProperties : "Tabellen-Eigenschaften",
+ImageProperties : "Bild-Eigenschaften",
+FlashProperties : "Flash-Eigenschaften",
+
+AnchorProp : "Anker-Eigenschaften",
+ButtonProp : "Button-Eigenschaften",
+CheckboxProp : "Checkbox-Eigenschaften",
+HiddenFieldProp : "Verstecktes Feld-Eigenschaften",
+RadioButtonProp : "Optionsfeld-Eigenschaften",
+ImageButtonProp : "Bildbutton-Eigenschaften",
TextFieldProp : "Textfeld (einzeilig) Eigenschaften",
-SelectionFieldProp : "Auswahlfeld Eigenschaften",
+SelectionFieldProp : "Auswahlfeld-Eigenschaften",
TextareaProp : "Textfeld (mehrzeilig) Eigenschaften",
-FormProp : "Formular Eigenschaften",
+FormProp : "Formular-Eigenschaften",
-FontFormats : "Normal;Formatiert;Addresse;Ãœberschrift 1;Ãœberschrift 2;Ãœberschrift 3;Ãœberschrift 4;Ãœberschrift 5;Ãœberschrift 6;Normal (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatiert;Addresse;Ãœberschrift 1;Ãœberschrift 2;Ãœberschrift 3;Ãœberschrift 4;Ãœberschrift 5;Ãœberschrift 6;Normal (DIV)",
// Alerts and Messages
ProcessingXHTML : "Bearbeite XHTML. Bitte warten...",
@@ -165,24 +169,24 @@ DlgInfoTab : "Info",
DlgAlertUrl : "Bitte tragen Sie die URL ein",
// General Dialogs Labels
-DlgGenNotSet : "< nichts >",
+DlgGenNotSet : "<nichts>",
DlgGenId : "ID",
DlgGenLangDir : "Schreibrichtung",
DlgGenLangDirLtr : "Links nach Rechts (LTR)",
DlgGenLangDirRtl : "Rechts nach Links (RTL)",
DlgGenLangCode : "Sprachenkürzel",
-DlgGenAccessKey : "Schlüssel",
+DlgGenAccessKey : "Zugriffstaste",
DlgGenName : "Name",
-DlgGenTabIndex : "Tab Index",
+DlgGenTabIndex : "Tab-Index",
DlgGenLongDescr : "Langform URL",
DlgGenClass : "Stylesheet Klasse",
DlgGenTitle : "Titel Beschreibung",
-DlgGenContType : "Content Beschreibung",
+DlgGenContType : "Inhaltstyp",
DlgGenLinkCharset : "Ziel-Zeichensatz",
DlgGenStyle : "Style",
// Image Dialog
-DlgImgTitle : "Bild Eigenschaften",
+DlgImgTitle : "Bild-Eigenschaften",
DlgImgInfoTab : "Bild-Info",
DlgImgBtnUpload : "Zum Server senden",
DlgImgURL : "Bildauswahl",
@@ -210,7 +214,7 @@ DlgImgAlertUrl : "Bitte geben Sie die Bild-URL an",
DlgImgLinkTab : "Link",
// Flash Dialog
-DlgFlashTitle : "Flash Eigenschaften",
+DlgFlashTitle : "Flash-Eigenschaften",
DlgFlashChkPlay : "autom. Abspielen",
DlgFlashChkLoop : "Endlosschleife",
DlgFlashChkMenu : "Flash-Menü aktivieren",
@@ -221,7 +225,7 @@ DlgFlashScaleFit : "Passgenau",
// Link Dialog
DlgLnkWindowTitle : "Link",
-DlgLnkInfoTab : "Link Info",
+DlgLnkInfoTab : "Link-Info",
DlgLnkTargetTab : "Zielseite",
DlgLnkType : "Link-Typ",
@@ -234,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Anker auswählen",
DlgLnkAnchorByName : "nach Anker Name",
DlgLnkAnchorById : "nach Element Id",
-DlgLnkNoAnchors : "<keine Anker im Dokument vorhanden>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(keine Anker im Dokument vorhanden)",
DlgLnkEMail : "E-Mail Addresse",
DlgLnkEMailSubject : "Betreffzeile",
DlgLnkEMailBody : "Nachrichtentext",
@@ -248,9 +252,9 @@ DlgLnkTargetBlank : "Neues Fenster (_blank)",
DlgLnkTargetParent : "Oberes Fenster (_parent)",
DlgLnkTargetSelf : "Gleiches Fenster (_self)",
DlgLnkTargetTop : "Oberstes Fenster (_top)",
-DlgLnkTargetFrameName : "Ziel-Fenster Name",
-DlgLnkPopWinName : "Pop-up Fenster Name",
-DlgLnkPopWinFeat : "Pop-up Fenster Eigenschaften",
+DlgLnkTargetFrameName : "Ziel-Fenster-Name",
+DlgLnkPopWinName : "Pop-up Fenster-Name",
+DlgLnkPopWinFeat : "Pop-up Fenster-Eigenschaften",
DlgLnkPopResize : "Vergrößerbar",
DlgLnkPopLocation : "Adress-Leiste",
DlgLnkPopMenu : "Menü-Leiste",
@@ -282,12 +286,12 @@ DlgSmileyTitle : "Smiley auswählen",
DlgSpecialCharTitle : "Sonderzeichen auswählen",
// Table Dialog
-DlgTableTitle : "Tabellen Eigenschaften",
+DlgTableTitle : "Tabellen-Eigenschaften",
DlgTableRows : "Zeile",
DlgTableColumns : "Spalte",
DlgTableBorder : "Rahmen",
DlgTableAlign : "Ausrichtung",
-DlgTableAlignNotSet : "<nichts>",
+DlgTableAlignNotSet : "<keine>",
DlgTableAlignLeft : "Links",
DlgTableAlignCenter : "Zentriert",
DlgTableAlignRight : "Rechts",
@@ -307,16 +311,16 @@ DlgCellWidthPx : "Pixel",
DlgCellWidthPc : "%",
DlgCellHeight : "Höhe",
DlgCellWordWrap : "Umbruch",
-DlgCellWordWrapNotSet : "<nichts>",
+DlgCellWordWrapNotSet : "<keiner>",
DlgCellWordWrapYes : "Ja",
DlgCellWordWrapNo : "Nein",
DlgCellHorAlign : "Horizontale Ausrichtung",
-DlgCellHorAlignNotSet : "<nichts>",
+DlgCellHorAlignNotSet : "<keine>",
DlgCellHorAlignLeft : "Links",
DlgCellHorAlignCenter : "Zentriert",
DlgCellHorAlignRight: "Rechts",
DlgCellVerAlign : "Vertikale Ausrichtung",
-DlgCellVerAlignNotSet : "<nichts>",
+DlgCellVerAlignNotSet : "<keine>",
DlgCellVerAlignTop : "Oben",
DlgCellVerAlignMiddle : "Mitte",
DlgCellVerAlignBottom : "Unten",
@@ -327,6 +331,9 @@ DlgCellBackColor : "Hintergrundfarbe",
DlgCellBorderColor : "Rahmenfarbe",
DlgCellBtnSelect : "Auswahl...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Suchen und Ersetzen",
+
// Find Dialog
DlgFindTitle : "Finden",
DlgFindFindBtn : "Finden",
@@ -342,14 +349,14 @@ DlgReplaceReplAllBtn : "Alle Ersetzen",
DlgReplaceWordChk : "Nur ganze Worte suchen",
// Paste Operations / Dialog
-PasteErrorPaste : "Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch einzufügen. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren) und STRG-V (einfügen).",
PasteErrorCut : "Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).",
PasteErrorCopy : "Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).",
PasteAsText : "Als Text einfügen",
PasteFromWord : "Aus Word einfügen",
-DlgPasteMsg2 : "Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit <STRONG>Ctrl+V</STRONG>) ein und bestätigen Sie mit <STRONG>OK</STRONG>.",
+DlgPasteMsg2 : "Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit <STRONG>Strg+V</STRONG>) ein und bestätigen Sie mit <STRONG>OK</STRONG>.",
+DlgPasteSec : "Aufgrund von Sicherheitsbeschränkungen Ihres Browsers kann der Editor nicht direkt auf die Zwischenablage zugreifen. Bitte fügen Sie den Inhalt erneut in diesem Fenster ein.",
DlgPasteIgnoreFont : "Ignoriere Schriftart-Definitionen",
DlgPasteRemoveStyles : "Entferne Style-Definitionen",
DlgPasteCleanBox : "Inhalt aufräumen",
@@ -359,10 +366,10 @@ ColorAutomatic : "Automatisch",
ColorMoreColors : "Weitere Farben...",
// Document Properties
-DocProps : "Dokument Eigenschaften",
+DocProps : "Dokument-Eigenschaften",
// Anchor Dialog
-DlgAnchorTitle : "Anker Eigenschaften",
+DlgAnchorTitle : "Anker-Eigenschaften",
DlgAnchorName : "Anker Name",
DlgAnchorErrorName : "Bitte geben Sie den Namen des Ankers ein",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Browser-Info",
DlgAboutLicenseTab : "Lizenz",
DlgAboutVersion : "Version",
DlgAboutInfo : "Für weitere Informationen siehe"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/el.js b/editor/editor/lang/el.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: el.js
- * Greek language file.
- *
- * File Authors:
- * Vangelis Bibakis (bibakisv[-a-t-]yahoo.com)
- * Spyros Barbatos (sbarbatos{at}users.sourceforge.net)
+ *
+ * Greek language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "ΣÏνδεσμος (Link)",
InsertLink : "Εισαγωγή/Μεταβολή ΣυνδÎσμου (Link)",
RemoveLink : "ΑφαίÏεση ΣυνδÎσμου (Link)",
Anchor : "Εισαγωγή/επεξεÏγασία Anchor",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Εικόνα",
InsertImage : "Εισαγωγή/Μεταβολή Εικόνας",
InsertFlashLbl : "Εισαγωγή Flash",
@@ -75,6 +71,7 @@ RightJustify : "Στοίχιση Δεξιά",
BlockJustify : "ΠλήÏης Στοίχιση (Block)",
DecreaseIndent : "Μείωση Εσοχής",
IncreaseIndent : "ΑÏξηση Εσοχής",
+Blockquote : "Blockquote", //MISSING
Undo : "ΑναίÏεση",
Redo : "ΕπαναφοÏά",
NumberedListLbl : "Λίστα με ΑÏιθμοÏÏ‚",
@@ -108,20 +105,27 @@ SelectionField : "Πεδίο επιλογής",
ImageButton : "Κουμπί εικόνας",
FitWindow : "Μεγιστοποίηση Ï€ÏογÏάμματος",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Μεταβολή ΣυνδÎσμου (Link)",
CellCM : "Κελί",
RowCM : "ΣειÏά",
ColumnCM : "Στήλη",
-InsertRow : "Εισαγωγή ΓÏαμμής",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "ΔιαγÏαφή ΓÏαμμών",
-InsertColumn : "Εισαγωγή Κολώνας",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "ΔιαγÏαφή Κολωνών",
-InsertCell : "Εισαγωγή ΚελιοÏ",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "ΔιαγÏαφή Κελιών",
MergeCells : "Ενοποίηση Κελιών",
-SplitCell : "ΔιαχωÏισμός ΚελιοÏ",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "ΔιαγÏαφή πίνακα",
CellProperties : "Ιδιότητες ΚελιοÏ",
TableProperties : "Ιδιότητες Πίνακα",
@@ -139,7 +143,7 @@ SelectionFieldProp : "Ιδιότητες πεδίου επιλογής",
TextareaProp : "Ιδιότητες πεÏιοχής κειμÎνου",
FormProp : "Ιδιότητες φόÏμας",
-FontFormats : "Κανονικό;ΜοÏφοποιημÎνο;ΔιεÏθυνση;Επικεφαλίδα 1;Επικεφαλίδα 2;Επικεφαλίδα 3;Επικεφαλίδα 4;Επικεφαλίδα 5;Επικεφαλίδα 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Κανονικό;ΜοÏφοποιημÎνο;ΔιεÏθυνση;Επικεφαλίδα 1;Επικεφαλίδα 2;Επικεφαλίδα 3;Επικεφαλίδα 4;Επικεφαλίδα 5;Επικεφαλίδα 6",
// Alerts and Messages
ProcessingXHTML : "ΕπεξεÏγασία XHTML. ΠαÏακαλώ πεÏιμÎνετε...",
@@ -234,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "ΕπιλÎξτε μια άγκυÏα",
DlgLnkAnchorByName : "Βάσει του Ονόματος (Name) της άγκυÏας",
DlgLnkAnchorById : "Βάσει του Element Id",
-DlgLnkNoAnchors : "<Δεν υπάÏχουν άγκυÏες στο κείμενο>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Δεν υπάÏχουν άγκυÏες στο κείμενο)",
DlgLnkEMail : "ΔιεÏθυνση ΗλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Î¤Î±Ï‡Ï…Î´Ïομείου",
DlgLnkEMailSubject : "ΘÎμα ΜηνÏματος",
DlgLnkEMailBody : "Κείμενο ΜηνÏματος",
@@ -327,6 +331,9 @@ DlgCellBackColor : "ΧÏώμα ΥποβάθÏου",
DlgCellBorderColor : "ΧÏώμα ΠεÏιθωÏίου",
DlgCellBtnSelect : "Επιλογή...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Αναζήτηση",
DlgFindFindBtn : "Αναζήτηση",
@@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "Αντικατάσταση Όλων",
DlgReplaceWordChk : "ΕÏÏεση πλήÏους λÎξης",
// Paste Operations / Dialog
-PasteErrorPaste : "Οι Ïυθμίσεις ασφαλείας του φυλλομετÏητή σας δεν επιτÏÎπουν την επιλεγμÎνη εÏγασία επικόλλησης. ΧÏησιμοποιείστε το πληκτÏολόγιο (Ctrl+V).",
PasteErrorCut : "Οι Ïυθμίσεις ασφαλείας του φυλλομετÏητή σας δεν επιτÏÎπουν την επιλεγμÎνη εÏγασία αποκοπής. ΧÏησιμοποιείστε το πληκτÏολόγιο (Ctrl+X).",
PasteErrorCopy : "Οι Ïυθμίσεις ασφαλείας του φυλλομετÏητή σας δεν επιτÏÎπουν την επιλεγμÎνη εÏγασία αντιγÏαφής. ΧÏησιμοποιείστε το πληκτÏολόγιο (Ctrl+C).",
@@ -350,6 +356,7 @@ PasteAsText : "Επικόλληση ως Απλό Κείμενο",
PasteFromWord : "Επικόλληση από το Word",
DlgPasteMsg2 : "ΠαÏακαλώ επικολήστε στο ακόλουθο κουτί χÏησιμοποιόντας το πληκτÏολόγιο (<STRONG>Ctrl+V</STRONG>) και πατήστε <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Αγνόηση Ï€ÏοδιαγÏαφών γÏαμματοσειÏάς",
DlgPasteRemoveStyles : "ΑφαίÏεση Ï€ÏοδιαγÏαφών στÏλ",
DlgPasteCleanBox : "Κουτί εκαθάÏισης",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "ΠληÏοφοÏίες Browser",
DlgAboutLicenseTab : "Άδεια",
DlgAboutVersion : "Îκδοση",
DlgAboutInfo : "Για πεÏισσότεÏες πληÏοφοÏίες"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/en-au.js b/editor/editor/lang/en-au.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: en-au.js
- * English (Australia) language file.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- * Christopher Dawes (fckeditor@dawes.id.au)
+ *
+ * English (Australia) language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "Link",
InsertLink : "Insert/Edit Link",
RemoveLink : "Remove Link",
Anchor : "Insert/Edit Anchor",
+AnchorDelete : "Remove Anchor",
InsertImageLbl : "Image",
InsertImage : "Insert/Edit Image",
InsertFlashLbl : "Flash",
@@ -75,6 +71,7 @@ RightJustify : "Right Justify",
BlockJustify : "Block Justify",
DecreaseIndent : "Decrease Indent",
IncreaseIndent : "Increase Indent",
+Blockquote : "Blockquote",
Undo : "Undo",
Redo : "Redo",
NumberedListLbl : "Numbered List",
@@ -108,20 +105,27 @@ SelectionField : "Selection Field",
ImageButton : "Image Button",
FitWindow : "Maximize the editor size",
+ShowBlocks : "Show Blocks",
// Context Menu
EditLink : "Edit Link",
CellCM : "Cell",
RowCM : "Row",
ColumnCM : "Column",
-InsertRow : "Insert Row",
+InsertRowAfter : "Insert Row After",
+InsertRowBefore : "Insert Row Before",
DeleteRows : "Delete Rows",
-InsertColumn : "Insert Column",
+InsertColumnAfter : "Insert Column After",
+InsertColumnBefore : "Insert Column Before",
DeleteColumns : "Delete Columns",
-InsertCell : "Insert Cell",
+InsertCellAfter : "Insert Cell After",
+InsertCellBefore : "Insert Cell Before",
DeleteCells : "Delete Cells",
MergeCells : "Merge Cells",
-SplitCell : "Split Cell",
+MergeRight : "Merge Right",
+MergeDown : "Merge Down",
+HorizontalSplitCell : "Split Cell Horizontally",
+VerticalSplitCell : "Split Cell Vertically",
TableDelete : "Delete Table",
CellProperties : "Cell Properties",
TableProperties : "Table Properties",
@@ -139,7 +143,7 @@ SelectionFieldProp : "Selection Field Properties",
TextareaProp : "Textarea Properties",
FormProp : "Form Properties",
-FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
// Alerts and Messages
ProcessingXHTML : "Processing XHTML. Please wait...",
@@ -234,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Select an Anchor",
DlgLnkAnchorByName : "By Anchor Name",
DlgLnkAnchorById : "By Element Id",
-DlgLnkNoAnchors : "(No anchors available in the document)", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(No anchors available in the document)",
DlgLnkEMail : "E-Mail Address",
DlgLnkEMailSubject : "Message Subject",
DlgLnkEMailBody : "Message Body",
@@ -327,6 +331,9 @@ DlgCellBackColor : "Background Colour",
DlgCellBorderColor : "Border Colour",
DlgCellBtnSelect : "Select...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace",
+
// Find Dialog
DlgFindTitle : "Find",
DlgFindFindBtn : "Find",
@@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "Replace All",
DlgReplaceWordChk : "Match whole word",
// Paste Operations / Dialog
-PasteErrorPaste : "Your browser security settings don't permit the editor to automatically execute pasting operations. Please use the keyboard for that (Ctrl+V).",
PasteErrorCut : "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",
PasteErrorCopy : "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",
@@ -350,6 +356,7 @@ PasteAsText : "Paste as Plain Text",
PasteFromWord : "Paste from Word",
DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",
DlgPasteIgnoreFont : "Ignore Font Face definitions",
DlgPasteRemoveStyles : "Remove Styles definitions",
DlgPasteCleanBox : "Clean Up Box",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Browser Info",
DlgAboutLicenseTab : "License",
DlgAboutVersion : "version",
DlgAboutInfo : "For further information go to"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/en-ca.js b/editor/editor/lang/en-ca.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: en-ca.js
- * English (Canadian) language file.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- * Kevin Bennett
+ *
+ * English (Canadian) language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "Link",
InsertLink : "Insert/Edit Link",
RemoveLink : "Remove Link",
Anchor : "Insert/Edit Anchor",
+AnchorDelete : "Remove Anchor",
InsertImageLbl : "Image",
InsertImage : "Insert/Edit Image",
InsertFlashLbl : "Flash",
@@ -75,6 +71,7 @@ RightJustify : "Right Justify",
BlockJustify : "Block Justify",
DecreaseIndent : "Decrease Indent",
IncreaseIndent : "Increase Indent",
+Blockquote : "Blockquote",
Undo : "Undo",
Redo : "Redo",
NumberedListLbl : "Numbered List",
@@ -108,20 +105,27 @@ SelectionField : "Selection Field",
ImageButton : "Image Button",
FitWindow : "Maximize the editor size",
+ShowBlocks : "Show Blocks",
// Context Menu
EditLink : "Edit Link",
CellCM : "Cell",
RowCM : "Row",
ColumnCM : "Column",
-InsertRow : "Insert Row",
+InsertRowAfter : "Insert Row After",
+InsertRowBefore : "Insert Row Before",
DeleteRows : "Delete Rows",
-InsertColumn : "Insert Column",
+InsertColumnAfter : "Insert Column After",
+InsertColumnBefore : "Insert Column Before",
DeleteColumns : "Delete Columns",
-InsertCell : "Insert Cell",
+InsertCellAfter : "Insert Cell After",
+InsertCellBefore : "Insert Cell Before",
DeleteCells : "Delete Cells",
MergeCells : "Merge Cells",
-SplitCell : "Split Cell",
+MergeRight : "Merge Right",
+MergeDown : "Merge Down",
+HorizontalSplitCell : "Split Cell Horizontally",
+VerticalSplitCell : "Split Cell Vertically",
TableDelete : "Delete Table",
CellProperties : "Cell Properties",
TableProperties : "Table Properties",
@@ -139,7 +143,7 @@ SelectionFieldProp : "Selection Field Properties",
TextareaProp : "Textarea Properties",
FormProp : "Form Properties",
-FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
// Alerts and Messages
ProcessingXHTML : "Processing XHTML. Please wait...",
@@ -234,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Select an Anchor",
DlgLnkAnchorByName : "By Anchor Name",
DlgLnkAnchorById : "By Element Id",
-DlgLnkNoAnchors : "(No anchors available in the document)", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(No anchors available in the document)",
DlgLnkEMail : "E-Mail Address",
DlgLnkEMailSubject : "Message Subject",
DlgLnkEMailBody : "Message Body",
@@ -327,6 +331,9 @@ DlgCellBackColor : "Background Colour",
DlgCellBorderColor : "Border Colour",
DlgCellBtnSelect : "Select...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace",
+
// Find Dialog
DlgFindTitle : "Find",
DlgFindFindBtn : "Find",
@@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "Replace All",
DlgReplaceWordChk : "Match whole word",
// Paste Operations / Dialog
-PasteErrorPaste : "Your browser security settings don't permit the editor to automatically execute pasting operations. Please use the keyboard for that (Ctrl+V).",
PasteErrorCut : "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",
PasteErrorCopy : "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",
@@ -350,6 +356,7 @@ PasteAsText : "Paste as Plain Text",
PasteFromWord : "Paste from Word",
DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",
DlgPasteIgnoreFont : "Ignore Font Face definitions",
DlgPasteRemoveStyles : "Remove Styles definitions",
DlgPasteCleanBox : "Clean Up Box",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Browser Info",
DlgAboutLicenseTab : "License",
DlgAboutVersion : "version",
DlgAboutInfo : "For further information go to"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/en-uk.js b/editor/editor/lang/en-uk.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: en-uk.js
- * English (United Kingdom) language file.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- * Christopher Dawes (fckeditor@dawes.id.au)
+ *
+ * English (United Kingdom) language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "Link",
InsertLink : "Insert/Edit Link",
RemoveLink : "Remove Link",
Anchor : "Insert/Edit Anchor",
+AnchorDelete : "Remove Anchor",
InsertImageLbl : "Image",
InsertImage : "Insert/Edit Image",
InsertFlashLbl : "Flash",
@@ -75,6 +71,7 @@ RightJustify : "Right Justify",
BlockJustify : "Block Justify",
DecreaseIndent : "Decrease Indent",
IncreaseIndent : "Increase Indent",
+Blockquote : "Blockquote",
Undo : "Undo",
Redo : "Redo",
NumberedListLbl : "Numbered List",
@@ -108,20 +105,27 @@ SelectionField : "Selection Field",
ImageButton : "Image Button",
FitWindow : "Maximize the editor size",
+ShowBlocks : "Show Blocks",
// Context Menu
EditLink : "Edit Link",
CellCM : "Cell",
RowCM : "Row",
ColumnCM : "Column",
-InsertRow : "Insert Row",
+InsertRowAfter : "Insert Row After",
+InsertRowBefore : "Insert Row Before",
DeleteRows : "Delete Rows",
-InsertColumn : "Insert Column",
+InsertColumnAfter : "Insert Column After",
+InsertColumnBefore : "Insert Column Before",
DeleteColumns : "Delete Columns",
-InsertCell : "Insert Cell",
+InsertCellAfter : "Insert Cell After",
+InsertCellBefore : "Insert Cell Before",
DeleteCells : "Delete Cells",
MergeCells : "Merge Cells",
-SplitCell : "Split Cell",
+MergeRight : "Merge Right",
+MergeDown : "Merge Down",
+HorizontalSplitCell : "Split Cell Horizontally",
+VerticalSplitCell : "Split Cell Vertically",
TableDelete : "Delete Table",
CellProperties : "Cell Properties",
TableProperties : "Table Properties",
@@ -139,7 +143,7 @@ SelectionFieldProp : "Selection Field Properties",
TextareaProp : "Textarea Properties",
FormProp : "Form Properties",
-FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
// Alerts and Messages
ProcessingXHTML : "Processing XHTML. Please wait...",
@@ -234,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Select an Anchor",
DlgLnkAnchorByName : "By Anchor Name",
DlgLnkAnchorById : "By Element Id",
-DlgLnkNoAnchors : "(No anchors available in the document)", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(No anchors available in the document)",
DlgLnkEMail : "E-Mail Address",
DlgLnkEMailSubject : "Message Subject",
DlgLnkEMailBody : "Message Body",
@@ -327,6 +331,9 @@ DlgCellBackColor : "Background Colour",
DlgCellBorderColor : "Border Colour",
DlgCellBtnSelect : "Select...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace",
+
// Find Dialog
DlgFindTitle : "Find",
DlgFindFindBtn : "Find",
@@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "Replace All",
DlgReplaceWordChk : "Match whole word",
// Paste Operations / Dialog
-PasteErrorPaste : "Your browser security settings don't permit the editor to automatically execute pasting operations. Please use the keyboard for that (Ctrl+V).",
PasteErrorCut : "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",
PasteErrorCopy : "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",
@@ -350,6 +356,7 @@ PasteAsText : "Paste as Plain Text",
PasteFromWord : "Paste from Word",
DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",
DlgPasteIgnoreFont : "Ignore Font Face definitions",
DlgPasteRemoveStyles : "Remove Styles definitions",
DlgPasteCleanBox : "Clean Up Box",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Browser Info",
DlgAboutLicenseTab : "License",
DlgAboutVersion : "version",
DlgAboutInfo : "For further information go to"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/en.js b/editor/editor/lang/en.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: en.js
- * English language file.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * English language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Link",
InsertLink : "Insert/Edit Link",
RemoveLink : "Remove Link",
Anchor : "Insert/Edit Anchor",
+AnchorDelete : "Remove Anchor",
InsertImageLbl : "Image",
InsertImage : "Insert/Edit Image",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "Right Justify",
BlockJustify : "Block Justify",
DecreaseIndent : "Decrease Indent",
IncreaseIndent : "Increase Indent",
+Blockquote : "Blockquote",
Undo : "Undo",
Redo : "Redo",
NumberedListLbl : "Numbered List",
@@ -107,20 +105,27 @@ SelectionField : "Selection Field",
ImageButton : "Image Button",
FitWindow : "Maximize the editor size",
+ShowBlocks : "Show Blocks",
// Context Menu
EditLink : "Edit Link",
CellCM : "Cell",
RowCM : "Row",
ColumnCM : "Column",
-InsertRow : "Insert Row",
+InsertRowAfter : "Insert Row After",
+InsertRowBefore : "Insert Row Before",
DeleteRows : "Delete Rows",
-InsertColumn : "Insert Column",
+InsertColumnAfter : "Insert Column After",
+InsertColumnBefore : "Insert Column Before",
DeleteColumns : "Delete Columns",
-InsertCell : "Insert Cell",
+InsertCellAfter : "Insert Cell After",
+InsertCellBefore : "Insert Cell Before",
DeleteCells : "Delete Cells",
MergeCells : "Merge Cells",
-SplitCell : "Split Cell",
+MergeRight : "Merge Right",
+MergeDown : "Merge Down",
+HorizontalSplitCell : "Split Cell Horizontally",
+VerticalSplitCell : "Split Cell Vertically",
TableDelete : "Delete Table",
CellProperties : "Cell Properties",
TableProperties : "Table Properties",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Selection Field Properties",
TextareaProp : "Textarea Properties",
FormProp : "Form Properties",
-FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
// Alerts and Messages
ProcessingXHTML : "Processing XHTML. Please wait...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Select an Anchor",
DlgLnkAnchorByName : "By Anchor Name",
DlgLnkAnchorById : "By Element Id",
-DlgLnkNoAnchors : "(No anchors available in the document)", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(No anchors available in the document)",
DlgLnkEMail : "E-Mail Address",
DlgLnkEMailSubject : "Message Subject",
DlgLnkEMailBody : "Message Body",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Background Color",
DlgCellBorderColor : "Border Color",
DlgCellBtnSelect : "Select...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace",
+
// Find Dialog
DlgFindTitle : "Find",
DlgFindFindBtn : "Find",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Replace All",
DlgReplaceWordChk : "Match whole word",
// Paste Operations / Dialog
-PasteErrorPaste : "Your browser security settings don't permit the editor to automatically execute pasting operations. Please use the keyboard for that (Ctrl+V).",
PasteErrorCut : "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",
PasteErrorCopy : "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Paste as Plain Text",
PasteFromWord : "Paste from Word",
DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",
DlgPasteIgnoreFont : "Ignore Font Face definitions",
DlgPasteRemoveStyles : "Remove Styles definitions",
DlgPasteCleanBox : "Clean Up Box",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Browser Info",
DlgAboutLicenseTab : "License",
DlgAboutVersion : "version",
DlgAboutInfo : "For further information go to"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/eo.js b/editor/editor/lang/eo.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: eo.js
- * Esperanto language file.
- *
- * File Authors:
- * Tim Morley (timsk@openoffice.org)
+ *
+ * Esperanto language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Ligilo",
InsertLink : "Enmeti/ÅœanÄi Ligilon",
RemoveLink : "Forigi Ligilon",
Anchor : "Enmeti/ÅœanÄi Ankron",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Bildo",
InsertImage : "Enmeti/ÅœanÄi Bildon",
InsertFlashLbl : "Flash", //MISSING
@@ -74,6 +71,7 @@ RightJustify : "Dekstrigi",
BlockJustify : "Äœisrandigi AmbaÅflanke",
DecreaseIndent : "Malpligrandigi KrommarÄenon",
IncreaseIndent : "Pligrandigi KrommarÄenon",
+Blockquote : "Blockquote", //MISSING
Undo : "Malfari",
Redo : "Refari",
NumberedListLbl : "Numera Listo",
@@ -107,20 +105,27 @@ SelectionField : "Elekta Kampo",
ImageButton : "Bildbutono",
FitWindow : "Maximize the editor size", //MISSING
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Modifier Ligilon",
CellCM : "Cell", //MISSING
RowCM : "Row", //MISSING
ColumnCM : "Column", //MISSING
-InsertRow : "Enmeti Linion",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Forigi Liniojn",
-InsertColumn : "Enmeti Kolumnon",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Forigi Kolumnojn",
-InsertCell : "Enmeti Ĉelon",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Forigi Ĉelojn",
MergeCells : "Kunfandi Ĉelojn",
-SplitCell : "Dividi Ĉelojn",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Delete Table", //MISSING
CellProperties : "Atributoj de Ĉelo",
TableProperties : "Atributoj de Tabelo",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Atributoj de Elekta Kampo",
TextareaProp : "Atributoj de Teksta Areo",
FormProp : "Formularaj Atributoj",
-FontFormats : "Normala;Formatita;Adreso;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normala;Formatita;Adreso;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)",
// Alerts and Messages
ProcessingXHTML : "Traktado de XHTML. Bonvolu pacienci...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Elekti Ankron",
DlgLnkAnchorByName : "Per Ankronomo",
DlgLnkAnchorById : "Per Elementidentigilo",
-DlgLnkNoAnchors : "<Ne disponeblas ankroj en la dokumento>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "<Ne disponeblas ankroj en la dokumento>",
DlgLnkEMail : "Retadreso",
DlgLnkEMailSubject : "Temlinio",
DlgLnkEMailBody : "MesaÄa korpo",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Fono",
DlgCellBorderColor : "Bordero",
DlgCellBtnSelect : "Elekti...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Serĉi",
DlgFindFindBtn : "Serĉi",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "AnstataÅigi Ĉiun",
DlgReplaceWordChk : "Tuta Vorto",
// Paste Operations / Dialog
-PasteErrorPaste : "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras intergluajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-V).",
PasteErrorCut : "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-X).",
PasteErrorCopy : "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-C).",
@@ -349,6 +356,7 @@ PasteAsText : "Interglui kiel Tekston",
PasteFromWord : "Interglui el Word",
DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.", //MISSING
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Ignore Font Face definitions", //MISSING
DlgPasteRemoveStyles : "Remove Styles definitions", //MISSING
DlgPasteCleanBox : "Clean Up Box", //MISSING
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Informoj pri TTT-legilo",
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "versio",
DlgAboutInfo : "Por pli da informoj, vizitu"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/es.js b/editor/editor/lang/es.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: es.js
- * Spanish language file.
- *
- * File Authors:
- * Gabriel Schillaci (internetbug@users.sourceforge.net)
+ *
+ * Spanish language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "VÃnculo",
InsertLink : "Insertar/Editar VÃnculo",
RemoveLink : "Eliminar VÃnculo",
Anchor : "Referencia",
+AnchorDelete : "Eliminar Referencia",
InsertImageLbl : "Imagen",
InsertImage : "Insertar/Editar Imagen",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "Alinear a Derecha",
BlockJustify : "Justificado",
DecreaseIndent : "Disminuir SangrÃa",
IncreaseIndent : "Aumentar SangrÃa",
+Blockquote : "Cita",
Undo : "Deshacer",
Redo : "Rehacer",
NumberedListLbl : "Numeración",
@@ -107,20 +105,27 @@ SelectionField : "Campo de Selección",
ImageButton : "Botón Imagen",
FitWindow : "Maximizar el tamaño del editor",
+ShowBlocks : "Mostrar bloques",
// Context Menu
EditLink : "Editar VÃnculo",
CellCM : "Celda",
RowCM : "Fila",
ColumnCM : "Columna",
-InsertRow : "Insertar Fila",
+InsertRowAfter : "Insertar fila en la parte inferior",
+InsertRowBefore : "Insertar fila en la parte superior",
DeleteRows : "Eliminar Filas",
-InsertColumn : "Insertar Columna",
+InsertColumnAfter : "Insertar columna a la derecha",
+InsertColumnBefore : "Insertar columna a la izquierda",
DeleteColumns : "Eliminar Columnas",
-InsertCell : "Insertar Celda",
+InsertCellAfter : "Insertar celda a la derecha",
+InsertCellBefore : "Insertar celda a la izquierda",
DeleteCells : "Eliminar Celdas",
MergeCells : "Combinar Celdas",
-SplitCell : "Dividir Celda",
+MergeRight : "Combinar a la derecha",
+MergeDown : "Combinar hacia abajo",
+HorizontalSplitCell : "Dividir la celda horizontalmente",
+VerticalSplitCell : "Dividir la celda verticalmente",
TableDelete : "Eliminar Tabla",
CellProperties : "Propiedades de Celda",
TableProperties : "Propiedades de Tabla",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Propiedades de Campo de Selección",
TextareaProp : "Propiedades de Area de Texto",
FormProp : "Propiedades de Formulario",
-FontFormats : "Normal;Con formato;Dirección;Encabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Normal (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Con formato;Dirección;Encabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Normal (DIV)",
// Alerts and Messages
ProcessingXHTML : "Procesando XHTML. Por favor, espere...",
@@ -166,10 +171,10 @@ DlgAlertUrl : "Inserte el URL",
// General Dialogs Labels
DlgGenNotSet : "<No definido>",
DlgGenId : "Id",
-DlgGenLangDir : "Orientación de idioma",
+DlgGenLangDir : "Orientación",
DlgGenLangDirLtr : "Izquierda a Derecha (LTR)",
DlgGenLangDirRtl : "Derecha a Izquierda (RTL)",
-DlgGenLangCode : "Código de idioma",
+DlgGenLangCode : "Cód. de idioma",
DlgGenAccessKey : "Clave de Acceso",
DlgGenName : "Nombre",
DlgGenTabIndex : "Indice de tabulación",
@@ -205,7 +210,7 @@ DlgImgAlignRight : "Derecha",
DlgImgAlignTextTop : "Tope del texto",
DlgImgAlignTop : "Tope",
DlgImgPreview : "Vista Previa",
-DlgImgAlertUrl : "Por favor tipee el URL de la imagen",
+DlgImgAlertUrl : "Por favor escriba la URL de la imagen",
DlgImgLinkTab : "VÃnculo",
// Flash Dialog
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Seleccionar una referencia",
DlgLnkAnchorByName : "Por Nombre de Referencia",
DlgLnkAnchorById : "Por ID de elemento",
-DlgLnkNoAnchors : "<No hay referencias disponibles en el documento>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(No hay referencias disponibles en el documento)",
DlgLnkEMail : "Dirección de E-Mail",
DlgLnkEMailSubject : "TÃtulo del Mensaje",
DlgLnkEMailBody : "Cuerpo del Mensaje",
@@ -266,7 +271,7 @@ DlgLnkPopTop : "Posición Derecha",
DlnLnkMsgNoUrl : "Por favor tipee el vÃnculo URL",
DlnLnkMsgNoEMail : "Por favor tipee la dirección de e-mail",
DlnLnkMsgNoAnchor : "Por favor seleccione una referencia",
-DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING
+DlnLnkMsgInvPopName : "El nombre debe empezar con un caracter alfanumérico y no debe contener espacios",
// Color Dialog
DlgColorTitle : "Seleccionar Color",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Color de Fondo",
DlgCellBorderColor : "Color de Borde",
DlgCellBtnSelect : "Seleccione...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Buscar y Reemplazar",
+
// Find Dialog
DlgFindTitle : "Buscar",
DlgFindFindBtn : "Buscar",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Reemplazar Todo",
DlgReplaceWordChk : "Coincidir toda la palabra",
// Paste Operations / Dialog
-PasteErrorPaste : "La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de pegado. Por favor use el teclado (Ctrl+V).",
PasteErrorCut : "La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado. Por favor use el teclado (Ctrl+X).",
PasteErrorCopy : "La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado. Por favor use el teclado (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Pegar como Texto Plano",
PasteFromWord : "Pegar desde Word",
DlgPasteMsg2 : "Por favor pegue dentro del cuadro utilizando el teclado (<STRONG>Ctrl+V</STRONG>); luego presione <STRONG>OK</STRONG>.",
+DlgPasteSec : "Debido a la configuración de seguridad de su navegador, el editor no tiene acceso al portapapeles. Es necesario que lo pegue de nuevo en esta ventana.",
DlgPasteIgnoreFont : "Ignorar definiciones de fuentes",
DlgPasteRemoveStyles : "Remover definiciones de estilo",
DlgPasteCleanBox : "Borrar el contenido del cuadro",
@@ -385,9 +393,9 @@ IeSpellDownload : "Módulo de Control de OrtografÃa no instalado. ¿Desea des
// Button Dialog
DlgButtonText : "Texto (Valor)",
DlgButtonType : "Tipo",
-DlgButtonTypeBtn : "Button", //MISSING
-DlgButtonTypeSbm : "Submit", //MISSING
-DlgButtonTypeRst : "Reset", //MISSING
+DlgButtonTypeBtn : "Boton",
+DlgButtonTypeSbm : "Enviar",
+DlgButtonTypeRst : "Reestablecer",
// Checkbox and Radio Button Dialogs
DlgCheckboxName : "Nombre",
@@ -436,7 +444,7 @@ DlgHiddenValue : "Valor",
// Bulleted List Dialog
BulletedListProp : "Propiedades de Viñetas",
NumberedListProp : "Propiedades de Numeraciones",
-DlgLstStart : "Start", //MISSING
+DlgLstStart : "Inicio",
DlgLstType : "Tipo",
DlgLstTypeCircle : "CÃrculo",
DlgLstTypeDisc : "Disco",
@@ -459,15 +467,15 @@ DlgDocLangDirLTR : "Izq. a Derecha (LTR)",
DlgDocLangDirRTL : "Der. a Izquierda (RTL)",
DlgDocLangCode : "Código de Idioma",
DlgDocCharSet : "Codif. de Conjunto de Caracteres",
-DlgDocCharSetCE : "Central European", //MISSING
-DlgDocCharSetCT : "Chinese Traditional (Big5)", //MISSING
-DlgDocCharSetCR : "Cyrillic", //MISSING
-DlgDocCharSetGR : "Greek", //MISSING
-DlgDocCharSetJP : "Japanese", //MISSING
-DlgDocCharSetKR : "Korean", //MISSING
-DlgDocCharSetTR : "Turkish", //MISSING
-DlgDocCharSetUN : "Unicode (UTF-8)", //MISSING
-DlgDocCharSetWE : "Western European", //MISSING
+DlgDocCharSetCE : "Centro Europeo",
+DlgDocCharSetCT : "Chino Tradicional (Big5)",
+DlgDocCharSetCR : "CirÃlico",
+DlgDocCharSetGR : "Griego",
+DlgDocCharSetJP : "Japonés",
+DlgDocCharSetKR : "Coreano",
+DlgDocCharSetTR : "Turco",
+DlgDocCharSetUN : "Unicode (UTF-8)",
+DlgDocCharSetWE : "Europeo occidental",
DlgDocCharSetOther : "Otra Codificación",
DlgDocDocType : "Encabezado de Tipo de Documento",
@@ -497,7 +505,7 @@ DlgTemplatesTitle : "Contenido de Plantillas",
DlgTemplatesSelMsg : "Por favor selecciona la plantilla a abrir en el editor<br>(el contenido actual se perderá):",
DlgTemplatesLoading : "Cargando lista de Plantillas. Por favor, aguarde...",
DlgTemplatesNoTpl : "(No hay plantillas definidas)",
-DlgTemplatesReplace : "Replace actual contents", //MISSING
+DlgTemplatesReplace : "Reemplazar el contenido actual",
// About Dialog
DlgAboutAboutTab : "Acerca de",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Información de Navegador",
DlgAboutLicenseTab : "Licencia",
DlgAboutVersion : "versión",
DlgAboutInfo : "Para mayor información por favor dirigirse a"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/et.js b/editor/editor/lang/et.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: et.js
- * Estonian language file.
- *
- * File Authors:
- * Kristjan Kivikangur (kristjan@ttrk.ee)
- * Gustav Kaskema
+ *
+ * Estonian language file.
*/
var FCKLang =
@@ -47,15 +42,16 @@ Print : "Prindi",
SelectAll : "Vali kõik",
RemoveFormat : "Eemalda vorming",
InsertLinkLbl : "Link",
-InsertLink : "Sisesta/Muuda link",
+InsertLink : "Sisesta link / Muuda linki",
RemoveLink : "Eemalda link",
-Anchor : "Sisesta/Muuda ankur",
+Anchor : "Sisesta ankur / Muuda ankrut",
+AnchorDelete : "Eemalda ankur",
InsertImageLbl : "Pilt",
-InsertImage : "Sisesta/Muuda pilt",
+InsertImage : "Sisesta pilt / Muuda pilti",
InsertFlashLbl : "Flash",
-InsertFlash : "Sisesta/Muuda flash",
+InsertFlash : "Sisesta flash / Muuda flashi",
InsertTableLbl : "Tabel",
-InsertTable : "Sisesta/Muuda tabel",
+InsertTable : "Sisesta tabel / Muuda tabelit",
InsertLineLbl : "Joon",
InsertLine : "Sisesta horisontaaljoon",
InsertSpecialCharLbl: "Erimärgid",
@@ -63,10 +59,10 @@ InsertSpecialChar : "Sisesta erimärk",
InsertSmileyLbl : "Emotikon",
InsertSmiley : "Sisesta emotikon",
About : "FCKeditor teave",
-Bold : "Rasvane kiri",
-Italic : "Kursiiv kiri",
-Underline : "Allajoonitud kiri",
-StrikeThrough : "Läbijoonitud kiri",
+Bold : "Paks",
+Italic : "Kursiiv",
+Underline : "Allajoonitud",
+StrikeThrough : "Läbijoonitud",
Subscript : "Allindeks",
Superscript : "Ãœlaindeks",
LeftJustify : "Vasakjoondus",
@@ -75,6 +71,7 @@ RightJustify : "Paremjoondus",
BlockJustify : "Rööpjoondus",
DecreaseIndent : "Vähenda taanet",
IncreaseIndent : "Suurenda taanet",
+Blockquote : "Blokktsitaat",
Undo : "Võta tagasi",
Redo : "Korda toimingut",
NumberedListLbl : "Nummerdatud loetelu",
@@ -95,7 +92,7 @@ Replace : "Asenda",
SpellCheck : "Kontrolli õigekirja",
UniversalKeyboard : "Universaalne klaviatuur",
PageBreakLbl : "Lehepiir",
-PageBreak : "Sisesta lehevahetus koht",
+PageBreak : "Sisesta lehevahetuskoht",
Form : "Vorm",
Checkbox : "Märkeruut",
@@ -108,24 +105,31 @@ SelectionField : "Valiklahter",
ImageButton : "Piltnupp",
FitWindow : "Maksimeeri redaktori mõõtmed",
+ShowBlocks : "Näita blokke",
// Context Menu
EditLink : "Muuda linki",
CellCM : "Lahter",
RowCM : "Rida",
ColumnCM : "Veerg",
-InsertRow : "Lisa rida",
-DeleteRows : "Eemalda ridu",
-InsertColumn : "Lisa veerg",
+InsertRowAfter : "Sisesta rida peale",
+InsertRowBefore : "Sisesta rida enne",
+DeleteRows : "Eemalda read",
+InsertColumnAfter : "Sisesta veerg peale",
+InsertColumnBefore : "Sisesta veerg enne",
DeleteColumns : "Eemalda veerud",
-InsertCell : "Lisa lahter",
+InsertCellAfter : "Sisesta lahter peale",
+InsertCellBefore : "Sisesta lahter enne",
DeleteCells : "Eemalda lahtrid",
MergeCells : "Ãœhenda lahtrid",
-SplitCell : "Lahuta lahtrid",
+MergeRight : "Ãœhenda paremale",
+MergeDown : "Ãœhenda alla",
+HorizontalSplitCell : "Poolita lahter horisontaalselt",
+VerticalSplitCell : "Poolita lahter vertikaalselt",
TableDelete : "Kustuta tabel",
CellProperties : "Lahtri atribuudid",
TableProperties : "Tabeli atribuudid",
-ImageProperties : "Pildi atribuudid",
+ImageProperties : "Pildi atribuudid",
FlashProperties : "Flash omadused",
AnchorProp : "Ankru omadused",
@@ -139,18 +143,18 @@ SelectionFieldProp : "Valiklahtri omadused",
TextareaProp : "Tekstiala omadused",
FormProp : "Vormi omadused",
-FontFormats : "Tavaline;Vormindatud;Aadress;Pealkiri 1;Pealkiri 2;Pealkiri 3;Pealkiri 4;Pealkiri 5;Pealkiri 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Tavaline;Vormindatud;Aadress;Pealkiri 1;Pealkiri 2;Pealkiri 3;Pealkiri 4;Pealkiri 5;Pealkiri 6;Tavaline (DIV)",
// Alerts and Messages
-ProcessingXHTML : "Töötlen XHTML. Palun oota...",
+ProcessingXHTML : "Töötlen XHTML'i. Palun oota...",
Done : "Tehtud",
-PasteWordConfirm : "Tekst, mida soovid lisada paistab pärinevat Wordist. Kas soovid seda enne kleepimist puhastada?",
+PasteWordConfirm : "Tekst, mida soovid lisada paistab pärinevat Word'ist. Kas soovid seda enne kleepimist puhastada?",
NotCompatiblePaste : "See käsk on saadaval ainult Internet Explorer versioon 5.5 või uuema puhul. Kas soovid kleepida ilma puhastamata?",
-UnknownToolbarItem : "Tundmatu tööriistariba üksus \"%1\"",
+UnknownToolbarItem : "Tundmatu tööriistarea üksus \"%1\"",
UnknownCommand : "Tundmatu käsunimi \"%1\"",
NotImplemented : "Käsku ei täidetud",
UnknownToolbarSet : "Tööriistariba \"%1\" ei eksisteeri",
-NoActiveX : "Sinu interneti sirvija turvalisuse seaded võivad limiteerida mõningaid tekstirdaktori kasutus võimalusi. Sa peaksid võimaldama valiku \"Run ActiveX controls and plug-ins\" oma sirvija seadetes. Muidu võid sa täheldada vigu tekstiredaktori töös ja märgata puuduvaid funktsioone.",
+NoActiveX : "Sinu veebisirvija turvalisuse seaded võivad limiteerida mõningaid tekstirdaktori kasutusvõimalusi. Sa peaksid võimaldama valiku \"Run ActiveX controls and plug-ins\" oma veebisirvija seadetes. Muidu võid sa täheldada vigu tekstiredaktori töös ja märgata puuduvaid funktsioone.",
BrowseServerBlocked : "Ressursside sirvija avamine ebaõnnestus. Võimalda pop-up akende avanemine.",
DialogBlocked : "Ei olenud võimalik avada dialoogi akent. Võimalda pop-up akende avanemine.",
@@ -234,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Vali ankur",
DlgLnkAnchorByName : "Ankru nime järgi",
DlgLnkAnchorById : "Elemendi id järgi",
-DlgLnkNoAnchors : "<Selles dokumendis ei ole ankruid>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Selles dokumendis ei ole ankruid)",
DlgLnkEMail : "E-posti aadress",
DlgLnkEMailSubject : "Sõnumi teema",
DlgLnkEMailBody : "Sõnumi tekst",
@@ -245,7 +249,7 @@ DlgLnkTarget : "Sihtkoht",
DlgLnkTargetFrame : "<raam>",
DlgLnkTargetPopup : "<hüpikaken>",
DlgLnkTargetBlank : "Uus aken (_blank)",
-DlgLnkTargetParent : "Vanem aken (_parent)",
+DlgLnkTargetParent : "Esivanem aken (_parent)",
DlgLnkTargetSelf : "Sama aken (_self)",
DlgLnkTargetTop : "Pealmine aken (_top)",
DlgLnkTargetFrameName : "Sihtmärk raami nimi",
@@ -267,7 +271,7 @@ DlgLnkPopTop : "Ãœlemine asukoht",
DlnLnkMsgNoUrl : "Palun kirjuta lingi URL",
DlnLnkMsgNoEMail : "Palun kirjuta E-Posti aadress",
DlnLnkMsgNoAnchor : "Palun vali ankur",
-DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING
+DlnLnkMsgInvPopName : "Hüpikakna nimi peab algama alfabeetilise tähega ja ei tohi sisaldada tühikuid",
// Color Dialog
DlgColorTitle : "Vali värv",
@@ -327,6 +331,9 @@ DlgCellBackColor : "Tausta värv",
DlgCellBorderColor : "Joone värv",
DlgCellBtnSelect : "Vali...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Otsi ja asenda",
+
// Find Dialog
DlgFindTitle : "Otsi",
DlgFindFindBtn : "Otsi",
@@ -342,17 +349,17 @@ DlgReplaceReplAllBtn : "Asenda kõik",
DlgReplaceWordChk : "Otsi terviklike sõnu",
// Paste Operations / Dialog
-PasteErrorPaste : "Sinu interneti sirvija turvaseaded ei luba redaktoril automaatselt kleepida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+V).",
-PasteErrorCut : "Sinu interneti sirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+X).",
-PasteErrorCopy : "Sinu interneti sirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+C).",
+PasteErrorCut : "Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+X).",
+PasteErrorCopy : "Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+C).",
PasteAsText : "Kleebi tavalise tekstina",
PasteFromWord : "Kleebi Wordist",
DlgPasteMsg2 : "Palun kleebi järgnevasse kasti kasutades klaviatuuri klahvikombinatsiooni (<STRONG>Ctrl+V</STRONG>) ja vajuta seejärel <STRONG>OK</STRONG>.",
+DlgPasteSec : "Sinu veebisirvija turvaseadete tõttu, ei oma redaktor otsest ligipääsu lõikelaua andmetele. Sa pead kleepima need uuesti siia aknasse.",
DlgPasteIgnoreFont : "Ignoreeri kirja definitsioone",
DlgPasteRemoveStyles : "Eemalda stiilide definitsioonid",
-DlgPasteCleanBox : "Puhasta ära kast",
+DlgPasteCleanBox : "Puhasta kast",
// Color Picker
ColorAutomatic : "Automaatne",
@@ -386,9 +393,9 @@ IeSpellDownload : "Õigekirja kontrollija ei ole installeeritud. Soovid sa sel
// Button Dialog
DlgButtonText : "Tekst (väärtus)",
DlgButtonType : "Tüüp",
-DlgButtonTypeBtn : "Button", //MISSING
-DlgButtonTypeSbm : "Submit", //MISSING
-DlgButtonTypeRst : "Reset", //MISSING
+DlgButtonTypeBtn : "Nupp",
+DlgButtonTypeSbm : "Saada",
+DlgButtonTypeRst : "Lähtesta",
// Checkbox and Radio Button Dialogs
DlgCheckboxName : "Nimi",
@@ -437,7 +444,7 @@ DlgHiddenValue : "Väärtus",
// Bulleted List Dialog
BulletedListProp : "Täpitud loetelu omadused",
NumberedListProp : "Nummerdatud loetelu omadused",
-DlgLstStart : "Start", //MISSING
+DlgLstStart : "Alusta",
DlgLstType : "Tüüp",
DlgLstTypeCircle : "Ring",
DlgLstTypeDisc : "Ketas",
@@ -460,15 +467,15 @@ DlgDocLangDirLTR : "Vasakult paremale (LTR)",
DlgDocLangDirRTL : "Paremalt vasakule (RTL)",
DlgDocLangCode : "Keele kood",
DlgDocCharSet : "Märgistiku kodeering",
-DlgDocCharSetCE : "Central European", //MISSING
-DlgDocCharSetCT : "Chinese Traditional (Big5)", //MISSING
-DlgDocCharSetCR : "Cyrillic", //MISSING
-DlgDocCharSetGR : "Greek", //MISSING
-DlgDocCharSetJP : "Japanese", //MISSING
-DlgDocCharSetKR : "Korean", //MISSING
-DlgDocCharSetTR : "Turkish", //MISSING
-DlgDocCharSetUN : "Unicode (UTF-8)", //MISSING
-DlgDocCharSetWE : "Western European", //MISSING
+DlgDocCharSetCE : "Kesk-Euroopa",
+DlgDocCharSetCT : "Hiina traditsiooniline (Big5)",
+DlgDocCharSetCR : "Kirillisa",
+DlgDocCharSetGR : "Kreeka",
+DlgDocCharSetJP : "Jaapani",
+DlgDocCharSetKR : "Korea",
+DlgDocCharSetTR : "Türgi",
+DlgDocCharSetUN : "Unicode (UTF-8)",
+DlgDocCharSetWE : "Lääne-Euroopa",
DlgDocCharSetOther : "Ülejäänud märgistike kodeeringud",
DlgDocDocType : "Dokumendi tüüppäis",
@@ -498,12 +505,12 @@ DlgTemplatesTitle : "Sisu Å¡abloonid",
DlgTemplatesSelMsg : "Palun vali šabloon, et avada see redaktoris<br />(praegune sisu läheb kaotsi):",
DlgTemplatesLoading : "Laen Å¡abloonide nimekirja. Palun oota...",
DlgTemplatesNoTpl : "(Ãœhtegi Å¡ablooni ei ole defineeritud)",
-DlgTemplatesReplace : "Replace actual contents", //MISSING
+DlgTemplatesReplace : "Asenda tegelik sisu",
// About Dialog
DlgAboutAboutTab : "Teave",
-DlgAboutBrowserInfoTab : "Interneti sirvija info",
+DlgAboutBrowserInfoTab : "Veebisirvija info",
DlgAboutLicenseTab : "Litsents",
DlgAboutVersion : "versioon",
DlgAboutInfo : "Täpsema info saamiseks mine"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/eu.js b/editor/editor/lang/eu.js
@@ -1,29 +1,25 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: eu.js
- * Basque language file.
- * Euskara hizkuntza fitxategia.
- *
- * File Authors:
- * Ibon Igartua (Librezale.org)
+ *
+ * Basque language file.
+ * Euskara hizkuntza fitxategia.
*/
var FCKLang =
@@ -50,6 +46,7 @@ InsertLinkLbl : "Esteka",
InsertLink : "Txertatu/Editatu Esteka",
RemoveLink : "Kendu Esteka",
Anchor : "Aingura",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Irudia",
InsertImage : "Txertatu/Editatu Irudia",
InsertFlashLbl : "Flasha",
@@ -75,6 +72,7 @@ RightJustify : "Lerrokatu Eskuman",
BlockJustify : "Justifikatu",
DecreaseIndent : "Txikitu Koska",
IncreaseIndent : "Handitu Koska",
+Blockquote : "Blockquote", //MISSING
Undo : "Desegin",
Redo : "Berregin",
NumberedListLbl : "Zenbakidun Zerrenda",
@@ -108,20 +106,27 @@ SelectionField : "Hautespen Eremua",
ImageButton : "Irudi Botoia",
FitWindow : "Maximizatu editorearen tamaina",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Aldatu Esteka",
CellCM : "Gelaxka",
RowCM : "Errenkada",
ColumnCM : "Zutabea",
-InsertRow : "Txertatu Errenkada",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Ezabatu Errenkadak",
-InsertColumn : "Txertatu Zutabea",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Ezabatu Zutabeak",
-InsertCell : "Txertatu Gelaxka",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Kendu Gelaxkak",
MergeCells : "Batu Gelaxkak",
-SplitCell : "Zatitu Gelaxka",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Ezabatu Taula",
CellProperties : "Gelaxkaren Ezaugarriak",
TableProperties : "Taularen Ezaugarriak",
@@ -139,7 +144,7 @@ SelectionFieldProp : "Hautespen Eremuaren Ezaugarriak",
TextareaProp : "Testu-arearen Ezaugarriak",
FormProp : "Formularioaren Ezaugarriak",
-FontFormats : "Arrunta;Formateatua;Helbidea;Izenburua 1;Izenburua 2;Izenburua 3;Izenburua 4;Izenburua 5;Izenburua 6;Paragrafoa (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Arrunta;Formateatua;Helbidea;Izenburua 1;Izenburua 2;Izenburua 3;Izenburua 4;Izenburua 5;Izenburua 6;Paragrafoa (DIV)",
// Alerts and Messages
ProcessingXHTML : "XHTML Prozesatzen. Itxaron mesedez...",
@@ -234,7 +239,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Aingura bat hautatu",
DlgLnkAnchorByName : "Aingura izenagatik",
DlgLnkAnchorById : "Elementuaren ID-gatik",
-DlgLnkNoAnchors : "<Ez daude aingurak eskuragarri dokumentuan>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Ez daude aingurak eskuragarri dokumentuan)",
DlgLnkEMail : "ePosta Helbidea",
DlgLnkEMailSubject : "Mezuaren Gaia",
DlgLnkEMailBody : "Mezuaren Gorputza",
@@ -327,6 +332,9 @@ DlgCellBackColor : "Atzeko Kolorea",
DlgCellBorderColor : "Ertzako Kolorea",
DlgCellBtnSelect : "Aukertau...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Bilaketa",
DlgFindFindBtn : "Bilatu",
@@ -342,7 +350,6 @@ DlgReplaceReplAllBtn : "Ordeztu Guztiak",
DlgReplaceWordChk : "Esaldi osoa bilatu",
// Paste Operations / Dialog
-PasteErrorPaste : "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki itsastea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+V).",
PasteErrorCut : "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki moztea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+X).",
PasteErrorCopy : "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki kopiatzea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+C).",
@@ -350,6 +357,7 @@ PasteAsText : "Testu Arrunta bezala Itsatsi",
PasteFromWord : "Word-etik itsatsi",
DlgPasteMsg2 : "Mesedez teklatua erabilita (<STRONG>Ctrl+V</STRONG>) ondorego eremuan testua itsatsi eta <STRONG>OK</STRONG> sakatu.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Letra Motaren definizioa ezikusi",
DlgPasteRemoveStyles : "Estilo definizioak kendu",
DlgPasteCleanBox : "Testu-eremua Garbitu",
@@ -506,4 +514,4 @@ DlgAboutBrowserInfoTab : "Nabigatzailearen Informazioa",
DlgAboutLicenseTab : "Lizentzia",
DlgAboutVersion : "bertsioa",
DlgAboutInfo : "Informazio gehiago eskuratzeko hona joan"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/fa.js b/editor/editor/lang/fa.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fa.js
- * Persian language file.
- *
- * File Authors:
- * Hamed Taj-Abadi (hamed@ranginkaman.com)
- * Pooyan Mahdavi (pooyanmx -@- gmail -.- com)
+ *
+ * Persian language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "پیوند",
InsertLink : "گنجاندن/ویرایش Ùپیوند",
RemoveLink : "برداشتن پیوند",
Anchor : "گنجاندن/ویرایش Ùلنگر",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "تصویر",
InsertImage : "گنجاندن/ویرایش Ùتصویر",
InsertFlashLbl : "Flash",
@@ -75,6 +71,7 @@ RightJustify : "راست‌چین",
BlockJustify : "بلوک‌چین",
DecreaseIndent : "کاهش تورÙتگی",
IncreaseIndent : "اÙزایش تورÙتگی",
+Blockquote : "Blockquote", //MISSING
Undo : "واچیدن",
Redo : "بازچیدن",
NumberedListLbl : "Ùهرست شماره‌دار",
@@ -108,20 +105,27 @@ SelectionField : "Ùیلد چندگزینه‌ای",
ImageButton : "دکمهٴ تصویری",
FitWindow : "بیشینه‌سازی Ùاندازهٴ ویرایشگر",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "ویرایش پیوند",
CellCM : "سلول",
RowCM : "سطر",
ColumnCM : "ستون",
-InsertRow : "گنجاندن سطر",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Øذ٠سطرها",
-InsertColumn : "گنجاندن ستون",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Øذ٠ستونها",
-InsertCell : "گنجاندن سلول",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Øذ٠سلولها",
MergeCells : "ادغام سلولها",
-SplitCell : "جداسازی سلول",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "پاک‌کردن جدول",
CellProperties : "ویژگیهای سلول",
TableProperties : "ویژگیهای جدول",
@@ -139,12 +143,12 @@ SelectionFieldProp : "ویژگیهای Ùیلد چندگزینه‌ای",
TextareaProp : "ویژگیهای ناØیهٴ متنی",
FormProp : "ویژگیهای Ùرم",
-FontFormats : "نرمال;Ùرمت‌شده;آدرس;سرنویس 1;سرنویس 2;سرنویس 3;سرنویس 4;سرنویس 5;سرنویس 6;بند;(DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "نرمال;Ùرمت‌شده;آدرس;سرنویس 1;سرنویس 2;سرنویس 3;سرنویس 4;سرنویس 5;سرنویس 6;بند;(DIV)",
// Alerts and Messages
ProcessingXHTML : "پردازش XHTML. لطÙا صبر کنید...",
Done : "انجام شد",
-PasteWordConfirm : "کپی شده است. آیا می‌خواهید قبل از چسباندن آن را پاک‌سازی کنید؟ Word متنی که می‌خواهید بچسبانید به نظر می‌رسد از",
+PasteWordConfirm : "متنی که می‌خواهید بچسبانید به نظر می‌رسد از Word کپی شده است. آیا می‌خواهید قبل از چسباندن آن را پاک‌سازی کنید؟",
NotCompatiblePaste : "این Ùرمان برای مرورگر Internet Explorer از نگارش 5.5 یا بالاتر در دسترس است. آیا می‌خواهید بدون پاک‌سازی، متن را بچسبانید؟",
UnknownToolbarItem : "Ùقرهٴ نوارابزار ناشناخته \"%1\"",
UnknownCommand : "نام دستور ناشناخته \"%1\"",
@@ -234,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "یک لنگر برگزینید",
DlgLnkAnchorByName : "با نام لنگر",
DlgLnkAnchorById : "با شناسهٴ المان",
-DlgLnkNoAnchors : "<در این سند لنگری دردسترس نیست>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(در این سند لنگری دردسترس نیست)",
DlgLnkEMail : "نشانی پست الکترونیکی",
DlgLnkEMailSubject : "موضوع پیام",
DlgLnkEMailBody : "متن پیام",
@@ -251,7 +255,7 @@ DlgLnkTargetTop : "بالاترین پنجره (_top)",
DlgLnkTargetFrameName : "نام Ùریم مقصد",
DlgLnkPopWinName : "نام پنجرهٴ پاپاپ",
DlgLnkPopWinFeat : "ویژگیهای پنجرهٴ پاپاپ",
-DlgLnkPopResize : "قابل تغیر اندازه",
+DlgLnkPopResize : "قابل تغییر اندازه",
DlgLnkPopLocation : "نوار موقعیت",
DlgLnkPopMenu : "نوار منو",
DlgLnkPopScroll : "میله‌های پیمایش",
@@ -327,6 +331,9 @@ DlgCellBackColor : "رنگ پس‌زمینه",
DlgCellBorderColor : "رنگ لبه",
DlgCellBtnSelect : "برگزینید...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "یاÙتن",
DlgFindFindBtn : "یاÙتن",
@@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "جایگزینی همهٴ یاÙته‌ها",
DlgReplaceWordChk : "همسانی با واژهٴ کامل",
// Paste Operations / Dialog
-PasteErrorPaste : "تنظیمات امنیتی مرورگر شما اجازه نمی‌دهد Ú©Ù‡ ویرایشگر به طور خودکار عملکردهای چسباندن را انجام دهد. لطÙا با دکمه‌های صÙØه‌کلید این کار را انجام دهید (Ctrl+V).",
PasteErrorCut : "تنظیمات امنیتی مرورگر شما اجازه نمی‌دهد Ú©Ù‡ ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطÙا با دکمه‌های صÙØه‌کلید این کار را انجام دهید (Ctrl+X).",
PasteErrorCopy : "تنظیمات امنیتی مرورگر شما اجازه نمی‌دهد Ú©Ù‡ ویرایشگر به طور خودکار عملکردهای کپی‌کردن را انجام دهد. لطÙا با دکمه‌های صÙØه‌کلید این کار را انجام دهید (Ctrl+C).",
@@ -350,6 +356,7 @@ PasteAsText : "چسباندن به عنوان متن Ùساده",
PasteFromWord : "چسباندن از Word",
DlgPasteMsg2 : "لطÙا متن را با کلیدهای (<STRONG>Ctrl+V</STRONG>) در این جعبهٴ متنی بچسبانید Ùˆ <STRONG>پذیرش</STRONG> را بزنید.",
+DlgPasteSec : "به خاطر تنظیمات امنیتی مرورگر شما، ویرایشگر نمی‌تواند دسترسی مستقیم به داده‌های clipboard داشته باشد. شما باید دوباره آنرا در این پنجره بچسبانید.",
DlgPasteIgnoreFont : "چشم‌پوشی از تعاری٠نوع قلم",
DlgPasteRemoveStyles : "چشم‌پوشی از تعاری٠سبک (style)",
DlgPasteCleanBox : "پاک‌کردن ناØیه",
@@ -367,8 +374,8 @@ DlgAnchorName : "نام لنگر",
DlgAnchorErrorName : "لطÙا نام لنگر را بنویسید",
// Speller Pages Dialog
-DlgSpellNotInDic : "در واژه‌نامه موجود نیست",
-DlgSpellChangeTo : "تغیر به",
+DlgSpellNotInDic : "در واژه‌نامه یاÙت نشد",
+DlgSpellChangeTo : "تغییر به",
DlgSpellBtnIgnore : "چشم‌پوشی",
DlgSpellBtnIgnoreAll : "چشم‌پوشی همه",
DlgSpellBtnReplace : "جایگزینی",
@@ -377,9 +384,9 @@ DlgSpellBtnUndo : "واچینش",
DlgSpellNoSuggestions : "- پیشنهادی نیست -",
DlgSpellProgress : "بررسی املا در Øال انجام...",
DlgSpellNoMispell : "بررسی املا انجام شد. هیچ غلط‌املائی یاÙت نشد",
-DlgSpellNoChanges : "بررسی املا انجام شد. هیچ واژه‌ای تغیر نیاÙت",
-DlgSpellOneChange : "بررسی املا انجام شد. یک واژه تغیر یاÙت",
-DlgSpellManyChanges : "بررسی املا انجام شد. %1 واژه تغیر یاÙت",
+DlgSpellNoChanges : "بررسی املا انجام شد. هیچ واژه‌ای تغییر نیاÙت",
+DlgSpellOneChange : "بررسی املا انجام شد. یک واژه تغییر یاÙت",
+DlgSpellManyChanges : "بررسی املا انجام شد. %1 واژه تغییر یاÙت",
IeSpellDownload : "بررسی‌کنندهٴ املا نصب نشده است. آیا می‌خواهید آن را هم‌اکنون دریاÙت کنید؟",
@@ -397,7 +404,7 @@ DlgCheckboxSelected : "برگزیده",
// Form Dialog
DlgFormName : "نام",
-DlgFormAction : "اقدام",
+DlgFormAction : "رویداد",
DlgFormMethod : "متد",
// Select Field Dialog
@@ -406,15 +413,15 @@ DlgSelectValue : "مقدار",
DlgSelectSize : "اندازه",
DlgSelectLines : "خطوط",
DlgSelectChkMulti : "گزینش چندگانه Ùراهم باشد",
-DlgSelectOpAvail : "گزینه‌های موجود",
+DlgSelectOpAvail : "گزینه‌های دردسترس",
DlgSelectOpText : "متن",
DlgSelectOpValue : "مقدار",
-DlgSelectBtnAdd : "اضاÙÙ‡",
+DlgSelectBtnAdd : "اÙزودن",
DlgSelectBtnModify : "ویرایش",
DlgSelectBtnUp : "بالا",
DlgSelectBtnDown : "پائین",
DlgSelectBtnSetValue : "تنظیم به عنوان مقدار Ùبرگزیده",
-DlgSelectBtnDelete : "ØØ°Ù",
+DlgSelectBtnDelete : "پاک‌کردن",
// Textarea Dialog
DlgTextareaName : "نام",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "اطلاعات مرورگر",
DlgAboutLicenseTab : "گواهینامه",
DlgAboutVersion : "نگارش",
DlgAboutInfo : "برای آگاهی بیشتر به این نشانی بروید"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/fi.js b/editor/editor/lang/fi.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fi.js
- * Finnish language file.
- *
- * File Authors:
- * Marko Korhonen (marko.korhonen@datafisher.com)
+ *
+ * Finnish language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Linkki",
InsertLink : "Lisää linkki/muokkaa linkkiä",
RemoveLink : "Poista linkki",
Anchor : "Lisää ankkuri/muokkaa ankkuria",
+AnchorDelete : "Poista ankkuri",
InsertImageLbl : "Kuva",
InsertImage : "Lisää kuva/muokkaa kuvaa",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "Tasaa oikeat reunat",
BlockJustify : "Tasaa molemmat reunat",
DecreaseIndent : "Pienennä sisennystä",
IncreaseIndent : "Suurenna sisennystä",
+Blockquote : "Lainaus",
Undo : "Kumoa",
Redo : "Toista",
NumberedListLbl : "Numerointi",
@@ -107,20 +105,27 @@ SelectionField : "Valintakenttä",
ImageButton : "Kuvapainike",
FitWindow : "Suurenna editori koko ikkunaan",
+ShowBlocks : "Näytä elementit",
// Context Menu
EditLink : "Muokkaa linkkiä",
CellCM : "Solu",
RowCM : "Rivi",
ColumnCM : "Sarake",
-InsertRow : "Lisää rivi",
+InsertRowAfter : "Lisää rivi alapuolelle",
+InsertRowBefore : "Lisää rivi yläpuolelle",
DeleteRows : "Poista rivit",
-InsertColumn : "Lisää sarake",
+InsertColumnAfter : "Lisää sarake oikealle",
+InsertColumnBefore : "Lisää sarake vasemmalle",
DeleteColumns : "Poista sarakkeet",
-InsertCell : "Lisää solu",
+InsertCellAfter : "Lisää solu perään",
+InsertCellBefore : "Lisää solu eteen",
DeleteCells : "Poista solut",
MergeCells : "Yhdistä solut",
-SplitCell : "Jaa solu",
+MergeRight : "Yhdistä oikealla olevan kanssa",
+MergeDown : "Yhdistä alla olevan kanssa",
+HorizontalSplitCell : "Jaa solu vaakasuunnassa",
+VerticalSplitCell : "Jaa solu pystysuunnassa",
TableDelete : "Poista taulu",
CellProperties : "Solun ominaisuudet",
TableProperties : "Taulun ominaisuudet",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Valintakentän ominaisuudet",
TextareaProp : "Tekstilaatikon ominaisuudet",
FormProp : "Lomakkeen ominaisuudet",
-FontFormats : "Normaali;Muotoiltu;Osoite;Otsikko 1;Otsikko 2;Otsikko 3;Otsikko 4;Otsikko 5;Otsikko 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Normaali;Muotoiltu;Osoite;Otsikko 1;Otsikko 2;Otsikko 3;Otsikko 4;Otsikko 5;Otsikko 6",
// Alerts and Messages
ProcessingXHTML : "Prosessoidaan XHTML:ää. Odota hetki...",
@@ -233,7 +238,7 @@ DlgLnkURL : "Osoite",
DlgLnkAnchorSel : "Valitse ankkuri",
DlgLnkAnchorByName : "Ankkurin nimen mukaan",
DlgLnkAnchorById : "Ankkurin ID:n mukaan",
-DlgLnkNoAnchors : "<Ei ankkureita tässä dokumentissa>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Ei ankkureita tässä dokumentissa)",
DlgLnkEMail : "Sähköpostiosoite",
DlgLnkEMailSubject : "Aihe",
DlgLnkEMailBody : "Viesti",
@@ -266,7 +271,7 @@ DlgLnkPopTop : "Ylhäältä (px)",
DlnLnkMsgNoUrl : "Linkille on kirjoitettava URL",
DlnLnkMsgNoEMail : "Kirjoita sähköpostiosoite",
DlnLnkMsgNoAnchor : "Valitse ankkuri",
-DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING
+DlnLnkMsgInvPopName : "Popup-ikkunan nimi pitää alkaa aakkosella ja ei saa sisältää välejä",
// Color Dialog
DlgColorTitle : "Valitse väri",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Taustaväri",
DlgCellBorderColor : "Rajan väri",
DlgCellBtnSelect : "Valitse...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Etsi ja korvaa",
+
// Find Dialog
DlgFindTitle : "Etsi",
DlgFindFindBtn : "Etsi",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Korvaa kaikki",
DlgReplaceWordChk : "Koko sana",
// Paste Operations / Dialog
-PasteErrorPaste : "Selaimesi turva-asetukset eivät salli editorin toteuttaa liittämistä. Käytä näppäimistöä liittämiseen (Ctrl+V).",
PasteErrorCut : "Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).",
PasteErrorCopy : "Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Liitä tekstinä",
PasteFromWord : "Liitä Wordista",
DlgPasteMsg2 : "Liitä painamalla (<STRONG>Ctrl+V</STRONG>) ja painamalla <STRONG>OK</STRONG>.",
+DlgPasteSec : "Selaimesi turva-asetukset eivät salli editorin käyttää leikepöytää suoraan. Sinun pitää suorittaa liittäminen tässä ikkunassa.",
DlgPasteIgnoreFont : "Jätä huomioimatta fonttimääritykset",
DlgPasteRemoveStyles : "Poista tyylimääritykset",
DlgPasteCleanBox : "Tyhjennä",
@@ -385,9 +393,9 @@ IeSpellDownload : "Oikeinkirjoituksen tarkistusta ei ole asennettu. Haluatko l
// Button Dialog
DlgButtonText : "Teksti (arvo)",
DlgButtonType : "Tyyppi",
-DlgButtonTypeBtn : "Button", //MISSING
-DlgButtonTypeSbm : "Submit", //MISSING
-DlgButtonTypeRst : "Reset", //MISSING
+DlgButtonTypeBtn : "Painike",
+DlgButtonTypeSbm : "Lähetä",
+DlgButtonTypeRst : "Tyhjennä",
// Checkbox and Radio Button Dialogs
DlgCheckboxName : "Nimi",
@@ -436,7 +444,7 @@ DlgHiddenValue : "Arvo",
// Bulleted List Dialog
BulletedListProp : "Luettelon ominaisuudet",
NumberedListProp : "Numeroinnin ominaisuudet",
-DlgLstStart : "Start", //MISSING
+DlgLstStart : "Alku",
DlgLstType : "Tyyppi",
DlgLstTypeCircle : "Kehä",
DlgLstTypeDisc : "Ympyrä",
@@ -458,17 +466,17 @@ DlgDocLangDir : "Kielen suunta",
DlgDocLangDirLTR : "Vasemmalta oikealle (LTR)",
DlgDocLangDirRTL : "Oikealta vasemmalle (RTL)",
DlgDocLangCode : "Kielikoodi",
-DlgDocCharSet : "Merkistäkoodaus",
-DlgDocCharSetCE : "Central European", //MISSING
-DlgDocCharSetCT : "Chinese Traditional (Big5)", //MISSING
-DlgDocCharSetCR : "Cyrillic", //MISSING
-DlgDocCharSetGR : "Greek", //MISSING
-DlgDocCharSetJP : "Japanese", //MISSING
-DlgDocCharSetKR : "Korean", //MISSING
-DlgDocCharSetTR : "Turkish", //MISSING
-DlgDocCharSetUN : "Unicode (UTF-8)", //MISSING
-DlgDocCharSetWE : "Western European", //MISSING
-DlgDocCharSetOther : "Muu merkistäkoodaus",
+DlgDocCharSet : "Merkistökoodaus",
+DlgDocCharSetCE : "Keskieurooppalainen",
+DlgDocCharSetCT : "Kiina, perinteinen (Big5)",
+DlgDocCharSetCR : "Kyrillinen",
+DlgDocCharSetGR : "Kreikka",
+DlgDocCharSetJP : "Japani",
+DlgDocCharSetKR : "Korealainen",
+DlgDocCharSetTR : "Turkkilainen",
+DlgDocCharSetUN : "Unicode (UTF-8)",
+DlgDocCharSetWE : "Länsieurooppalainen",
+DlgDocCharSetOther : "Muu merkistökoodaus",
DlgDocDocType : "Dokumentin tyyppi",
DlgDocDocTypeOther : "Muu dokumentin tyyppi",
@@ -497,7 +505,7 @@ DlgTemplatesTitle : "Sisältöpohjat",
DlgTemplatesSelMsg : "Valitse pohja editoriin<br>(aiempi sisältö menetetään):",
DlgTemplatesLoading : "Ladataan listaa pohjista. Hetkinen...",
DlgTemplatesNoTpl : "(Ei määriteltyjä pohjia)",
-DlgTemplatesReplace : "Replace actual contents", //MISSING
+DlgTemplatesReplace : "Korvaa editorin koko sisältö",
// About Dialog
DlgAboutAboutTab : "Editorista",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Selaimen tiedot",
DlgAboutLicenseTab : "Lisenssi",
DlgAboutVersion : "versio",
DlgAboutInfo : "Lisää tietoa osoitteesta"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/fo.js b/editor/editor/lang/fo.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fo.js
- * Faroese language file.
- *
- * File Authors:
- * Jón Jallur Gaasedal (jon@faroenet.fo)
+ *
+ * Faroese language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Tilknýti",
InsertLink : "Ger/broyt tilknýti",
RemoveLink : "Strika tilknýti",
Anchor : "Ger/broyt marknastein",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Myndir",
InsertImage : "Set inn/broyt mynd",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "Høgrasett",
BlockJustify : "Javnir tekstkantar",
DecreaseIndent : "Minka reglubrotarinntriv",
IncreaseIndent : "Økja reglubrotarinntriv",
+Blockquote : "Blockquote", //MISSING
Undo : "Angra",
Redo : "Vend aftur",
NumberedListLbl : "Talmerktur listi",
@@ -107,20 +105,27 @@ SelectionField : "Valskrá",
ImageButton : "Myndaknøttur",
FitWindow : "Set tekstviðgera til fulla stødd",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Broyt tilknýti",
CellCM : "Meski",
RowCM : "Rað",
ColumnCM : "Kolonna",
-InsertRow : "Nýtt rað",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Strika røðir",
-InsertColumn : "Nýggj kolonna",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Strika kolonnur",
-InsertCell : "Nýggjur meski",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Strika meskar",
MergeCells : "Flætta meskar",
-SplitCell : "Být sundur meskar",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Strika tabell",
CellProperties : "Meskueginleikar",
TableProperties : "Tabelleginleikar",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Eginleikar fyri valskrá",
TextareaProp : "Eginleikar fyri tekstumráði",
FormProp : "Eginleikar fyri Form",
-FontFormats : "Vanligt;Sniðgivið;Adressa;Yvirskrift 1;Yvirskrift 2;Yvirskrift 3;Yvirskrift 4;Yvirskrift 5;Yvirskrift 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Vanligt;Sniðgivið;Adressa;Yvirskrift 1;Yvirskrift 2;Yvirskrift 3;Yvirskrift 4;Yvirskrift 5;Yvirskrift 6",
// Alerts and Messages
ProcessingXHTML : "XHTML verður viðgjørt. BÃða við...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Vel ein marknastein",
DlgLnkAnchorByName : "Eftir navni á marknasteini",
DlgLnkAnchorById : "Eftir element Id",
-DlgLnkNoAnchors : "(Eingir marknasteinar eru à hesum dokumentið)", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Eingir marknasteinar eru à hesum dokumentið)",
DlgLnkEMail : "Teldupost-adressa",
DlgLnkEMailSubject : "Evni",
DlgLnkEMailBody : "Breyðtekstur",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Bakgrundslitur",
DlgCellBorderColor : "Litur á borda",
DlgCellBtnSelect : "Vel...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Finn",
DlgFindFindBtn : "Finn",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Yvirskriva alt",
DlgReplaceWordChk : "Bert heil orð",
// Paste Operations / Dialog
-PasteErrorPaste : "Trygdaruppseting alnótskagans forðar tekstviðgeranum à at seta tekstin inn. Vinarliga nýt knappaborðið til at seta tekstin inn (CTRL+V).",
PasteErrorCut : "Trygdaruppseting alnótskagans forðar tekstviðgeranum à at kvetta tekstin. vinarliga nýt knappaborðið til at kvetta tekstin (CTRL+X).",
PasteErrorCopy : "Trygdaruppseting alnótskagans forðar tekstviðgeranum à at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (CTRL+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Innrita som reinan tekst",
PasteFromWord : "Innrita fra Word",
DlgPasteMsg2 : "Vinarliga koyr tekstin à hendan rútin við knappaborðinum (<strong>CTRL+V</strong>) og klikk á <strong>Góðtak</strong>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Forfjóna Font definitiónirnar",
DlgPasteRemoveStyles : "Strika Styles definitiónir",
DlgPasteCleanBox : "Reinskanarkassi",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Upplýsingar um alnótskagan",
DlgAboutLicenseTab : "License",
DlgAboutVersion : "version",
DlgAboutInfo : "Fyri fleiri upplýsingar, far til"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/fr.js b/editor/editor/lang/fr.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fr.js
- * French language file.
- *
- * File Authors:
- * Hubert Garrido (liane@users.sourceforge.net)
+ *
+ * French language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Lien",
InsertLink : "Insérer/modifier le lien",
RemoveLink : "Supprimer le lien",
Anchor : "Insérer/modifier l'ancre",
+AnchorDelete : "Supprimer l'ancre",
InsertImageLbl : "Image",
InsertImage : "Insérer/modifier l'image",
InsertFlashLbl : "Animation Flash",
@@ -74,6 +71,7 @@ RightJustify : "Aligné à Droite",
BlockJustify : "Texte justifié",
DecreaseIndent : "Diminuer le retrait",
IncreaseIndent : "Augmenter le retrait",
+Blockquote : "Citation",
Undo : "Annuler",
Redo : "Refaire",
NumberedListLbl : "Liste numérotée",
@@ -107,20 +105,27 @@ SelectionField : "Liste/menu",
ImageButton : "Bouton image",
FitWindow : "Edition pleine page",
+ShowBlocks : "Afficher les blocs",
// Context Menu
EditLink : "Modifier le lien",
CellCM : "Cellule",
RowCM : "Ligne",
ColumnCM : "Colonne",
-InsertRow : "Insérer une ligne",
+InsertRowAfter : "Insérer une ligne après",
+InsertRowBefore : "Insérer une ligne avant",
DeleteRows : "Supprimer des lignes",
-InsertColumn : "Insérer une colonne",
+InsertColumnAfter : "Insérer une colonne après",
+InsertColumnBefore : "Insérer une colonne avant",
DeleteColumns : "Supprimer des colonnes",
-InsertCell : "Insérer une cellule",
+InsertCellAfter : "Insérer une cellule après",
+InsertCellBefore : "Insérer une cellule avant",
DeleteCells : "Supprimer des cellules",
MergeCells : "Fusionner les cellules",
-SplitCell : "Scinder les cellules",
+MergeRight : "Fusionner à droite",
+MergeDown : "Fusionner en bas",
+HorizontalSplitCell : "Scinder la cellule horizontalement",
+VerticalSplitCell : "Scinder la cellule verticalement",
TableDelete : "Supprimer le tableau",
CellProperties : "Propriétés de cellule",
TableProperties : "Propriétés du tableau",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Propriétés de la liste/du menu",
TextareaProp : "Propriétés de la zone de texte",
FormProp : "Propriétés du formulaire",
-FontFormats : "Normal;Formaté;Adresse;En-tête 1;En-tête 2;En-tête 3;En-tête 4;En-tête 5;En-tête 6;Normal (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formaté;Adresse;En-tête 1;En-tête 2;En-tête 3;En-tête 4;En-tête 5;En-tête 6;Normal (DIV)",
// Alerts and Messages
ProcessingXHTML : "Calcul XHTML. Veuillez patienter...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Sélectionner une ancre",
DlgLnkAnchorByName : "Par nom",
DlgLnkAnchorById : "Par id",
-DlgLnkNoAnchors : "<Pas d'ancre disponible dans le document>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Pas d'ancre disponible dans le document)",
DlgLnkEMail : "Adresse E-Mail",
DlgLnkEMailSubject : "Sujet du message",
DlgLnkEMailBody : "Corps du message",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Fond",
DlgCellBorderColor : "Bordure",
DlgCellBtnSelect : "Choisir...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Chercher et Remplacer",
+
// Find Dialog
DlgFindTitle : "Chercher",
DlgFindFindBtn : "Chercher",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Tout remplacer",
DlgReplaceWordChk : "Mot entier",
// Paste Operations / Dialog
-PasteErrorPaste : "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de coller automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+V).",
PasteErrorCut : "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+X).",
PasteErrorCopy : "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Coller comme texte",
PasteFromWord : "Coller à partir de Word",
DlgPasteMsg2 : "Veuillez coller dans la zone ci-dessous en utilisant le clavier (<STRONG>Ctrl+V</STRONG>) et cliquez sur <STRONG>OK</STRONG>.",
+DlgPasteSec : "A cause des paramètres de sécurité de votre navigateur, l'éditeur ne peut accéder au presse-papier directement. Vous devez coller à nouveau le contenu dans cette fenêtre.",
DlgPasteIgnoreFont : "Ignorer les polices de caractères",
DlgPasteRemoveStyles : "Supprimer les styles",
DlgPasteCleanBox : "Effacer le contenu",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Navigateur",
DlgAboutLicenseTab : "License",
DlgAboutVersion : "version",
DlgAboutInfo : "Pour plus d'informations, aller à "
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/gl.js b/editor/editor/lang/gl.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: gl.js
- * Galician language file.
- *
- * File Authors:
- * Fernando Riveiro Lopez
+ *
+ * Galician language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Ligazón",
InsertLink : "Inserir/Editar Ligazón",
RemoveLink : "Eliminar Ligazón",
Anchor : "Inserir/Editar Referencia",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Imaxe",
InsertImage : "Inserir/Editar Imaxe",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "Aliñar á Dereita",
BlockJustify : "Xustificado",
DecreaseIndent : "Disminuir SangrÃa",
IncreaseIndent : "Aumentar SangrÃa",
+Blockquote : "Blockquote", //MISSING
Undo : "Desfacer",
Redo : "Refacer",
NumberedListLbl : "Lista Numerada",
@@ -107,20 +105,27 @@ SelectionField : "Campo de Selección",
ImageButton : "Botón de Imaxe",
FitWindow : "Maximizar o tamaño do editor",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Editar Ligazón",
CellCM : "Cela",
RowCM : "Fila",
ColumnCM : "Columna",
-InsertRow : "Inserir Fila",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Borrar Filas",
-InsertColumn : "Inserir Columna",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Borrar Columnas",
-InsertCell : "Inserir Cela",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Borrar Cela",
MergeCells : "Unir Celas",
-SplitCell : "Partir Celas",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Borrar Táboa",
CellProperties : "Propriedades da Cela",
TableProperties : "Propriedades da Táboa",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Propriedades do Campo de Selección",
TextareaProp : "Propriedades da Ãrea de Texto",
FormProp : "Propriedades do Formulario",
-FontFormats : "Normal;Formateado;Enderezo;Enacabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Paragraph (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formateado;Enderezo;Enacabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Paragraph (DIV)",
// Alerts and Messages
ProcessingXHTML : "Procesando XHTML. Por facor, agarde...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Seleccionar unha Referencia",
DlgLnkAnchorByName : "Por Nome de Referencia",
DlgLnkAnchorById : "Por Element Id",
-DlgLnkNoAnchors : "<Non hai referencias disponibles no documento>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Non hai referencias disponibles no documento)",
DlgLnkEMail : "Enderezo de E-Mail",
DlgLnkEMailSubject : "Asunto do Mensaxe",
DlgLnkEMailBody : "Corpo do Mensaxe",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Color de Fondo",
DlgCellBorderColor : "Color de Borde",
DlgCellBtnSelect : "Seleccionar...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Procurar",
DlgFindFindBtn : "Procurar",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Substitiur Todo",
DlgReplaceWordChk : "Coincidir con toda a palabra",
// Paste Operations / Dialog
-PasteErrorPaste : "Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de pegado. Por favor, use o teclado para iso (Ctrl+V).",
PasteErrorCut : "Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de corte. Por favor, use o teclado para iso (Ctrl+X).",
PasteErrorCopy : "Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de copia. Por favor, use o teclado para iso (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Pegar como texto plano",
PasteFromWord : "Pegar dende Word",
DlgPasteMsg2 : "Por favor, pegue dentro do seguinte cadro usando o teclado (<STRONG>Ctrl+V</STRONG>) e pulse <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Ignorar as definicións de TipografÃa",
DlgPasteRemoveStyles : "Eliminar as definicións de Estilos",
DlgPasteCleanBox : "Limpar o Cadro",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Información do Navegador",
DlgAboutLicenseTab : "Licencia",
DlgAboutVersion : "versión",
DlgAboutInfo : "Para máis información visitar:"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/he.js b/editor/editor/lang/he.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: he.js
- * Hebrew language file.
- *
- * File Authors:
- * Tamir Mordo (tamir@tetitu.co.il)
- * Ophir Radnitz (ophir@liqweed.net)
+ *
+ * Hebrew language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "קישור",
InsertLink : "הוספת/עריכת קישור",
RemoveLink : "הסרת הקישור",
Anchor : "הוספת/עריכת × ×§×•×“×ª עיגון",
+AnchorDelete : "הסר × ×§×•×“×ª עיגון",
InsertImageLbl : "×ª×ž×•× ×”",
InsertImage : "הוספת/עריכת ×ª×ž×•× ×”",
InsertFlashLbl : "פל×ש",
@@ -75,6 +71,7 @@ RightJustify : "יישור לימין",
BlockJustify : "יישור לשוליי×",
DecreaseIndent : "×”×§×˜× ×ª ××™× ×“× ×˜×¦×™×”",
IncreaseIndent : "הגדלת ××™× ×“× ×˜×¦×™×”",
+Blockquote : "בלוק ציטוט",
Undo : "ביטול צעד ×חרון",
Redo : "חזרה על צעד ×חרון",
NumberedListLbl : "רשימה ממוספרת",
@@ -108,20 +105,27 @@ SelectionField : "שדה בחירה",
ImageButton : "כפתור ×ª×ž×•× ×”",
FitWindow : "הגדל ×ת גודל העורך",
+ShowBlocks : "הצג בלוקי×",
// Context Menu
EditLink : "עריכת קישור",
CellCM : "ת×",
RowCM : "שורה",
ColumnCM : "עמודה",
-InsertRow : "הוספת שורה",
+InsertRowAfter : "הוסף שורה ×חרי",
+InsertRowBefore : "הוסף שורה ×œ×¤× ×™",
DeleteRows : "מחיקת שורות",
-InsertColumn : "הוספת עמודה",
+InsertColumnAfter : "הוסף עמודה ×חרי",
+InsertColumnBefore : "הוסף עמודה ×œ×¤× ×™",
DeleteColumns : "מחיקת עמודות",
-InsertCell : "הוספת ת×",
+InsertCellAfter : "הוסף ×ª× ×חרי",
+InsertCellBefore : "הוסף ×ª× ×חרי",
DeleteCells : "מחיקת ת××™×",
MergeCells : "מיזוג ת××™×",
-SplitCell : "פיצול ת××™×",
+MergeRight : "מזג ×™×ž×™× ×”",
+MergeDown : "מזג למטה",
+HorizontalSplitCell : "פצל ×ª× ×ופקית",
+VerticalSplitCell : "פצל ×ª× ×× ×›×™×ª",
TableDelete : "מחק טבלה",
CellProperties : "×ª×›×•× ×•×ª הת×",
TableProperties : "×ª×›×•× ×•×ª הטבלה",
@@ -139,7 +143,7 @@ SelectionFieldProp : "מ××¤×™×™× ×™ שדה בחירה",
TextareaProp : "מ××¤×™× ×™ ×יזור טקסט",
FormProp : "מ××¤×™× ×™ טופס",
-FontFormats : "× ×•×¨×ž×œ×™;קוד;כתובת;כותרת;כותרת 2;כותרת 3;כותרת 4;כותרת 5;כותרת 6", //REVIEW : Check _getfontformat.html
+FontFormats : "× ×•×¨×ž×œ×™;קוד;כתובת;כותרת;כותרת 2;כותרת 3;כותרת 4;כותרת 5;כותרת 6",
// Alerts and Messages
ProcessingXHTML : "מעבד XHTML, × × ×œ×”×ž×ª×™×Ÿ...",
@@ -234,7 +238,7 @@ DlgLnkURL : "כתובת (URL)",
DlgLnkAnchorSel : "בחירת עוגן",
DlgLnkAnchorByName : "עפ''×™ ×©× ×”×¢×•×’×Ÿ",
DlgLnkAnchorById : "עפ''י זיהוי (Id) הרכיב",
-DlgLnkNoAnchors : "<×ין ×¢×•×’× ×™× ×–×ž×™× ×™× ×‘×“×£>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(×ין ×¢×•×’× ×™× ×–×ž×™× ×™× ×‘×“×£)",
DlgLnkEMail : "כתובת הדו×''ל",
DlgLnkEMailSubject : "× ×•×©× ×”×”×•×“×¢×”",
DlgLnkEMailBody : "גוף ההודעה",
@@ -327,6 +331,9 @@ DlgCellBackColor : "צבע רקע",
DlgCellBorderColor : "צבע מסגרת",
DlgCellBtnSelect : "בחירה...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "חפש והחלף",
+
// Find Dialog
DlgFindTitle : "חיפוש",
DlgFindFindBtn : "חיפוש",
@@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "החלפה בכל העמוד",
DlgReplaceWordChk : "הת×מה למילה המל××”",
// Paste Operations / Dialog
-PasteErrorPaste : "הגדרות ×”×בטחה בדפדפן שלך ×œ× ×ž×פשרות לעורך לבצע פעולות הדבקה ×וטומטיות. יש להשתמש במקלדת ×œ×©× ×›×š (Ctrl+V).",
PasteErrorCut : "הגדרות ×”×בטחה בדפדפן שלך ×œ× ×ž×פשרות לעורך לבצע פעולות גזירה ×וטומטיות. יש להשתמש במקלדת ×œ×©× ×›×š (Ctrl+X).",
PasteErrorCopy : "הגדרות ×”×בטחה בדפדפן שלך ×œ× ×ž×פשרות לעורך לבצע פעולות העתקה ×וטומטיות. יש להשתמש במקלדת ×œ×©× ×›×š (Ctrl+C).",
@@ -350,6 +356,7 @@ PasteAsText : "הדבקה כטקסט פשוט",
PasteFromWord : "הדבקה מ-וורד",
DlgPasteMsg2 : "×× × ×”×“×‘×§ בתוך הקופסה ב×מצעות (<STRONG>Ctrl+V</STRONG>) ולחץ על <STRONG>×ישור</STRONG>.",
+DlgPasteSec : "עקב הגדרות ×בטחה בדפדפן, ×œ× × ×™×ª×Ÿ לגשת ×ל לוח ×”×’×–×™×¨×™× (clipboard) בצורה ישירה.×× × ×‘×¦×¢ הדבק שוב בחלון ×–×”.",
DlgPasteIgnoreFont : "×”×ª×¢×œ× ×ž×”×’×“×¨×•×ª סוג ×¤×•× ×˜",
DlgPasteRemoveStyles : "הסר הגדרות ×¡×’× ×•×Ÿ",
DlgPasteCleanBox : "× ×™×§×•×™ קופסה",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "גירסת דפדפן",
DlgAboutLicenseTab : "רשיון",
DlgAboutVersion : "גירס×",
DlgAboutInfo : "מידע × ×•×¡×£ × ×™×ª×Ÿ ×œ×ž×¦×•× ×›×ן:"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/hi.js b/editor/editor/lang/hi.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: hi.js
- * Hindi language file.
- *
- * File Authors:
- * Utkarshraj Atmaram (utcursch@gmail.com)
+ *
+ * Hindi language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "लिंक",
InsertLink : "लिंक इनà¥à¤¸à¤°à¥à¤Ÿ/संपादन",
RemoveLink : "लिंक हटायें",
Anchor : "à¤à¤‚कर इनà¥à¤¸à¤°à¥à¤Ÿ/संपादन",
+AnchorDelete : "à¤à¤‚कर हटायें",
InsertImageLbl : "तसà¥à¤µà¥€à¤°",
InsertImage : "तसà¥à¤µà¥€à¤° इनà¥à¤¸à¤°à¥à¤Ÿ/संपादन",
InsertFlashLbl : "फ़à¥à¤²à¥ˆà¤¶",
@@ -74,6 +71,7 @@ RightJustify : "दायीं तरफ",
BlockJustify : "बà¥à¤²à¥‰à¤• जसà¥à¤Ÿà¥€à¥žà¤¾à¤ˆ",
DecreaseIndent : "इनà¥à¤¡à¥…नà¥à¤Ÿ कम करें",
IncreaseIndent : "इनà¥à¤¡à¥…नà¥à¤Ÿ बà¥à¤¾à¤¯à¥‡à¤‚",
+Blockquote : "बà¥à¤²à¥‰à¤•-कोट",
Undo : "अनà¥à¤¡à¥‚",
Redo : "रीडू",
NumberedListLbl : "अंकीय सूची",
@@ -107,22 +105,29 @@ SelectionField : "चà¥à¤¨à¤¾à¤µ फ़ीलà¥à¤¡",
ImageButton : "तसà¥à¤µà¥€à¤° बटन",
FitWindow : "à¤à¤¡à¤¿à¤Ÿà¤° साइज़ को चरम सीमा तक बà¥à¤¾à¤¯à¥‡à¤‚",
+ShowBlocks : "बà¥à¤²à¥‰à¤• दिखायें",
// Context Menu
EditLink : "लिंक संपादन",
CellCM : "खाना",
RowCM : "पंकà¥à¤¤à¤¿",
ColumnCM : "कालम",
-InsertRow : "पंकà¥à¤¤à¤¿ इनà¥à¤¸à¤°à¥à¤Ÿ करें",
+InsertRowAfter : "बाद में पंकà¥à¤¤à¤¿ डालें",
+InsertRowBefore : "पहले पंकà¥à¤¤à¤¿ डालें",
DeleteRows : "पंकà¥à¤¤à¤¿à¤¯à¤¾à¤ डिलीट करें",
-InsertColumn : "कॉलम इनà¥à¤¸à¤°à¥à¤Ÿ करें",
-DeleteColumns : "कॉलम डिलीट करें",
-InsertCell : "सॅल इनà¥à¤¸à¤°à¥à¤Ÿ करें",
-DeleteCells : "सॅल डिलीट करें",
-MergeCells : "सॅल मिलायें",
-SplitCell : "सॅल अलग करें",
+InsertColumnAfter : "बाद में कालम डालें",
+InsertColumnBefore : "पहले कालम डालें",
+DeleteColumns : "कालम डिलीट करें",
+InsertCellAfter : "बाद में सैल डालें",
+InsertCellBefore : "पहले सैल डालें",
+DeleteCells : "सैल डिलीट करें",
+MergeCells : "सैल मिलायें",
+MergeRight : "बाà¤à¤¯à¤¾ विलय",
+MergeDown : "नीचे विलय करें",
+HorizontalSplitCell : "सैल को कà¥à¤·à¥ˆà¤¤à¤¿à¤œ सà¥à¤¥à¤¿à¤¤à¤¿ में विà¤à¤¾à¤œà¤¿à¤¤ करें",
+VerticalSplitCell : "सैल को लमà¥à¤¬à¤¾à¤•à¤¾à¤° में विà¤à¤¾à¤œà¤¿à¤¤ करें",
TableDelete : "टेबल डिलीट करें",
-CellProperties : "सॅल पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+CellProperties : "सैल पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
TableProperties : "टेबल पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
ImageProperties : "तसà¥à¤µà¥€à¤° पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
FlashProperties : "फ़à¥à¤²à¥ˆà¤¶ पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
@@ -138,7 +143,7 @@ SelectionFieldProp : "चà¥à¤¨à¤¾à¤µ फ़ीलà¥à¤¡ पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥
TextareaProp : "टेकà¥à¤¸à¥à¤¤ à¤à¤°à¤¿à¤¯à¤¾ पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
FormProp : "फ़ॉरà¥à¤® पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
-FontFormats : "साधारण;फ़ॉरà¥à¤®à¥ˆà¤Ÿà¥…ड;पता;शीरà¥à¤·à¤• 1;शीरà¥à¤·à¤• 2;शीरà¥à¤·à¤• 3;शीरà¥à¤·à¤• 4;शीरà¥à¤·à¤• 5;शीरà¥à¤·à¤• 6;शीरà¥à¤·à¤• (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "साधारण;फ़ॉरà¥à¤®à¥ˆà¤Ÿà¥…ड;पता;शीरà¥à¤·à¤• 1;शीरà¥à¤·à¤• 2;शीरà¥à¤·à¤• 3;शीरà¥à¤·à¤• 4;शीरà¥à¤·à¤• 5;शीरà¥à¤·à¤• 6;शीरà¥à¤·à¤• (DIV)",
// Alerts and Messages
ProcessingXHTML : "XHTML पà¥à¤°à¥‹à¤¸à¥…स हो रहा है। ज़रा ठहरें...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "à¤à¤‚कर चà¥à¤¨à¥‡à¤‚",
DlgLnkAnchorByName : "à¤à¤‚कर नाम से",
DlgLnkAnchorById : "à¤à¤²à¥€à¤®à¥…नà¥à¤Ÿ Id से",
-DlgLnkNoAnchors : "<डॉकà¥à¤¯à¥‚मॅनà¥à¤Ÿ में à¤à¤‚करà¥à¤¸ की संखà¥à¤¯à¤¾>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(डॉकà¥à¤¯à¥‚मॅनà¥à¤Ÿ में à¤à¤‚करà¥à¤¸ की संखà¥à¤¯à¤¾)",
DlgLnkEMail : "ई-मेल पता",
DlgLnkEMailSubject : "संदेश विषय",
DlgLnkEMailBody : "संदेश",
@@ -283,7 +288,7 @@ DlgSpecialCharTitle : "विशेष करॅकà¥à¤Ÿà¤° चà¥à¤¨à¥‡à¤‚",
// Table Dialog
DlgTableTitle : "टेबल पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
DlgTableRows : "पंकà¥à¤¤à¤¿à¤¯à¤¾à¤",
-DlgTableColumns : "कॉलम",
+DlgTableColumns : "कालम",
DlgTableBorder : "बॉरà¥à¤¡à¤° साइज़",
DlgTableAlign : "à¤à¤²à¤¾à¤‡à¤¨à¥à¤®à¥…नà¥à¤Ÿ",
DlgTableAlignNotSet : "<सॅट नहीं>",
@@ -291,18 +296,18 @@ DlgTableAlignLeft : "दायें",
DlgTableAlignCenter : "बीच में",
DlgTableAlignRight : "बायें",
DlgTableWidth : "चौड़ाई",
-DlgTableWidthPx : "पिकà¥à¤¸à¥…ल",
+DlgTableWidthPx : "पिकà¥à¤¸à¥ˆà¤²",
DlgTableWidthPc : "पà¥à¤°à¤¤à¤¿à¤¶à¤¤",
DlgTableHeight : "ऊà¤à¤šà¤¾à¤ˆ",
-DlgTableCellSpace : "सॅल अंतर",
-DlgTableCellPad : "सॅल पैडिंग",
+DlgTableCellSpace : "सैल अंतर",
+DlgTableCellPad : "सैल पैडिंग",
DlgTableCaption : "शीरà¥à¤·à¤•",
DlgTableSummary : "सारांश",
// Table Cell Dialog
-DlgCellTitle : "सॅल पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
+DlgCellTitle : "सैल पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›",
DlgCellWidth : "चौड़ाई",
-DlgCellWidthPx : "पिकà¥à¤¸à¥…ल",
+DlgCellWidthPx : "पिकà¥à¤¸à¥ˆà¤²",
DlgCellWidthPc : "पà¥à¤°à¤¤à¤¿à¤¶à¤¤",
DlgCellHeight : "ऊà¤à¤šà¤¾à¤ˆ",
DlgCellWordWrap : "वरà¥à¤¡ रैप",
@@ -321,11 +326,14 @@ DlgCellVerAlignMiddle : "मधà¥à¤¯",
DlgCellVerAlignBottom : "नीचे",
DlgCellVerAlignBaseline : "मूलरेखा",
DlgCellRowSpan : "पंकà¥à¤¤à¤¿ सà¥à¤ªà¥ˆà¤¨",
-DlgCellCollSpan : "कॉलम सà¥à¤ªà¥ˆà¤¨",
+DlgCellCollSpan : "कालम सà¥à¤ªà¥ˆà¤¨",
DlgCellBackColor : "बैकà¥à¤—à¥à¤°à¤¾à¤‰à¤¨à¥à¤¡ रंग",
DlgCellBorderColor : "बॉरà¥à¤¡à¤° का रंग",
DlgCellBtnSelect : "चà¥à¤¨à¥‡à¤‚...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "खोजें और बदलें",
+
// Find Dialog
DlgFindTitle : "खोजें",
DlgFindFindBtn : "खोजें",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "सà¤à¥€ रिपà¥à¤²à¥‡à¤¸ करें",
DlgReplaceWordChk : "पूरा शबà¥à¤¦ मिलायें",
// Paste Operations / Dialog
-PasteErrorPaste : "आपके बà¥à¤°à¤¾â€Œà¤‰à¥›à¤° की सà¥à¤°à¤•à¥à¤·à¤¾ सॅटिनà¥à¤—à¥à¤¸ ने पेसà¥à¤Ÿ करने की अनà¥à¤®à¤¤à¤¿ नहीं पà¥à¤°à¤¦à¤¾à¤¨ की है। (Ctrl+V) का पà¥à¤°à¤¯à¥‹à¤— करें।",
PasteErrorCut : "आपके बà¥à¤°à¤¾à¤‰à¥›à¤° की सà¥à¤°à¤•à¥à¤·à¤¾ सॅटिनà¥à¤—à¥à¤¸ ने कट करने की अनà¥à¤®à¤¤à¤¿ नहीं पà¥à¤°à¤¦à¤¾à¤¨ की है। (Ctrl+X) का पà¥à¤°à¤¯à¥‹à¤— करें।",
PasteErrorCopy : "आपके बà¥à¤°à¤¾à¤†à¤‰à¥›à¤° की सà¥à¤°à¤•à¥à¤·à¤¾ सॅटिनà¥à¤—à¥à¤¸ ने कॉपी करने की अनà¥à¤®à¤¤à¤¿ नहीं पà¥à¤°à¤¦à¤¾à¤¨ की है। (Ctrl+C) का पà¥à¤°à¤¯à¥‹à¤— करें।",
@@ -349,12 +356,13 @@ PasteAsText : "पेसà¥à¤Ÿ (सादा टॅकà¥à¤¸à¥à¤Ÿ)",
PasteFromWord : "पेसà¥à¤Ÿ (वरà¥à¤¡ से)",
DlgPasteMsg2 : "Ctrl+V का पà¥à¤°à¤¯à¥‹à¤— करके पेसà¥à¤Ÿ करें और ठीक है करें.",
+DlgPasteSec : "आपके बà¥à¤°à¤¾à¤‰à¥›à¤° की सà¥à¤°à¤•à¥à¤·à¤¾ आपके बà¥à¤°à¤¾à¤‰à¥›à¤° की सà¥à¤°Kश सैटिंग के कारण, à¤à¤¡à¤¿à¤Ÿà¤° आपके कà¥à¤²à¤¿à¤ªà¤¬à¥‹à¤°à¥à¤¡ डेटा को नहीं पा सकता है. आपको उसे इस विनà¥à¤¡à¥‹ में दोबारा पेसà¥à¤Ÿ करना होगा.",
DlgPasteIgnoreFont : "फ़ॉनà¥à¤Ÿ परिà¤à¤¾à¤·à¤¾ निकालें",
DlgPasteRemoveStyles : "सà¥à¤Ÿà¤¾à¤‡à¤² परिà¤à¤¾à¤·à¤¾ निकालें",
DlgPasteCleanBox : "बॉकà¥à¤¸ साफ़ करें",
// Color Picker
-ColorAutomatic : "ऑटोमैटिक",
+ColorAutomatic : "सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤",
ColorMoreColors : "और रंग...",
// Document Properties
@@ -396,7 +404,7 @@ DlgCheckboxSelected : "सॅलॅकà¥à¤Ÿà¥…ड",
// Form Dialog
DlgFormName : "नाम",
-DlgFormAction : "à¤à¤•à¥à¤¶à¤¨",
+DlgFormAction : "कà¥à¤°à¤¿à¤¯à¤¾",
DlgFormMethod : "तरीका",
// Select Field Dialog
@@ -417,7 +425,7 @@ DlgSelectBtnDelete : "डिलीट",
// Textarea Dialog
DlgTextareaName : "नाम",
-DlgTextareaCols : "कॉलम",
+DlgTextareaCols : "कालम",
DlgTextareaRows : "पंकà¥à¤¤à¤¿à¤¯à¤¾à¤‚",
// Text Field Dialog
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "बà¥à¤°à¤¾à¤‰à¥›à¤° के बारे में",
DlgAboutLicenseTab : "लाइसैनà¥à¤¸",
DlgAboutVersion : "वरà¥à¥›à¤¨",
DlgAboutInfo : "अधिक जानकारी के लिये यहाठजायें:"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/hr.js b/editor/editor/lang/hr.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: hr.js
- * Croatian language file.
- *
- * File Authors:
- * Alex Varga (avarga@globaldizajn.hr)
+ *
+ * Croatian language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Link",
InsertLink : "Ubaci/promijeni link",
RemoveLink : "Ukloni link",
Anchor : "Ubaci/promijeni sidro",
+AnchorDelete : "Ukloni sidro",
InsertImageLbl : "Slika",
InsertImage : "Ubaci/promijeni sliku",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "Desno poravnanje",
BlockJustify : "Blok poravnanje",
DecreaseIndent : "Pomakni ulijevo",
IncreaseIndent : "Pomakni udesno",
+Blockquote : "Blockquote",
Undo : "Poništi",
Redo : "Ponovi",
NumberedListLbl : "BrojÄana lista",
@@ -107,20 +105,27 @@ SelectionField : "Selection Field",
ImageButton : "Image Button",
FitWindow : "Povećaj veliÄinu editora",
+ShowBlocks : "Prikaži blokove",
// Context Menu
EditLink : "Promijeni link",
CellCM : "Ćelija",
RowCM : "Red",
ColumnCM : "Kolona",
-InsertRow : "Ubaci red",
+InsertRowAfter : "Ubaci red poslije",
+InsertRowBefore : "Ubaci red prije",
DeleteRows : "Izbriši redove",
-InsertColumn : "Ubaci kolonu",
+InsertColumnAfter : "Ubaci kolonu poslije",
+InsertColumnBefore : "Ubaci kolonu prije",
DeleteColumns : "Izbriši kolone",
-InsertCell : "Ubaci ćelije",
+InsertCellAfter : "Ubaci ćeliju poslije",
+InsertCellBefore : "Ubaci ćeliju prije",
DeleteCells : "Izbriši ćelije",
MergeCells : "Spoji ćelije",
-SplitCell : "Razdvoji ćelije",
+MergeRight : "Spoji desno",
+MergeDown : "Spoji dolje",
+HorizontalSplitCell : "Podijeli ćeliju vodoravno",
+VerticalSplitCell : "Podijeli ćeliju okomito",
TableDelete : "Izbriši tablicu",
CellProperties : "Svojstva ćelije",
TableProperties : "Svojstva tablice",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Selection svojstva",
TextareaProp : "Textarea svojstva",
FormProp : "Form svojstva",
-FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
// Alerts and Messages
ProcessingXHTML : "ObraÄ‘ujem XHTML. Molimo priÄekajte...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Odaberi sidro",
DlgLnkAnchorByName : "Po nazivu sidra",
DlgLnkAnchorById : "Po Id elementa",
-DlgLnkNoAnchors : "<Nema dostupnih sidra>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Nema dostupnih sidra)",
DlgLnkEMail : "E-Mail adresa",
DlgLnkEMailSubject : "Naslov",
DlgLnkEMailBody : "Sadržaj poruke",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Boja pozadine",
DlgCellBorderColor : "Boja okvira",
DlgCellBtnSelect : "Odaberi...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Pronađi i zamijeni",
+
// Find Dialog
DlgFindTitle : "Pronađi",
DlgFindFindBtn : "Pronađi",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Zamijeni sve",
DlgReplaceWordChk : "Usporedi cijele rijeÄi",
// Paste Operations / Dialog
-PasteErrorPaste : "Sigurnosne postavke VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog ljepljenja. Molimo koristite kraticu na tipkovnici (Ctrl+V).",
PasteErrorCut : "Sigurnosne postavke VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl+X).",
PasteErrorCopy : "Sigurnosne postavke VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Zalijepi kao Äisti tekst",
PasteFromWord : "Zalijepi iz Worda",
DlgPasteMsg2 : "Molimo zaljepite unutar doljnjeg okvira koristeći tipkovnicu (<STRONG>Ctrl+V</STRONG>) i kliknite <STRONG>OK</STRONG>.",
+DlgPasteSec : "Zbog sigurnosnih postavki VaÅ¡eg pretraživaÄa, editor nema direktan pristup VaÅ¡em meÄ‘uspremniku. Potrebno je ponovno zalijepiti tekst u ovaj prozor.",
DlgPasteIgnoreFont : "Zanemari definiciju vrste fonta",
DlgPasteRemoveStyles : "Ukloni definicije stilova",
DlgPasteCleanBox : "OÄisti okvir",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Podaci o pretraživaÄu",
DlgAboutLicenseTab : "Licenca",
DlgAboutVersion : "inaÄica",
DlgAboutInfo : "Za više informacija posjetite"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/hu.js b/editor/editor/lang/hu.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: hu.js
- * Hungarian language file.
- *
- * File Authors:
- * Varga Zsolt (meridian@netteszt.hu)
- * Géza Szűcs (flextor@flextor.hu)
+ *
+ * Hungarian language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "Hivatkozás",
InsertLink : "Hivatkozás beillesztése/módosÃtása",
RemoveLink : "Hivatkozás törlése",
Anchor : "Horgony beillesztése/szerkesztése",
+AnchorDelete : "Horgony eltávolÃtása",
InsertImageLbl : "Kép",
InsertImage : "Kép beillesztése/módosÃtása",
InsertFlashLbl : "Flash",
@@ -75,6 +71,7 @@ RightJustify : "Jobbra",
BlockJustify : "Sorkizárt",
DecreaseIndent : "Behúzás csökkentése",
IncreaseIndent : "Behúzás növelése",
+Blockquote : "Idézet blokk",
Undo : "Visszavonás",
Redo : "Ismétlés",
NumberedListLbl : "Számozás",
@@ -108,20 +105,27 @@ SelectionField : "Legördülő lista",
ImageButton : "Képgomb",
FitWindow : "Maximalizálás",
+ShowBlocks : "Blokkok megjelenÃtése",
// Context Menu
EditLink : "Hivatkozás módosÃtása",
CellCM : "Cella",
RowCM : "Sor",
ColumnCM : "Oszlop",
-InsertRow : "Sor beszúrása",
+InsertRowAfter : "Sor beillesztése az aktuális sor mögé",
+InsertRowBefore : "Sor beillesztése az aktuális sor elé",
DeleteRows : "Sorok törlése",
-InsertColumn : "Oszlop beszúrása",
+InsertColumnAfter : "Oszlop beillesztése az aktuális oszlop mögé",
+InsertColumnBefore : "Oszlop beillesztése az aktuális oszlop elé",
DeleteColumns : "Oszlopok törlése",
-InsertCell : "Cella beszúrása",
+InsertCellAfter : "Cella beillesztése az aktuális cella mögé",
+InsertCellBefore : "Cella beillesztése az aktuális cella elé",
DeleteCells : "Cellák törlése",
MergeCells : "Cellák egyesÃtése",
-SplitCell : "Cella szétválasztása",
+MergeRight : "Cellák egyesÃtése jobbra",
+MergeDown : "Cellák egyesÃtése lefelé",
+HorizontalSplitCell : "Cellák szétválasztása vÃzszintesen",
+VerticalSplitCell : "Cellák szétválasztása függőlegesen",
TableDelete : "Táblázat törlése",
CellProperties : "Cella tulajdonságai",
TableProperties : "Táblázat tulajdonságai",
@@ -139,7 +143,7 @@ SelectionFieldProp : "Legördülő lista tulajdonságai",
TextareaProp : "Szövegterület tulajdonságai",
FormProp : "Űrlap tulajdonságai",
-FontFormats : "Normál;Formázott;CÃmsor;Fejléc 1;Fejléc 2;Fejléc 3;Fejléc 4;Fejléc 5;Fejléc 6;Bekezdés (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normál;Formázott;CÃmsor;Fejléc 1;Fejléc 2;Fejléc 3;Fejléc 4;Fejléc 5;Fejléc 6;Bekezdés (DIV)",
// Alerts and Messages
ProcessingXHTML : "XHTML feldolgozása. Kérem várjon...",
@@ -234,7 +238,7 @@ DlgLnkURL : "WebcÃm",
DlgLnkAnchorSel : "Horgony választása",
DlgLnkAnchorByName : "Horgony név szerint",
DlgLnkAnchorById : "AzonosÃtó szerint",
-DlgLnkNoAnchors : "<Nincs horgony a dokumentumban>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Nincs horgony a dokumentumban)",
DlgLnkEMail : "E-Mail cÃm",
DlgLnkEMailSubject : "Üzenet tárgya",
DlgLnkEMailBody : "Ãœzenet",
@@ -327,6 +331,9 @@ DlgCellBackColor : "HáttérszÃn",
DlgCellBorderColor : "SzegélyszÃn",
DlgCellBtnSelect : "Kiválasztás...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Keresés és csere",
+
// Find Dialog
DlgFindTitle : "Keresés",
DlgFindFindBtn : "Keresés",
@@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "Az összes cseréje",
DlgReplaceWordChk : "csak ha ez a teljes szó",
// Paste Operations / Dialog
-PasteErrorPaste : "A böngészÅ‘ biztonsági beállÃtásai nem engedélyezik a szerkesztÅ‘nek, hogy végrehajtsa a beillesztés műveletet. Használja az alábbi billentyűkombinációt (Ctrl+V).",
PasteErrorCut : "A böngészÅ‘ biztonsági beállÃtásai nem engedélyezik a szerkesztÅ‘nek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl+X).",
PasteErrorCopy : "A böngészÅ‘ biztonsági beállÃtásai nem engedélyezik a szerkesztÅ‘nek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl+X).",
@@ -350,6 +356,7 @@ PasteAsText : "Beillesztés formázatlan szövegként",
PasteFromWord : "Beillesztés Word-ből",
DlgPasteMsg2 : "Másolja be az alábbi mezőbe a <STRONG>Ctrl+V</STRONG> billentyűk lenyomásával, majd nyomjon <STRONG>Rendben</STRONG>-t.",
+DlgPasteSec : "A böngészÅ‘ biztonsági beállÃtásai miatt a szerkesztÅ‘ nem képes hozzáférni a vágólap adataihoz. Illeszd be újra ebben az ablakban.",
DlgPasteIgnoreFont : "Betű formázások megszüntetése",
DlgPasteRemoveStyles : "StÃlusok eltávolÃtása",
DlgPasteCleanBox : "Törlés",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Böngésző információ",
DlgAboutLicenseTab : "Licensz",
DlgAboutVersion : "verzió",
DlgAboutInfo : "További információkért látogasson el ide:"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/it.js b/editor/editor/lang/it.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: it.js
- * Italian language file.
- *
- * File Authors:
- * Simone Chiaretta (simone@piyosailing.com)
+ *
+ * Italian language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Collegamento",
InsertLink : "Inserisci/Modifica collegamento",
RemoveLink : "Elimina collegamento",
Anchor : "Inserisci/Modifica Ancora",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Immagine",
InsertImage : "Inserisci/Modifica immagine",
InsertFlashLbl : "Oggetto Flash",
@@ -74,6 +71,7 @@ RightJustify : "Allinea a destra",
BlockJustify : "Giustifica",
DecreaseIndent : "Riduci rientro",
IncreaseIndent : "Aumenta rientro",
+Blockquote : "Blockquote", //MISSING
Undo : "Annulla",
Redo : "Ripristina",
NumberedListLbl : "Elenco numerato",
@@ -107,20 +105,27 @@ SelectionField : "Menu di selezione",
ImageButton : "Bottone immagine",
FitWindow : "Massimizza l'area dell'editor",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Modifica collegamento",
CellCM : "Cella",
RowCM : "Riga",
ColumnCM : "Colonna",
-InsertRow : "Inserisci riga",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Elimina righe",
-InsertColumn : "Inserisci colonna",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Elimina colonne",
-InsertCell : "Inserisci cella",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Elimina celle",
MergeCells : "Unisce celle",
-SplitCell : "Dividi celle",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Cancella Tabella",
CellProperties : "Proprietà cella",
TableProperties : "Proprietà tabella",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Proprietà menu di selezione",
TextareaProp : "Proprietà area di testo",
FormProp : "Proprietà modulo",
-FontFormats : "Normale;Formattato;Indirizzo;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normale;Formattato;Indirizzo;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)",
// Alerts and Messages
ProcessingXHTML : "Elaborazione XHTML in corso. Attendere prego...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Scegli Ancora",
DlgLnkAnchorByName : "Per Nome",
DlgLnkAnchorById : "Per id elemento",
-DlgLnkNoAnchors : "<Nessuna ancora disponibile nel documento>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Nessuna ancora disponibile nel documento)",
DlgLnkEMail : "Indirizzo E-Mail",
DlgLnkEMailSubject : "Oggetto del messaggio",
DlgLnkEMailBody : "Corpo del messaggio",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Colore sfondo",
DlgCellBorderColor : "Colore bordo",
DlgCellBtnSelect : "Scegli...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Trova",
DlgFindFindBtn : "Trova",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Sostituisci tutto",
DlgReplaceWordChk : "Solo parole intere",
// Paste Operations / Dialog
-PasteErrorPaste : "Le impostazioni di sicurezza del browser non permettono di incollare automaticamente il testo. Usa la tastiera (Ctrl+V).",
PasteErrorCut : "Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl+X).",
PasteErrorCopy : "Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Incolla come testo semplice",
PasteFromWord : "Incolla da Word",
DlgPasteMsg2 : "Incolla il testo all'interno dell'area sottostante usando la scorciatoia di tastiere (<STRONG>Ctrl+V</STRONG>) e premi <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Ignora le definizioni di Font",
DlgPasteRemoveStyles : "Rimuovi le definizioni di Stile",
DlgPasteCleanBox : "Svuota area di testo",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Informazioni Browser",
DlgAboutLicenseTab : "Licenza",
DlgAboutVersion : "versione",
DlgAboutInfo : "Per maggiori informazioni visitare"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/ja.js b/editor/editor/lang/ja.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: ja.js
- * Japanese language file.
- *
- * File Authors:
- * Takashi Yamaguchi (jack@omakase.net)
+ *
+ * Japanese language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "リンク",
InsertLink : "リンク挿入/編集",
RemoveLink : "リンク削除",
Anchor : "アンカー挿入/編集",
+AnchorDelete : "アンカー削除",
InsertImageLbl : "イメージ",
InsertImage : "イメージ挿入/編集",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "å³æƒãˆ",
BlockJustify : "両端æƒãˆ",
DecreaseIndent : "インデント解除",
IncreaseIndent : "インデント",
+Blockquote : "ブãƒãƒƒã‚¯å¼•ç”¨",
Undo : "å…ƒã«æˆ»ã™",
Redo : "ã‚„ã‚Šç›´ã—",
NumberedListLbl : "段è½ç•ªå·",
@@ -107,20 +105,27 @@ SelectionField : "é¸æŠžãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰",
ImageButton : "ç”»åƒãƒœã‚¿ãƒ³",
FitWindow : "エディタサイズを最大ã«ã—ã¾ã™",
+ShowBlocks : "ブãƒãƒƒã‚¯è¡¨ç¤º",
// Context Menu
EditLink : "リンク編集",
CellCM : "セル",
RowCM : "行",
ColumnCM : "カラム",
-InsertRow : "行挿入",
+InsertRowAfter : "列ã®å¾Œã«æŒ¿å…¥",
+InsertRowBefore : "列ã®å‰ã«æŒ¿å…¥",
DeleteRows : "行削除",
-InsertColumn : "列挿入",
+InsertColumnAfter : "カラムã®å¾Œã«æŒ¿å…¥",
+InsertColumnBefore : "カラムã®å‰ã«æŒ¿å…¥",
DeleteColumns : "列削除",
-InsertCell : "セル挿入",
+InsertCellAfter : "セルã®å¾Œã«æŒ¿å…¥",
+InsertCellBefore : "セルã®å‰ã«æŒ¿å…¥",
DeleteCells : "セル削除",
MergeCells : "セルçµåˆ",
-SplitCell : "セル分割",
+MergeRight : "å³ã«çµåˆ",
+MergeDown : "下ã«çµåˆ",
+HorizontalSplitCell : "セルを水平方å‘分割",
+VerticalSplitCell : "セルを垂直方å‘ã«åˆ†å‰²",
TableDelete : "テーブル削除",
CellProperties : "セル プãƒãƒ‘ティ",
TableProperties : "テーブル プãƒãƒ‘ティ",
@@ -138,7 +143,7 @@ SelectionFieldProp : "é¸æŠžãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ プãƒãƒ‘ティ",
TextareaProp : "テã‚ストエリア プãƒãƒ‘ティ",
FormProp : "フォームプãƒãƒ‘ティ",
-FontFormats : "標準;書å¼ä»˜ã;アドレス;見出㗠1;見出㗠2;見出㗠3;見出㗠4;見出㗠5;見出㗠6;標準 (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "標準;書å¼ä»˜ã;アドレス;見出㗠1;見出㗠2;見出㗠3;見出㗠4;見出㗠5;見出㗠6;標準 (DIV)",
// Alerts and Messages
ProcessingXHTML : "XHTML処ç†ä¸. ã—ã°ã‚‰ããŠå¾…ã¡ãã ã•ã„...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "アンカーをé¸æŠž",
DlgLnkAnchorByName : "アンカーå",
DlgLnkAnchorById : "エレメントID",
-DlgLnkNoAnchors : "<ドã‚ュメントã«ãŠã„ã¦åˆ©ç”¨å¯èƒ½ãªã‚¢ãƒ³ã‚«ãƒ¼ã¯ã‚ã‚Šã¾ã›ã‚“。>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(ドã‚ュメントã«ãŠã„ã¦åˆ©ç”¨å¯èƒ½ãªã‚¢ãƒ³ã‚«ãƒ¼ã¯ã‚ã‚Šã¾ã›ã‚“。)",
DlgLnkEMail : "E-Mail アドレス",
DlgLnkEMailSubject : "件å",
DlgLnkEMailBody : "本文",
@@ -326,6 +331,9 @@ DlgCellBackColor : "背景色",
DlgCellBorderColor : "ボーダーカラー",
DlgCellBtnSelect : "é¸æŠž...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "検索ã—ã¦ç½®æ›",
+
// Find Dialog
DlgFindTitle : "検索",
DlgFindFindBtn : "検索",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "ã™ã¹ã¦ç½®æ›ãˆ",
DlgReplaceWordChk : "å˜èªžå˜ä½ã§ä¸€è‡´",
// Paste Operations / Dialog
-PasteErrorPaste : "ブラウザーã®ã‚»ã‚ュリティè¨å®šã«ã‚ˆã‚Šã‚¨ãƒ‡ã‚£ã‚¿ã®è²¼ã‚Šä»˜ã‘æ“作ãŒè‡ªå‹•ã§å®Ÿè¡Œã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。実行ã™ã‚‹ã«ã¯æ‰‹å‹•ã§ã‚ーボードã®(Ctrl+V)を使用ã—ã¦ãã ã•ã„。",
PasteErrorCut : "ブラウザーã®ã‚»ã‚ュリティè¨å®šã«ã‚ˆã‚Šã‚¨ãƒ‡ã‚£ã‚¿ã®åˆ‡ã‚Šå–ã‚Šæ“作ãŒè‡ªå‹•ã§å®Ÿè¡Œã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。実行ã™ã‚‹ã«ã¯æ‰‹å‹•ã§ã‚ーボードã®(Ctrl+X)を使用ã—ã¦ãã ã•ã„。",
PasteErrorCopy : "ブラウザーã®ã‚»ã‚ュリティè¨å®šã«ã‚ˆã‚Šã‚¨ãƒ‡ã‚£ã‚¿ã®ã‚³ãƒ”ーæ“作ãŒè‡ªå‹•ã§å®Ÿè¡Œã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。実行ã™ã‚‹ã«ã¯æ‰‹å‹•ã§ã‚ーボードã®(Ctrl+C)を使用ã—ã¦ãã ã•ã„。",
@@ -349,6 +356,7 @@ PasteAsText : "プレーンテã‚スト貼り付ã‘",
PasteFromWord : "ãƒ¯ãƒ¼ãƒ‰æ–‡ç« ã‹ã‚‰è²¼ã‚Šä»˜ã‘",
DlgPasteMsg2 : "ã‚ーボード(<STRONG>Ctrl+V</STRONG>)を使用ã—ã¦ã€æ¬¡ã®å…¥åŠ›ã‚¨ãƒªã‚¢å†…ã§è²¼ã£ã¦ã€<STRONG>OK</STRONG>を押ã—ã¦ãã ã•ã„。",
+DlgPasteSec : "ブラウザã®ã‚»ã‚ュリティè¨å®šã«ã‚ˆã‚Šã€ã‚¨ãƒ‡ã‚£ã‚¿ã¯ã‚¯ãƒªãƒƒãƒ—ボード・データã«ç›´æŽ¥ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。ã“ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã¯è²¼ã‚Šä»˜ã‘æ“作を行ã†åº¦ã«è¡¨ç¤ºã•ã‚Œã¾ã™ã€‚",
DlgPasteIgnoreFont : "Fontã‚¿ã‚°ã®Face属性を無視ã—ã¾ã™ã€‚",
DlgPasteRemoveStyles : "スタイル定義を削除ã—ã¾ã™ã€‚",
DlgPasteCleanBox : "入力エリアクリア",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "ãƒ–ãƒ©ã‚¦ã‚¶æƒ…å ±",
DlgAboutLicenseTab : "ライセンス",
DlgAboutVersion : "ãƒãƒ¼ã‚¸ãƒ§ãƒ³",
DlgAboutInfo : "より詳ã—ã„æƒ…å ±ã¯ã“ã¡ã‚‰ã§"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/km.js b/editor/editor/lang/km.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: km.js
- * Khmer language file.
- *
- * File Authors:
- * Chay Sengtha (sengtha@e-khmer.com - http://translate.e-khmer.net)
+ *
+ * Khmer language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "ឈ្នាប់",
InsertLink : "បន្ážáŸ‚ម/កែប្រែ ឈ្នាប់",
RemoveLink : "លប់ឈ្នាប់",
Anchor : "បន្ážáŸ‚ម/កែប្រែ យុážáŸ’កា",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "រូបភាព",
InsertImage : "បន្ážáŸ‚ម/កែប្រែ រូបភាព",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "ážáŸ†ážšáž¹áž˜ážŸáŸ’ážáž¶áŸ†",
BlockJustify : "ážáŸ†ážšáž¹áž˜ážŸáž„ážáž¶áž„",
DecreaseIndent : "បន្ážáž™áž€áž¶ážšáž…ូលបន្ទាážáŸ‹",
IncreaseIndent : "បន្ážáŸ‚មការចូលបន្ទាážáŸ‹",
+Blockquote : "Blockquote", //MISSING
Undo : "សារឡើងវិញ",
Redo : "ធ្វើឡើងវិញ",
NumberedListLbl : "បញ្ជីជាអក្សរ",
@@ -107,20 +105,27 @@ SelectionField : "ជួរជ្រើសរើស",
ImageButton : "ប៉ូážáž»áž“រូបភាព",
FitWindow : "Maximize the editor size", //MISSING
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "កែប្រែឈ្នាប់",
CellCM : "Cell", //MISSING
RowCM : "Row", //MISSING
ColumnCM : "Column", //MISSING
-InsertRow : "បន្ážáŸ‚មជួរផ្ážáŸáž€",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "លប់ជួរផ្ážáŸáž€",
-InsertColumn : "បន្ážáŸ‚មជួរឈរ",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "លប់ជួរឈរ",
-InsertCell : "បន្ážáŸ‚ម សែល",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "លប់សែល",
MergeCells : "បញ្ជូលសែល",
-SplitCell : "ផ្ážáž¶áž…់សែល",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "លប់ážáž¶ážšáž¶áž„",
CellProperties : "ការកំណážáŸ‹ážŸáŸ‚áž›",
TableProperties : "ការកំណážáŸ‹ážáž¶ážšáž¶áž„",
@@ -138,7 +143,7 @@ SelectionFieldProp : "ការកំណážáŸ‹áž‡áž½ážšáž‡áŸ’រើសរើស"
TextareaProp : "ការកំណážáŸ‹áž€áž“្លែងសរសáŸážšáž¢ážáŸ’ážáž”áž‘",
FormProp : "ការកំណážáŸ‹áž”ែបបទ",
-FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
// Alerts and Messages
ProcessingXHTML : "កំពុងដំណើរការ XHTML ។ សូមរងចាំ...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "ជ្រើសរើសយុážáŸ’កា",
DlgLnkAnchorByName : "ážáž¶áž˜ážˆáŸ’មោះរបស់យុážáŸ’កា",
DlgLnkAnchorById : "ážáž¶áž˜ Id",
-DlgLnkNoAnchors : "<ពុំមានយុážáŸ’កានៅក្នុងឯកសារនáŸáŸ‡áž‘áŸ>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(No anchors available in the document)", //MISSING
DlgLnkEMail : "អ៊ីមែល",
DlgLnkEMailSubject : "ចំណងជើងអážáŸ’ážáž”áž‘",
DlgLnkEMailBody : "អážáŸ’ážáž”áž‘",
@@ -326,6 +331,9 @@ DlgCellBackColor : "ពណ៌ផ្នែកážáž¶áž„ក្រោម",
DlgCellBorderColor : "ពណ៌ស៊ុម",
DlgCellBtnSelect : "ជ្រើសរើស...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "ស្វែងរក",
DlgFindFindBtn : "ស្វែងរក",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "ជំនួសទាំងអស់",
DlgReplaceWordChk : "ážáŸ’រូវពាក្យទាំងអស់",
// Paste Operations / Dialog
-PasteErrorPaste : "Your browser security settings don't permit the editor to automatically execute pasting operations. Please use the keyboard for that (Ctrl+V).", //MISSING
PasteErrorCut : "ការកំណážáŸ‹ážŸáž»ážœážáŸ’ážáž—ាពរបស់កម្មវិធីរុករករបស់លោកអ្នក áž“áŸáŸ‡â€‹áž˜áž·áž“អាចធ្វើកម្មវិធីážáž¶áž€áŸ‹ážáŸ‚ងអážáŸ’ážáž”áž‘ កាážáŸ‹áž¢ážáŸ’ážáž”ទយកដោយស្វáŸáž™áž”្រវážáŸ’ážáž”ានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនáŸáŸ‡ (Ctrl+X) ។",
PasteErrorCopy : "ការកំណážáŸ‹ážŸáž»ážœážáŸ’ážáž—ាពរបស់កម្មវិធីរុករករបស់លោកអ្នក áž“áŸáŸ‡â€‹áž˜áž·áž“អាចធ្វើកម្មវិធីážáž¶áž€áŸ‹ážáŸ‚ងអážáŸ’ážáž”áž‘ ចំលងអážáŸ’ážáž”ទយកដោយស្វáŸáž™áž”្រវážáŸ’ážáž”ានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនáŸáŸ‡ (Ctrl+C)។",
@@ -349,6 +356,7 @@ PasteAsText : "ចំលងដាក់អážáŸ’ážáž”ទធម្មážáž¶",
PasteFromWord : "ចំលងពាក្យពីកម្មវិធី Word",
DlgPasteMsg2 : "សូមចំលងអážáŸ’ážáž”ទទៅដាក់ក្នុងប្រអប់ដូចážáž¶áž„ក្រោមដោយប្រើប្រាស់ ឃី ​(<STRONG>Ctrl+V</STRONG>) ហើយចុច <STRONG>OK</STRONG> ។",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "មិនគិážáž¢áŸ†áž–ីប្រភáŸáž‘ពុម្ភអក្សរ",
DlgPasteRemoveStyles : "លប់ម៉ូáž",
DlgPasteCleanBox : "លប់អážáŸ’ážáž”áž‘áž…áŸáž‰áž–ីប្រអប់",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "ព៌ážáž˜áž¶áž“កម្មវិធីរុករ
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "ជំនាន់",
DlgAboutInfo : "សំរាប់ព៌ážáž˜áž¶áž“ផ្សáŸáž„ទៀហសូមទាក់ទង"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/ko.js b/editor/editor/lang/ko.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: ko.js
- * Korean language file.
- *
- * File Authors:
- * Taehwan Kwag (thkwag@nate.com)
- * Hyung-chae, Kim (chaeya@gmail.com)
+ *
+ * Korean language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "ë§í¬",
InsertLink : "ë§í¬ 삽입/변경",
RemoveLink : "ë§í¬ ì‚ì œ",
Anchor : "책갈피 삽입/변경",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "ì´ë¯¸ì§€",
InsertImage : "ì´ë¯¸ì§€ 삽입/변경",
InsertFlashLbl : "플래쉬",
@@ -75,6 +71,7 @@ RightJustify : "오른쪽 ì •ë ¬",
BlockJustify : "양쪽 맞춤",
DecreaseIndent : "내어쓰기",
IncreaseIndent : "들여쓰기",
+Blockquote : "Blockquote", //MISSING
Undo : "취소",
Redo : "재실행",
NumberedListLbl : "순서있는 목ë¡",
@@ -108,20 +105,27 @@ SelectionField : "펼침목ë¡",
ImageButton : "ì´ë¯¸ì§€ë²„튼",
FitWindow : "Maximize the editor size", //MISSING
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "ë§í¬ ìˆ˜ì •",
CellCM : "Cell", //MISSING
RowCM : "Row", //MISSING
ColumnCM : "Column", //MISSING
-InsertRow : "가로줄 삽입",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "가로줄 ì‚ì œ",
-InsertColumn : "세로줄 삽입",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "세로줄 ì‚ì œ",
-InsertCell : "셀 삽입",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "ì…€ ì‚ì œ",
MergeCells : "셀 합치기",
-SplitCell : "셀 나누기",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Delete Table", //MISSING
CellProperties : "ì…€ ì†ì„±",
TableProperties : "í‘œ ì†ì„±",
@@ -139,7 +143,7 @@ SelectionFieldProp : "íŽ¼ì¹¨ëª©ë¡ ì†ì„±",
TextareaProp : "ìž…ë ¥ì˜ì— ì†ì„±",
FormProp : "í¼ ì†ì„±",
-FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",
// Alerts and Messages
ProcessingXHTML : "XHTML 처리중. ìž ì‹œë§Œ ê¸°ë‹¤ë ¤ì£¼ì‹ì‹œìš”.",
@@ -234,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "책갈피 ì„ íƒ",
DlgLnkAnchorByName : "책갈피 ì´ë¦„",
DlgLnkAnchorById : "책갈피 ID",
-DlgLnkNoAnchors : "<ë¬¸ì„œì— ì±…ê°ˆí”¼ê°€ 없습니다.>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(ë¬¸ì„œì— ì±…ê°ˆí”¼ê°€ 없습니다.)",
DlgLnkEMail : "ì´ë©”ì¼ ì£¼ì†Œ",
DlgLnkEMailSubject : "ì œëª©",
DlgLnkEMailBody : "ë‚´ìš©",
@@ -327,6 +331,9 @@ DlgCellBackColor : "ë°°ê²½ 색ìƒ",
DlgCellBorderColor : "í…Œë‘리 색ìƒ",
DlgCellBtnSelect : "ì„ íƒ",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "찾기",
DlgFindFindBtn : "찾기",
@@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "ëª¨ë‘ ë°”ê¾¸ê¸°",
DlgReplaceWordChk : "ì˜¨ì „í•œ 단어",
// Paste Operations / Dialog
-PasteErrorPaste : "브ë¼ìš°ì €ì˜ ë³´ì•ˆì„¤ì •ë•Œë¬¸ì— ë¶™ì—¬ë„£ê¸° ê¸°ëŠ¥ì„ ì‹¤í–‰í• ìˆ˜ 없습니다. 키보드 ëª…ë ¹ì„ ì‚¬ìš©í•˜ì‹ì‹œìš”. (Ctrl+V).",
PasteErrorCut : "브ë¼ìš°ì €ì˜ ë³´ì•ˆì„¤ì •ë•Œë¬¸ì— ìž˜ë¼ë‚´ê¸° ê¸°ëŠ¥ì„ ì‹¤í–‰í• ìˆ˜ 없습니다. 키보드 ëª…ë ¹ì„ ì‚¬ìš©í•˜ì‹ì‹œìš”. (Ctrl+X).",
PasteErrorCopy : "브ë¼ìš°ì €ì˜ ë³´ì•ˆì„¤ì •ë•Œë¬¸ì— ë³µì‚¬í•˜ê¸° ê¸°ëŠ¥ì„ ì‹¤í–‰í• ìˆ˜ 없습니다. 키보드 ëª…ë ¹ì„ ì‚¬ìš©í•˜ì‹ì‹œìš”. (Ctrl+C).",
@@ -350,6 +356,7 @@ PasteAsText : "í…스트로 붙여넣기",
PasteFromWord : "MS Word 형ì‹ì—ì„œ 붙여넣기",
DlgPasteMsg2 : "í‚¤ë³´ë“œì˜ (<STRONG>Ctrl+V</STRONG>) 를 ì´ìš©í•´ì„œ ìƒìžì•ˆì— ë¶™ì—¬ë„£ê³ <STRONG>OK</STRONG> 를 누르세요.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "í°íŠ¸ ì„¤ì • 무시",
DlgPasteRemoveStyles : "ìŠ¤íƒ€ì¼ ì •ì˜ ì œê±°",
DlgPasteCleanBox : "글ìƒìž ì œê±°",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "브ë¼ìš°ì € ì •ë³´",
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "ë²„ì „",
DlgAboutInfo : "For further information go to"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/lt.js b/editor/editor/lang/lt.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: lt.js
- * Lithuanian language file.
- *
- * File Authors:
- * Tauras Paliulis (tauras.paliulis@tauras.com)
+ *
+ * Lithuanian language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Nuoroda",
InsertLink : "Įterpti/taisyti nuorodą",
RemoveLink : "Panaikinti nuorodÄ…",
Anchor : "Įterpti/modifikuoti žymę",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Vaizdas",
InsertImage : "Įterpti/taisyti vaizdą",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "Lygiuoti dešinę",
BlockJustify : "Lygiuoti abi puses",
DecreaseIndent : "Sumažinti įtrauką",
IncreaseIndent : "Padidinti įtrauką",
+Blockquote : "Blockquote", //MISSING
Undo : "Atšaukti",
Redo : "Atstatyti",
NumberedListLbl : "Numeruotas sąrašas",
@@ -107,20 +105,27 @@ SelectionField : "Atrankos laukas",
ImageButton : "Vaizdinis mygtukas",
FitWindow : "Maximize the editor size", //MISSING
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Taisyti nuorodÄ…",
CellCM : "Cell", //MISSING
RowCM : "Row", //MISSING
ColumnCM : "Column", //MISSING
-InsertRow : "Įterpti eilutę",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Å alinti eilutes",
-InsertColumn : "Įterpti stulpelį",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Å alinti stulpelius",
-InsertCell : "Įterpti langelį",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Å alinti langelius",
MergeCells : "Sujungti langelius",
-SplitCell : "Skaidyti langelius",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Å alinti lentelÄ™",
CellProperties : "Langelio savybÄ—s",
TableProperties : "LentelÄ—s savybÄ—s",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Atrankos lauko savybÄ—s",
TextareaProp : "Teksto srities savybÄ—s",
FormProp : "Formos savybÄ—s",
-FontFormats : "Normalus;Formuotas;Kreipinio;Antraštinis 1;Antraštinis 2;Antraštinis 3;Antraštinis 4;Antraštinis 5;Antraštinis 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Normalus;Formuotas;Kreipinio;Antraštinis 1;Antraštinis 2;Antraštinis 3;Antraštinis 4;Antraštinis 5;Antraštinis 6",
// Alerts and Messages
ProcessingXHTML : "Apdorojamas XHTML. Prašome palaukti...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Pasirinkite žymę",
DlgLnkAnchorByName : "Pagal žymės vardą",
DlgLnkAnchorById : "Pagal žymės Id",
-DlgLnkNoAnchors : "<Šiame dokumente žymių nėra>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Šiame dokumente žymių nėra)",
DlgLnkEMail : "El.pašto adresas",
DlgLnkEMailSubject : "Žinutės tema",
DlgLnkEMailBody : "Žinutės turinys",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Fono spalva",
DlgCellBorderColor : "RÄ—melio spalva",
DlgCellBtnSelect : "Pažymėti...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Paieška",
DlgFindFindBtn : "Surasti",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Pakeisti viskÄ…",
DlgReplaceWordChk : "Atitikti pilną žodį",
// Paste Operations / Dialog
-PasteErrorPaste : "Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti įdėjimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl+V).",
PasteErrorCut : "Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti iškirpimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl+X).",
PasteErrorCopy : "Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti kopijavimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Įdėti kaip gryną tekstą",
PasteFromWord : "Įdėti iš Word",
DlgPasteMsg2 : "Žemiau esanÄiame įvedimo lauke įdÄ—kite tekstÄ…, naudodami klaviatÅ«rÄ… (<STRONG>Ctrl+V</STRONG>) ir spÅ«stelkite mygtukÄ… <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Ignoruoti šriftų nustatymus",
DlgPasteRemoveStyles : "Pašalinti stilių nustatymus",
DlgPasteCleanBox : "Trinti įvedimo lauką",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Naršyklės informacija",
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "versija",
DlgAboutInfo : "PapildomÄ… informacijÄ… galima gauti"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/lv.js b/editor/editor/lang/lv.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: lv.js
- * Latvian language file.
- *
- * File Authors:
- * JÄnis Kļaviņš (janis@4id.lv)
- * Slowmo (slowmo@inbox.lv)
+ *
+ * Latvian language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "Hipersaite",
InsertLink : "Ievietot/Labot hipersaiti",
RemoveLink : "Noņemt hipersaiti",
Anchor : "Ievietot/Labot iezīmi",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Attēls",
InsertImage : "Ievietot/Labot Attēlu",
InsertFlashLbl : "Flash",
@@ -75,6 +71,7 @@ RightJustify : "IzlÄ«dzinÄt pa labi",
BlockJustify : "IzlÄ«dzinÄt malas",
DecreaseIndent : "SamazinÄt atkÄpi",
IncreaseIndent : "PalielinÄt atkÄpi",
+Blockquote : "Blockquote", //MISSING
Undo : "Atcelt",
Redo : "AtkÄrtot",
NumberedListLbl : "Numurēts saraksts",
@@ -108,20 +105,27 @@ SelectionField : "Iezīmēšanas lauks",
ImageButton : "Attēlpoga",
FitWindow : "Maksimizēt redaktora izmēru",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Labot hipersaiti",
CellCM : "Å Å«na",
RowCM : "Rinda",
ColumnCM : "Kolonna",
-InsertRow : "Ievietot rindu",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Dzēst rindas",
-InsertColumn : "Ievietot kolonnu",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Dzēst kolonnas",
-InsertCell : "Ievietot rūtiņu",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Dzēst rūtiņas",
MergeCells : "Apvienot rūtiņas",
-SplitCell : "Sadalīt rūtiņu",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Dzēst tabulu",
CellProperties : "Rūtiņas īpašības",
TableProperties : "Tabulas īpašības",
@@ -139,7 +143,7 @@ SelectionFieldProp : "Iezīmēšanas lauka īpašības",
TextareaProp : "Teksta laukuma īpašības",
FormProp : "Formas īpašības",
-FontFormats : "NormÄls teksts;FormatÄ“ts teksts;Adrese;Virsraksts 1;Virsraksts 2;Virsraksts 3;Virsraksts 4;Virsraksts 5;Virsraksts 6;Rindkopa (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "NormÄls teksts;FormatÄ“ts teksts;Adrese;Virsraksts 1;Virsraksts 2;Virsraksts 3;Virsraksts 4;Virsraksts 5;Virsraksts 6;Rindkopa (DIV)",
// Alerts and Messages
ProcessingXHTML : "Tiek apstrÄdÄts XHTML. LÅ«dzu uzgaidiet...",
@@ -234,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Izvēlēties iezīmi",
DlgLnkAnchorByName : "Pēc iezīmes nosaukuma",
DlgLnkAnchorById : "PÄ“c elementa ID",
-DlgLnkNoAnchors : "<Å ajÄ dokumentÄ nav iezÄ«mju>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Å ajÄ dokumentÄ nav iezÄ«mju)",
DlgLnkEMail : "E-pasta adrese",
DlgLnkEMailSubject : "Ziņas tēma",
DlgLnkEMailBody : "Ziņas saturs",
@@ -327,6 +331,9 @@ DlgCellBackColor : "Fona krÄsa",
DlgCellBorderColor : "RÄmja krÄsa",
DlgCellBtnSelect : "Iezīmē...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "MeklÄ“tÄjs",
DlgFindFindBtn : "Meklēt",
@@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "Aizvietot visu",
DlgReplaceWordChk : "JÄsakrÄ«t pilnÄ«bÄ",
// Paste Operations / Dialog
-PasteErrorPaste : "JÅ«su pÄrlÅ«kprogrammas droÅ¡Ä«bas iestatÄ«jumi nepieļauj editoram automÄtiski veikt ievietoÅ¡anas darbÄ«bu. LÅ«dzu, izmantojiet (Ctrl+V), lai veiktu Å¡o darbÄ«bu.",
PasteErrorCut : "JÅ«su pÄrlÅ«kprogrammas droÅ¡Ä«bas iestatÄ«jumi nepieļauj editoram automÄtiski veikt izgrieÅ¡anas darbÄ«bu. LÅ«dzu, izmantojiet (Ctrl+X, lai veiktu Å¡o darbÄ«bu.",
PasteErrorCopy : "JÅ«su pÄrlÅ«kprogrammas droÅ¡Ä«bas iestatÄ«jumi nepieļauj editoram automÄtiski veikt kopÄ“Å¡anas darbÄ«bu. LÅ«dzu, izmantojiet (Ctrl+C), lai veiktu Å¡o darbÄ«bu.",
@@ -350,6 +356,7 @@ PasteAsText : "Ievietot kÄ vienkÄrÅ¡u tekstu",
PasteFromWord : "Ievietot no Worda",
DlgPasteMsg2 : "LÅ«dzu, ievietojiet tekstu Å¡ajÄ laukumÄ, izmantojot klaviatÅ«ru (<STRONG>Ctrl+V</STRONG>) un apstipriniet ar <STRONG>DarÄ«ts!</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "IgnorÄ“t iepriekÅ¡ norÄdÄ«tos fontus",
DlgPasteRemoveStyles : "Noņemt norÄdÄ«tos stilus",
DlgPasteCleanBox : "ApstrÄdÄt laukuma saturu",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "InformÄcija par pÄrlÅ«kprogrammu",
DlgAboutLicenseTab : "Licence",
DlgAboutVersion : "versija",
DlgAboutInfo : "Papildus informÄcija ir pieejama"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/mn.js b/editor/editor/lang/mn.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: mn.js
- * Mongolian language file.
- *
- * File Authors:
- * Lkamtseren ODONBAATAR (odonbaatarl@yahoo.com)
+ *
+ * Mongolian language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Линк",
InsertLink : "Линк Оруулах/ЗаÑварлах",
RemoveLink : "Линк авч хаÑÑ…",
Anchor : "Insert/Edit Anchor", //MISSING
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Зураг",
InsertImage : "Зураг Оруулах/ЗаÑварлах",
InsertFlashLbl : "Flash", //MISSING
@@ -74,6 +71,7 @@ RightJustify : "Баруун талд байрлуулах",
BlockJustify : "Блок Ñ…ÑлбÑÑ€ÑÑÑ€ байрлуулах",
DecreaseIndent : "Догол мөр нÑмÑÑ…",
IncreaseIndent : "Догол мөр хаÑах",
+Blockquote : "Blockquote", //MISSING
Undo : "Хүчингүй болгох",
Redo : "Өмнөх үйлдлÑÑ ÑÑргÑÑÑ…",
NumberedListLbl : "ДугаарлагдÑан жагÑаалт",
@@ -107,20 +105,27 @@ SelectionField : "Selection Field", //MISSING
ImageButton : "Image Button", //MISSING
FitWindow : "Maximize the editor size", //MISSING
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð·Ð°Ñварлах",
CellCM : "Cell", //MISSING
RowCM : "Row", //MISSING
ColumnCM : "Column", //MISSING
-InsertRow : "Мөр оруулах",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Мөр уÑтгах",
-InsertColumn : "Багана оруулах",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Багана уÑтгах",
-InsertCell : "Ðүх оруулах",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Ðүх уÑтгах",
MergeCells : "Ðүх нÑгтÑÑ…",
-SplitCell : "Ðүх туÑгайрлах",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Delete Table", //MISSING
CellProperties : "ХооÑон зайн шинж чанар",
TableProperties : "Ð¥Ò¯ÑнÑгт",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Selection Field Properties", //MISSING
TextareaProp : "Textarea Properties", //MISSING
FormProp : "Form Properties", //MISSING
-FontFormats : "Ð¥Ñвийн;Formatted;ХаÑг;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Ð¥Ñвийн;Formatted;ХаÑг;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",
// Alerts and Messages
ProcessingXHTML : "XHTML үйл Ñвц Ñвагдаж байна. ХүлÑÑÐ½Ñ Ò¯Ò¯...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ñонгох",
DlgLnkAnchorByName : "ХолбооÑын нÑÑ€ÑÑÑ€",
DlgLnkAnchorById : "ÐлемÑнт Id-гаар",
-DlgLnkNoAnchors : "<Баримт бичиг холбооÑгүй байна>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Баримт бичиг холбооÑгүй байна)",
DlgLnkEMail : "E-Mail ХаÑг",
DlgLnkEMailSubject : "Message Subject",
DlgLnkEMailBody : "Message-ийн агуулга",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Фонны өнгө",
DlgCellBorderColor : "ХүрÑÑний өнгө",
DlgCellBtnSelect : "Сонго...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Хайх",
DlgFindFindBtn : "Хайх",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Бүгдийг нь Солих",
DlgReplaceWordChk : "ТÑнцÑÑ… бүтÑн үг",
// Paste Operations / Dialog
-PasteErrorPaste : "Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар буулгах үйлдÑлийг зөвшөөрөхгүй байна. (Ctrl+V) товчны хоÑлолыг ашиглана уу.",
PasteErrorCut : "Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хайчлах үйлдÑлийг зөвшөөрөхгүй байна. (Ctrl+X) товчны хоÑлолыг ашиглана уу.",
PasteErrorCopy : "Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хуулах үйлдÑлийг зөвшөөрөхгүй байна. (Ctrl+C) товчны хоÑлолыг ашиглана уу.",
@@ -349,6 +356,7 @@ PasteAsText : "Plain Text-ÑÑÑ Ð±ÑƒÑƒÐ»Ð³Ð°Ñ…",
PasteFromWord : "Word-Ð¾Ð¾Ñ Ð±ÑƒÑƒÐ»Ð³Ð°Ñ…",
DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.", //MISSING
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Ignore Font Face definitions", //MISSING
DlgPasteRemoveStyles : "Remove Styles definitions", //MISSING
DlgPasteCleanBox : "Clean Up Box", //MISSING
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Browser Info", //MISSING
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "Хувилбар",
DlgAboutInfo : "ÐœÑдÑÑллÑÑÑ€ туÑлах"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/ms.js b/editor/editor/lang/ms.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: ms.js
- * Malay language file.
- *
- * File Authors:
- * Fairul Izham Mohd Mokhlas (eg86@hotmail.com)
+ *
+ * Malay language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Sambungan",
InsertLink : "Masukkan/Sunting Sambungan",
RemoveLink : "Buang Sambungan",
Anchor : "Masukkan/Sunting Pautan",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Gambar",
InsertImage : "Masukkan/Sunting Gambar",
InsertFlashLbl : "Flash", //MISSING
@@ -74,6 +71,7 @@ RightJustify : "Jajaran Kanan",
BlockJustify : "Jajaran Blok",
DecreaseIndent : "Kurangkan Inden",
IncreaseIndent : "Tambahkan Inden",
+Blockquote : "Blockquote", //MISSING
Undo : "Batalkan",
Redo : "Ulangkan",
NumberedListLbl : "Senarai bernombor",
@@ -107,20 +105,27 @@ SelectionField : "Field Pilihan",
ImageButton : "Butang Bergambar",
FitWindow : "Maximize the editor size", //MISSING
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Sunting Sambungan",
CellCM : "Cell", //MISSING
RowCM : "Row", //MISSING
ColumnCM : "Column", //MISSING
-InsertRow : "Masukkan Baris",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Buangkan Baris",
-InsertColumn : "Masukkan Lajur",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Buangkan Lajur",
-InsertCell : "Masukkan Sel",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Buangkan Sel-sel",
MergeCells : "Cantumkan Sel-sel",
-SplitCell : "Bahagikan Sel",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Delete Table", //MISSING
CellProperties : "Ciri-ciri Sel",
TableProperties : "Ciri-ciri Jadual",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Ciri-ciri Selection Field",
TextareaProp : "Ciri-ciri Textarea",
FormProp : "Ciri-ciri Borang",
-FontFormats : "Normal;Telah Diformat;Alamat;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Perenggan (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Telah Diformat;Alamat;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Perenggan (DIV)",
// Alerts and Messages
ProcessingXHTML : "Memproses XHTML. Sila tunggu...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Sila pilih pautan",
DlgLnkAnchorByName : "dengan menggunakan nama pautan",
DlgLnkAnchorById : "dengan menggunakan ID elemen",
-DlgLnkNoAnchors : "<Tiada pautan terdapat dalam dokumen ini>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Tiada pautan terdapat dalam dokumen ini)",
DlgLnkEMail : "Alamat E-Mail",
DlgLnkEMailSubject : "Subjek Mesej",
DlgLnkEMailBody : "Isi Kandungan Mesej",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Warna Latarbelakang",
DlgCellBorderColor : "Warna Border",
DlgCellBtnSelect : "Pilih...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Carian",
DlgFindFindBtn : "Cari",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Ganti semua",
DlgReplaceWordChk : "Padana Keseluruhan perkataan",
// Paste Operations / Dialog
-PasteErrorPaste : "Keselamatan perisian browser anda tidak membenarkan operasi tampalan text/imej. Sila gunakan papan kekunci (Ctrl+V).",
PasteErrorCut : "Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl+X).",
PasteErrorCopy : "Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Tampal sebagai text biasa",
PasteFromWord : "Tampal dari perisian \"Word\"",
DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.", //MISSING
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Ignore Font Face definitions", //MISSING
DlgPasteRemoveStyles : "Remove Styles definitions", //MISSING
DlgPasteCleanBox : "Clean Up Box", //MISSING
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Maklumat Perisian Browser",
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "versi",
DlgAboutInfo : "Untuk maklumat lanjut sila pergi ke"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/nb.js b/editor/editor/lang/nb.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: nb.js
- * Norwegian Bokmål language file.
- *
- * File Authors:
- * Martin Kronstad (www.siteman.no) (martin.kronstad@gmail.com)
+ *
+ * Norwegian Bokmål language file.
*/
var FCKLang =
@@ -43,12 +39,13 @@ Paste : "Lim inn",
PasteText : "Lim inn som ren tekst",
PasteWord : "Lim inn fra Word",
Print : "Skriv ut",
-SelectAll : "Velg alle",
+SelectAll : "Merk alt",
RemoveFormat : "Fjern format",
InsertLinkLbl : "Lenke",
InsertLink : "Sett inn/Rediger lenke",
RemoveLink : "Fjern lenke",
Anchor : "Sett inn/Rediger anker",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Bilde",
InsertImage : "Sett inn/Rediger bilde",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "Høyrejuster",
BlockJustify : "Blokkjuster",
DecreaseIndent : "Senk nivå",
IncreaseIndent : "Øk nivå",
+Blockquote : "Blockquote", //MISSING
Undo : "Angre",
Redo : "Gjør om",
NumberedListLbl : "Numrert liste",
@@ -107,20 +105,27 @@ SelectionField : "Dropdown meny",
ImageButton : "Bildeknapp",
FitWindow : "Maksimer størrelsen på redigeringsverktøyet",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Rediger lenke",
CellCM : "Celle",
RowCM : "Rader",
ColumnCM : "Kolonne",
-InsertRow : "Sett inn rad",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Slett rader",
-InsertColumn : "Sett inn kolonne",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Slett kolonner",
-InsertCell : "Sett inn celle",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Slett celler",
MergeCells : "Slå sammen celler",
-SplitCell : "Splitt celler",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Slett tabell",
CellProperties : "Celleegenskaper",
TableProperties : "Tabellegenskaper",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Dropdown menyegenskaper",
TextareaProp : "Tekstfeltegenskaper",
FormProp : "Skjemaegenskaper",
-FontFormats : "Normal;Formatert;Adresse;Tittel 1;Tittel 2;Tittel 3;Tittel 4;Tittel 5;Tittel 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatert;Adresse;Tittel 1;Tittel 2;Tittel 3;Tittel 4;Tittel 5;Tittel 6;Normal (DIV)",
// Alerts and Messages
ProcessingXHTML : "Lager XHTML. Vennligst vent...",
@@ -225,16 +230,16 @@ DlgLnkTargetTab : "MÃ¥l",
DlgLnkType : "Lenketype",
DlgLnkTypeURL : "URL",
-DlgLnkTypeAnchor : "Lenke til bokmerke i teksten",
-DlgLnkTypeEMail : "E-Post",
+DlgLnkTypeAnchor : "Lenke til anker i teksten",
+DlgLnkTypeEMail : "E-post",
DlgLnkProto : "Protokoll",
DlgLnkProtoOther : "<annet>",
DlgLnkURL : "URL",
DlgLnkAnchorSel : "Velg ett anker",
DlgLnkAnchorByName : "Anker etter navn",
DlgLnkAnchorById : "Element etter ID",
-DlgLnkNoAnchors : "<Ingen anker i dokumentet>", //REVIEW : Change < and > with ( and )
-DlgLnkEMail : "E-Post Addresse",
+DlgLnkNoAnchors : "(Ingen anker i dokumentet)",
+DlgLnkEMail : "E-postadresse",
DlgLnkEMailSubject : "Meldingsemne",
DlgLnkEMailBody : "Melding",
DlgLnkUpload : "Last opp",
@@ -291,7 +296,7 @@ DlgTableAlignLeft : "Venstre",
DlgTableAlignCenter : "Midtjuster",
DlgTableAlignRight : "Høyre",
DlgTableWidth : "Bredde",
-DlgTableWidthPx : "pixler",
+DlgTableWidthPx : "piksler",
DlgTableWidthPc : "prosent",
DlgTableHeight : "Høyde",
DlgTableCellSpace : "Celle marg",
@@ -300,9 +305,9 @@ DlgTableCaption : "Tittel",
DlgTableSummary : "Sammendrag",
// Table Cell Dialog
-DlgCellTitle : "Celle egenskaper",
+DlgCellTitle : "Celleegenskaper",
DlgCellWidth : "Bredde",
-DlgCellWidthPx : "pixeler",
+DlgCellWidthPx : "piksler",
DlgCellWidthPc : "prosent",
DlgCellHeight : "Høyde",
DlgCellWordWrap : "Tekstbrytning",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Bakgrunnsfarge",
DlgCellBorderColor : "Rammefarge",
DlgCellBtnSelect : "Velg...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Finn",
DlgFindFindBtn : "Finn",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Erstatt alle",
DlgReplaceWordChk : "Finn hele ordet",
// Paste Operations / Dialog
-PasteErrorPaste : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk innliming av tekst. Vennligst brukt snareveien (Ctrl+V).",
PasteErrorCut : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst brukt snareveien (Ctrl+X).",
PasteErrorCopy : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst brukt snareveien (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Lim inn som ren tekst",
PasteFromWord : "Lim inn fra word",
DlgPasteMsg2 : "Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Fjern skrifttyper",
DlgPasteRemoveStyles : "Fjern stildefinisjoner",
DlgPasteCleanBox : "Tøm boksen",
@@ -504,5 +512,5 @@ DlgAboutAboutTab : "Om",
DlgAboutBrowserInfoTab : "Nettleserinfo",
DlgAboutLicenseTab : "Lisens",
DlgAboutVersion : "versjon",
-DlgAboutInfo : "Oversatt av Siteman AS<br /><a target=\"_blank\" href=\"http://www.siteman.no\">www.siteman.no</a><br /><br />For mer informasjon gå til"
-};-
\ No newline at end of file
+DlgAboutInfo : "For further information go to" //MISSING
+};
diff --git a/editor/editor/lang/nl.js b/editor/editor/lang/nl.js
@@ -1,30 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: nl.js
- * Dutch language file.
- *
- * File Authors:
- * Bram Crins (bcrins@realdesign.nl)
- * Aaron van Geffen (aaron@aaronweb.net)
- * John van der Kamp (j.vdkamp@connectux.com)
+ *
+ * Dutch language file.
*/
var FCKLang =
@@ -51,6 +45,7 @@ InsertLinkLbl : "Link",
InsertLink : "Link invoegen/wijzigen",
RemoveLink : "Link verwijderen",
Anchor : "Interne link",
+AnchorDelete : "Anker verwijderen",
InsertImageLbl : "Afbeelding",
InsertImage : "Afbeelding invoegen/wijzigen",
InsertFlashLbl : "Flash",
@@ -58,7 +53,7 @@ InsertFlash : "Flash invoegen/wijzigen",
InsertTableLbl : "Tabel",
InsertTable : "Tabel invoegen/wijzigen",
InsertLineLbl : "Lijn",
-InsertLine : "Invoegen horizontale lijn",
+InsertLine : "Horizontale lijn invoegen",
InsertSpecialCharLbl: "Speciale tekens",
InsertSpecialChar : "Speciaal teken invoegen",
InsertSmileyLbl : "Smiley",
@@ -76,6 +71,7 @@ RightJustify : "Rechts uitlijnen",
BlockJustify : "Uitvullen",
DecreaseIndent : "Inspringen verkleinen",
IncreaseIndent : "Inspringen vergroten",
+Blockquote : "Citaatblok",
Undo : "Ongedaan maken",
Redo : "Opnieuw uitvoeren",
NumberedListLbl : "Genummerde lijst",
@@ -109,20 +105,27 @@ SelectionField : "Selectieveld",
ImageButton : "Afbeeldingsknop",
FitWindow : "De editor maximaliseren",
+ShowBlocks : "Toon blokken",
// Context Menu
EditLink : "Link wijzigen",
CellCM : "Cel",
RowCM : "Rij",
ColumnCM : "Kolom",
-InsertRow : "Rij invoegen",
+InsertRowAfter : "Voeg rij in achter",
+InsertRowBefore : "Voeg rij in voor",
DeleteRows : "Rijen verwijderen",
-InsertColumn : "Kolom invoegen",
+InsertColumnAfter : "Voeg kolom in achter",
+InsertColumnBefore : "Voeg kolom in voor",
DeleteColumns : "Kolommen verwijderen",
-InsertCell : "Cel",
+InsertCellAfter : "Voeg cel in achter",
+InsertCellBefore : "Voeg cel in voor",
DeleteCells : "Cellen verwijderen",
MergeCells : "Cellen samenvoegen",
-SplitCell : "Cellen splitsen",
+MergeRight : "Voeg samen naar rechts",
+MergeDown : "Voeg samen naar beneden",
+HorizontalSplitCell : "Splits cellen horizontaal",
+VerticalSplitCell : "Splits cellen verticaal",
TableDelete : "Tabel verwijderen",
CellProperties : "Eigenschappen cel",
TableProperties : "Eigenschappen tabel",
@@ -140,7 +143,7 @@ SelectionFieldProp : "Eigenschappen selectieveld",
TextareaProp : "Eigenschappen tekstvak",
FormProp : "Eigenschappen formulier",
-FontFormats : "Normaal;Met opmaak;Adres;Kop 1;Kop 2;Kop 3;Kop 4;Kop 5;Kop 6;Normaal (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normaal;Met opmaak;Adres;Kop 1;Kop 2;Kop 3;Kop 4;Kop 5;Kop 6;Normaal (DIV)",
// Alerts and Messages
ProcessingXHTML : "Bezig met verwerken XHTML. Even geduld aub...",
@@ -235,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Kies een interne link",
DlgLnkAnchorByName : "Op naam interne link",
DlgLnkAnchorById : "Op kenmerk interne link",
-DlgLnkNoAnchors : "(Geen interne links in document gevonden)", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Geen interne links in document gevonden)",
DlgLnkEMail : "E-mailadres",
DlgLnkEMailSubject : "Onderwerp bericht",
DlgLnkEMailBody : "Inhoud bericht",
@@ -328,6 +331,9 @@ DlgCellBackColor : "Achtergrondkleur",
DlgCellBorderColor : "Randkleur",
DlgCellBtnSelect : "Selecteren...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Zoeken en vervangen",
+
// Find Dialog
DlgFindTitle : "Zoeken",
DlgFindFindBtn : "Zoeken",
@@ -343,14 +349,14 @@ DlgReplaceReplAllBtn : "Alles vervangen",
DlgReplaceWordChk : "Hele woord moet voorkomen",
// Paste Operations / Dialog
-PasteErrorPaste : "De beveiligingsinstelling van de browser verhinderen het automatisch plakken. Gebruik de sneltoets Ctrl+V van het toetsenbord.",
PasteErrorCut : "De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl+X van het toetsenbord.",
PasteErrorCopy : "De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl+C van het toetsenbord.",
PasteAsText : "Plakken als platte tekst",
PasteFromWord : "Plakken als Word-gegevens",
-DlgPasteMsg2 : "Plak de tekst in het volgende vak gebruik makend van je toetstenbord (<STRONG>Ctrl+V</STRONG>) en klik op <STRONG>OK</STRONG>.",
+DlgPasteMsg2 : "Plak de tekst in het volgende vak gebruik makend van je toetstenbord (<strong>Ctrl+V</strong>) en klik op <strong>OK</strong>.",
+DlgPasteSec : "Door de beveiligingsinstellingen van uw browser is het niet mogelijk om direct vanuit het klembord in de editor te plakken. Middels opnieuw plakken in dit venster kunt u de tekst alsnog plakken in de editor.",
DlgPasteIgnoreFont : "Negeer \"Font Face\"-definities",
DlgPasteRemoveStyles : "Verwijder \"Style\"-definities",
DlgPasteCleanBox : "Vak opschonen",
@@ -507,4 +513,4 @@ DlgAboutBrowserInfoTab : "Browserinformatie",
DlgAboutLicenseTab : "Licentie",
DlgAboutVersion : "Versie",
DlgAboutInfo : "Voor meer informatie ga naar "
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/no.js b/editor/editor/lang/no.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: no.js
- * Norwegian language file.
- *
- * File Authors:
- * Martin Kronstad (www.siteman.no) (martin.kronstad@gmail.com)
+ *
+ * Norwegian language file.
*/
var FCKLang =
@@ -43,12 +39,13 @@ Paste : "Lim inn",
PasteText : "Lim inn som ren tekst",
PasteWord : "Lim inn fra Word",
Print : "Skriv ut",
-SelectAll : "Velg alle",
+SelectAll : "Merk alt",
RemoveFormat : "Fjern format",
InsertLinkLbl : "Lenke",
InsertLink : "Sett inn/Rediger lenke",
RemoveLink : "Fjern lenke",
Anchor : "Sett inn/Rediger anker",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Bilde",
InsertImage : "Sett inn/Rediger bilde",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "Høyrejuster",
BlockJustify : "Blokkjuster",
DecreaseIndent : "Senk nivå",
IncreaseIndent : "Øk nivå",
+Blockquote : "Blockquote", //MISSING
Undo : "Angre",
Redo : "Gjør om",
NumberedListLbl : "Numrert liste",
@@ -107,20 +105,27 @@ SelectionField : "Dropdown meny",
ImageButton : "Bildeknapp",
FitWindow : "Maksimer størrelsen på redigeringsverktøyet",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Rediger lenke",
CellCM : "Celle",
RowCM : "Rader",
ColumnCM : "Kolonne",
-InsertRow : "Sett inn rad",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Slett rader",
-InsertColumn : "Sett inn kolonne",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Slett kolonner",
-InsertCell : "Sett inn celle",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Slett celler",
MergeCells : "Slå sammen celler",
-SplitCell : "Splitt celler",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Slett tabell",
CellProperties : "Celleegenskaper",
TableProperties : "Tabellegenskaper",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Dropdown menyegenskaper",
TextareaProp : "Tekstfeltegenskaper",
FormProp : "Skjemaegenskaper",
-FontFormats : "Normal;Formatert;Adresse;Tittel 1;Tittel 2;Tittel 3;Tittel 4;Tittel 5;Tittel 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatert;Adresse;Tittel 1;Tittel 2;Tittel 3;Tittel 4;Tittel 5;Tittel 6;Normal (DIV)",
// Alerts and Messages
ProcessingXHTML : "Lager XHTML. Vennligst vent...",
@@ -225,16 +230,16 @@ DlgLnkTargetTab : "MÃ¥l",
DlgLnkType : "Lenketype",
DlgLnkTypeURL : "URL",
-DlgLnkTypeAnchor : "Lenke til bokmerke i teksten",
-DlgLnkTypeEMail : "E-Post",
+DlgLnkTypeAnchor : "Lenke til anker i teksten",
+DlgLnkTypeEMail : "E-post",
DlgLnkProto : "Protokoll",
DlgLnkProtoOther : "<annet>",
DlgLnkURL : "URL",
DlgLnkAnchorSel : "Velg ett anker",
DlgLnkAnchorByName : "Anker etter navn",
DlgLnkAnchorById : "Element etter ID",
-DlgLnkNoAnchors : "<Ingen anker i dokumentet>", //REVIEW : Change < and > with ( and )
-DlgLnkEMail : "E-Post Addresse",
+DlgLnkNoAnchors : "(Ingen anker i dokumentet)",
+DlgLnkEMail : "E-postadresse",
DlgLnkEMailSubject : "Meldingsemne",
DlgLnkEMailBody : "Melding",
DlgLnkUpload : "Last opp",
@@ -291,7 +296,7 @@ DlgTableAlignLeft : "Venstre",
DlgTableAlignCenter : "Midtjuster",
DlgTableAlignRight : "Høyre",
DlgTableWidth : "Bredde",
-DlgTableWidthPx : "pixler",
+DlgTableWidthPx : "piksler",
DlgTableWidthPc : "prosent",
DlgTableHeight : "Høyde",
DlgTableCellSpace : "Celle marg",
@@ -300,9 +305,9 @@ DlgTableCaption : "Tittel",
DlgTableSummary : "Sammendrag",
// Table Cell Dialog
-DlgCellTitle : "Celle egenskaper",
+DlgCellTitle : "Celleegenskaper",
DlgCellWidth : "Bredde",
-DlgCellWidthPx : "pixeler",
+DlgCellWidthPx : "piksler",
DlgCellWidthPc : "prosent",
DlgCellHeight : "Høyde",
DlgCellWordWrap : "Tekstbrytning",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Bakgrunnsfarge",
DlgCellBorderColor : "Rammefarge",
DlgCellBtnSelect : "Velg...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Finn",
DlgFindFindBtn : "Finn",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Erstatt alle",
DlgReplaceWordChk : "Finn hele ordet",
// Paste Operations / Dialog
-PasteErrorPaste : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk innliming av tekst. Vennligst brukt snareveien (Ctrl+V).",
PasteErrorCut : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst brukt snareveien (Ctrl+X).",
PasteErrorCopy : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst brukt snareveien (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Lim inn som ren tekst",
PasteFromWord : "Lim inn fra word",
DlgPasteMsg2 : "Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Fjern skrifttyper",
DlgPasteRemoveStyles : "Fjern stildefinisjoner",
DlgPasteCleanBox : "Tøm boksen",
@@ -504,5 +512,5 @@ DlgAboutAboutTab : "Om",
DlgAboutBrowserInfoTab : "Nettleserinfo",
DlgAboutLicenseTab : "Lisens",
DlgAboutVersion : "versjon",
-DlgAboutInfo : "Oversatt av Siteman AS<br /><a target=\"_blank\" href=\"http://www.siteman.no\">www.siteman.no</a><br /><br />For mer informasjon gå til"
-};-
\ No newline at end of file
+DlgAboutInfo : "For further information go to" //MISSING
+};
diff --git a/editor/editor/lang/pl.js b/editor/editor/lang/pl.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: pl.js
- * Polish language file.
- *
- * File Authors:
- * Jakub Boesche (jboesche@gazeta.pl)
- * Maciej Bochynski (maciej.bochynski@lubman.pl)
+ *
+ * Polish language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "Hiperłącze",
InsertLink : "Wstaw/edytuj hiperłącze",
RemoveLink : "Usuń hiperłącze",
Anchor : "Wstaw/edytuj kotwicÄ™",
+AnchorDelete : "Usuń kotwicę",
InsertImageLbl : "Obrazek",
InsertImage : "Wstaw/edytuj obrazek",
InsertFlashLbl : "Flash",
@@ -75,6 +71,7 @@ RightJustify : "Wyrównaj do prawej",
BlockJustify : "Wyrównaj do lewej i prawej",
DecreaseIndent : "Zmniejsz wcięcie",
IncreaseIndent : "Zwiększ wcięcie",
+Blockquote : "Cytat",
Undo : "Cofnij",
Redo : "Ponów",
NumberedListLbl : "Lista numerowana",
@@ -98,30 +95,37 @@ PageBreakLbl : "Odstęp",
PageBreak : "Wstaw odstęp",
Form : "Formularz",
-Checkbox : "Checkbox",
-RadioButton : "Pole wyboru",
+Checkbox : "Pole wyboru (checkbox)",
+RadioButton : "Pole wyboru (radio)",
TextField : "Pole tekstowe",
Textarea : "Obszar tekstowy",
HiddenField : "Pole ukryte",
Button : "Przycisk",
SelectionField : "Lista wyboru",
-ImageButton : "Przycisk obrazek",
+ImageButton : "Przycisk-obrazek",
FitWindow : "Maksymalizuj rozmiar edytora",
+ShowBlocks : "Pokaż bloki",
// Context Menu
EditLink : "Edytuj hiperłącze",
CellCM : "Komórka",
RowCM : "Wiersz",
ColumnCM : "Kolumna",
-InsertRow : "Wstaw wiersz",
+InsertRowAfter : "Wstaw wiersz poniżej",
+InsertRowBefore : "Wstaw wiersz powyżej",
DeleteRows : "Usuń wiersze",
-InsertColumn : "Wstaw kolumnÄ™",
+InsertColumnAfter : "Wstaw kolumnÄ™ z prawej",
+InsertColumnBefore : "Wstaw kolumnÄ™ z lewej",
DeleteColumns : "Usuń kolumny",
-InsertCell : "Wstaw komórkę",
+InsertCellAfter : "Wstaw komórkę z prawej",
+InsertCellBefore : "Wstaw komórkę z lewej",
DeleteCells : "Usuń komórki",
MergeCells : "Połącz komórki",
-SplitCell : "Podziel komórkę",
+MergeRight : "Połącz z komórką z prawej",
+MergeDown : "Połącz z komórką poniżej",
+HorizontalSplitCell : "Podziel komórkę poziomo",
+VerticalSplitCell : "Podziel komórkę pionowo",
TableDelete : "Usuń tabelę",
CellProperties : "Właściwości komórki",
TableProperties : "Właściwości tabeli",
@@ -130,16 +134,16 @@ FlashProperties : "Właściwości elementu Flash",
AnchorProp : "Właściwości kotwicy",
ButtonProp : "Właściwości przycisku",
-CheckboxProp : "Checkbox - właściwości",
+CheckboxProp : "Właściwości pola wyboru (checkbox)",
HiddenFieldProp : "Właściwości pola ukrytego",
-RadioButtonProp : "Właściwości pola wyboru",
+RadioButtonProp : "Właściwości pola wyboru (radio)",
ImageButtonProp : "Właściwości przycisku obrazka",
TextFieldProp : "Właściwości pola tekstowego",
SelectionFieldProp : "Właściwości listy wyboru",
TextareaProp : "Właściwości obszaru tekstowego",
FormProp : "Właściwości formularza",
-FontFormats : "Normalny;Tekst sformatowany;Adres;Nagłówek 1;Nagłówek 2;Nagłówek 3;Nagłówek 4;Nagłówek 5;Nagłówek 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Normalny;Tekst sformatowany;Adres;Nagłówek 1;Nagłówek 2;Nagłówek 3;Nagłówek 4;Nagłówek 5;Nagłówek 6",
// Alerts and Messages
ProcessingXHTML : "Przetwarzanie XHTML. Proszę czekać...",
@@ -151,8 +155,8 @@ UnknownCommand : "Nieznana komenda \"%1\"",
NotImplemented : "Komenda niezaimplementowana",
UnknownToolbarSet : "Pasek narzędzi \"%1\" nie istnieje",
NoActiveX : "Ustawienia zabezpieczeń twojej przeglądarki mogą ograniczyć niektóre funkcje edytora. Musisz włączyć opcję \"Uruchamianie formantów Activex i dodatków plugin\". W przeciwnym wypadku mogą pojawiać się błędy.",
-BrowseServerBlocked : "Okno menadżera plików nie może zostać otwarte. Upewnij się, że wszystkie blokady popup są wyłączone.",
-DialogBlocked : "Nie można otworzyć okna dialogowego. Upewnij się, że wszystkie blokady popup są wyłączone.",
+BrowseServerBlocked : "Nie można otworzyć okno menadżera plików. Upewnij się, że wszystkie blokady wyskakujących okienek są wyłączone.",
+DialogBlocked : "Nie można otworzyć okna dialogowego. Upewnij się, że wszystkie blokady wyskakujących okienek są wyłączone.",
// Dialogs
DlgBtnOK : "OK",
@@ -165,7 +169,7 @@ DlgInfoTab : "Informacje",
DlgAlertUrl : "Proszę podać URL",
// General Dialogs Labels
-DlgGenNotSet : "<nieustawione>",
+DlgGenNotSet : "<nie ustawione>",
DlgGenId : "Id",
DlgGenLangDir : "Kierunek tekstu",
DlgGenLangDirLtr : "Od lewej do prawej (LTR)",
@@ -174,17 +178,17 @@ DlgGenLangCode : "Kod języka",
DlgGenAccessKey : "Klawisz dostępu",
DlgGenName : "Nazwa",
DlgGenTabIndex : "Indeks tabeli",
-DlgGenLongDescr : "Long Description URL",
-DlgGenClass : "Stylesheet Classes",
-DlgGenTitle : "Advisory Title",
-DlgGenContType : "Advisory Content Type",
-DlgGenLinkCharset : "Linked Resource Charset",
+DlgGenLongDescr : "Długi opis hiperłącza",
+DlgGenClass : "Nazwa klasy CSS",
+DlgGenTitle : "Opis obiektu docelowego",
+DlgGenContType : "Typ MIME obiektu docelowego",
+DlgGenLinkCharset : "Kodowanie znaków obiektu docelowego",
DlgGenStyle : "Styl",
// Image Dialog
DlgImgTitle : "Właściwości obrazka",
DlgImgInfoTab : "Informacje o obrazku",
-DlgImgBtnUpload : "Syślij",
+DlgImgBtnUpload : "Wyślij",
DlgImgURL : "Adres URL",
DlgImgUpload : "Wyślij",
DlgImgAlt : "Tekst zastępczy",
@@ -207,7 +211,7 @@ DlgImgAlignTextTop : "Do góry tekstu",
DlgImgAlignTop : "Do góry",
DlgImgPreview : "PodglÄ…d",
DlgImgAlertUrl : "Podaj adres obrazka.",
-DlgImgLinkTab : "Link",
+DlgImgLinkTab : "Hiperłącze",
// Flash Dialog
DlgFlashTitle : "Właściwości elementu Flash",
@@ -234,11 +238,11 @@ DlgLnkURL : "Adres URL",
DlgLnkAnchorSel : "Wybierz etykietÄ™",
DlgLnkAnchorByName : "Wg etykiety",
DlgLnkAnchorById : "Wg identyfikatora elementu",
-DlgLnkNoAnchors : "<W dokumencie nie zdefiniowano żadnych etykiet>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(W dokumencie nie zdefiniowano żadnych etykiet)",
DlgLnkEMail : "Adres e-mail",
DlgLnkEMailSubject : "Temat",
DlgLnkEMailBody : "Treść",
-DlgLnkUpload : "Upload",
+DlgLnkUpload : "Wyślij",
DlgLnkBtnUpload : "Wyślij",
DlgLnkTarget : "Cel",
@@ -267,7 +271,7 @@ DlgLnkPopTop : "Pozycja w pionie",
DlnLnkMsgNoUrl : "Podaj adres URL",
DlnLnkMsgNoEMail : "Podaj adres e-mail",
DlnLnkMsgNoAnchor : "Wybierz etykietÄ™",
-DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING
+DlnLnkMsgInvPopName : "Nazwa wyskakującego okienka musi zaczynać się od znaku alfanumerycznego i nie może zawierać spacji",
// Color Dialog
DlgColorTitle : "Wybierz kolor",
@@ -327,6 +331,9 @@ DlgCellBackColor : "Kolor tła",
DlgCellBorderColor : "Kolor ramki",
DlgCellBtnSelect : "Wybierz...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Znajdź i zamień",
+
// Find Dialog
DlgFindTitle : "Znajdź",
DlgFindFindBtn : "Znajdź",
@@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "ZastÄ…p wszystko",
DlgReplaceWordChk : "Całe słowa",
// Paste Operations / Dialog
-PasteErrorPaste : "Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wklejanie tekstu. Użyj skrótu klawiszowego Ctrl+V.",
PasteErrorCut : "Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl+X.",
PasteErrorCopy : "Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl+C.",
@@ -350,6 +356,7 @@ PasteAsText : "Wklej jako czysty tekst",
PasteFromWord : "Wklej z Worda",
DlgPasteMsg2 : "Proszę wkleić w poniższym polu używając klawiaturowego skrótu (<STRONG>Ctrl+V</STRONG>) i kliknąć <STRONG>OK</STRONG>.",
+DlgPasteSec : "Zabezpieczenia przeglądarki uniemożliwiają wklejenie danych bezpośrednio do edytora. Proszę dane wkleić ponownie w tym okienku.",
DlgPasteIgnoreFont : "Ignoruj definicje 'Font Face'",
DlgPasteRemoveStyles : "Usuń definicje Stylów",
DlgPasteCleanBox : "Wyczyść",
@@ -373,7 +380,7 @@ DlgSpellBtnIgnore : "Ignoruj",
DlgSpellBtnIgnoreAll : "Ignoruj wszystkie",
DlgSpellBtnReplace : "Zmień",
DlgSpellBtnReplaceAll : "Zmień wszystkie",
-DlgSpellBtnUndo : "Undo",
+DlgSpellBtnUndo : "Cofnij",
DlgSpellNoSuggestions : "- Brak sugestii -",
DlgSpellProgress : "Trwa sprawdzanie ...",
DlgSpellNoMispell : "Sprawdzanie zakończone: nie znaleziono błędów",
@@ -386,14 +393,14 @@ IeSpellDownload : "Słownik nie jest zainstalowany. Chcesz go ściągnąć?",
// Button Dialog
DlgButtonText : "Tekst (Wartość)",
DlgButtonType : "Typ",
-DlgButtonTypeBtn : "Button", //MISSING
-DlgButtonTypeSbm : "Submit", //MISSING
-DlgButtonTypeRst : "Reset", //MISSING
+DlgButtonTypeBtn : "Przycisk",
+DlgButtonTypeSbm : "Wyślij",
+DlgButtonTypeRst : "Wyzeruj",
// Checkbox and Radio Button Dialogs
DlgCheckboxName : "Nazwa",
DlgCheckboxValue : "Wartość",
-DlgCheckboxSelected : "Zaznaczony",
+DlgCheckboxSelected : "Zaznaczone",
// Form Dialog
DlgFormName : "Nazwa",
@@ -437,7 +444,7 @@ DlgHiddenValue : "Wartość",
// Bulleted List Dialog
BulletedListProp : "Właściwości listy punktowanej",
NumberedListProp : "Właściwości listy numerowanej",
-DlgLstStart : "Start", //MISSING
+DlgLstStart : "PoczÄ…tek",
DlgLstType : "Typ",
DlgLstTypeCircle : "Koło",
DlgLstTypeDisc : "Dysk",
@@ -460,18 +467,18 @@ DlgDocLangDirLTR : "Od lewej do prawej (LTR)",
DlgDocLangDirRTL : "Od prawej do lewej (RTL)",
DlgDocLangCode : "Kod języka",
DlgDocCharSet : "Kodowanie znaków",
-DlgDocCharSetCE : "Central European", //MISSING
-DlgDocCharSetCT : "Chinese Traditional (Big5)", //MISSING
-DlgDocCharSetCR : "Cyrillic", //MISSING
-DlgDocCharSetGR : "Greek", //MISSING
-DlgDocCharSetJP : "Japanese", //MISSING
-DlgDocCharSetKR : "Korean", //MISSING
-DlgDocCharSetTR : "Turkish", //MISSING
-DlgDocCharSetUN : "Unicode (UTF-8)", //MISSING
-DlgDocCharSetWE : "Western European", //MISSING
+DlgDocCharSetCE : "Åšrodkowoeuropejskie",
+DlgDocCharSetCT : "Chińskie tradycyjne (Big5)",
+DlgDocCharSetCR : "Cyrylica",
+DlgDocCharSetGR : "Greckie",
+DlgDocCharSetJP : "Japońskie",
+DlgDocCharSetKR : "Koreańskie",
+DlgDocCharSetTR : "Tureckie",
+DlgDocCharSetUN : "Unicode (UTF-8)",
+DlgDocCharSetWE : "Zachodnioeuropejskie",
DlgDocCharSetOther : "Inne kodowanie znaków",
-DlgDocDocType : "Nagłowek typu dokumentu",
+DlgDocDocType : "Nagłówek typu dokumentu",
DlgDocDocTypeOther : "Inny typ dokumentu",
DlgDocIncXHTML : "Dołącz deklarację XHTML",
DlgDocBgColor : "Kolor tła",
@@ -489,7 +496,7 @@ DlgDocMaBottom : "Dolny",
DlgDocMeIndex : "SÅ‚owa kluczowe (oddzielone przecinkami)",
DlgDocMeDescr : "Opis dokumentu",
DlgDocMeAuthor : "Autor",
-DlgDocMeCopy : "Copyright",
+DlgDocMeCopy : "Prawa autorskie",
DlgDocPreview : "PodglÄ…d",
// Templates Dialog
@@ -498,7 +505,7 @@ DlgTemplatesTitle : "Szablony zawartości",
DlgTemplatesSelMsg : "Wybierz szablon do otwarcia w edytorze<br>(obecna zawartość okna edytora zostanie utracona):",
DlgTemplatesLoading : "Åadowanie listy szablonów. ProszÄ™ czekać...",
DlgTemplatesNoTpl : "(Brak zdefiniowanych szablonów)",
-DlgTemplatesReplace : "Replace actual contents", //MISSING
+DlgTemplatesReplace : "Zastąp aktualną zawartość",
// About Dialog
DlgAboutAboutTab : "O ...",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "O przeglÄ…darce",
DlgAboutLicenseTab : "Licencja",
DlgAboutVersion : "wersja",
DlgAboutInfo : "Więcej informacji uzyskasz pod adresem"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/pt-br.js b/editor/editor/lang/pt-br.js
@@ -1,30 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: pt-br.js
- * Brazilian Portuguese language file.
- *
- * File Authors:
- * Carlos Alberto Tomatis Loth (carlos.loth@conectait.com.br)
- * GibaPhp (www.xoopstotal.com.br)
- * Francisco Ernesto Teixeira (fco_ernesto@yahoo.com.br)
+ *
+ * Brazilian Portuguese language file.
*/
var FCKLang =
@@ -51,6 +45,7 @@ InsertLinkLbl : "Hiperlink",
InsertLink : "Inserir/Editar Hiperlink",
RemoveLink : "Remover Hiperlink",
Anchor : "Inserir/Editar Âncora",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Figura",
InsertImage : "Inserir/Editar Figura",
InsertFlashLbl : "Flash",
@@ -76,6 +71,7 @@ RightJustify : "Alinhar Direita",
BlockJustify : "Justificado",
DecreaseIndent : "Diminuir Recuo",
IncreaseIndent : "Aumentar Recuo",
+Blockquote : "Blockquote", //MISSING
Undo : "Desfazer",
Redo : "Refazer",
NumberedListLbl : "Numeração",
@@ -109,20 +105,27 @@ SelectionField : "Caixa de Listagem",
ImageButton : "Botão de Imagem",
FitWindow : "Maximizar o tamanho do editor",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Editar Hiperlink",
CellCM : "Célula",
RowCM : "Linha",
ColumnCM : "Coluna",
-InsertRow : "Inserir Linha",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Remover Linhas",
-InsertColumn : "Inserir Coluna",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Remover Colunas",
-InsertCell : "Inserir Células",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Remover Células",
MergeCells : "Mesclar Células",
-SplitCell : "Dividir Célular",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Apagar Tabela",
CellProperties : "Formatar Célula",
TableProperties : "Formatar Tabela",
@@ -140,7 +143,7 @@ SelectionFieldProp : "Formatar Caixa de Listagem",
TextareaProp : "Formatar Ãrea de Texto",
FormProp : "Formatar Formulário",
-FontFormats : "Normal;Formatado;Endereço;TÃtulo 1;TÃtulo 2;TÃtulo 3;TÃtulo 4;TÃtulo 5;TÃtulo 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatado;Endereço;TÃtulo 1;TÃtulo 2;TÃtulo 3;TÃtulo 4;TÃtulo 5;TÃtulo 6",
// Alerts and Messages
ProcessingXHTML : "Processando XHTML. Por favor, aguarde...",
@@ -235,7 +238,7 @@ DlgLnkURL : "URL do hiperlink",
DlgLnkAnchorSel : "Selecione uma âncora",
DlgLnkAnchorByName : "Pelo Nome da âncora",
DlgLnkAnchorById : "Pelo Id do Elemento",
-DlgLnkNoAnchors : "(Não há âncoras disponÃveis neste documento)", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Não há âncoras disponÃveis neste documento)",
DlgLnkEMail : "Endereço E-Mail",
DlgLnkEMailSubject : "Assunto da Mensagem",
DlgLnkEMailBody : "Corpo da Mensagem",
@@ -328,6 +331,9 @@ DlgCellBackColor : "Cor do Plano de Fundo",
DlgCellBorderColor : "Cor da Borda",
DlgCellBtnSelect : "Selecionar...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Localizar...",
DlgFindFindBtn : "Localizar",
@@ -343,7 +349,6 @@ DlgReplaceReplAllBtn : "Substituir Tudo",
DlgReplaceWordChk : "Coincidir a palavra inteira",
// Paste Operations / Dialog
-PasteErrorPaste : "As configurações de segurança do seu navegador não permitem que o editor execute operações de colar automaticamente. Por favor, utilize o teclado para colar (Ctrl+V).",
PasteErrorCut : "As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl+X).",
PasteErrorCopy : "As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl+C).",
@@ -351,6 +356,7 @@ PasteAsText : "Colar como Texto sem Formatação",
PasteFromWord : "Colar do Word",
DlgPasteMsg2 : "Transfira o link usado no box usando o teclado com (<STRONG>Ctrl+V</STRONG>) e <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Ignorar definições de fonte",
DlgPasteRemoveStyles : "Remove definições de estilo",
DlgPasteCleanBox : "Limpar Box",
@@ -507,4 +513,4 @@ DlgAboutBrowserInfoTab : "Informações do Navegador",
DlgAboutLicenseTab : "Licença",
DlgAboutVersion : "versão",
DlgAboutInfo : "Para maiores informações visite"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/pt.js b/editor/editor/lang/pt.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: pt.js
- * Portuguese language file.
- *
- * File Authors:
- * Francisco Pereira (fjpereira@netcabo.pt)
+ *
+ * Portuguese language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Hiperligação",
InsertLink : "Inserir/Editar Hiperligação",
RemoveLink : "Eliminar Hiperligação",
Anchor : " Inserir/Editar Âncora",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Imagem",
InsertImage : "Inserir/Editar Imagem",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "Alinhar à Direita",
BlockJustify : "Justificado",
DecreaseIndent : "Diminuir Avanço",
IncreaseIndent : "Aumentar Avanço",
+Blockquote : "Blockquote", //MISSING
Undo : "Anular",
Redo : "Repetir",
NumberedListLbl : "Numeração",
@@ -107,20 +105,27 @@ SelectionField : "Caixa de Combinação",
ImageButton : "Botão de Imagem",
FitWindow : "Maximizar o tamanho do editor",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Editar Hiperligação",
CellCM : "Célula",
RowCM : "Linha",
ColumnCM : "Coluna",
-InsertRow : "Inserir Linha",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Eliminar Linhas",
-InsertColumn : "Inserir Coluna",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Eliminar Coluna",
-InsertCell : "Inserir Célula",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Eliminar Célula",
MergeCells : "Unir Células",
-SplitCell : "Dividir Célula",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Eliminar Tabela",
CellProperties : "Propriedades da Célula",
TableProperties : "Propriedades da Tabela",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Propriedades da Caixa de Combinação",
TextareaProp : "Propriedades da Ãrea de Texto",
FormProp : "Propriedades do Formulário",
-FontFormats : "Normal;Formatado;Endereço;TÃtulo 1;TÃtulo 2;TÃtulo 3;TÃtulo 4;TÃtulo 5;TÃtulo 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatado;Endereço;TÃtulo 1;TÃtulo 2;TÃtulo 3;TÃtulo 4;TÃtulo 5;TÃtulo 6",
// Alerts and Messages
ProcessingXHTML : "A Processar XHTML. Por favor, espere...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Seleccionar una referência",
DlgLnkAnchorByName : "Por Nome de Referência",
DlgLnkAnchorById : "Por ID de elemento",
-DlgLnkNoAnchors : "<Não há referências disponÃveis no documento>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Não há referências disponÃveis no documento)",
DlgLnkEMail : "Endereço de E-Mail",
DlgLnkEMailSubject : "TÃtulo de Mensagem",
DlgLnkEMailBody : "Corpo da Mensagem",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Cor do Fundo",
DlgCellBorderColor : "Cor do Limite",
DlgCellBtnSelect : "Seleccione...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Procurar",
DlgFindFindBtn : "Procurar",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Substituir Tudo",
DlgReplaceWordChk : "Coincidir com toda a palavra",
// Paste Operations / Dialog
-PasteErrorPaste : "A configuração de segurança do navegador não permite a execução automática de operações de colar. Por favor use o teclado (Ctrl+V).",
PasteErrorCut : "A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl+X).",
PasteErrorCopy : "A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Colar como Texto Simples",
PasteFromWord : "Colar do Word",
DlgPasteMsg2 : "Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl+V</STRONG>) e prima <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Ignorar da definições do Tipo de Letra ",
DlgPasteRemoveStyles : "Remover as definições de Estilos",
DlgPasteCleanBox : "Caixa de Limpeza",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Informação do Nevegador",
DlgAboutLicenseTab : "Licença",
DlgAboutVersion : "versão",
DlgAboutInfo : "Para mais informações por favor dirija-se a"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/ro.js b/editor/editor/lang/ro.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: ro.js
- * Romanian language file.
- *
- * File Authors:
- * Adrian Nicoara (nicoara@users.sourceforge.net)
- * Ionut Traian Popa
+ *
+ * Romanian language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "Link (Legătură web)",
InsertLink : "Inserează/Editează link (legătură web)",
RemoveLink : "Înlătură link (legătură web)",
Anchor : "Inserează/Editează ancoră",
+AnchorDelete : "Şterge ancoră",
InsertImageLbl : "Imagine",
InsertImage : "Inserează/Editează imagine",
InsertFlashLbl : "Flash",
@@ -75,6 +71,7 @@ RightJustify : "Aliniere la dreapta",
BlockJustify : "Aliniere în bloc (Block Justify)",
DecreaseIndent : "Scade indentarea",
IncreaseIndent : "CreÅŸte indentarea",
+Blockquote : "Citat",
Undo : "Starea anterioară (undo)",
Redo : "Starea ulterioară (redo)",
NumberedListLbl : "Listă numerotată",
@@ -108,20 +105,27 @@ SelectionField : "Câmp selecţie (SelectionField)",
ImageButton : "Buton imagine (ImageButton)",
FitWindow : "Maximizează mărimea editorului",
+ShowBlocks : "Arată blocurile",
// Context Menu
EditLink : "Editează Link",
CellCM : "Celulă",
RowCM : "Linie",
ColumnCM : "Coloană",
-InsertRow : "Inserează linie",
+InsertRowAfter : "Inserează linie după",
+InsertRowBefore : "Inserează linie înainte",
DeleteRows : "Åžterge linii",
-InsertColumn : "Inserează coloană",
+InsertColumnAfter : "Inserează coloană după",
+InsertColumnBefore : "Inserează coloană înainte",
DeleteColumns : "Åžterge celule",
-InsertCell : "Inserează celulă",
+InsertCellAfter : "Inserează celulă după",
+InsertCellBefore : "Inserează celulă înainte",
DeleteCells : "Åžterge celule",
MergeCells : "UneÅŸte celule",
-SplitCell : "Împarte celulă",
+MergeRight : "UneÅŸte la dreapta",
+MergeDown : "UneÅŸte jos",
+HorizontalSplitCell : "Împarte celula pe orizontală",
+VerticalSplitCell : "Împarte celula pe verticală",
TableDelete : "Åžterge tabel",
CellProperties : "Proprietăţile celulei",
TableProperties : "Proprietăţile tabelului",
@@ -139,7 +143,7 @@ SelectionFieldProp : "Proprietăţi câmp selecţie (Selection Field)",
TextareaProp : "Proprietăţi suprafaţă text (Textarea)",
FormProp : "Proprietăţi formular (Form)",
-FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //REVIEW : Check _getfontformat.html //MISSING
+FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //MISSING
// Alerts and Messages
ProcessingXHTML : "Procesăm XHTML. Vă rugăm aşteptaţi...",
@@ -234,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Selectaţi o ancoră",
DlgLnkAnchorByName : "după numele ancorei",
DlgLnkAnchorById : "după Id-ul elementului",
-DlgLnkNoAnchors : "<Nicio ancoră disponibilă în document>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Nicio ancoră disponibilă în document)",
DlgLnkEMail : "Adresă de e-mail",
DlgLnkEMailSubject : "Subiectul mesajului",
DlgLnkEMailBody : "Conţinutul mesajului",
@@ -327,6 +331,9 @@ DlgCellBackColor : "Culoarea fundalului",
DlgCellBorderColor : "Culoarea marginii",
DlgCellBtnSelect : "Selectaţi...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Găseşte şi înlocuieşte",
+
// Find Dialog
DlgFindTitle : "Găseşte",
DlgFindFindBtn : "Găseşte",
@@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "ÃŽnlocuieÅŸte tot",
DlgReplaceWordChk : "Doar cuvintele întregi",
// Paste Operations / Dialog
-PasteErrorPaste : "Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de adăugare. Vă rugăm folosiţi tastatura (Ctrl+V).",
PasteErrorCut : "Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de tăiere. Vă rugăm folosiţi tastatura (Ctrl+X).",
PasteErrorCopy : "Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de copiere. Vă rugăm folosiţi tastatura (Ctrl+C).",
@@ -350,6 +356,7 @@ PasteAsText : "Adaugă ca text simplu (Plain Text)",
PasteFromWord : "Adaugă din Word",
DlgPasteMsg2 : "Vă rugăm adăugaţi în căsuţa următoare folosind tastatura (<STRONG>Ctrl+V</STRONG>) şi apăsaţi <STRONG>OK</STRONG>.",
+DlgPasteSec : "Din cauza setărilor de securitate ale programului dvs. cu care navigaţi pe internet (browser), editorul nu poate accesa direct datele din clipboard. Va trebui să adăugaţi din nou datele în această fereastră.",
DlgPasteIgnoreFont : "Ignoră definiţiile Font Face",
DlgPasteRemoveStyles : "Şterge definiţiile stilurilor",
DlgPasteCleanBox : "Şterge căsuţa",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Informaţii browser",
DlgAboutLicenseTab : "Licenţă",
DlgAboutVersion : "versiune",
DlgAboutInfo : "Pentru informaţii amănunţite, vizitaţi"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/ru.js b/editor/editor/lang/ru.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: ru.js
- * Russian language file.
- *
- * File Authors:
- * Andrey Grebnev (andrey.grebnev@blandware.com)
+ *
+ * Russian language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "СÑылка",
InsertLink : "Ð’Ñтавить/Редактировать ÑÑылку",
RemoveLink : "Убрать ÑÑылку",
Anchor : "Ð’Ñтавить/Редактировать Ñкорь",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Изображение",
InsertImage : "Ð’Ñтавить/Редактировать изображение",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "По правому краю",
BlockJustify : "По ширине",
DecreaseIndent : "Уменьшить отÑтуп",
IncreaseIndent : "Увеличить отÑтуп",
+Blockquote : "Blockquote", //MISSING
Undo : "Отменить",
Redo : "Повторить",
NumberedListLbl : "Ðумерованный ÑпиÑок",
@@ -107,20 +105,27 @@ SelectionField : "СпиÑок",
ImageButton : "Кнопка Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÐ¼",
FitWindow : "Развернуть окно редактора",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Ð’Ñтавить ÑÑылку",
CellCM : "Ячейка",
RowCM : "Строка",
ColumnCM : "Колонка",
-InsertRow : "Ð’Ñтавить Ñтроку",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Удалить Ñтроки",
-InsertColumn : "Ð’Ñтавить колонку",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Удалить колонки",
-InsertCell : "Ð’Ñтавить Ñчейку",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Удалить Ñчейки",
MergeCells : "Соединить Ñчейки",
-SplitCell : "Разбить Ñчейку",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Удалить таблицу",
CellProperties : "СвойÑтва Ñчейки",
TableProperties : "СвойÑтва таблицы",
@@ -138,7 +143,7 @@ SelectionFieldProp : "СвойÑтва ÑпиÑка",
TextareaProp : "СвойÑтва текÑтовой облаÑти",
FormProp : "СвойÑтва формы",
-FontFormats : "Ðормальный;Форматированный;ÐдреÑ;Заголовок 1;Заголовок 2;Заголовок 3;Заголовок 4;Заголовок 5;Заголовок 6;Ðормальный (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Ðормальный;Форматированный;ÐдреÑ;Заголовок 1;Заголовок 2;Заголовок 3;Заголовок 4;Заголовок 5;Заголовок 6;Ðормальный (DIV)",
// Alerts and Messages
ProcessingXHTML : "Обработка XHTML. ПожалуйÑта подождите...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Выберите Ñкорь",
DlgLnkAnchorByName : "По имени ÑкорÑ",
DlgLnkAnchorById : "По идентификатору Ñлемента",
-DlgLnkNoAnchors : "<Ðет Ñкорей доÑтупных в Ñтом документе>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Ðет Ñкорей доÑтупных в Ñтом документе)",
DlgLnkEMail : "ÐÐ´Ñ€ÐµÑ Ñл. почты",
DlgLnkEMailSubject : "Заголовок ÑообщениÑ",
DlgLnkEMailBody : "Тело ÑообщениÑ",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Цвет фона",
DlgCellBorderColor : "Цвет бордюра",
DlgCellBtnSelect : "Выберите...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Ðайти",
DlgFindFindBtn : "Ðайти",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Заменить вÑе",
DlgReplaceWordChk : "Совпадение целых Ñлов",
// Paste Operations / Dialog
-PasteErrorPaste : "ÐаÑтройки безопаÑноÑти вашего браузера не позволÑÑŽÑ‚ редактору автоматичеÑки выполнÑÑ‚ÑŒ операции вÑтавки. ПожалуйÑта иÑпользуйте клавиатуру Ð´Ð»Ñ Ñтого (Ctrl+V).",
PasteErrorCut : "ÐаÑтройки безопаÑноÑти вашего браузера не позволÑÑŽÑ‚ редактору автоматичеÑки выполнÑÑ‚ÑŒ операции вырезаниÑ. ПожалуйÑта иÑпользуйте клавиатуру Ð´Ð»Ñ Ñтого (Ctrl+X).",
PasteErrorCopy : "ÐаÑтройки безопаÑноÑти вашего браузера не позволÑÑŽÑ‚ редактору автоматичеÑки выполнÑÑ‚ÑŒ операции копированиÑ. ПожалуйÑта иÑпользуйте клавиатуру Ð´Ð»Ñ Ñтого (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Ð’Ñтавить только текÑÑ‚",
PasteFromWord : "Ð’Ñтавить из Word",
DlgPasteMsg2 : "ПожалуйÑта вÑтавьте текÑÑ‚ в прÑмоугольник иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñочетание клавиш (<STRONG>Ctrl+V</STRONG>) и нажмите <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Игнорировать Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð³Ð°Ñ€Ð½Ð¸Ñ‚ÑƒÑ€Ñ‹",
DlgPasteRemoveStyles : "Убрать Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñтилей",
DlgPasteCleanBox : "ОчиÑтить",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°",
DlgAboutLicenseTab : "ЛицензиÑ",
DlgAboutVersion : "ВерÑиÑ",
DlgAboutInfo : "Ð”Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐµÐ¹ информации, поÑетите"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/sk.js b/editor/editor/lang/sk.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: sk.js
- * Slovak language file.
- *
- * File Authors:
- * Samuel Szabo (samuel@nanete.sk)
- * Jozef Gaal (runcms.mayday.sk)
+ *
+ * Slovak language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "Odkaz",
InsertLink : "Vložiť/zmeniť odkaz",
RemoveLink : "Odstrániť odkaz",
Anchor : "Vložiť/zmeniť kotvu",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Obrázok",
InsertImage : "Vložiť/zmeniť obrázok",
InsertFlashLbl : "Flash",
@@ -75,6 +71,7 @@ RightJustify : "Zarovnať vpravo",
BlockJustify : "Zarovnať do bloku",
DecreaseIndent : "Zmenšiť odsadenie",
IncreaseIndent : "ZväÄÅ¡iÅ¥ odsadenie",
+Blockquote : "Blockquote", //MISSING
Undo : "Späť",
Redo : "Znovu",
NumberedListLbl : "ÄŒÃslovanie",
@@ -108,20 +105,27 @@ SelectionField : "Rozbaľovacà zoznam",
ImageButton : "Obrázkové tlaÄidlo",
FitWindow : "Maximalizovať veľkosť okna editora",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Zmeniť odkaz",
CellCM : "Bunka",
RowCM : "Riadok",
ColumnCM : "Stĺpec",
-InsertRow : "Vložiť riadok",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Vymazať riadok",
-InsertColumn : "Vložiť stĺpec",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Zmazať stĺpec",
-InsertCell : "Vložiť bunku",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Vymazať bunky",
MergeCells : "ZlúÄiÅ¥ bunky",
-SplitCell : "Rozdeliť bunku",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Vymazať tabuľku",
CellProperties : "Vlastnosti bunky",
TableProperties : "Vlastnosti tabuľky",
@@ -139,7 +143,7 @@ SelectionFieldProp : "Vlastnosti rozbaľovacieho zoznamu",
TextareaProp : "Vlastnosti textovej oblasti",
FormProp : "Vlastnosti formulára",
-FontFormats : "Normálny;Formátovaný;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6;Odsek (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normálny;Formátovaný;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6;Odsek (DIV)",
// Alerts and Messages
ProcessingXHTML : "Prebieha spracovanie XHTML. ÄŒakajte prosÃm...",
@@ -234,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Vybrať kotvu",
DlgLnkAnchorByName : "Podľa mena kotvy",
DlgLnkAnchorById : "Podľa Id objektu",
-DlgLnkNoAnchors : "<V stránke nie je definovaná žiadna kotva>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(V stránke nie je definovaná žiadna kotva)",
DlgLnkEMail : "E-Mailová adresa",
DlgLnkEMailSubject : "Predmet správy",
DlgLnkEMailBody : "Telo správy",
@@ -327,6 +331,9 @@ DlgCellBackColor : "Farba pozadia",
DlgCellBorderColor : "Farba ohraniÄenia",
DlgCellBtnSelect : "Výber...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Hľadať",
DlgFindFindBtn : "Hľadať",
@@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "Nahradiť všetko",
DlgReplaceWordChk : "Len celé slová",
// Paste Operations / Dialog
-PasteErrorPaste : "BezpeÄnostné nastavenie Vášho prehliadaÄa nedovoľujú editoru spustiÅ¥ funkciu pre vloženie textu zo schránky. ProsÃm vložte text zo schránky pomocou klávesnice (Ctrl+V).",
PasteErrorCut : "BezpeÄnostné nastavenie Vášho prehliadaÄa nedovoľujú editoru spustiÅ¥ funkciu pre vystrihnutie zvoleného textu do schránky. ProsÃm vystrihnite zvolený text do schránky pomocou klávesnice (Ctrl+X).",
PasteErrorCopy : "BezpeÄnostné nastavenie Vášho prehliadaÄa nedovoľujú editoru spustiÅ¥ funkciu pre kopÃrovanie zvoleného textu do schránky. ProsÃm skopÃrujte zvolený text do schránky pomocou klávesnice (Ctrl+C).",
@@ -350,6 +356,7 @@ PasteAsText : "VložiÅ¥ ako Äistý text",
PasteFromWord : "Vložiť text z Wordu",
DlgPasteMsg2 : "ProsÃm vložte nasledovný rámÄek použitÃm klávesnice (<STRONG>Ctrl+V</STRONG>) a stlaÄte <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "IgnorovaÅ¥ nastavenia typu pÃsma",
DlgPasteRemoveStyles : "Odstrániť formátovanie",
DlgPasteCleanBox : "VyÄistiÅ¥ schránku",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Informácie o prehliadaÄi",
DlgAboutLicenseTab : "Licencia",
DlgAboutVersion : "verzia",
DlgAboutInfo : "Viac informácià zÃskate na"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/sl.js b/editor/editor/lang/sl.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: sl.js
- * Slovenian language file.
- *
- * File Authors:
- * Boris VolariÄ (vol@rutka.net)
+ *
+ * Slovenian language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Povezava",
InsertLink : "Vstavi/uredi povezavo",
RemoveLink : "Odstrani povezavo",
Anchor : "Vstavi/uredi zaznamek",
+AnchorDelete : "Odstrani zaznamek",
InsertImageLbl : "Slika",
InsertImage : "Vstavi/uredi sliko",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "Desna poravnava",
BlockJustify : "Obojestranska poravnava",
DecreaseIndent : "Zmanjšaj zamik",
IncreaseIndent : "PoveÄaj zamik",
+Blockquote : "Citat",
Undo : "Razveljavi",
Redo : "Ponovi",
NumberedListLbl : "OÅ¡tevilÄen seznam",
@@ -106,21 +104,28 @@ Button : "Gumb",
SelectionField : "Spustni seznam",
ImageButton : "Gumb s sliko",
-FitWindow : "Maximize the editor size", //MISSING
+FitWindow : "RazÅ¡iri velikost urejevalnika Äez cel zaslon",
+ShowBlocks : "Prikaži ograde",
// Context Menu
EditLink : "Uredi povezavo",
-CellCM : "Cell", //MISSING
-RowCM : "Row", //MISSING
-ColumnCM : "Column", //MISSING
-InsertRow : "Vstavi vrstico",
+CellCM : "Celica",
+RowCM : "Vrstica",
+ColumnCM : "Stolpec",
+InsertRowAfter : "Vstavi vrstico za",
+InsertRowBefore : "Vstavi vrstico pred",
DeleteRows : "Izbriši vrstice",
-InsertColumn : "Vstavi stolpec",
+InsertColumnAfter : "Vstavi stolpec za",
+InsertColumnBefore : "Vstavi stolpec pred",
DeleteColumns : "Izbriši stolpce",
-InsertCell : "Vstavi celico",
+InsertCellAfter : "Vstavi celico za",
+InsertCellBefore : "Vstavi celico pred",
DeleteCells : "Izbriši celice",
MergeCells : "Združi celice",
-SplitCell : "Razdeli celico",
+MergeRight : "Združi desno",
+MergeDown : "Druži navzdol",
+HorizontalSplitCell : "Razdeli celico vodoravno",
+VerticalSplitCell : "Razdeli celico navpiÄno",
TableDelete : "Izbriši tabelo",
CellProperties : "Lastnosti celice",
TableProperties : "Lastnosti tabele",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Lastnosti spustnega seznama",
TextareaProp : "Lastnosti vnosnega obmoÄja",
FormProp : "Lastnosti obrazca",
-FontFormats : "Navaden;Oblikovan;Napis;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Navaden;Oblikovan;Napis;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6",
// Alerts and Messages
ProcessingXHTML : "Obdelujem XHTML. Prosim poÄakajte...",
@@ -149,9 +154,9 @@ UnknownToolbarItem : "Neznan element orodne vrstice \"%1\"",
UnknownCommand : "Neznano ime ukaza \"%1\"",
NotImplemented : "Ukaz ni izdelan",
UnknownToolbarSet : "Skupina orodnih vrstic \"%1\" ne obstoja",
-NoActiveX : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", //MISSING
-BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.", //MISSING
-DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.", //MISSING
+NoActiveX : "Varnostne nastavitve vaÅ¡ega brskalnika lahko omejijo delovanje nekaterih zmožnosti urejevalnika. ÄŒe ne želite zaznavati napak in sporoÄil o manjkajoÄih zmožnostih, omogoÄite možnost \"Zaženi ActiveX kontrolnike in vtiÄnike\".",
+BrowseServerBlocked : "Brskalnik virov se ne more odpreti. PrepriÄajte se, da je prepreÄevanje pojavnih oken onemogoÄeno.",
+DialogBlocked : "Pogovorno okno se ni moglo odpreti. PrepriÄajte se, da je prepreÄevanje pojavnih oken onemogoÄeno.",
// Dialogs
DlgBtnOK : "V redu",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Izberi zaznamek",
DlgLnkAnchorByName : "Po imenu zaznamka",
DlgLnkAnchorById : "Po ID-ju elementa",
-DlgLnkNoAnchors : "<V tem dokumentu ni zaznamkov>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(V tem dokumentu ni zaznamkov)",
DlgLnkEMail : "Elektronski naslov",
DlgLnkEMailSubject : "Predmet sporoÄila",
DlgLnkEMailBody : "Vsebina sporoÄila",
@@ -266,7 +271,7 @@ DlgLnkPopTop : "Lega na vrhu",
DlnLnkMsgNoUrl : "Vnesite URL povezave",
DlnLnkMsgNoEMail : "Vnesite elektronski naslov",
DlnLnkMsgNoAnchor : "Izberite zaznamek",
-DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING
+DlnLnkMsgInvPopName : "Ime pojavnega okna se mora zaÄeti s Ärko ali Å¡tevilko in ne sme vsebovati presledkov",
// Color Dialog
DlgColorTitle : "Izberite barvo",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Barva ozadja",
DlgCellBorderColor : "Barva obrobe",
DlgCellBtnSelect : "Izberi...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Najdi in zamenjaj",
+
// Find Dialog
DlgFindTitle : "Najdi",
DlgFindFindBtn : "Najdi",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Zamenjaj vse",
DlgReplaceWordChk : "Samo cele besede",
// Paste Operations / Dialog
-PasteErrorPaste : "Varnostne nastavitve brskalnika ne dopuÅ¡Äajo samodejnega lepljenja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+V).",
PasteErrorCut : "Varnostne nastavitve brskalnika ne dopuÅ¡Äajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+X).",
PasteErrorCopy : "Varnostne nastavitve brskalnika ne dopuÅ¡Äajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Prilepi kot golo besedilo",
PasteFromWord : "Prilepi iz Worda",
DlgPasteMsg2 : "Prosim prilepite v sleÄi okvir s pomoÄjo tipkovnice (<STRONG>Ctrl+V</STRONG>) in pritisnite <STRONG>V redu</STRONG>.",
+DlgPasteSec : "Zaradi varnostnih nastavitev vaÅ¡ega brskalnika urejevalnik ne more neposredno dostopati do odložiÅ¡Äa. Vsebino odložiÅ¡Äa ponovno prilepite v to okno.",
DlgPasteIgnoreFont : "Prezri obliko pisave",
DlgPasteRemoveStyles : "Odstrani nastavitve stila",
DlgPasteCleanBox : "PoÄisti okvir",
@@ -385,9 +393,9 @@ IeSpellDownload : "ÄŒrkovalnik ni nameÅ¡Äen. Ali ga želite prenesti sedaj?",
// Button Dialog
DlgButtonText : "Besedilo (Vrednost)",
DlgButtonType : "Tip",
-DlgButtonTypeBtn : "Button", //MISSING
-DlgButtonTypeSbm : "Submit", //MISSING
-DlgButtonTypeRst : "Reset", //MISSING
+DlgButtonTypeBtn : "Gumb",
+DlgButtonTypeSbm : "Potrdi",
+DlgButtonTypeRst : "Ponastavi",
// Checkbox and Radio Button Dialogs
DlgCheckboxName : "Ime",
@@ -436,7 +444,7 @@ DlgHiddenValue : "Vrednost",
// Bulleted List Dialog
BulletedListProp : "Lastnosti oznaÄenega seznama",
NumberedListProp : "Lastnosti oÅ¡tevilÄenega seznama",
-DlgLstStart : "Start", //MISSING
+DlgLstStart : "ZaÄetek",
DlgLstType : "Tip",
DlgLstTypeCircle : "Pikica",
DlgLstTypeDisc : "Kroglica",
@@ -459,15 +467,15 @@ DlgDocLangDirLTR : "Od leve proti desni (LTR)",
DlgDocLangDirRTL : "Od desne proti levi (RTL)",
DlgDocLangCode : "Oznaka jezika",
DlgDocCharSet : "Kodna tabela",
-DlgDocCharSetCE : "Central European", //MISSING
-DlgDocCharSetCT : "Chinese Traditional (Big5)", //MISSING
-DlgDocCharSetCR : "Cyrillic", //MISSING
-DlgDocCharSetGR : "Greek", //MISSING
-DlgDocCharSetJP : "Japanese", //MISSING
-DlgDocCharSetKR : "Korean", //MISSING
-DlgDocCharSetTR : "Turkish", //MISSING
-DlgDocCharSetUN : "Unicode (UTF-8)", //MISSING
-DlgDocCharSetWE : "Western European", //MISSING
+DlgDocCharSetCE : "Srednjeevropsko",
+DlgDocCharSetCT : "Tradicionalno Kitajsko (Big5)",
+DlgDocCharSetCR : "Cirilica",
+DlgDocCharSetGR : "Grško",
+DlgDocCharSetJP : "Japonsko",
+DlgDocCharSetKR : "Korejsko",
+DlgDocCharSetTR : "Turško",
+DlgDocCharSetUN : "Unicode (UTF-8)",
+DlgDocCharSetWE : "Zahodnoevropsko",
DlgDocCharSetOther : "Druga kodna tabela",
DlgDocDocType : "Glava tipa dokumenta",
@@ -497,12 +505,12 @@ DlgTemplatesTitle : "Vsebinske predloge",
DlgTemplatesSelMsg : "Izberite predlogo, ki jo želite odpreti v urejevalniku<br>(trenutna vsebina bo izgubljena):",
DlgTemplatesLoading : "Nalagam seznam predlog. Prosim poÄakajte...",
DlgTemplatesNoTpl : "(Ni pripravljenih predlog)",
-DlgTemplatesReplace : "Replace actual contents", //MISSING
+DlgTemplatesReplace : "Zamenjaj trenutno vsebino",
// About Dialog
DlgAboutAboutTab : "Vizitka",
DlgAboutBrowserInfoTab : "Informacije o brskalniku",
-DlgAboutLicenseTab : "License", //MISSING
+DlgAboutLicenseTab : "Dovoljenja",
DlgAboutVersion : "razliÄica",
DlgAboutInfo : "Za veÄ informacij obiÅ¡Äite"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/sr-latn.js b/editor/editor/lang/sr-latn.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: sr-latn.js
- * Serbian (Latin) language file.
- *
- * File Authors:
- * Zoran Subic (zoran@tf.zr.ac.yu)
+ *
+ * Serbian (Latin) language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Link",
InsertLink : "Unesi/izmeni link",
RemoveLink : "Ukloni link",
Anchor : "Unesi/izmeni sidro",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Slika",
InsertImage : "Unesi/izmeni sliku",
InsertFlashLbl : "Fleš",
@@ -74,6 +71,7 @@ RightJustify : "Desno ravnanje",
BlockJustify : "Obostrano ravnanje",
DecreaseIndent : "Smanji levu marginu",
IncreaseIndent : "Uvećaj levu marginu",
+Blockquote : "Blockquote", //MISSING
Undo : "Poni�ti akciju",
Redo : "Ponovi akciju",
NumberedListLbl : "Nabrojiva lista",
@@ -107,20 +105,27 @@ SelectionField : "Izborno polje",
ImageButton : "Dugme sa slikom",
FitWindow : "Maximize the editor size", //MISSING
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Izmeni link",
CellCM : "Cell", //MISSING
RowCM : "Row", //MISSING
ColumnCM : "Column", //MISSING
-InsertRow : "Unesi red",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Obriši redove",
-InsertColumn : "Unesi kolonu",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Obriši kolone",
-InsertCell : "Unesi ćelije",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Obriši ćelije",
MergeCells : "Spoj celije",
-SplitCell : "Razdvoji celije",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Delete Table", //MISSING
CellProperties : "Osobine celije",
TableProperties : "Osobine tabele",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Osobine izbornog polja",
TextareaProp : "Osobine zone teksta",
FormProp : "Osobine forme",
-FontFormats : "Normal;Formatirano;Adresa;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatirano;Adresa;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6",
// Alerts and Messages
ProcessingXHTML : "Obradujem XHTML. Malo strpljenja...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Odaberi sidro",
DlgLnkAnchorByName : "Po nazivu sidra",
DlgLnkAnchorById : "Po Id-ju elementa",
-DlgLnkNoAnchors : "<Nema dostupnih sidra>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Nema dostupnih sidra)",
DlgLnkEMail : "E-Mail adresa",
DlgLnkEMailSubject : "Naslov",
DlgLnkEMailBody : "Sadržaj poruke",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Boja pozadine",
DlgCellBorderColor : "Boja okvira",
DlgCellBtnSelect : "Odaberi...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Pronađi",
DlgFindFindBtn : "Pronađi",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Zameni sve",
DlgReplaceWordChk : "Uporedi cele reci",
// Paste Operations / Dialog
-PasteErrorPaste : "Sigurnosna podeÅ¡avanja VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog lepljenja teksta. Molimo Vas da koristite preÄicu sa tastature (Ctrl+V).",
PasteErrorCut : "Sigurnosna podeÅ¡avanja VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite preÄicu sa tastature (Ctrl+X).",
PasteErrorCopy : "Sigurnosna podeÅ¡avanja VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite preÄicu sa tastature (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Zalepi kao Äist tekst",
PasteFromWord : "Zalepi iz Worda",
DlgPasteMsg2 : "Molimo Vas da zalepite unutar donje povrine koristeći tastaturnu preÄicu (<STRONG>Ctrl+V</STRONG>) i da pritisnete <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Ignoriši definicije fontova",
DlgPasteRemoveStyles : "Ukloni definicije stilova",
DlgPasteCleanBox : "Obriši sve",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Informacije o pretraživacu",
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "verzija",
DlgAboutInfo : "Za više informacija posetite"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/sr.js b/editor/editor/lang/sr.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: sr.js
- * Serbian (Cyrillic) language file.
- *
- * File Authors:
- * Zoran Subić (zoran@tf.zr.ac.yu)
+ *
+ * Serbian (Cyrillic) language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Линк",
InsertLink : "УнеÑи/измени линк",
RemoveLink : "Уклони линк",
Anchor : "УнеÑи/измени Ñидро",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Слика",
InsertImage : "УнеÑи/измени Ñлику",
InsertFlashLbl : "Флеш елемент",
@@ -74,6 +71,7 @@ RightJustify : "ДеÑно равнање",
BlockJustify : "ОбоÑтрано равнање",
DecreaseIndent : "Смањи леву маргину",
IncreaseIndent : "Увећај леву маргину",
+Blockquote : "Blockquote", //MISSING
Undo : "Поништи акцију",
Redo : "Понови акцију",
NumberedListLbl : "Ðабројиву лиÑту",
@@ -107,20 +105,27 @@ SelectionField : "Изборно поље",
ImageButton : "Дугме Ñа Ñликом",
FitWindow : "Maximize the editor size", //MISSING
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Промени линк",
CellCM : "Cell", //MISSING
RowCM : "Row", //MISSING
ColumnCM : "Column", //MISSING
-InsertRow : "УнеÑи ред",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Обриши редове",
-InsertColumn : "УнеÑи колону",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Обриши колоне",
-InsertCell : "УнеÑи ћелије",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Обриши ћелије",
MergeCells : "Спој ћелије",
-SplitCell : "Раздвоји ћелије",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Delete Table", //MISSING
CellProperties : "ОÑобине ћелије",
TableProperties : "ОÑобине табеле",
@@ -138,7 +143,7 @@ SelectionFieldProp : "ОÑобине изборног поља",
TextareaProp : "ОÑобине зоне текÑта",
FormProp : "ОÑобине форме",
-FontFormats : "Normal;Formatirano;Adresa;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatirano;Adresa;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",
// Alerts and Messages
ProcessingXHTML : "Обрађујем XHTML. Maлo Ñтрпљења...",
@@ -233,7 +238,7 @@ DlgLnkURL : "УРЛ",
DlgLnkAnchorSel : "Одабери Ñидро",
DlgLnkAnchorByName : "По називу Ñидра",
DlgLnkAnchorById : "Пo Ид-jу елемента",
-DlgLnkNoAnchors : "<Ðема доÑтупних Ñидра>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Ðема доÑтупних Ñидра)",
DlgLnkEMail : "ÐдреÑа електронÑке поште",
DlgLnkEMailSubject : "ÐаÑлов",
DlgLnkEMailBody : "Садржај поруке",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Боја позадине",
DlgCellBorderColor : "Боја оквира",
DlgCellBtnSelect : "Oдабери...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Пронађи",
DlgFindFindBtn : "Пронађи",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Замени Ñве",
DlgReplaceWordChk : "Упореди целе речи",
// Paste Operations / Dialog
-PasteErrorPaste : "СигурноÑна подешавања Вашег претраживача не дозвољавају операције аутоматÑког лепљења текÑта. Молимо Ð’Ð°Ñ Ð´Ð° кориÑтите пречицу Ñа таÑтатуре (Ctrl+V).",
PasteErrorCut : "СигурноÑна подешавања Вашег претраживача не дозвољавају операције аутоматÑког иÑецања текÑта. Молимо Ð’Ð°Ñ Ð´Ð° кориÑтите пречицу Ñа таÑтатуре (Ctrl+X).",
PasteErrorCopy : "СигурноÑна подешавања Вашег претраживача не дозвољавају операције аутоматÑког копирања текÑта. Молимо Ð’Ð°Ñ Ð´Ð° кориÑтите пречицу Ñа таÑтатуре (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Залепи као чиÑÑ‚ текÑÑ‚",
PasteFromWord : "Залепи из Worda",
DlgPasteMsg2 : "Молимо Ð’Ð°Ñ Ð´Ð° залепите унутар доње површине кориÑтећи таÑтатурну пречицу (<STRONG>Ctrl+V</STRONG>) и да притиÑнете <STRONG>OK</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Игнориши Font Face дефиниције",
DlgPasteRemoveStyles : "Уклони дефиниције Ñтилова",
DlgPasteCleanBox : "Обриши Ñве",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Информације о претраживачу",
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "верзија",
DlgAboutInfo : "За више информација поÑетите"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/sv.js b/editor/editor/lang/sv.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: sv.js
- * Swedish language file.
- *
- * File Authors:
- * Kristoffer Malvefors (kristoffer@intema.ws)
+ *
+ * Swedish language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "Länk",
InsertLink : "Infoga/Redigera länk",
RemoveLink : "Radera länk",
Anchor : "Infoga/Redigera ankarlänk",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Bild",
InsertImage : "Infoga/Redigera bild",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "Högerjustera",
BlockJustify : "Justera till marginaler",
DecreaseIndent : "Minska indrag",
IncreaseIndent : "Öka indrag",
+Blockquote : "Blockquote", //MISSING
Undo : "Ã…ngra",
Redo : "Gör om",
NumberedListLbl : "Numrerad lista",
@@ -106,21 +104,28 @@ Button : "Knapp",
SelectionField : "Flervalslista",
ImageButton : "Bildknapp",
-FitWindow : "Maximize the editor size", //MISSING
+FitWindow : "Anpassa till fönstrets storlek",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Redigera länk",
-CellCM : "Cell", //MISSING
-RowCM : "Row", //MISSING
-ColumnCM : "Column", //MISSING
-InsertRow : "Infoga rad",
+CellCM : "Cell",
+RowCM : "Rad",
+ColumnCM : "Kolumn",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Radera rad",
-InsertColumn : "Infoga kolumn",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Radera kolumn",
-InsertCell : "Infoga cell",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Radera celler",
MergeCells : "Sammanfoga celler",
-SplitCell : "Separera celler",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Radera tabell",
CellProperties : "Cellegenskaper",
TableProperties : "Tabellegenskaper",
@@ -138,7 +143,7 @@ SelectionFieldProp : "Egenskaper för flervalslista",
TextareaProp : "Egenskaper för textruta",
FormProp : "Egenskaper för formulär",
-FontFormats : "Normal;Formaterad;Adress;Rubrik 1;Rubrik 2;Rubrik 3;Rubrik 4;Rubrik 5;Rubrik 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formaterad;Adress;Rubrik 1;Rubrik 2;Rubrik 3;Rubrik 4;Rubrik 5;Rubrik 6;Normal (DIV)",
// Alerts and Messages
ProcessingXHTML : "Bearbetar XHTML. Var god vänta...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Välj ett ankare",
DlgLnkAnchorByName : "efter ankarnamn",
DlgLnkAnchorById : "efter objektid",
-DlgLnkNoAnchors : "<Inga ankare kunde hittas>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Inga ankare kunde hittas)",
DlgLnkEMail : "E-postadress",
DlgLnkEMailSubject : "Ämne",
DlgLnkEMailBody : "Innehåll",
@@ -266,7 +271,7 @@ DlgLnkPopTop : "Position från sidans topp",
DlnLnkMsgNoUrl : "Var god ange länkens URL",
DlnLnkMsgNoEMail : "Var god ange E-postadress",
DlnLnkMsgNoAnchor : "Var god ange ett ankare",
-DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING
+DlnLnkMsgInvPopName : "Popup-rutans namn måste börja med en alfabetisk bokstav och får inte innehålla mellanslag",
// Color Dialog
DlgColorTitle : "Välj färg",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Bakgrundsfärg",
DlgCellBorderColor : "Kantfärg",
DlgCellBtnSelect : "Välj...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Sök",
DlgFindFindBtn : "Sök",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Ersätt alla",
DlgReplaceWordChk : "Inkludera hela ord",
// Paste Operations / Dialog
-PasteErrorPaste : "Säkerhetsinställningar i Er webläsare tillåter inte åtgården Klistra in. Använd (Ctrl+V) istället.",
PasteErrorCut : "Säkerhetsinställningar i Er webläsare tillåter inte åtgården Klipp ut. Använd (Ctrl+X) istället.",
PasteErrorCopy : "Säkerhetsinställningar i Er webläsare tillåter inte åtgården Kopiera. Använd (Ctrl+C) istället",
@@ -349,6 +356,7 @@ PasteAsText : "Klistra in som vanlig text",
PasteFromWord : "Klistra in från Word",
DlgPasteMsg2 : "Var god och klistra in Er text i rutan nedan genom att använda (<STRONG>Ctrl+V</STRONG>) klicka sen på <STRONG>OK</STRONG>.",
+DlgPasteSec : "På grund av din webläsares säkerhetsinställningar kan verktyget inte få åtkomst till urklippsdatan. Var god och använd detta fönster istället.",
DlgPasteIgnoreFont : "Ignorera typsnittsdefinitioner",
DlgPasteRemoveStyles : "Radera Stildefinitioner",
DlgPasteCleanBox : "Töm rutans innehåll",
@@ -385,9 +393,9 @@ IeSpellDownload : "Stavningskontrollen är ej installerad. Vill du göra det n
// Button Dialog
DlgButtonText : "Text (Värde)",
DlgButtonType : "Typ",
-DlgButtonTypeBtn : "Button", //MISSING
-DlgButtonTypeSbm : "Submit", //MISSING
-DlgButtonTypeRst : "Reset", //MISSING
+DlgButtonTypeBtn : "Knapp",
+DlgButtonTypeSbm : "Skicka",
+DlgButtonTypeRst : "Återställ",
// Checkbox and Radio Button Dialogs
DlgCheckboxName : "Namn",
@@ -459,15 +467,15 @@ DlgDocLangDirLTR : "Vänster till Höger",
DlgDocLangDirRTL : "Höger till Vänster",
DlgDocLangCode : "Språkkod",
DlgDocCharSet : "Teckenuppsättningar",
-DlgDocCharSetCE : "Central European", //MISSING
-DlgDocCharSetCT : "Chinese Traditional (Big5)", //MISSING
-DlgDocCharSetCR : "Cyrillic", //MISSING
-DlgDocCharSetGR : "Greek", //MISSING
-DlgDocCharSetJP : "Japanese", //MISSING
-DlgDocCharSetKR : "Korean", //MISSING
-DlgDocCharSetTR : "Turkish", //MISSING
-DlgDocCharSetUN : "Unicode (UTF-8)", //MISSING
-DlgDocCharSetWE : "Western European", //MISSING
+DlgDocCharSetCE : "Central Europa",
+DlgDocCharSetCT : "Traditionell Kinesisk (Big5)",
+DlgDocCharSetCR : "Kyrillisk",
+DlgDocCharSetGR : "Grekiska",
+DlgDocCharSetJP : "Japanska",
+DlgDocCharSetKR : "Koreanska",
+DlgDocCharSetTR : "Turkiska",
+DlgDocCharSetUN : "Unicode (UTF-8)",
+DlgDocCharSetWE : "Väst Europa",
DlgDocCharSetOther : "Övriga teckenuppsättningar",
DlgDocDocType : "Sidhuvud",
@@ -497,12 +505,12 @@ DlgTemplatesTitle : "Sidmallar",
DlgTemplatesSelMsg : "Var god välj en mall att använda med editorn<br>(allt nuvarande innehåll raderas):",
DlgTemplatesLoading : "Laddar mallar. Var god vänta...",
DlgTemplatesNoTpl : "(Ingen mall är vald)",
-DlgTemplatesReplace : "Replace actual contents", //MISSING
+DlgTemplatesReplace : "Ersätt aktuellt innehåll",
// About Dialog
DlgAboutAboutTab : "Om",
DlgAboutBrowserInfoTab : "Webläsare",
-DlgAboutLicenseTab : "License", //MISSING
+DlgAboutLicenseTab : "Licens",
DlgAboutVersion : "version",
DlgAboutInfo : "För mer information se"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/th.js b/editor/editor/lang/th.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: th.js
- * Thai language file.
- *
- * File Authors:
- * Audy Charin Arsakit (arsakit@gmail.com)
- * Joy Piyanoot Promnuan (piyanoot@gmail.com)
+ *
+ * Thai language file.
*/
var FCKLang =
@@ -50,10 +45,11 @@ InsertLinkLbl : "ลิงค์เชื่à¸à¸¡à¹‚ยงเว็บ à¸à¸µà
InsertLink : "à¹à¸—รà¸/à¹à¸à¹‰à¹„ข ลิงค์",
RemoveLink : "ลบ ลิงค์",
Anchor : "à¹à¸—รà¸/à¹à¸à¹‰à¹„ข Anchor",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "รูปภาพ",
InsertImage : "à¹à¸—รà¸/à¹à¸à¹‰à¹„ข รูปภาพ",
-InsertFlashLbl : "Flash", //MISSING
-InsertFlash : "Insert/Edit Flash", //MISSING
+InsertFlashLbl : "ไฟล์ Flash",
+InsertFlash : "à¹à¸—รà¸/à¹à¸à¹‰à¹„ข ไฟล์ Flash",
InsertTableLbl : "ตาราง",
InsertTable : "à¹à¸—รà¸/à¹à¸à¹‰à¹„ข ตาราง",
InsertLineLbl : "เส้นคั่นบรรทัด",
@@ -75,6 +71,7 @@ RightJustify : "จัดชิดขวา",
BlockJustify : "จัดพà¸à¸”ีหน้าà¸à¸£à¸°à¸”าษ",
DecreaseIndent : "ลดระยะย่à¸à¸«à¸™à¹‰à¸²",
IncreaseIndent : "เพิ่มระยะย่à¸à¸«à¸™à¹‰à¸²",
+Blockquote : "Blockquote", //MISSING
Undo : "ยà¸à¹€à¸¥à¸´à¸à¸„ำสั่ง",
Redo : "ทำซ้ำคำสั่ง",
NumberedListLbl : "ลำดับรายà¸à¸²à¸£à¹à¸šà¸šà¸•à¸±à¸§à¹€à¸¥à¸‚",
@@ -94,8 +91,8 @@ Find : "ค้นหา",
Replace : "ค้นหาà¹à¸¥à¸°à¹à¸—นที่",
SpellCheck : "ตรวจà¸à¸²à¸£à¸ªà¸°à¸à¸”คำ",
UniversalKeyboard : "คีย์บà¸à¸£à¹Œà¸”หลาà¸à¸ าษา",
-PageBreakLbl : "Page Break", //MISSING
-PageBreak : "Insert Page Break", //MISSING
+PageBreakLbl : "ใส่ตัวà¹à¸šà¹ˆà¸‡à¸«à¸™à¹‰à¸² Page Break",
+PageBreak : "à¹à¸—รà¸à¸•à¸±à¸§à¹à¸šà¹ˆà¸‡à¸«à¸™à¹‰à¸² Page Break",
Form : "à¹à¸šà¸šà¸Ÿà¸à¸£à¹Œà¸¡",
Checkbox : "เช็คบ๊à¸à¸",
@@ -107,26 +104,33 @@ Button : "ปุ่ม",
SelectionField : "à¹à¸–บตัวเลืà¸à¸",
ImageButton : "ปุ่มà¹à¸šà¸šà¸£à¸¹à¸›à¸ าพ",
-FitWindow : "Maximize the editor size", //MISSING
+FitWindow : "ขยายขนาดตัวà¸à¸µà¸”ิตเตà¸à¸£à¹Œ",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "à¹à¸à¹‰à¹„ข ลิงค์",
-CellCM : "Cell", //MISSING
-RowCM : "Row", //MISSING
-ColumnCM : "Column", //MISSING
-InsertRow : "à¹à¸—รà¸à¹à¸–ว",
+CellCM : "ช่à¸à¸‡à¸•à¸²à¸£à¸²à¸‡",
+RowCM : "à¹à¸–ว",
+ColumnCM : "คà¸à¸¥à¸±à¸¡à¸™à¹Œ",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "ลบà¹à¸–ว",
-InsertColumn : "à¹à¸—รà¸à¸ªà¸”มน์",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "ลบสดมน์",
-InsertCell : "à¹à¸—รà¸à¸Šà¹ˆà¸à¸‡",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "ลบช่à¸à¸‡",
MergeCells : "ผสานช่à¸à¸‡",
-SplitCell : "à¹à¸¢à¸à¸Šà¹ˆà¸à¸‡",
-TableDelete : "Delete Table", //MISSING
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
+TableDelete : "ลบตาราง",
CellProperties : "คุณสมบัติขà¸à¸‡à¸Šà¹ˆà¸à¸‡",
TableProperties : "คุณสมบัติขà¸à¸‡à¸•à¸²à¸£à¸²à¸‡",
ImageProperties : "คุณสมบัติขà¸à¸‡à¸£à¸¹à¸›à¸ าพ",
-FlashProperties : "Flash Properties", //MISSING
+FlashProperties : "คุณสมบัติขà¸à¸‡à¹„ฟล์ Flash",
AnchorProp : "รายละเà¸à¸µà¸¢à¸” Anchor",
ButtonProp : "รายละเà¸à¸µà¸¢à¸”ขà¸à¸‡ ปุ่ม",
@@ -139,7 +143,7 @@ SelectionFieldProp : "คุณสมบัติขà¸à¸‡ à¹à¸–บตัวเ
TextareaProp : "คุณสมบัติขà¸à¸‡ เท็à¸à¹à¸à¹€à¸£à¸µà¸¢",
FormProp : "คุณสมบัติขà¸à¸‡ à¹à¸šà¸šà¸Ÿà¸à¸£à¹Œà¸¡",
-FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",
// Alerts and Messages
ProcessingXHTML : "โปรà¹à¸à¸£à¸¡à¸à¸³à¸¥à¸±à¸‡à¸—ำงานด้วยเทคโนโลยี XHTML à¸à¸£à¸¸à¸“ารà¸à¸ªà¸±à¸à¸„รู่...",
@@ -150,9 +154,9 @@ UnknownToolbarItem : "ไม่สามารถระบุปุ่มเคà
UnknownCommand : "ไม่สามารถระบุชื่à¸à¸„ำสั่งได้ \"%1\"",
NotImplemented : "ไม่สามารถใช้งานคำสั่งได้",
UnknownToolbarSet : "ไม่มีà¸à¸²à¸£à¸•à¸´à¸”ตั้งชุดคำสั่งในà¹à¸–บเครื่à¸à¸‡à¸¡à¸·à¸ \"%1\" à¸à¸£à¸¸à¸“าติดต่à¸à¸œà¸¹à¹‰à¸”ูà¹à¸¥à¸£à¸°à¸šà¸š",
-NoActiveX : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", //MISSING
-BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.", //MISSING
-DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.", //MISSING
+NoActiveX : "โปรà¹à¸à¸£à¸¡à¸—่à¸à¸‡à¸à¸´à¸™à¹€à¸•à¸à¸£à¹Œà¹€à¸™à¹‡à¸•à¸‚à¸à¸‡à¸—่านไม่à¸à¸™à¸¸à¸à¸²à¸•à¸´à¹ƒà¸«à¹‰à¸à¸µà¸”ิตเตà¸à¸£à¹Œà¸—ำงาน \"Run ActiveX controls and plug-ins\". หาà¸à¹„ม่à¸à¸™à¸¸à¸à¸²à¸•à¸´à¹ƒà¸«à¹‰à¹ƒà¸Šà¹‰à¸‡à¸²à¸™ ActiveX controls ท่านจะไม่สามารถใช้งานได้à¸à¸¢à¹ˆà¸²à¸‡à¹€à¸•à¹‡à¸¡à¸›à¸£à¸°à¸ªà¸´à¸—ธิภาพ.",
+BrowseServerBlocked : "เปิดหน้าต่างป๊à¸à¸šà¸à¸±à¸žà¹€à¸žà¸·à¹ˆà¸à¸—ำงานต่à¸à¹„ม่ได้ à¸à¸£à¸¸à¸“าปิดเครื่à¸à¸‡à¸¡à¸·à¸à¸›à¹‰à¸à¸‡à¸à¸±à¸™à¸›à¹Šà¸à¸šà¸à¸±à¸žà¹ƒà¸™à¹‚ปรà¹à¸à¸£à¸¡à¸—่à¸à¸‡à¸à¸´à¸™à¹€à¸•à¸à¸£à¹Œà¹€à¸™à¹‡à¸•à¸‚à¸à¸‡à¸—่านด้วย",
+DialogBlocked : "เปิดหน้าต่างป๊à¸à¸šà¸à¸±à¸žà¹€à¸žà¸·à¹ˆà¸à¸—ำงานต่à¸à¹„ม่ได้ à¸à¸£à¸¸à¸“าปิดเครื่à¸à¸‡à¸¡à¸·à¸à¸›à¹‰à¸à¸‡à¸à¸±à¸™à¸›à¹Šà¸à¸šà¸à¸±à¸žà¹ƒà¸™à¹‚ปรà¹à¸à¸£à¸¡à¸—่à¸à¸‡à¸à¸´à¸™à¹€à¸•à¸à¸£à¹Œà¹€à¸™à¹‡à¸•à¸‚à¸à¸‡à¸—่านด้วย",
// Dialogs
DlgBtnOK : "ตà¸à¸¥à¸‡",
@@ -161,8 +165,8 @@ DlgBtnClose : "ปิด",
DlgBtnBrowseServer : "เปิดหน้าต่างจัดà¸à¸²à¸£à¹„ฟล์à¸à¸±à¸žà¹‚หลด",
DlgAdvancedTag : "ขั้นสูง",
DlgOpOther : "<à¸à¸·à¹ˆà¸™à¹†>",
-DlgInfoTab : "Info", //MISSING
-DlgAlertUrl : "Please insert the URL", //MISSING
+DlgInfoTab : "à¸à¸´à¸™à¹‚ฟ",
+DlgAlertUrl : "à¸à¸£à¸¸à¸“าระบุ URL",
// General Dialogs Labels
DlgGenNotSet : "<ไม่ระบุ>",
@@ -207,17 +211,17 @@ DlgImgAlignTextTop : "ใต้ตัวà¸à¸±à¸à¸©à¸£",
DlgImgAlignTop : "บนสุด",
DlgImgPreview : "หน้าเà¸à¸à¸ªà¸²à¸£à¸•à¸±à¸§à¸à¸¢à¹ˆà¸²à¸‡",
DlgImgAlertUrl : "à¸à¸£à¸¸à¸“าระบุที่à¸à¸¢à¸¹à¹ˆà¸à¹‰à¸²à¸‡à¸à¸´à¸‡à¸à¸à¸™à¹„ลน์ขà¸à¸‡à¹„ฟล์รูปภาพ (URL)",
-DlgImgLinkTab : "Link", //MISSING
+DlgImgLinkTab : "ลิ้งค์",
// Flash Dialog
-DlgFlashTitle : "Flash Properties", //MISSING
-DlgFlashChkPlay : "Auto Play", //MISSING
-DlgFlashChkLoop : "Loop", //MISSING
-DlgFlashChkMenu : "Enable Flash Menu", //MISSING
-DlgFlashScale : "Scale", //MISSING
-DlgFlashScaleAll : "Show all", //MISSING
-DlgFlashScaleNoBorder : "No Border", //MISSING
-DlgFlashScaleFit : "Exact Fit", //MISSING
+DlgFlashTitle : "คุณสมบัติขà¸à¸‡à¹„ฟล์ Flash",
+DlgFlashChkPlay : "เล่นà¸à¸±à¸•à¹‚นมัติ Auto Play",
+DlgFlashChkLoop : "เล่นวนรà¸à¸š Loop",
+DlgFlashChkMenu : "ให้ใช้งานเมนูขà¸à¸‡ Flash",
+DlgFlashScale : "à¸à¸±à¸•à¸£à¸²à¸ªà¹ˆà¸§à¸™ Scale",
+DlgFlashScaleAll : "à¹à¸ªà¸”งให้เห็นทั้งหมด Show all",
+DlgFlashScaleNoBorder : "ไม่à¹à¸ªà¸”งเส้นขà¸à¸š No Border",
+DlgFlashScaleFit : "à¹à¸ªà¸”งให้พà¸à¸”ีà¸à¸±à¸šà¸žà¸·à¹‰à¸™à¸—ี่ Exact Fit",
// Link Dialog
DlgLnkWindowTitle : "ลิงค์เชื่à¸à¸¡à¹‚ยงเว็บ à¸à¸µà¹€à¸¡à¸¥à¹Œ รูปภาพ หรืà¸à¹„ฟล์à¸à¸·à¹ˆà¸™à¹†",
@@ -234,7 +238,7 @@ DlgLnkURL : "ที่à¸à¸¢à¸¹à¹ˆà¸à¹‰à¸²à¸‡à¸à¸´à¸‡à¸à¸à¸™à¹„ลน์ (
DlgLnkAnchorSel : "ระบุข้à¸à¸¡à¸¹à¸¥à¸‚à¸à¸‡à¸ˆà¸¸à¸”เชื่à¸à¸¡à¹‚ยง (Anchor)",
DlgLnkAnchorByName : "ชื่à¸",
DlgLnkAnchorById : "ไà¸à¸”ี",
-DlgLnkNoAnchors : "<ยังไม่มีจุดเชื่à¸à¸¡à¹‚ยงภายในหน้าเà¸à¸à¸ªà¸²à¸£à¸™à¸µà¹‰>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(ยังไม่มีจุดเชื่à¸à¸¡à¹‚ยงภายในหน้าเà¸à¸à¸ªà¸²à¸£à¸™à¸µà¹‰)",
DlgLnkEMail : "à¸à¸µà¹€à¸¡à¸¥à¹Œ (E-Mail)",
DlgLnkEMailSubject : "หัวเรื่à¸à¸‡",
DlgLnkEMailBody : "ข้à¸à¸„วาม",
@@ -267,7 +271,7 @@ DlgLnkPopTop : "พิà¸à¸±à¸”บน (Top Position)",
DlnLnkMsgNoUrl : "à¸à¸£à¸¸à¸“าระบุที่à¸à¸¢à¸¹à¹ˆà¸à¹‰à¸²à¸‡à¸à¸´à¸‡à¸à¸à¸™à¹„ลน์ (URL)",
DlnLnkMsgNoEMail : "à¸à¸£à¸¸à¸“าระบุà¸à¸µà¹€à¸¡à¸¥à¹Œ (E-mail)",
DlnLnkMsgNoAnchor : "à¸à¸£à¸¸à¸“าระบุจุดเชื่à¸à¸¡à¹‚ยง (Anchor)",
-DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING
+DlnLnkMsgInvPopName : "ชื่à¸à¸‚à¸à¸‡à¸«à¸™à¹‰à¸²à¸•à¹ˆà¸²à¸‡à¸›à¹Šà¸à¸šà¸à¸±à¸ž จะต้à¸à¸‡à¸‚ึ้นต้นด้วยตัวà¸à¸±à¸à¸©à¸£à¹€à¸—่านั้น à¹à¸¥à¸°à¸•à¹‰à¸à¸‡à¹„ม่มีช่à¸à¸‡à¸§à¹ˆà¸²à¸‡à¹ƒà¸™à¸Šà¸·à¹ˆà¸",
// Color Dialog
DlgColorTitle : "เลืà¸à¸à¸ªà¸µ",
@@ -276,7 +280,7 @@ DlgColorHighlight : "ตัวà¸à¸¢à¹ˆà¸²à¸‡à¸ªà¸µ",
DlgColorSelected : "สีที่เลืà¸à¸",
// Smiley Dialog
-DlgSmileyTitle : "à¹à¸—รà¸à¸ªà¸±à¸à¸±à¸à¸©à¸“์สื่à¸à¸à¸²à¸£à¸¡à¸“์",
+DlgSmileyTitle : "à¹à¸—รà¸à¸ªà¸±à¸à¸¥à¸±à¸à¸©à¸“์สื่à¸à¸à¸²à¸£à¸¡à¸“์",
// Special Character Dialog
DlgSpecialCharTitle : "à¹à¸—รà¸à¸•à¸±à¸§à¸à¸±à¸à¸©à¸£à¸žà¸´à¹€à¸¨à¸©",
@@ -298,7 +302,7 @@ DlgTableHeight : "สูง",
DlgTableCellSpace : "ระยะà¹à¸™à¸§à¸™à¸à¸™à¸™",
DlgTableCellPad : "ระยะà¹à¸™à¸§à¸•à¸±à¹‰à¸‡",
DlgTableCaption : "หัวเรื่à¸à¸‡à¸‚à¸à¸‡à¸•à¸²à¸£à¸²à¸‡",
-DlgTableSummary : "Summary", //MISSING
+DlgTableSummary : "สรุปความ",
// Table Cell Dialog
DlgCellTitle : "คุณสมบัติขà¸à¸‡ ช่à¸à¸‡",
@@ -327,6 +331,9 @@ DlgCellBackColor : "สีพื้นหลัง",
DlgCellBorderColor : "สีเส้นขà¸à¸š",
DlgCellBtnSelect : "เลืà¸à¸..",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "ค้นหา",
DlgFindFindBtn : "ค้นหา",
@@ -342,17 +349,17 @@ DlgReplaceReplAllBtn : "à¹à¸—นที่ทั้งหมดที่พบ",
DlgReplaceWordChk : "ต้à¸à¸‡à¸•à¸£à¸‡à¸à¸±à¸™à¸—ุà¸à¸„ำ",
// Paste Operations / Dialog
-PasteErrorPaste : "ไม่สามารถวางข้à¸à¸„วามที่สำเนามาได้เนื่à¸à¸‡à¸ˆà¸²à¸à¸à¸²à¸£à¸à¸³à¸«à¸™à¸”ค่าระดับความปลà¸à¸”ภัย. à¸à¸£à¸¸à¸“าใช้ปุ่มลัดเพื่à¸à¸§à¸²à¸‡à¸‚้à¸à¸„วามà¹à¸—น (à¸à¸”ปุ่ม Ctrl à¹à¸¥à¸°à¸•à¸±à¸§ V พร้à¸à¸¡à¸à¸±à¸™).",
PasteErrorCut : "ไม่สามารถตัดข้à¸à¸„วามที่เลืà¸à¸à¹„ว้ได้เนื่à¸à¸‡à¸ˆà¸²à¸à¸à¸²à¸£à¸à¸³à¸«à¸™à¸”ค่าระดับความปลà¸à¸”ภัย. à¸à¸£à¸¸à¸“าใช้ปุ่มลัดเพื่à¸à¸§à¸²à¸‡à¸‚้à¸à¸„วามà¹à¸—น (à¸à¸”ปุ่ม Ctrl à¹à¸¥à¸°à¸•à¸±à¸§ X พร้à¸à¸¡à¸à¸±à¸™).",
PasteErrorCopy : "ไม่สามารถสำเนาข้à¸à¸„วามที่เลืà¸à¸à¹„ว้ได้เนื่à¸à¸‡à¸ˆà¸²à¸à¸à¸²à¸£à¸à¸³à¸«à¸™à¸”ค่าระดับความปลà¸à¸”ภัย. à¸à¸£à¸¸à¸“าใช้ปุ่มลัดเพื่à¸à¸§à¸²à¸‡à¸‚้à¸à¸„วามà¹à¸—น (à¸à¸”ปุ่ม Ctrl à¹à¸¥à¸°à¸•à¸±à¸§ C พร้à¸à¸¡à¸à¸±à¸™).",
PasteAsText : "วางà¹à¸šà¸šà¸•à¸±à¸§à¸à¸±à¸à¸©à¸£à¸˜à¸£à¸£à¸¡à¸”า",
PasteFromWord : "วางà¹à¸šà¸šà¸•à¸±à¸§à¸à¸±à¸à¸©à¸£à¸ˆà¸²à¸à¹‚ปรà¹à¸à¸£à¸¡à¹€à¸§à¸´à¸£à¹Œà¸”",
-DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.", //MISSING
-DlgPasteIgnoreFont : "Ignore Font Face definitions", //MISSING
-DlgPasteRemoveStyles : "Remove Styles definitions", //MISSING
-DlgPasteCleanBox : "Clean Up Box", //MISSING
+DlgPasteMsg2 : "à¸à¸£à¸¸à¸“าใช้คีย์บà¸à¸£à¹Œà¸”เท่านั้น โดยà¸à¸”ปุ๋ม (<strong>Ctrl à¹à¸¥à¸° V</strong>)พร้à¸à¸¡à¹†à¸à¸±à¸™ à¹à¸¥à¸°à¸à¸” <strong>OK</strong>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
+DlgPasteIgnoreFont : "ไม่สนใจ Font Face definitions",
+DlgPasteRemoveStyles : "ลบ Styles definitions",
+DlgPasteCleanBox : "ล้างข้à¸à¸¡à¸¹à¸¥à¹ƒà¸™ Box",
// Color Picker
ColorAutomatic : "สีà¸à¸±à¸•à¹‚นมัติ",
@@ -386,9 +393,9 @@ IeSpellDownload : "ไม่ได้ติดตั้งระบบตรà¸
// Button Dialog
DlgButtonText : "ข้à¸à¸„วาม (ค่าตัวà¹à¸›à¸£)",
DlgButtonType : "ข้à¸à¸„วาม",
-DlgButtonTypeBtn : "Button", //MISSING
-DlgButtonTypeSbm : "Submit", //MISSING
-DlgButtonTypeRst : "Reset", //MISSING
+DlgButtonTypeBtn : "Button",
+DlgButtonTypeSbm : "Submit",
+DlgButtonTypeRst : "Reset",
// Checkbox and Radio Button Dialogs
DlgCheckboxName : "ชื่à¸",
@@ -460,15 +467,15 @@ DlgDocLangDirLTR : "จาà¸à¸‹à¹‰à¸²à¸¢à¹„ปขวา (LTR)",
DlgDocLangDirRTL : "จาà¸à¸‚วาไปซ้าย (RTL)",
DlgDocLangCode : "รหัสภาษา",
DlgDocCharSet : "ชุดตัวà¸à¸±à¸à¸©à¸£",
-DlgDocCharSetCE : "Central European", //MISSING
-DlgDocCharSetCT : "Chinese Traditional (Big5)", //MISSING
-DlgDocCharSetCR : "Cyrillic", //MISSING
-DlgDocCharSetGR : "Greek", //MISSING
-DlgDocCharSetJP : "Japanese", //MISSING
-DlgDocCharSetKR : "Korean", //MISSING
-DlgDocCharSetTR : "Turkish", //MISSING
-DlgDocCharSetUN : "Unicode (UTF-8)", //MISSING
-DlgDocCharSetWE : "Western European", //MISSING
+DlgDocCharSetCE : "Central European",
+DlgDocCharSetCT : "Chinese Traditional (Big5)",
+DlgDocCharSetCR : "Cyrillic",
+DlgDocCharSetGR : "Greek",
+DlgDocCharSetJP : "Japanese",
+DlgDocCharSetKR : "Korean",
+DlgDocCharSetTR : "Turkish",
+DlgDocCharSetUN : "Unicode (UTF-8)",
+DlgDocCharSetWE : "Western European",
DlgDocCharSetOther : "ชุดตัวà¸à¸±à¸à¸©à¸£à¸à¸·à¹ˆà¸™à¹†",
DlgDocDocType : "ประเภทขà¸à¸‡à¹€à¸à¸à¸ªà¸²à¸£",
@@ -493,17 +500,17 @@ DlgDocMeCopy : "สงวนลิขสิทธิ์",
DlgDocPreview : "ตัวà¸à¸¢à¹ˆà¸²à¸‡à¸«à¸™à¹‰à¸²à¹€à¸à¸à¸ªà¸²à¸£",
// Templates Dialog
-Templates : "Templates", //MISSING
-DlgTemplatesTitle : "Content Templates", //MISSING
-DlgTemplatesSelMsg : "Please select the template to open in the editor<br />(the actual contents will be lost):", //MISSING
-DlgTemplatesLoading : "Loading templates list. Please wait...", //MISSING
-DlgTemplatesNoTpl : "(No templates defined)", //MISSING
-DlgTemplatesReplace : "Replace actual contents", //MISSING
+Templates : "เทมเพลต",
+DlgTemplatesTitle : "เทมเพลตขà¸à¸‡à¸ªà¹ˆà¸§à¸™à¹€à¸™à¸·à¹‰à¸à¸«à¸²à¹€à¸§à¹‡à¸šà¹„ซต์",
+DlgTemplatesSelMsg : "à¸à¸£à¸¸à¸“าเลืà¸à¸ เทมเพลต เพื่à¸à¸™à¸³à¹„ปà¹à¸à¹‰à¹„ขในà¸à¸µà¸”ิตเตà¸à¸£à¹Œ<br />(เนื้à¸à¸«à¸²à¸ªà¹ˆà¸§à¸™à¸™à¸µà¹‰à¸ˆà¸°à¸«à¸²à¸¢à¹„ป):",
+DlgTemplatesLoading : "à¸à¸³à¸¥à¸±à¸‡à¹‚หลดรายà¸à¸²à¸£à¹€à¸—มเพลตทั้งหมด...",
+DlgTemplatesNoTpl : "(ยังไม่มีà¸à¸²à¸£à¸à¸³à¸«à¸™à¸”เทมเพลต)",
+DlgTemplatesReplace : "à¹à¸—นที่เนื้à¸à¸«à¸²à¹€à¸§à¹‡à¸šà¹„ซต์ที่เลืà¸à¸",
// About Dialog
DlgAboutAboutTab : "เà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¹‚ปรà¹à¸à¸£à¸¡",
DlgAboutBrowserInfoTab : "โปรà¹à¸à¸£à¸¡à¸—่à¸à¸‡à¹€à¸§à¹‡à¸šà¸—ี่ท่านใช้",
-DlgAboutLicenseTab : "License", //MISSING
+DlgAboutLicenseTab : "ลิขสิทธิ์",
DlgAboutVersion : "รุ่น",
-DlgAboutInfo : "ข้à¸à¸¡à¸¹à¸¥à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•à¸´à¸¡à¸ าษาไทยติดต่à¸</BR>นาย ชรินทร์ à¸à¸²à¸©à¸²à¸à¸´à¸ˆ (à¸à¸¹à¹‰à¸”)</BR><A HREF='mailto:arsakit@gmail.com'>arsakit@gmail.com</A> tel. (+66) 06-9241924</BR>หรืà¸à¸”าวน์โหลดรุ่นภาษาไทยได้ที่เว็บไซต์</BR><A HREF='http://www.thaimall4u.com'>www.Thaimall4u.com</A></BR>ข้à¸à¸¡à¸¹à¸¥à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•à¸´à¸¡à¸ าษาà¸à¸±à¸‡à¸à¸¤à¸© à¸à¸£à¸¸à¸“าไปที่นี่"
-};-
\ No newline at end of file
+DlgAboutInfo : "For further information go to" //MISSING
+};
diff --git a/editor/editor/lang/tr.js b/editor/editor/lang/tr.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: tr.js
- * Turkish language file.
- *
- * File Authors:
- * Bogac Guven (bogacmx@yahoo.com)
- * Burak Gürsoy (burak@cpan.org)
+ *
+ * Turkish language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "Köprü",
InsertLink : "Köprü Ekle/Düzenle",
RemoveLink : "Köprü Kaldır",
Anchor : "Çapa Ekle/Düzenle",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Resim",
InsertImage : "Resim Ekle/Düzenle",
InsertFlashLbl : "Flash",
@@ -75,6 +71,7 @@ RightJustify : "Sağa Dayalı",
BlockJustify : "İki Kenara Yaslanmış",
DecreaseIndent : "Sekme Azalt",
IncreaseIndent : "Sekme Arttır",
+Blockquote : "Blockquote", //MISSING
Undo : "Geri Al",
Redo : "Tekrarla",
NumberedListLbl : "Numaralı Liste",
@@ -108,20 +105,27 @@ SelectionField : "Seçim Menüsü",
ImageButton : "Resimli Düğme",
FitWindow : "Düzenleyici boyutunu büyüt",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Köprü Düzenle",
CellCM : "Hücre",
RowCM : "Satır",
ColumnCM : "Sütun",
-InsertRow : "Satır Ekle",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Satır Sil",
-InsertColumn : "Sütun Ekle",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Sütun Sil",
-InsertCell : "Hücre Ekle",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Hücre Sil",
MergeCells : "Hücreleri Birleştir",
-SplitCell : "Hücre Böl",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Tabloyu Sil",
CellProperties : "Hücre Özellikleri",
TableProperties : "Tablo Özellikleri",
@@ -139,7 +143,7 @@ SelectionFieldProp : "Seçim Menüsü Özellikleri",
TextareaProp : "Çok Satırlı Metin Özellikleri",
FormProp : "Form Özellikleri",
-FontFormats : "Normal;Biçimli;Adres;Başlık 1;Başlık 2;Başlık 3;Başlık 4;Başlık 5;Başlık 6;Paragraf (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Biçimli;Adres;Başlık 1;Başlık 2;Başlık 3;Başlık 4;Başlık 5;Başlık 6;Paragraf (DIV)",
// Alerts and Messages
ProcessingXHTML : "XHTML işleniyor. Lütfen bekleyin...",
@@ -234,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Çapa Seç",
DlgLnkAnchorByName : "Çapa Adı ile",
DlgLnkAnchorById : "Eleman Kimlik Numarası ile",
-DlgLnkNoAnchors : "<Bu belgede hiç çapa yok>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Bu belgede hiç çapa yok)",
DlgLnkEMail : "E-Posta Adresi",
DlgLnkEMailSubject : "Ä°leti Konusu",
DlgLnkEMailBody : "İleti Gövdesi",
@@ -327,6 +331,9 @@ DlgCellBackColor : "Arka Plan Rengi",
DlgCellBorderColor : "Kenar Rengi",
DlgCellBtnSelect : "Seç...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Bul",
DlgFindFindBtn : "Bul",
@@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "Tümünü Değiştir",
DlgReplaceWordChk : "Kelimenin tamamı uysun",
// Paste Operations / Dialog
-PasteErrorPaste : "Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik yapıştırma işlemine izin vermiyor. İşlem için (Ctrl+V) tuşlarını kullanın.",
PasteErrorCut : "Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme işlemine izin vermiyor. İşlem için (Ctrl+X) tuşlarını kullanın.",
PasteErrorCopy : "Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama işlemine izin vermiyor. İşlem için (Ctrl+C) tuşlarını kullanın.",
@@ -350,6 +356,7 @@ PasteAsText : "Düz Metin Olarak Yapıştır",
PasteFromWord : "Word'den yapıştır",
DlgPasteMsg2 : "Lütfen aşağıdaki kutunun içine yapıştırın. (<STRONG>Ctrl+V</STRONG>) ve <STRONG>Tamam</STRONG> butonunu tıklayın.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Yazı Tipi tanımlarını yoksay",
DlgPasteRemoveStyles : "Biçem Tanımlarını çıkar",
DlgPasteCleanBox : "Temizlik Kutusu",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Gezgin Bilgisi",
DlgAboutLicenseTab : "Lisans",
DlgAboutVersion : "sürüm",
DlgAboutInfo : "Daha fazla bilgi için:"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/uk.js b/editor/editor/lang/uk.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: uk.js
- * Ukrainian language file.
- *
- * File Authors:
- * Alexander Pervak (pervak@gmail.com)
+ *
+ * Ukrainian language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "ПоÑиланнÑ",
InsertLink : "Ð’Ñтавити/Редагувати поÑиланнÑ",
RemoveLink : "Знищити поÑиланнÑ",
Anchor : "Ð’Ñтавити/Редагувати Ñкір",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "ЗображеннÑ",
InsertImage : "Ð’Ñтавити/Редагувати зображеннÑ",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "По правому краю",
BlockJustify : "По ширині",
DecreaseIndent : "Зменшити відÑтуп",
IncreaseIndent : "Збільшити відÑтуп",
+Blockquote : "Blockquote", //MISSING
Undo : "Повернути",
Redo : "Повторити",
NumberedListLbl : "Ðумерований ÑпиÑок",
@@ -107,20 +105,27 @@ SelectionField : "СпиÑок",
ImageButton : "Кнопка із зображеннÑм",
FitWindow : "Розвернути вікно редактора",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Ð’Ñтавити поÑиланнÑ",
CellCM : "ОÑередок",
RowCM : "Ð Ñдок",
ColumnCM : "Колонка",
-InsertRow : "Ð’Ñтавити Ñтроку",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Видалити Ñтроки",
-InsertColumn : "Ð’Ñтавити колонку",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Видалити колонки",
-InsertCell : "Ð’Ñтавити комірку",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Видалити комірки",
MergeCells : "Об'єднати комірки",
-SplitCell : "Роз'єднати комірку",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Видалити таблицю",
CellProperties : "ВлаÑтивоÑÑ‚Ñ– комірки",
TableProperties : "ВлаÑтивоÑÑ‚Ñ– таблиці",
@@ -138,7 +143,7 @@ SelectionFieldProp : "ВлаÑтивоÑÑ‚Ñ– ÑпиÑку",
TextareaProp : "ВлаÑтивоÑÑ‚Ñ– текÑтової облаÑÑ‚Ñ–",
FormProp : "ВлаÑтивоÑÑ‚Ñ– форми",
-FontFormats : "Ðормальний;Форматований;ÐдреÑа;Заголовок 1;Заголовок 2;Заголовок 3;Заголовок 4;Заголовок 5;Заголовок 6", //REVIEW : Check _getfontformat.html
+FontFormats : "Ðормальний;Форматований;ÐдреÑа;Заголовок 1;Заголовок 2;Заголовок 3;Заголовок 4;Заголовок 5;Заголовок 6;Ðормальний (DIV)",
// Alerts and Messages
ProcessingXHTML : "Обробка XHTML. Зачекайте, будь лаÑка...",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Оберіть Ñкір",
DlgLnkAnchorByName : "За ім'Ñм ÑкорÑ",
DlgLnkAnchorById : "За ідентифікатором елемента",
-DlgLnkNoAnchors : "<Ðемає Ñкорів доÑтупних в цьому документі>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Ðемає Ñкорів доÑтупних в цьому документі)",
DlgLnkEMail : "ÐдреÑа ел. пошти",
DlgLnkEMailSubject : "Тема лиÑта",
DlgLnkEMailBody : "Тіло повідомленнÑ",
@@ -326,6 +331,9 @@ DlgCellBackColor : "Колір фона",
DlgCellBorderColor : "Колір бордюра",
DlgCellBtnSelect : "Оберіть...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Пошук",
DlgFindFindBtn : "Пошук",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Замінити вÑе",
DlgReplaceWordChk : "Збіг цілих Ñлів",
// Paste Operations / Dialog
-PasteErrorPaste : "ÐаÑтройки безпеки вашого браузера не дозволÑÑŽÑ‚ÑŒ редактору автоматично виконувати операції вÑтавки. Будь лаÑка, викориÑтовуйте клавіатуру Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ (Ctrl+V).",
PasteErrorCut : "ÐаÑтройки безпеки вашого браузера не дозволÑÑŽÑ‚ÑŒ редактору автоматично виконувати операції вирізуваннÑ. Будь лаÑка, викориÑтовуйте клавіатуру Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ (Ctrl+X).",
PasteErrorCopy : "ÐаÑтройки безпеки вашого браузера не дозволÑÑŽÑ‚ÑŒ редактору автоматично виконувати операції копіюваннÑ. Будь лаÑка, викориÑтовуйте клавіатуру Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ (Ctrl+C).",
@@ -349,6 +356,7 @@ PasteAsText : "Ð’Ñтавити тільки текÑÑ‚",
PasteFromWord : "Ð’Ñтавити з Word",
DlgPasteMsg2 : "Будь-лаÑка, вÑтавте з буфера обміну в цю облаÑÑ‚ÑŒ, кориÑтуючиÑÑŒ комбінацією клавіш (<STRONG>Ctrl+V</STRONG>) та натиÑніть <STRONG>OK</STRONG>.",
+DlgPasteSec : "Редактор не може отримати прÑмий доÑтуп до буферу обміну у зв'Ñзку з налаштуваннÑми вашого браузера. Вам потрібно вÑтавити інформацію повторно в це вікно.",
DlgPasteIgnoreFont : "Ігнорувати Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÑ€Ð¸Ñ„Ñ‚Ñ–Ð²",
DlgPasteRemoveStyles : "Видалити Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñтилів",
DlgPasteCleanBox : "ОчиÑтити облаÑÑ‚ÑŒ",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°",
DlgAboutLicenseTab : "ЛіцензіÑ",
DlgAboutVersion : "ВерÑÑ–Ñ",
DlgAboutInfo : "Додаткову інформацію дивітьÑÑ Ð½Ð° "
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/vi.js b/editor/editor/lang/vi.js
@@ -1,29 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: vi.js
- * Vietnamese language file.
- *
- * File Authors:
- * Phan Binh Giang (bbbgiang@yahoo.com)
- * Hà Thanh Hải (thanhhai.ha@gmail.com)
+ *
+ * Vietnamese language file.
*/
var FCKLang =
@@ -50,6 +45,7 @@ InsertLinkLbl : "Liên kết",
InsertLink : "Chèn/Sá»a Liên kết",
RemoveLink : "Xoá Liên kết",
Anchor : "Chèn/Sá»a Neo",
+AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Hình ảnh",
InsertImage : "Chèn/Sá»a Hình ảnh",
InsertFlashLbl : "Flash",
@@ -75,6 +71,7 @@ RightJustify : "Canh phải",
BlockJustify : "Canh Ä‘á»u",
DecreaseIndent : "Dịch ra ngoà i",
IncreaseIndent : "Dịch và o trong",
+Blockquote : "Blockquote", //MISSING
Undo : "Khôi phục thao tác",
Redo : "Là m lại thao tác",
NumberedListLbl : "Danh sách có thứ tự",
@@ -108,20 +105,27 @@ SelectionField : "Ô chá»n",
ImageButton : "Nút hình ảnh",
FitWindow : "Mở rá»™ng tối Ä‘a kÃch thÆ°á»›c trình biên táºp",
+ShowBlocks : "Show Blocks", //MISSING
// Context Menu
EditLink : "Sá»a Liên kết",
CellCM : "Ô",
RowCM : "HÃ ng",
ColumnCM : "Cá»™t",
-InsertRow : "Chèn Hà ng",
+InsertRowAfter : "Insert Row After", //MISSING
+InsertRowBefore : "Insert Row Before", //MISSING
DeleteRows : "Xoá Hà ng",
-InsertColumn : "Chèn Cột",
+InsertColumnAfter : "Insert Column After", //MISSING
+InsertColumnBefore : "Insert Column Before", //MISSING
DeleteColumns : "Xoá Cột",
-InsertCell : "Chèn Ô",
+InsertCellAfter : "Insert Cell After", //MISSING
+InsertCellBefore : "Insert Cell Before", //MISSING
DeleteCells : "Xoá Ô",
MergeCells : "Trộn Ô",
-SplitCell : "Chia Ô",
+MergeRight : "Merge Right", //MISSING
+MergeDown : "Merge Down", //MISSING
+HorizontalSplitCell : "Split Cell Horizontally", //MISSING
+VerticalSplitCell : "Split Cell Vertically", //MISSING
TableDelete : "Xóa Bảng",
CellProperties : "Thuá»™c tÃnh Ô",
TableProperties : "Thuá»™c tÃnh Bảng",
@@ -139,7 +143,7 @@ SelectionFieldProp : "Thuá»™c tÃnh Ô chá»n",
TextareaProp : "Thuá»™c tÃnh Vùng văn bản",
FormProp : "Thuá»™c tÃnh Biểu mẫu",
-FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
// Alerts and Messages
ProcessingXHTML : "Äang xá» lý XHTML. Vui lòng đợi trong giây lát...",
@@ -234,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "Chá»n má»™t Neo",
DlgLnkAnchorByName : "Theo Tên Neo",
DlgLnkAnchorById : "Theo Äịnh danh Element",
-DlgLnkNoAnchors : "<Không có Neo nà o trong tà i liệu>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(Không có Neo nà o trong tà i liệu)",
DlgLnkEMail : "ThÆ° Ä‘iện tá»",
DlgLnkEMailSubject : "Tiêu đỠThông điệp",
DlgLnkEMailBody : "Nội dung Thông điệp",
@@ -327,6 +331,9 @@ DlgCellBackColor : "Mà u ná»n",
DlgCellBorderColor : "Mà u viá»n",
DlgCellBtnSelect : "Chá»n...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+
// Find Dialog
DlgFindTitle : "Tìm kiếm",
DlgFindFindBtn : "Tìm kiếm",
@@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "Thay thế Tất cả",
DlgReplaceWordChk : "Äúng toà n bá»™ từ",
// Paste Operations / Dialog
-PasteErrorPaste : "Các thiết láºp bảo máºt của trình duyệt không cho phép trình biên táºp tá»± Ä‘á»™ng thá»±c thi lệnh dán. Hãy sá» dụng bà n phÃm cho lệnh nà y (Ctrl+V).",
PasteErrorCut : "Các thiết láºp bảo máºt của trình duyệt không cho phép trình biên táºp tá»± Ä‘á»™ng thá»±c thi lệnh cắt. Hãy sá» dụng bà n phÃm cho lệnh nà y (Ctrl+X).",
PasteErrorCopy : "Các thiết láºp bảo máºt của trình duyệt không cho phép trình biên táºp tá»± Ä‘á»™ng thá»±c thi lệnh sao chép. Hãy sá» dụng bà n phÃm cho lệnh nà y (Ctrl+C).",
@@ -350,6 +356,7 @@ PasteAsText : "Dán theo định dạng văn bản thuần",
PasteFromWord : "Dán với định dạng Word",
DlgPasteMsg2 : "Hãy dán ná»™i dung và o trong khung bên dÆ°á»›i, sá» dụng tổ hợp phÃm (<STRONG>Ctrl+V</STRONG>) và nhấn và o nút <STRONG>Äồng ý</STRONG>.",
+DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING
DlgPasteIgnoreFont : "Chấp nháºn các định dạng phông",
DlgPasteRemoveStyles : "Gỡ bỠcác định dạng Styles",
DlgPasteCleanBox : "Xóa nội dung",
@@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Thông tin trình duyệt",
DlgAboutLicenseTab : "Giấy phép",
DlgAboutVersion : "phiên bản",
DlgAboutInfo : "Äể biết thêm thông tin, hãy truy cáºp"
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/zh-cn.js b/editor/editor/lang/zh-cn.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: zh-cn.js
- * Chinese Simplified language file.
- *
- * File Authors:
- * NetRube (netrube@gmail.com)
+ *
+ * Chinese Simplified language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "超链接",
InsertLink : "æ’å…¥/编辑超链接",
RemoveLink : "å–消超链接",
Anchor : "æ’å…¥/编辑锚点链接",
+AnchorDelete : "清除锚点链接",
InsertImageLbl : "图象",
InsertImage : "æ’å…¥/编辑图象",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "å³å¯¹é½",
BlockJustify : "两端对é½",
DecreaseIndent : "å‡å°‘缩进é‡",
IncreaseIndent : "å¢žåŠ ç¼©è¿›é‡",
+Blockquote : "引用文å—",
Undo : "撤消",
Redo : "é‡åš",
NumberedListLbl : "ç¼–å·åˆ—表",
@@ -107,20 +105,27 @@ SelectionField : "列表/èœå•",
ImageButton : "图åƒåŸŸ",
FitWindow : "å…¨å±ç¼–辑",
+ShowBlocks : "显示区å—",
// Context Menu
EditLink : "编辑超链接",
CellCM : "å•å…ƒæ ¼",
RowCM : "行",
ColumnCM : "列",
-InsertRow : "æ’入行",
+InsertRowAfter : "下æ’入行",
+InsertRowBefore : "上æ’入行",
DeleteRows : "åˆ é™¤è¡Œ",
-InsertColumn : "æ’入列",
+InsertColumnAfter : "å³æ’入列",
+InsertColumnBefore : "å·¦æ’入列",
DeleteColumns : "åˆ é™¤åˆ—",
-InsertCell : "æ’å…¥å•å…ƒæ ¼",
+InsertCellAfter : "å³æ’å…¥å•å…ƒæ ¼",
+InsertCellBefore : "å·¦æ’å…¥å•å…ƒæ ¼",
DeleteCells : "åˆ é™¤å•å…ƒæ ¼",
MergeCells : "åˆå¹¶å•å…ƒæ ¼",
-SplitCell : "拆分å•å…ƒæ ¼",
+MergeRight : "å³åˆå¹¶å•å…ƒæ ¼",
+MergeDown : "下åˆå¹¶å•å…ƒæ ¼",
+HorizontalSplitCell : "橫拆分å•å…ƒæ ¼",
+VerticalSplitCell : "縱拆分å•å…ƒæ ¼",
TableDelete : "åˆ é™¤è¡¨æ ¼",
CellProperties : "å•å…ƒæ ¼å±žæ€§",
TableProperties : "è¡¨æ ¼å±žæ€§",
@@ -138,7 +143,7 @@ SelectionFieldProp : "èœå•/列表属性",
TextareaProp : "多行文本属性",
FormProp : "表å•å±žæ€§",
-FontFormats : "普通;å·²ç¼–æŽ’æ ¼å¼;地å€;æ ‡é¢˜ 1;æ ‡é¢˜ 2;æ ‡é¢˜ 3;æ ‡é¢˜ 4;æ ‡é¢˜ 5;æ ‡é¢˜ 6;段è½(DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "普通;å·²ç¼–æŽ’æ ¼å¼;地å€;æ ‡é¢˜ 1;æ ‡é¢˜ 2;æ ‡é¢˜ 3;æ ‡é¢˜ 4;æ ‡é¢˜ 5;æ ‡é¢˜ 6;段è½(DIV)",
// Alerts and Messages
ProcessingXHTML : "æ£åœ¨å¤„ç† XHTML,请ç¨ç‰...",
@@ -233,7 +238,7 @@ DlgLnkURL : "地å€",
DlgLnkAnchorSel : "选择一个锚点",
DlgLnkAnchorByName : "按锚点å称",
DlgLnkAnchorById : "按锚点 ID",
-DlgLnkNoAnchors : "<æ¤æ–‡æ¡£æ²¡æœ‰å¯ç”¨çš„锚点>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(æ¤æ–‡æ¡£æ²¡æœ‰å¯ç”¨çš„锚点)",
DlgLnkEMail : "地å€",
DlgLnkEMailSubject : "主题",
DlgLnkEMailBody : "内容",
@@ -326,6 +331,9 @@ DlgCellBackColor : "背景颜色",
DlgCellBorderColor : "边框颜色",
DlgCellBtnSelect : "选择...",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "查找和替æ¢",
+
// Find Dialog
DlgFindTitle : "查找",
DlgFindFindBtn : "查找",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "全部替æ¢",
DlgReplaceWordChk : "å…¨å—匹é…",
// Paste Operations / Dialog
-PasteErrorPaste : "您的æµè§ˆå™¨å®‰å…¨è®¾ç½®ä¸å…许编辑器自动执行粘贴æ“作,请使用键盘快æ·é”®(Ctrl+V)æ¥å®Œæˆã€‚",
PasteErrorCut : "您的æµè§ˆå™¨å®‰å…¨è®¾ç½®ä¸å…许编辑器自动执行剪切æ“作,请使用键盘快æ·é”®(Ctrl+X)æ¥å®Œæˆã€‚",
PasteErrorCopy : "您的æµè§ˆå™¨å®‰å…¨è®¾ç½®ä¸å…许编辑器自动执行å¤åˆ¶æ“作,请使用键盘快æ·é”®(Ctrl+C)æ¥å®Œæˆã€‚",
@@ -349,6 +356,7 @@ PasteAsText : "ç²˜è´´ä¸ºæ— æ ¼å¼æ–‡æœ¬",
PasteFromWord : "从 MS Word 粘贴",
DlgPasteMsg2 : "请使用键盘快æ·é”®(<STRONG>Ctrl+V</STRONG>)把内容粘贴到下é¢çš„方框里,å†æŒ‰ <STRONG>确定</STRONG>。",
+DlgPasteSec : "å› ä¸ºä½ çš„æµè§ˆå™¨çš„å®‰å…¨è®¾ç½®åŽŸå› ï¼Œæœ¬ç¼–è¾‘å™¨ä¸èƒ½ç›´æŽ¥è®¿é—®ä½ 的剪贴æ¿å†…å®¹ï¼Œä½ éœ€è¦åœ¨æœ¬çª—å£é‡æ–°ç²˜è´´ä¸€æ¬¡ã€‚",
DlgPasteIgnoreFont : "忽略 Font æ ‡ç¾",
DlgPasteRemoveStyles : "æ¸…ç† CSS æ ·å¼",
DlgPasteCleanBox : "清空上é¢å†…容",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "æµè§ˆå™¨ä¿¡æ¯",
DlgAboutLicenseTab : "许å¯è¯",
DlgAboutVersion : "版本",
DlgAboutInfo : "è¦èŽ·å¾—更多信æ¯è¯·è®¿é—® "
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/lang/zh.js b/editor/editor/lang/zh.js
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: zh.js
- * Chinese Traditional language file.
- *
- * File Authors:
- * Zak Fong (zakfong@yahoo.com.tw)
+ *
+ * Chinese Traditional language file.
*/
var FCKLang =
@@ -49,6 +45,7 @@ InsertLinkLbl : "超連çµ",
InsertLink : "æ’å…¥/編輯超連çµ",
RemoveLink : "移除超連çµ",
Anchor : "æ’å…¥/編輯錨點",
+AnchorDelete : "移除錨點",
InsertImageLbl : "å½±åƒ",
InsertImage : "æ’å…¥/編輯影åƒ",
InsertFlashLbl : "Flash",
@@ -74,6 +71,7 @@ RightJustify : "é å³å°é½Š",
BlockJustify : "å·¦å³å°é½Š",
DecreaseIndent : "減少縮排",
IncreaseIndent : "å¢žåŠ ç¸®æŽ’",
+Blockquote : "å—引用",
Undo : "復原",
Redo : "é‡è¤‡",
NumberedListLbl : "編號清單",
@@ -107,20 +105,27 @@ SelectionField : "清單/é¸å–®",
ImageButton : "å½±åƒæŒ‰éˆ•",
FitWindow : "編輯器最大化",
+ShowBlocks : "顯示å€å¡Š",
// Context Menu
EditLink : "編輯超連çµ",
CellCM : "儲å˜æ ¼",
RowCM : "列",
ColumnCM : "欄",
-InsertRow : "æ’入列",
+InsertRowAfter : "å‘下æ’入列",
+InsertRowBefore : "å‘上æ’入列",
DeleteRows : "刪除列",
-InsertColumn : "æ’入欄",
+InsertColumnAfter : "å‘å³æ’入欄",
+InsertColumnBefore : "å‘å·¦æ’入欄",
DeleteColumns : "刪除欄",
-InsertCell : "æ’入儲å˜æ ¼",
+InsertCellAfter : "å‘å³æ’入儲å˜æ ¼",
+InsertCellBefore : "å‘å·¦æ’入儲å˜æ ¼",
DeleteCells : "刪除儲å˜æ ¼",
MergeCells : "åˆä½µå„²å˜æ ¼",
-SplitCell : "分割儲å˜æ ¼",
+MergeRight : "å‘å³åˆä½µå„²å˜æ ¼",
+MergeDown : "å‘下åˆä½µå„²å˜æ ¼",
+HorizontalSplitCell : "æ©«å‘分割儲å˜æ ¼",
+VerticalSplitCell : "縱å‘分割儲å˜æ ¼",
TableDelete : "åˆªé™¤è¡¨æ ¼",
CellProperties : "儲å˜æ ¼å±¬æ€§",
TableProperties : "è¡¨æ ¼å±¬æ€§",
@@ -138,7 +143,7 @@ SelectionFieldProp : "清單/é¸å–®å±¬æ€§",
TextareaProp : "æ–‡å—å€åŸŸå±¬æ€§",
FormProp : "表單屬性",
-FontFormats : "本文;å·²æ ¼å¼åŒ–;ä½å€;標題 1;標題 2;標題 3;標題 4;標題 5;標題 6;本文 (DIV)", //REVIEW : Check _getfontformat.html
+FontFormats : "一般;å·²æ ¼å¼åŒ–;ä½å€;標題 1;標題 2;標題 3;標題 4;標題 5;標題 6;一般 (DIV)",
// Alerts and Messages
ProcessingXHTML : "è™•ç† XHTML ä¸ï¼Œè«‹ç¨å€™â€¦",
@@ -233,7 +238,7 @@ DlgLnkURL : "URL",
DlgLnkAnchorSel : "è«‹é¸æ“‡éŒ¨é»ž",
DlgLnkAnchorByName : "ä¾éŒ¨é»žå稱",
DlgLnkAnchorById : "ä¾å…ƒä»¶ ID",
-DlgLnkNoAnchors : "<本文件尚無å¯ç”¨ä¹‹éŒ¨é»ž>", //REVIEW : Change < and > with ( and )
+DlgLnkNoAnchors : "(本文件尚無å¯ç”¨ä¹‹éŒ¨é»ž)",
DlgLnkEMail : "é›»å郵件",
DlgLnkEMailSubject : "郵件主旨",
DlgLnkEMailBody : "郵件內容",
@@ -326,6 +331,9 @@ DlgCellBackColor : "背景é¡è‰²",
DlgCellBorderColor : "邊框é¡è‰²",
DlgCellBtnSelect : "è«‹é¸æ“‡â€¦",
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "尋找與å–代",
+
// Find Dialog
DlgFindTitle : "尋找",
DlgFindFindBtn : "尋找",
@@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "全部å–代",
DlgReplaceWordChk : "å…¨å—相符",
// Paste Operations / Dialog
-PasteErrorPaste : "ç€è¦½å™¨çš„安全性è¨å®šä¸å…許編輯器自動執行貼上動作。請使用快æ·éµ (Ctrl+V) 貼上。",
PasteErrorCut : "ç€è¦½å™¨çš„安全性è¨å®šä¸å…許編輯器自動執行剪下動作。請使用快æ·éµ (Ctrl+X) 剪下。",
PasteErrorCopy : "ç€è¦½å™¨çš„安全性è¨å®šä¸å…許編輯器自動執行複製動作。請使用快æ·éµ (Ctrl+C) 複製。",
@@ -349,6 +356,7 @@ PasteAsText : "貼為純文å—æ ¼å¼",
PasteFromWord : "自 Word 貼上",
DlgPasteMsg2 : "請使用快æ·éµ (<strong>Ctrl+V</strong>) 貼到下方å€åŸŸä¸ä¸¦æŒ‰ä¸‹ <strong>確定</strong>",
+DlgPasteSec : "å› ç‚ºç€è¦½å™¨çš„安全性è¨å®šï¼Œæœ¬ç·¨è¼¯å™¨ç„¡æ³•ç›´æŽ¥å˜å–您的剪貼簿資料,請您自行在本視窗進行貼上動作。",
DlgPasteIgnoreFont : "移除å—åž‹è¨å®š",
DlgPasteRemoveStyles : "移除樣å¼è¨å®š",
DlgPasteCleanBox : "清除文å—å€åŸŸ",
@@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "ç€è¦½å™¨è³‡è¨Š",
DlgAboutLicenseTab : "許å¯è‰",
DlgAboutVersion : "版本",
DlgAboutInfo : "想ç²å¾—更多資訊請至 "
-};-
\ No newline at end of file
+};
diff --git a/editor/editor/plugins/autogrow/fckplugin.js b/editor/editor/plugins/autogrow/fckplugin.js
@@ -0,0 +1,92 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Plugin: automatically resizes the editor until a configurable maximun
+ * height (FCKConfig.AutoGrowMax), based on its contents.
+ */
+
+var FCKAutoGrow_Min = window.frameElement.offsetHeight ;
+
+function FCKAutoGrow_Check()
+{
+ var oInnerDoc = FCK.EditorDocument ;
+
+ var iFrameHeight, iInnerHeight ;
+
+ if ( FCKBrowserInfo.IsIE )
+ {
+ iFrameHeight = FCK.EditorWindow.frameElement.offsetHeight ;
+ iInnerHeight = oInnerDoc.body.scrollHeight ;
+ }
+ else
+ {
+ iFrameHeight = FCK.EditorWindow.innerHeight ;
+ iInnerHeight = oInnerDoc.body.offsetHeight ;
+ }
+
+ var iDiff = iInnerHeight - iFrameHeight ;
+
+ if ( iDiff != 0 )
+ {
+ var iMainFrameSize = window.frameElement.offsetHeight ;
+
+ if ( iDiff > 0 && iMainFrameSize < FCKConfig.AutoGrowMax )
+ {
+ iMainFrameSize += iDiff ;
+ if ( iMainFrameSize > FCKConfig.AutoGrowMax )
+ iMainFrameSize = FCKConfig.AutoGrowMax ;
+ }
+ else if ( iDiff < 0 && iMainFrameSize > FCKAutoGrow_Min )
+ {
+ iMainFrameSize += iDiff ;
+ if ( iMainFrameSize < FCKAutoGrow_Min )
+ iMainFrameSize = FCKAutoGrow_Min ;
+ }
+ else
+ return ;
+
+ window.frameElement.height = iMainFrameSize ;
+ }
+}
+
+FCK.AttachToOnSelectionChange( FCKAutoGrow_Check ) ;
+
+function FCKAutoGrow_SetListeners()
+{
+ if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
+ return ;
+
+ FCK.EditorWindow.attachEvent( 'onscroll', FCKAutoGrow_Check ) ;
+ FCK.EditorDocument.attachEvent( 'onkeyup', FCKAutoGrow_Check ) ;
+}
+
+if ( FCKBrowserInfo.IsIE )
+{
+// FCKAutoGrow_SetListeners() ;
+ FCK.Events.AttachEvent( 'OnAfterSetHTML', FCKAutoGrow_SetListeners ) ;
+}
+
+function FCKAutoGrow_CheckEditorStatus( sender, status )
+{
+ if ( status == FCK_STATUS_COMPLETE )
+ FCKAutoGrow_Check() ;
+}
+
+FCK.Events.AttachEvent( 'OnStatusChange', FCKAutoGrow_CheckEditorStatus ) ;+
\ No newline at end of file
diff --git a/editor/editor/plugins/bbcode/_sample/sample.config.js b/editor/editor/plugins/bbcode/_sample/sample.config.js
@@ -0,0 +1,26 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Sample custom configuration settings used by the BBCode plugin. It simply
+ * loads the plugin. All the rest is done by the plugin itself.
+ */
+
+// Add the BBCode plugin.
+FCKConfig.Plugins.Add( 'bbcode' ) ;
diff --git a/editor/editor/plugins/bbcode/_sample/sample.html b/editor/editor/plugins/bbcode/_sample/sample.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Sample page.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>FCKeditor - BBCode Sample</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="robots" content="noindex, nofollow" />
+ <link href="../../../../_samples/sample.css" rel="stylesheet" type="text/css" />
+ <script type="text/javascript" src="../../../../fckeditor.js"></script>
+</head>
+<body>
+ <h1>
+ FCKeditor - BBCode Sample</h1>
+ <p>
+ This is a sample of custom Data Processor implementation for (very) basic BBCode
+ syntax. Only <strong>[b]</strong>, <strong>[i]</strong>, <strong>[u]</strong> and
+ <strong>[url]</strong> may be used. It may be extended, but this is out of this
+ sample purpose.
+ </p>
+ <p>
+ Note that the input and output of the editor is not HTML, but BBCode
+ </p>
+ <hr />
+ <form action="../../../../_samples/html/sampleposteddata.asp" method="post" target="_blank">
+ <script type="text/javascript">
+<!--
+// Automatically calculates the editor base path based on the _samples directory.
+// This is usefull only for these samples. A real application should use something like this:
+// oFCKeditor.BasePath = '/fckeditor/' ; // '/fckeditor/' is the default value.
+var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('editor')) ;
+
+var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
+oFCKeditor.BasePath = sBasePath ;
+
+// Set the custom configurations file path (in this way the original file is mantained).
+oFCKeditor.Config['CustomConfigurationsPath'] = sBasePath + 'editor/plugins/bbcode/_sample/sample.config.js' ;
+
+oFCKeditor.Value = 'This is some [b]sample text[/b]. You are using [url=http://www.fckeditor.net/]FCKeditor[/url].' ;
+oFCKeditor.Create() ;
+//-->
+ </script>
+ <br />
+ <input type="submit" value="Submit" />
+ </form>
+</body>
+</html>
diff --git a/editor/editor/plugins/bbcode/fckplugin.js b/editor/editor/plugins/bbcode/fckplugin.js
@@ -0,0 +1,123 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is a sample implementation for a custom Data Processor for basic BBCode.
+ */
+
+FCK.DataProcessor =
+{
+ /*
+ * Returns a string representing the HTML format of "data". The returned
+ * value will be loaded in the editor.
+ * The HTML must be from <html> to </html>, eventually including
+ * the DOCTYPE.
+ * @param {String} data The data to be converted in the
+ * DataProcessor specific format.
+ */
+ ConvertToHtml : function( data )
+ {
+ // Convert < and > to their HTML entities.
+ data = data.replace( /</g, '<' ) ;
+ data = data.replace( />/g, '>' ) ;
+
+ // Convert line breaks to <br>.
+ data = data.replace( /(?:\r\n|\n|\r)/g, '<br>' ) ;
+
+ // [url]
+ data = data.replace( /\[url\](.+?)\[\/url]/gi, '<a href="$1">$1</a>' ) ;
+ data = data.replace( /\[url\=([^\]]+)](.+?)\[\/url]/gi, '<a href="$1">$2</a>' ) ;
+
+ // [b]
+ data = data.replace( /\[b\](.+?)\[\/b]/gi, '<b>$1</b>' ) ;
+
+ // [i]
+ data = data.replace( /\[i\](.+?)\[\/i]/gi, '<i>$1</i>' ) ;
+
+ // [u]
+ data = data.replace( /\[u\](.+?)\[\/u]/gi, '<u>$1</u>' ) ;
+
+ return '<html><head><title></title></head><body>' + data + '</body></html>' ;
+ },
+
+ /*
+ * Converts a DOM (sub-)tree to a string in the data format.
+ * @param {Object} rootNode The node that contains the DOM tree to be
+ * converted to the data format.
+ * @param {Boolean} excludeRoot Indicates that the root node must not
+ * be included in the conversion, only its children.
+ * @param {Boolean} format Indicates that the data must be formatted
+ * for human reading. Not all Data Processors may provide it.
+ */
+ ConvertToDataFormat : function( rootNode, excludeRoot, ignoreIfEmptyParagraph, format )
+ {
+ var data = rootNode.innerHTML ;
+
+ // Convert <br> to line breaks.
+ data = data.replace( /<br(?=[ \/>]).*?>/gi, '\r\n') ;
+
+ // [url]
+ data = data.replace( /<a .*?href=(["'])(.+?)\1.*?>(.+?)<\/a>/gi, '[url=$2]$3[/url]') ;
+
+ // [b]
+ data = data.replace( /<(?:b|strong)>/gi, '[b]') ;
+ data = data.replace( /<\/(?:b|strong)>/gi, '[/b]') ;
+
+ // [i]
+ data = data.replace( /<(?:i|em)>/gi, '[i]') ;
+ data = data.replace( /<\/(?:i|em)>/gi, '[/i]') ;
+
+ // [u]
+ data = data.replace( /<u>/gi, '[u]') ;
+ data = data.replace( /<\/u>/gi, '[/u]') ;
+
+ // Remove remaining tags.
+ data = data.replace( /<[^>]+>/g, '') ;
+
+ return data ;
+ },
+
+ /*
+ * Makes any necessary changes to a piece of HTML for insertion in the
+ * editor selection position.
+ * @param {String} html The HTML to be fixed.
+ */
+ FixHtml : function( html )
+ {
+ return html ;
+ }
+} ;
+
+// This Data Processor doesn't support <p>, so let's use <br>.
+FCKConfig.EnterMode = 'br' ;
+
+// To avoid pasting invalid markup (which is discarded in any case), let's
+// force pasting to plain text.
+FCKConfig.ForcePasteAsPlainText = true ;
+
+// Rename the "Source" buttom to "BBCode".
+FCKToolbarItems.RegisterItem( 'Source', new FCKToolbarButton( 'Source', 'BBCode', null, FCK_TOOLBARITEM_ICONTEXT, true, true, 1 ) ) ;
+
+// Let's enforce the toolbar to the limits of this Data Processor. A custom
+// toolbar set may be defined in the configuration file with more or less entries.
+FCKConfig.ToolbarSets["Default"] = [
+ ['Source'],
+ ['Bold','Italic','Underline','-','Link'],
+ ['About']
+] ;+
\ No newline at end of file
diff --git a/editor/editor/plugins/dragresizetable/fckplugin.js b/editor/editor/plugins/dragresizetable/fckplugin.js
@@ -0,0 +1,503 @@
+var FCKDragTableHandler =
+{
+ "_DragState" : 0,
+ "_LeftCell" : null,
+ "_RightCell" : null,
+ "_MouseMoveMode" : 0, // 0 - find candidate cells for resizing, 1 - drag to resize
+ "_ResizeBar" : null,
+ "_OriginalX" : null,
+ "_MinimumX" : null,
+ "_MaximumX" : null,
+ "_LastX" : null,
+ "_TableMap" : null,
+ "_IsInsideNode" : function( w, domNode, pos )
+ {
+ var myCoords = FCKTools.GetWindowPosition( w, domNode ) ;
+ var xMin = myCoords.x ;
+ var yMin = myCoords.y ;
+ var xMax = parseInt( xMin, 10 ) + parseInt( domNode.offsetWidth, 10 ) ;
+ var yMax = parseInt( yMin, 10 ) + parseInt( domNode.offsetHeight, 10 ) ;
+ if ( pos.x >= xMin && pos.x <= xMax && pos.y >= yMin && pos.y <= yMax )
+ return true;
+ return false;
+ },
+ "_GetBorderCells" : function( w, tableNode, tableMap, mouse )
+ {
+ // Enumerate all the cells in the table.
+ var cells = [] ;
+ for ( var i = 0 ; i < tableNode.rows.length ; i++ )
+ {
+ var r = tableNode.rows[i] ;
+ for ( var j = 0 ; j < r.cells.length ; j++ )
+ cells.push( r.cells[j] ) ;
+ }
+
+ if ( cells.length < 1 )
+ return null ;
+
+ // Get the cells whose right or left border is nearest to the mouse cursor's x coordinate.
+ var minRxDist = null ;
+ var lxDist = null ;
+ var minYDist = null ;
+ var rbCell = null ;
+ var lbCell = null ;
+ for ( var i = 0 ; i < cells.length ; i++ )
+ {
+ var pos = FCKTools.GetWindowPosition( w, cells[i] ) ;
+ var rightX = pos.x + parseInt( cells[i].clientWidth, 10 ) ;
+ var rxDist = mouse.x - rightX ;
+ var yDist = mouse.y - ( pos.y + ( cells[i].clientHeight / 2 ) ) ;
+ if ( minRxDist == null ||
+ ( Math.abs( rxDist ) <= Math.abs( minRxDist ) &&
+ ( minYDist == null || Math.abs( yDist ) <= Math.abs( minYDist ) ) ) )
+ {
+ minRxDist = rxDist ;
+ minYDist = yDist ;
+ rbCell = cells[i] ;
+ }
+ }
+ /*
+ var rowNode = FCKTools.GetElementAscensor( rbCell, "tr" ) ;
+ var cellIndex = rbCell.cellIndex + 1 ;
+ if ( cellIndex >= rowNode.cells.length )
+ return null ;
+ lbCell = rowNode.cells.item( cellIndex ) ;
+ */
+ var rowIdx = rbCell.parentNode.rowIndex ;
+ var colIdx = FCKTableHandler._GetCellIndexSpan( tableMap, rowIdx, rbCell ) ;
+ var colSpan = isNaN( rbCell.colSpan ) ? 1 : rbCell.colSpan ;
+ lbCell = tableMap[rowIdx][colIdx + colSpan] ;
+
+ if ( ! lbCell )
+ return null ;
+
+ // Abort if too far from the border.
+ lxDist = mouse.x - FCKTools.GetWindowPosition( w, lbCell ).x ;
+ if ( lxDist < 0 && minRxDist < 0 && minRxDist < -2 )
+ return null ;
+ if ( lxDist > 0 && minRxDist > 0 && lxDist > 3 )
+ return null ;
+
+ return { "leftCell" : rbCell, "rightCell" : lbCell } ;
+ },
+ "_GetResizeBarPosition" : function()
+ {
+ var row = FCKTools.GetElementAscensor( this._RightCell, "tr" ) ;
+ return FCKTableHandler._GetCellIndexSpan( this._TableMap, row.rowIndex, this._RightCell ) ;
+ },
+ "_ResizeBarMouseDownListener" : function( evt )
+ {
+ if ( ! evt )
+ evt = window.event ;
+ if ( FCKDragTableHandler._LeftCell )
+ FCKDragTableHandler._MouseMoveMode = 1 ;
+ if ( FCKBrowserInfo.IsIE )
+ FCKDragTableHandler._ResizeBar.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 50 ;
+ else
+ FCKDragTableHandler._ResizeBar.style.opacity = 0.5 ;
+ FCKDragTableHandler._OriginalX = evt.clientX ;
+
+ // Calculate maximum and minimum x-coordinate delta.
+ var borderIndex = FCKDragTableHandler._GetResizeBarPosition() ;
+ var offset = FCKTools.GetDocumentPosition( window, FCK.EditingArea.IFrame ) ;
+ var table = FCKTools.GetElementAscensor( FCKDragTableHandler._LeftCell, "table" );
+ var minX = null ;
+ var maxX = null ;
+ for ( var r = 0 ; r < FCKDragTableHandler._TableMap.length ; r++ )
+ {
+ var leftCell = FCKDragTableHandler._TableMap[r][borderIndex - 1] ;
+ var rightCell = FCKDragTableHandler._TableMap[r][borderIndex] ;
+ var leftPosition = FCKTools.GetWindowPosition( FCK.EditorWindow, leftCell ) ;
+ var rightPosition = FCKTools.GetWindowPosition( FCK.EditorWindow, rightCell ) ;
+ var leftPadding = FCKDragTableHandler._GetCellPadding( table, leftCell ) ;
+ var rightPadding = FCKDragTableHandler._GetCellPadding( table, rightCell ) ;
+ if ( minX == null || leftPosition.x + leftPadding > minX )
+ minX = leftPosition.x + leftPadding ;
+ if ( maxX == null || rightPosition.x + rightCell.clientWidth - rightPadding < maxX )
+ maxX = rightPosition.x + rightCell.clientWidth - rightPadding ;
+ }
+
+ FCKDragTableHandler._MinimumX = minX + offset.x ;
+ FCKDragTableHandler._MaximumX = maxX + offset.x ;
+ FCKDragTableHandler._LastX = null ;
+ },
+ "_ResizeBarMouseUpListener" : function( evt )
+ {
+ if ( ! evt )
+ evt = window.event ;
+ FCKDragTableHandler._MouseMoveMode = 0 ;
+ FCKDragTableHandler._HideResizeBar() ;
+
+ if ( FCKDragTableHandler._LastX == null )
+ return ;
+
+ // Calculate the delta value.
+ var deltaX = FCKDragTableHandler._LastX - FCKDragTableHandler._OriginalX ;
+
+ // Then, build an array of current column width values.
+ // This algorithm can be very slow if the cells have insane colSpan values. (e.g. colSpan=1000).
+ var table = FCKTools.GetElementAscensor( FCKDragTableHandler._LeftCell, "table" ) ;
+ var colArray = [] ;
+ var tableMap = FCKDragTableHandler._TableMap ;
+ for ( var i = 0 ; i < tableMap.length ; i++ )
+ {
+ for ( var j = 0 ; j < tableMap[i].length ; j++ )
+ {
+ var cell = tableMap[i][j] ;
+ var width = FCKDragTableHandler._GetCellWidth( table, cell ) ;
+ var colSpan = isNaN( cell.colSpan) ? 1 : cell.colSpan ;
+ if ( colArray.length <= j )
+ colArray.push( { width : width / colSpan, colSpan : colSpan } ) ;
+ else
+ {
+ var guessItem = colArray[j] ;
+ if ( guessItem.colSpan > colSpan )
+ {
+ guessItem.width = width / colSpan ;
+ guessItem.colSpan = colSpan ;
+ }
+ }
+ }
+ }
+
+ // Find out the equivalent column index of the two cells selected for resizing.
+ colIndex = FCKDragTableHandler._GetResizeBarPosition() ;
+
+ // Note that colIndex must be at least 1 here, so it's safe to subtract 1 from it.
+ colIndex-- ;
+
+ // Modify the widths in the colArray according to the mouse coordinate delta value.
+ colArray[colIndex].width += deltaX ;
+ colArray[colIndex + 1].width -= deltaX ;
+
+ // Clear all cell widths, delete all <col> elements from the table.
+ for ( var r = 0 ; r < table.rows.length ; r++ )
+ {
+ var row = table.rows.item( r ) ;
+ for ( var c = 0 ; c < row.cells.length ; c++ )
+ {
+ var cell = row.cells.item( c ) ;
+ cell.width = "" ;
+ cell.style.width = "" ;
+ }
+ }
+ var colElements = table.getElementsByTagName( "col" ) ;
+ for ( var i = colElements.length - 1 ; i >= 0 ; i-- )
+ colElements[i].parentNode.removeChild( colElements[i] ) ;
+
+ // Set new cell widths.
+ var processedCells = [] ;
+ for ( var i = 0 ; i < tableMap.length ; i++ )
+ {
+ for ( var j = 0 ; j < tableMap[i].length ; j++ )
+ {
+ var cell = tableMap[i][j] ;
+ if ( cell._Processed )
+ continue ;
+ if ( tableMap[i][j-1] != cell )
+ cell.width = colArray[j].width ;
+ else
+ cell.width = parseInt( cell.width, 10 ) + parseInt( colArray[j].width, 10 ) ;
+ if ( tableMap[i][j+1] != cell )
+ {
+ processedCells.push( cell ) ;
+ cell._Processed = true ;
+ }
+ }
+ }
+ for ( var i = 0 ; i < processedCells.length ; i++ )
+ {
+ if ( FCKBrowserInfo.IsIE )
+ processedCells[i].removeAttribute( '_Processed' ) ;
+ else
+ delete processedCells[i]._Processed ;
+ }
+
+ FCKDragTableHandler._LastX = null ;
+ },
+ "_ResizeBarMouseMoveListener" : function( evt )
+ {
+ if ( ! evt )
+ evt = window.event ;
+ if ( FCKDragTableHandler._MouseMoveMode == 0 )
+ return FCKDragTableHandler._MouseFindHandler( FCK, evt ) ;
+ else
+ return FCKDragTableHandler._MouseDragHandler( FCK, evt ) ;
+ },
+ // Calculate the padding of a table cell.
+ // It returns the value of paddingLeft + paddingRight of a table cell.
+ // This function is used, in part, to calculate the width parameter that should be used for setting cell widths.
+ // The equation in question is clientWidth = paddingLeft + paddingRight + width.
+ // So that width = clientWidth - paddingLeft - paddingRight.
+ // The return value of this function must be pixel accurate acorss all supported browsers, so be careful if you need to modify it.
+ "_GetCellPadding" : function( table, cell )
+ {
+ var attrGuess = parseInt( table.cellPadding, 10 ) * 2 ;
+ var cssGuess = null ;
+ if ( typeof( window.getComputedStyle ) == "function" )
+ {
+ var styleObj = window.getComputedStyle( cell, null ) ;
+ cssGuess = parseInt( styleObj.getPropertyValue( "padding-left" ), 10 ) +
+ parseInt( styleObj.getPropertyValue( "padding-right" ), 10 ) ;
+ }
+ else
+ cssGuess = parseInt( cell.currentStyle.paddingLeft, 10 ) + parseInt (cell.currentStyle.paddingRight, 10 ) ;
+
+ var cssRuntime = cell.style.padding ;
+ if ( isFinite( cssRuntime ) )
+ cssGuess = parseInt( cssRuntime, 10 ) * 2 ;
+ else
+ {
+ cssRuntime = cell.style.paddingLeft ;
+ if ( isFinite( cssRuntime ) )
+ cssGuess = parseInt( cssRuntime, 10 ) ;
+ cssRuntime = cell.style.paddingRight ;
+ if ( isFinite( cssRuntime ) )
+ cssGuess += parseInt( cssRuntime, 10 ) ;
+ }
+
+ attrGuess = parseInt( attrGuess, 10 ) ;
+ cssGuess = parseInt( cssGuess, 10 ) ;
+ if ( isNaN( attrGuess ) )
+ attrGuess = 0 ;
+ if ( isNaN( cssGuess ) )
+ cssGuess = 0 ;
+ return Math.max( attrGuess, cssGuess ) ;
+ },
+ // Calculate the real width of the table cell.
+ // The real width of the table cell is the pixel width that you can set to the width attribute of the table cell and after
+ // that, the table cell should be of exactly the same width as before.
+ // The real width of a table cell can be calculated as:
+ // width = clientWidth - paddingLeft - paddingRight.
+ "_GetCellWidth" : function( table, cell )
+ {
+ var clientWidth = cell.clientWidth ;
+ if ( isNaN( clientWidth ) )
+ clientWidth = 0 ;
+ return clientWidth - this._GetCellPadding( table, cell ) ;
+ },
+ "MouseMoveListener" : function( FCK, evt )
+ {
+ if ( FCKDragTableHandler._MouseMoveMode == 0 )
+ return FCKDragTableHandler._MouseFindHandler( FCK, evt ) ;
+ else
+ return FCKDragTableHandler._MouseDragHandler( FCK, evt ) ;
+ },
+ "_MouseFindHandler" : function( FCK, evt )
+ {
+ if ( FCK.MouseDownFlag )
+ return ;
+ var node = evt.srcElement || evt.target ;
+ try
+ {
+ if ( ! node || node.nodeType != 1 )
+ {
+ this._HideResizeBar() ;
+ return ;
+ }
+ }
+ catch ( e )
+ {
+ this._HideResizeBar() ;
+ return ;
+ }
+
+ // Since this function might be called from the editing area iframe or the outer fckeditor iframe,
+ // the mouse point coordinates from evt.clientX/Y can have different reference points.
+ // We need to resolve the mouse pointer position relative to the editing area iframe.
+ var mouseX = evt.clientX ;
+ var mouseY = evt.clientY ;
+ if ( node.ownerDocument == document )
+ {
+ var offset = FCKTools.GetDocumentPosition( window, FCK.EditingArea.IFrame ) ;
+ mouseX -= offset.x ;
+ mouseY -= offset.y ;
+ }
+
+
+ if ( this._ResizeBar && this._LeftCell )
+ {
+ var leftPos = FCKTools.GetWindowPosition( FCK.EditorWindow, this._LeftCell ) ;
+ var rightPos = FCKTools.GetWindowPosition( FCK.EditorWindow, this._RightCell ) ;
+ var rxDist = mouseX - ( leftPos.x + this._LeftCell.clientWidth ) ;
+ var lxDist = mouseX - rightPos.x ;
+ var inRangeFlag = false ;
+ if ( lxDist >= 0 && rxDist <= 0 )
+ inRangeFlag = true ;
+ else if ( rxDist > 0 && lxDist <= 3 )
+ inRangeFlag = true ;
+ else if ( lxDist < 0 && rxDist >= -2 )
+ inRangeFlag = true ;
+ if ( inRangeFlag )
+ {
+ this._ShowResizeBar( FCK.EditorWindow,
+ FCKTools.GetElementAscensor( this._LeftCell, "table" ),
+ { "x" : mouseX, "y" : mouseY } ) ;
+ return ;
+ }
+ }
+
+ var tagName = node.tagName.toLowerCase() ;
+ if ( tagName != "table" && tagName != "td" && tagName != "th" )
+ {
+ if ( this._LeftCell )
+ this._LeftCell = this._RightCell = this._TableMap = null ;
+ this._HideResizeBar() ;
+ return ;
+ }
+ node = FCKTools.GetElementAscensor( node, "table" ) ;
+ var tableMap = FCKTableHandler._CreateTableMap( node ) ;
+ var cellTuple = this._GetBorderCells( FCK.EditorWindow, node, tableMap, { "x" : mouseX, "y" : mouseY } ) ;
+
+ if ( cellTuple == null )
+ {
+ if ( this._LeftCell )
+ this._LeftCell = this._RightCell = this._TableMap = null ;
+ this._HideResizeBar() ;
+ }
+ else
+ {
+ this._LeftCell = cellTuple["leftCell"] ;
+ this._RightCell = cellTuple["rightCell"] ;
+ this._TableMap = tableMap ;
+ this._ShowResizeBar( FCK.EditorWindow,
+ FCKTools.GetElementAscensor( this._LeftCell, "table" ),
+ { "x" : mouseX, "y" : mouseY } ) ;
+ }
+ },
+ "_MouseDragHandler" : function( FCK, evt )
+ {
+ var mouse = { "x" : evt.clientX, "y" : evt.clientY } ;
+
+ // Convert mouse coordinates in reference to the outer iframe.
+ var node = evt.srcElement || evt.target ;
+ if ( node.ownerDocument == FCK.EditorDocument )
+ {
+ var offset = FCKTools.GetDocumentPosition( window, FCK.EditingArea.IFrame ) ;
+ mouse.x += offset.x ;
+ mouse.y += offset.y ;
+ }
+
+ // Calculate the mouse position delta and see if we've gone out of range.
+ if ( mouse.x >= this._MaximumX - 5 )
+ mouse.x = this._MaximumX - 5 ;
+ if ( mouse.x <= this._MinimumX + 5 )
+ mouse.x = this._MinimumX + 5 ;
+
+ var docX = mouse.x + FCKTools.GetScrollPosition( window ).X ;
+ this._ResizeBar.style.left = ( docX - this._ResizeBar.offsetWidth / 2 ) + "px" ;
+ this._LastX = mouse.x ;
+ },
+ "_ShowResizeBar" : function( w, table, mouse )
+ {
+ if ( this._ResizeBar == null )
+ {
+ this._ResizeBar = document.createElement( "div" ) ;
+ var paddingBar = this._ResizeBar ;
+ var paddingStyles = { 'position' : 'absolute', 'cursor' : 'e-resize' } ;
+ if ( FCKBrowserInfo.IsIE )
+ paddingStyles.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=10,enabled=true)" ;
+ else
+ paddingStyles.opacity = 0.10 ;
+ FCKDomTools.SetElementStyles( paddingBar, paddingStyles ) ;
+ document.body.appendChild( paddingBar ) ;
+ FCKTools.AddEventListener( paddingBar, "mousemove", this._ResizeBarMouseMoveListener ) ;
+ FCKTools.AddEventListener( paddingBar, "mousedown", this._ResizeBarMouseDownListener ) ;
+ FCKTools.AddEventListener( document, "mouseup", this._ResizeBarMouseUpListener ) ;
+ FCKTools.AddEventListener( FCK.EditorDocument, "mouseup", this._ResizeBarMouseUpListener ) ;
+
+ // IE doesn't let the tranparent part of the padding block to receive mouse events unless there's something inside.
+ // So we need to create a spacer image to fill the block up.
+ var filler = document.createElement( "img" ) ;
+ filler.border = 0 ;
+ filler.src = FCKConfig.BasePath + "images/spacer.gif" ;
+ filler.style.position = "absolute" ;
+ paddingBar.appendChild( filler ) ;
+
+ // Disable drag and drop, and selection for the filler image.
+ var disabledListener = function( evt )
+ {
+ if ( ! evt )
+ evt = window.event ;
+ if ( evt.preventDefault )
+ evt.preventDefault() ;
+ else
+ evt.returnValue = false ;
+ }
+ FCKTools.AddEventListener( filler, "dragstart", disabledListener ) ;
+ FCKTools.AddEventListener( filler, "selectstart", disabledListener ) ;
+ }
+
+ var paddingBar = this._ResizeBar ;
+ var offset = FCKTools.GetDocumentPosition( window, FCK.EditingArea.IFrame ) ;
+ var tablePos = FCKTools.GetWindowPosition( w, table ) ;
+ var barHeight = table.offsetHeight ;
+ var barTop = offset.y + tablePos.y ;
+ // Do not let the resize bar intrude into the toolbar area.
+ if ( tablePos.y < 0 )
+ {
+ barHeight += tablePos.y ;
+ barTop -= tablePos.y ;
+ }
+ var bw = parseInt( table.border, 10 ) ;
+ if ( isNaN( bw ) )
+ bw = 0 ;
+ var cs = parseInt( table.cellSpacing, 10 ) ;
+ if ( isNaN( cs ) )
+ cs = 0 ;
+ var barWidth = Math.max( bw+100, cs+100 ) ;
+ var paddingStyles =
+ {
+ 'top' : barTop + 'px',
+ 'height' : barHeight + 'px',
+ 'width' : barWidth + 'px',
+ 'left' : ( offset.x + mouse.x + FCKTools.GetScrollPosition( w ).X - barWidth / 2 ) + 'px'
+ } ;
+ if ( FCKBrowserInfo.IsIE )
+ paddingBar.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 10 ;
+ else
+ paddingStyles.opacity = 0.1 ;
+
+ FCKDomTools.SetElementStyles( paddingBar, paddingStyles ) ;
+ var filler = paddingBar.getElementsByTagName( "img" )[0] ;
+
+ FCKDomTools.SetElementStyles( filler,
+ {
+ width : paddingBar.offsetWidth + 'px',
+ height : barHeight + 'px'
+ } ) ;
+
+ barWidth = Math.max( bw, cs, 3 ) ;
+ var visibleBar = null ;
+ if ( paddingBar.getElementsByTagName( "div" ).length < 1 )
+ {
+ visibleBar = document.createElement( "div" ) ;
+ paddingBar.appendChild( visibleBar ) ;
+ }
+ else
+ visibleBar = paddingBar.getElementsByTagName( "div" )[0] ;
+
+ FCKDomTools.SetElementStyles( visibleBar,
+ {
+ position : 'absolute',
+ backgroundColor : 'blue',
+ width : barWidth + 'px',
+ height : barHeight + 'px',
+ left : '50px',
+ top : '0px'
+ } ) ;
+ },
+ "_HideResizeBar" : function()
+ {
+ if ( this._ResizeBar )
+ // IE bug: display : none does not hide the resize bar for some reason.
+ // so set the position to somewhere invisible.
+ FCKDomTools.SetElementStyles( this._ResizeBar,
+ {
+ top : '-100000px',
+ left : '-100000px'
+ } ) ;
+ }
+};
+
+FCK.Events.AttachEvent( "OnMouseMove", FCKDragTableHandler.MouseMoveListener ) ;
diff --git a/editor/editor/plugins/placeholder/fck_placeholder.html b/editor/editor/plugins/placeholder/fck_placeholder.html
@@ -0,0 +1,100 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placeholder Plugin.
+-->
+<html>
+ <head>
+ <title>Placeholder Properties</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <meta content="noindex, nofollow" name="robots">
+ <script language="javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+var FCKLang = oEditor.FCKLang ;
+var FCKPlaceholders = oEditor.FCKPlaceholders ;
+
+window.onload = function ()
+{
+ // First of all, translate the dialog box texts
+ oEditor.FCKLanguageManager.TranslatePage( document ) ;
+
+ LoadSelected() ;
+
+ // Show the "Ok" button.
+ window.parent.SetOkButton( true ) ;
+}
+
+var eSelected = oEditor.FCKSelection.GetSelectedElement() ;
+
+function LoadSelected()
+{
+ if ( !eSelected )
+ return ;
+
+ if ( eSelected.tagName == 'SPAN' && eSelected._fckplaceholder )
+ document.getElementById('txtName').value = eSelected._fckplaceholder ;
+ else
+ eSelected == null ;
+}
+
+function Ok()
+{
+ var sValue = document.getElementById('txtName').value ;
+
+ if ( eSelected && eSelected._fckplaceholder == sValue )
+ return true ;
+
+ if ( sValue.length == 0 )
+ {
+ alert( FCKLang.PlaceholderErrNoName ) ;
+ return false ;
+ }
+
+ if ( FCKPlaceholders.Exist( sValue ) )
+ {
+ alert( FCKLang.PlaceholderErrNameInUse ) ;
+ return false ;
+ }
+
+ FCKPlaceholders.Add( sValue ) ;
+ return true ;
+}
+
+ </script>
+ </head>
+ <body scroll="no" style="OVERFLOW: hidden">
+ <table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
+ <tr>
+ <td>
+ <table cellSpacing="0" cellPadding="0" align="center" border="0">
+ <tr>
+ <td>
+ <span fckLang="PlaceholderDlgName">Placeholder Name</span><br>
+ <input id="txtName" type="text">
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>+
\ No newline at end of file
diff --git a/editor/editor/plugins/placeholder/fckplugin.js b/editor/editor/plugins/placeholder/fckplugin.js
@@ -0,0 +1,187 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Plugin to insert "Placeholders" in the editor.
+ */
+
+// Register the related command.
+FCKCommands.RegisterCommand( 'Placeholder', new FCKDialogCommand( 'Placeholder', FCKLang.PlaceholderDlgTitle, FCKPlugins.Items['placeholder'].Path + 'fck_placeholder.html', 340, 170 ) ) ;
+
+// Create the "Plaholder" toolbar button.
+var oPlaceholderItem = new FCKToolbarButton( 'Placeholder', FCKLang.PlaceholderBtn ) ;
+oPlaceholderItem.IconPath = FCKPlugins.Items['placeholder'].Path + 'placeholder.gif' ;
+
+FCKToolbarItems.RegisterItem( 'Placeholder', oPlaceholderItem ) ;
+
+
+// The object used for all Placeholder operations.
+var FCKPlaceholders = new Object() ;
+
+// Add a new placeholder at the actual selection.
+FCKPlaceholders.Add = function( name )
+{
+ var oSpan = FCK.InsertElement( 'span' ) ;
+ this.SetupSpan( oSpan, name ) ;
+}
+
+FCKPlaceholders.SetupSpan = function( span, name )
+{
+ span.innerHTML = '[[ ' + name + ' ]]' ;
+
+ span.style.backgroundColor = '#ffff00' ;
+ span.style.color = '#000000' ;
+
+ if ( FCKBrowserInfo.IsGecko )
+ span.style.cursor = 'default' ;
+
+ span._fckplaceholder = name ;
+ span.contentEditable = false ;
+
+ // To avoid it to be resized.
+ span.onresizestart = function()
+ {
+ FCK.EditorWindow.event.returnValue = false ;
+ return false ;
+ }
+}
+
+// On Gecko we must do this trick so the user select all the SPAN when clicking on it.
+FCKPlaceholders._SetupClickListener = function()
+{
+ FCKPlaceholders._ClickListener = function( e )
+ {
+ if ( e.target.tagName == 'SPAN' && e.target._fckplaceholder )
+ FCKSelection.SelectNode( e.target ) ;
+ }
+
+ FCK.EditorDocument.addEventListener( 'click', FCKPlaceholders._ClickListener, true ) ;
+}
+
+// Open the Placeholder dialog on double click.
+FCKPlaceholders.OnDoubleClick = function( span )
+{
+ if ( span.tagName == 'SPAN' && span._fckplaceholder )
+ FCKCommands.GetCommand( 'Placeholder' ).Execute() ;
+}
+
+FCK.RegisterDoubleClickHandler( FCKPlaceholders.OnDoubleClick, 'SPAN' ) ;
+
+// Check if a Placholder name is already in use.
+FCKPlaceholders.Exist = function( name )
+{
+ var aSpans = FCK.EditorDocument.getElementsByTagName( 'SPAN' ) ;
+
+ for ( var i = 0 ; i < aSpans.length ; i++ )
+ {
+ if ( aSpans[i]._fckplaceholder == name )
+ return true ;
+ }
+
+ return false ;
+}
+
+if ( FCKBrowserInfo.IsIE )
+{
+ FCKPlaceholders.Redraw = function()
+ {
+ if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
+ return ;
+
+ var aPlaholders = FCK.EditorDocument.body.innerText.match( /\[\[[^\[\]]+\]\]/g ) ;
+ if ( !aPlaholders )
+ return ;
+
+ var oRange = FCK.EditorDocument.body.createTextRange() ;
+
+ for ( var i = 0 ; i < aPlaholders.length ; i++ )
+ {
+ if ( oRange.findText( aPlaholders[i] ) )
+ {
+ var sName = aPlaholders[i].match( /\[\[\s*([^\]]*?)\s*\]\]/ )[1] ;
+ oRange.pasteHTML( '<span style="color: #000000; background-color: #ffff00" contenteditable="false" _fckplaceholder="' + sName + '">' + aPlaholders[i] + '</span>' ) ;
+ }
+ }
+ }
+}
+else
+{
+ FCKPlaceholders.Redraw = function()
+ {
+ if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
+ return ;
+
+ var oInteractor = FCK.EditorDocument.createTreeWalker( FCK.EditorDocument.body, NodeFilter.SHOW_TEXT, FCKPlaceholders._AcceptNode, true ) ;
+
+ var aNodes = new Array() ;
+
+ while ( ( oNode = oInteractor.nextNode() ) )
+ {
+ aNodes[ aNodes.length ] = oNode ;
+ }
+
+ for ( var n = 0 ; n < aNodes.length ; n++ )
+ {
+ var aPieces = aNodes[n].nodeValue.split( /(\[\[[^\[\]]+\]\])/g ) ;
+
+ for ( var i = 0 ; i < aPieces.length ; i++ )
+ {
+ if ( aPieces[i].length > 0 )
+ {
+ if ( aPieces[i].indexOf( '[[' ) == 0 )
+ {
+ var sName = aPieces[i].match( /\[\[\s*([^\]]*?)\s*\]\]/ )[1] ;
+
+ var oSpan = FCK.EditorDocument.createElement( 'span' ) ;
+ FCKPlaceholders.SetupSpan( oSpan, sName ) ;
+
+ aNodes[n].parentNode.insertBefore( oSpan, aNodes[n] ) ;
+ }
+ else
+ aNodes[n].parentNode.insertBefore( FCK.EditorDocument.createTextNode( aPieces[i] ) , aNodes[n] ) ;
+ }
+ }
+
+ aNodes[n].parentNode.removeChild( aNodes[n] ) ;
+ }
+
+ FCKPlaceholders._SetupClickListener() ;
+ }
+
+ FCKPlaceholders._AcceptNode = function( node )
+ {
+ if ( /\[\[[^\[\]]+\]\]/.test( node.nodeValue ) )
+ return NodeFilter.FILTER_ACCEPT ;
+ else
+ return NodeFilter.FILTER_SKIP ;
+ }
+}
+
+FCK.Events.AttachEvent( 'OnAfterSetHTML', FCKPlaceholders.Redraw ) ;
+
+// We must process the SPAN tags to replace then with the real resulting value of the placeholder.
+FCKXHtml.TagProcessors['span'] = function( node, htmlNode )
+{
+ if ( htmlNode._fckplaceholder )
+ node = FCKXHtml.XML.createTextNode( '[[' + htmlNode._fckplaceholder + ']]' ) ;
+ else
+ FCKXHtml._AppendChildNodes( node, htmlNode, false ) ;
+
+ return node ;
+}+
\ No newline at end of file
diff --git a/editor/editor/plugins/placeholder/lang/de.js b/editor/editor/plugins/placeholder/lang/de.js
@@ -0,0 +1,27 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placholder German language file.
+ */
+FCKLang.PlaceholderBtn = 'Einfügen/editieren Platzhalter' ;
+FCKLang.PlaceholderDlgTitle = 'Platzhalter Eigenschaften' ;
+FCKLang.PlaceholderDlgName = 'Platzhalter Name' ;
+FCKLang.PlaceholderErrNoName = 'Bitte den Namen des Platzhalters schreiben' ;
+FCKLang.PlaceholderErrNameInUse = 'Der angegebene Namen ist schon in Gebrauch' ;+
\ No newline at end of file
diff --git a/editor/editor/plugins/placeholder/lang/en.js b/editor/editor/plugins/placeholder/lang/en.js
@@ -0,0 +1,27 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placholder English language file.
+ */
+FCKLang.PlaceholderBtn = 'Insert/Edit Placeholder' ;
+FCKLang.PlaceholderDlgTitle = 'Placeholder Properties' ;
+FCKLang.PlaceholderDlgName = 'Placeholder Name' ;
+FCKLang.PlaceholderErrNoName = 'Please type the placeholder name' ;
+FCKLang.PlaceholderErrNameInUse = 'The specified name is already in use' ;+
\ No newline at end of file
diff --git a/editor/editor/plugins/placeholder/lang/fr.js b/editor/editor/plugins/placeholder/lang/fr.js
@@ -0,0 +1,27 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placeholder French language file.
+ */
+FCKLang.PlaceholderBtn = "Insérer/Modifier l'Espace réservé" ;
+FCKLang.PlaceholderDlgTitle = "Propriétés de l'Espace réservé" ;
+FCKLang.PlaceholderDlgName = "Nom de l'Espace réservé" ;
+FCKLang.PlaceholderErrNoName = "Veuillez saisir le nom de l'Espace réservé" ;
+FCKLang.PlaceholderErrNameInUse = "Ce nom est déjà utilisé" ;
diff --git a/editor/editor/plugins/placeholder/lang/it.js b/editor/editor/plugins/placeholder/lang/it.js
@@ -0,0 +1,27 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placholder Italian language file.
+ */
+FCKLang.PlaceholderBtn = 'Aggiungi/Modifica Placeholder' ;
+FCKLang.PlaceholderDlgTitle = 'Proprietà del Placeholder' ;
+FCKLang.PlaceholderDlgName = 'Nome del Placeholder' ;
+FCKLang.PlaceholderErrNoName = 'Digitare il nome del placeholder' ;
+FCKLang.PlaceholderErrNameInUse = 'Il nome inserito è già in uso' ;
diff --git a/editor/editor/plugins/placeholder/lang/pl.js b/editor/editor/plugins/placeholder/lang/pl.js
@@ -0,0 +1,27 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placholder Polish language file.
+ */
+FCKLang.PlaceholderBtn = 'Wstaw/Edytuj nagłówek' ;
+FCKLang.PlaceholderDlgTitle = 'Właśności nagłówka' ;
+FCKLang.PlaceholderDlgName = 'Nazwa nagłówka' ;
+FCKLang.PlaceholderErrNoName = 'Proszę wprowadzić nazwę nagłówka' ;
+FCKLang.PlaceholderErrNameInUse = 'Podana nazwa jest już w użyciu' ;+
\ No newline at end of file
diff --git a/editor/editor/plugins/placeholder/placeholder.gif b/editor/editor/plugins/placeholder/placeholder.gif
Binary files differ.
diff --git a/editor/editor/plugins/simplecommands/fckplugin.js b/editor/editor/plugins/simplecommands/fckplugin.js
@@ -0,0 +1,29 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This plugin register Toolbar items for the combos modifying the style to
+ * not show the box.
+ */
+
+FCKToolbarItems.RegisterItem( 'SourceSimple' , new FCKToolbarButton( 'Source', FCKLang.Source, null, FCK_TOOLBARITEM_ONLYICON, true, true, 1 ) ) ;
+FCKToolbarItems.RegisterItem( 'StyleSimple' , new FCKToolbarStyleCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;
+FCKToolbarItems.RegisterItem( 'FontNameSimple' , new FCKToolbarFontsCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;
+FCKToolbarItems.RegisterItem( 'FontSizeSimple' , new FCKToolbarFontSizeCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;
+FCKToolbarItems.RegisterItem( 'FontFormatSimple', new FCKToolbarFontFormatCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;
diff --git a/editor/editor/plugins/tablecommands/fckplugin.js b/editor/editor/plugins/tablecommands/fckplugin.js
@@ -0,0 +1,33 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This plugin register the required Toolbar items to be able to insert the
+ * table commands in the toolbar.
+ */
+
+FCKToolbarItems.RegisterItem( 'TableInsertRowAfter' , new FCKToolbarButton( 'TableInsertRowAfter' , FCKLang.InsertRowAfter, null, null, null, true, 62 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableDeleteRows' , new FCKToolbarButton( 'TableDeleteRows' , FCKLang.DeleteRows, null, null, null, true, 63 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableInsertColumnAfter' , new FCKToolbarButton( 'TableInsertColumnAfter' , FCKLang.InsertColumnAfter, null, null, null, true, 64 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableDeleteColumns' , new FCKToolbarButton( 'TableDeleteColumns', FCKLang.DeleteColumns, null, null, null, true, 65 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableInsertCellAfter' , new FCKToolbarButton( 'TableInsertCellAfter' , FCKLang.InsertCellAfter, null, null, null, true, 58 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableDeleteCells' , new FCKToolbarButton( 'TableDeleteCells' , FCKLang.DeleteCells, null, null, null, true, 59 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableMergeCells' , new FCKToolbarButton( 'TableMergeCells' , FCKLang.MergeCells, null, null, null, true, 60 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableHorizontalSplitCell' , new FCKToolbarButton( 'TableHorizontalSplitCell' , FCKLang.SplitCell, null, null, null, true, 61 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableCellProp' , new FCKToolbarButton( 'TableCellProp' , FCKLang.CellProperties, null, null, null, true, 57 ) ) ;
diff --git a/editor/editor/skins/_fckviewstrips.html b/editor/editor/skins/_fckviewstrips.html
@@ -2,29 +2,24 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: _fckviewstrips.html
- * Useful page that enumerates all icons in the skins strips.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
- * Alfonso Martinez de Lizarrondo - Uritec (alfonso at uritec dot net)
+ *
+ * Useful page that enumerates all icons in the skins strips.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@@ -68,9 +63,9 @@ function Img_OnLoad()
{
if ( iMaxHeight < this.height )
iMaxHeight = this.height ;
-
+
iTotalStrips-- ;
-
+
if ( iTotalStrips == 0 )
LoadIcons( iMaxHeight / 16 ) ;
}
@@ -82,10 +77,10 @@ function LoadIcons( total )
for ( var i = 0 ; i < total ; i++ )
{
var eRow = xIconsTable.insertRow(-1) ;
-
+
var eCell = eRow.insertCell(-1) ;
eCell.innerHTML = i + 1 ;
-
+
eCell = eRow.insertCell(-1) ;
eCell.align = 'center' ;
eCell.style.border = '#dcdcdc 1px solid' ;
diff --git a/editor/editor/skins/default/fck_dialog.css b/editor/editor/skins/default/fck_dialog.css
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_dialog.css
- * Styles used by the dialog boxes.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Styles used by the dialog boxes.
*/
body
@@ -66,14 +62,16 @@ body, .BackColor
.Button
{
- border-right: #737357 1px solid;
- border-top: #737357 1px solid;
- border-left: #737357 1px solid;
+ border: #737357 1px solid;
color: #3b3b1f;
- border-bottom: #737357 1px solid;
background-color: #c7c78f;
}
+#btnOk
+{
+ width: 100px;
+}
+
.DarkBackground
{
background-color: #d7d79f;
@@ -106,10 +104,7 @@ body, .BackColor
border-right: #d5d59d 1px solid;
border-top: #d5d59d 1px solid;
border-left: #d5d59d 1px solid;
- padding-right: 5px;
- padding-left: 5px;
- padding-bottom: 3px;
- padding-top: 3px;
+ padding: 3px 5px 3px 5px;
color: #737357;
}
@@ -136,4 +131,9 @@ body, .BackColor
background-color: #fffacd !important;
cursor: pointer;
cursor: hand;
+}
+
+#tdBrowse
+{
+ vertical-align: bottom;
}
\ No newline at end of file
diff --git a/editor/editor/skins/default/fck_editor.css b/editor/editor/skins/default/fck_editor.css
@@ -1,28 +1,24 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fck_editor.css
- * Styles used by the editor IFRAME and Toolbar.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Styles used by the editor IFRAME and Toolbar.
*/
/*
@@ -31,8 +27,9 @@
body
{
- padding: 1px 1px 1px 1px;
- margin: 0px 0px 0px 0px;
+ padding: 1px;
+ margin: 0;
+ background-color: #ffffff;
}
#xEditingArea
@@ -71,6 +68,7 @@ body
.TB_Toolbar
{
+ height: 24px;
display: inline-table; /* inline = Opera jumping buttons bug */
}
@@ -334,7 +332,6 @@ body
border: 1px solid #8f8f73;
padding-left: 2px;
padding-right: 2px;
- background-color: #ffffff;
}
.SC_Panel, .SC_Panel TD
diff --git a/editor/editor/skins/default/fck_strip.gif b/editor/editor/skins/default/fck_strip.gif
Binary files differ.
diff --git a/editor/editor/skins/office2003/fck_dialog.css b/editor/editor/skins/office2003/fck_dialog.css
@@ -0,0 +1,140 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Styles used by the dialog boxes.
+ */
+
+body
+{
+ margin: 0px;
+ padding: 10px;
+ background-color: #f7f8fd;
+}
+
+body, td, input, select, textarea
+{
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;
+}
+
+body, .BackColor
+{
+ background-color: #f7f8fd;
+}
+
+.PopupBody
+{
+ margin: 0px;
+ padding: 0px;
+}
+
+.PopupTitle
+{
+ font-weight: bold;
+ font-size: 14pt;
+ color: #0e3460;
+ background-color: #8cb2fd;
+ padding: 3px 10px 3px 10px;
+}
+
+.PopupButtons
+{
+ border-top: #466ca6 1px solid;
+ background-color: #8cb2fd;
+ padding: 7px 10px 7px 10px;
+}
+
+.Button
+{
+ border: #1c3460 1px solid;
+ color: #000a28;
+ background-color: #7096d3;
+}
+
+#btnOk
+{
+ width: 100px;
+}
+
+.DarkBackground
+{
+ background-color: #d7d79f;
+}
+
+.LightBackground
+{
+ background-color: #ffffbe;
+}
+
+.PopupTitleBorder
+{
+ border-bottom: #d5d59d 1px solid;
+}
+
+.PopupTabArea
+{
+ color: #0e3460;
+ background-color: #8cb2fd;
+}
+
+.PopupTabEmptyArea
+{
+ padding-left: 10px ;
+ border-bottom: #466ca6 1px solid;
+}
+
+.PopupTab, .PopupTabSelected
+{
+ border-right: #466ca6 1px solid;
+ border-top: #466ca6 1px solid;
+ border-left: #466ca6 1px solid;
+ padding: 3px 5px 3px 5px;
+ color: #0e3460;
+}
+
+.PopupTab
+{
+ margin-top: 1px;
+ border-bottom: #466ca6 1px solid;
+ cursor: pointer;
+ cursor: hand;
+}
+
+.PopupTabSelected
+{
+ font-weight:bold;
+ cursor: default;
+ padding-top: 4px;
+ border-bottom: #f7f8fd 1px solid;
+ background-color: #f7f8fd;
+}
+
+.PopupSelectionBox
+{
+ border: #1e90ff 1px solid !important;
+ background-color: #add8e6 !important;
+ cursor: pointer;
+ cursor: hand;
+}
+
+#tdBrowse
+{
+ vertical-align: bottom;
+}+
\ No newline at end of file
diff --git a/editor/editor/skins/office2003/fck_editor.css b/editor/editor/skins/office2003/fck_editor.css
@@ -0,0 +1,476 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Styles used by the editor IFRAME and Toolbar.
+ */
+
+/*
+ ### Basic Editor IFRAME Styles.
+*/
+
+body
+{
+ padding: 1px;
+ margin: 0;
+ background-color: #ffffff;
+}
+
+#xEditingArea
+{
+ border: #696969 1px solid;
+}
+
+.SourceField
+{
+ padding: 5px;
+ margin: 0px;
+ font-family: Monospace;
+}
+
+/*
+ Toolbar
+*/
+
+.TB_ToolbarSet, .TB_Expand, .TB_Collapse
+{
+ cursor: default;
+ background-color: #f7f8fd;
+}
+
+.TB_ToolbarSet
+{
+ border-top: #f7f8fd 1px outset;
+ border-bottom: #f7f8fd 1px outset;
+}
+
+.TB_ToolbarSet TD
+{
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.TB_Toolbar
+{
+ background-color: #d6dff7;
+ background-image: url(images/toolbar.bg.gif);
+ background-repeat: repeat-x;
+ display: inline-table;
+}
+
+.TB_Separator
+{
+ width: 1px;
+ height: 16px;
+ margin: 2px;
+ background-color: #B2CBFF;
+}
+
+.TB_Start
+{
+ background-image: url(images/toolbar.start.gif);
+ background-repeat: no-repeat;
+ background-position: center center;
+ margin: 0px;
+ width: 7px;
+ height: 24px;
+}
+
+.TB_End
+{
+ background-image: url(images/toolbar.end.gif);
+ background-repeat: no-repeat;
+ background-position: center left;
+ height: 24px;
+ width: 4px;
+}
+
+.TB_ExpandImg
+{
+ background-image: url(images/toolbar.expand.gif);
+ background-repeat: no-repeat;
+}
+
+.TB_CollapseImg
+{
+ background-image: url(images/toolbar.collapse.gif);
+ background-repeat: no-repeat;
+}
+
+.TB_SideBorder
+{
+ background-color: #696969;
+}
+
+.TB_Expand, .TB_Collapse
+{
+ padding: 2px 2px 2px 2px;
+ border: #f7f8fd 1px outset;
+}
+
+.TB_Collapse
+{
+ width: 5px;
+}
+
+.TB_Break
+{
+ height: 24px; /* IE needs the height to be set, otherwise no break */
+}
+
+/*
+ Toolbar Button
+*/
+
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled
+{
+ margin: 1px;
+ height: 22px; /* The height is necessary, otherwise IE will not apply the alpha */
+}
+
+.TB_Button_On
+{
+ margin: 0px;
+ border: #316ac5 1px solid;
+ background-color: #c1d2ee;
+}
+
+.TB_Button_On_Over, .TB_Button_Off_Over
+{
+ margin: 0px ;
+ border: #316ac5 1px solid;
+ background-color: #dff1ff;
+}
+
+.TB_Button_Off
+{
+ filter: alpha(opacity=70); /* IE */
+ opacity: 0.70; /* Safari, Opera and Mozilla */
+}
+
+.TB_Button_Disabled
+{
+ filter: gray() alpha(opacity=30); /* IE */
+ opacity: 0.30; /* Safari, Opera and Mozilla */
+}
+
+.TB_Button_Padding
+{
+ visibility: hidden;
+ width: 3px;
+ height: 22px;
+}
+
+.TB_Button_Image
+{
+ overflow: hidden;
+ width: 16px;
+ height: 16px;
+ margin: 3px;
+ background-repeat: no-repeat;
+}
+
+.TB_Button_Image img
+{
+ position: relative;
+}
+
+.TB_Button_Off .TB_Button_Text
+{
+ background-color: #d6dff7; /* Needed because of a bug on ClearType */
+ background-image: url(images/toolbar.bg.gif);
+ background-repeat: repeat-x;
+}
+
+.TB_ConnectionLine
+{
+ background-color: #f7f8fd;
+ height: 1px;
+ margin-left: 1px; /* ltr */
+ margin-right: 1px; /* rtl */
+}
+
+.TB_Button_Off .TB_Text
+{
+ background-color: #d6dff7; /* Needed because of a bug on ClearType */
+ background-image: url(images/toolbar.bg.gif);
+ background-repeat: repeat-x;
+}
+
+.TB_Button_On_Over .TB_Text
+{
+ background-color: #dff1ff ; /* Needed because of a bug on ClearType */
+}
+
+/*
+ Menu
+*/
+
+.MN_Menu
+{
+ border: 1px solid #8f8f73;
+ padding: 2px;
+ background-color: #f7f8fd;
+ cursor: default;
+}
+
+.MN_Menu, .MN_Menu .MN_Label
+{
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.MN_Item_Padding
+{
+ visibility: hidden;
+ width: 3px;
+ height: 20px;
+}
+
+.MN_Icon
+{
+ background-color: #d6dff7;
+ text-align: center;
+ height: 20px;
+}
+
+.MN_Label
+{
+ padding-left: 3px;
+ padding-right: 3px;
+}
+
+.MN_Separator
+{
+ height: 3px;
+}
+
+.MN_Separator_Line
+{
+ border-top: #b9b99d 1px solid;
+}
+
+.MN_Item .MN_Icon IMG
+{
+ filter: alpha(opacity=70);
+ opacity: 0.70;
+}
+
+.MN_Item_Over
+{
+ color: #ffffff;
+ background-color: #7096FA;
+}
+
+.MN_Item_Over .MN_Icon
+{
+ background-color: #466ca6;
+}
+
+.MN_Item_Disabled IMG
+{
+ filter: gray() alpha(opacity=30); /* IE */
+ opacity: 0.30; /* Safari, Opera and Mozilla */
+}
+
+.MN_Item_Disabled .MN_Label
+{
+ color: #b7b7b7;
+}
+
+.MN_Arrow
+{
+ padding-right: 3px;
+ padding-left: 3px;
+}
+
+.MN_ConnectionLine
+{
+ background-color: #f7f8fd;
+}
+
+.Menu .TB_Button_On, .Menu .TB_Button_On_Over
+{
+ border: #8f8f73 1px solid;
+ background-color: #f7f8fd;
+}
+
+/*
+ ### Panel Styles
+*/
+
+.FCK_Panel
+{
+ border: #8f8f73 1px solid;
+ padding: 2px;
+ background-color: #f7f8fd;
+}
+
+.FCK_Panel, .FCK_Panel TD
+{
+ font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+ font-size: 11px;
+}
+
+/*
+ ### Special Combos
+*/
+
+.SC_Panel
+{
+ overflow: auto;
+ white-space: nowrap;
+ cursor: default;
+ border: 1px solid #8f8f73;
+ padding-left: 2px;
+ padding-right: 2px;
+}
+
+.SC_Panel, .SC_Panel TD
+{
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.SC_Item, .SC_ItemSelected
+{
+ margin-top: 2px;
+ margin-bottom: 2px;
+ background-position: left center;
+ padding-left: 11px;
+ padding-right: 3px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ background-repeat: no-repeat;
+ border: #dddddd 1px solid;
+}
+
+.SC_Item *, .SC_ItemSelected *
+{
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+
+.SC_ItemSelected
+{
+ border: #9a9afb 1px solid;
+ background-image: url(images/toolbar.arrowright.gif);
+}
+
+.SC_ItemOver
+{
+ border: #316ac5 1px solid;
+}
+
+.SC_Field
+{
+ margin-top: 2px ;
+ border: #b7b7a6 1px solid;
+ cursor: default;
+}
+
+.SC_FieldCaption
+{
+ overflow: visible;
+ padding-right: 5px;
+ padding-left: 5px;
+ opacity: 0.75; /* Safari, Opera and Mozilla */
+ filter: alpha(opacity=70); /* IE */ /* -moz-opacity: 0.75; Mozilla (Old) */
+ height: 23px;
+ background-color: #d6dff7; /* Needed because of a bug on ClearType */
+ background-image: url(images/toolbar.bg.gif);
+ background-repeat: repeat-x;
+/* background-color: inherit; Maybe this is needed wait to check */
+}
+
+.SC_FieldLabel
+{
+ white-space: nowrap;
+ padding: 2px;
+ width: 100%;
+ cursor: default;
+ background-color: #ffffff;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+
+.SC_FieldButton
+{
+ background-position: center center;
+ background-image: url(images/toolbar.buttonarrow.gif);
+ border-left: #b7b7a6 1px solid;
+ width: 14px;
+ background-repeat: no-repeat;
+}
+
+.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption
+{
+ opacity: 0.30; /* Safari, Opera and Mozilla */
+ filter: gray() alpha(opacity=30); /* IE */ /* -moz-opacity: 0.30; Mozilla (Old) */
+}
+
+.SC_FieldOver
+{
+ border: #316ac5 1px solid;
+}
+
+.SC_FieldOver .SC_FieldButton
+{
+ border-left: #316ac5 1px solid;
+}
+
+/*
+ ### Color Selector Panel
+*/
+
+.ColorBoxBorder
+{
+ border: #808080 1px solid;
+ position: static;
+}
+
+.ColorBox
+{
+ font-size: 1px;
+ width: 10px;
+ position: static;
+ height: 10px;
+}
+
+.ColorDeselected, .ColorSelected
+{
+ cursor: default;
+}
+
+.ColorDeselected
+{
+ border: #ffffff 1px solid;
+ padding: 2px;
+ float: left;
+}
+
+.ColorSelected
+{
+ border: #330066 1px solid;
+ padding: 2px;
+ float: left;
+ background-color: #c4cdd6;
+}
diff --git a/editor/editor/skins/office2003/fck_strip.gif b/editor/editor/skins/office2003/fck_strip.gif
Binary files differ.
diff --git a/editor/editor/skins/office2003/images/toolbar.arrowright.gif b/editor/editor/skins/office2003/images/toolbar.arrowright.gif
Binary files differ.
diff --git a/editor/editor/skins/office2003/images/toolbar.bg.gif b/editor/editor/skins/office2003/images/toolbar.bg.gif
Binary files differ.
diff --git a/editor/editor/skins/office2003/images/toolbar.buttonarrow.gif b/editor/editor/skins/office2003/images/toolbar.buttonarrow.gif
Binary files differ.
diff --git a/editor/editor/skins/office2003/images/toolbar.collapse.gif b/editor/editor/skins/office2003/images/toolbar.collapse.gif
Binary files differ.
diff --git a/editor/editor/skins/office2003/images/toolbar.end.gif b/editor/editor/skins/office2003/images/toolbar.end.gif
Binary files differ.
diff --git a/editor/editor/skins/office2003/images/toolbar.expand.gif b/editor/editor/skins/office2003/images/toolbar.expand.gif
Binary files differ.
diff --git a/editor/editor/skins/office2003/images/toolbar.separator.gif b/editor/editor/skins/office2003/images/toolbar.separator.gif
Binary files differ.
diff --git a/editor/editor/skins/office2003/images/toolbar.start.gif b/editor/editor/skins/office2003/images/toolbar.start.gif
Binary files differ.
diff --git a/editor/editor/skins/silver/fck_dialog.css b/editor/editor/skins/silver/fck_dialog.css
@@ -0,0 +1,143 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Styles used by the dialog boxes.
+ */
+
+body
+{
+ margin: 0px;
+ padding: 10px;
+ background-color: #f7f7f7;
+}
+
+body, td, input, select, textarea
+{
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;
+}
+
+body, .BackColor
+{
+ background-color: #f7f7f7;
+}
+
+.PopupBody
+{
+ margin: 0px;
+ padding: 0px;
+}
+
+.PopupTitle
+{
+ padding-right: 10px;
+ padding-left: 10px;
+ font-weight: bold;
+ font-size: 14pt;
+ padding-bottom: 3px;
+ color: #504845;
+ padding-top: 3px;
+ background-color: #dedede;
+}
+
+.PopupButtons
+{
+ border-top: #cec6b5 1px solid;
+ background-color: #DEDEDE;
+ padding: 7px 10px 7px 10px;
+}
+
+.Button
+{
+ border: #7a7261 1px solid;
+ color: #504845;
+ background-color: #cec6b5;
+}
+
+#btnOk
+{
+ width: 100px;
+}
+
+.DarkBackground
+{
+ background-color: #d7d79f;
+}
+
+.LightBackground
+{
+ background-color: #ffffbe;
+}
+
+.PopupTitleBorder
+{
+ border-bottom: #cec6b5 1px solid;
+}
+
+.PopupTabArea
+{
+ color: #504845;
+ background-color: #DEDEDE;
+}
+
+.PopupTabEmptyArea
+{
+ padding-left: 10px ;
+ border-bottom: #cec6b5 1px solid;
+}
+
+.PopupTab, .PopupTabSelected
+{
+ border-right: #cec6b5 1px solid;
+ border-top: #cec6b5 1px solid;
+ border-left: #cec6b5 1px solid;
+ padding: 3px 5px 3px 5px;
+ color: #504845;
+}
+
+.PopupTab
+{
+ margin-top: 1px;
+ border-bottom: #cec6b5 1px solid;
+ cursor: pointer;
+ cursor: hand;
+}
+
+.PopupTabSelected
+{
+ font-weight:bold;
+ cursor: default;
+ padding-top: 4px;
+ border-bottom: #f1f1e3 1px solid;
+ background-color: #f7f7f7;
+}
+
+.PopupSelectionBox
+{
+ border: #a9a9a9 1px solid !important;
+ background-color: #dcdcdc !important;
+ cursor: pointer;
+ cursor: hand;
+}
+
+#tdBrowse
+{
+ vertical-align: bottom;
+}+
\ No newline at end of file
diff --git a/editor/editor/skins/silver/fck_editor.css b/editor/editor/skins/silver/fck_editor.css
@@ -0,0 +1,473 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Styles used by the editor IFRAME and Toolbar.
+ */
+
+/*
+ ### Basic Editor IFRAME Styles.
+*/
+
+body
+{
+ padding: 1px;
+ margin: 0;
+ background-color: #ffffff;
+}
+
+#xEditingArea
+{
+ border: #696969 1px solid;
+}
+
+.SourceField
+{
+ padding: 5px;
+ margin: 0px;
+ font-family: Monospace;
+}
+
+/*
+ Toolbar
+*/
+
+.TB_ToolbarSet, .TB_Expand, .TB_Collapse
+{
+ cursor: default;
+ background-color: #f7f7f7;
+}
+
+.TB_ToolbarSet
+{
+ padding: 1px;
+ border-top: #efefde 1px outset;
+ border-bottom: #efefde 1px outset;
+}
+
+.TB_ToolbarSet TD
+{
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.TB_Toolbar
+{
+ display: inline-table;
+}
+
+.TB_Separator
+{
+ width: 1px;
+ height: 21px;
+ margin: 2px;
+ background-color: #C6C3BD;
+}
+
+.TB_Start
+{
+ background-image: url(images/toolbar.start.gif);
+ margin-left: 2px;
+ margin-right: 2px;
+ width: 3px;
+ background-repeat: no-repeat;
+ height: 27px;
+ background-position: center center;
+}
+
+.TB_End
+{
+ display: none;
+}
+
+.TB_ExpandImg
+{
+ background-image: url(images/toolbar.expand.gif);
+ background-repeat: no-repeat;
+}
+
+.TB_CollapseImg
+{
+ background-image: url(images/toolbar.collapse.gif);
+ background-repeat: no-repeat;
+}
+
+.TB_SideBorder
+{
+ background-color: #696969;
+}
+
+.TB_Expand, .TB_Collapse
+{
+ padding: 2px 2px 2px 2px;
+ border: #efefde 1px outset;
+}
+
+.TB_Collapse
+{
+ border: #efefde 1px outset;
+ width: 5px;
+}
+
+.TB_Break
+{
+ height: 27px;
+}
+
+/*
+ Toolbar Button
+*/
+
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled
+{
+ padding: 1px ;
+ margin:1px;
+ height: 21px;
+}
+
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled
+{
+ border: #cec6b5 1px solid;
+}
+
+.TB_Button_On
+{
+ border-color: #316ac5;
+ background-color: #c1d2ee;
+}
+
+.TB_Button_On_Over, .TB_Button_Off_Over
+{
+ border: #316ac5 1px solid;
+ background-color: #dff1ff;
+}
+
+.TB_Button_Off
+{
+ background: #efefef url(images/toolbar.buttonbg.gif) repeat-x;
+}
+
+.TB_Button_Off, .TB_Combo_Off
+{
+ opacity: 0.70; /* Safari, Opera and Mozilla */
+ filter: alpha(opacity=70); /* IE */
+ /* -moz-opacity: 0.70; Mozilla (Old) */
+}
+
+.TB_Button_Disabled
+{
+ opacity: 0.30; /* Safari, Opera and Mozilla */
+ filter: gray() alpha(opacity=30); /* IE */
+}
+
+.TB_Button_Padding
+{
+ visibility: hidden;
+ width: 3px;
+ height: 21px;
+}
+
+.TB_Button_Image
+{
+ overflow: hidden;
+ width: 16px;
+ height: 16px;
+ margin: 3px;
+ margin-top: 4px;
+ margin-bottom: 2px;
+ background-repeat: no-repeat;
+}
+
+/* For composed button ( icon + text, icon + arrow ), we must compensate the table */
+.TB_Button_On TABLE .TB_Button_Image,
+.TB_Button_Off TABLE .TB_Button_Image,
+.TB_Button_On_Over TABLE .TB_Button_Image,
+.TB_Button_Off_Over TABLE .TB_Button_Image,
+.TB_Button_Disabled TABLE .TB_Button_Image
+{
+ margin-top: 3px;
+}
+
+.TB_Button_Image img
+{
+ position: relative;
+}
+
+.TB_ConnectionLine
+{
+ background-color: #ffffff;
+ height: 1px;
+ margin-left: 1px; /* ltr */
+ margin-right: 1px; /* rtl */
+}
+
+/*
+ Menu
+*/
+
+.MN_Menu
+{
+ border: 1px solid #8f8f73;
+ padding: 2px;
+ background-color: #f7f7f7;
+ cursor: default;
+}
+
+.MN_Menu, .MN_Menu .MN_Label
+{
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.MN_Item_Padding
+{
+ visibility: hidden;
+ width: 3px;
+ height: 20px;
+}
+
+.MN_Icon
+{
+ background-color: #dedede;
+ text-align: center;
+ height: 20px;
+}
+
+.MN_Label
+{
+ padding-left: 3px;
+ padding-right: 3px;
+}
+
+.MN_Separator
+{
+ height: 3px;
+}
+
+.MN_Separator_Line
+{
+ border-top: #b9b99d 1px solid;
+}
+
+.MN_Item .MN_Icon IMG
+{
+ filter: alpha(opacity=70);
+ opacity: 0.70;
+}
+
+.MN_Item_Over
+{
+ color: #ffffff;
+ background-color: #8a857d;
+}
+
+.MN_Item_Over .MN_Icon
+{
+ background-color: #6c6761;
+}
+
+.MN_Item_Disabled IMG
+{
+ filter: gray() alpha(opacity=30); /* IE */
+ opacity: 0.30; /* Safari, Opera and Mozilla */
+}
+
+.MN_Item_Disabled .MN_Label
+{
+ color: #b7b7b7;
+}
+
+.MN_Arrow
+{
+ padding-right: 3px;
+ padding-left: 3px;
+}
+
+.MN_ConnectionLine
+{
+ background-color: #ffffff;
+}
+
+.Menu .TB_Button_On, .Menu .TB_Button_On_Over
+{
+ border: #8f8f73 1px solid;
+ background-color: #ffffff;
+}
+
+/*
+ ### Panel Styles
+*/
+
+.FCK_Panel
+{
+ border: #8f8f73 1px solid;
+ padding: 2px;
+ background-color: #ffffff;
+}
+
+.FCK_Panel, .FCK_Panel TD
+{
+ font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+ font-size: 11px;
+}
+
+/*
+ ### Special Combos
+*/
+
+.SC_Panel
+{
+ overflow: auto;
+ white-space: nowrap;
+ cursor: default;
+ border: 1px solid #8f8f73;
+ padding-left: 2px;
+ padding-right: 2px;
+}
+
+.SC_Panel, .SC_Panel TD
+{
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.SC_Item, .SC_ItemSelected
+{
+ margin-top: 2px;
+ margin-bottom: 2px;
+ background-position: left center;
+ padding-left: 11px;
+ padding-right: 3px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ background-repeat: no-repeat;
+ border: #dddddd 1px solid;
+}
+
+.SC_Item *, .SC_ItemSelected *
+{
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+
+.SC_ItemSelected
+{
+ border: #9a9afb 1px solid;
+ background-image: url(images/toolbar.arrowright.gif);
+}
+
+.SC_ItemOver
+{
+ border: #316ac5 1px solid;
+}
+
+.SC_Field
+{
+ margin-top:1px ;
+ border: #b7b7a6 1px solid;
+ cursor: default;
+}
+
+.SC_FieldCaption
+{
+ padding-top: 1px ;
+ overflow: visible;
+ padding-right: 5px;
+ padding-left: 5px;
+ opacity: 0.75; /* Safari, Opera and Mozilla */
+ filter: alpha(opacity=70); /* IE */ /* -moz-opacity: 0.75; Mozilla (Old) */
+ height: 23px;
+ background-color: #f7f7f7;
+}
+
+.SC_FieldLabel
+{
+ white-space: nowrap;
+ padding: 2px;
+ width: 100%;
+ cursor: default;
+ background-color: #ffffff;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+
+.SC_FieldButton
+{
+ background-position: center center;
+ background-image: url(images/toolbar.buttonarrow.gif);
+ border-left: #b7b7a6 1px solid;
+ width: 14px;
+ background-repeat: no-repeat;
+}
+
+.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption
+{
+ opacity: 0.30; /* Safari, Opera and Mozilla */
+ filter: gray() alpha(opacity=30); /* IE */ /* -moz-opacity: 0.30; Mozilla (Old) */
+}
+
+.SC_FieldOver
+{
+ border: #316ac5 1px solid;
+}
+
+.SC_FieldOver .SC_FieldButton
+{
+ border-left: #316ac5 1px solid;
+}
+
+/*
+ ### Color Selector Panel
+*/
+
+.ColorBoxBorder
+{
+ border: #808080 1px solid;
+ position: static;
+}
+
+.ColorBox
+{
+ font-size: 1px;
+ width: 10px;
+ position: static;
+ height: 10px;
+}
+
+.ColorDeselected, .ColorSelected
+{
+ cursor: default;
+}
+
+.ColorDeselected
+{
+ border: #ffffff 1px solid;
+ padding: 2px;
+ float: left;
+}
+
+.ColorSelected
+{
+ border: #316ac5 1px solid;
+ padding: 2px;
+ float: left;
+ background-color: #c1d2ee;
+}
diff --git a/editor/editor/skins/silver/fck_strip.gif b/editor/editor/skins/silver/fck_strip.gif
Binary files differ.
diff --git a/editor/editor/skins/silver/images/toolbar.arrowright.gif b/editor/editor/skins/silver/images/toolbar.arrowright.gif
Binary files differ.
diff --git a/editor/editor/skins/silver/images/toolbar.buttonarrow.gif b/editor/editor/skins/silver/images/toolbar.buttonarrow.gif
Binary files differ.
diff --git a/editor/editor/skins/silver/images/toolbar.buttonbg.gif b/editor/editor/skins/silver/images/toolbar.buttonbg.gif
Binary files differ.
diff --git a/editor/editor/skins/silver/images/toolbar.collapse.gif b/editor/editor/skins/silver/images/toolbar.collapse.gif
Binary files differ.
diff --git a/editor/editor/skins/silver/images/toolbar.end.gif b/editor/editor/skins/silver/images/toolbar.end.gif
Binary files differ.
diff --git a/editor/editor/skins/silver/images/toolbar.expand.gif b/editor/editor/skins/silver/images/toolbar.expand.gif
Binary files differ.
diff --git a/editor/editor/skins/silver/images/toolbar.separator.gif b/editor/editor/skins/silver/images/toolbar.separator.gif
Binary files differ.
diff --git a/editor/editor/skins/silver/images/toolbar.start.gif b/editor/editor/skins/silver/images/toolbar.start.gif
Binary files differ.
diff --git a/editor/fckconfig.js b/editor/fckconfig.js
@@ -1,40 +1,33 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fckconfig.js
- * Editor configuration settings.
- *
- * Follow this link for more information:
- * http://wiki.fckeditor.net/Developer%27s_Guide/Configuration/Configurations_Settings
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * Editor configuration settings.
+ *
+ * Follow this link for more information:
+ * http://wiki.fckeditor.net/Developer%27s_Guide/Configuration/Configurations_Settings
*/
-// Disable the custom Enter Key Handler (this configuration will be removed in
-// version 2.5).
-FCKConfig.DisableEnterKeyHandler = false ;
-
FCKConfig.CustomConfigurationsPath = '' ;
FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css' ;
+FCKConfig.EditorAreaStyles = '' ;
FCKConfig.ToolbarComboPreviewCSS = '' ;
FCKConfig.DocType = '' ;
@@ -43,6 +36,9 @@ FCKConfig.BaseHref = '' ;
FCKConfig.FullPage = false ;
+// The following option determines whether the "Show Blocks" feature is enabled or not at startup.
+FCKConfig.StartupShowBlocks = false ;
+
FCKConfig.Debug = false ;
FCKConfig.AllowQueryStringDebug = true ;
@@ -52,6 +48,7 @@ FCKConfig.PreloadImages = [ FCKConfig.SkinPath + 'images/toolbar.start.gif', FCK
FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ;
// FCKConfig.Plugins.Add( 'autogrow' ) ;
+// FCKConfig.Plugins.Add( 'dragresizetable' );
FCKConfig.AutoGrowMax = 400 ;
// FCKConfig.ProtectedSource.Add( /<%[\s\S]*?%>/g ) ; // ASP style server side code <%...%>
@@ -76,11 +73,11 @@ FCKConfig.FormatSource = true ;
FCKConfig.FormatOutput = true ;
FCKConfig.FormatIndentator = ' ' ;
-FCKConfig.ForceStrongEm = true ;
FCKConfig.GeckoUseSPAN = false ;
FCKConfig.StartupFocus = false ;
FCKConfig.ForcePasteAsPlainText = false ;
FCKConfig.AutoDetectPasteFromWord = true ; // IE only.
+FCKConfig.ShowDropDialog = true ;
FCKConfig.ForceSimpleAmpersand = false ;
FCKConfig.TabSpaces = 0 ;
FCKConfig.ShowBorders = true ;
@@ -90,6 +87,7 @@ FCKConfig.ToolbarCanCollapse = true ;
FCKConfig.IgnoreEmptyParagraphValue = true ;
FCKConfig.PreserveSessionOnFileBrowser = false ;
FCKConfig.FloatingPanelsZIndex = 10000 ;
+FCKConfig.HtmlEncodeOutput = false ;
FCKConfig.TemplateReplaceAll = true ;
FCKConfig.TemplateReplaceCheckbox = true ;
@@ -103,14 +101,14 @@ FCKConfig.ToolbarSets["Default"] = [
['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
'/',
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
- ['OrderedList','UnorderedList','-','Outdent','Indent'],
+ ['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
['Link','Unlink','Anchor'],
['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
'/',
['Style','FontFormat','FontName','FontSize'],
['TextColor','BGColor'],
- ['FitWindow','-','About']
+ ['FitWindow','ShowBlocks','-','About'] // No comma for the last row.
] ;
FCKConfig.ToolbarSets["Basic"] = [
@@ -123,9 +121,13 @@ FCKConfig.ShiftEnterMode = 'br' ; // p | div | br
FCKConfig.Keystrokes = [
[ CTRL + 65 /*A*/, true ],
[ CTRL + 67 /*C*/, true ],
+ [ CTRL + 70 /*F*/, true ],
+ [ CTRL + 83 /*S*/, true ],
[ CTRL + 88 /*X*/, true ],
[ CTRL + 86 /*V*/, 'Paste' ],
[ SHIFT + 45 /*INS*/, 'Paste' ],
+ [ CTRL + 88 /*X*/, 'Cut' ],
+ [ SHIFT + 46 /*DEL*/, 'Cut' ],
[ CTRL + 90 /*Z*/, 'Undo' ],
[ CTRL + 89 /*Y*/, 'Redo' ],
[ CTRL + SHIFT + 90 /*Z*/, 'Redo' ],
@@ -133,25 +135,28 @@ FCKConfig.Keystrokes = [
[ CTRL + 66 /*B*/, 'Bold' ],
[ CTRL + 73 /*I*/, 'Italic' ],
[ CTRL + 85 /*U*/, 'Underline' ],
- [ CTRL + ALT + 83 /*S*/, 'Save' ],
+ [ CTRL + SHIFT + 83 /*S*/, 'Save' ],
[ CTRL + ALT + 13 /*ENTER*/, 'FitWindow' ],
[ CTRL + 9 /*TAB*/, 'Source' ]
] ;
FCKConfig.ContextMenu = ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','Table','Form'] ;
+FCKConfig.BrowserContextMenuOnCtrl = false ;
+FCKConfig.EnableMoreFontColors = true ;
FCKConfig.FontColors = '000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,808080,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF' ;
+FCKConfig.FontFormats = 'p;h1;h2;h3;h4;h5;h6;pre;address;div' ;
FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
-FCKConfig.FontSizes = '1/xx-small;2/x-small;3/small;4/medium;5/large;6/x-large;7/xx-large' ;
-FCKConfig.FontFormats = 'p;div;pre;address;h1;h2;h3;h4;h5;h6' ;
+FCKConfig.FontSizes = 'smaller;larger;xx-small;x-small;small;medium;large;x-large;xx-large' ;
FCKConfig.StylesXmlPath = FCKConfig.EditorPath + 'fckstyles.xml' ;
FCKConfig.TemplatesXmlPath = FCKConfig.EditorPath + 'fcktemplates.xml' ;
FCKConfig.SpellChecker = 'ieSpell' ; // 'ieSpell' | 'SpellerPages'
-FCKConfig.IeSpellDownloadUrl = 'http://wcarchive.cdrom.com/pub/simtelnet/handheld/webbrow1/ieSpellSetup240428.exe' ;
+FCKConfig.IeSpellDownloadUrl = 'http://www.iespell.com/download.php' ;
FCKConfig.SpellerPagesServerScript = 'server-scripts/spellchecker.php' ; // Available extension: .php .cfm .pl
+FCKConfig.FirefoxSpellChecker = false ;
FCKConfig.MaxUndoLevels = 15 ;
@@ -172,51 +177,126 @@ FCKConfig.ProtectedTags = '' ;
FCKConfig.BodyId = '' ;
FCKConfig.BodyClass = '' ;
+FCKConfig.DefaultStyleLabel = '' ;
+FCKConfig.DefaultFontFormatLabel = '' ;
+FCKConfig.DefaultFontLabel = '' ;
+FCKConfig.DefaultFontSizeLabel = '' ;
+
+FCKConfig.DefaultLinkTarget = '' ;
+
// The option switches between trying to keep the html structure or do the changes so the content looks like it was in Word
FCKConfig.CleanWordKeepsStructure = false ;
-// The following value defines which File Browser connector and Quick Upload
+// Only inline elements are valid.
+FCKConfig.RemoveFormatTags = 'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var' ;
+
+FCKConfig.CustomStyles =
+{
+ 'Red Title' : { Element : 'h3', Styles : { 'color' : 'Red' } }
+};
+
+// Do not add, rename or remove styles here. Only apply definition changes.
+FCKConfig.CoreStyles =
+{
+ // Basic Inline Styles.
+ 'Bold' : { Element : 'b', Overrides : 'strong' },
+ 'Italic' : { Element : 'i', Overrides : 'em' },
+ 'Underline' : { Element : 'u' },
+ 'StrikeThrough' : { Element : 'strike' },
+ 'Subscript' : { Element : 'sub' },
+ 'Superscript' : { Element : 'sup' },
+
+ // Basic Block Styles (Font Format Combo).
+ 'p' : { Element : 'p' },
+ 'div' : { Element : 'div' },
+ 'pre' : { Element : 'pre' },
+ 'address' : { Element : 'address' },
+ 'h1' : { Element : 'h1' },
+ 'h2' : { Element : 'h2' },
+ 'h3' : { Element : 'h3' },
+ 'h4' : { Element : 'h4' },
+ 'h5' : { Element : 'h5' },
+ 'h6' : { Element : 'h6' },
+
+ // Other formatting features.
+ 'FontFace' :
+ {
+ Element : 'span',
+ Styles : { 'font-family' : '#("Font")' },
+ Overrides : [ { Element : 'font', Attributes : { 'face' : null } } ]
+ },
+
+ 'Size' :
+ {
+ Element : 'span',
+ Styles : { 'font-size' : '#("Size","fontSize")' },
+ Overrides : [ { Element : 'font', Attributes : { 'size' : null } } ]
+ },
+
+ 'Color' :
+ {
+ Element : 'span',
+ Styles : { 'color' : '#("Color","color")' },
+ Overrides : [ { Element : 'font', Attributes : { 'color' : null } } ]
+ },
+
+ 'BackColor' : { Element : 'span', Styles : { 'background-color' : '#("Color","color")' } }
+};
+
+// The distance of an indentation step.
+FCKConfig.IndentLength = 40 ;
+FCKConfig.IndentUnit = 'px' ;
+
+// Alternatively, FCKeditor allows the use of CSS classes for block indentation.
+// This overrides the IndentLength/IndentUnit settings.
+FCKConfig.IndentClasses = [] ;
+
+// [ Left, Center, Right, Justified ]
+FCKConfig.JustifyClasses = [] ;
+
+// The following value defines which File Browser connector and Quick Upload
// "uploader" to use. It is valid for the default implementaion and it is here
-// just to make this configuration file cleaner.
-// It is not possible to change this value using an external file or even
-// inline when creating the editor instance. In that cases you must set the
+// just to make this configuration file cleaner.
+// It is not possible to change this value using an external file or even
+// inline when creating the editor instance. In that cases you must set the
// values of LinkBrowserURL, ImageBrowserURL and so on.
// Custom implementations should just ignore it.
-var _FileBrowserLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py
-var _QuickUploadLanguage = 'asp' ; // asp | aspx | cfm | lasso | php
+var _FileBrowserLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
+var _QuickUploadLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
-// Don't care about the following line. It just calculates the correct connector
+// Don't care about the following two lines. It just calculates the correct connector
// extension to use for the default File Browser (Perl uses "cgi").
var _FileBrowserExtension = _FileBrowserLanguage == 'perl' ? 'cgi' : _FileBrowserLanguage ;
+var _QuickUploadExtension = _QuickUploadLanguage == 'perl' ? 'cgi' : _QuickUploadLanguage ;
FCKConfig.LinkBrowser = true ;
-FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
+FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=../../connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
FCKConfig.LinkBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ; // 70%
FCKConfig.LinkBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; // 70%
FCKConfig.ImageBrowser = true ;
-FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
+FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=../../connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
FCKConfig.ImageBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ; // 70% ;
FCKConfig.ImageBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; // 70% ;
FCKConfig.FlashBrowser = true ;
-FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
+FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=../../connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
FCKConfig.FlashBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ; //70% ;
FCKConfig.FlashBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; //70% ;
FCKConfig.LinkUpload = true ;
-FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage ;
-FCKConfig.LinkUploadAllowedExtensions = "" ; // empty for all
-FCKConfig.LinkUploadDeniedExtensions = ".(html|htm|php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi|htaccess|asis)$" ; // empty for no one
+FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension ;
+FCKConfig.LinkUploadAllowedExtensions = ".(7z|aiff|asf|avi|bmp|csv|doc|fla|flv|gif|gz|gzip|jpeg|jpg|mid|mov|mp3|mp4|mpc|mpeg|mpg|ods|odt|pdf|png|ppt|pxd|qt|ram|rar|rm|rmi|rmvb|rtf|sdc|sitd|swf|sxc|sxw|tar|tgz|tif|tiff|txt|vsd|wav|wma|wmv|xls|xml|zip)$" ; // empty for all
+FCKConfig.LinkUploadDeniedExtensions = "" ; // empty for no one
FCKConfig.ImageUpload = true ;
-FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage + '?Type=Image' ;
+FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension + '?Type=Image' ;
FCKConfig.ImageUploadAllowedExtensions = ".(jpg|gif|jpeg|png|bmp)$" ; // empty for all
FCKConfig.ImageUploadDeniedExtensions = "" ; // empty for no one
FCKConfig.FlashUpload = true ;
-FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage + '?Type=Flash' ;
-FCKConfig.FlashUploadAllowedExtensions = ".(swf|fla)$" ; // empty for all
+FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension + '?Type=Flash' ;
+FCKConfig.FlashUploadAllowedExtensions = ".(swf|flv)$" ; // empty for all
FCKConfig.FlashUploadDeniedExtensions = "" ; // empty for no one
FCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/' ;
@@ -224,3 +304,4 @@ FCKConfig.SmileyImages = ['regular_smile.gif','sad_smile.gif','wink_smile.gif','
FCKConfig.SmileyColumns = 8 ;
FCKConfig.SmileyWindowWidth = 320 ;
FCKConfig.SmileyWindowHeight = 240 ;
+
diff --git a/editor/fckeditor.js b/editor/fckeditor.js
@@ -0,0 +1,212 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the integration file for JavaScript.
+ *
+ * It defines the FCKeditor class that can be used to create editor
+ * instances in a HTML page in the client side. For server side
+ * operations, use the specific integration system.
+ */
+
+// FCKeditor Class
+var FCKeditor = function( instanceName, width, height, toolbarSet, value )
+{
+ // Properties
+ this.InstanceName = instanceName ;
+ this.Width = width || '100%' ;
+ this.Height = height || '200' ;
+ this.ToolbarSet = toolbarSet || 'Default' ;
+ this.Value = value || '' ;
+ this.BasePath = '/fckeditor/' ;
+ this.CheckBrowser = true ;
+ this.DisplayErrors = true ;
+
+ this.Config = new Object() ;
+
+ // Events
+ this.OnError = null ; // function( source, errorNumber, errorDescription )
+}
+
+FCKeditor.prototype.Version = '2.5' ;
+FCKeditor.prototype.VersionBuild = '17352' ;
+
+FCKeditor.prototype.Create = function()
+{
+ document.write( this.CreateHtml() ) ;
+}
+
+FCKeditor.prototype.CreateHtml = function()
+{
+ // Check for errors
+ if ( !this.InstanceName || this.InstanceName.length == 0 )
+ {
+ this._ThrowError( 701, 'You must specify an instance name.' ) ;
+ return '' ;
+ }
+
+ var sHtml = '<div>' ;
+
+ if ( !this.CheckBrowser || this._IsCompatibleBrowser() )
+ {
+ sHtml += '<input type="hidden" id="' + this.InstanceName + '" name="' + this.InstanceName + '" value="' + this._HTMLEncode( this.Value ) + '" style="display:none" />' ;
+ sHtml += this._GetConfigHtml() ;
+ sHtml += this._GetIFrameHtml() ;
+ }
+ else
+ {
+ var sWidth = this.Width.toString().indexOf('%') > 0 ? this.Width : this.Width + 'px' ;
+ var sHeight = this.Height.toString().indexOf('%') > 0 ? this.Height : this.Height + 'px' ;
+ sHtml += '<textarea name="' + this.InstanceName + '" rows="4" cols="40" style="width:' + sWidth + ';height:' + sHeight + '">' + this._HTMLEncode( this.Value ) + '<\/textarea>' ;
+ }
+
+ sHtml += '</div>' ;
+
+ return sHtml ;
+}
+
+FCKeditor.prototype.ReplaceTextarea = function()
+{
+ if ( !this.CheckBrowser || this._IsCompatibleBrowser() )
+ {
+ // We must check the elements firstly using the Id and then the name.
+ var oTextarea = document.getElementById( this.InstanceName ) ;
+ var colElementsByName = document.getElementsByName( this.InstanceName ) ;
+ var i = 0;
+ while ( oTextarea || i == 0 )
+ {
+ if ( oTextarea && oTextarea.tagName.toLowerCase() == 'textarea' )
+ break ;
+ oTextarea = colElementsByName[i++] ;
+ }
+
+ if ( !oTextarea )
+ {
+ alert( 'Error: The TEXTAREA with id or name set to "' + this.InstanceName + '" was not found' ) ;
+ return ;
+ }
+
+ oTextarea.style.display = 'none' ;
+ this._InsertHtmlBefore( this._GetConfigHtml(), oTextarea ) ;
+ this._InsertHtmlBefore( this._GetIFrameHtml(), oTextarea ) ;
+ }
+}
+
+FCKeditor.prototype._InsertHtmlBefore = function( html, element )
+{
+ if ( element.insertAdjacentHTML ) // IE
+ element.insertAdjacentHTML( 'beforeBegin', html ) ;
+ else // Gecko
+ {
+ var oRange = document.createRange() ;
+ oRange.setStartBefore( element ) ;
+ var oFragment = oRange.createContextualFragment( html );
+ element.parentNode.insertBefore( oFragment, element ) ;
+ }
+}
+
+FCKeditor.prototype._GetConfigHtml = function()
+{
+ var sConfig = '' ;
+ for ( var o in this.Config )
+ {
+ if ( sConfig.length > 0 ) sConfig += '&' ;
+ sConfig += encodeURIComponent( o ) + '=' + encodeURIComponent( this.Config[o] ) ;
+ }
+
+ return '<input type="hidden" id="' + this.InstanceName + '___Config" value="' + sConfig + '" style="display:none" />' ;
+}
+
+FCKeditor.prototype._GetIFrameHtml = function()
+{
+ var sFile = 'fckeditor.html' ;
+
+ try
+ {
+ if ( (/fcksource=true/i).test( window.top.location.search ) )
+ sFile = 'fckeditor.original.html' ;
+ }
+ catch (e) { /* Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error). */ }
+
+ var sLink = this.BasePath + 'editor/' + sFile + '?InstanceName=' + encodeURIComponent( this.InstanceName ) ;
+ if (this.ToolbarSet) sLink += '&Toolbar=' + this.ToolbarSet ;
+
+ return '<iframe id="' + this.InstanceName + '___Frame" src="' + sLink + '" width="' + this.Width + '" height="' + this.Height + '" frameborder="0" scrolling="no"></iframe>' ;
+}
+
+FCKeditor.prototype._IsCompatibleBrowser = function()
+{
+ return FCKeditor_IsCompatibleBrowser() ;
+}
+
+FCKeditor.prototype._ThrowError = function( errorNumber, errorDescription )
+{
+ this.ErrorNumber = errorNumber ;
+ this.ErrorDescription = errorDescription ;
+
+ if ( this.DisplayErrors )
+ {
+ document.write( '<div style="COLOR: #ff0000">' ) ;
+ document.write( '[ FCKeditor Error ' + this.ErrorNumber + ': ' + this.ErrorDescription + ' ]' ) ;
+ document.write( '</div>' ) ;
+ }
+
+ if ( typeof( this.OnError ) == 'function' )
+ this.OnError( this, errorNumber, errorDescription ) ;
+}
+
+FCKeditor.prototype._HTMLEncode = function( text )
+{
+ if ( typeof( text ) != "string" )
+ text = text.toString() ;
+
+ text = text.replace(
+ /&/g, "&").replace(
+ /"/g, """).replace(
+ /</g, "<").replace(
+ />/g, ">") ;
+
+ return text ;
+}
+
+function FCKeditor_IsCompatibleBrowser()
+{
+ var sAgent = navigator.userAgent.toLowerCase() ;
+
+ // Internet Explorer 5.5+
+ if ( /*@cc_on!@*/false && sAgent.indexOf("mac") == -1 )
+ {
+ var sBrowserVersion = navigator.appVersion.match(/MSIE (.\..)/)[1] ;
+ return ( sBrowserVersion >= 5.5 ) ;
+ }
+
+ // Gecko (Opera 9 tries to behave like Gecko at this point).
+ if ( navigator.product == "Gecko" && navigator.productSub >= 20030210 && !( typeof(opera) == 'object' && opera.postError ) )
+ return true ;
+
+ // Opera 9.50+
+ if ( window.opera && window.opera.version && parseFloat( window.opera.version() ) >= 9.5 )
+ return true ;
+
+ // Safari 3+
+ if ( sAgent.indexOf( ' applewebkit/' ) != -1 )
+ return ( sAgent.match( / applewebkit\/(\d+)/ )[1] >= 522 ) ; // Build must be at least 522 (v3)
+
+ return false ;
+}
diff --git a/editor/fckeditor.php b/editor/fckeditor.php
@@ -1,37 +1,71 @@
-<?php
+<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fckeditor.php
- * This is the integration file for PHP (All versions).
- *
- * It loads the correct integration file based on the PHP version (avoinding
- * strict error messages with PHP 5).
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * This is the integration file for PHP (All versions).
+ *
+ * It loads the correct integration file based on the PHP version (avoiding
+ * strict error messages with PHP 5).
*/
-if ( version_compare( phpversion(), '5', '<' ) )
+function FCKeditor_IsCompatibleBrowser()
+{
+ global $HTTP_USER_AGENT ;
+
+ if ( !isset( $_SERVER ) ) {
+ global $HTTP_SERVER_VARS ;
+ $_SERVER = $HTTP_SERVER_VARS ;
+ }
+
+ if ( isset( $HTTP_USER_AGENT ) )
+ $sAgent = $HTTP_USER_AGENT ;
+ else
+ $sAgent = $_SERVER['HTTP_USER_AGENT'] ;
+
+ if ( strpos($sAgent, 'MSIE') !== false && strpos($sAgent, 'mac') === false && strpos($sAgent, 'Opera') === false )
+ {
+ $iVersion = (float)substr($sAgent, strpos($sAgent, 'MSIE') + 5, 3) ;
+ return ($iVersion >= 5.5) ;
+ }
+ else if ( strpos($sAgent, 'Gecko/') !== false )
+ {
+ $iVersion = (int)substr($sAgent, strpos($sAgent, 'Gecko/') + 6, 8) ;
+ return ($iVersion >= 20030210) ;
+ }
+ else if ( strpos($sAgent, 'Opera/') !== false )
+ {
+ $fVersion = (float)substr($sAgent, strpos($sAgent, 'Opera/') + 6, 4) ;
+ return ($fVersion >= 9.5) ;
+ }
+ else if ( preg_match( "|AppleWebKit/(\d+)|i", $sAgent, $matches ) )
+ {
+ $iVersion = $matches[1] ;
+ return ( $matches[1] >= 522 ) ;
+ }
+ else
+ return false ;
+}
+
+if ( !function_exists('version_compare') || version_compare( phpversion(), '5', '<' ) )
include_once( 'fckeditor_php4.php' ) ;
else
include_once( 'fckeditor_php5.php' ) ;
-
-?>-
\ No newline at end of file
+
+?>
diff --git a/editor/fckeditor_php4.php b/editor/fckeditor_php4.php
@@ -1,32 +1,28 @@
-<?php
+<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fckeditor_php4.php
- * This is the integration file for PHP 4.
- *
- * It defines the FCKeditor class that can be used to create editor
- * instances in PHP pages on server side.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * This is the integration file for PHP 4.
+ *
+ * It defines the FCKeditor class that can be used to create editor
+ * instances in PHP pages on server side.
*/
class FCKeditor
@@ -38,8 +34,8 @@ class FCKeditor
var $ToolbarSet ;
var $Value ;
var $Config ;
-
- // PHP 4 Contructor
+
+ // PHP 4 Constructor
function FCKeditor( $instanceName )
{
$this->InstanceName = $instanceName ;
@@ -56,13 +52,18 @@ class FCKeditor
{
echo $this->CreateHtml() ;
}
-
+
function CreateHtml()
{
$HtmlValue = htmlspecialchars( $this->Value ) ;
$Html = '<div>' ;
+ if ( !isset( $_GET ) ) {
+ global $HTTP_GET_VARS ;
+ $_GET = $HTTP_GET_VARS ;
+ }
+
if ( $this->IsCompatible() )
{
if ( isset( $_GET['fcksource'] ) && $_GET['fcksource'] == "true" )
@@ -71,7 +72,7 @@ class FCKeditor
$File = 'fckeditor.html' ;
$Link = "{$this->BasePath}editor/{$File}?InstanceName={$this->InstanceName}" ;
-
+
if ( $this->ToolbarSet != '' )
$Link .= "&Toolbar={$this->ToolbarSet}" ;
@@ -100,31 +101,13 @@ class FCKeditor
}
$Html .= '</div>' ;
-
+
return $Html ;
}
function IsCompatible()
{
- global $HTTP_USER_AGENT ;
-
- if ( isset( $HTTP_USER_AGENT ) )
- $sAgent = $HTTP_USER_AGENT ;
- else
- $sAgent = $_SERVER['HTTP_USER_AGENT'] ;
-
- if ( strpos($sAgent, 'MSIE') !== false && strpos($sAgent, 'mac') === false && strpos($sAgent, 'Opera') === false )
- {
- $iVersion = (float)substr($sAgent, strpos($sAgent, 'MSIE') + 5, 3) ;
- return ($iVersion >= 5.5) ;
- }
- else if ( strpos($sAgent, 'Gecko/') !== false )
- {
- $iVersion = (int)substr($sAgent, strpos($sAgent, 'Gecko/') + 6, 8) ;
- return ($iVersion >= 20030210) ;
- }
- else
- return false ;
+ return FCKeditor_IsCompatibleBrowser() ;
}
function GetConfigFieldString()
@@ -138,7 +121,7 @@ class FCKeditor
$sParams .= '&' ;
else
$bFirst = false ;
-
+
if ( $sValue === true )
$sParams .= $this->EncodeConfig( $sKey ) . '=true' ;
else if ( $sValue === false )
@@ -146,19 +129,19 @@ class FCKeditor
else
$sParams .= $this->EncodeConfig( $sKey ) . '=' . $this->EncodeConfig( $sValue ) ;
}
-
+
return $sParams ;
}
function EncodeConfig( $valueToEncode )
{
- $chars = array(
- '&' => '%26',
- '=' => '%3D',
+ $chars = array(
+ '&' => '%26',
+ '=' => '%3D',
'"' => '%22' ) ;
return strtr( $valueToEncode, $chars ) ;
}
}
-?>-
\ No newline at end of file
+?>
diff --git a/editor/fckeditor_php5.php b/editor/fckeditor_php5.php
@@ -1,32 +1,28 @@
-<?php
+<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fckeditor_php5.php
- * This is the integration file for PHP 5.
- *
- * It defines the FCKeditor class that can be used to create editor
- * instances in PHP pages on server side.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * This is the integration file for PHP 5.
+ *
+ * It defines the FCKeditor class that can be used to create editor
+ * instances in PHP pages on server side.
*/
class FCKeditor
@@ -56,13 +52,13 @@ class FCKeditor
{
echo $this->CreateHtml() ;
}
-
+
function CreateHtml()
{
$HtmlValue = htmlspecialchars( $this->Value ) ;
$Html = '<div>' ;
-
+
if ( $this->IsCompatible() )
{
if ( isset( $_GET['fcksource'] ) && $_GET['fcksource'] == "true" )
@@ -71,7 +67,7 @@ class FCKeditor
$File = 'fckeditor.html' ;
$Link = "{$this->BasePath}editor/{$File}?InstanceName={$this->InstanceName}" ;
-
+
if ( $this->ToolbarSet != '' )
$Link .= "&Toolbar={$this->ToolbarSet}" ;
@@ -100,31 +96,13 @@ class FCKeditor
}
$Html .= '</div>' ;
-
+
return $Html ;
}
function IsCompatible()
{
- global $HTTP_USER_AGENT ;
-
- if ( isset( $HTTP_USER_AGENT ) )
- $sAgent = $HTTP_USER_AGENT ;
- else
- $sAgent = $_SERVER['HTTP_USER_AGENT'] ;
-
- if ( strpos($sAgent, 'MSIE') !== false && strpos($sAgent, 'mac') === false && strpos($sAgent, 'Opera') === false )
- {
- $iVersion = (float)substr($sAgent, strpos($sAgent, 'MSIE') + 5, 3) ;
- return ($iVersion >= 5.5) ;
- }
- else if ( strpos($sAgent, 'Gecko/') !== false )
- {
- $iVersion = (int)substr($sAgent, strpos($sAgent, 'Gecko/') + 6, 8) ;
- return ($iVersion >= 20030210) ;
- }
- else
- return false ;
+ return FCKeditor_IsCompatibleBrowser() ;
}
function GetConfigFieldString()
@@ -138,7 +116,7 @@ class FCKeditor
$sParams .= '&' ;
else
$bFirst = false ;
-
+
if ( $sValue === true )
$sParams .= $this->EncodeConfig( $sKey ) . '=true' ;
else if ( $sValue === false )
@@ -146,15 +124,15 @@ class FCKeditor
else
$sParams .= $this->EncodeConfig( $sKey ) . '=' . $this->EncodeConfig( $sValue ) ;
}
-
+
return $sParams ;
}
function EncodeConfig( $valueToEncode )
{
- $chars = array(
- '&' => '%26',
- '=' => '%3D',
+ $chars = array(
+ '&' => '%26',
+ '=' => '%3D',
'"' => '%22' ) ;
return strtr( $valueToEncode, $chars ) ;
diff --git a/editor/fckstyles.xml b/editor/fckstyles.xml
@@ -2,32 +2,105 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
+ *
* == BEGIN LICENSE ==
- *
+ *
* Licensed under the terms of any of the following licenses at your
* choice:
- *
+ *
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
- *
+ *
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
- *
+ *
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
- *
+ *
* == END LICENSE ==
- *
- * File Name: fckstyles.xml
- * This is the sample style definitions file. It makes the styles combo
- * completely customizable.
- * See FCKConfig.StylesXmlPath in the configuration file.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
+ *
+ * This is the sample style definitions file. It makes the styles combo
+ * completely customizable.
+ *
+ * See FCKConfig.StylesXmlPath in the configuration file.
-->
<Styles>
+
+ <!-- Block Styles -->
+
+ <!--
+ # These styles are already available in the "Format" combo, so they are not
+ # needed here by default.
+
+ <Style name="Heading 1" element="h1" />
+ <Style name="Heading 2" element="h2" />
+ <Style name="Heading 3" element="h3" />
+ <Style name="Heading 4" element="h4" />
+ <Style name="Heading 5" element="h5" />
+ <Style name="Heading 6" element="h6" />
+ <Style name="Paragraph" element="p" />
+ <Style name="Document Block" element="div" />
+ <Style name="Preformatted Text" element="pre" />
+ <Style name="Address" element="address" />
+ -->
+
+ <!-- Inline Styles -->
+
+ <!--
+ # These are core styles available as toolbar buttons.
+
+ <Style name="Bold" element="b">
+ <Override element="strong" />
+ </Style>
+ <Style name="Italic" element="i">
+ <Override element="em" />
+ </Style>
+ <Style name="Underline" element="u" />
+ <Style name="Strikethrough" element="strike" />
+ <Style name="Subscript" element="sub" />
+ <Style name="Superscript" element="sup" />
+ -->
+
+ <Style name="Marker: Yellow" element="span">
+ <Style name="background-color" value="Yellow" />
+ </Style>
+ <Style name="Marker: Green" element="span">
+ <Style name="background-color" value="Lime" />
+ </Style>
+
+ <Style name="Strong Emphasis" element="strong" />
+ <Style name="Emphasis" element="em" />
+
+ <Style name="Big" element="big" />
+ <Style name="Small" element="small" />
+ <Style name="Typewriter" element="tt" />
+
+ <Style name="Computer Code" element="code" />
+ <Style name="Keyboard Phrase" element="kbd" />
+ <Style name="Sample Text" element="samp" />
+ <Style name="Variable" element="var" />
+
+ <Style name="Deleted Text" element="del" />
+ <Style name="Inserted Text" element="ins" />
+
+ <Style name="Cited Work" element="cite" />
+ <Style name="Inline Quotation" element="q" />
+
+ <Style name="Language: RTL" element="span">
+ <Attribute name="dir" value="rtl" />
+ </Style>
+ <Style name="Language: LTR" element="span">
+ <Attribute name="dir" value="ltr" />
+ </Style>
+ <Style name="Language: RTL Strong" element="bdo">
+ <Attribute name="dir" value="rtl" />
+ </Style>
+ <Style name="Language: LTR Strong" element="bdo">
+ <Attribute name="dir" value="ltr" />
+ </Style>
+
+ <!-- Object Styles -->
+
<Style name="Image on Left" element="img">
<Attribute name="style" value="padding: 5px; margin-right: 5px" />
<Attribute name="border" value="2" />
@@ -38,19 +111,4 @@
<Attribute name="border" value="2" />
<Attribute name="align" value="right" />
</Style>
- <Style name="Custom Bold" element="span">
- <Attribute name="style" value="font-weight: bold;" />
- </Style>
- <Style name="Custom Italic" element="em" />
- <Style name="Title" element="span">
- <Attribute name="class" value="Title" />
- </Style>
- <Style name="Code" element="span">
- <Attribute name="class" value="Code" />
- </Style>
- <Style name="Title H3" element="h3" />
- <Style name="Custom Ruler" element="hr">
- <Attribute name="size" value="1" />
- <Attribute name="color" value="#ff0000" />
- </Style>
</Styles>
\ No newline at end of file
diff --git a/editor/fcktemplates.xml b/editor/fcktemplates.xml
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!--
- * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2007 Frederico Caldeira Knabben
- *
- * == BEGIN LICENSE ==
- *
- * Licensed under the terms of any of the following licenses at your
- * choice:
- *
- * - GNU General Public License Version 2 or later (the "GPL")
- * http://www.gnu.org/licenses/gpl.html
- *
- * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- * http://www.gnu.org/licenses/lgpl.html
- *
- * - Mozilla Public License Version 1.1 or later (the "MPL")
- * http://www.mozilla.org/MPL/MPL-1.1.html
- *
- * == END LICENSE ==
- *
- * File Name: fcktemplates.xml
- * This is the sample templates definitions file. It makes the "templates"
- * command completely customizable.
- * See FCKConfig.TemplatesXmlPath in the configuration file.
- *
- * File Authors:
- * Frederico Caldeira Knabben (www.fckeditor.net)
--->
-<Templates imagesBasePath="fck_template/images/">
- <Template title="Image and Title" image="template1.gif">
- <Description>One main image with a title and text that surround the image.</Description>
- <Html>
- <![CDATA[
- <img style="MARGIN-RIGHT: 10px" height="100" alt="" width="100" align="left"/>
- <h3>Type the title here</h3>
- Type the text here
- ]]>
- </Html>
- </Template>
- <Template title="Strange Template" image="template2.gif">
- <Description>A template that defines two colums, each one with a title, and some text.</Description>
- <Html>
- <![CDATA[
- <table cellspacing="0" cellpadding="0" width="100%" border="0">
- <tbody>
- <tr>
- <td width="50%">
- <h3>Title 1</h3>
- </td>
- <td> </td>
- <td width="50%">
- <h3>Title 2</h3>
- </td>
- </tr>
- <tr>
- <td>Text 1</td>
- <td> </td>
- <td>Text 2</td>
- </tr>
- </tbody>
- </table>
- More text goes here.
- ]]>
- </Html>
- </Template>
- <Template title="Text and Table" image="template3.gif">
- <Description>A title with some text and a table.</Description>
- <Html>
- <![CDATA[
- <table align="left" width="80%" border="0" cellspacing="0" cellpadding="0"><tr><td>
- <h3>Title goes here</h3>
- <p>
- <table style="FLOAT: right" cellspacing="0" cellpadding="0" width="150" border="1">
- <tbody>
- <tr>
- <td align="center" colspan="3"><strong>Table title</strong></td>
- </tr>
- <tr>
- <td> </td>
- <td> </td>
- <td> </td>
- </tr>
- <tr>
- <td> </td>
- <td> </td>
- <td> </td>
- </tr>
- <tr>
- <td> </td>
- <td> </td>
- <td> </td>
- </tr>
- <tr>
- <td> </td>
- <td> </td>
- <td> </td>
- </tr>
- </tbody>
- </table>
- Type the text here</p>
- </td></tr></table>
- ]]>
- </Html>
- </Template>
-</Templates>
diff --git a/editor/openrat-fckconfig.js b/editor/openrat-fckconfig.js
@@ -1,19 +1,19 @@
FCKConfig.ToolbarSets["Default"] = [
- ['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
+ ['Save','NewPage','Preview','Templates','-','Source','DocProps','ShowBlocks'],
['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
'/',
- ['Bold','Italic','StrikeThrough','-','Subscript','Superscript'],
- ['OrderedList','UnorderedList','-','Outdent','Indent'],
+ ['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
+ ['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
['Link','Unlink','Anchor'],
- ['Image','Flash','Table','Rule','SpecialChar','PageBreak'],
+ ['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
'/',
['Style','FontFormat','FontName','FontSize'],
['TextColor','BGColor'],
- ['FitWindow']
+ ['FitWindow'] // No comma for the last row.
] ;