From f3eb7204f7b90a72747f712c47c4437293fc2e30 Mon Sep 17 00:00:00 2001
From: Regis Houssin
+ You can find all the available documentation for FCKeditor online, at our wiki web
+ site:
+ Expected results: The editor content must be loaded and the submit
+ button must post the editors html.
+
+ FCKeditor Documentation
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/_plugins/findreplace/fckplugin.js b/htdocs/includes/fckeditor/_samples/_plugins/findreplace/fckplugin.js
new file mode 100644
index 00000000000..ce7ca79b476
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/_plugins/findreplace/fckplugin.js
@@ -0,0 +1,34 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckplugin.js
+ * This is the sample plugin definition file.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// Register the related commands.
+FCKCommands.RegisterCommand( 'My_Find' , new FCKDialogCommand( FCKLang['DlgMyFindTitle'] , FCKLang['DlgMyFindTitle'] , FCKConfig.PluginsPath + 'findreplace/find.html' , 340, 170 ) ) ;
+FCKCommands.RegisterCommand( 'My_Replace' , new FCKDialogCommand( FCKLang['DlgMyReplaceTitle'], FCKLang['DlgMyReplaceTitle'] , FCKConfig.PluginsPath + 'findreplace/replace.html', 340, 200 ) ) ;
+
+// Create the "Find" toolbar button.
+var oFindItem = new FCKToolbarButton( 'My_Find', FCKLang['DlgMyFindTitle'] ) ;
+oFindItem.IconPath = FCKConfig.PluginsPath + 'findreplace/find.gif' ;
+
+FCKToolbarItems.RegisterItem( 'My_Find', oFindItem ) ; // 'My_Find' is the name used in the Toolbar config.
+
+// Create the "Replace" toolbar button.
+var oReplaceItem = new FCKToolbarButton( 'My_Replace', FCKLang['DlgMyReplaceTitle'] ) ;
+oReplaceItem.IconPath = FCKConfig.PluginsPath + 'findreplace/replace.gif' ;
+
+FCKToolbarItems.RegisterItem( 'My_Replace', oReplaceItem ) ; // 'My_Replace' is the name used in the Toolbar config.
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/_samples/_plugins/findreplace/find.gif b/htdocs/includes/fckeditor/_samples/_plugins/findreplace/find.gif
new file mode 100644
index 0000000000000000000000000000000000000000..81915f4f636678b1d7d0d8e05dc7df0eb443787f
GIT binary patch
literal 595
zcmbu6TThY!0EQpp8=oA64+Oyg
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/_plugins/findreplace/lang/en.js b/htdocs/includes/fckeditor/_samples/_plugins/findreplace/lang/en.js
new file mode 100644
index 00000000000..9365cef82db
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/_plugins/findreplace/lang/en.js
@@ -0,0 +1,29 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: en.js
+ * English language file for the sample plugin.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKLang['DlgMyReplaceTitle'] = 'Plugin - Replace' ;
+FCKLang['DlgMyReplaceFindLbl'] = 'Find what:' ;
+FCKLang['DlgMyReplaceReplaceLbl'] = 'Replace with:' ;
+FCKLang['DlgMyReplaceCaseChk'] = 'Match case' ;
+FCKLang['DlgMyReplaceReplaceBtn'] = 'Replace' ;
+FCKLang['DlgMyReplaceReplAllBtn'] = 'Replace All' ;
+FCKLang['DlgMyReplaceWordChk'] = 'Match whole word' ;
+
+FCKLang['DlgMyFindTitle'] = 'Plugin - Find' ;
+FCKLang['DlgMyFindFindBtn'] = 'Find' ;
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/_samples/_plugins/findreplace/lang/fr.js b/htdocs/includes/fckeditor/_samples/_plugins/findreplace/lang/fr.js
new file mode 100644
index 00000000000..12d64b8f3f7
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/_plugins/findreplace/lang/fr.js
@@ -0,0 +1,29 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fr.js
+ * French language file for the sample plugin.
+ *
+ * File Authors:
+ * Benjamin Cartereau (b.cartereau@infass.com)
+ */
+
+FCKLang['DlgMyReplaceTitle'] = 'Plugin - Remplacer' ;
+FCKLang['DlgMyReplaceFindLbl'] = 'Chercher:' ;
+FCKLang['DlgMyReplaceReplaceLbl'] = 'Remplacer par:' ;
+FCKLang['DlgMyReplaceCaseChk'] = 'Respecter la casse' ;
+FCKLang['DlgMyReplaceReplaceBtn'] = 'Remplacer' ;
+FCKLang['DlgMyReplaceReplAllBtn'] = 'Remplacer Tout' ;
+FCKLang['DlgMyReplaceWordChk'] = 'Mot entier' ;
+
+FCKLang['DlgMyFindTitle'] = 'Plugin - Chercher' ;
+FCKLang['DlgMyFindFindBtn'] = 'Chercher' ;
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/_samples/_plugins/findreplace/lang/it.js b/htdocs/includes/fckeditor/_samples/_plugins/findreplace/lang/it.js
new file mode 100644
index 00000000000..e4da0f7ac80
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/_plugins/findreplace/lang/it.js
@@ -0,0 +1,29 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: it.js
+ * Italian language file for the sample plugin.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKLang['DlgMyReplaceTitle'] = 'Plugin - Sostituisci' ;
+FCKLang['DlgMyReplaceFindLbl'] = 'Trova:' ;
+FCKLang['DlgMyReplaceReplaceLbl'] = 'Sostituisci con:' ;
+FCKLang['DlgMyReplaceCaseChk'] = 'Maiuscole/minuscole' ;
+FCKLang['DlgMyReplaceReplaceBtn'] = 'Sostituisci' ;
+FCKLang['DlgMyReplaceReplAllBtn'] = 'Sostituisci tutto' ;
+FCKLang['DlgMyReplaceWordChk'] = 'Parola intera' ;
+
+FCKLang['DlgMyFindTitle'] = 'Plugin - Cerca' ;
+FCKLang['DlgMyFindFindBtn'] = 'Cerca' ;
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/_samples/_plugins/findreplace/replace.gif b/htdocs/includes/fckeditor/_samples/_plugins/findreplace/replace.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ac0d8937007716a878b350a1a75ddf1f4beaca83
GIT binary patch
literal 326
zcmZ?wbhEHb6krfwxXQpF=F7lm$Y5WtDP<@aINek)OitBR!nsDrFj_&@OjyNPLbHuQ
zwU$Apj6u1SL8*j6sgOY_pFu8_K{ka!Hi1DVmO&
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/_plugins/samples/fckplugin.js b/htdocs/includes/fckeditor/_samples/_plugins/samples/fckplugin.js
new file mode 100644
index 00000000000..060a4f76f59
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/_plugins/samples/fckplugin.js
@@ -0,0 +1,69 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckplugin.js
+ * This is a sample plugin definition file.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// Here we define our custom Style combo, with custom widths.
+var oMyBigStyleCombo = new FCKToolbarStyleCombo() ;
+oMyBigStyleCombo.FieldWidth = 250 ;
+oMyBigStyleCombo.PanelWidth = 300 ;
+FCKToolbarItems.RegisterItem( 'My_BigStyle', oMyBigStyleCombo ) ;
+
+
+// ##### Defining a custom context menu entry.
+
+// ## 1. Define the command to be executed when selecting the context menu item.
+var oMyCMCommand = new Object() ;
+oMyCMCommand.Name = 'OpenImage' ;
+
+// This is the standard function used to execute the command (called when clicking in the context menu item).
+oMyCMCommand.Execute = function()
+{
+ // This command is called only when an image element is selected (IMG).
+ // Get image URL (src).
+ var sUrl = FCKSelection.GetSelectedElement().src ;
+
+ // Open the URL in a new window.
+ window.top.open( sUrl ) ;
+}
+
+// This is the standard function used to retrieve the command state (it could be disabled for some reason).
+oMyCMCommand.GetState = function()
+{
+ // Let's make it always enabled.
+ return FCK_TRISTATE_OFF ;
+}
+
+// ## 2. Register our custom command.
+FCKCommands.RegisterCommand( 'OpenImage', oMyCMCommand ) ;
+
+// ## 3. Define the context menu "listener".
+var oMyContextMenuListener = new Object() ;
+
+// This is the standard function called right before sowing the context menu.
+oMyContextMenuListener.AddItems = function( contextMenu, tag, tagName )
+{
+ // Let's show our custom option only for images.
+ if ( tagName == 'IMG' )
+ {
+ contextMenu.AddSeparator() ;
+ contextMenu.AddItem( 'OpenImage', 'Open image in a new window (Custom)' ) ;
+ }
+}
+
+// ## 4. Register our context menu listener.
+FCK.ContextMenu.RegisterListener( oMyContextMenuListener ) ;
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/_samples/afp/fck.afpa b/htdocs/includes/fckeditor/_samples/afp/fck.afpa
new file mode 100644
index 00000000000..e88a492fefe
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/afp/fck.afpa
@@ -0,0 +1 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FCKeditor - AFP - Sample 1
+ This sample displays a normal HTML form with an FCKeditor with full features enabled.
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/afp/sampleposteddata.afp b/htdocs/includes/fckeditor/_samples/afp/sampleposteddata.afp
new file mode 100644
index 00000000000..533a8dc81af
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/afp/sampleposteddata.afp
@@ -0,0 +1,54 @@
+<%
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2004 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * File Name: sampleposteddata.php
+ * This page lists the data posted by a form.
+ *
+ * Version: 1.0
+ * Modified: 2005-07-01
+ *
+ * File Authors: Soenke Freitag (www.afp-hosting.de)
+ *
+%>
+
+
+
+ FCKeditor - Samples - Posted Data
+ This page lists all data posted by the form.
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/asp/sample01.asp b/htdocs/includes/fckeditor/_samples/asp/sample01.asp
new file mode 100644
index 00000000000..7e0e00959f3
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/asp/sample01.asp
@@ -0,0 +1,55 @@
+<%@ CodePage=65001 Language="VBScript"%>
+<% Option Explicit %>
+
+<% ' You must set "Enable Parent Paths" on your web site in order this relative include to work. %>
+
+
+
+
+
+
+<%
+ lcForm=REQUEST.Form()
+ lcForm=STRTRAN(lcForm,"&",CHR(13)+CHR(10))
+
+ FOR lnLoop=1 TO MEMLINES(lcForm)
+ lcZeile=ALLTRIM(MLINE(lcForm,lnLoop))
+ IF AT("=",lcZeile)>0
+ lcVariable=UPPER(ALLTRIM(LEFT(lcZeile,AT("=",lcZeile)-1)))
+ lcWert=ALLTRIM(RIGHT(lcZeile,LEN(lcZeile)-AT("=",lcZeile)))
+ lcWert=Server.UrlDecode( lcWert )
+
+ ? [Field Name
+ Value
+ ]
+ ENDIF
+ NEXT
+%>
+ ]+lcVariable+[ = ]+lcWert+[ FCKeditor - ASP - Sample 1
+ This sample displays a normal HTML form with an FCKeditor with full features
+ enabled.
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/asp/sample02.asp b/htdocs/includes/fckeditor/_samples/asp/sample02.asp
new file mode 100644
index 00000000000..59bda794f07
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/asp/sample02.asp
@@ -0,0 +1,104 @@
+<%@ CodePage=65001 Language="VBScript"%>
+<% Option Explicit %>
+
+<% ' You must set "Enable Parent Paths" on your web site in order this relative include to work. %>
+
+
+
+
+ FCKeditor - ASP - Sample 2
+ This sample shows the editor in all its available languages.
+
+
+
+
+
+
+ Select a language:
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/_samples/asp/sample03.asp b/htdocs/includes/fckeditor/_samples/asp/sample03.asp
new file mode 100644
index 00000000000..25c27dc1c2b
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/asp/sample03.asp
@@ -0,0 +1,88 @@
+<%@ CodePage=65001 Language="VBScript"%>
+<% Option Explicit %>
+
+<% ' You must set "Enable Parent Paths" on your web site in order this relative include to work. %>
+
+
+
+
+ FCKeditor - ASP - Sample 3
+ This sample shows how to change the editor toolbar.
+
+
+
+
+
+
+ Select the toolbar to load:
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/_samples/asp/sample04.asp b/htdocs/includes/fckeditor/_samples/asp/sample04.asp
new file mode 100644
index 00000000000..3ea7bbd03de
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/asp/sample04.asp
@@ -0,0 +1,94 @@
+<%@ CodePage=65001 Language="VBScript"%>
+<% Option Explicit %>
+
+<% ' You must set "Enable Parent Paths" on your web site in order this relative include to work. %>
+
+
+
+
+ FCKeditor - ASP - Sample 4
+ This sample shows how to change the editor skin.
+
+
+
+
+
+
+ Select the skin to load:
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/_samples/asp/sampleposteddata.asp b/htdocs/includes/fckeditor/_samples/asp/sampleposteddata.asp
new file mode 100644
index 00000000000..4f48ac1bd2e
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/asp/sampleposteddata.asp
@@ -0,0 +1,49 @@
+<%@ CodePage=65001 Language="VBScript"%>
+<% Option Explicit %>
+
+
+
+
+ FCKeditor - Samples - Posted Data
+ This page lists all data posted by the form.
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/cfm/sample01.cfm b/htdocs/includes/fckeditor/_samples/cfm/sample01.cfm
new file mode 100644
index 00000000000..09099417594
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/cfm/sample01.cfm
@@ -0,0 +1,85 @@
+
+
+ <%
+ Dim sForm
+ For Each sForm in Request.Form
+ %>
+ Field Name
+ Value
+
+
+ <% Next %>
+ <%=sForm%>
+ <%=Server.HTMLEncode( Request.Form(sForm) )%>
+ FCKeditor - ColdFusion - Sample 1
+
+This sample displays a normal HTML form with a FCKeditor with full features enabled; invoked by a ColdFusion Custom Tag / Module.
+ColdFusion is a registered trademark and product of Macromedia, Inc.
+
+
+
+
+
+
+
+
+
+ Dump of FORM Variables
+
+
+ FieldNames
+ #FORM.fieldNames#
+
+
+ #key#
+ #HTMLEditFormat(evaluate("FORM.#key#"))#
+ FCKeditor - ColdFusion Component (CFC) - Sample 2
+
+This sample displays a normal HTML form with a FCKeditor with full features enabled; invoked by a ColdFusion Component.
+ColdFusion is a registered trademark and product of Macromedia, Inc.
+
+
+
This sample works only with a ColdFusion MX server and higher, because it uses some advantages of this version.
+
+
+
+ FCKeditor - JavaScript - Sample 1
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/html/sample02.html b/htdocs/includes/fckeditor/_samples/html/sample02.html
new file mode 100644
index 00000000000..dce99fbdb41
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/html/sample02.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+ FCKeditor - JavaScript - Sample 2
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/html/sample03.html b/htdocs/includes/fckeditor/_samples/html/sample03.html
new file mode 100644
index 00000000000..ed601d9a69f
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/html/sample03.html
@@ -0,0 +1,132 @@
+
+
+
+
+
+ FCKeditor - JavaScript - Sample 3
+
+
+
+
+
+
+ Select a language:
+
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/html/sample04.html b/htdocs/includes/fckeditor/_samples/html/sample04.html
new file mode 100644
index 00000000000..646cb8b6dca
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/html/sample04.html
@@ -0,0 +1,91 @@
+
+
+
+
+
+ FCKeditor - JavaScript - Sample 4
+
+
+
+
+
+
+ Select the toolbar to load:
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/html/sample05.html b/htdocs/includes/fckeditor/_samples/html/sample05.html
new file mode 100644
index 00000000000..0670cef5a12
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/html/sample05.html
@@ -0,0 +1,121 @@
+
+
+
+
+
+ FCKeditor - JavaScript - Sample 5
+
+
+
+
+
+
+ Select the skin to load:
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/html/sample06.config.js b/htdocs/includes/fckeditor/_samples/html/sample06.config.js
new file mode 100644
index 00000000000..33af8778eed
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/html/sample06.config.js
@@ -0,0 +1,45 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: sample06.config.js
+ * Sample custom configuration settings used in the plugin sample page (sample06).
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// Set our sample toolbar.
+FCKConfig.ToolbarSets['PluginTest'] = [
+ ['SourceSimple'],
+ ['My_Find','My_Replace','-','Placeholder'],
+ ['StyleSimple','FontFormatSimple','FontNameSimple','FontSizeSimple'],
+ ['Table','-','TableInsertRow','TableDeleteRows','TableInsertColumn','TableDeleteColumns','TableInsertCell','TableDeleteCells','TableMergeCells','TableSplitCell'],
+ ['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink'],
+ '/',
+ ['My_BigStyle','-','Smiley','-','About']
+] ;
+
+// Change the default plugin path.
+FCKConfig.PluginsPath = FCKConfig.BasePath.substr(0, FCKConfig.BasePath.length - 7) + '_samples/_plugins/' ;
+
+// Add our plugin to the plugins list.
+// FCKConfig.Plugins.Add( pluginName, availableLanguages )
+// pluginName: The plugin name. The plugin directory must match this name.
+// availableLanguages: a list of available language files for the plugin (separated by a comma).
+FCKConfig.Plugins.Add( 'findreplace', 'en,it,fr' ) ;
+FCKConfig.Plugins.Add( 'samples' ) ;
+
+// If you want to use plugins found on other directories, just use the third parameter.
+var sOtherPluginPath = FCKConfig.BasePath.substr(0, FCKConfig.BasePath.length - 7) + 'editor/plugins/' ;
+FCKConfig.Plugins.Add( 'placeholder', 'en,it,de,fr', sOtherPluginPath ) ;
+FCKConfig.Plugins.Add( 'tablecommands', null, sOtherPluginPath ) ;
+FCKConfig.Plugins.Add( 'simplecommands', null, sOtherPluginPath ) ;
diff --git a/htdocs/includes/fckeditor/_samples/html/sample06.html b/htdocs/includes/fckeditor/_samples/html/sample06.html
new file mode 100644
index 00000000000..5008b84929d
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/html/sample06.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+ FCKeditor - JavaScript - 6
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/html/sample07.html b/htdocs/includes/fckeditor/_samples/html/sample07.html
new file mode 100644
index 00000000000..00cef935900
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/html/sample07.html
@@ -0,0 +1,55 @@
+
+
+
+
+
+ FCKeditor - JavaScript - Sample 7
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/html/sample08.html b/htdocs/includes/fckeditor/_samples/html/sample08.html
new file mode 100644
index 00000000000..cb90a8661d0
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/html/sample08.html
@@ -0,0 +1,192 @@
+
+
+
+
+
+ FCKeditor - JavaScript - Sample 8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FCKeditor - JavaScript - Sample 9
+
+ It also shows and interesting usage of the "OnFocus" and "OnBlur" events available
+ in the JavaScript API.
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/html/sample10.html b/htdocs/includes/fckeditor/_samples/html/sample10.html
new file mode 100644
index 00000000000..0d9cb4f3fd5
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/html/sample10.html
@@ -0,0 +1,75 @@
+
+
+
+
+
+ FCKeditor - JavaScript - Sample 10
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/html/sample11.html b/htdocs/includes/fckeditor/_samples/html/sample11.html
new file mode 100644
index 00000000000..8cc24b0e00d
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/html/sample11.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+ FCKeditor - JavaScript - Sample 11
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/html/sample11_frame.html b/htdocs/includes/fckeditor/_samples/html/sample11_frame.html
new file mode 100644
index 00000000000..3e1c99ba360
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/html/sample11_frame.html
@@ -0,0 +1,65 @@
+
+
+
+
+ FCKeditor - Samples - Posted Data
+
+
+
+
+
+<%
+
+' This function is useful only for this sample page se whe can display the
+' posted data accordingly. This processing is usually not done on real
+' applications, where the posted data must be saved on a DB or file. In those
+' cases, no processing must be done, and the data is saved as posted.
+Function ModifyForOutput( value )
+
+ ModifyForOutput = Server.HTMLEncode( Request.Form(sForm) )
+
+End Function
+
+%>
diff --git a/htdocs/includes/fckeditor/_samples/html/sampleposteddata.html b/htdocs/includes/fckeditor/_samples/html/sampleposteddata.html
new file mode 100644
index 00000000000..9b55bcfba93
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/html/sampleposteddata.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+ <% For Each sForm in Request.Form %>
+
+ Field Name
+
+ Value
+
+
+ <% Next %>
+
+
+ <%=sForm%>
+
+
+
+
+ <%=ModifyForOutput( Request.Form(sForm) )%>
+
+ FCKeditor - Samples - Posted Data
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/lasso/sample01.lasso b/htdocs/includes/fckeditor/_samples/lasso/sample01.lasso
new file mode 100644
index 00000000000..ffc3b69c116
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/lasso/sample01.lasso
@@ -0,0 +1,51 @@
+[//lasso
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: sample01.lasso
+ * Sample page.
+ *
+ * File Authors:
+ * Jason Huck (jason.huck@corefive.com)
+ */
+]
+
+
+
+
+
+
+
+ Field
+
+ Value
+ FCKeditor - Lasso - Sample 1
+ This sample displays a normal HTML form with an FCKeditor with full features
+ enabled.
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/lasso/sample02.lasso b/htdocs/includes/fckeditor/_samples/lasso/sample02.lasso
new file mode 100644
index 00000000000..e3de9696919
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/lasso/sample02.lasso
@@ -0,0 +1,105 @@
+[//lasso
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: sample02.lasso
+ * Sample page.
+ *
+ * File Authors:
+ * Jason Huck (jason.huck@corefive.com)
+ */
+]
+
+
+
+ FCKeditor - Lasso - Sample 2
+ This sample shows the editor in all its available languages.
+
+
+
+
+
+
+ Select a language:
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/lasso/sample03.lasso b/htdocs/includes/fckeditor/_samples/lasso/sample03.lasso
new file mode 100644
index 00000000000..53e99bc2c40
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/lasso/sample03.lasso
@@ -0,0 +1,83 @@
+[//lasso
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: sample03.lasso
+ * Sample page.
+ *
+ * File Authors:
+ * Jason Huck (jason.huck@corefive.com)
+ */
+]
+
+
+
+ FCKeditor - Lasso - Sample 3
+ This sample shows how to change the editor toolbar.
+
+
+
+
+
+
+ Select the toolbar to load:
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/lasso/sample04.lasso b/htdocs/includes/fckeditor/_samples/lasso/sample04.lasso
new file mode 100644
index 00000000000..51008594018
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/lasso/sample04.lasso
@@ -0,0 +1,89 @@
+[//lasso
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: sample04.lasso
+ * Sample page.
+ *
+ * File Authors:
+ * Jason Huck (jason.huck@corefive.com)
+ */
+]
+
+
+
+ FCKeditor - Lasso - Sample 4
+ This sample shows how to change the editor skin.
+
+
+
+
+
+
+ Select the skin to load:
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/lasso/sampleposteddata.lasso b/htdocs/includes/fckeditor/_samples/lasso/sampleposteddata.lasso
new file mode 100644
index 00000000000..72974e3933a
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/lasso/sampleposteddata.lasso
@@ -0,0 +1,47 @@
+[//lasso
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: sampleposteddata.lasso
+ * Sample page.
+ *
+ * File Authors:
+ * Jason Huck (jason.huck@corefive.com)
+ * Jim Michaels (jmichae3@yahoo.com)
+ */
+]
+
+
+
+ FCKeditor - Samples - Posted Data
+ This page lists all data posted by the form.
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/perl/sample01.cgi b/htdocs/includes/fckeditor/_samples/perl/sample01.cgi
new file mode 100644
index 00000000000..eececdfe943
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/perl/sample01.cgi
@@ -0,0 +1,111 @@
+#!/usr/bin/env perl
+
+#####
+# FCKeditor - The text editor for internet
+# Copyright (C) 2003-2006 Frederico Caldeira Knabben
+#
+# Licensed under the terms of the GNU Lesser General Public License:
+# http://www.opensource.org/licenses/lgpl-license.php
+#
+# For further information visit:
+# http://www.fckeditor.net/
+#
+# "Support Open Source software. What about a donation today?"
+#
+# File Name: sample01.cgi
+# Sample page.
+#
+# File Authors:
+# Takashi Yamaguchi (jack@omakase.net)
+#####
+
+## START: Hack for Windows (Not important to understand the editor code... Perl specific).
+if(Windows_check()) {
+ chdir(GetScriptPath($0));
+}
+
+sub Windows_check
+{
+ # IIS,PWS(NT/95)
+ $www_server_os = $^O;
+ # Win98 & NT(SP4)
+ if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
+ # AnHTTPd/Omni/IIS
+ if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
+ # Win Apache
+ if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
+ if($www_server_os=~ /win/i) { return(1); }
+ return(0);
+}
+
+sub GetScriptPath {
+ local($path) = @_;
+ if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
+ $path;
+}
+## END: Hack for IIS
+
+require '../../fckeditor.pl';
+
+# When $ENV{'PATH_INFO'} cannot be used by perl.
+# $DefRootPath = "/XXXXX/_samples/perl/sample01.cgi"; Please write in script.
+
+my $DefServerPath = "";
+my $ServerPath;
+
+ $ServerPath = &GetServerPath();
+ print "Content-type: text/html\n\n";
+ print <<"_HTML_TAG_";
+
+
+
+
+
+[iterate(client_postparams, local('this'))]
+ Field Name
+ Value
+
+
+[/iterate]
+ [#this->first]
+ [#this->second]
+ FCKeditor - Perl - Sample 1
+ This sample displays a normal HTML form with an FCKeditor with full features
+ enabled.
+
+
+
+
+_HTML_TAG_
+
+################
+#Please use this function, rewriting it depending on a server's environment.
+################
+sub GetServerPath
+{
+my $dir;
+
+ if($DefServerPath) {
+ $dir = $DefServerPath;
+ } else {
+ if($ENV{'PATH_INFO'}) {
+ $dir = $ENV{'PATH_INFO'};
+ } elsif($ENV{'FILEPATH_INFO'}) {
+ $dir = $ENV{'FILEPATH_INFO'};
+ }
+ }
+ return($dir);
+}
diff --git a/htdocs/includes/fckeditor/_samples/perl/sample02.cgi b/htdocs/includes/fckeditor/_samples/perl/sample02.cgi
new file mode 100644
index 00000000000..4512a5fa474
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/perl/sample02.cgi
@@ -0,0 +1,176 @@
+#!/usr/bin/env perl
+
+#####
+# FCKeditor - The text editor for internet
+# Copyright (C) 2003-2006 Frederico Caldeira Knabben
+#
+# Licensed under the terms of the GNU Lesser General Public License:
+# http://www.opensource.org/licenses/lgpl-license.php
+#
+# For further information visit:
+# http://www.fckeditor.net/
+#
+# "Support Open Source software. What about a donation today?"
+#
+# File Name: sample02.cgi
+# Sample page.
+#
+# File Authors:
+# Takashi Yamaguchi (jack@omakase.net)
+#####
+
+## START: Hack for Windows (Not important to understand the editor code... Perl specific).
+if(Windows_check()) {
+ chdir(GetScriptPath($0));
+}
+
+sub Windows_check
+{
+ # IIS,PWS(NT/95)
+ $www_server_os = $^O;
+ # Win98 & NT(SP4)
+ if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
+ # AnHTTPd/Omni/IIS
+ if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
+ # Win Apache
+ if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
+ if($www_server_os=~ /win/i) { return(1); }
+ return(0);
+}
+
+sub GetScriptPath {
+ local($path) = @_;
+ if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
+ $path;
+}
+## END: Hack for IIS
+
+require '../../fckeditor.pl';
+
+# When $ENV{'PATH_INFO'} cannot be used by perl.
+# $DefRootPath = "/XXXXX/_samples/perl/sample02.cgi"; Please write in script.
+
+my $DefServerPath = "";
+my $ServerPath;
+
+ $ServerPath = &GetServerPath();
+
+ if($ENV{'REQUEST_METHOD'} eq "POST") {
+ read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
+ } else {
+ $buffer = $ENV{'QUERY_STRING'};
+ }
+ @pairs = split(/&/,$buffer);
+ foreach $pair (@pairs) {
+ ($name,$value) = split(/=/,$pair);
+ $value =~ tr/+/ /;
+ $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ $value =~ s/\t//g;
+ $value =~ s/\r\n/\n/g;
+ $FORM{$name} .= "\0" if(defined($FORM{$name}));
+ $FORM{$name} .= $value;
+ }
+
+ print "Content-type: text/html\n\n";
+ print <<"_HTML_TAG_";
+
+
+
+ FCKeditor - Perl - Sample 2
+ This sample shows the editor in all its available languages.
+
+
+
+
+
+
+ Select a language:
+
+
+
+
+
+
+
+
+_HTML_TAG_
+
+################
+#Please use this function, rewriting it depending on a server's environment.
+################
+sub GetServerPath
+{
+my $dir;
+
+ if($DefServerPath) {
+ $dir = $DefServerPath;
+ } else {
+ if($ENV{'PATH_INFO'}) {
+ $dir = $ENV{'PATH_INFO'};
+ } elsif($ENV{'FILEPATH_INFO'}) {
+ $dir = $ENV{'FILEPATH_INFO'};
+ }
+ }
+ return($dir);
+}
diff --git a/htdocs/includes/fckeditor/_samples/perl/sample03.cgi b/htdocs/includes/fckeditor/_samples/perl/sample03.cgi
new file mode 100644
index 00000000000..0120b992bf2
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/perl/sample03.cgi
@@ -0,0 +1,161 @@
+#!/usr/bin/env perl
+
+#####
+# FCKeditor - The text editor for internet
+# Copyright (C) 2003-2006 Frederico Caldeira Knabben
+#
+# Licensed under the terms of the GNU Lesser General Public License:
+# http://www.opensource.org/licenses/lgpl-license.php
+#
+# For further information visit:
+# http://www.fckeditor.net/
+#
+# "Support Open Source software. What about a donation today?"
+#
+# File Name: sample03.cgi
+# Sample page.
+#
+# File Authors:
+# Takashi Yamaguchi (jack@omakase.net)
+#####
+
+## START: Hack for Windows (Not important to understand the editor code... Perl specific).
+if(Windows_check()) {
+ chdir(GetScriptPath($0));
+}
+
+sub Windows_check
+{
+ # IIS,PWS(NT/95)
+ $www_server_os = $^O;
+ # Win98 & NT(SP4)
+ if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
+ # AnHTTPd/Omni/IIS
+ if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
+ # Win Apache
+ if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
+ if($www_server_os=~ /win/i) { return(1); }
+ return(0);
+}
+
+sub GetScriptPath {
+ local($path) = @_;
+ if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
+ $path;
+}
+## END: Hack for IIS
+
+require '../../fckeditor.pl';
+
+# When $ENV{'PATH_INFO'} cannot be used by perl.
+# $DefRootPath = "/XXXXX/_samples/perl/sample03.cgi"; Please write in script.
+
+my $DefServerPath = "";
+my $ServerPath;
+
+ $ServerPath = &GetServerPath();
+
+ if($ENV{'REQUEST_METHOD'} eq "POST") {
+ read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
+ } else {
+ $buffer = $ENV{'QUERY_STRING'};
+ }
+ @pairs = split(/&/,$buffer);
+ foreach $pair (@pairs) {
+ ($name,$value) = split(/=/,$pair);
+ $value =~ tr/+/ /;
+ $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ $value =~ s/\t//g;
+ $value =~ s/\r\n/\n/g;
+ $FORM{$name} .= "\0" if(defined($FORM{$name}));
+ $FORM{$name} .= $value;
+ }
+
+ print "Content-type: text/html\n\n";
+ print <<"_HTML_TAG_";
+
+
+
+ FCKeditor - Perl - Sample 3
+ This sample shows how to change the editor toolbar.
+
+
+
+
+
+
+ Select the toolbar to load:
+
+
+
+
+
+
+
+
+_HTML_TAG_
+
+################
+#Please use this function, rewriting it depending on a server's environment.
+################
+sub GetServerPath
+{
+my $dir;
+
+ if($DefServerPath) {
+ $dir = $DefServerPath;
+ } else {
+ if($ENV{'PATH_INFO'}) {
+ $dir = $ENV{'PATH_INFO'};
+ } elsif($ENV{'FILEPATH_INFO'}) {
+ $dir = $ENV{'FILEPATH_INFO'};
+ }
+ }
+ return($dir);
+}
diff --git a/htdocs/includes/fckeditor/_samples/perl/sample04.cgi b/htdocs/includes/fckeditor/_samples/perl/sample04.cgi
new file mode 100644
index 00000000000..89d66b44e65
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/perl/sample04.cgi
@@ -0,0 +1,168 @@
+#!/usr/bin/env perl
+
+#####
+# FCKeditor - The text editor for internet
+# Copyright (C) 2003-2006 Frederico Caldeira Knabben
+#
+# Licensed under the terms of the GNU Lesser General Public License:
+# http://www.opensource.org/licenses/lgpl-license.php
+#
+# For further information visit:
+# http://www.fckeditor.net/
+#
+# "Support Open Source software. What about a donation today?"
+#
+# File Name: sample04.cgi
+# Sample page.
+#
+# File Authors:
+# Takashi Yamaguchi (jack@omakase.net)
+#####
+
+## START: Hack for Windows (Not important to understand the editor code... Perl specific).
+if(Windows_check()) {
+ chdir(GetScriptPath($0));
+}
+
+sub Windows_check
+{
+ # IIS,PWS(NT/95)
+ $www_server_os = $^O;
+ # Win98 & NT(SP4)
+ if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
+ # AnHTTPd/Omni/IIS
+ if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
+ # Win Apache
+ if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
+ if($www_server_os=~ /win/i) { return(1); }
+ return(0);
+}
+
+sub GetScriptPath {
+ local($path) = @_;
+ if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
+ $path;
+}
+## END: Hack for IIS
+
+require '../../fckeditor.pl';
+
+# When $ENV{'PATH_INFO'} cannot be used by perl.
+# $DefRootPath = "/XXXXX/_samples/perl/sample04.cgi"; Please write in script.
+
+my $DefServerPath = "";
+my $ServerPath;
+
+ $ServerPath = &GetServerPath();
+
+ if($ENV{'REQUEST_METHOD'} eq "POST") {
+ read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
+ } else {
+ $buffer = $ENV{'QUERY_STRING'};
+ }
+ @pairs = split(/&/,$buffer);
+ foreach $pair (@pairs) {
+ ($name,$value) = split(/=/,$pair);
+ $value =~ tr/+/ /;
+ $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ $value =~ s/\t//g;
+ $value =~ s/\r\n/\n/g;
+ $FORM{$name} .= "\0" if(defined($FORM{$name}));
+ $FORM{$name} .= $value;
+ }
+
+#!!Caution javascript \ Quart
+
+ print "Content-type: text/html\n\n";
+ print <<"_HTML_TAG_";
+
+
+
+ FCKeditor - Perl - Sample 4
+ This sample shows how to change the editor skin.
+
+
+
+
+
+
+ Select the skin to load:
+
+
+
+
+
+
+
+
+_HTML_TAG_
+
+################
+#Please use this function, rewriting it depending on a server's environment.
+################
+sub GetServerPath
+{
+my $dir;
+
+ if($DefServerPath) {
+ $dir = $DefServerPath;
+ } else {
+ if($ENV{'PATH_INFO'}) {
+ $dir = $ENV{'PATH_INFO'};
+ } elsif($ENV{'FILEPATH_INFO'}) {
+ $dir = $ENV{'FILEPATH_INFO'};
+ }
+ }
+ return($dir);
+}
diff --git a/htdocs/includes/fckeditor/_samples/perl/sampleposteddata.cgi b/htdocs/includes/fckeditor/_samples/perl/sampleposteddata.cgi
new file mode 100644
index 00000000000..99f5ba74005
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/perl/sampleposteddata.cgi
@@ -0,0 +1,101 @@
+#!/usr/bin/env perl
+
+#####
+# FCKeditor - The text editor for internet
+# Copyright (C) 2003-2006 Frederico Caldeira Knabben
+#
+# Licensed under the terms of the GNU Lesser General Public License:
+# http://www.opensource.org/licenses/lgpl-license.php
+#
+# For further information visit:
+# http://www.fckeditor.net/
+#
+# "Support Open Source software. What about a donation today?"
+#
+# File Name: sampleposteddata.cgi
+# This page lists the data posted by a form.
+#
+# File Authors:
+# Takashi Yamaguchi (jack@omakase.net)
+#####
+
+## START: Hack for Windows (Not important to understand the editor code... Perl specific).
+if(Windows_check()) {
+ chdir(GetScriptPath($0));
+}
+
+sub Windows_check
+{
+ # IIS,PWS(NT/95)
+ $www_server_os = $^O;
+ # Win98 & NT(SP4)
+ if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
+ # AnHTTPd/Omni/IIS
+ if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
+ # Win Apache
+ if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
+ if($www_server_os=~ /win/i) { return(1); }
+ return(0);
+}
+
+sub GetScriptPath {
+ local($path) = @_;
+ if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
+ $path;
+}
+## END: Hack for IIS
+
+require '../../fckeditor.pl';
+
+ if($ENV{'REQUEST_METHOD'} eq "POST") {
+ read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
+ } else {
+ $buffer = $ENV{'QUERY_STRING'};
+ }
+ @pairs = split(/&/,$buffer);
+ foreach $pair (@pairs) {
+ ($name,$value) = split(/=/,$pair);
+ $value =~ tr/+/ /;
+ $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ $value =~ s/\t//g;
+ $value =~ s/\r\n/\n/g;
+ $FORM{$name} .= "\0" if(defined($FORM{$name}));
+ $FORM{$name} .= $value;
+ }
+
+ print "Content-type: text/html\n\n";
+ print <<"_HTML_TAG_";
+
+
+
+
+ FCKeditor - Samples - Posted Data
+ This page lists all data posted by the form.
+
+
+
+
+
+_HTML_TAG_
diff --git a/htdocs/includes/fckeditor/_samples/php/sample01.php b/htdocs/includes/fckeditor/_samples/php/sample01.php
new file mode 100644
index 00000000000..96ed791b70c
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/php/sample01.php
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+_HTML_TAG_
+
+ foreach $key (keys %FORM) {
+ $postedValue = &specialchar_cnv($FORM{$key});
+ print <<"_HTML_TAG_";
+ Field Name
+ Value
+
+
+_HTML_TAG_
+ }
+ print <<"_HTML_TAG_";
+ $key
+ $postedValue
+ FCKeditor - PHP - Sample 1
+ This sample displays a normal HTML form with an FCKeditor with full features
+ enabled.
+
+
+
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/_samples/php/sample02.php b/htdocs/includes/fckeditor/_samples/php/sample02.php
new file mode 100644
index 00000000000..6236a52bb19
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/php/sample02.php
@@ -0,0 +1,104 @@
+
+
+
+
+ FCKeditor - PHP - Sample 2
+ This sample shows the editor in all its available languages.
+
+
+
+
+
+
+ Select a language:
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/_samples/php/sample03.php b/htdocs/includes/fckeditor/_samples/php/sample03.php
new file mode 100644
index 00000000000..188e3118269
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/php/sample03.php
@@ -0,0 +1,86 @@
+
+
+
+
+ FCKeditor - PHP - Sample 3
+ This sample shows how to change the editor toolbar.
+
+
+
+
+
+
+ Select the toolbar to load:
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/_samples/php/sample04.php b/htdocs/includes/fckeditor/_samples/php/sample04.php
new file mode 100644
index 00000000000..d3824984862
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/php/sample04.php
@@ -0,0 +1,91 @@
+
+
+
+
+ FCKeditor - PHP - Sample 4
+ This sample shows how to change the editor skin.
+
+
+
+
+
+
+ Select the skin to load:
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/_samples/php/sampleposteddata.php b/htdocs/includes/fckeditor/_samples/php/sampleposteddata.php
new file mode 100644
index 00000000000..78dee7157f5
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/php/sampleposteddata.php
@@ -0,0 +1,60 @@
+
+
+
+
+ FCKeditor - Samples - Posted Data
+ This page lists all data posted by the form.
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_samples/py/sample01.py b/htdocs/includes/fckeditor/_samples/py/sample01.py
new file mode 100644
index 00000000000..50dceb06abb
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/py/sample01.py
@@ -0,0 +1,78 @@
+#!/usr/bin/env python
+
+"""
+FCKeditor - The text editor for internet
+Copyright (C) 2003-2006 Frederico Caldeira Knabben
+
+Licensed under the terms of the GNU Lesser General Public License:
+ http://www.opensource.org/licenses/lgpl-license.php
+
+For further information visit:
+ http://www.fckeditor.net/
+
+"Support Open Source software. What about a donation today?"
+
+File Name: sample01.py
+ Sample page.
+
+File Authors:
+ Andrew Liu (andrew@liuholdings.com)
+"""
+
+import cgi
+import os
+
+# Ensure that the fckeditor.py is included in your classpath
+import fckeditor
+
+# Tell the browser to render html
+print "Content-Type: text/html"
+print ""
+
+# Document header
+print """
+
+
+
+
+ $value )
+{
+ $postedValue = htmlspecialchars( stripslashes( $value ) ) ;
+
+?>
+ Field Name
+ Value
+
+
+
+ =$sForm?>
+ =$postedValue?>
+ FCKeditor - Python - Sample 1
+ This sample displays a normal HTML form with an FCKeditor with full features
+ enabled.
+
+
+"""
+
+# For testing your environments
+print "
"
+for key in os.environ.keys():
+ print "%s: %s
" % (key, os.environ.get(key, ""))
+print "
"
+
+# Document footer
+print """
+
+
+"""
+
+
diff --git a/htdocs/includes/fckeditor/_samples/py/sampleposteddata.py b/htdocs/includes/fckeditor/_samples/py/sampleposteddata.py
new file mode 100644
index 00000000000..e8b07f40cfd
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/py/sampleposteddata.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+
+"""
+FCKeditor - The text editor for internet
+Copyright (C) 2003-2006 Frederico Caldeira Knabben
+
+Licensed under the terms of the GNU Lesser General Public License:
+ http://www.opensource.org/licenses/lgpl-license.php
+
+For further information visit:
+ http://www.fckeditor.net/
+
+"Support Open Source software. What about a donation today?"
+
+File Name: sampleposteddata.py
+ This page lists the data posted by a form.
+
+File Authors:
+ Andrew Liu (andrew@liuholdings.com)
+"""
+
+import cgi
+import os
+
+# Tell the browser to render html
+print "Content-Type: text/html"
+print ""
+
+try:
+ # Create a cgi object
+ form = cgi.FieldStorage()
+except Exception, e:
+ print e
+
+# Document header
+print """
+
+
+ FCKeditor - Samples - Posted Data
+ This page lists all data posted by the form.
+
+
+
"
+
+# For testing your environments
+print "
+
+"""
+for key in form.keys():
+ try:
+ value = form[key].value
+ print """
+ Field Name
+ Value
+
+
+ """ % (key, value)
+ except Exception, e:
+ print e
+print "%s
+ %s
+
"
+for key in os.environ.keys():
+ print "%s: %s
" % (key, os.environ.get(key, ""))
+print "
"
+
+# Document footer
+print """
+
+
+"""
diff --git a/htdocs/includes/fckeditor/_samples/sample.css b/htdocs/includes/fckeditor/_samples/sample.css
new file mode 100644
index 00000000000..95bd0adf6a8
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/sample.css
@@ -0,0 +1,46 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: sample.css
+ * Styles used in the samples pages.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+body, td, input, select, textarea
+{
+ font-size: 12px;
+ font-family: Arial, Verdana, Sans-Serif;
+}
+
+h1
+{
+ font-weight: bold;
+ font-size: 180%;
+ margin-bottom: 10px;
+}
+
+form
+{
+ margin: 0px 0px 0px 0px;
+ padding: 0px 0px 0px 0px;
+}
+
+pre
+{
+ margin:0px;
+ padding:0px;
+ white-space: pre-wrap; /* css-3 */
+ white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
+ word-wrap: break-word; /* Internet Explorer 5.5+ */
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/_samples/sampleslist.html b/htdocs/includes/fckeditor/_samples/sampleslist.html
new file mode 100644
index 00000000000..5b6dc82ef5c
--- /dev/null
+++ b/htdocs/includes/fckeditor/_samples/sampleslist.html
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/_testcases/001.html b/htdocs/includes/fckeditor/_testcases/001.html
new file mode 100644
index 00000000000..6f2379c4c5b
--- /dev/null
+++ b/htdocs/includes/fckeditor/_testcases/001.html
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+ Please select the sample you want to view:
+
+
+
+
+ FCKeditor - Test 001
+
+ Configurations: Default
+ Steps to Reproduce:
+
+
+
+
Expected results: The editor must work correctly when not value
+ has been set
+ Configurations: Default
+ Steps to Reproduce:
+
+
Expected results: The user must be able to edit the complete
+ page html.
+ Configurations: FullPage = true ;
+ Steps to Reproduce:
+
+
+ Expected results : The editor must still work when hidding it
+ programmatically (through javascript).
+ Configurations: Default
+ Steps to Reproduce:
+
+
+ Expected results: The editor content must be loaded and the
+ submit button must post the editors html. No javascript errors should be thrown
+ (security errors).
+ Configurations: BaseHref = http://www.fckeditor.net
+
+ Steps to Reproduce:
+
+
+ Expected results: The editor content must be loaded and the
+ submit button must post the editors html. No javascript errors should be thorwn
+ (security errors).
+ Configurations: BaseHref = http://www.fckeditor.net / FullPage
+ = true
+
+ Steps to Reproduce:
+
+
+ Expected results: The editor content must be loaded and the
+ submit button must post the editor's html.
+ Configurations: Default
+ Steps to Reproduce:
+
+
+ Expected results: The editor content must be loaded and the
+ submit button must post the editors html.
+ Configurations: Default
+ Steps to Reproduce:
+
+
+ Expected results : The user should be able to background color
+ of the editor by code.
+ Configurations: Default
+ Steps to Reproduce:
+
+
+ Select a color for the background:
+
+
+ Expected results: The editor content must be loaded and the the
+ user must be able to change the toolbar dinamically (without reloading the page).
+ Configurations: Default
+ Steps to Reproduce:
+
+
| + Field Name | ++ Value | +
| + + <%=sForm%> + + | +
+ <%=ModifyForOutput( Request.Form(sForm) )%>+ |
+
+ New Features and Improvements:
++ Fixed Bugs:
++ * This version has been partially sponsored by Footsteps + and Kentico.
++ New Features and Improvements:
++ Fixed Bugs:
+
+ * This version has been partially sponsored by Footsteps
+ and Kentico.
+
+ ** This version has been partially sponsored by Nextide.
+ New Features and Improvements:
++ Fixed Bugs:
++ Special thanks to + Alfonso Martinez, who have provided many patches and suggestions for the + following features / fixes present in this version. I encourage all you to + donate to Alfonso, as a way to say thanks for his nice open source approach. + Thanks Alfonso!. Check out his contributions:
++ * This version has been partially sponsored by + Alkacon Software.
++ New Features and Improvements:
++ Fixed Bugs:
++ * This version has been partially sponsored by + Acctive Software S.A..
++ New Features and Improvements:
++ Fixed Bugs:
++ New Features and Improvements:
++ Fixed Bugs:
+
+ * This version has been partially sponsored by
+ Infineon Technologies AG.
+ ** This version has been partially sponsored by
+ Visualsoft Web Solutions.
+ *** This version has been partially sponsored by
+ Web Crossing, Inc.
+ New Features and Improvements:
++ Fixed Bugs:
+
+ * This version has been partially sponsored by the
+ Hamilton College.
+ ** This version has been partially sponsored by
+ Infineon Technologies AG.
+ New Features and Improvements:
++ Fixed Bugs:
+
+ This is the first beta of the 2.x series. It brings a lot of new and important things.
+ Beta versions will be released until all features available on version 1.x will
+ be introduced in the 2.0.
+
+ Note: As it is a beta, it is not yet completely developed. Future
+ versions can bring new features that can break backward compatibility with this
+ version.
+
+ * This version has been partially sponsored by Genuitec, + LLC.
++ * This version has been partially sponsored by Genuitec, + LLC.
+
+
+ eIcon = document.createElement( 'IMG' ) ;
+ eIcon.src = FCK_SPACER_PATH ;
+ eIcon.style.backgroundPosition = '0px ' + sPos ;
+ eIcon.style.backgroundImage = 'url(' + this.Path + ')' ;
+ }
+ }
+ else // It is using a single icon image.
+ {
+ //
+ eIcon = document.createElement( 'IMG' ) ;
+ eIcon.src = this.Path ? this.Path : FCK_SPACER_PATH ;
+ }
+
+ eIcon.className = 'TB_Button_Image' ;
+
+ return eIcon ;
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/classes/fckiecleanup.js b/htdocs/includes/fckeditor/editor/_source/classes/fckiecleanup.js
new file mode 100644
index 00000000000..c06d40891d8
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/classes/fckiecleanup.js
@@ -0,0 +1,51 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckiecleanup.js
+ * FCKIECleanup Class: a generic class used as a tool to remove IE leaks.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+
+var FCKIECleanup = function( attachWindow )
+{
+
+ this.Items = new Array() ;
+
+ attachWindow._FCKCleanupObj = this ;
+ attachWindow.attachEvent( 'onunload', FCKIECleanup_Cleanup ) ;
+}
+
+FCKIECleanup.prototype.AddItem = function( dirtyItem, cleanupFunction )
+{
+ this.Items.push( [ dirtyItem, cleanupFunction ] ) ;
+}
+
+function FCKIECleanup_Cleanup()
+{
+ var aItems = this._FCKCleanupObj.Items ;
+ var iLenght = aItems.length ;
+
+ for ( var i = 0 ; i < iLenght ; i++ )
+ {
+ var oItem = aItems[i] ;
+ oItem[1].call( oItem[0] ) ;
+ aItems[i] = null ;
+ }
+
+ this._FCKCleanupObj = null ;
+
+ if ( CollectGarbage )
+ CollectGarbage() ;
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/classes/fckmenublock.js b/htdocs/includes/fckeditor/editor/_source/classes/fckmenublock.js
new file mode 100644
index 00000000000..3b6cd3d5b8d
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/classes/fckmenublock.js
@@ -0,0 +1,135 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckmenublock.js
+ * Renders a list of menu items.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+
+var FCKMenuBlock = function()
+{
+ this._Items = new Array() ;
+}
+
+
+FCKMenuBlock.prototype.AddItem = function( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled )
+{
+ var oItem = new FCKMenuItem( this, name, label, iconPathOrStripInfoArrayOrIndex, isDisabled ) ;
+
+ oItem.OnClick = FCKTools.CreateEventListener( FCKMenuBlock_Item_OnClick, this ) ;
+ oItem.OnActivate = FCKTools.CreateEventListener( FCKMenuBlock_Item_OnActivate, this ) ;
+
+ this._Items.push( oItem ) ;
+
+ return oItem ;
+}
+
+FCKMenuBlock.prototype.AddSeparator = function()
+{
+ this._Items.push( new FCKMenuSeparator() ) ;
+}
+
+FCKMenuBlock.prototype.RemoveAllItems = function()
+{
+ this._Items = new Array() ;
+
+ var eItemsTable = this._ItemsTable ;
+ if ( eItemsTable )
+ {
+ while ( eItemsTable.rows.length > 0 )
+ eItemsTable.deleteRow( 0 ) ;
+ }
+}
+
+FCKMenuBlock.prototype.Create = function( parentElement )
+{
+ if ( !this._ItemsTable )
+ {
+ if ( FCK.IECleanup )
+ FCK.IECleanup.AddItem( this, FCKMenuBlock_Cleanup ) ;
+
+ this._Window = FCKTools.GetElementWindow( parentElement ) ;
+
+ var oDoc = parentElement.ownerDocument ;
+
+ var eTable = parentElement.appendChild( oDoc.createElement( 'table' ) ) ;
+ eTable.cellPadding = 0 ;
+ eTable.cellSpacing = 0 ;
+
+ FCKTools.DisableSelection( eTable ) ;
+
+ var oMainElement = eTable.insertRow(-1).insertCell(-1) ;
+ oMainElement.className = 'MN_Menu' ;
+
+ var eItemsTable = this._ItemsTable = oMainElement.appendChild( oDoc.createElement( 'table' ) ) ;
+ eItemsTable.cellPadding = 0 ;
+ eItemsTable.cellSpacing = 0 ;
+ }
+
+ for ( var i = 0 ; i < this._Items.length ; i++ )
+ this._Items[i].Create( this._ItemsTable ) ;
+}
+
+/* Events */
+
+function FCKMenuBlock_Item_OnClick( clickedItem, menuBlock )
+{
+ FCKTools.RunFunction( menuBlock.OnClick, menuBlock, [ clickedItem ] ) ;
+}
+
+function FCKMenuBlock_Item_OnActivate( menuBlock )
+{
+ var oActiveItem = menuBlock._ActiveItem ;
+
+ if ( oActiveItem && oActiveItem != this )
+ {
+ // Set the focus to this menu block window (to fire OnBlur on opened panels).
+ if ( !FCKBrowserInfo.IsIE && oActiveItem.HasSubMenu && !this.HasSubMenu )
+ menuBlock._Window.focus() ;
+
+ oActiveItem.Deactivate() ;
+ }
+
+ menuBlock._ActiveItem = this ;
+}
+
+function FCKMenuBlock_Cleanup()
+{
+ this._Window = null ;
+ this._ItemsTable = null ;
+}
+
+// ################# //
+
+var FCKMenuSeparator = function()
+{}
+
+FCKMenuSeparator.prototype.Create = function( parentTable )
+{
+ var oDoc = parentTable.ownerDocument ; // This is IE 6+
+
+ var r = parentTable.insertRow(-1) ;
+
+ var eCell = r.insertCell(-1) ;
+ eCell.className = 'MN_Separator MN_Icon' ;
+
+ eCell = r.insertCell(-1) ;
+ eCell.className = 'MN_Separator' ;
+ eCell.appendChild( oDoc.createElement( 'DIV' ) ).className = 'MN_Separator_Line' ;
+
+ eCell = r.insertCell(-1) ;
+ eCell.className = 'MN_Separator' ;
+ eCell.appendChild( oDoc.createElement( 'DIV' ) ).className = 'MN_Separator_Line' ;
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/classes/fckmenublockpanel.js b/htdocs/includes/fckeditor/editor/_source/classes/fckmenublockpanel.js
new file mode 100644
index 00000000000..c149e1998e1
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/classes/fckmenublockpanel.js
@@ -0,0 +1,51 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckmenublockpanel.js
+ * This class is a menu block that behaves like a panel. It's a mix of the
+ * FCKMenuBlock and FCKPanel classes.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+
+var FCKMenuBlockPanel = function()
+{
+ // Call the "base" constructor.
+ FCKMenuBlock.call( this ) ;
+}
+
+FCKMenuBlockPanel.prototype = new FCKMenuBlock() ;
+
+
+// Override the create method.
+FCKMenuBlockPanel.prototype.Create = function()
+{
+ var oPanel = this.Panel = ( this.Parent && this.Parent.Panel ? this.Parent.Panel.CreateChildPanel() : new FCKPanel() ) ;
+ oPanel.AppendStyleSheet( FCKConfig.SkinPath + 'fck_editor.css' ) ;
+
+ // Call the "base" implementation.
+ FCKMenuBlock.prototype.Create.call( this, oPanel.MainNode ) ;
+}
+
+FCKMenuBlockPanel.prototype.Show = function( x, y, relElement )
+{
+ if ( !this.Panel.CheckIsOpened() )
+ this.Panel.Show( x, y, relElement ) ;
+}
+
+FCKMenuBlockPanel.prototype.Hide = function()
+{
+ if ( this.Panel.CheckIsOpened() )
+ this.Panel.Hide() ;
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/classes/fckmenuitem.js b/htdocs/includes/fckeditor/editor/_source/classes/fckmenuitem.js
new file mode 100644
index 00000000000..fb0502a69f2
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/classes/fckmenuitem.js
@@ -0,0 +1,157 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckmenuitem.js
+ * Defines and renders a menu items in a menu block.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+
+var FCKMenuItem = function( parentMenuBlock, name, label, iconPathOrStripInfoArray, isDisabled )
+{
+ this.Name = name ;
+ this.Label = label || name ;
+ this.IsDisabled = isDisabled ;
+
+ this.Icon = new FCKIcon( iconPathOrStripInfoArray ) ;
+
+ this.SubMenu = new FCKMenuBlockPanel() ;
+ this.SubMenu.Parent = parentMenuBlock ;
+ this.SubMenu.OnClick = FCKTools.CreateEventListener( FCKMenuItem_SubMenu_OnClick, this ) ;
+
+ if ( FCK.IECleanup )
+ FCK.IECleanup.AddItem( this, FCKMenuItem_Cleanup ) ;
+}
+
+
+FCKMenuItem.prototype.AddItem = function( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled )
+{
+ this.HasSubMenu = true ;
+ return this.SubMenu.AddItem( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled ) ;
+}
+
+FCKMenuItem.prototype.AddSeparator = function()
+{
+ this.SubMenu.AddSeparator() ;
+}
+
+FCKMenuItem.prototype.Create = function( parentTable )
+{
+ var bHasSubMenu = this.HasSubMenu ;
+
+ var oDoc = parentTable.ownerDocument ; // This is not IE 5.5
+
+ // Add a row in the table to hold the menu item.
+ var r = this.MainElement = parentTable.insertRow(-1) ;
+ r.className = this.IsDisabled ? 'MN_Item_Disabled' : 'MN_Item' ;
+
+ // Set the row behavior.
+ if ( !this.IsDisabled )
+ {
+ FCKTools.AddEventListenerEx( r, 'mouseover', FCKMenuItem_OnMouseOver, [ this ] ) ;
+ FCKTools.AddEventListenerEx( r, 'click', FCKMenuItem_OnClick, [ this ] ) ;
+
+ if ( !bHasSubMenu )
+ FCKTools.AddEventListenerEx( r, 'mouseout', FCKMenuItem_OnMouseOut, [ this ] ) ;
+ }
+
+ // Create the icon cell.
+ var eCell = r.insertCell(-1) ;
+ eCell.className = 'MN_Icon' ;
+ eCell.appendChild( this.Icon.CreateIconElement( oDoc ) ) ;
+
+ // Create the label cell.
+ eCell = r.insertCell(-1) ;
+ eCell.className = 'MN_Label' ;
+ eCell.noWrap = true ;
+ eCell.appendChild( oDoc.createTextNode( this.Label ) ) ;
+
+ // Create the arrow cell and setup the sub menu panel (if needed).
+ eCell = r.insertCell(-1) ;
+ if ( bHasSubMenu )
+ {
+ eCell.className = 'MN_Arrow' ;
+
+ // The arrow is a fixed size image.
+ var eArrowImg = eCell.appendChild( oDoc.createElement( 'IMG' ) ) ;
+ eArrowImg.src = FCK_IMAGES_PATH + 'arrow_' + FCKLang.Dir + '.gif' ;
+ eArrowImg.width = 4 ;
+ eArrowImg.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 )
+ {
+ // Show the child menu block. The ( +2, -2 ) correction is done because
+ // of the padding in the skin. It is not a good solution because one
+ // could change the skin and so the final result would not be accurate.
+ // For now it is ok because we are controlling the skin.
+ 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() ;
+}
+
+/* Events */
+
+function FCKMenuItem_SubMenu_OnClick( clickedItem, listeningItem )
+{
+ FCKTools.RunFunction( listeningItem.OnClick, listeningItem, [ clickedItem ] ) ;
+}
+
+function FCKMenuItem_SubMenu_OnHide( menuItem )
+{
+ menuItem.Deactivate() ;
+}
+
+function FCKMenuItem_OnClick( ev, menuItem )
+{
+ if ( menuItem.HasSubMenu )
+ menuItem.Activate() ;
+ else
+ {
+ menuItem.Deactivate() ;
+ FCKTools.RunFunction( menuItem.OnClick, menuItem, [ menuItem ] ) ;
+ }
+}
+
+function FCKMenuItem_OnMouseOver( ev, menuItem )
+{
+ menuItem.Activate() ;
+}
+
+function FCKMenuItem_OnMouseOut( ev, menuItem )
+{
+ menuItem.Deactivate() ;
+}
+
+function FCKMenuItem_Cleanup()
+{
+ this.MainElement = null ;
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/classes/fckpanel.js b/htdocs/includes/fckeditor/editor/_source/classes/fckpanel.js
new file mode 100644
index 00000000000..27672e5703a
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/classes/fckpanel.js
@@ -0,0 +1,290 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckpanel.js
+ * Component that creates floating panels. It is used by many
+ * other components, like the toolbar items, context menu, etc...
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+
+var FCKPanel = function( parentWindow )
+{
+ this.IsRTL = ( FCKLang.Dir == 'rtl' ) ;
+ this.IsContextMenu = false ;
+ this._LockCounter = 0 ;
+
+ this._Window = parentWindow || window ;
+
+ var oDocument ;
+
+ if ( FCKBrowserInfo.IsIE )
+ {
+ // Create the Popup that will hold the panel.
+ this._Popup = this._Window.createPopup() ;
+ oDocument = this.Document = this._Popup.document ;
+ }
+ else
+ {
+ var oIFrame = this._IFrame = this._Window.document.createElement('iframe') ;
+ oIFrame.src = 'javascript:void(0)' ;
+ oIFrame.allowTransparency = true ;
+ oIFrame.frameBorder = '0' ;
+ oIFrame.scrolling = 'no' ;
+ oIFrame.style.position = 'absolute';
+ oIFrame.style.zIndex = FCKConfig.FloatingPanelsZIndex ;
+ oIFrame.width = oIFrame.height = 0 ;
+
+ this._Window.document.body.appendChild( oIFrame ) ;
+
+ var oIFrameWindow = oIFrame.contentWindow ;
+
+ oDocument = this.Document = oIFrameWindow.document ;
+
+ // Initialize the IFRAME document body.
+ oDocument.open() ;
+ oDocument.write( '<\/body><\/html>' ) ;
+ oDocument.close() ;
+
+ FCKTools.AddEventListenerEx( oIFrameWindow, 'focus', FCKPanel_Window_OnFocus, this ) ;
+ FCKTools.AddEventListenerEx( oIFrameWindow, 'blur', FCKPanel_Window_OnBlur, this ) ;
+ }
+
+ oDocument.dir = FCKLang.Dir ;
+
+ oDocument.oncontextmenu = FCKTools.CancelEvent ;
+
+
+ // Create the main DIV that is used as the panel base.
+ this.MainNode = oDocument.body.appendChild( oDocument.createElement('DIV') ) ;
+
+ // The "float" property must be set so Firefox calculates the size correcly.
+ this.MainNode.style.cssFloat = this.IsRTL ? 'right' : 'left' ;
+
+ if ( FCK.IECleanup )
+ FCK.IECleanup.AddItem( this, FCKPanel_Cleanup ) ;
+}
+
+
+FCKPanel.prototype.AppendStyleSheet = function( styleSheet )
+{
+ FCKTools.AppendStyleSheet( this.Document, styleSheet ) ;
+}
+
+FCKPanel.prototype.Preload = function( x, y, relElement )
+{
+ // The offsetWidth and offsetHeight properties are not available if the
+ // element is not visible. So we must "show" the popup with no size to
+ // be able to use that values in the second call (IE only).
+ if ( this._Popup )
+ this._Popup.show( x, y, 0, 0, relElement ) ;
+}
+
+FCKPanel.prototype.Show = function( x, y, relElement, width, height )
+{
+ if ( this._Popup )
+ {
+ // The offsetWidth and offsetHeight properties are not available if the
+ // element is not visible. So we must "show" the popup with no size to
+ // be able to use that values in the second call.
+ this._Popup.show( x, y, 0, 0, relElement ) ;
+
+ // The following lines must be place after the above "show", otherwise it
+ // doesn't has the desired effect.
+ this.MainNode.style.width = width ? width + 'px' : '' ;
+ this.MainNode.style.height = height ? height + 'px' : '' ;
+
+ var iMainWidth = this.MainNode.offsetWidth ;
+
+ if ( this.IsRTL )
+ {
+ if ( this.IsContextMenu )
+ x = x - iMainWidth + 1 ;
+ else if ( relElement )
+ x = ( x * -1 ) + relElement.offsetWidth - iMainWidth ;
+ }
+
+ // Second call: Show the Popup at the specified location, with the correct size.
+ this._Popup.show( x, y, iMainWidth, this.MainNode.offsetHeight, relElement ) ;
+
+ if ( this.OnHide )
+ {
+ if ( this._Timer )
+ CheckPopupOnHide.call( this, true ) ;
+
+ this._Timer = FCKTools.SetInterval( CheckPopupOnHide, 100, this ) ;
+ }
+ }
+ else
+ {
+ // Do not fire OnBlur while the panel is opened.
+ FCKFocusManager.Lock() ;
+
+ if ( this.ParentPanel )
+ this.ParentPanel.Lock() ;
+
+ this.MainNode.style.width = width ? width + 'px' : '' ;
+ this.MainNode.style.height = height ? height + 'px' : '' ;
+
+ var iMainWidth = this.MainNode.offsetWidth ;
+
+ if ( !width ) this._IFrame.width = 1 ;
+ if ( !height ) this._IFrame.height = 1 ;
+
+ // This is weird... but with Firefox, we must get the offsetWidth before
+ // setting the _IFrame size (which returns "0"), and then after that,
+ // to return the correct width. Remove the first step and it will not
+ // work when the editor is in RTL.
+ iMainWidth = this.MainNode.offsetWidth ;
+
+ var oPos = FCKTools.GetElementPosition( ( relElement.nodeType == 9 ? relElement.body : relElement), this._Window ) ;
+
+ if ( this.IsRTL && !this.IsContextMenu )
+ x = ( x * -1 ) ;
+
+ x += oPos.X ;
+ y += oPos.Y ;
+
+ if ( this.IsRTL )
+ {
+ if ( this.IsContextMenu )
+ x = x - iMainWidth + 1 ;
+ else if ( relElement )
+ x = x + relElement.offsetWidth - iMainWidth ;
+ }
+ else
+ {
+ var oViewPaneSize = FCKTools.GetViewPaneSize( this._Window ) ;
+ var oScrollPosition = FCKTools.GetScrollPosition( this._Window ) ;
+
+ var iViewPaneHeight = oViewPaneSize.Height + oScrollPosition.Y ;
+ var iViewPaneWidth = oViewPaneSize.Width + oScrollPosition.X ;
+
+ if ( ( x + iMainWidth ) > iViewPaneWidth )
+ x -= x + iMainWidth - iViewPaneWidth ;
+
+ if ( ( y + this.MainNode.offsetHeight ) > iViewPaneHeight )
+ y -= y + this.MainNode.offsetHeight - iViewPaneHeight ;
+ }
+
+ if ( x < 0 )
+ x = 0 ;
+
+ // Set the context menu DIV in the specified location.
+ this._IFrame.style.left = x + 'px' ;
+ this._IFrame.style.top = y + 'px' ;
+
+ var iWidth = iMainWidth ;
+ var iHeight = this.MainNode.offsetHeight ;
+
+ this._IFrame.width = iWidth ;
+ this._IFrame.height = iHeight ;
+
+ // Move the focus to the IFRAME so we catch the "onblur".
+ this._IFrame.contentWindow.focus() ;
+ }
+
+ this._IsOpened = true ;
+
+ FCKTools.RunFunction( this.OnShow, this ) ;
+}
+
+FCKPanel.prototype.Hide = function( ignoreOnHide )
+{
+ if ( this._Popup )
+ this._Popup.hide() ;
+ else
+ {
+ if ( !this._IsOpened )
+ return ;
+
+ // Enable the editor to fire the "OnBlur".
+ FCKFocusManager.Unlock() ;
+
+ // It is better to set the sizes to 0, otherwise Firefox would have
+ // rendering problems.
+ this._IFrame.width = this._IFrame.height = 0 ;
+
+ this._IsOpened = false ;
+
+ if ( this.ParentPanel )
+ this.ParentPanel.Unlock() ;
+
+ if ( !ignoreOnHide )
+ 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 oWindow = this._Popup ? FCKTools.GetParentWindow( this.Document ) : this._Window ;
+
+ var oChildPanel = new FCKPanel( oWindow, true ) ;
+ oChildPanel.ParentPanel = this ;
+
+ return oChildPanel ;
+}
+
+FCKPanel.prototype.Lock = function()
+{
+ this._LockCounter++ ;
+}
+
+FCKPanel.prototype.Unlock = function()
+{
+ if ( --this._LockCounter == 0 && !this.HasFocus )
+ this.Hide() ;
+}
+
+/* Events */
+
+function FCKPanel_Window_OnFocus( e, panel )
+{
+ panel.HasFocus = true ;
+}
+
+function FCKPanel_Window_OnBlur( e, panel )
+{
+ panel.HasFocus = false ;
+
+ if ( panel._LockCounter == 0 )
+ FCKTools.RunFunction( panel.Hide, panel ) ;
+}
+
+function CheckPopupOnHide( forceHide )
+{
+ if ( forceHide || !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 ;
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/classes/fckplugin.js b/htdocs/includes/fckeditor/editor/_source/classes/fckplugin.js
new file mode 100644
index 00000000000..b94799800a0
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/classes/fckplugin.js
@@ -0,0 +1,52 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckplugin.js
+ * FCKPlugin Class: Represents a single plugin.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKPlugin = function( name, availableLangs, basePath )
+{
+ this.Name = name ;
+ this.BasePath = basePath ? basePath : FCKConfig.PluginsPath ;
+ this.Path = this.BasePath + name + '/' ;
+
+ if ( !availableLangs || availableLangs.length == 0 )
+ this.AvailableLangs = new Array() ;
+ else
+ this.AvailableLangs = availableLangs.split(',') ;
+}
+
+FCKPlugin.prototype.Load = function()
+{
+ // Load the language file, if defined.
+ if ( this.AvailableLangs.length > 0 )
+ {
+ var sLang ;
+
+ // Check if the plugin has the language file for the active language.
+ if ( this.AvailableLangs.indexOf( FCKLanguageManager.ActiveLanguage.Code ) >= 0 )
+ sLang = FCKLanguageManager.ActiveLanguage.Code ;
+ else
+ // Load the default language file (first one) if the current one is not available.
+ sLang = this.AvailableLangs[0] ;
+
+ // Add the main plugin script.
+ LoadScript( this.Path + 'lang/' + sLang + '.js' ) ;
+ }
+
+ // Add the main plugin script.
+ LoadScript( this.Path + 'fckplugin.js' ) ;
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/classes/fckspecialcombo.js b/htdocs/includes/fckeditor/editor/_source/classes/fckspecialcombo.js
new file mode 100644
index 00000000000..baf37d2e353
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/classes/fckspecialcombo.js
@@ -0,0 +1,350 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckspecialcombo.js
+ * FCKSpecialCombo Class: represents a special combo.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKSpecialCombo = function( caption, fieldWidth, panelWidth, panelMaxHeight, parentWindow )
+{
+ // Default properties values.
+ this.FieldWidth = fieldWidth || 100 ;
+ this.PanelWidth = panelWidth || 150 ;
+ this.PanelMaxHeight = panelMaxHeight || 150 ;
+ this.Label = ' ' ;
+ this.Caption = caption ;
+ this.Tooltip = caption ;
+ this.Style = FCK_TOOLBARITEM_ICONTEXT ;
+
+ this.Enabled = true ;
+
+ this.Items = new Object() ;
+
+ this._Panel = new FCKPanel( parentWindow || 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 = '| ' + this.Caption + ' | ' + + '
| + | + |
| {Image} | Toolbar Button |
| Toolbar Button |
| {Image} | Toolbar Button |
| Toolbar Button |

+*/
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js b/htdocs/includes/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js
new file mode 100644
index 00000000000..9d1288608ee
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js
@@ -0,0 +1,99 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fcktoolbarfontformatcombo.js
+ * FCKToolbarPanelButton Class: Handles the Fonts combo selector.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKToolbarFontFormatCombo = function( tooltip, style )
+{
+ this.CommandName = 'FontFormat' ;
+ this.Label = this.GetLabel() ;
+ this.Tooltip = tooltip ? tooltip : this.Label ;
+ this.Style = style ? style : FCK_TOOLBARITEM_ICONTEXT ;
+
+ this.NormalLabel = 'Normal' ;
+
+ this.PanelWidth = 190 ;
+}
+
+// Inherit from FCKToolbarSpecialCombo.
+FCKToolbarFontFormatCombo.prototype = new FCKToolbarSpecialCombo ;
+
+
+FCKToolbarFontFormatCombo.prototype.GetLabel = function()
+{
+ return FCKLang.FontFormat ;
+}
+
+FCKToolbarFontFormatCombo.prototype.CreateItems = function( targetSpecialCombo )
+{
+ // Get the format names from the language file.
+ var aNames = FCKLang['FontFormats'].split(';') ;
+ var oNames = {
+ p : aNames[0],
+ pre : aNames[1],
+ address : aNames[2],
+ h1 : aNames[3],
+ h2 : aNames[4],
+ h3 : aNames[5],
+ h4 : aNames[6],
+ h5 : aNames[7],
+ h6 : aNames[8],
+ div : aNames[9]
+ } ;
+
+ // Get the available formats from the configuration file.
+ var aTags = FCKConfig.FontFormats.split(';') ;
+
+ for ( var i = 0 ; i < aTags.length ; i++ )
+ {
+ // Support for DIV in Firefox has been reintroduced on version 2.2.
+// if ( aTags[i] == 'div' && FCKBrowserInfo.IsGecko )
+// continue ;
+
+ var sTag = aTags[i] ;
+ var sLabel = oNames[sTag] ;
+
+ if ( sTag == 'p' )
+ this.NormalLabel = sLabel ;
+
+ this._Combo.AddItem( sTag, '' ) ; + else if ( formatName == 'div' && FCKBrowserInfo.IsGecko ) + FCK.ExecuteNamedCommand( 'FormatBlock', 'div' ) ; + else + FCK.ExecuteNamedCommand( 'FormatBlock', '<' + formatName + '>' ) ; +} + +FCKFormatBlockCommand.prototype.GetState = function() +{ + return FCK.GetNamedCommandValue( 'FormatBlock' ) ; +} + +// ### Preview +var FCKPreviewCommand = function() +{ + this.Name = 'Preview' ; +} + +FCKPreviewCommand.prototype.Execute = function() +{ + FCK.Preview() ; +} + +FCKPreviewCommand.prototype.GetState = function() +{ + return FCK_TRISTATE_OFF ; +} + +// ### Save +var FCKSaveCommand = function() +{ + this.Name = 'Save' ; +} + +FCKSaveCommand.prototype.Execute = function() +{ + // Get the linked field form. + var oForm = FCK.LinkedField.form ; + + if ( typeof( oForm.onsubmit ) == 'function' ) + { + var bRet = oForm.onsubmit() ; + if ( bRet != null && bRet === false ) + return ; + } + + // Submit the form. + oForm.submit() ; +} + +FCKSaveCommand.prototype.GetState = function() +{ + return FCK_TRISTATE_OFF ; +} + +// ### NewPage +var FCKNewPageCommand = function() +{ + this.Name = 'NewPage' ; +} + +FCKNewPageCommand.prototype.Execute = function() +{ + FCKUndo.SaveUndoStep() ; + FCK.SetHTML( '' ) ; + FCKUndo.Typing = true ; +// FCK.SetHTML( FCKBrowserInfo.IsGecko ? ' ' : '' ) ; +// FCK.SetHTML( FCKBrowserInfo.IsGecko ? GECKO_BOGUS : '' ) ; +} + +FCKNewPageCommand.prototype.GetState = function() +{ + return FCK_TRISTATE_OFF ; +} + +// ### Source button +var FCKSourceCommand = function() +{ + this.Name = 'Source' ; +} + +FCKSourceCommand.prototype.Execute = function() +{ + if ( FCKConfig.SourcePopup ) // Until v2.2, it was mandatory for FCKBrowserInfo.IsGecko. + { + var iWidth = FCKConfig.ScreenWidth * 0.65 ; + var iHeight = FCKConfig.ScreenHeight * 0.65 ; + FCKDialog.OpenDialog( 'FCKDialog_Source', FCKLang.Source, 'dialog/fck_source.html', iWidth, iHeight, null, null, true ) ; + } + else + FCK.SwitchEditMode() ; +} + +FCKSourceCommand.prototype.GetState = function() +{ + return ( FCK.EditMode == FCK_EDITMODE_WYSIWYG ? FCK_TRISTATE_OFF : FCK_TRISTATE_ON ) ; +} + +// ### Undo +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() ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ) ; + else + return FCK.GetNamedCommandState( 'Undo' ) ; +} + +// ### Redo +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() ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ) ; + else + return FCK.GetNamedCommandState( 'Redo' ) ; +} + +// ### Page Break +var FCKPageBreakCommand = function() +{ + this.Name = 'PageBreak' ; +} + +FCKPageBreakCommand.prototype.Execute = function() +{ +// var e = FCK.EditorDocument.createElement( 'CENTER' ) ; +// e.style.pageBreakAfter = 'always' ; + + // Tidy was removing the empty CENTER tags, so the following solution has + // been found. It also validates correctly as XHTML 1.0 Strict. + var e = FCK.EditorDocument.createElement( 'DIV' ) ; + e.style.pageBreakAfter = 'always' ; + e.innerHTML = ' ' ; + + var oFakeImage = FCKDocumentProcessor_CreateFakeImage( 'FCK__PageBreak', e ) ; + oFakeImage = FCK.InsertElement( oFakeImage ) ; +} + +FCKPageBreakCommand.prototype.GetState = function() +{ + return 0 ; // FCK_TRISTATE_OFF +} + +// FCKUnlinkCommand - by Johnny Egeland (johnny@coretrek.com) +var FCKUnlinkCommand = function() +{ + this.Name = 'Unlink' ; +} + +FCKUnlinkCommand.prototype.Execute = function() +{ + if ( FCKBrowserInfo.IsGecko ) + { + var oLink = FCK.Selection.MoveToAncestorNode( 'A' ) ; + if ( oLink ) + FCK.Selection.SelectNode( oLink ) ; + } + + FCK.ExecuteNamedCommand( this.Name ) ; + + if ( FCKBrowserInfo.IsGecko ) + FCK.Selection.Collapse( true ) ; +} + +FCKUnlinkCommand.prototype.GetState = function() +{ + return FCK.GetNamedCommandState( this.Name ) ; +} \ No newline at end of file diff --git a/htdocs/includes/fckeditor/editor/_source/commandclasses/fckfitwindow.js b/htdocs/includes/fckeditor/editor/_source/commandclasses/fckfitwindow.js new file mode 100644 index 00000000000..a6c3058d7f0 --- /dev/null +++ b/htdocs/includes/fckeditor/editor/_source/commandclasses/fckfitwindow.js @@ -0,0 +1,164 @@ +/* + * FCKeditor - The text editor for internet + * Copyright (C) 2003-2006 Frederico Caldeira Knabben + * + * Licensed under the terms of the GNU Lesser General Public License: + * http://www.opensource.org/licenses/lgpl-license.php + * + * For further information visit: + * http://www.fckeditor.net/ + * + * "Support Open Source software. What about a donation today?" + * + * File Name: fckfitwindow.js + * Stretch the editor to full window size and back. + * + * File Authors: + * Paul Moers (mail@saulmade.nl) + * Thanks to Christian Fecteau (webmaster@christianfecteau.com) + * Frederico Caldeira Knabben (fredck@fckeditor.net) + */ + +var FCKFitWindow = function() +{ + this.Name = 'FitWindow' ; +} + +FCKFitWindow.prototype.Execute = function() +{ + var eEditorFrame = window.frameElement ; + var eEditorFrameStyle = eEditorFrame.style ; + + var eMainWindow = parent ; + var eDocEl = eMainWindow.document.documentElement ; + var eBody = eMainWindow.document.body ; + var eBodyStyle = eBody.style ; + + // No original style properties known? Go fullscreen. + if ( !this.IsMaximized ) + { + // Registering an event handler when the window gets resized. + if( FCKBrowserInfo.IsIE ) + eMainWindow.attachEvent( 'onresize', FCKFitWindow_Resize ) ; + else + eMainWindow.addEventListener( 'resize', FCKFitWindow_Resize, true ) ; + + // Save the scrollbars position. + this._ScrollPos = FCKTools.GetScrollPosition( eMainWindow ) ; + + // Save and reset the styles for the entire node tree. They could interfere in the result. + var eParent = eEditorFrame ; + while( eParent = eParent.parentNode ) + { + if ( eParent.nodeType == 1 ) + eParent._fckSavedStyles = FCKTools.SaveStyles( eParent ) ; + } + + // Hide IE scrollbars (in strict mode). + if ( FCKBrowserInfo.IsIE ) + { + this.documentElementOverflow = eDocEl.style.overflow ; + eDocEl.style.overflow = 'hidden' ; + eBodyStyle.overflow = 'hidden' ; + } + else + { + // Hide the scroolbars in Firefox. + eBodyStyle.overflow = 'hidden' ; + eBodyStyle.width = '0px' ; + eBodyStyle.height = '0px' ; + } + + // Save the IFRAME styles. + this._EditorFrameStyles = FCKTools.SaveStyles( eEditorFrame ) ; + + // Resize. + var oViewPaneSize = FCKTools.GetViewPaneSize( eMainWindow ) ; + + eEditorFrameStyle.position = "absolute"; + eEditorFrameStyle.zIndex = FCKConfig.FloatingPanelsZIndex - 1; + eEditorFrameStyle.left = "0px"; + eEditorFrameStyle.top = "0px"; + eEditorFrameStyle.width = oViewPaneSize.Width + "px"; + eEditorFrameStyle.height = oViewPaneSize.Height + "px"; + + // Giving the frame some (huge) borders on his right and bottom + // side to hide the background that would otherwise show when the + // editor is in fullsize mode and the window is increased in size + // not for IE, because IE immediately adapts the editor on resize, + // without showing any of the background oddly in firefox, the + // editor seems not to fill the whole frame, so just setting the + // background of it to white to cover the page laying behind it anyway. + if ( !FCKBrowserInfo.IsIE ) + { + eEditorFrameStyle.borderRight = eEditorFrameStyle.borderBottom = "9999px solid white" ; + eEditorFrameStyle.backgroundColor = "white"; + } + + // Scroll to top left. + eMainWindow.scrollTo(0, 0); + + this.IsMaximized = true ; + } + else // Resize to original size. + { + // Remove the event handler of window resizing. + if( FCKBrowserInfo.IsIE ) + eMainWindow.detachEvent( "onresize", FCKFitWindow_Resize ) ; + else + eMainWindow.removeEventListener( "resize", FCKFitWindow_Resize, true ) ; + + // Restore the CSS position for the entire node tree. + var eParent = eEditorFrame ; + while( eParent = eParent.parentNode ) + { + if ( eParent._fckSavedStyles ) + { + FCKTools.RestoreStyles( eParent, eParent._fckSavedStyles ) ; + eParent._fckSavedStyles = null ; + } + } + + // Restore IE scrollbars + if ( FCKBrowserInfo.IsIE ) + eDocEl.style.overflow = this.documentElementOverflow ; + + // Restore original size + FCKTools.RestoreStyles( eEditorFrame, this._EditorFrameStyles ) ; + + // Restore the window scroll position. + eMainWindow.scrollTo( this._ScrollPos.X, this._ScrollPos.Y ) ; + + this.IsMaximized = false ; + } + + FCKToolbarItems.GetItem('FitWindow').RefreshState() ; + + // It seams that Firefox restarts the editing area when making this changes. + // On FF 1.0.x, the area is not anymore editable. On FF 1.5+, the special + //configuration, like DisableFFTableHandles and DisableObjectResizing get + //lost, so we must reset it. Also, the cursor position and selection are + //also lost, even if you comment the following line (MakeEditable). + // if ( FCKBrowserInfo.IsGecko10 ) // Initially I thought it was a FF 1.0 only problem. + FCK.EditingArea.MakeEditable() ; + + FCK.Focus() ; +} + +FCKFitWindow.prototype.GetState = function() +{ + if ( FCKConfig.ToolbarLocation != 'In' ) + return FCK_TRISTATE_DISABLED ; + else + return ( this.IsMaximized ? FCK_TRISTATE_ON : FCK_TRISTATE_OFF ); +} + +function FCKFitWindow_Resize() +{ + var oViewPaneSize = FCKTools.GetViewPaneSize( parent ) ; + + var eEditorFrameStyle = window.frameElement.style ; + + eEditorFrameStyle.width = oViewPaneSize.Width + 'px' ; + eEditorFrameStyle.height = oViewPaneSize.Height + 'px' ; +} diff --git a/htdocs/includes/fckeditor/editor/_source/commandclasses/fcknamedcommand.js b/htdocs/includes/fckeditor/editor/_source/commandclasses/fcknamedcommand.js new file mode 100644 index 00000000000..86add2f0314 --- /dev/null +++ b/htdocs/includes/fckeditor/editor/_source/commandclasses/fcknamedcommand.js @@ -0,0 +1,33 @@ +/* + * FCKeditor - The text editor for internet + * Copyright (C) 2003-2006 Frederico Caldeira Knabben + * + * Licensed under the terms of the GNU Lesser General Public License: + * http://www.opensource.org/licenses/lgpl-license.php + * + * For further information visit: + * http://www.fckeditor.net/ + * + * "Support Open Source software. What about a donation today?" + * + * File Name: fcknamedcommand.js + * FCKNamedCommand Class: represents an internal browser command. + * + * File Authors: + * Frederico Caldeira Knabben (fredck@fckeditor.net) + */ + +var FCKNamedCommand = function( commandName ) +{ + this.Name = commandName ; +} + +FCKNamedCommand.prototype.Execute = function() +{ + FCK.ExecuteNamedCommand( this.Name ) ; +} + +FCKNamedCommand.prototype.GetState = function() +{ + return FCK.GetNamedCommandState( this.Name ) ; +} diff --git a/htdocs/includes/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js b/htdocs/includes/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js new file mode 100644 index 00000000000..6c2769745d2 --- /dev/null +++ b/htdocs/includes/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js @@ -0,0 +1,34 @@ +/* + * FCKeditor - The text editor for internet + * Copyright (C) 2003-2006 Frederico Caldeira Knabben + * + * Licensed under the terms of the GNU Lesser General Public License: + * http://www.opensource.org/licenses/lgpl-license.php + * + * For further information visit: + * http://www.fckeditor.net/ + * + * "Support Open Source software. What about a donation today?" + * + * File Name: fckpasteplaintextcommand.js + * FCKPastePlainTextCommand Class: represents the + * "Paste as Plain Text" command. + * + * File Authors: + * Frederico Caldeira Knabben (fredck@fckeditor.net) + */ + +var FCKPastePlainTextCommand = function() +{ + this.Name = 'PasteText' ; +} + +FCKPastePlainTextCommand.prototype.Execute = function() +{ + FCK.PasteAsPlainText() ; +} + +FCKPastePlainTextCommand.prototype.GetState = function() +{ + return FCK.GetNamedCommandState( 'Paste' ) ; +} diff --git a/htdocs/includes/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js b/htdocs/includes/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js new file mode 100644 index 00000000000..2e598b17c36 --- /dev/null +++ b/htdocs/includes/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js @@ -0,0 +1,36 @@ +/* + * FCKeditor - The text editor for internet + * Copyright (C) 2003-2006 Frederico Caldeira Knabben + * + * Licensed under the terms of the GNU Lesser General Public License: + * http://www.opensource.org/licenses/lgpl-license.php + * + * For further information visit: + * http://www.fckeditor.net/ + * + * "Support Open Source software. What about a donation today?" + * + * File Name: fckpastewordcommand.js + * FCKPasteWordCommand Class: represents the "Paste from Word" command. + * + * File Authors: + * Frederico Caldeira Knabben (fredck@fckeditor.net) + */ + +var FCKPasteWordCommand = function() +{ + this.Name = 'PasteWord' ; +} + +FCKPasteWordCommand.prototype.Execute = function() +{ + FCK.PasteFromWord() ; +} + +FCKPasteWordCommand.prototype.GetState = function() +{ + if ( FCKConfig.ForcePasteAsPlainText ) + return FCK_TRISTATE_DISABLED ; + else + return FCK.GetNamedCommandState( 'Paste' ) ; +} diff --git a/htdocs/includes/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js b/htdocs/includes/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js new file mode 100644 index 00000000000..e8eb09cffb4 --- /dev/null +++ b/htdocs/includes/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js @@ -0,0 +1,35 @@ +/* + * FCKeditor - The text editor for internet + * Copyright (C) 2003-2006 Frederico Caldeira Knabben + * + * Licensed under the terms of the GNU Lesser General Public License: + * http://www.opensource.org/licenses/lgpl-license.php + * + * For further information visit: + * http://www.fckeditor.net/ + * + * "Support Open Source software. What about a donation today?" + * + * File Name: fckspellcheckcommand_gecko.js + * FCKStyleCommand Class: represents the "Spell Check" command. + * (Gecko specific implementation) + * + * File Authors: + * Frederico Caldeira Knabben (fredck@fckeditor.net) + */ + +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 ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ; +} \ No newline at end of file diff --git a/htdocs/includes/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js b/htdocs/includes/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js new file mode 100644 index 00000000000..176d0db7627 --- /dev/null +++ b/htdocs/includes/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js @@ -0,0 +1,63 @@ +/* + * FCKeditor - The text editor for internet + * Copyright (C) 2003-2006 Frederico Caldeira Knabben + * + * Licensed under the terms of the GNU Lesser General Public License: + * http://www.opensource.org/licenses/lgpl-license.php + * + * For further information visit: + * http://www.fckeditor.net/ + * + * "Support Open Source software. What about a donation today?" + * + * File Name: fckspellcheckcommand_ie.js + * FCKStyleCommand Class: represents the "Spell Check" command. + * (IE specific implementation) + * + * File Authors: + * Frederico Caldeira Knabben (fredck@fckeditor.net) + */ + +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 oIeSpell = new ActiveXObject( "ieSpell.ieSpellExtension" ) ; + oIeSpell.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 ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ; +} \ No newline at end of file diff --git a/htdocs/includes/fckeditor/editor/_source/commandclasses/fckstylecommand.js b/htdocs/includes/fckeditor/editor/_source/commandclasses/fckstylecommand.js new file mode 100644 index 00000000000..b4a44a0fd5d --- /dev/null +++ b/htdocs/includes/fckeditor/editor/_source/commandclasses/fckstylecommand.js @@ -0,0 +1,95 @@ +/* + * FCKeditor - The text editor for internet + * Copyright (C) 2003-2006 Frederico Caldeira Knabben + * + * Licensed under the terms of the GNU Lesser General Public License: + * http://www.opensource.org/licenses/lgpl-license.php + * + * For further information visit: + * http://www.fckeditor.net/ + * + * "Support Open Source software. What about a donation today?" + * + * File Name: fckstylecommand.js + * FCKStyleCommand Class: represents the "Style" command. + * + * File Authors: + * Frederico Caldeira Knabben (fredck@fckeditor.net) + */ + +var FCKStyleCommand = function() +{ + this.Name = 'Style' ; + + // Load the Styles defined in the XML file. + this.StylesLoader = new FCKStylesLoader() ; + this.StylesLoader.Load( FCKConfig.StylesXmlPath ) ; + this.Styles = this.StylesLoader.Styles ; +} + +FCKStyleCommand.prototype.Execute = function( styleName, styleComboItem ) +{ + FCKUndo.SaveUndoStep() ; + + if ( styleComboItem.Selected ) + styleComboItem.Style.RemoveFromSelection() ; + else + styleComboItem.Style.ApplyToSelection() ; + + FCKUndo.SaveUndoStep() ; + + FCK.Focus() ; + + FCK.Events.FireEvent( "OnSelectionChange" ) ; +} + +FCKStyleCommand.prototype.GetState = function() +{ + if ( !FCK.EditorDocument ) + return FCK_TRISTATE_DISABLED ; + + var oSelection = FCK.EditorDocument.selection ; + + if ( FCKSelection.GetType() == 'Control' ) + { + var e = FCKSelection.GetSelectedElement() ; + if ( e ) + return this.StylesLoader.StyleGroups[ e.tagName ] ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ; + } + + return FCK_TRISTATE_OFF ; +} + +FCKStyleCommand.prototype.GetActiveStyles = function() +{ + var aActiveStyles = new Array() ; + + if ( FCKSelection.GetType() == 'Control' ) + this._CheckStyle( FCKSelection.GetSelectedElement(), aActiveStyles, false ) ; + else + this._CheckStyle( FCKSelection.GetParentElement(), aActiveStyles, true ) ; + + return aActiveStyles ; +} + +FCKStyleCommand.prototype._CheckStyle = function( element, targetArray, checkParent ) +{ + if ( ! element ) + return ; + + if ( element.nodeType == 1 ) + { + var aStyleGroup = this.StylesLoader.StyleGroups[ element.tagName ] ; + if ( aStyleGroup ) + { + for ( var i = 0 ; i < aStyleGroup.length ; i++ ) + { + if ( aStyleGroup[i].IsEqual( element ) ) + targetArray[ targetArray.length ] = aStyleGroup[i] ; + } + } + } + + if ( checkParent ) + this._CheckStyle( element.parentNode, targetArray, checkParent ) ; +} \ No newline at end of file diff --git a/htdocs/includes/fckeditor/editor/_source/commandclasses/fcktablecommand.js b/htdocs/includes/fckeditor/editor/_source/commandclasses/fcktablecommand.js new file mode 100644 index 00000000000..4237df8f872 --- /dev/null +++ b/htdocs/includes/fckeditor/editor/_source/commandclasses/fcktablecommand.js @@ -0,0 +1,67 @@ +/* + * FCKeditor - The text editor for internet + * Copyright (C) 2003-2006 Frederico Caldeira Knabben + * + * Licensed under the terms of the GNU Lesser General Public License: + * http://www.opensource.org/licenses/lgpl-license.php + * + * For further information visit: + * http://www.fckeditor.net/ + * + * "Support Open Source software. What about a donation today?" + * + * File Name: fcktablecommand.js + * FCKPastePlainTextCommand Class: represents the + * "Paste as Plain Text" command. + * + * File Authors: + * Frederico Caldeira Knabben (fredck@fckeditor.net) + */ + +var FCKTableCommand = function( command ) +{ + this.Name = command ; +} + +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 FCK_TRISTATE_OFF ; +} \ No newline at end of file diff --git a/htdocs/includes/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js b/htdocs/includes/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js new file mode 100644 index 00000000000..11dd5d5e8f7 --- /dev/null +++ b/htdocs/includes/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js @@ -0,0 +1,171 @@ +/* + * FCKeditor - The text editor for internet + * Copyright (C) 2003-2006 Frederico Caldeira Knabben + * + * Licensed under the terms of the GNU Lesser General Public License: + * http://www.opensource.org/licenses/lgpl-license.php + * + * For further information visit: + * http://www.fckeditor.net/ + * + * "Support Open Source software. What about a donation today?" + * + * File Name: fcktextcolorcommand.js + * FCKTextColorCommand Class: represents the text color comand. It shows the + * color selection panel. + * + * File Authors: + * Frederico Caldeira Knabben (fredck@fckeditor.net) + */ + +// FCKTextColorCommand Contructor +// type: can be 'ForeColor' or 'BackColor'. +var FCKTextColorCommand = function( type ) +{ + this.Name = type == 'ForeColor' ? 'TextColor' : 'BGColor' ; + this.Type = type ; + + var oWindow ; + + if ( FCKBrowserInfo.IsIE ) + oWindow = window ; + else if ( FCK.ToolbarSet._IFrame ) + oWindow = FCKTools.GetElementWindow( FCK.ToolbarSet._IFrame ) ; + else + oWindow = window.parent ; + + this._Panel = new FCKPanel( oWindow, 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( panelX, panelY, relElement ) +{ + // We must "cache" the actual panel type to be used in the SetColor method. + FCK._ActiveColorPanelType = this.Type ; + + // Show the Color Panel at the desired position. + this._Panel.Show( panelX, panelY, relElement ) ; +} + +FCKTextColorCommand.prototype.SetColor = function( color ) +{ + if ( FCK._ActiveColorPanelType == 'ForeColor' ) + FCK.ExecuteNamedCommand( 'ForeColor', color ) ; + else if ( FCKBrowserInfo.IsGeckoLike ) + { + if ( FCKBrowserInfo.IsGecko && !FCKConfig.GeckoUseSPAN ) + FCK.EditorDocument.execCommand( 'useCSS', false, false ) ; + + FCK.ExecuteNamedCommand( 'hilitecolor', color ) ; + + if ( FCKBrowserInfo.IsGecko && !FCKConfig.GeckoUseSPAN ) + FCK.EditorDocument.execCommand( 'useCSS', false, true ) ; + } + else + FCK.ExecuteNamedCommand( 'BackColor', color ) ; + + // Delete the "cached" active panel type. + delete FCK._ActiveColorPanelType ; +} + +FCKTextColorCommand.prototype.GetState = function() +{ + return FCK_TRISTATE_OFF ; +} + +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( targetDocument, targetDiv ) +{ + function CreateSelectionDiv() + { + var oDiv = targetDocument.createElement( "DIV" ) ; + oDiv.className = 'ColorDeselected' ; + oDiv.onmouseover = FCKTextColorCommand_OnMouseOver ; + oDiv.onmouseout = FCKTextColorCommand_OnMouseOut ; + + return oDiv ; + } + + // Create the Table that will hold all colors. + var oTable = targetDiv.appendChild( targetDocument.createElement( "TABLE" ) ) ; + oTable.className = 'ForceBaseFont' ; // Firefox 1.5 Bug. + oTable.style.tableLayout = 'fixed' ; + oTable.cellPadding = 0 ; + oTable.cellSpacing = 0 ; + oTable.border = 0 ; + oTable.width = 150 ; + + var oCell = oTable.insertRow(-1).insertCell(-1) ; + oCell.colSpan = 8 ; + + // Create the Button for the "Automatic" color selection. + var oDiv = oCell.appendChild( CreateSelectionDiv() ) ; + oDiv.innerHTML = + '
| ' + FCKLang.ColorAutomatic + ' | \ +
| ' + FCKLang.ColorMoreColors + ' |
' ) + sXHTML = '' ; + else + sXHTML = FCKXHtml.GetXHTML( this.EditorDocument.body, false, format ) ; + } + + if ( FCKBrowserInfo.IsIE ) + sXHTML = sXHTML.replace( FCKRegexLib.ToReplace, '$1' ) ; + + if ( FCK.DocTypeDeclaration && FCK.DocTypeDeclaration.length > 0 ) + sXHTML = FCK.DocTypeDeclaration + '\n' + sXHTML ; + + if ( FCK.XmlDeclaration && FCK.XmlDeclaration.length > 0 ) + sXHTML = FCK.XmlDeclaration + '\n' + sXHTML ; + + return FCKConfig.ProtectedSource.Revert( sXHTML ) ; +} + +FCK.UpdateLinkedField = function() +{ + FCK.LinkedField.value = FCK.GetXHTML( FCKConfig.FormatOutput ) ; + FCK.Events.FireEvent( 'OnAfterLinkedFieldUpdate' ) ; +} + +FCK.RegisteredDoubleClickHandlers = new Object() ; + +FCK.OnDoubleClick = function( element ) +{ + var oHandler = FCK.RegisteredDoubleClickHandlers[ element.tagName ] ; + if ( oHandler ) + oHandler( element ) ; +} + +// Register objects that can handle double click operations. +FCK.RegisterDoubleClickHandler = function( handlerFunction, tag ) +{ + FCK.RegisteredDoubleClickHandlers[ tag.toUpperCase() ] = handlerFunction ; +} + +FCK.OnAfterSetHTML = function() +{ + FCKDocumentProcessor.Process( FCK.EditorDocument ) ; + FCK.Events.FireEvent( 'OnAfterSetHTML' ) ; +} + +// Saves URLs on links and images on special attributes, so they don't change when +// moving around. +FCK.ProtectUrls = function( html ) +{ + // href + html = html.replace( FCKRegexLib.ProtectUrlsAApo , '$1$2$3$2 _fcksavedurl=$2$3$2' ) ; + html = html.replace( FCKRegexLib.ProtectUrlsANoApo , '$1$2 _fcksavedurl="$2"' ) ; + + //
]*>)([\s\S]*?)(<\/PRE>)/gi ;
+}
+
+FCKCodeFormatter._ProtectData = function( outer, opener, data, closer )
+{
+ return opener + '___FCKpd___' + FCKCodeFormatter.ProtectedData.AddItem( data ) + closer ;
+}
+
+FCKCodeFormatter.Format = function( html )
+{
+ if ( !this.Regex )
+ this.Init() ;
+
+ // Protected content that remain untouched during the
+ // process go in the following array.
+ FCKCodeFormatter.ProtectedData = new Array() ;
+
+ var sFormatted = html.replace( this.Regex.ProtectedTags, FCKCodeFormatter._ProtectData ) ;
+
+ // Line breaks.
+ sFormatted = sFormatted.replace( this.Regex.BlocksOpener, '\n$&' ) ; ;
+ sFormatted = sFormatted.replace( this.Regex.BlocksCloser, '$&\n' ) ;
+ sFormatted = sFormatted.replace( this.Regex.NewLineTags, '$&\n' ) ;
+ sFormatted = sFormatted.replace( this.Regex.MainTags, '\n$&\n' ) ;
+
+ // Indentation.
+ var sIndentation = '' ;
+
+ var asLines = sFormatted.split( this.Regex.LineSplitter ) ;
+ sFormatted = '' ;
+
+ for ( var i = 0 ; i < asLines.length ; i++ )
+ {
+ var sLine = asLines[i] ;
+
+ if ( sLine.length == 0 )
+ continue ;
+
+ if ( this.Regex.DecreaseIndent.test( sLine ) )
+ sIndentation = sIndentation.replace( this.Regex.FormatIndentatorRemove, '' ) ;
+
+ sFormatted += sIndentation + sLine + '\n' ;
+
+ if ( this.Regex.IncreaseIndent.test( sLine ) )
+ sIndentation += FCKConfig.FormatIndentator ;
+ }
+
+ // Now we put back the protected data.
+ for ( var i = 0 ; i < FCKCodeFormatter.ProtectedData.length ; i++ )
+ {
+ var oRegex = new RegExp( '___FCKpd___' + i ) ;
+ sFormatted = sFormatted.replace( oRegex, FCKCodeFormatter.ProtectedData[i].replace( /\$/g, '$$$$' ) ) ;
+ }
+
+ return sFormatted.trim() ;
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fckcommands.js b/htdocs/includes/fckeditor/editor/_source/internals/fckcommands.js
new file mode 100644
index 00000000000..0ad66647a63
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fckcommands.js
@@ -0,0 +1,126 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckcommands.js
+ * Define all commands available in the editor.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKCommands = FCK.Commands = new Object() ;
+FCKCommands.LoadedCommands = new Object() ;
+
+FCKCommands.RegisterCommand = function( commandName, command )
+{
+ this.LoadedCommands[ commandName ] = command ;
+}
+
+FCKCommands.GetCommand = function( commandName )
+{
+ var oCommand = FCKCommands.LoadedCommands[ commandName ] ;
+
+ if ( oCommand )
+ return oCommand ;
+
+ switch ( commandName )
+ {
+ case 'DocProps' : oCommand = new FCKDialogCommand( 'DocProps' , FCKLang.DocProps , 'dialog/fck_docprops.html' , 400, 390, FCKCommands.GetFullPageState ) ; break ;
+ case 'Templates' : oCommand = new FCKDialogCommand( 'Templates' , FCKLang.DlgTemplatesTitle , 'dialog/fck_template.html' , 380, 450 ) ; break ;
+ case 'Link' : oCommand = new FCKDialogCommand( 'Link' , FCKLang.DlgLnkWindowTitle , 'dialog/fck_link.html' , 400, 330, FCK.GetNamedCommandState, 'CreateLink' ) ; break ;
+ case 'Unlink' : oCommand = new FCKUnlinkCommand() ; break ;
+ case 'Anchor' : oCommand = new FCKDialogCommand( 'Anchor' , FCKLang.DlgAnchorTitle , 'dialog/fck_anchor.html' , 370, 170 ) ; break ;
+ case 'BulletedList' : oCommand = new FCKDialogCommand( 'BulletedList', FCKLang.BulletedListProp , 'dialog/fck_listprop.html' , 370, 170 ) ; break ;
+ case 'NumberedList' : oCommand = new FCKDialogCommand( 'NumberedList', FCKLang.NumberedListProp , 'dialog/fck_listprop.html' , 370, 170 ) ; break ;
+ case 'About' : oCommand = new FCKDialogCommand( 'About' , FCKLang.About , 'dialog/fck_about.html' , 400, 330 ) ; break ;
+
+ case 'Find' : oCommand = new FCKDialogCommand( 'Find' , FCKLang.DlgFindTitle , 'dialog/fck_find.html' , 340, 170 ) ; break ;
+ case 'Replace' : oCommand = new FCKDialogCommand( 'Replace' , FCKLang.DlgReplaceTitle , 'dialog/fck_replace.html' , 340, 200 ) ; break ;
+
+ case 'Image' : oCommand = new FCKDialogCommand( 'Image' , FCKLang.DlgImgTitle , 'dialog/fck_image.html' , 450, 400 ) ; break ;
+ case 'Flash' : oCommand = new FCKDialogCommand( 'Flash' , FCKLang.DlgFlashTitle , 'dialog/fck_flash.html' , 450, 400 ) ; break ;
+ case 'SpecialChar' : oCommand = new FCKDialogCommand( 'SpecialChar', FCKLang.DlgSpecialCharTitle , 'dialog/fck_specialchar.html' , 400, 320 ) ; break ;
+ case 'Smiley' : oCommand = new FCKDialogCommand( 'Smiley' , FCKLang.DlgSmileyTitle , 'dialog/fck_smiley.html' , FCKConfig.SmileyWindowWidth, FCKConfig.SmileyWindowHeight ) ; break ;
+ case 'Table' : oCommand = new FCKDialogCommand( 'Table' , FCKLang.DlgTableTitle , 'dialog/fck_table.html' , 450, 250 ) ; break ;
+ case 'TableProp' : oCommand = new FCKDialogCommand( 'Table' , FCKLang.DlgTableTitle , 'dialog/fck_table.html?Parent', 400, 250 ) ; break ;
+ case 'TableCellProp': oCommand = new FCKDialogCommand( 'TableCell' , FCKLang.DlgCellTitle , 'dialog/fck_tablecell.html' , 500, 250 ) ; break ;
+ case 'UniversalKey' : oCommand = new FCKDialogCommand( 'UniversalKey', FCKLang.UniversalKeyboard , 'dialog/fck_universalkey.html', 415, 300 ) ; break ;
+
+ case 'Style' : oCommand = new FCKStyleCommand() ; break ;
+
+ case 'FontName' : oCommand = new FCKFontNameCommand() ; break ;
+ case 'FontSize' : oCommand = new FCKFontSizeCommand() ; break ;
+ case 'FontFormat' : oCommand = new FCKFormatBlockCommand() ; break ;
+
+ case 'Source' : oCommand = new FCKSourceCommand() ; break ;
+ case 'Preview' : oCommand = new FCKPreviewCommand() ; break ;
+ case 'Save' : oCommand = new FCKSaveCommand() ; break ;
+ case 'NewPage' : oCommand = new FCKNewPageCommand() ; break ;
+ case 'PageBreak' : oCommand = new FCKPageBreakCommand() ; break ;
+
+ case 'TextColor' : oCommand = new FCKTextColorCommand('ForeColor') ; break ;
+ case 'BGColor' : oCommand = new FCKTextColorCommand('BackColor') ; break ;
+
+ case 'PasteText' : oCommand = new FCKPastePlainTextCommand() ; break ;
+ case 'PasteWord' : oCommand = new FCKPasteWordCommand() ; break ;
+
+ case 'TableInsertRow' : oCommand = new FCKTableCommand('TableInsertRow') ; break ;
+ case 'TableDeleteRows' : oCommand = new FCKTableCommand('TableDeleteRows') ; break ;
+ case 'TableInsertColumn' : oCommand = new FCKTableCommand('TableInsertColumn') ; break ;
+ case 'TableDeleteColumns' : oCommand = new FCKTableCommand('TableDeleteColumns') ; break ;
+ case 'TableInsertCell' : oCommand = new FCKTableCommand('TableInsertCell') ; break ;
+ case 'TableDeleteCells' : oCommand = new FCKTableCommand('TableDeleteCells') ; break ;
+ case 'TableMergeCells' : oCommand = new FCKTableCommand('TableMergeCells') ; break ;
+ case 'TableSplitCell' : oCommand = new FCKTableCommand('TableSplitCell') ; break ;
+ case 'TableDelete' : oCommand = new FCKTableCommand('TableDelete') ; break ;
+
+ case 'Form' : oCommand = new FCKDialogCommand( 'Form' , FCKLang.Form , 'dialog/fck_form.html' , 380, 230 ) ; break ;
+ case 'Checkbox' : oCommand = new FCKDialogCommand( 'Checkbox' , FCKLang.Checkbox , 'dialog/fck_checkbox.html' , 380, 230 ) ; break ;
+ case 'Radio' : oCommand = new FCKDialogCommand( 'Radio' , FCKLang.RadioButton , 'dialog/fck_radiobutton.html' , 380, 230 ) ; break ;
+ case 'TextField' : oCommand = new FCKDialogCommand( 'TextField' , FCKLang.TextField , 'dialog/fck_textfield.html' , 380, 230 ) ; break ;
+ case 'Textarea' : oCommand = new FCKDialogCommand( 'Textarea' , FCKLang.Textarea , 'dialog/fck_textarea.html' , 380, 230 ) ; break ;
+ case 'HiddenField' : oCommand = new FCKDialogCommand( 'HiddenField', FCKLang.HiddenField , 'dialog/fck_hiddenfield.html' , 380, 230 ) ; break ;
+ case 'Button' : oCommand = new FCKDialogCommand( 'Button' , FCKLang.Button , 'dialog/fck_button.html' , 380, 230 ) ; break ;
+ case 'Select' : oCommand = new FCKDialogCommand( 'Select' , FCKLang.SelectionField, 'dialog/fck_select.html' , 400, 380 ) ; break ;
+ case 'ImageButton' : oCommand = new FCKDialogCommand( 'ImageButton', FCKLang.ImageButton , 'dialog/fck_image.html?ImageButton', 450, 400 ) ; break ;
+
+ case 'SpellCheck' : oCommand = new FCKSpellCheckCommand() ; break ;
+ case 'FitWindow' : oCommand = new FCKFitWindow() ; break ;
+
+ case 'Undo' : oCommand = new FCKUndoCommand() ; break ;
+ case 'Redo' : oCommand = new FCKRedoCommand() ; break ;
+
+ // Generic Undefined command (usually used when a command is under development).
+ case 'Undefined' : oCommand = new FCKUndefinedCommand() ; break ;
+
+ // By default we assume that it is a named command.
+ default:
+ if ( FCKRegexLib.NamedCommands.test( commandName ) )
+ oCommand = new FCKNamedCommand( commandName ) ;
+ else
+ {
+ alert( FCKLang.UnknownCommand.replace( /%1/g, commandName ) ) ;
+ return null ;
+ }
+ }
+
+ FCKCommands.LoadedCommands[ commandName ] = oCommand ;
+
+ return oCommand ;
+}
+
+// Gets the state of the "Document Properties" button. It must be enabled only
+// when "Full Page" editing is available.
+FCKCommands.GetFullPageState = function()
+{
+ return FCKConfig.FullPage ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ;
+}
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fckconfig.js b/htdocs/includes/fckeditor/editor/_source/internals/fckconfig.js
new file mode 100644
index 00000000000..793f5a4b9a0
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fckconfig.js
@@ -0,0 +1,175 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckconfig.js
+ * Creates and initializes the FCKConfig object.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKConfig = FCK.Config = new Object() ;
+
+/*
+ For the next major version (probably 3.0) we should move all this stuff to
+ another dedicated object and leave FCKConfig as a holder object for settings only).
+*/
+
+// Editor Base Path
+if ( document.location.protocol == 'file:' )
+{
+ FCKConfig.BasePath = unescape( 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\/$/, '' ) ;
+
+// There is a bug in Gecko. If the editor is hidden on startup, an error is
+// thrown when trying to get the screen dimentions.
+try
+{
+ FCKConfig.ScreenWidth = screen.width ;
+ FCKConfig.ScreenHeight = screen.height ;
+}
+catch (e)
+{
+ FCKConfig.ScreenWidth = 800 ;
+ FCKConfig.ScreenHeight = 600 ;
+}
+
+// Override the actual configuration values with the values passed throw the
+// hidden field "___Config".
+FCKConfig.ProcessHiddenField = function()
+{
+ this.PageConfig = new Object() ;
+
+ // Get the hidden field.
+ var oConfigField = window.parent.document.getElementById( FCK.Name + '___Config' ) ;
+
+ // Do nothing if the config field was not defined.
+ if ( ! oConfigField ) return ;
+
+ var aCouples = oConfigField.value.split('&') ;
+
+ for ( var i = 0 ; i < aCouples.length ; i++ )
+ {
+ if ( aCouples[i].length == 0 )
+ continue ;
+
+ var aConfig = aCouples[i].split( '=' ) ;
+ var sKey = unescape( aConfig[0] ) ;
+ var sVal = unescape( aConfig[1] ) ;
+
+ if ( sKey == 'CustomConfigurationsPath' ) // The Custom Config File path must be loaded immediately.
+ FCKConfig[ sKey ] = sVal ;
+
+ else if ( sVal.toLowerCase() == "true" ) // If it is a boolean TRUE.
+ this.PageConfig[ sKey ] = true ;
+
+ else if ( sVal.toLowerCase() == "false" ) // If it is a boolean FALSE.
+ this.PageConfig[ sKey ] = false ;
+
+ else if ( ! isNaN( sVal ) ) // If it is a number.
+ this.PageConfig[ sKey ] = parseInt( sVal ) ;
+
+ else // In any other case it is a string.
+ this.PageConfig[ sKey ] = sVal ;
+ }
+}
+
+function FCKConfig_LoadPageConfig()
+{
+ var oPageConfig = FCKConfig.PageConfig ;
+ for ( var sKey in oPageConfig )
+ FCKConfig[ sKey ] = oPageConfig[ sKey ] ;
+}
+
+function FCKConfig_PreProcess()
+{
+ var oConfig = FCKConfig ;
+
+ // Force debug mode if fckdebug=true in the QueryString (main page).
+ if ( oConfig.AllowQueryStringDebug && (/fckdebug=true/i).test( window.top.location.search ) )
+ oConfig.Debug = true ;
+
+ // Certifies that the "PluginsPath" configuration ends with a slash.
+ if ( !oConfig.PluginsPath.endsWith('/') )
+ oConfig.PluginsPath += '/' ;
+
+ // EditorAreaCSS accepts an array of paths or a single path (as string).
+ // In the last case, transform it in an array.
+ if ( typeof( oConfig.EditorAreaCSS ) == 'string' )
+ oConfig.EditorAreaCSS = [ oConfig.EditorAreaCSS ] ;
+}
+
+// Define toolbar sets collection.
+FCKConfig.ToolbarSets = new Object() ;
+
+// Defines the plugins collection.
+FCKConfig.Plugins = new Object() ;
+FCKConfig.Plugins.Items = new Array() ;
+
+FCKConfig.Plugins.Add = function( name, langs, path )
+{
+ FCKConfig.Plugins.Items.AddItem( [name, langs, path] ) ;
+}
+
+// FCKConfig.ProtectedSource: object that holds a collection of Regular
+// Expressions that defined parts of the raw HTML that must remain untouched
+// like custom tags, scripts, server side code, etc...
+FCKConfig.ProtectedSource = new Object() ;
+FCKConfig.ProtectedSource.RegexEntries = new Array() ;
+
+FCKConfig.ProtectedSource.Add = function( regexPattern )
+{
+ this.RegexEntries.AddItem( regexPattern ) ;
+}
+
+FCKConfig.ProtectedSource.Protect = function( html )
+{
+ function _Replace( protectedSource )
+ {
+ var index = FCKTempBin.AddElement( protectedSource ) ;
+ return '' ;
+ }
+
+ for ( var i = 0 ; i < this.RegexEntries.length ; i++ )
+ {
+ html = html.replace( this.RegexEntries[i], _Replace ) ;
+ }
+
+ return html ;
+}
+
+
+FCKConfig.ProtectedSource.Revert = function( html, clearBin )
+{
+ function _Replace( m, opener, index )
+ {
+ var protectedValue = clearBin ? FCKTempBin.RemoveElement( index ) : FCKTempBin.Elements[ index ] ;
+ // There could be protected source inside another one.
+ return FCKConfig.ProtectedSource.Revert( protectedValue, clearBin ) ;
+ }
+
+ return html.replace( /(<|<)!--\{PS..(\d+)\}--(>|>)/g, _Replace ) ;
+}
+
+// First of any other protection, we must protect all comments to avoid
+// loosing them (of course, IE related).
+FCKConfig.ProtectedSource.Add( //g ) ;
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fckdebug.js b/htdocs/includes/fckeditor/editor/_source/internals/fckdebug.js
new file mode 100644
index 00000000000..78b1b352174
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fckdebug.js
@@ -0,0 +1,77 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckdebug.js
+ * Debug window control and operations.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKDebug = new Object() ;
+
+FCKDebug.Output = function( message, color, noParse )
+{
+ if ( ! FCKConfig.Debug ) return ;
+
+ if ( !noParse && message != null && isNaN( message ) )
+ message = message.replace(/' ;
+
+ for (var prop in anyObject)
+ {
+ try
+ {
+ var sVal = anyObject[ prop ] ? anyObject[ prop ] + '' : '[null]' ;
+ message += '' + prop + ' : ' + sVal.replace(/' ;
+ }
+ catch (e)
+ {
+ try
+ {
+ message += '' + prop + ' : [' + typeof( anyObject[ prop ] ) + ']
' ;
+ }
+ catch (e)
+ {
+ message += '' + prop + ' : [-error-]
' ;
+ }
+ }
+ }
+
+ message += '
' ;
+ } else
+ message = 'OutputObject : Object is "null".' ;
+
+ FCKDebug.Output( message, color, true ) ;
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fckdialog.js b/htdocs/includes/fckeditor/editor/_source/internals/fckdialog.js
new file mode 100644
index 00000000000..c84f13d1944
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fckdialog.js
@@ -0,0 +1,34 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckdialog.js
+ * Dialog windows operations.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKDialog = new Object() ;
+
+// This method opens a dialog window using the standard dialog template.
+FCKDialog.OpenDialog = function( dialogName, dialogTitle, dialogPage, width, height, customValue, parentWindow, resizable )
+{
+ // Setup the dialog info.
+ var oDialogInfo = new Object() ;
+ oDialogInfo.Title = dialogTitle ;
+ oDialogInfo.Page = dialogPage ;
+ oDialogInfo.Editor = window ;
+ oDialogInfo.CustomValue = customValue ; // Optional
+
+ var sUrl = FCKConfig.BasePath + 'fckdialog.html' ;
+ this.Show( oDialogInfo, dialogName, sUrl, width, height, parentWindow, resizable ) ;
+}
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fckdialog_gecko.js b/htdocs/includes/fckeditor/editor/_source/internals/fckdialog_gecko.js
new file mode 100644
index 00000000000..ce7b4b776fc
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fckdialog_gecko.js
@@ -0,0 +1,101 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckdialog_gecko.js
+ * Dialog windows operations. (Gecko specific implementations)
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKDialog.Show = function( dialogInfo, dialogName, pageUrl, dialogWidth, dialogHeight, parentWindow, resizable )
+{
+ var iTop = (FCKConfig.ScreenHeight - dialogHeight) / 2 ;
+ var iLeft = (FCKConfig.ScreenWidth - dialogWidth) / 2 ;
+
+ var sOption = "location=no,menubar=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,modal=yes,alwaysRaised=yes" +
+ ",resizable=" + ( resizable ? 'yes' : 'no' ) +
+ ",width=" + dialogWidth +
+ ",height=" + dialogHeight +
+ ",top=" + iTop +
+ ",left=" + iLeft ;
+
+ if ( !parentWindow )
+ parentWindow = window ;
+
+ FCKFocusManager.Lock() ;
+
+ var oWindow = parentWindow.open( '', 'FCKeditorDialog_' + dialogName, sOption, true ) ;
+
+ if ( !oWindow )
+ {
+ alert( FCKLang.DialogBlocked ) ;
+ FCKFocusManager.Unlock() ;
+ return ;
+ }
+
+ oWindow.moveTo( iLeft, iTop ) ;
+ oWindow.resizeTo( dialogWidth, dialogHeight ) ;
+ oWindow.focus() ;
+ oWindow.location.href = pageUrl ;
+
+ oWindow.dialogArguments = dialogInfo ;
+
+ // On some Gecko browsers (probably over slow connections) the
+ // "dialogArguments" are not set to the target window so we must
+ // put it in the opener window so it can be used by the target one.
+ parentWindow.FCKLastDialogInfo = dialogInfo ;
+
+ this.Window = oWindow ;
+
+ // Try/Catch must be used to avoit an error when using a frameset
+ // on a different domain:
+ // "Permission denied to get property Window.releaseEvents".
+ try
+ {
+ window.top.captureEvents( Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS ) ;
+ 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()
+{
+ // It is strange, but we have to check the FCKDialog existence to avoid a
+ // random error: "FCKDialog is not defined".
+ if ( typeof( FCKDialog ) != "object" )
+ return false ;
+
+ if ( FCKDialog.Window && !FCKDialog.Window.closed )
+ FCKDialog.Window.focus() ;
+ else
+ {
+ // Try/Catch must be used to avoit an error when using a frameset
+ // on a different domain:
+ // "Permission denied to get property Window.releaseEvents".
+ try
+ {
+ window.top.releaseEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS) ;
+ 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 ;
+}
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fckdialog_ie.js b/htdocs/includes/fckeditor/editor/_source/internals/fckdialog_ie.js
new file mode 100644
index 00000000000..2de32396340
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fckdialog_ie.js
@@ -0,0 +1,33 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckdialog_ie.js
+ * Dialog windows operations. (IE specific implementations)
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKDialog.Show = function( dialogInfo, dialogName, pageUrl, dialogWidth, dialogHeight, parentWindow )
+{
+ if ( !parentWindow )
+ parentWindow = window ;
+
+ FCKFocusManager.Lock() ;
+
+ var oReturn = parentWindow.showModalDialog( pageUrl, dialogInfo, "dialogWidth:" + dialogWidth + "px;dialogHeight:" + dialogHeight + "px;help:no;scroll:no;status:no") ;
+
+ if ( !oReturn )
+ alert( FCKLang.DialogBlocked ) ;
+
+ FCKFocusManager.Unlock() ;
+}
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fckdocumentprocessor.js b/htdocs/includes/fckeditor/editor/_source/internals/fckdocumentprocessor.js
new file mode 100644
index 00000000000..2b59faec6bd
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fckdocumentprocessor.js
@@ -0,0 +1,230 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckdocumentprocessor.js
+ * Advanced document processors.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKDocumentProcessor = new Object() ;
+FCKDocumentProcessor._Items = new Array() ;
+
+FCKDocumentProcessor.AppendNew = function()
+{
+ var oNewItem = new Object() ;
+ this._Items.AddItem( oNewItem ) ;
+ return oNewItem ;
+}
+
+FCKDocumentProcessor.Process = function( document )
+{
+ var oProcessor, i = 0 ;
+ while( ( oProcessor = this._Items[i++] ) )
+ oProcessor.ProcessDocument( document ) ;
+}
+
+var FCKDocumentProcessor_CreateFakeImage = function( fakeClass, realElement )
+{
+ var oImg = FCK.EditorDocument.createElement( 'IMG' ) ;
+ oImg.className = fakeClass ;
+ oImg.src = FCKConfig.FullBasePath + 'images/spacer.gif' ;
+ oImg.setAttribute( '_fckfakelement', 'true', 0 ) ;
+ oImg.setAttribute( '_fckrealelement', FCKTempBin.AddElement( realElement ), 0 ) ;
+ return oImg ;
+}
+
+// Link Anchors
+var FCKAnchorsProcessor = FCKDocumentProcessor.AppendNew() ;
+FCKAnchorsProcessor.ProcessDocument = function( document )
+{
+ var aLinks = document.getElementsByTagName( 'A' ) ;
+
+ var oLink ;
+ var i = aLinks.length - 1 ;
+ while ( i >= 0 && ( oLink = aLinks[i--] ) )
+ {
+ // If it is anchor.
+ if ( oLink.name.length > 0 && ( !oLink.getAttribute('href') || oLink.getAttribute('href').length == 0 ) )
+ {
+ var oImg = FCKDocumentProcessor_CreateFakeImage( 'FCK__Anchor', oLink.cloneNode(true) ) ;
+ oImg.setAttribute( '_fckanchor', 'true', 0 ) ;
+
+ oLink.parentNode.insertBefore( oImg, oLink ) ;
+ oLink.parentNode.removeChild( oLink ) ;
+ }
+ }
+}
+
+// Page Breaks
+var FCKPageBreaksProcessor = FCKDocumentProcessor.AppendNew() ;
+FCKPageBreaksProcessor.ProcessDocument = function( document )
+{
+ var aDIVs = document.getElementsByTagName( 'DIV' ) ;
+
+ var eDIV ;
+ var i = aDIVs.length - 1 ;
+ while ( i >= 0 && ( eDIV = aDIVs[i--] ) )
+ {
+ if ( eDIV.style.pageBreakAfter == 'always' && eDIV.childNodes.length == 1 && eDIV.childNodes[0].style && eDIV.childNodes[0].style.display == 'none' )
+ {
+ var oFakeImage = FCKDocumentProcessor_CreateFakeImage( 'FCK__PageBreak', eDIV.cloneNode(true) ) ;
+
+ eDIV.parentNode.insertBefore( oFakeImage, eDIV ) ;
+ eDIV.parentNode.removeChild( eDIV ) ;
+ }
+ }
+/*
+ var aCenters = document.getElementsByTagName( 'CENTER' ) ;
+
+ var oCenter ;
+ var i = aCenters.length - 1 ;
+ while ( i >= 0 && ( oCenter = aCenters[i--] ) )
+ {
+ if ( oCenter.style.pageBreakAfter == 'always' && oCenter.innerHTML.trim().length == 0 )
+ {
+ var oFakeImage = FCKDocumentProcessor_CreateFakeImage( 'FCK__PageBreak', oCenter.cloneNode(true) ) ;
+
+ oCenter.parentNode.insertBefore( oFakeImage, oCenter ) ;
+ oCenter.parentNode.removeChild( oCenter ) ;
+ }
+ }
+*/
+}
+
+// Flash Embeds.
+var FCKFlashProcessor = FCKDocumentProcessor.AppendNew() ;
+FCKFlashProcessor.ProcessDocument = function( document )
+{
+ /*
+ Sample code:
+ This is some sample text. You are using FCKeditor.
+ */
+
+ var aEmbeds = document.getElementsByTagName( 'EMBED' ) ;
+
+ var oEmbed ;
+ var i = aEmbeds.length - 1 ;
+ while ( i >= 0 && ( oEmbed = aEmbeds[i--] ) )
+ {
+ if ( oEmbed.src.endsWith( '.swf', true ) )
+ {
+ var oCloned = oEmbed.cloneNode( true ) ;
+
+ // On IE, some properties are not getting clonned properly, so we
+ // must fix it. Thanks to Alfonso Martinez.
+ if ( FCKBrowserInfo.IsIE )
+ {
+ var oAtt ;
+ if ( oAtt = oEmbed.getAttribute( 'scale' ) ) oCloned.setAttribute( 'scale', oAtt ) ;
+ if ( oAtt = oEmbed.getAttribute( 'play' ) ) oCloned.setAttribute( 'play', oAtt ) ;
+ if ( oAtt = oEmbed.getAttribute( 'loop' ) ) oCloned.setAttribute( 'loop', oAtt ) ;
+ if ( oAtt = oEmbed.getAttribute( 'menu' ) ) oCloned.setAttribute( 'menu', oAtt ) ;
+ if ( oAtt = oEmbed.getAttribute( 'wmode' ) ) oCloned.setAttribute( 'wmode', oAtt ) ;
+ if ( oAtt = oEmbed.getAttribute( 'quality' ) ) oCloned.setAttribute( 'quality', oAtt ) ;
+ }
+
+ var oImg = FCKDocumentProcessor_CreateFakeImage( 'FCK__Flash', oCloned ) ;
+ oImg.setAttribute( '_fckflash', 'true', 0 ) ;
+
+ FCKFlashProcessor.RefreshView( oImg, oEmbed ) ;
+
+ oEmbed.parentNode.insertBefore( oImg, oEmbed ) ;
+ oEmbed.parentNode.removeChild( oEmbed ) ;
+
+// oEmbed.setAttribute( '_fckdelete', 'true', 0) ;
+// oEmbed.style.display = 'none' ;
+// oEmbed.hidden = true ;
+ }
+ }
+}
+
+FCKFlashProcessor.RefreshView = function( placholderImage, originalEmbed )
+{
+ if ( originalEmbed.width > 0 )
+ placholderImage.style.width = FCKTools.ConvertHtmlSizeToStyle( originalEmbed.width ) ;
+
+ if ( originalEmbed.height > 0 )
+ placholderImage.style.height = FCKTools.ConvertHtmlSizeToStyle( originalEmbed.height ) ;
+}
+
+FCK.GetRealElement = function( fakeElement )
+{
+ var e = FCKTempBin.Elements[ fakeElement.getAttribute('_fckrealelement') ] ;
+
+ if ( fakeElement.getAttribute('_fckflash') )
+ {
+ if ( fakeElement.style.width.length > 0 )
+ e.width = FCKTools.ConvertStyleSizeToHtml( fakeElement.style.width ) ;
+
+ if ( fakeElement.style.height.length > 0 )
+ e.height = FCKTools.ConvertStyleSizeToHtml( fakeElement.style.height ) ;
+ }
+
+ return e ;
+}
+
+// START iCM MODIFICATIONS
+/*
+var FCKTablesProcessor = FCKDocumentProcessor.AppendNew() ;
+FCKTablesProcessor.ProcessDocument = function( document )
+{
+ FCKTablesProcessor.CheckTablesNesting( document ) ;
+}
+
+// Ensure that tables are not incorrectly nested within P, H1, H2, etc tags
+FCKTablesProcessor.CheckTablesNesting = function( document )
+{
+ var aTables = document.getElementsByTagName( "TABLE" ) ;
+ var oParentNode ;
+
+ for ( var i=0; i= 5 )
+ {
+ sUserLang = sUserLang.substr(0,5) ;
+ if ( this.AvailableLanguages[sUserLang] ) return sUserLang ;
+ }
+
+ // If the user's browser is set to, for example, "pt-br" but only the
+ // "pt" language file is available then get that file.
+ if ( sUserLang.length >= 2 )
+ {
+ sUserLang = sUserLang.substr(0,2) ;
+ if ( this.AvailableLanguages[sUserLang] ) return sUserLang ;
+ }
+ }
+
+ return this.DefaultLanguage ;
+}
+
+FCKLanguageManager.TranslateElements = function( targetDocument, tag, propertyToSet, encode )
+{
+ var e = targetDocument.getElementsByTagName(tag) ;
+ var sKey, s ;
+ for ( var i = 0 ; i < e.length ; i++ )
+ {
+ if ( sKey = e[i].getAttribute( 'fckLang' ) )
+ {
+ if ( s = FCKLang[ sKey ] )
+ {
+ if ( encode )
+ s = FCKTools.HTMLEncode( s ) ;
+ eval( 'e[i].' + propertyToSet + ' = s' ) ;
+ }
+ }
+ }
+}
+
+FCKLanguageManager.TranslatePage = function( targetDocument )
+{
+ this.TranslateElements( targetDocument, 'INPUT', 'value' ) ;
+ this.TranslateElements( targetDocument, 'SPAN', 'innerHTML' ) ;
+ this.TranslateElements( targetDocument, 'LABEL', 'innerHTML' ) ;
+ this.TranslateElements( targetDocument, 'OPTION', 'innerHTML', true ) ;
+}
+
+FCKLanguageManager.Initialize = function()
+{
+ if ( this.AvailableLanguages[ FCKConfig.DefaultLanguage ] )
+ this.DefaultLanguage = FCKConfig.DefaultLanguage ;
+ else
+ this.DefaultLanguage = 'en' ;
+
+ this.ActiveLanguage = new Object() ;
+ this.ActiveLanguage.Code = this.GetActiveLanguage() ;
+ this.ActiveLanguage.Name = this.AvailableLanguages[ this.ActiveLanguage.Code ] ;
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fcknamespace.js b/htdocs/includes/fckeditor/editor/_source/internals/fcknamespace.js
new file mode 100644
index 00000000000..f3da5d2f6ed
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fcknamespace.js
@@ -0,0 +1,27 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fcknamespace.js
+ * This file declares the namespace (object holder) where the common editor
+ * objects and classes are defined.
+ * The namespace is located in the page the editor is running on, so it is
+ * shared by all editor instances.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var NS ;
+
+if ( !( NS = window.parent.__FCKeditorNS ) )
+ NS = window.parent.__FCKeditorNS = new Object() ;
+
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fckplugins.js b/htdocs/includes/fckeditor/editor/_source/internals/fckplugins.js
new file mode 100644
index 00000000000..1e6ff760c63
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fckplugins.js
@@ -0,0 +1,42 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckplugins.js
+ * Defines the FCKPlugins object that is responsible for loading the Plugins.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKPlugins = FCK.Plugins = new Object() ;
+FCKPlugins.ItemsCount = 0 ;
+FCKPlugins.Items = new Object() ;
+
+FCKPlugins.Load = function()
+{
+ var oItems = FCKPlugins.Items ;
+
+ // build the plugins collection.
+ for ( var i = 0 ; i < FCKConfig.Plugins.Items.length ; i++ )
+ {
+ var oItem = FCKConfig.Plugins.Items[i] ;
+ var oPlugin = oItems[ oItem[0] ] = new FCKPlugin( oItem[0], oItem[1], oItem[2] ) ;
+ FCKPlugins.ItemsCount++ ;
+ }
+
+ // Load all items in the plugins collection.
+ for ( var s in oItems )
+ oItems[s].Load() ;
+
+ // This is a self destroyable function (must be called once).
+ FCKPlugins.Load = null ;
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fckregexlib.js b/htdocs/includes/fckeditor/editor/_source/internals/fckregexlib.js
new file mode 100644
index 00000000000..1d47225bb48
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fckregexlib.js
@@ -0,0 +1,100 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckregexlib.js
+ * These are some Regular Expresions used by the editor.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKRegexLib = new Object() ;
+
+// This is the Regular expression used by the SetHTML method for the "'" entity.
+FCKRegexLib.AposEntity = /'/gi ;
+
+// Used by the Styles combo to identify styles that can't be applied to text.
+FCKRegexLib.ObjectElements = /^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i ;
+
+// START iCM MODIFICATIONS
+// Added TABLE and CAPTION to the block elements for ENTER key handling
+// Block Elements.
+/*
+FCKRegexLib.BlockElements = /^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TD|TABLE|CAPTION)$/i ;
+*/
+// END iCM MODIFICATIONS
+FCKRegexLib.BlockElements = /^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TD|TH)$/i ;
+
+// Elements marked as empty "Empty" in the XHTML DTD.
+FCKRegexLib.EmptyElements = /^(?:BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT)$/i ;
+
+// List all named commands (commands that can be interpreted by the browser "execCommand" method.
+FCKRegexLib.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 ;
+
+FCKRegexLib.BodyContents = /([\s\S]*\]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i ;
+
+// Temporary text used to solve some browser specific limitations.
+FCKRegexLib.ToReplace = /___fcktoreplace:([\w]+)/ig ;
+
+// Get the META http-equiv attribute from the tag.
+FCKRegexLib.MetaHttpEquiv = /http-equiv\s*=\s*["']?([^"' ]+)/i ;
+
+FCKRegexLib.HasBaseTag = / ]*>/i ;
+FCKRegexLib.HeadCloser = /<\/head\s*>/i ;
+
+FCKRegexLib.TableBorderClass = /\s*FCK__ShowTableBorders\s*/ ;
+
+// Validate element names.
+FCKRegexLib.ElementName = /(^[A-Za-z_:][\w.\-:]*\w$)|(^[A-Za-z_]$)/ ;
+
+// Used in conjuction with the FCKConfig.ForceSimpleAmpersand configuration option.
+FCKRegexLib.ForceSimpleAmpersand = /___FCKAmp___/g ;
+
+// Get the closing parts of the tags with no closing tags, like
... gets the "/>" part.
+FCKRegexLib.SpaceNoClose = /\/>/g ;
+
+FCKRegexLib.EmptyParagraph = /^<(p|div)>\s*<\/\1>$/i ;
+
+FCKRegexLib.TagBody = /> ;
+
+// START iCM MODIFICATIONS
+/*
+// HTML table cell elements
+FCKRegexLib.TableCellElements = /^(?:TD|TH)$/i ;
+// Block elements that can themselves contain block elements - used within the FCKTools.SplitNode
+// function. I know BODY isn't really a block element but means can do the check in one hit.
+FCKRegexLib.SpecialBlockElements = /^(?:BODY|TH|TD|CAPTION)$/i ;
+// Block elements that can validly contain a nested table. Ditto above for the BODY entry.
+FCKRegexLib.TableBlockElements = /^(?:BODY|DIV|LI|TD|TH)$/i ;
+// List elements
+FCKRegexLib.ListElements = /^(?:OL|UL)$/i ;
+// Used to remove empty tags after the split process used on ENTER key press
+FCKRegexLib.EmptyElement = /<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|SPAN|A)[^\>]*>\s*<\/\1>/gi ;
+*/
+// END iCM MODIFICATIONS
+
+FCKRegexLib.StrongOpener = /])/gi ;
+FCKRegexLib.StrongCloser = /<\/STRONG>/gi ;
+FCKRegexLib.EmOpener = /])/gi ;
+FCKRegexLib.EmCloser = /<\/EM>/gi ;
+
+FCKRegexLib.GeckoEntitiesMarker = /#\?-\:/g ;
+
+FCKRegexLib.ProtectUrlsAApo = /(]+)/gi ;
+
+FCKRegexLib.ProtectUrlsImgApo = /(
]+)/gi ;
+
+FCKRegexLib.Html4DocType = /HTML 4\.0 Transitional/i ;
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fckselection.js b/htdocs/includes/fckeditor/editor/_source/internals/fckselection.js
new file mode 100644
index 00000000000..2c9737fcb6f
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fckselection.js
@@ -0,0 +1,20 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckselection.js
+ * Active selection functions.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKSelection = FCK.Selection = new Object() ;
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fckselection_gecko.js b/htdocs/includes/fckeditor/editor/_source/internals/fckselection_gecko.js
new file mode 100644
index 00000000000..8bdb04d43ee
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fckselection_gecko.js
@@ -0,0 +1,168 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckselection_gecko.js
+ * Active selection functions. (Gecko specific implementation)
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// Get the selection type (like document.select.type in IE).
+FCKSelection.GetType = function()
+{
+// if ( ! this._Type )
+// {
+ // By default set the type to "Text".
+ this._Type = 'Text' ;
+
+ // Check if the actual selection is a Control (IMG, TABLE, HR, etc...).
+ var oSel ;
+ try { oSel = FCK.EditorWindow.getSelection() ; }
+ catch (e) {}
+
+ if ( oSel && oSel.rangeCount == 1 )
+ {
+ var oRange = oSel.getRangeAt(0) ;
+ if ( oRange.startContainer == oRange.endContainer && (oRange.endOffset - oRange.startOffset) == 1 && oRange.startContainer.nodeType != Node.TEXT_NODE )
+ this._Type = 'Control' ;
+ }
+// }
+ return this._Type ;
+}
+
+// Retrieves the selected element (if any), just in the case that a single
+// element (object like and image or a table) is selected.
+FCKSelection.GetSelectedElement = function()
+{
+ if ( this.GetType() == 'Control' )
+ {
+ var oSel = FCK.EditorWindow.getSelection() ;
+ return oSel.anchorNode.childNodes[ oSel.anchorOffset ] ;
+ }
+}
+
+FCKSelection.GetParentElement = function()
+{
+ if ( this.GetType() == 'Control' )
+ return FCKSelection.GetSelectedElement().parentNode ;
+ else
+ {
+ var oSel = FCK.EditorWindow.getSelection() ;
+ if ( oSel )
+ {
+ var oNode = oSel.anchorNode ;
+
+ while ( oNode && oNode.nodeType != 1 )
+ oNode = oNode.parentNode ;
+
+ return oNode ;
+ }
+ }
+}
+
+FCKSelection.SelectNode = function( element )
+{
+// FCK.Focus() ;
+
+ var oRange = FCK.EditorDocument.createRange() ;
+ oRange.selectNode( element ) ;
+
+ var oSel = FCK.EditorWindow.getSelection() ;
+ oSel.removeAllRanges() ;
+ oSel.addRange( oRange ) ;
+}
+
+FCKSelection.Collapse = function( toStart )
+{
+ var oSel = FCK.EditorWindow.getSelection() ;
+
+ if ( toStart == null || toStart === true )
+ oSel.collapseToStart() ;
+ else
+ oSel.collapseToEnd() ;
+}
+
+// The "nodeTagName" parameter must be Upper Case.
+FCKSelection.HasAncestorNode = function( nodeTagName )
+{
+ var oContainer = this.GetSelectedElement() ;
+ if ( ! oContainer && FCK.EditorWindow )
+ {
+ try { oContainer = FCK.EditorWindow.getSelection().getRangeAt(0).startContainer ; }
+ catch(e){}
+ }
+
+ while ( oContainer )
+ {
+ if ( oContainer.nodeType == 1 && oContainer.tagName == nodeTagName ) return true ;
+ oContainer = oContainer.parentNode ;
+ }
+
+ return false ;
+}
+
+// The "nodeTagName" parameter must be Upper Case.
+FCKSelection.MoveToAncestorNode = function( nodeTagName )
+{
+ var oNode ;
+
+ var oContainer = this.GetSelectedElement() ;
+ if ( ! oContainer )
+ oContainer = FCK.EditorWindow.getSelection().getRangeAt(0).startContainer ;
+
+ while ( oContainer )
+ {
+ if ( oContainer.tagName == nodeTagName )
+ return oContainer ;
+ oContainer = oContainer.parentNode ;
+ }
+ return null ;
+}
+
+FCKSelection.Delete = function()
+{
+ // Gets the actual selection.
+ var oSel = FCK.EditorWindow.getSelection() ;
+
+ // Deletes the actual selection contents.
+ for ( var i = 0 ; i < oSel.rangeCount ; i++ )
+ {
+ oSel.getRangeAt(i).deleteContents() ;
+ }
+
+ return oSel ;
+}
+
+// START iCM MODIFICATIONS
+/*
+// Move the cursor position (the selection point) to a specific offset within a specific node
+// If no offset specified, the start of the node is assumed
+FCKSelection.SetCursorPosition = function ( oNode, nOffset )
+{
+ if ( typeof nOffset == "undefined" ) nOffset = 0 ;
+
+ var oSel = FCK.EditorWindow.getSelection() ;
+ var oRange = FCK.EditorDocument.createRange() ;
+
+ oRange.setStart( oNode, nOffset ) ;
+ oRange.collapse( true ) ;
+
+ oSel.removeAllRanges() ;
+ oSel.addRange( oRange );
+
+ if ( oNode.scrollIntoView )
+ oNode.scrollIntoView( false );
+}
+*/
+// END iCM MODIFICATIONS
+
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fckselection_ie.js b/htdocs/includes/fckeditor/editor/_source/internals/fckselection_ie.js
new file mode 100644
index 00000000000..d0bcea664a5
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fckselection_ie.js
@@ -0,0 +1,165 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckselection_ie.js
+ * Active selection functions. (IE specific implementation)
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// Get the selection type.
+FCKSelection.GetType = function()
+{
+ return FCK.EditorDocument.selection.type ;
+}
+
+// Retrieves the selected element (if any), just in the case that a single
+// element (object like and image or a table) is selected.
+FCKSelection.GetSelectedElement = function()
+{
+ if ( this.GetType() == 'Control' )
+ {
+ var oRange = FCK.EditorDocument.selection.createRange() ;
+
+ if ( oRange && oRange.item )
+ return FCK.EditorDocument.selection.createRange().item(0) ;
+ }
+}
+
+FCKSelection.GetParentElement = function()
+{
+ switch ( this.GetType() )
+ {
+ case 'Control' :
+ return FCKSelection.GetSelectedElement().parentElement ;
+ case 'None' :
+ return ;
+ default :
+ return FCK.EditorDocument.selection.createRange().parentElement() ;
+ }
+}
+
+FCKSelection.SelectNode = function( node )
+{
+ FCK.Focus() ;
+ FCK.EditorDocument.selection.empty() ;
+
+ try
+ {
+ // Try to select the node as a control.
+ var oRange = FCK.EditorDocument.body.createControlRange() ;
+ oRange.addElement( node ) ;
+ }
+ catch(e)
+ {
+ // If failed, select it as a text range.
+ var oRange = FCK.EditorDocument.selection.createRange() ;
+ oRange.moveToElementText( node ) ;
+ }
+
+ oRange.select() ;
+}
+
+FCKSelection.Collapse = function( toStart )
+{
+ FCK.Focus() ;
+ if ( this.GetType() == 'Text' )
+ {
+ var oRange = FCK.EditorDocument.selection.createRange() ;
+ oRange.collapse( toStart == null || toStart === true ) ;
+ oRange.select() ;
+ }
+}
+
+// The "nodeTagName" parameter must be Upper Case.
+FCKSelection.HasAncestorNode = function( nodeTagName )
+{
+ var oContainer ;
+
+ if ( FCK.EditorDocument.selection.type == "Control" )
+ {
+ oContainer = this.GetSelectedElement() ;
+ }
+ else
+ {
+ var oRange = FCK.EditorDocument.selection.createRange() ;
+ oContainer = oRange.parentElement() ;
+ }
+
+ while ( oContainer )
+ {
+ if ( oContainer.tagName == nodeTagName ) return true ;
+ oContainer = oContainer.parentNode ;
+ }
+
+ return false ;
+}
+
+// The "nodeTagName" parameter must be UPPER CASE.
+FCKSelection.MoveToAncestorNode = function( nodeTagName )
+{
+ var oNode ;
+
+ if ( FCK.EditorDocument.selection.type == "Control" )
+ {
+ var oRange = FCK.EditorDocument.selection.createRange() ;
+ for ( i = 0 ; i < oRange.length ; i++ )
+ {
+ if (oRange(i).parentNode)
+ {
+ oNode = oRange(i).parentNode ;
+ break ;
+ }
+ }
+ }
+ else
+ {
+ var oRange = FCK.EditorDocument.selection.createRange() ;
+ oNode = oRange.parentElement() ;
+ }
+
+ while ( oNode && oNode.nodeName != nodeTagName )
+ oNode = oNode.parentNode ;
+
+ return oNode ;
+}
+
+FCKSelection.Delete = function()
+{
+ // Gets the actual selection.
+ var oSel = FCK.EditorDocument.selection ;
+
+ // Deletes the actual selection contents.
+ if ( oSel.type.toLowerCase() != "none" )
+ {
+ oSel.clear() ;
+ }
+
+ return oSel ;
+}
+// START iCM Modifications
+/*
+// Move the cursor position (the selection point) to a specific offset within a specific node
+// If no offset specified, the start of the node is assumed
+FCKSelection.SetCursorPosition = function ( oNode, nOffset )
+{
+ if ( typeof nOffset == "undefined" ) nOffset = 0 ;
+
+ FCK.Selection.SelectNode( oNode ) ; // Doesn't handle offsets currently but offset always zero at mo
+ FCK.Selection.Collapse( true ) ;
+
+ oNode.scrollIntoView( false );
+}
+*/
+// END iCM Modifications
+
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fcktablehandler.js b/htdocs/includes/fckeditor/editor/_source/internals/fcktablehandler.js
new file mode 100644
index 00000000000..fd6c9e06ffe
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fcktablehandler.js
@@ -0,0 +1,383 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fcktablehandler.js
+ * Manage table operations.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKTableHandler = new Object() ;
+
+FCKTableHandler.InsertRow = function()
+{
+ // Get the row where the selection is placed in.
+ var oRow = FCKSelection.MoveToAncestorNode("TR") ;
+ if ( !oRow ) return ;
+
+ // Create a clone of the row.
+ var oNewRow = oRow.cloneNode( true ) ;
+
+ // Insert the new row (copy) before of it.
+ oRow.parentNode.insertBefore( oNewRow, oRow ) ;
+
+ // Clean the row (it seems that the new row has been added after it).
+ FCKTableHandler.ClearRow( oRow ) ;
+}
+
+FCKTableHandler.DeleteRows = function( row )
+{
+ // If no row has been passed as a parameer,
+ // then get the row where the selection is placed in.
+ if ( !row )
+ row = FCKSelection.MoveToAncestorNode("TR") ;
+ if ( !row ) return ;
+
+ // Get the row's table.
+ var oTable = FCKTools.GetElementAscensor( row, 'TABLE' ) ;
+
+ // If just one row is available then delete the entire table.
+ if ( oTable.rows.length == 1 )
+ {
+ FCKTableHandler.DeleteTable( oTable ) ;
+ return ;
+ }
+
+ // Delete the row.
+ row.parentNode.removeChild( row ) ;
+}
+
+FCKTableHandler.DeleteTable = function( table )
+{
+ // If no table has been passed as a parameer,
+ // then get the table where the selection is placed in.
+ if ( !table )
+ {
+ var table = FCKSelection.GetSelectedElement() ;
+ if ( !table || table.tagName != 'TABLE' )
+ table = FCKSelection.MoveToAncestorNode("TABLE") ;
+ }
+ if ( !table ) return ;
+
+ // Delete the table.
+ FCKSelection.SelectNode( table ) ;
+ FCKSelection.Collapse();
+ table.parentNode.removeChild( table ) ;
+}
+
+FCKTableHandler.InsertColumn = function()
+{
+ // Get the cell where the selection is placed in.
+ var oCell = FCKSelection.MoveToAncestorNode("TD") ;
+ if ( !oCell )
+ oCell = FCKSelection.MoveToAncestorNode("TH") ;
+
+ if ( !oCell ) return ;
+
+ // Get the cell's table.
+ var oTable = FCKTools.GetElementAscensor( oCell, 'TABLE' ) ;
+
+ // Get the index of the column to be created (based on the cell).
+ var iIndex = oCell.cellIndex + 1 ;
+
+ // Loop throw all rows available in the table.
+ for ( var i = 0 ; i < oTable.rows.length ; i++ )
+ {
+ // Get the row.
+ var oRow = oTable.rows[i] ;
+
+ // If the row doens't have enought cells, ignore it.
+ if ( oRow.cells.length < iIndex )
+ continue ;
+
+ oCell = oRow.cells[iIndex-1].cloneNode(false) ;
+
+ if ( FCKBrowserInfo.IsGecko )
+ oCell.innerHTML = GECKO_BOGUS ;
+
+ // Get the cell that is placed in the new cell place.
+ var oBaseCell = oRow.cells[iIndex] ;
+
+ // If the cell is available (we are not in the last cell of the row).
+ if ( oBaseCell )
+ oRow.insertBefore( oCell, oBaseCell ) ; // Insert the new cell just before of it.
+ else
+ oRow.appendChild( oCell ) ; // Append the cell at the end of the row.
+ }
+}
+
+FCKTableHandler.DeleteColumns = function()
+{
+ // Get the cell where the selection is placed in.
+ var oCell = FCKSelection.MoveToAncestorNode('TD') || FCKSelection.MoveToAncestorNode('TH') ;
+
+ if ( !oCell ) return ;
+
+ // Get the cell's table.
+ var oTable = FCKTools.GetElementAscensor( oCell, 'TABLE' ) ;
+
+ // Get the cell index.
+ var iIndex = oCell.cellIndex ;
+
+ // Loop throw all rows (from down to up, because it's possible that some
+ // rows will be deleted).
+ for ( var i = oTable.rows.length - 1 ; i >= 0 ; i-- )
+ {
+ // Get the row.
+ var oRow = oTable.rows[i] ;
+
+ // If the cell to be removed is the first one and the row has just one cell.
+ if ( iIndex == 0 && oRow.cells.length == 1 )
+ {
+ // Remove the entire row.
+ FCKTableHandler.DeleteRows( oRow ) ;
+ continue ;
+ }
+
+ // If the cell to be removed exists the delete it.
+ if ( oRow.cells[iIndex] )
+ oRow.removeChild( oRow.cells[iIndex] ) ;
+ }
+}
+
+FCKTableHandler.InsertCell = function( cell )
+{
+ // Get the cell where the selection is placed in.
+ var oCell = cell ? cell : FCKSelection.MoveToAncestorNode("TD") ;
+ if ( !oCell ) return ;
+
+ // Create the new cell element to be added.
+ var oNewCell = FCK.EditorDocument.createElement("TD");
+ if ( FCKBrowserInfo.IsGecko )
+ oNewCell.innerHTML = GECKO_BOGUS ;
+// oNewCell.innerHTML = " " ;
+
+ // If it is the last cell in the row.
+ if ( oCell.cellIndex == oCell.parentNode.cells.length - 1 )
+ {
+ // Add the new cell at the end of the row.
+ oCell.parentNode.appendChild( oNewCell ) ;
+ }
+ else
+ {
+ // Add the new cell before the next cell (after the active one).
+ oCell.parentNode.insertBefore( oNewCell, oCell.nextSibling ) ;
+ }
+
+ return oNewCell ;
+}
+
+FCKTableHandler.DeleteCell = function( cell )
+{
+ // If this is the last cell in the row.
+ if ( cell.parentNode.cells.length == 1 )
+ {
+ // Delete the entire row.
+ FCKTableHandler.DeleteRows( FCKTools.GetElementAscensor( cell, 'TR' ) ) ;
+ return ;
+ }
+
+ // Delete the cell from the row.
+ cell.parentNode.removeChild( cell ) ;
+}
+
+FCKTableHandler.DeleteCells = function()
+{
+ var aCells = FCKTableHandler.GetSelectedCells() ;
+
+ for ( var i = aCells.length - 1 ; i >= 0 ; i-- )
+ {
+ FCKTableHandler.DeleteCell( aCells[i] ) ;
+ }
+}
+
+FCKTableHandler.MergeCells = function()
+{
+ // Get all selected cells.
+ var aCells = FCKTableHandler.GetSelectedCells() ;
+
+ // At least 2 cells must be selected.
+ if ( aCells.length < 2 )
+ return ;
+
+ // The merge can occour only if the selected cells are from the same row.
+ if ( aCells[0].parentNode != aCells[aCells.length-1].parentNode )
+ return ;
+
+ // Calculate the new colSpan for the first cell.
+ var iColSpan = isNaN( aCells[0].colSpan ) ? 1 : aCells[0].colSpan ;
+
+ var sHtml = '' ;
+ var oCellsContents = FCK.EditorDocument.createDocumentFragment() ;
+
+ for ( var i = aCells.length - 1 ; i >= 0 ; i-- )
+ {
+ var eCell = aCells[i] ;
+
+ // Move its contents to the document fragment.
+ for ( var c = eCell.childNodes.length - 1 ; c >= 0 ; c-- )
+ {
+ var eChild = eCell.removeChild( eCell.childNodes[c] ) ;
+
+ if ( ( eChild.hasAttribute && eChild.hasAttribute('_moz_editor_bogus_node') ) || ( eChild.getAttribute && eChild.getAttribute( 'type', 2 ) == '_moz' ) )
+ continue ;
+
+ oCellsContents.insertBefore( eChild, oCellsContents.firstChild ) ;
+ }
+
+ if ( i > 0 )
+ {
+ // Accumulate the colspan of the cell.
+ iColSpan += isNaN( eCell.colSpan ) ? 1 : eCell.colSpan ;
+
+ // Delete the cell.
+ FCKTableHandler.DeleteCell( eCell ) ;
+ }
+ }
+
+ // Set the innerHTML of the remaining cell (the first one).
+ aCells[0].colSpan = iColSpan ;
+
+ if ( FCKBrowserInfo.IsGecko && oCellsContents.childNodes.length == 0 )
+ aCells[0].innerHTML = GECKO_BOGUS ;
+ else
+ aCells[0].appendChild( oCellsContents ) ;
+}
+
+FCKTableHandler.SplitCell = function()
+{
+ // Check that just one cell is selected, otherwise return.
+ var aCells = FCKTableHandler.GetSelectedCells() ;
+ if ( aCells.length != 1 )
+ return ;
+
+ var aMap = this._CreateTableMap( aCells[0].parentNode.parentNode ) ;
+ var iCellIndex = FCKTableHandler._GetCellIndexSpan( aMap, aCells[0].parentNode.rowIndex , aCells[0] ) ;
+
+ var aCollCells = this._GetCollumnCells( aMap, iCellIndex ) ;
+
+ for ( var i = 0 ; i < aCollCells.length ; i++ )
+ {
+ if ( aCollCells[i] == aCells[0] )
+ {
+ var oNewCell = this.InsertCell( aCells[0] ) ;
+ if ( !isNaN( aCells[0].rowSpan ) && aCells[0].rowSpan > 1 )
+ oNewCell.rowSpan = aCells[0].rowSpan ;
+ }
+ else
+ {
+ if ( isNaN( aCollCells[i].colSpan ) )
+ aCollCells[i].colSpan = 2 ;
+ else
+ aCollCells[i].colSpan += 1 ;
+ }
+ }
+}
+
+// Get the cell index from a TableMap.
+FCKTableHandler._GetCellIndexSpan = function( tableMap, rowIndex, cell )
+{
+ if ( tableMap.length < rowIndex + 1 )
+ return null ;
+
+ var oRow = tableMap[ rowIndex ] ;
+
+ for ( var c = 0 ; c < oRow.length ; c++ )
+ {
+ if ( oRow[c] == cell )
+ return c ;
+ }
+
+ return null ;
+}
+
+// Get the cells available in a collumn of a TableMap.
+FCKTableHandler._GetCollumnCells = function( tableMap, collumnIndex )
+{
+ var aCollCells = new Array() ;
+
+ for ( var r = 0 ; r < tableMap.length ; r++ )
+ {
+ var oCell = tableMap[r][collumnIndex] ;
+ if ( oCell && ( aCollCells.length == 0 || aCollCells[ aCollCells.length - 1 ] != oCell ) )
+ aCollCells[ aCollCells.length ] = oCell ;
+ }
+
+ return aCollCells ;
+}
+
+// This function is quite hard to explain. It creates a matrix representing all cells in a table.
+// The difference here is that the "spanned" cells (colSpan and rowSpan) are duplicated on the matrix
+// cells that are "spanned". For example, a row with 3 cells where the second cell has colSpan=2 and rowSpan=3
+// will produce a bi-dimensional matrix with the following values (representing the cells):
+// Cell1, Cell2, Cell2, Cell 3
+// Cell4, Cell2, Cell2, Cell 5
+FCKTableHandler._CreateTableMap = function( table )
+{
+ var aRows = table.rows ;
+
+ // Row and Collumn counters.
+ var r = -1 ;
+
+ var aMap = new Array() ;
+
+ for ( var i = 0 ; i < aRows.length ; i++ )
+ {
+ r++ ;
+ if ( !aMap[r] )
+ aMap[r] = new Array() ;
+
+ var c = -1 ;
+
+ for ( var j = 0 ; j < aRows[i].cells.length ; j++ )
+ {
+ var oCell = aRows[i].cells[j] ;
+
+ c++ ;
+ while ( aMap[r][c] )
+ c++ ;
+
+ var iColSpan = isNaN( oCell.colSpan ) ? 1 : oCell.colSpan ;
+ var iRowSpan = isNaN( oCell.rowSpan ) ? 1 : oCell.rowSpan ;
+
+ for ( var rs = 0 ; rs < iRowSpan ; rs++ )
+ {
+ if ( !aMap[r + rs] )
+ aMap[r + rs] = new Array() ;
+
+ for ( var cs = 0 ; cs < iColSpan ; cs++ )
+ {
+ aMap[r + rs][c + cs] = aRows[i].cells[j] ;
+ }
+ }
+
+ c += iColSpan - 1 ;
+ }
+ }
+ return aMap ;
+}
+
+FCKTableHandler.ClearRow = function( tr )
+{
+ // Get the array of row's cells.
+ var aCells = tr.cells ;
+
+ // Replace the contents of each cell with "nothing".
+ for ( var i = 0 ; i < aCells.length ; i++ )
+ {
+ if ( FCKBrowserInfo.IsGecko )
+ aCells[i].innerHTML = GECKO_BOGUS ;
+ else
+ aCells[i].innerHTML = '' ;
+ }
+}
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fcktablehandler_gecko.js b/htdocs/includes/fckeditor/editor/_source/internals/fcktablehandler_gecko.js
new file mode 100644
index 00000000000..01b50ed2028
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fcktablehandler_gecko.js
@@ -0,0 +1,53 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fcktablehandler_gecko.js
+ * Manage table operations (IE specific).
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKTableHandler.GetSelectedCells = function()
+{
+ var aCells = new Array() ;
+
+ var oSelection = FCK.EditorWindow.getSelection() ;
+
+ // If the selection is a text.
+ if ( oSelection.rangeCount == 1 && oSelection.anchorNode.nodeType == 3 )
+ {
+ var oParent = FCKTools.GetElementAscensor( oSelection.anchorNode, 'TD,TH' ) ;
+
+ if ( oParent )
+ {
+ aCells[0] = oParent ;
+ return aCells ;
+ }
+ }
+
+ for ( var i = 0 ; i < oSelection.rangeCount ; i++ )
+ {
+ var oRange = oSelection.getRangeAt(i) ;
+ var oCell ;
+
+ if ( oRange.startContainer.tagName.Equals( 'TD', 'TH' ) )
+ oCell = oRange.startContainer ;
+ else
+ oCell = oRange.startContainer.childNodes[ oRange.startOffset ] ;
+
+ if ( oCell.tagName.Equals( 'TD', 'TH' ) )
+ aCells[aCells.length] = oCell ;
+ }
+
+ return aCells ;
+}
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fcktablehandler_ie.js b/htdocs/includes/fckeditor/editor/_source/internals/fcktablehandler_ie.js
new file mode 100644
index 00000000000..be0defd76d8
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fcktablehandler_ie.js
@@ -0,0 +1,54 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fcktablehandler_ie.js
+ * Manage table operations (IE specific).
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKTableHandler.GetSelectedCells = function()
+{
+ var aCells = new Array() ;
+
+ var oRange = FCK.EditorDocument.selection.createRange() ;
+// var oParent = oRange.parentElement() ;
+ var oParent = FCKSelection.GetParentElement() ;
+
+ if ( oParent && oParent.tagName.Equals( 'TD', 'TH' ) )
+ aCells[0] = oParent ;
+ else
+ {
+ var oParent = FCKSelection.MoveToAncestorNode( "TABLE" ) ;
+
+ if ( oParent )
+ {
+ // Loops throw all cells checking if the cell is, or part of it, is inside the selection
+ // and then add it to the selected cells collection.
+ for ( var i = 0 ; i < oParent.cells.length ; i++ )
+ {
+ var oCellRange = FCK.EditorDocument.selection.createRange() ;
+ oCellRange.moveToElementText( oParent.cells[i] ) ;
+
+ if ( oRange.inRange( oCellRange )
+ || ( oRange.compareEndPoints('StartToStart',oCellRange) >= 0 && oRange.compareEndPoints('StartToEnd',oCellRange) <= 0 )
+ || ( oRange.compareEndPoints('EndToStart',oCellRange) >= 0 && oRange.compareEndPoints('EndToEnd',oCellRange) <= 0 ) )
+ {
+ aCells[aCells.length] = oParent.cells[i] ;
+ }
+ }
+ }
+ }
+
+ return aCells ;
+}
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fcktoolbaritems.js b/htdocs/includes/fckeditor/editor/_source/internals/fcktoolbaritems.js
new file mode 100644
index 00000000000..f24cc081912
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fcktoolbaritems.js
@@ -0,0 +1,118 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fcktoolbaritems.js
+ * Toolbar items definitions.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKToolbarItems = new Object() ;
+FCKToolbarItems.LoadedItems = new Object() ;
+
+FCKToolbarItems.RegisterItem = function( itemName, item )
+{
+ this.LoadedItems[ itemName ] = item ;
+}
+
+FCKToolbarItems.GetItem = function( itemName )
+{
+ var oItem = FCKToolbarItems.LoadedItems[ itemName ] ;
+
+ if ( oItem )
+ return oItem ;
+
+ switch ( itemName )
+ {
+ case 'Source' : oItem = new FCKToolbarButton( 'Source' , FCKLang.Source, null, FCK_TOOLBARITEM_ICONTEXT, true, true, 1 ) ; break ;
+ case 'DocProps' : oItem = new FCKToolbarButton( 'DocProps' , FCKLang.DocProps, null, null, null, null, 2 ) ; break ;
+ case 'Save' : oItem = new FCKToolbarButton( 'Save' , FCKLang.Save, null, null, true, null, 3 ) ; break ;
+ case 'NewPage' : oItem = new FCKToolbarButton( 'NewPage' , FCKLang.NewPage, null, null, true, null, 4 ) ; break ;
+ case 'Preview' : oItem = new FCKToolbarButton( 'Preview' , FCKLang.Preview, null, null, true, null, 5 ) ; break ;
+ case 'Templates' : oItem = new FCKToolbarButton( 'Templates' , FCKLang.Templates, null, null, null, null, 6 ) ; break ;
+ case 'About' : oItem = new FCKToolbarButton( 'About' , FCKLang.About, null, null, true, null, 47 ) ; break ;
+
+ case 'Cut' : oItem = new FCKToolbarButton( 'Cut' , FCKLang.Cut, null, null, false, true, 7 ) ; break ;
+ case 'Copy' : oItem = new FCKToolbarButton( 'Copy' , FCKLang.Copy, null, null, false, true, 8 ) ; break ;
+ case 'Paste' : oItem = new FCKToolbarButton( 'Paste' , FCKLang.Paste, null, null, false, true, 9 ) ; break ;
+ case 'PasteText' : oItem = new FCKToolbarButton( 'PasteText' , FCKLang.PasteText, null, null, false, true, 10 ) ; break ;
+ case 'PasteWord' : oItem = new FCKToolbarButton( 'PasteWord' , FCKLang.PasteWord, null, null, false, true, 11 ) ; break ;
+ case 'Print' : oItem = new FCKToolbarButton( 'Print' , FCKLang.Print, null, null, false, true, 12 ) ; break ;
+ case 'SpellCheck' : oItem = new FCKToolbarButton( 'SpellCheck', FCKLang.SpellCheck, null, null, null, null, 13 ) ; break ;
+ case 'Undo' : oItem = new FCKToolbarButton( 'Undo' , FCKLang.Undo, null, null, false, true, 14 ) ; break ;
+ case 'Redo' : oItem = new FCKToolbarButton( 'Redo' , FCKLang.Redo, null, null, false, true, 15 ) ; break ;
+ case 'SelectAll' : oItem = new FCKToolbarButton( 'SelectAll' , FCKLang.SelectAll, null, null, null, null, 18 ) ; break ;
+ case 'RemoveFormat' : oItem = new FCKToolbarButton( 'RemoveFormat', FCKLang.RemoveFormat, null, null, false, true, 19 ) ; break ;
+ case 'FitWindow' : oItem = new FCKToolbarButton( 'FitWindow' , FCKLang.FitWindow, null, null, true, true, 66 ) ; break ;
+
+ case 'Bold' : oItem = new FCKToolbarButton( 'Bold' , FCKLang.Bold, null, null, false, true, 20 ) ; break ;
+ case 'Italic' : oItem = new FCKToolbarButton( 'Italic' , FCKLang.Italic, null, null, false, true, 21 ) ; break ;
+ case 'Underline' : oItem = new FCKToolbarButton( 'Underline' , FCKLang.Underline, null, null, false, true, 22 ) ; break ;
+ case 'StrikeThrough' : oItem = new FCKToolbarButton( 'StrikeThrough' , FCKLang.StrikeThrough, null, null, false, true, 23 ) ; break ;
+ case 'Subscript' : oItem = new FCKToolbarButton( 'Subscript' , FCKLang.Subscript, null, null, false, true, 24 ) ; break ;
+ case 'Superscript' : oItem = new FCKToolbarButton( 'Superscript' , FCKLang.Superscript, null, null, false, true, 25 ) ; break ;
+
+ case 'OrderedList' : oItem = new FCKToolbarButton( 'InsertOrderedList' , FCKLang.NumberedListLbl, FCKLang.NumberedList, null, false, true, 26 ) ; break ;
+ case 'UnorderedList' : oItem = new FCKToolbarButton( 'InsertUnorderedList' , FCKLang.BulletedListLbl, FCKLang.BulletedList, null, false, true, 27 ) ; break ;
+ case 'Outdent' : oItem = new FCKToolbarButton( 'Outdent' , FCKLang.DecreaseIndent, null, null, false, true, 28 ) ; break ;
+ case 'Indent' : oItem = new FCKToolbarButton( 'Indent' , FCKLang.IncreaseIndent, null, null, false, true, 29 ) ; break ;
+
+ case 'Link' : oItem = new FCKToolbarButton( 'Link' , FCKLang.InsertLinkLbl, FCKLang.InsertLink, null, false, true, 34 ) ; break ;
+ case 'Unlink' : oItem = new FCKToolbarButton( 'Unlink' , FCKLang.RemoveLink, null, null, false, true, 35 ) ; break ;
+ case 'Anchor' : oItem = new FCKToolbarButton( 'Anchor' , FCKLang.Anchor, null, null, null, null, 36 ) ; break ;
+
+ case 'Image' : oItem = new FCKToolbarButton( 'Image' , FCKLang.InsertImageLbl, FCKLang.InsertImage, null, false, true, 37 ) ; break ;
+ case 'Flash' : oItem = new FCKToolbarButton( 'Flash' , FCKLang.InsertFlashLbl, FCKLang.InsertFlash, null, false, true, 38 ) ; break ;
+ case 'Table' : oItem = new FCKToolbarButton( 'Table' , FCKLang.InsertTableLbl, FCKLang.InsertTable, null, false, true, 39 ) ; break ;
+ case 'SpecialChar' : oItem = new FCKToolbarButton( 'SpecialChar' , FCKLang.InsertSpecialCharLbl, FCKLang.InsertSpecialChar, null, false, true, 42 ) ; break ;
+ case 'Smiley' : oItem = new FCKToolbarButton( 'Smiley' , FCKLang.InsertSmileyLbl, FCKLang.InsertSmiley, null, false, true, 41 ) ; break ;
+ case 'PageBreak' : oItem = new FCKToolbarButton( 'PageBreak' , FCKLang.PageBreakLbl, FCKLang.PageBreak, null, false, true, 43 ) ; break ;
+ case 'UniversalKey' : oItem = new FCKToolbarButton( 'UniversalKey' , FCKLang.UniversalKeyboard , null, null, false, true, 44) ; break ;
+
+ case 'Rule' : oItem = new FCKToolbarButton( 'InsertHorizontalRule', FCKLang.InsertLineLbl, FCKLang.InsertLine, null, false, true, 40 ) ; break ;
+
+ case 'JustifyLeft' : oItem = new FCKToolbarButton( 'JustifyLeft' , FCKLang.LeftJustify, null, null, false, true, 30 ) ; break ;
+ case 'JustifyCenter' : oItem = new FCKToolbarButton( 'JustifyCenter' , FCKLang.CenterJustify, null, null, false, true, 31 ) ; break ;
+ case 'JustifyRight' : oItem = new FCKToolbarButton( 'JustifyRight' , FCKLang.RightJustify, null, null, false, true, 32 ) ; break ;
+ case 'JustifyFull' : oItem = new FCKToolbarButton( 'JustifyFull' , FCKLang.BlockJustify, null, null, false, true, 33 ) ; break ;
+
+ case 'Style' : oItem = new FCKToolbarStyleCombo() ; break ;
+ case 'FontName' : oItem = new FCKToolbarFontsCombo() ; break ;
+ case 'FontSize' : oItem = new FCKToolbarFontSizeCombo() ; break ;
+ case 'FontFormat' : oItem = new FCKToolbarFontFormatCombo() ; break ;
+
+ case 'TextColor' : oItem = new FCKToolbarPanelButton( 'TextColor', FCKLang.TextColor, null, null, 45 ) ; break ;
+ case 'BGColor' : oItem = new FCKToolbarPanelButton( 'BGColor' , FCKLang.BGColor, null, null, 46 ) ; break ;
+
+ case 'Find' : oItem = new FCKToolbarButton( 'Find' , FCKLang.Find, null, null, null, null, 16 ) ; break ;
+ case 'Replace' : oItem = new FCKToolbarButton( 'Replace' , FCKLang.Replace, null, null, null, null, 17 ) ; break ;
+
+ case 'Form' : oItem = new FCKToolbarButton( 'Form' , FCKLang.Form, null, null, null, null, 48 ) ; break ;
+ case 'Checkbox' : oItem = new FCKToolbarButton( 'Checkbox' , FCKLang.Checkbox, null, null, null, null, 49 ) ; break ;
+ case 'Radio' : oItem = new FCKToolbarButton( 'Radio' , FCKLang.RadioButton, null, null, null, null, 50 ) ; break ;
+ case 'TextField' : oItem = new FCKToolbarButton( 'TextField' , FCKLang.TextField, null, null, null, null, 51 ) ; break ;
+ case 'Textarea' : oItem = new FCKToolbarButton( 'Textarea' , FCKLang.Textarea, null, null, null, null, 52 ) ; break ;
+ case 'HiddenField' : oItem = new FCKToolbarButton( 'HiddenField' , FCKLang.HiddenField, null, null, null, null, 56 ) ; break ;
+ case 'Button' : oItem = new FCKToolbarButton( 'Button' , FCKLang.Button, null, null, null, null, 54 ) ; break ;
+ case 'Select' : oItem = new FCKToolbarButton( 'Select' , FCKLang.SelectionField, null, null, null, null, 53 ) ; break ;
+ case 'ImageButton' : oItem = new FCKToolbarButton( 'ImageButton' , FCKLang.ImageButton, null, null, null, null, 55 ) ; break ;
+
+ default:
+ alert( FCKLang.UnknownToolbarItem.replace( /%1/g, itemName ) ) ;
+ return null ;
+ }
+
+ FCKToolbarItems.LoadedItems[ itemName ] = oItem ;
+
+ return oItem ;
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fcktoolbarset.js b/htdocs/includes/fckeditor/editor/_source/internals/fcktoolbarset.js
new file mode 100644
index 00000000000..502039aa864
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fcktoolbarset.js
@@ -0,0 +1,356 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fcktoolbarset.js
+ * Defines the FCKToolbarSet object that is used to load and draw the
+ * toolbar.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+function FCKToolbarSet_Create( overhideLocation )
+{
+ var oToolbarSet ;
+
+ var sLocation = overhideLocation || FCKConfig.ToolbarLocation ;
+ switch ( sLocation )
+ {
+ case 'In' :
+ document.getElementById( 'xToolbarRow' ).style.display = '' ;
+ oToolbarSet = new FCKToolbarSet( document ) ;
+ break ;
+
+// case 'OutTop' :
+ // Not supported.
+
+ default :
+ FCK.Events.AttachEvent( 'OnBlur', FCK_OnBlur ) ;
+ FCK.Events.AttachEvent( 'OnFocus', FCK_OnFocus ) ;
+
+ var eToolbarTarget ;
+
+ // Out:[TargetWindow]([TargetId])
+ var oOutMatch = sLocation.match( /^Out:(.+)\((\w+)\)$/ ) ;
+ if ( oOutMatch )
+ {
+ eToolbarTarget = eval( 'parent.' + oOutMatch[1] ).document.getElementById( oOutMatch[2] ) ;
+ }
+ else
+ {
+ // Out:[TargetId]
+ oOutMatch = sLocation.match( /^Out:(\w+)$/ ) ;
+ if ( oOutMatch )
+ eToolbarTarget = parent.document.getElementById( oOutMatch[1] ) ;
+ }
+
+ if ( !eToolbarTarget )
+ {
+ alert( 'Invalid value for "ToolbarLocation"' ) ;
+ return this._Init( 'In' ) ;
+ }
+
+ // If it is a shared toolbar, it may be already available in the target element.
+ if ( oToolbarSet = eToolbarTarget.__FCKToolbarSet )
+ break ;
+
+ // Create the IFRAME that will hold the toolbar inside the target element.
+ var eToolbarIFrame = eToolbarTarget.ownerDocument.createElement( 'IFRAME' ) ;
+ eToolbarIFrame.frameBorder = 0 ;
+ eToolbarIFrame.width = '100%' ;
+ eToolbarIFrame.height = '10' ;
+ eToolbarTarget.appendChild( eToolbarIFrame ) ;
+ eToolbarIFrame.unselectable = 'on' ;
+
+ // Write the basic HTML for the toolbar (copy from the editor main page).
+ var eTargetDocument = eToolbarIFrame.contentWindow.document ;
+ eTargetDocument.open() ;
+ eTargetDocument.write( '' + document.getElementById( 'xToolbarSpace' ).innerHTML + '' ) ;
+ eTargetDocument.close() ;
+
+ eTargetDocument.oncontextmenu = FCKTools.CancelEvent ;
+
+ // Load external resources (must be done here, otherwise Firefox will not
+ // have the document DOM ready to be used right away.
+ FCKTools.AppendStyleSheet( eTargetDocument, FCKConfig.SkinPath + 'fck_editor.css' ) ;
+
+ oToolbarSet = eToolbarTarget.__FCKToolbarSet = new FCKToolbarSet( eTargetDocument ) ;
+ oToolbarSet._IFrame = eToolbarIFrame ;
+
+ if ( FCK.IECleanup )
+ FCK.IECleanup.AddItem( eToolbarTarget, FCKToolbarSet_Target_Cleanup ) ;
+ }
+
+ oToolbarSet.CurrentInstance = FCK ;
+
+ FCK.AttachToOnSelectionChange( oToolbarSet.RefreshItemsState ) ;
+
+ return oToolbarSet ;
+}
+
+function FCK_OnBlur( editorInstance )
+{
+ var eToolbarSet = editorInstance.ToolbarSet ;
+
+ if ( eToolbarSet.CurrentInstance == editorInstance )
+ {
+// var eIFrame = eToolbarSet._IFrame ;
+// if ( eIFrame.ownerDocument.activeElement != eIFrame )
+ eToolbarSet.Disable() ;
+ }
+}
+
+function FCK_OnFocus( editorInstance )
+{
+ var oToolbarset = editorInstance.ToolbarSet ;
+ var oInstance = editorInstance || FCK ;
+
+ // Unregister the toolbar window from the current instance.
+ oToolbarset.CurrentInstance.FocusManager.RemoveWindow( oToolbarset._IFrame.contentWindow ) ;
+
+ // Set the new current instance.
+ oToolbarset.CurrentInstance = oInstance ;
+
+ // Register the toolbar window in the current instance.
+ oInstance.FocusManager.AddWindow( oToolbarset._IFrame.contentWindow, true ) ;
+
+ oToolbarset.Enable() ;
+}
+
+function FCKToolbarSet_Cleanup()
+{
+ this._TargetElement = null ;
+ this._IFrame = null ;
+}
+
+function FCKToolbarSet_Target_Cleanup()
+{
+ this.__FCKToolbarSet = null ;
+}
+
+var FCKToolbarSet = function( targetDocument )
+{
+ this._Document = targetDocument ;
+
+ // Get the element that will hold the elements structure.
+ this._TargetElement = targetDocument.getElementById( 'xToolbar' ) ;
+
+ // Setup the expand and collapse handlers.
+ var eExpandHandle = targetDocument.getElementById( 'xExpandHandle' ) ;
+ var eCollapseHandle = targetDocument.getElementById( 'xCollapseHandle' ) ;
+
+ eExpandHandle.title = FCKLang.ToolbarExpand ;
+ eExpandHandle.onclick = FCKToolbarSet_Expand_OnClick ;
+
+ eCollapseHandle.title = FCKLang.ToolbarCollapse ;
+ eCollapseHandle.onclick = FCKToolbarSet_Collapse_OnClick ;
+
+ // Set the toolbar state at startup.
+ if ( !FCKConfig.ToolbarCanCollapse || FCKConfig.ToolbarStartExpanded )
+ this.Expand() ;
+ else
+ this.Collapse() ;
+
+ // Enable/disable the collapse handler
+ eCollapseHandle.style.display = FCKConfig.ToolbarCanCollapse ? '' : 'none' ;
+
+ if ( FCKConfig.ToolbarCanCollapse )
+ eCollapseHandle.style.display = '' ;
+ else
+ targetDocument.getElementById( 'xTBLeftBorder' ).style.display = '' ;
+
+ // Set the default properties.
+ this.Toolbars = new Array() ;
+ 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( collapse )
+{
+ this._Document.getElementById( 'xCollapsed' ).style.display = collapse ? '' : 'none' ;
+ this._Document.getElementById( 'xExpanded' ).style.display = collapse ? 'none' : '' ;
+
+ if ( FCKBrowserInfo.IsGecko )
+ {
+ // I had to use "setTimeout" because Gecko was not responding in a right
+ // way when calling window.onresize() directly.
+ FCKTools.RunFunction( window.onresize ) ;
+ }
+}
+
+FCKToolbarSet.prototype.Load = function( toolbarSetName )
+{
+ this.Name = toolbarSetName ;
+
+ this.Items = new Array() ;
+
+ // Reset the array of toolbat items that are active only on WYSIWYG mode.
+ this.ItemsWysiwygOnly = new Array() ;
+
+ // Reset the array of toolbar items that are sensitive to the cursor position.
+ this.ItemsContextSensitive = new Array() ;
+
+ // Cleanup the target element.
+ this._TargetElement.innerHTML = '' ;
+
+ var ToolbarSet = FCKConfig.ToolbarSets[toolbarSetName] ;
+
+ if ( !ToolbarSet )
+ {
+ alert( FCKLang.UnknownToolbarSet.replace( /%1/g, toolbarSetName ) ) ;
+ return ;
+ }
+
+ this.Toolbars = new Array() ;
+
+ for ( var x = 0 ; x < ToolbarSet.length ; x++ )
+ {
+ var oToolbarItems = ToolbarSet[x] ;
+
+ var oToolbar ;
+
+ if ( typeof( oToolbarItems ) == 'string' )
+ {
+ if ( oToolbarItems == '/' )
+ oToolbar = new FCKToolbarBreak() ;
+ }
+ else
+ {
+ oToolbar = new FCKToolbar() ;
+
+ for ( var j = 0 ; j < oToolbarItems.length ; j++ )
+ {
+ var sItem = oToolbarItems[j] ;
+
+ if ( sItem == '-')
+ oToolbar.AddSeparator() ;
+ else
+ {
+ var oItem = FCKToolbarItems.GetItem( sItem ) ;
+ if ( oItem )
+ {
+ oToolbar.AddItem( oItem ) ;
+
+ this.Items.push( oItem ) ;
+
+ if ( !oItem.SourceView )
+ this.ItemsWysiwygOnly.push( oItem ) ;
+
+ if ( oItem.ContextSensitive )
+ this.ItemsContextSensitive.push( oItem ) ;
+ }
+ }
+ }
+
+ // oToolbar.AddTerminator() ;
+ }
+
+ oToolbar.Create( this._TargetElement ) ;
+
+ this.Toolbars[ this.Toolbars.length ] = oToolbar ;
+ }
+
+ FCKTools.DisableSelection( this._Document.getElementById( 'xCollapseHandle' ).parentNode ) ;
+
+ if ( FCK.Status != FCK_STATUS_COMPLETE )
+ 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 aItems = this.Items ;
+ for ( var i = 0 ; i < aItems.length ; i++ )
+ aItems[i].RefreshState() ;
+}
+
+FCKToolbarSet.prototype.Disable = function()
+{
+ if ( !this.IsEnabled )
+ return ;
+
+ this.IsEnabled = false ;
+
+ var aItems = this.Items ;
+ for ( var i = 0 ; i < aItems.length ; i++ )
+ aItems[i].Disable() ;
+}
+
+FCKToolbarSet.prototype.RefreshModeState = function( editorInstance )
+{
+ if ( FCK.Status != FCK_STATUS_COMPLETE )
+ return ;
+
+ var oToolbarSet = editorInstance ? editorInstance.ToolbarSet : this ;
+ var aItems = oToolbarSet.ItemsWysiwygOnly ;
+
+ if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
+ {
+ // Enable all buttons that are available on WYSIWYG mode only.
+ for ( var i = 0 ; i < aItems.length ; i++ )
+ aItems[i].Enable() ;
+
+ // Refresh the buttons state.
+ oToolbarSet.RefreshItemsState( editorInstance ) ;
+ }
+ else
+ {
+ // Refresh the buttons state.
+ oToolbarSet.RefreshItemsState( editorInstance ) ;
+
+ // Disable all buttons that are available on WYSIWYG mode only.
+ for ( var i = 0 ; i < aItems.length ; i++ )
+ aItems[i].Disable() ;
+ }
+}
+
+FCKToolbarSet.prototype.RefreshItemsState = function( editorInstance )
+{
+
+ var aItems = ( editorInstance ? editorInstance.ToolbarSet : this ).ItemsContextSensitive ;
+
+ for ( var i = 0 ; i < aItems.length ; i++ )
+ aItems[i].RefreshState() ;
+}
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fcktools.js b/htdocs/includes/fckeditor/editor/_source/internals/fcktools.js
new file mode 100644
index 00000000000..4ac48a62b0c
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fcktools.js
@@ -0,0 +1,254 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fcktools.js
+ * Utility functions.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKTools = new Object() ;
+
+/**
+ * Gets the value of the hidden INPUT element that is associated to the editor.
+ * This element has its ID set to the editor's instance name so the user refers
+ * to the instance name when getting the posted data.
+ */
+FCKTools.GetLinkedFieldValue = function()
+{
+ return FCK.LinkedField.value ;
+}
+
+/**
+ * Attachs a function call to the submit event of the linked field form. This
+ * function us generally used to update the linked field value before
+ * submitting the form.
+ */
+FCKTools.AttachToLinkedFieldFormSubmit = function( functionPointer )
+{
+ // Gets the linked field form
+ var oForm = FCK.LinkedField.form ;
+
+ // Return now if no form is available
+ if (!oForm) return ;
+
+ // Attaches the functionPointer call to the onsubmit event
+ if ( FCKBrowserInfo.IsIE )
+ oForm.attachEvent( "onsubmit", functionPointer ) ;
+ else
+ oForm.addEventListener( 'submit', functionPointer, false ) ;
+
+ //**
+ // Attaches the functionPointer call to the submit method
+ // This is done because IE doesn't fire onsubmit when the submit method is called
+ // BEGIN --
+
+ // Creates a Array in the form object that will hold all Attached function call
+ // (in the case there are more than one editor in the same page)
+ if (! oForm.updateFCKeditor) oForm.updateFCKeditor = new Array() ;
+
+ // Adds the function pointer to the array of functions to call when "submit" is called
+ oForm.updateFCKeditor[oForm.updateFCKeditor.length] = functionPointer ;
+
+ // Switches the original submit method with a new one that first call all functions
+ // on the above array and the call the original submit
+ // IE sees it oForm.submit function as an 'object'.
+ if (! oForm.originalSubmit && ( typeof( oForm.submit ) == 'function' || ( !oForm.submit.tagName && !oForm.submit.length ) ) )
+ {
+ // Creates a copy of the original submit
+ oForm.originalSubmit = oForm.submit ;
+
+ // Creates our replacement for the submit
+ oForm.submit = FCKTools_SubmitReplacer ;
+ }
+ // END --
+}
+
+function FCKTools_SubmitReplacer()
+{
+ if (this.updateFCKeditor)
+ {
+ // Calls all functions in the functions array
+ for (var i = 0 ; i < this.updateFCKeditor.length ; i++)
+ this.updateFCKeditor[i]() ;
+ }
+ // Calls the original "submit"
+ this.originalSubmit() ;
+}
+
+// Get the window object where the element is placed in.
+FCKTools.GetElementWindow = function( element )
+{
+ return FCKTools.GetDocumentWindow( element.ownerDocument ) ;
+}
+
+FCKTools.GetDocumentWindow = function( doc )
+{
+ // With Safari, there is not way to retrieve the window from the document, so we must fix it.
+ if ( FCKBrowserInfo.IsSafari && !doc.parentWindow )
+ FCKTools.FixDocumentParentWindow( window.top ) ;
+
+ return doc.parentWindow || doc.defaultView ;
+}
+
+FCKTools.GetElementPosition = function( el, relativeWindow )
+{
+ // Initializes the Coordinates object that will be returned by the function.
+ var c = { X:0, Y:0 } ;
+
+ var oWindow = relativeWindow || window ;
+
+ // Loop throw the offset chain.
+ while ( el )
+ {
+ c.X += el.offsetLeft - el.scrollLeft ;
+ c.Y += el.offsetTop - el.scrollTop ;
+
+ if ( el.offsetParent == null )
+ {
+ var oOwnerWindow = FCKTools.GetElementWindow( el ) ;
+
+ if ( oOwnerWindow != oWindow )
+ el = oOwnerWindow.frameElement ;
+ else
+ {
+ c.X += el.scrollLeft ;
+ c.Y += el.scrollTop ;
+ break ;
+ }
+ }
+ else
+ el = el.offsetParent ;
+ }
+
+ // Return the Coordinates object
+ return c ;
+}
+
+/*
+ This is a Safari specific function that fix the reference to the parent
+ window from the document object.
+*/
+FCKTools.FixDocumentParentWindow = function( targetWindow )
+{
+ targetWindow.document.parentWindow = targetWindow ;
+
+ for ( var i = 0 ; i < targetWindow.frames.length ; i++ )
+ FCKTools.FixDocumentParentWindow( targetWindow.frames[i] ) ;
+}
+
+FCKTools.GetParentWindow = function( document )
+{
+ return document.contentWindow ? document.contentWindow : document.parentWindow ;
+}
+
+FCKTools.HTMLEncode = function( text )
+{
+ if ( !text )
+ return '' ;
+
+ text = text.replace( /&/g, '&' ) ;
+ text = text.replace( //g, '>' ) ;
+
+ return text ;
+}
+
+/**
+ * Adds an option to a SELECT element.
+ */
+FCKTools.AddSelectOption = function( selectElement, optionText, optionValue )
+{
+ var oOption = selectElement.ownerDocument.createElement( "OPTION" ) ;
+
+ oOption.text = optionText ;
+ oOption.value = optionValue ;
+
+ selectElement.options.add(oOption) ;
+
+ return oOption ;
+}
+
+FCKTools.RunFunction = function( func, thisObject, paramsArray, timerWindow )
+{
+ if ( func )
+ this.SetTimeout( func, 0, thisObject, paramsArray, timerWindow ) ;
+}
+
+FCKTools.SetTimeout = function( func, milliseconds, thisObject, paramsArray, timerWindow )
+{
+ return ( timerWindow || window ).setTimeout(
+ function()
+ {
+ if ( paramsArray )
+ func.apply( thisObject, [].concat( paramsArray ) ) ;
+ else
+ func.apply( thisObject ) ;
+ },
+ milliseconds ) ;
+}
+
+FCKTools.SetInterval = function( func, milliseconds, thisObject, paramsArray, timerWindow )
+{
+ return ( timerWindow || window ).setInterval(
+ function()
+ {
+ func.apply( thisObject, paramsArray || [] ) ;
+ },
+ milliseconds ) ;
+}
+
+FCKTools.ConvertStyleSizeToHtml = function( size )
+{
+ return size.endsWith( '%' ) ? size : parseInt( size ) ;
+}
+
+FCKTools.ConvertHtmlSizeToStyle = function( size )
+{
+ return size.endsWith( '%' ) ? size : ( size + 'px' ) ;
+}
+
+// START iCM MODIFICATIONS
+// Amended to accept a list of one or more ascensor tag names
+// Amended to check the element itself before working back up through the parent hierarchy
+FCKTools.GetElementAscensor = function( element, ascensorTagNames )
+{
+// var e = element.parentNode ;
+ var e = element ;
+ var lstTags = "," + ascensorTagNames.toUpperCase() + "," ;
+
+ while ( e )
+ {
+ if ( lstTags.indexOf( "," + e.nodeName.toUpperCase() + "," ) != -1 )
+ return e ;
+
+ e = e.parentNode ;
+ }
+ return null ;
+}
+// END iCM MODIFICATIONS
+
+FCKTools.CreateEventListener = function( func, params )
+{
+ var f = function()
+ {
+ var aAllParams = [] ;
+
+ for ( var i = 0 ; i < arguments.length ; i++ )
+ aAllParams.push( arguments[i] ) ;
+
+ func.apply( this, aAllParams.concat( params ) ) ;
+ }
+
+ return f ;
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fcktools_gecko.js b/htdocs/includes/fckeditor/editor/_source/internals/fcktools_gecko.js
new file mode 100644
index 00000000000..d375571fc3c
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fcktools_gecko.js
@@ -0,0 +1,342 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fcktools_gecko.js
+ * Utility functions. (Gecko version).
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// Constant for the Gecko Bogus Node.
+var GECKO_BOGUS = FCKBrowserInfo.IsGecko ? '
' : '' ;
+
+FCKTools.CancelEvent = function( e )
+{
+ if ( e )
+ e.preventDefault() ;
+}
+
+FCKTools.DisableSelection = function( element )
+{
+ if ( FCKBrowserInfo.IsGecko )
+ element.style.MozUserSelect = 'none' ; // Gecko only.
+ else
+ element.style.userSelect = 'none' ; // CSS3 (not supported yet).
+}
+
+// Appends a CSS file to a document.
+FCKTools.AppendStyleSheet = function( documentElement, cssFileUrl )
+{
+ var e = documentElement.createElement( 'LINK' ) ;
+ e.rel = 'stylesheet' ;
+ e.type = 'text/css' ;
+ e.href = cssFileUrl ;
+ documentElement.getElementsByTagName("HEAD")[0].appendChild( e ) ;
+ return e ;
+}
+
+// Removes all attributes and values from the element.
+FCKTools.ClearElementAttributes = function( element )
+{
+ // Loop throw all attributes in the element
+ for ( var i = 0 ; i < element.attributes.length ; i++ )
+ {
+ // Remove the element by name.
+ element.removeAttribute( element.attributes[i].name, 0 ) ; // 0 : Case Insensitive
+ }
+}
+
+// Returns an Array of strings with all defined in the elements inside another element.
+FCKTools.GetAllChildrenIds = function( parentElement )
+{
+ // Create the array that will hold all Ids.
+ var aIds = new Array() ;
+
+ // Define a recursive function that search for the Ids.
+ var fGetIds = function( parent )
+ {
+ for ( var i = 0 ; i < parent.childNodes.length ; i++ )
+ {
+ var sId = parent.childNodes[i].id ;
+
+ // Check if the Id is defined for the element.
+ if ( sId && sId.length > 0 ) aIds[ aIds.length ] = sId ;
+
+ // Recursive call.
+ fGetIds( parent.childNodes[i] ) ;
+ }
+ }
+
+ // Start the recursive calls.
+ fGetIds( parentElement ) ;
+
+ return aIds ;
+}
+
+FCKTools.RemoveOuterTags = function( e )
+{
+ var oFragment = e.ownerDocument.createDocumentFragment() ;
+
+ for ( var i = 0 ; i < e.childNodes.length ; i++ )
+ oFragment.appendChild( e.childNodes[i] ) ;
+
+ e.parentNode.replaceChild( oFragment, e ) ;
+}
+
+FCKTools.CreateXmlObject = function( object )
+{
+ switch ( object )
+ {
+ case 'XmlHttp' :
+ return new XMLHttpRequest() ;
+ case 'DOMDocument' :
+ return document.implementation.createDocument( '', '', null ) ;
+ }
+ return null ;
+}
+
+FCKTools.GetScrollPosition = function( relativeWindow )
+{
+ return { X : relativeWindow.pageXOffset, Y : relativeWindow.pageYOffset } ;
+}
+
+FCKTools.AddEventListener = function( sourceObject, eventName, listener )
+{
+ sourceObject.addEventListener( eventName, listener, false ) ;
+}
+
+FCKTools.RemoveEventListener = function( sourceObject, eventName, listener )
+{
+ sourceObject.removeEventListener( eventName, listener, false ) ;
+}
+
+// Listeners attached with this function cannot be detached.
+FCKTools.AddEventListenerEx = function( sourceObject, eventName, listener, paramsArray )
+{
+ sourceObject.addEventListener(
+ eventName,
+ function( e )
+ {
+ listener.apply( sourceObject, [ e ].concat( paramsArray || [] ) ) ;
+ },
+ false
+ ) ;
+}
+
+// Returns and object with the "Width" and "Height" properties.
+FCKTools.GetViewPaneSize = function( win )
+{
+ return { Width : win.innerWidth, Height : win.innerHeight } ;
+}
+
+FCKTools.SaveStyles = function( element )
+{
+ var oSavedStyles = new Object() ;
+
+ if ( element.className.length > 0 )
+ {
+ oSavedStyles.Class = element.className ;
+ element.className = '' ;
+ }
+
+ var sInlineStyle = element.getAttribute( 'style' ) ;
+
+ if ( sInlineStyle && sInlineStyle.length > 0 )
+ {
+ oSavedStyles.Inline = sInlineStyle ;
+ element.setAttribute( 'style', '', 0 ) ; // 0 : Case Insensitive
+ }
+
+ return oSavedStyles ;
+}
+
+FCKTools.RestoreStyles = function( element, savedStyles )
+{
+ element.className = savedStyles.Class || '' ;
+
+ if ( savedStyles.Inline )
+ element.setAttribute( 'style', savedStyles.Inline, 0 ) ; // 0 : Case Insensitive
+ else
+ element.removeAttribute( 'style', 0 ) ;
+}
+
+FCKTools.RegisterDollarFunction = function( targetWindow )
+{
+ targetWindow.$ = function( id )
+ {
+ return this.document.getElementById( id ) ;
+ } ;
+}
+
+// START iCM Modifications
+/*
+// Starting at the specified node, find the first inline node of the sequence
+// For example, assume we have the following elements : Some text some more text and some link yet some more text
+// If the "some link" text node is the one specified, then the "Some text" text node will be the first inline node returned.
+FCKTools.GetFirstInlineNode = function( oNode )
+{
+ if ( FCKRegexLib.BlockElements.test( oNode.nodeName ) )
+ return oNode ;
+ else if ( oNode.previousSibling && !FCKRegexLib.BlockElements.test( oNode.previousSibling.nodeName ) )
+ return FCKTools.GetFirstInlineNode( oNode.previousSibling ) ;
+ else if ( oNode.parentNode && !FCKRegexLib.BlockElements.test( oNode.parentNode.nodeName ) && oNode.parentNode.nodeName.toUpperCase() != "BODY" )
+ return FCKTools.GetFirstInlineNode( oNode.parentNode ) ;
+ else
+ return oNode ;
+}
+
+// Starting at the specified node, find the last inline node of the sequence
+// For example, assume we have the following elements : Some text some more text and some link yet some more text
+// If the "some link" text node is the one specified, then the " yet some more text" text node will be the last inline node returned.
+FCKTools.GetLastInlineNode = function( oNode )
+{
+ if ( FCKRegexLib.BlockElements.test( oNode.nodeName ) )
+ return oNode ;
+ else if ( oNode.nextSibling && !FCKRegexLib.BlockElements.test( oNode.nextSibling.nodeName ) )
+ return FCKTools.GetLastInlineNode( oNode.nextSibling ) ;
+ else if ( oNode.parentNode && !FCKRegexLib.BlockElements.test( oNode.parentNode.nodeName ) && oNode.parentNode.nodeName.toUpperCase() != "BODY" )
+ return FCKTools.GetLastInlineNode( oNode.parentNode ) ;
+ else
+ return oNode ;
+}
+
+
+// Split the supplied parent at the specified child and (optionally) offset.
+// Ensure that enclosing block elements are created where missing but that existing
+// block elements (table for example) don't get incorrectly nested.
+FCKTools.SplitNode = function( oParentBlockNode, oChildNode, nOffset )
+{
+ if ( typeof nOffset == "undefined" ) nOffset = 0 ;
+
+ var oFragment = FCK.EditorDocument.createDocumentFragment() ;
+ var oRange = FCK.EditorDocument.createRange() ;
+
+ if ( FCKRegexLib.ListElements.test( oParentBlockNode.nodeName ) )
+ {
+ // Treat OL/UL parents differently as want to split at the specified
+ // child LI node to create to OL/UL lists.
+ oStartNode = oParentBlockNode.firstChild ;
+ oEndNode = oParentBlockNode.lastChild ;
+ }
+ else
+ {
+ // Locate the inline nodes adjacent to the specified child node so that these can
+ // be kept together.
+ oStartNode = FCKTools.GetFirstInlineNode( oChildNode ) ;
+ oEndNode = FCKTools.GetLastInlineNode( oChildNode ) ;
+ }
+
+ // Create a new tag which holds the content of the affected node(s) located before (but not including) the child node and offset
+ if ( FCKRegexLib.BlockElements.test( oStartNode.nodeName ) && !FCKRegexLib.ListElements.test( oParentBlockNode.nodeName ) )
+ {
+ // First element of the bunch is already a block element so we don't want to wrap it with a new block element.
+ // Just use this first node provided it is not the same as the last node (to prevent duplication), otherwise
+ // create a new empty P element.
+ if ( oStartNode != oEndNode )
+ {
+ oBlockNode1 = oStartNode.cloneNode( true ) ;
+ }
+ else
+ {
+ oBlockNode1 = FCK.EditorDocument.createElement( "P" ) ;
+ oBlockNode1.innerHTML = GECKO_BOGUS ;
+
+ if ( !FCKRegexLib.SpecialBlockElements.test( oParentBlockNode.nodeName ) )
+ FCKTools.SetElementAttributes( oBlockNode1, oParentBlockNode.attributes ) ; // Transfer across any class attributes, etc
+ }
+ }
+ else
+ {
+ // First element of the bunch is not a block element (or it is a LI element which is a special case).
+ // So ensure all of the inline nodes before the selection are wrapped with a suitable block element.
+ var oBlockNode1 = FCK.EditorDocument.createElement( FCKRegexLib.SpecialBlockElements.test( oParentBlockNode.nodeName ) ? "P" : oParentBlockNode.tagName ) ;
+ oRange.setStartBefore( oStartNode ) ;
+ if ( nOffset == 0 )
+ oRange.setEndBefore( oChildNode ) ;
+ else
+ oRange.setEnd( oChildNode, nOffset ) ;
+ oBlockNode1.appendChild( oRange.cloneContents() ) ;
+ oBlockNode1.innerHTML = oBlockNode1.innerHTML.replace(/[\x00-\x1F]/g, "") ; // Prevent any control characters returned within the innerHTML from causing problems
+ if ( FCKTools.NodeIsEmpty( oBlockNode1 ) )
+ oBlockNode1.innerHTML = GECKO_BOGUS ; // Ensure it has some content, required for Gecko
+ else
+ oBlockNode1.innerHTML = oBlockNode1.innerHTML.replace( FCKRegexLib.EmptyElement, "" ) ; // Strip out any empty tags that may have been generated by the split
+ if ( !FCKRegexLib.SpecialBlockElements.test( oParentBlockNode.nodeName ) )
+ FCKTools.SetElementAttributes( oBlockNode1, oParentBlockNode.attributes ) ; // Transfer across any class attributes, etc
+ }
+
+ // Create a new tag which holds the content of the affected node(s) located after (and including) the child node
+ if ( FCKRegexLib.BlockElements.test( oEndNode.nodeName ) && !FCKRegexLib.ListElements.test( oParentBlockNode.nodeName ) )
+ {
+ // Last element of the bunch is already a block element so we don't want to wrap it with a new block element.
+ oBlockNode2 = oEndNode.cloneNode( true ) ;
+ }
+ else
+ {
+ // Last element of the bunch is not a block element (or it is a LI element which is a special case).
+ // So ensure all of the inline nodes after and including the child/offset are wrapped with a suitable block element.
+ var oBlockNode2 = FCK.EditorDocument.createElement( FCKRegexLib.SpecialBlockElements.test( oParentBlockNode.nodeName ) ? "P" : oParentBlockNode.tagName );
+ oRange.setEndAfter( oEndNode );
+ if ( nOffset == 0 )
+ oRange.setStartBefore( oChildNode ) ;
+ else
+ oRange.setStart( oChildNode, nOffset );
+ oBlockNode2.appendChild( oRange.cloneContents() ) ;
+ oBlockNode2.innerHTML = oBlockNode2.innerHTML.replace(/[\x00-\x1F]/g, "") ; // Prevent any control characters returned within the innerHTML from causing problems
+ if ( FCKTools.NodeIsEmpty( oBlockNode2 ) )
+ oBlockNode2.innerHTML = GECKO_BOGUS ; // Ensure it has some content, required for Gecko
+ else
+ oBlockNode2.innerHTML = oBlockNode2.innerHTML.replace( FCKRegexLib.EmptyElement, "" ) ; // Strip out any empty tags that may have been generated by the split
+ if ( !FCKRegexLib.SpecialBlockElements.test( oParentBlockNode.nodeName ) )
+ FCKTools.SetElementAttributes( oBlockNode2, oParentBlockNode.attributes ) ; // Transfer across any class attributes, etc
+ }
+
+ // Insert the resulting nodes into a document fragment
+ oFragment.appendChild( oBlockNode1 );
+ oFragment.appendChild( oBlockNode2 );
+
+ // Replace the affected nodes with the new nodes (fragment)
+ FCKTools.ReplaceNodes( oParentBlockNode, oStartNode, oEndNode, oFragment ) ;
+
+ // Return the second node so it can be used for setting cursor position, etc
+ return oBlockNode2 ;
+}
+
+// Function that replaces the specified range of nodes (inclusive) within the supplied parent
+// with the nodes stored in the supplied document fragment.
+FCKTools.ReplaceNodes = function( oParentBlockNode, oStartNode, oEndNode, oFragment )
+{
+ var oRange = FCK.EditorDocument.createRange() ;
+
+ // Delete the affected node(s)
+ if ( !FCKRegexLib.SpecialBlockElements.test( oParentBlockNode.nodeName ) && (oParentBlockNode.firstChild == oStartNode) && (oParentBlockNode.lastChild == oEndNode) )
+ {
+ // Entire parent block node is to be replaced so insert the two new block elements before it
+ // and then remove the old node
+ oRange.selectNode ( oParentBlockNode );
+ }
+ else
+ {
+ // Only part of the parent block node is to be replaced so insert the two new block elements
+ // before the first inline node of the affected content and then remove the old nodes
+ oRange.setEndAfter( oEndNode ) ;
+ oRange.setStartBefore( oStartNode ) ;
+ }
+
+ // Insert the replacement nodes
+ oRange.deleteContents() ;
+ oRange.insertNode( oFragment ) ;
+}
+*/
+// END iCM Modifications
+
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fcktools_ie.js b/htdocs/includes/fckeditor/editor/_source/internals/fcktools_ie.js
new file mode 100644
index 00000000000..6b5eead7de5
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fcktools_ie.js
@@ -0,0 +1,197 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fcktools_ie.js
+ * Utility functions. (IE version).
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+FCKTools.CancelEvent = function( e )
+{
+ return false ;
+}
+
+// Appends a CSS file to a document.
+FCKTools.AppendStyleSheet = function( documentElement, cssFileUrl )
+{
+ return documentElement.createStyleSheet( cssFileUrl ).owningElement ;
+}
+
+// Removes all attributes and values from the element.
+FCKTools.ClearElementAttributes = function( element )
+{
+ element.clearAttributes() ;
+}
+
+FCKTools.GetAllChildrenIds = function( parentElement )
+{
+ var aIds = new Array() ;
+ for ( var i = 0 ; i < parentElement.all.length ; i++ )
+ {
+ var sId = parentElement.all[i].id ;
+ if ( sId && sId.length > 0 )
+ aIds[ aIds.length ] = sId ;
+ }
+ return aIds ;
+}
+
+FCKTools.RemoveOuterTags = function( e )
+{
+ e.insertAdjacentHTML( 'beforeBegin', e.innerHTML ) ;
+ e.parentNode.removeChild( e ) ;
+}
+
+FCKTools.CreateXmlObject = function( object )
+{
+ var aObjs ;
+
+ switch ( object )
+ {
+ case 'XmlHttp' :
+ aObjs = [ 'MSXML2.XmlHttp', 'Microsoft.XmlHttp' ] ;
+ break ;
+
+ case 'DOMDocument' :
+ aObjs = [ 'MSXML2.DOMDocument', 'Microsoft.XmlDom' ] ;
+ break ;
+ }
+
+ for ( var i = 0 ; i < 2 ; i++ )
+ {
+ try { return new ActiveXObject( aObjs[i] ) ; }
+ catch (e)
+ {}
+ }
+
+ if ( FCKLang.NoActiveX )
+ {
+ alert( FCKLang.NoActiveX ) ;
+ FCKLang.NoActiveX = null ;
+ }
+}
+
+FCKTools.DisableSelection = function( element )
+{
+ element.unselectable = 'on' ;
+
+ var e, i = 0 ;
+ while ( e = element.all[ i++ ] )
+ {
+ switch ( e.tagName )
+ {
+ case 'IFRAME' :
+ case 'TEXTAREA' :
+ case 'INPUT' :
+ case 'SELECT' :
+ /* Ignore the above tags */
+ break ;
+ default :
+ e.unselectable = 'on' ;
+ }
+ }
+}
+
+FCKTools.GetScrollPosition = function( relativeWindow )
+{
+ var oDoc = relativeWindow.document ;
+
+ // Try with the doc element.
+ var oPos = { X : oDoc.documentElement.scrollLeft, Y : oDoc.documentElement.scrollTop } ;
+
+ if ( oPos.X > 0 || oPos.Y > 0 )
+ return oPos ;
+
+ // If no scroll, try with the body.
+ return { X : oDoc.body.scrollLeft, Y : oDoc.body.scrollTop } ;
+}
+
+FCKTools.AddEventListener = function( sourceObject, eventName, listener )
+{
+ sourceObject.attachEvent( 'on' + eventName, listener ) ;
+}
+
+FCKTools.RemoveEventListener = function( sourceObject, eventName, listener )
+{
+ sourceObject.detachEvent( 'on' + eventName, listener ) ;
+}
+
+// Listeners attached with this function cannot be detached.
+FCKTools.AddEventListenerEx = function( sourceObject, eventName, listener, paramsArray )
+{
+ // Ok... this is a closures party, but is the only way to make it clean of memory leaks.
+ var o = new Object() ;
+ o.Source = sourceObject ;
+ o.Params = paramsArray || [] ; // Memory leak if we have DOM objects here.
+ o.Listener = function( ev )
+ {
+ return listener.apply( o.Source, [ ev ].concat( o.Params ) ) ;
+ }
+
+ if ( FCK.IECleanup )
+ FCK.IECleanup.AddItem( null, function() { o.Source = null ; o.Params = null ; } ) ;
+
+ sourceObject.attachEvent( 'on' + eventName, o.Listener ) ;
+
+ sourceObject = null ; // Memory leak cleaner (because of the above closure).
+ paramsArray = null ; // Memory leak cleaner (because of the above closure).
+}
+
+// Returns and object with the "Width" and "Height" properties.
+FCKTools.GetViewPaneSize = function( win )
+{
+ var oSizeSource ;
+
+ var oDoc = win.document.documentElement ;
+ if ( oDoc && oDoc.clientWidth ) // IE6 Strict Mode
+ oSizeSource = oDoc ;
+ else
+ oSizeSource = top.document.body ; // Other IEs
+
+ if ( oSizeSource )
+ return { Width : oSizeSource.clientWidth, Height : oSizeSource.clientHeight } ;
+ else
+ return { Width : 0, Height : 0 } ;
+}
+
+FCKTools.SaveStyles = function( element )
+{
+ var oSavedStyles = new Object() ;
+
+ if ( element.className.length > 0 )
+ {
+ oSavedStyles.Class = element.className ;
+ element.className = '' ;
+ }
+
+ var sInlineStyle = element.style.cssText ;
+
+ if ( sInlineStyle.length > 0 )
+ {
+ oSavedStyles.Inline = sInlineStyle ;
+ element.style.cssText = '' ;
+ }
+
+ return oSavedStyles ;
+}
+
+FCKTools.RestoreStyles = function( element, savedStyles )
+{
+ element.className = savedStyles.Class || '' ;
+ element.style.cssText = savedStyles.Inline || '' ;
+}
+
+FCKTools.RegisterDollarFunction = function( targetWindow )
+{
+ targetWindow.$ = targetWindow.document.getElementById ;
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fckundo_gecko.js b/htdocs/includes/fckeditor/editor/_source/internals/fckundo_gecko.js
new file mode 100644
index 00000000000..88bff937c18
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fckundo_gecko.js
@@ -0,0 +1,23 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckundo_gecko.js
+ * Fake implementation to ignore calls on Gecko.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKUndo = new Object() ;
+
+FCKUndo.SaveUndoStep = function()
+{}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fckundo_ie.js b/htdocs/includes/fckeditor/editor/_source/internals/fckundo_ie.js
new file mode 100644
index 00000000000..829eac438b8
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fckundo_ie.js
@@ -0,0 +1,119 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckundo_ie.js
+ * IE specific implementation for the Undo/Redo system.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKUndo = new Object() ;
+
+FCKUndo.SavedData = new Array() ;
+FCKUndo.CurrentIndex = -1 ;
+FCKUndo.TypesCount = FCKUndo.MaxTypes = 25 ;
+FCKUndo.Typing = false ;
+
+FCKUndo.SaveUndoStep = function()
+{
+ if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
+ return ;
+
+ // Shrink the array to the current level.
+ FCKUndo.SavedData = FCKUndo.SavedData.slice( 0, FCKUndo.CurrentIndex + 1 ) ;
+
+ // Get the Actual HTML.
+ var sHtml = FCK.EditorDocument.body.innerHTML ;
+
+ // Cancel operation if the new step is identical to the previous one.
+ if ( FCKUndo.CurrentIndex >= 0 && sHtml == FCKUndo.SavedData[ FCKUndo.CurrentIndex ][0] )
+ return ;
+
+ // If we reach the Maximun number of undo levels, we must remove the first
+ // entry of the list shifting all elements.
+ if ( FCKUndo.CurrentIndex + 1 >= FCKConfig.MaxUndoLevels )
+ FCKUndo.SavedData.shift() ;
+ else
+ FCKUndo.CurrentIndex++ ;
+
+ // Get the actual selection.
+ var sBookmark ;
+ if ( FCK.EditorDocument.selection.type == 'Text' )
+ sBookmark = FCK.EditorDocument.selection.createRange().getBookmark() ;
+
+ // Save the new level in front of the actual position.
+ FCKUndo.SavedData[ FCKUndo.CurrentIndex ] = [ sHtml, sBookmark ] ;
+
+ 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 it is the first step.
+ if ( FCKUndo.CurrentIndex == ( FCKUndo.SavedData.length - 1 ) )
+ {
+ // Save the actual state for a possible "Redo" call.
+ FCKUndo.SaveUndoStep() ;
+ }
+
+ // Go a step back.
+ FCKUndo._ApplyUndoLevel( --FCKUndo.CurrentIndex ) ;
+
+ FCK.Events.FireEvent( "OnSelectionChange" ) ;
+ }
+}
+
+FCKUndo.Redo = function()
+{
+ if ( FCKUndo.CheckRedoState() )
+ {
+ // Go a step forward.
+ FCKUndo._ApplyUndoLevel( ++FCKUndo.CurrentIndex ) ;
+
+ FCK.Events.FireEvent( "OnSelectionChange" ) ;
+ }
+}
+
+FCKUndo._ApplyUndoLevel = function(level)
+{
+ var oData = FCKUndo.SavedData[ level ] ;
+
+ if ( !oData )
+ return ;
+
+ // Update the editor contents with that step data.
+ FCK.SetInnerHtml( oData[0] ) ;
+// FCK.EditorDocument.body.innerHTML = oData[0] ;
+
+ if ( oData[1] )
+ {
+ var oRange = FCK.EditorDocument.selection.createRange() ;
+ oRange.moveToBookmark( oData[1] ) ;
+ oRange.select() ;
+ }
+
+ FCKUndo.TypesCount = 0 ;
+ FCKUndo.Typing = false ;
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fckurlparams.js b/htdocs/includes/fckeditor/editor/_source/internals/fckurlparams.js
new file mode 100644
index 00000000000..5318131966c
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fckurlparams.js
@@ -0,0 +1,32 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckurlparams.js
+ * Defines the FCKURLParams object that is used to get all parameters
+ * passed by the URL QueryString (after the "?").
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+// #### URLParams: holds all URL passed parameters (like ?Param1=Value1&Param2=Value2)
+var FCKURLParams = new Object() ;
+
+var aParams = document.location.search.substr(1).split('&') ;
+for ( var i = 0 ; i < aParams.length ; i++ )
+{
+ var aParam = aParams[i].split('=') ;
+ var sParamName = aParam[0] ;
+ var sParamValue = aParam[1] ;
+
+ FCKURLParams[ sParamName ] = sParamValue ;
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/_source/internals/fckxhtml.js b/htdocs/includes/fckeditor/editor/_source/internals/fckxhtml.js
new file mode 100644
index 00000000000..baa919ae190
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/_source/internals/fckxhtml.js
@@ -0,0 +1,398 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fckxhtml.js
+ * Defines the FCKXHtml object, responsible for the XHTML operations.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKXHtml = new Object() ;
+
+FCKXHtml.CurrentJobNum = 0 ;
+
+FCKXHtml.GetXHTML = function( node, includeNode, format )
+{
+ FCKXHtmlEntities.Initialize() ;
+
+ this._CreateNode = FCKConfig.ForceStrongEm ? FCKXHtml_CreateNode_StrongEm : FCKXHtml_CreateNode_Normal ;
+
+ // Special blocks are blocks of content that remain untouched during the
+ // process. It is used for SCRIPTs and STYLEs.
+ FCKXHtml.SpecialBlocks = new Array() ;
+
+ // Create the XML DOMDocument object.
+ this.XML = FCKTools.CreateXmlObject( 'DOMDocument' ) ;
+
+ // Add a root element that holds all child nodes.
+ this.MainNode = this.XML.appendChild( this.XML.createElement( 'xhtml' ) ) ;
+
+ FCKXHtml.CurrentJobNum++ ;
+
+ if ( includeNode )
+ this._AppendNode( this.MainNode, node ) ;
+ else
+ this._AppendChildNodes( this.MainNode, node, false ) ;
+
+ // Get the resulting XHTML as a string.
+ var sXHTML = this._GetMainXmlString() ;
+
+ // Strip the "XHTML" root node.
+ sXHTML = sXHTML.substr( 7, sXHTML.length - 15 ).trim() ;
+
+ // Remove the trailing
added by Gecko.
+ if ( FCKBrowserInfo.IsGecko )
+ sXHTML = sXHTML.replace( /
$/, '' ) ;
+
+ // Add a space in the tags with no closing tags, like
->
+ sXHTML = sXHTML.replace( FCKRegexLib.SpaceNoClose, ' />');
+
+ if ( FCKConfig.ForceSimpleAmpersand )
+ sXHTML = sXHTML.replace( FCKRegexLib.ForceSimpleAmpersand, '&' ) ;
+
+ if ( format )
+ sXHTML = FCKCodeFormatter.Format( sXHTML ) ;
+
+ // Now we put back the SpecialBlocks contents.
+ for ( var i = 0 ; i < FCKXHtml.SpecialBlocks.length ; i++ )
+ {
+ var oRegex = new RegExp( '___FCKsi___' + i ) ;
+ sXHTML = sXHTML.replace( oRegex, FCKXHtml.SpecialBlocks[i] ) ;
+ }
+
+ this.XML = null ;
+
+ return sXHTML
+}
+
+FCKXHtml._AppendAttribute = function( xmlNode, attributeName, attributeValue )
+{
+ try
+ {
+ // Create the attribute.
+ var oXmlAtt = this.XML.createAttribute( attributeName ) ;
+
+ oXmlAtt.value = attributeValue ? attributeValue : '' ;
+
+ // Set the attribute in the node.
+ xmlNode.attributes.setNamedItem( oXmlAtt ) ;
+ }
+ catch (e)
+ {}
+}
+
+FCKXHtml._AppendChildNodes = function( xmlNode, htmlNode, isBlockElement )
+{
+ var iCount = 0 ;
+
+ var oNode = htmlNode.firstChild ;
+
+ while ( oNode )
+ {
+ if ( this._AppendNode( xmlNode, oNode ) )
+ iCount++ ;
+
+ oNode = oNode.nextSibling ;
+ }
+
+ if ( iCount == 0 )
+ {
+ if ( isBlockElement && FCKConfig.FillEmptyBlocks )
+ {
+ this._AppendEntity( xmlNode, 'nbsp' ) ;
+ return ;
+ }
+
+ // We can't use short representation of empty elements that are not marked
+ // as empty in th XHTML DTD.
+ if ( !FCKRegexLib.EmptyElements.test( htmlNode.nodeName ) )
+ xmlNode.appendChild( this.XML.createTextNode('') ) ;
+ }
+}
+
+FCKXHtml._AppendNode = function( xmlNode, htmlNode )
+{
+ if ( !htmlNode )
+ return ;
+
+ switch ( htmlNode.nodeType )
+ {
+ // Element Node.
+ case 1 :
+
+ // Here we found an element that is not the real element, but a
+ // fake one (like the Flash placeholder image), so we must get the real one.
+ if ( htmlNode.getAttribute('_fckfakelement') )
+ return FCKXHtml._AppendNode( xmlNode, FCK.GetRealElement( htmlNode ) ) ;
+
+ // Mozilla insert custom nodes in the DOM.
+ if ( FCKBrowserInfo.IsGecko && htmlNode.hasAttribute('_moz_editor_bogus_node') )
+ return false ;
+
+ // This is for elements that are instrumental for FCKeditor and
+ // should be removed from the final HTML.
+ if ( htmlNode.getAttribute('_fckdelete') )
+ return false ;
+
+ // Get the element name.
+ var sNodeName = htmlNode.nodeName ;
+
+ //Add namespace:
+ if ( FCKBrowserInfo.IsIE && htmlNode.scopeName && htmlNode.scopeName != 'HTML' )
+ sNodeName = htmlNode.scopeName + ':' + sNodeName ;
+
+ // Check if the node name is valid, otherwise ignore this tag.
+ // If the nodeName starts with a slash, it is a orphan closing tag.
+ // On some strange cases, the nodeName is empty, even if the node exists.
+ if ( !FCKRegexLib.ElementName.test( sNodeName ) )
+ return false ;
+
+ sNodeName = sNodeName.toLowerCase() ;
+
+ if ( FCKBrowserInfo.IsGecko && sNodeName == 'br' && htmlNode.hasAttribute('type') && htmlNode.getAttribute( 'type', 2 ) == '_moz' )
+ return false ;
+
+ // The already processed nodes must be marked to avoid then to be duplicated (bad formatted HTML).
+ // So here, the "mark" is checked... if the element is Ok, then mark it.
+ if ( htmlNode._fckxhtmljob && htmlNode._fckxhtmljob == FCKXHtml.CurrentJobNum )
+ return false ;
+
+ var oNode = this._CreateNode( sNodeName ) ;
+
+ // Add all attributes.
+ FCKXHtml._AppendAttributes( xmlNode, htmlNode, oNode, sNodeName ) ;
+
+ htmlNode._fckxhtmljob = FCKXHtml.CurrentJobNum ;
+
+ // Tag specific processing.
+ var oTagProcessor = FCKXHtml.TagProcessors[ sNodeName ] ;
+
+ if ( oTagProcessor )
+ {
+ oNode = oTagProcessor( oNode, htmlNode, xmlNode ) ;
+ if ( !oNode ) break ;
+ }
+ else
+ this._AppendChildNodes( oNode, htmlNode, FCKRegexLib.BlockElements.test( sNodeName ) ) ;
+
+ xmlNode.appendChild( oNode ) ;
+
+ break ;
+
+ // Text Node.
+ case 3 :
+ this._AppendTextNode( xmlNode, htmlNode.nodeValue.replaceNewLineChars(' ') ) ;
+ break ;
+
+ // Comment
+ case 8 :
+ try { xmlNode.appendChild( this.XML.createComment( htmlNode.nodeValue ) ) ; }
+ catch (e) { /* Do nothing... probably this is a wrong format comment. */ }
+ break ;
+
+ // Unknown Node type.
+ default :
+ xmlNode.appendChild( this.XML.createComment( "Element not supported - Type: " + htmlNode.nodeType + " Name: " + htmlNode.nodeName ) ) ;
+ break ;
+ }
+ return true ;
+}
+
+function FCKXHtml_CreateNode_StrongEm( nodeName )
+{
+ switch ( nodeName )
+ {
+ case 'b' :
+ nodeName = 'strong' ;
+ break ;
+ case 'i' :
+ nodeName = 'em' ;
+ break ;
+ }
+ return this.XML.createElement( nodeName ) ;
+}
+
+function FCKXHtml_CreateNode_Normal( nodeName )
+{
+ return this.XML.createElement( nodeName ) ;
+}
+
+// Append an item to the SpecialBlocks array and returns the tag to be used.
+FCKXHtml._AppendSpecialItem = function( item )
+{
+ return '___FCKsi___' + FCKXHtml.SpecialBlocks.AddItem( item ) ;
+}
+
+//if ( FCKConfig.ProcessHTMLEntities )
+//{
+ FCKXHtml._AppendTextNode = function( targetNode, textValue )
+ {
+ // We can't just replace the special chars with entities and create a
+ // text node with it. We must split the text isolating the special chars
+ // and add each piece a time.
+ var asPieces = textValue.match( FCKXHtmlEntities.EntitiesRegex ) ;
+
+ if ( asPieces )
+ {
+ for ( var i = 0 ; i < asPieces.length ; i++ )
+ {
+ if ( asPieces[i].length == 1 )
+ {
+ var sEntity = FCKXHtmlEntities.Entities[ asPieces[i] ] ;
+ if ( sEntity != null )
+ {
+ this._AppendEntity( targetNode, sEntity ) ;
+ continue ;
+ }
+ }
+ targetNode.appendChild( this.XML.createTextNode( asPieces[i] ) ) ;
+ }
+ }
+ }
+//}
+//else
+//{
+// FCKXHtml._AppendTextNode = function( targetNode, textValue )
+// {
+// targetNode.appendChild( this.XML.createTextNode( textValue ) ) ;
+// }
+//}
+
+// An object that hold tag specific operations.
+FCKXHtml.TagProcessors = new Object() ;
+
+FCKXHtml.TagProcessors['img'] = function( node, htmlNode )
+{
+ // The "ALT" attribute is required in XHTML.
+ if ( ! node.attributes.getNamedItem( 'alt' ) )
+ FCKXHtml._AppendAttribute( node, 'alt', '' ) ;
+
+ var sSavedUrl = htmlNode.getAttribute( '_fcksavedurl' ) ;
+ if ( sSavedUrl && sSavedUrl.length > 0 )
+ FCKXHtml._AppendAttribute( node, 'src', sSavedUrl ) ;
+
+ return node ;
+}
+
+FCKXHtml.TagProcessors['a'] = function( node, htmlNode )
+{
+ var sSavedUrl = htmlNode.getAttribute( '_fcksavedurl' ) ;
+ if ( sSavedUrl && sSavedUrl.length > 0 )
+ FCKXHtml._AppendAttribute( node, 'href', sSavedUrl ) ;
+
+ FCKXHtml._AppendChildNodes( node, htmlNode, false ) ;
+
+ return node ;
+}
+
+FCKXHtml.TagProcessors['script'] = function( node, htmlNode )
+{
+ // The "TYPE" attribute is required in XHTML.
+ if ( ! node.attributes.getNamedItem( 'type' ) )
+ FCKXHtml._AppendAttribute( node, 'type', 'text/javascript' ) ;
+
+ node.appendChild( FCKXHtml.XML.createTextNode( FCKXHtml._AppendSpecialItem( htmlNode.text ) ) ) ;
+
+ return node ;
+}
+
+FCKXHtml.TagProcessors['style'] = function( node, htmlNode )
+{
+ // The "_fcktemp" attribute is used to mark the
+
+
+ GNU Lesser General Public License
+
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite
+ 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute
+ verbatim copies of this license document, but changing it is not allowed.
+ [This is the first released version of the Lesser GPL. It also counts as the
+ successor of the GNU Library Public License, version 2, hence the version
+ number 2.1.]
+
+ Preamble
+ The licenses for most software are designed to take away your freedom to share
+ and change it. By contrast, the GNU General Public Licenses are intended to
+ guarantee your freedom to share and change free software--to make sure the
+ software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some specially
+ designated software packages--typically libraries--of the Free Software
+ Foundation and other authors who decide to use it. You can use it too, but we
+ suggest you first think carefully about whether this license or the ordinary
+ General Public License is the better strategy to use in any particular case,
+ based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use, not price.
+ Our General Public Licenses are designed to make sure that you have the freedom
+ to distribute copies of free software (and charge for this service if you
+ wish); that you receive source code or can get it if you want it; that you can
+ change the software and use pieces of it in new free programs; and that you are
+ informed that you can do these things.
+ To protect your rights, we need to make restrictions that forbid distributors to
+ deny you these rights or to ask you to surrender these rights. These
+ restrictions translate to certain responsibilities for you if you distribute
+ copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis or for a
+ fee, you must give the recipients all the rights that we gave you. You must
+ make sure that they, too, receive or can get the source code. If you link other
+ code with the library, you must provide complete object files to the
+ recipients, so that they can relink them with the library after making changes
+ to the library and recompiling it. And you must show them these terms so they
+ know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the library, and
+ (2) we offer you this license, which gives you legal permission to copy,
+ distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that there is no
+ warranty for the free library. Also, if the library is modified by someone else
+ and passed on, the recipients should know that what they have is not the
+ original version, so that the original author's reputation will not be affected
+ by problems that might be introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of any free
+ program. We wish to make sure that a company cannot effectively restrict the
+ users of a free program by obtaining a restrictive license from a patent
+ holder. Therefore, we insist that any patent license obtained for a version of
+ the library must be consistent with the full freedom of use specified in this
+ license.
+
+ Most GNU software, including some libraries, is covered by the ordinary GNU
+ General Public License. This license, the GNU Lesser General Public License,
+ applies to certain designated libraries, and is quite different from the
+ ordinary General Public License. We use this license for certain libraries in
+ order to permit linking those libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using a shared
+ library, the combination of the two is legally speaking a combined work, a
+ derivative of the original library. The ordinary General Public License
+ therefore permits such linking only if the entire combination fits its criteria
+ of freedom. The Lesser General Public License permits more lax criteria for
+ linking other code with the library.
+
+ We call this license the "Lesser" General Public License because it does Less to
+ protect the user's freedom than the ordinary General Public License. It also
+ provides other free software developers Less of an advantage over competing
+ non-free programs. These disadvantages are the reason we use the ordinary
+ General Public License for many libraries. However, the Lesser license provides
+ advantages in certain special circumstances.
+
+ For example, on rare occasions, there may be a special need to encourage the
+ widest possible use of a certain library, so that it becomes a de-facto
+ standard. To achieve this, non-free programs must be allowed to use the
+ library. A more frequent case is that a free library does the same job as
+ widely used non-free libraries. In this case, there is little to gain by
+ limiting the free library to free software only, so we use the Lesser General
+ Public License.
+
+ In other cases, permission to use a particular library in non-free programs
+ enables a greater number of people to use a large body of free software. For
+ example, permission to use the GNU C Library in non-free programs enables many
+ more people to use the whole GNU operating system, as well as its variant, the
+ GNU/Linux operating system.
+
+ Although the Lesser General Public License is Less protective of the users'
+ freedom, it does ensure that the user of a program that is linked with the
+ Library has the freedom and the wherewithal to run that program using a
+ modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and modification
+ follow. Pay close attention to the difference between a "work based on the
+ library" and a "work that uses the library". The former contains code derived
+ from the library, whereas the latter must be combined with the library in order
+ to run.
+
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+ 0. This License Agreement applies to any software library or
+ other program which contains a notice placed by the copyright holder or other
+ authorized party saying it may be distributed under the terms of this Lesser
+ General Public License (also called "this License"). Each licensee is addressed
+ as "you".
+ A "library" means a collection of software functions and/or data prepared so as
+ to be conveniently linked with application programs (which use some of those
+ functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work which has been
+ distributed under these terms. A "work based on the Library" means either the
+ Library or any derivative work under copyright law: that is to say, a work
+ containing the Library or a portion of it, either verbatim or with
+ modifications and/or translated straightforwardly into another language.
+ (Hereinafter, translation is included without limitation in the term
+ "modification".)
+
+ "Source code" for a work means the preferred form of the work for making
+ modifications to it. For a library, complete source code means all the source
+ code for all modules it contains, plus any associated interface definition
+ files, plus the scripts used to control compilation and installation of the
+ library.
+ Activities other than copying, distribution and modification are not covered by
+ this License; they are outside its scope. The act of running a program using
+ the Library is not restricted, and output from such a program is covered only
+ if its contents constitute a work based on the Library (independent of the use
+ of the Library in a tool for writing it). Whether that is true depends on what
+ the Library does and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+ complete source code as you receive it, in any medium, provided that you
+ conspicuously and appropriately publish on each copy an appropriate copyright
+ notice and disclaimer of warranty; keep intact all the notices that refer to
+ this License and to the absence of any warranty; and distribute a copy of this
+ License along with the Library.
+
+ You may charge a fee for the physical act of transferring a copy, and you may at
+ your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Library or any
+ portion of it, thus forming a work based on the Library, and copy and
+ distribute such modifications or work under the terms of Section 1 above,
+ provided that you also meet all of these conditions:
+
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices stating that you
+ changed the files and the date of any change.
+ c) You must cause the whole of the work to be licensed at no charge to all third
+ parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a table of data
+ to be supplied by an application program that uses the facility, other than as
+ an argument passed when the facility is invoked, then you must make a good
+ faith effort to ensure that, in the event an application does not supply such
+ function or table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has a purpose that
+ is entirely well-defined independent of the application. Therefore, Subsection
+ 2d requires that any application-supplied function or table used by this
+ function must be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+ These requirements apply to the modified work as a whole. If identifiable
+ sections of that work are not derived from the Library, and can be reasonably
+ considered independent and separate works in themselves, then this License, and
+ its terms, do not apply to those sections when you distribute them as separate
+ works. But when you distribute the same sections as part of a whole which is a
+ work based on the Library, the distribution of the whole must be on the terms
+ of this License, whose permissions for other licensees extend to the entire
+ whole, and thus to each and every part regardless of who wrote it.
+
+ Thus, it is not the intent of this section to claim rights or contest your
+ rights to work written entirely by you; rather, the intent is to exercise the
+ right to control the distribution of derivative or collective works based on
+ the Library.
+
+ In addition, mere aggregation of another work not based on the Library with the
+ Library (or with a work based on the Library) on a volume of a storage or
+ distribution medium does not bring the other work under the scope of this
+ License.
+
+
+ 3. You may opt to apply the terms of the ordinary GNU General
+ Public License instead of this License to a given copy of the Library. To do
+ this, you must alter all the notices that refer to this License, so that they
+ refer to the ordinary GNU General Public License, version 2, instead of to this
+ License. (If a newer version than version 2 of the ordinary GNU General Public
+ License has appeared, then you can specify that version instead if you wish.)
+ Do not make any other change in these notices.
+
+ Once this change is made in a given copy, it is irreversible for that copy, so
+ the ordinary GNU General Public License applies to all subsequent copies and
+ derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of the Library into
+ a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+ derivative of it, under Section 2) in object code or executable form under the
+ terms of Sections 1 and 2 above provided that you accompany it with the
+ complete corresponding machine-readable source code, which must be distributed
+ under the terms of Sections 1 and 2 above on a medium customarily used for
+ software interchange.
+
+ If distribution of object code is made by offering access to copy from a
+ designated place, then offering equivalent access to copy the source code from
+ the same place satisfies the requirement to distribute the source code, even
+ though third parties are not compelled to copy the source along with the object
+ code.
+ 5. A program that contains no derivative of any portion of the
+ Library, but is designed to work with the Library by being compiled or linked
+ with it, is called a "work that uses the Library". Such a work, in isolation,
+ is not a derivative work of the Library, and therefore falls outside the scope
+ of this License.
+
+ However, linking a "work that uses the Library" with the Library creates an
+ executable that is a derivative of the Library (because it contains portions of
+ the Library), rather than a "work that uses the library". The executable is
+ therefore covered by this License. Section 6 states terms for distribution of
+ such executables.
+
+ When a "work that uses the Library" uses material from a header file that is
+ part of the Library, the object code for the work may be a derivative work of
+ the Library even though the source code is not. Whether this is true is
+ especially significant if the work can be linked without the Library, or if the
+ work is itself a library. The threshold for this to be true is not precisely
+ defined by law.
+
+ If such an object file uses only numerical parameters, data structure layouts
+ and accessors, and small macros and small inline functions (ten lines or less
+ in length), then the use of the object file is unrestricted, regardless of
+ whether it is legally a derivative work. (Executables containing this object
+ code plus portions of the Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may distribute the
+ object code for the work under the terms of Section 6. Any executables
+ containing that work also fall under Section 6, whether or not they are linked
+ directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine
+ or link a "work that uses the Library" with the Library to produce a work
+ containing portions of the Library, and distribute that work under terms of
+ your choice, provided that the terms permit modification of the work for the
+ customer's own use and reverse engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the Library is
+ used in it and that the Library and its use are covered by this License. You
+ must supply a copy of this License. If the work during execution displays
+ copyright notices, you must include the copyright notice for the Library among
+ them, as well as a reference directing the user to the copy of this License.
+ Also, you must do one of these things:
+
+
+ a) Accompany the work with the complete corresponding machine-readable source
+ code for the Library including whatever changes were used in the work (which
+ must be distributed under Sections 1 and 2 above); and, if the work is an
+ executable linked with the Library, with the complete machine-readable "work
+ that uses the Library", as object code and/or source code, so that the user can
+ modify the Library and then relink to produce a modified executable containing
+ the modified Library. (It is understood that the user who changes the contents
+ of definitions files in the Library will not necessarily be able to recompile
+ the application to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the Library. A
+ suitable mechanism is one that (1) uses at run time a copy of the library
+ already present on the user's computer system, rather than copying library
+ functions into the executable, and (2) will operate properly with a modified
+ version of the library, if the user installs one, as long as the modified
+ version is interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at least three years, to
+ give the same user the materials specified in Subsection 6a, above, for a
+ charge no more than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy from a
+ designated place, offer equivalent access to copy the above specified materials
+ from the same place.
+
+ e) Verify that the user has already received a copy of these materials or that
+ you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the Library" must
+ include any data and utility programs needed for reproducing the executable
+ from it. However, as a special exception, the materials to be distributed need
+ not include anything that is normally distributed (in either source or binary
+ form) with the major components (compiler, kernel, and so on) of the operating
+ system on which the executable runs, unless that component itself accompanies
+ the executable.
+
+ It may happen that this requirement contradicts the license restrictions of
+ other proprietary libraries that do not normally accompany the operating
+ system. Such a contradiction means you cannot use both them and the Library
+ together in an executable that you distribute.
+
+ 7. You may place library facilities that are a work based on
+ the Library side-by-side in a single library together with other library
+ facilities not covered by this License, and distribute such a combined library,
+ provided that the separate distribution of the work based on the Library and of
+ the other library facilities is otherwise permitted, and provided that you do
+ these two things:
+
+
+ a) Accompany the combined library with a copy of the same work based on the
+ Library, uncombined with any other library facilities. This must be distributed
+ under the terms of the Sections above.
+
+ b) Give prominent notice with the combined library of the fact that part of it
+ is a work based on the Library, and explaining where to find the accompanying
+ uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or
+ distribute the Library except as expressly provided under this License. Any
+ attempt otherwise to copy, modify, sublicense, link with, or distribute the
+ Library is void, and will automatically terminate your rights under this
+ License. However, parties who have received copies, or rights, from you under
+ this License will not have their licenses terminated so long as such parties
+ remain in full compliance.
+
+ 9. You are not required to accept this License, since you have
+ not signed it. However, nothing else grants you permission to modify or
+ distribute the Library or its derivative works. These actions are prohibited by
+ law if you do not accept this License. Therefore, by modifying or distributing
+ the Library (or any work based on the Library), you indicate your acceptance of
+ this License to do so, and all its terms and conditions for copying,
+ distributing or modifying the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based
+ on the Library), the recipient automatically receives a license from the
+ original licensor to copy, distribute, link with or modify the Library subject
+ to these terms and conditions. You may not impose any further restrictions on
+ the recipients' exercise of the rights granted herein. You are not responsible
+ for enforcing compliance by third parties with this License.
+
+ 11. If, as a consequence of a court judgment or allegation of
+ patent infringement or for any other reason (not limited to patent issues),
+ conditions are imposed on you (whether by court order, agreement or otherwise)
+ that contradict the conditions of this License, they do not excuse you from the
+ conditions of this License. If you cannot distribute so as to satisfy
+ simultaneously your obligations under this License and any other pertinent
+ obligations, then as a consequence you may not distribute the Library at all.
+ For example, if a patent license would not permit royalty-free redistribution
+ of the Library by all those who receive copies directly or indirectly through
+ you, then the only way you could satisfy both it and this License would be to
+ refrain entirely from distribution of the Library.
+
+ If any portion of this section is held invalid or unenforceable under any
+ particular circumstance, the balance of the section is intended to apply, and
+ the section as a whole is intended to apply in other circumstances.
+
+ It is not the purpose of this section to induce you to infringe any patents or
+ other property right claims or to contest validity of any such claims; this
+ section has the sole purpose of protecting the integrity of the free software
+ distribution system which is implemented by public license practices. Many
+ people have made generous contributions to the wide range of software
+ distributed through that system in reliance on consistent application of that
+ system; it is up to the author/donor to decide if he or she is willing to
+ distribute software through any other system and a licensee cannot impose that
+ choice.
+
+ This section is intended to make thoroughly clear what is believed to be a
+ consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted
+ in certain countries either by patents or by copyrighted interfaces, the
+ original copyright holder who places the Library under this License may add an
+ explicit geographical distribution limitation excluding those countries, so
+ that distribution is permitted only in or among countries not thus excluded. In
+ such case, this License incorporates the limitation as if written in the body
+ of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+ versions of the Lesser General Public License from time to time. Such new
+ versions will be similar in spirit to the present version, but may differ in
+ detail to address new problems or concerns.
+ Each version is given a distinguishing version number. If the Library specifies
+ a version number of this License which applies to it and "any later version",
+ you have the option of following the terms and conditions either of that
+ version or of any later version published by the Free Software Foundation. If
+ the Library does not specify a license version number, you may choose any
+ version ever published by the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other
+ free programs whose distribution conditions are incompatible with these, write
+ to the author to ask for permission. For software which is copyrighted by the
+ Free Software Foundation, write to the Free Software Foundation; we sometimes
+ make exceptions for this. Our decision will be guided by the two goals of
+ preserving the free status of all derivatives of our free software and of
+ promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+ WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT
+ WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+ PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
+ IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
+ QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE
+ DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
+ CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO
+ IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+ REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT
+ OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS
+ OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+ PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN
+ IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif b/htdocs/includes/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b7d6bc6fe32cb90cedb27352ac3421ade8549082
GIT binary patch
literal 2044
zcma)%`6JT}1Hiw#n9Z@!HdjqKMmDREo}Oyc95ctdo?NSyJF3}S$@AJAu_UBMJuyVC
z(H;@X!^~Y_9VC%aPk6|E_V&Dc-{(JgKRxG2{6bhA-7|CETa5$VuBzpY#@%KO9
z%w`-JA0M9=`7KG}Hs00^3=FKwgqfL{U%A@=08lEG|MUNk@fH*W03^WbpX8q>Kt(A{
zWV={t(j_IFrev(K+e1`uq$~23IQr$cxK@QE){SV*oUV(@w~L@#0EaYK{miIG@t-D$
z@F0F54ncw=6KUFDD9&FSk_{IKVuT@j-mq)A#CxtWS6vN-mTn*j4FU?Nsul-A!K9m{
znjo-dwtoUhGsUO=j(06BKgQ6lq&wtMA-9-jRODS=DMnV%KWKY5xQ_abd&40)u37L-
z*UzL6tl7#m){yI;V|6_Gb0%bEZiFTF@9L7>4uonP@z>EXHn5_@p?P@Lb`V(I5HG`T
z%eyVmQFT#Z3*``%F}#fzP+Opl(tz8F~sSX2L1<=}~uB<0OLmtc$vYXOk;AN?PZ
zasnm|c;XTIdE-VcN
zC9f)Ew(;-ptp1H`Z-YTKEa8L2fT_BgV6A`8FS8$6SY0f%n(6MHNt
zzP~KMmXJ|W|LeC$h5U>1Ca6xp1JPk7cc=V^qEgMXGO?WTSOOIbHqMdL>CR475lP|2wqt^a7w)*(2L}=
z-!JVRIZ*R^&
zPl$;vp~5ikwU^m
zYq%ADUOC}+hf0{$uqqDmDdK0pd?6S=>*&iZ!8zd*`X^qIOmf4Qd-2?eRM=580PEKJ
zRoxxYSsK35XFnz8upddARj4eRFg3YFCQJGni;s}LHkqDVeH)1F88V_?YcoI`+_@+l
zQZd;p8}bzaYr_FowiynQHpN{%=N7w6`hB?h)KOpatdz09sr)BAWOYQaoST>{54{HvYHh+M%M}%%_5{`+jx5Cl8sX#Q85HQgO+7(Wafr{ECve(Y$
z=XuNZ23a;U2GrIl_-+y(v@UQ?kj@7Td~)pB+d#;jGvZEwHqu*BZQ2`CN||as9XxNM
z3Q_hF)UYH4Qe6Qu#RB2yK8}1JR<+%TDvAn|OWDy*&68sjQFN(D*`k`HYPraR#8b3&
z(;A@#@@TUkJBQ6&C}rMR$W{L&mElJzlXs-rvXznL4xvoNi5<4no{a2Bb$HvR01Uhg
z*IqOvb~^H)YN+#XT|>zFL+mTj+K@ggexk+*g-BB*&(`veHn-t!_=fp>$r`rT0+bR#
zlTM*d4$!T%l}E(HQ{Z(CjVQ4+;#}Q%YB#r&2EWBrTNe(lOw2Q@VNI=#HW!kH%B
z4n7&`adX1_+*X}eG$=Np&eTZA>QxYoQxJY4-6TEfiTQ}Uu2s{0E7)V!`*ec)biANBIj(-pYf!z9xF7NcMD_il8pg
zq;_7T8zFfamRfh#Ois0W}Dj3SS*R;Pdf~XX_XpXJM44|#5
z<4N|DLv|8A`No^yO5BRz&8qLJnc2`?9ly~$Z+ILwy`aP6gsN)odTp}m$v4q00&O)p
zV>egJh#i%X%-(m&wG^&^2Ot@MrwwDdl$23++CT5;$9!^?HGIz*+E&LiOJniYZevWR
z_t2esTMd0y@cDb>L=Emi0DW$&J?*W3G3^nYU54v(xqP0V5)y3b_uG$AQ&
Sj6VMTHl}5%&jAGhhyDxSl!}}H
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_about/logo_fredck.gif b/htdocs/includes/fckeditor/editor/dialog/fck_about/logo_fredck.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3108dd9ec45936ba349dfa30a172d17cde7ea956
GIT binary patch
literal 920
zcmZ?wbhEHb3};YbxN5-gW}5G(ogE)HRDC_UFe^^uavPt{(B-ejGK7Tnd_2>N)f8IWLGu{8k^*!G&Z20x;
z%DaW}zhB*czc~5ZsilA3K779-`_tB@Hn|7a82VvpPJuN`DM_ufjjqOnPz
zueQxaxH!1Er=q=t@YeT*kA&Ls+zQ$(nSoTyHss&097b
zY}&d-NoUXAeL5`qd&NW9b@xe!>J{b7*KXaurmKHdCxqp;V92!)
zp{x9jG6^?tGpR5#%Ibdm{^RGj^AGd|?&$H=tp0YW!IY!o*3Q*!i>5X3Yx{5*Fg(1;
z&Ber#BcQN>%Z-ugm+Jso55L4C1By%+pW1e8hdth7AtK1pOC($
zbxoR}Z(By*J;oW+7qxDj^>{~a2IGWQ$E?>EBD_6)o91$Dn8Z{Q#mmUJPETdZiffM=
zt+wd!g=jCI8hufVSx2HOJy-VXx{y1|Y7MU(jTbNZJ$H5Y)>+}&IeZ`2y1m(ObfTV~
zgF}F?-qr%U!--{#SG>%#Wkt8xge+jbZ9Hvi;pbzf+534@d0E!FH5OlIl#(;``0!|h
zx%S5R2iMrXY`9*x_q5g8qIVm*h5L1MjQD12Onvd-P3)K6h^PB=@11KbXFPPF;K}-j
z!P;33Hep&!Z|c_xg|6@y*H;l}GL`?Z@qkKbf%<&za><6Uv`~u`ycr=L9=uG?LW~)C
z1LLjEk3evQ**BpB$sI>3q38|{HD_iDHNeN&Ks(N=)U5+_n!NFOLRg5PVq+1+ln9~^-
snXb(x!IinBfX6&jSu){+#-bT
+
+
+
+ Anchor Properties
+
+
+
+
+
+
+
+
+
+
+
+
+ Anchor Name
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_button.html b/htdocs/includes/fckeditor/editor/dialog/fck_button.html
new file mode 100644
index 00000000000..38285458116
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_button.html
@@ -0,0 +1,103 @@
+
+
+
+
+ Button Properties
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+
+
+
+ Text (Value)
+
+
+
+
+
+ Type
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_checkbox.html b/htdocs/includes/fckeditor/editor/dialog/fck_checkbox.html
new file mode 100644
index 00000000000..7912df3bc77
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_checkbox.html
@@ -0,0 +1,103 @@
+
+
+
+
+ Checkbox Properties
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+
+
+
+ Value
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_colorselector.html b/htdocs/includes/fckeditor/editor/dialog/fck_colorselector.html
new file mode 100644
index 00000000000..ffa6df095d9
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_colorselector.html
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Highlight
+
+
+ Selected
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_docprops.html b/htdocs/includes/fckeditor/editor/dialog/fck_docprops.html
new file mode 100644
index 00000000000..b60b9c4e65c
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_docprops.html
@@ -0,0 +1,570 @@
+
+
+
+
+ Document Properties
+
+
+
+
+
+
+
+
+
+
+ Page Title
+
+
+
+
+
+ Language Direction
+
+
+
+
+ Language Code
+
+
+
+
+
+
+
+ Character Set Encoding
+
+
+
+
+ Other Character Set Encoding
+
+
+
+
+
+
+
+
+ Document Type Heading
+
+
+
+
+ Other Document Type Heading
+
+
+
+
+
+
+
+
+ Background Color
+
+
+ Background Image URL
+
+
+
+
+
+
+
+
+
+
+
+
+ Text
+
+
+ Link
+
+
+ Visited Link
+
+
+ Active Link
+
+
+
+
+
+ Page Margins
+
+
+
+
+
+
+ Top
+
+
+
+
+
+ Left
+
+
+
+
+ Right
+
+
+
+
+
+ Bottom
+
+
+
+
+
+
+
+
+
+
+
+
+ Document Indexing Keywords (comma separated)
+
+
+ Document Description
+
+
+ Author
+
+
+ Copyright
+
+
+
+
+
+
+ Preview
+
+
+
+
+
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html b/htdocs/includes/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html
new file mode 100644
index 00000000000..8da93b66f4b
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html
@@ -0,0 +1,109 @@
+
+
+
+
+ Document Properties - Preview
+
+
+
+
+
+
+
+
+ Normal Text
+
+
+ Link Text
+
+
+
+
+ Visited Link
+
+
+ Active Link
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_find.html b/htdocs/includes/fckeditor/editor/dialog/fck_find.html
new file mode 100644
index 00000000000..7af70c60fac
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_find.html
@@ -0,0 +1,177 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_flash.html b/htdocs/includes/fckeditor/editor/dialog/fck_flash.html
new file mode 100644
index 00000000000..196e11fa2ec
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_flash.html
@@ -0,0 +1,142 @@
+
+
+
+
+ Flash Properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+ URL
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Width
+
+
+
+
+ Height
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Preview
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Scale
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Id
+
+
+
+ Stylesheet Classes
+
+
+
+ Advisory Title
+
+
+
+
+ Style
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_flash/fck_flash.js b/htdocs/includes/fckeditor/editor/dialog/fck_flash/fck_flash.js
new file mode 100644
index 00000000000..51a8c86ea9a
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_flash/fck_flash.js
@@ -0,0 +1,284 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fck_flash.js
+ * Scripts related to the Flash dialog window (see fck_flash.html).
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+var FCK = oEditor.FCK ;
+var FCKLang = oEditor.FCKLang ;
+var FCKConfig = oEditor.FCKConfig ;
+
+//#### Dialog Tabs
+
+// Set the dialog tabs.
+window.parent.AddTab( 'Info', oEditor.FCKLang.DlgInfoTab ) ;
+
+if ( FCKConfig.FlashUpload )
+ window.parent.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ;
+
+if ( !FCKConfig.FlashDlgHideAdvanced )
+ window.parent.AddTab( 'Advanced', oEditor.FCKLang.DlgAdvancedTag ) ;
+
+// Function called when a dialog tag is selected.
+function OnDialogTabChange( tabCode )
+{
+ ShowE('divInfo' , ( tabCode == 'Info' ) ) ;
+ ShowE('divUpload' , ( tabCode == 'Upload' ) ) ;
+ ShowE('divAdvanced' , ( tabCode == 'Advanced' ) ) ;
+}
+
+// Get the selected flash embed (if available).
+var oFakeImage = FCK.Selection.GetSelectedElement() ;
+var oEmbed ;
+
+if ( oFakeImage )
+{
+ if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckflash') )
+ oEmbed = FCK.GetRealElement( oFakeImage ) ;
+ else
+ oFakeImage = null ;
+}
+
+window.onload = function()
+{
+ // Translate the dialog box texts.
+ oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+ // Load the selected element information (if any).
+ LoadSelection() ;
+
+ // Show/Hide the "Browse Server" button.
+ GetE('tdBrowse').style.display = FCKConfig.FlashBrowser ? '' : 'none' ;
+
+ // Set the actual uploader URL.
+ if ( FCKConfig.FlashUpload )
+ GetE('frmUpload').action = FCKConfig.FlashUploadURL ;
+
+ window.parent.SetAutoSize( true ) ;
+
+ // Activate the "OK" button.
+ window.parent.SetOkButton( true ) ;
+}
+
+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', '' ) ;
+
+ // Get Advances Attributes
+ GetE('txtAttId').value = oEmbed.id ;
+ GetE('chkAutoPlay').checked = GetAttribute( oEmbed, 'play', 'true' ) == 'true' ;
+ 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 )
+ {
+ GetE('txtAttClasses').value = oEmbed.getAttribute('className') || '' ;
+ GetE('txtAttStyle').value = oEmbed.style.cssText ;
+ }
+ else
+ {
+ GetE('txtAttClasses').value = oEmbed.getAttribute('class',2) || '' ;
+ GetE('txtAttStyle').value = oEmbed.getAttribute('style',2) ;
+ }
+
+ UpdatePreview() ;
+}
+
+//#### The OK button was hit.
+function Ok()
+{
+ if ( GetE('txtUrl').value.length == 0 )
+ {
+ window.parent.SetSelectedTab( 'Info' ) ;
+ GetE('txtUrl').focus() ;
+
+ alert( oEditor.FCKLang.DlgAlertUrl ) ;
+
+ return false ;
+ }
+
+ 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 ) ;
+ }
+ else
+ oEditor.FCKUndo.SaveUndoStep() ;
+
+ oEditor.FCKFlashProcessor.RefreshView( oFakeImage, oEmbed ) ;
+
+ return true ;
+}
+
+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, "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' ) ;
+
+ SetAttribute( e, 'title' , GetE('txtAttTitle').value ) ;
+
+ if ( oEditor.FCKBrowserInfo.IsIE )
+ {
+ SetAttribute( 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 ePreview ;
+
+function SetPreviewElement( previewEl )
+{
+ ePreview = previewEl ;
+
+ if ( GetE('txtUrl').value.length > 0 )
+ UpdatePreview() ;
+}
+
+function UpdatePreview()
+{
+ if ( !ePreview )
+ return ;
+
+ while ( ePreview.firstChild )
+ ePreview.removeChild( ePreview.firstChild ) ;
+
+ if ( GetE('txtUrl').value.length == 0 )
+ ePreview.innerHTML = ' ' ;
+ else
+ {
+ 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%' ;
+
+ ePreview.appendChild( e ) ;
+ }
+}
+
+// /g, '>' );
+ htmlstr = htmlstr.replace( /\n/g, '
' );
+ return htmlstr;
+ }
+}
+
+function _isWordChar( letter ) {
+ if( letter.search( this.wordChar ) == -1 ) {
+ return false;
+ } else {
+ return true;
+ }
+}
+
+function _getWordObject( textIndex, wordIndex ) {
+ if( this._forms[textIndex] ) {
+ if( this._forms[textIndex].elements[wordIndex] ) {
+ return this._forms[textIndex].elements[wordIndex];
+ }
+ }
+ return null;
+}
+
+function _wordInputStr( word ) {
+ var str = '';
+ return str;
+}
+
+function _adjustIndexes( textIndex, wordIndex, lengthDiff ) {
+ for( var i = wordIndex + 1; i < this.originalSpellings[textIndex].length; i++ ) {
+ this.indexes[textIndex][i] = this.indexes[textIndex][i] + lengthDiff;
+ }
+}
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_table.html b/htdocs/includes/fckeditor/editor/dialog/fck_table.html
new file mode 100644
index 00000000000..b17e9720111
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_table.html
@@ -0,0 +1,282 @@
+
+
+
+
+ Table Properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Rows:
+
+
+
+ Columns:
+
+
+
+
+
+
+
+ Border size:
+
+
+
+ Alignment:
+
+
+
+
+
+
+
+
+ Width:
+
+
+
+
+ Height:
+
+ pixels
+
+
+
+
+
+
+
+ Cell spacing:
+
+
+
+
+ Cell padding:
+
+
+
+
+
+
+
+
+
+
+ Caption:
+
+
+
+
+
+ Summary:
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_tablecell.html b/htdocs/includes/fckeditor/editor/dialog/fck_tablecell.html
new file mode 100644
index 00000000000..c0b301dae18
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_tablecell.html
@@ -0,0 +1,251 @@
+
+
+
+
+ Table Cell Properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Width:
+
+
+
+
+
+ Height:
+
+ pixels
+
+
+
+
+
+
+
+
+
+ Word Wrap:
+
+
+
+
+
+
+
+
+
+
+
+ Horizontal Alignment:
+
+
+
+
+
+ Vertical Alignment:
+
+
+
+
+
+
+
+
+
+
+
+ Rows Span:
+
+
+
+
+
+
+
+
+ Columns Span:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Background Color:
+
+
+
+
+
+
+
+
+ Border Color:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_template.html b/htdocs/includes/fckeditor/editor/dialog/fck_template.html
new file mode 100644
index 00000000000..b95b68d0a11
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_template.html
@@ -0,0 +1,210 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Please select the template to open in the editor
+ (the actual contents will be lost):
+
+
+
+
+
+
+
+ Loading templates list. Please wait...
+
+
+
+ (No templates defined)
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_template/images/template1.gif b/htdocs/includes/fckeditor/editor/dialog/fck_template/images/template1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..efdabbebd4503ceb55c948fa73b9b83cbd373e57
GIT binary patch
literal 375
zcmV--0f_!bNk%w1VPpVC0FeLyva+%O00960{{R30A^8LV00000EC2ui0Av7000092
zgpaAq?GK}zwAu@W-n{z{hT=$;9b%^H%BpA!$8!13_AS@=&Xal%3~GMDB95pDD3{Ep
z^T{;k4xj+g%7JRP+$IPq!1Bb&uKB$DQa@x|8x8NO4b`hO25#TOnRw~9=3yE0xyeE4CQ8$(2)Mz>8udZCXX=BRr7DZbW_#-a
zYZEHlJM(KAEc4dditDMnJ4(CC+&uK06fIp0D*Z|wX5EYpGb{?;a*WKVoEoWp!Y!`y
zeo4*}FFC(bZf@duda#%D-q
zaHzPUxA@lRm;@PFNk%w1VPpVC0FeLyva+%O00960{{R30A^8LV00000EC2ui0Av7000092
zgpaAq?GK}zwAu@W-n{z{hT=$;9b%^H%BpA!$8!13_AS@=&Xal%3~GMDB93TG#*l%g
z^9hYgr_`$T`us4l+^+W<)gC_JviY3#AeC&_xD98m<8-m1jvsB&<_@0q~XXRsCap^IRqK$(K#c!N9pBf82AawVH$?WN){q&IjedXiz+EX
zOS+od%WDgp+d909toAG5`lTy-9D18rOxWx+T}>D*o&1Qa9n5V^96nACtqfi*?*05t
zZSMX~zfpQ^<%jRPUfiDEO8=eEuB)DKv}S_cJW8uTxqL`=(AMXYB~Aenu4SM=e_
zrj6M`kqsZ_xrlC}y^5evW>krApudqWP2zFM5Fo{b%sA$2wGU)SI5vkKVQCad(WEn$
zGF`IFr&KONpB8ayRSwduHn4I{;q@zxs8h=VDkqjl*t8(;n#c+zd*_U=jy
QeEa(S3plV~2n7HDJNoX*`2YX_
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_textarea.html b/htdocs/includes/fckeditor/editor/dialog/fck_textarea.html
new file mode 100644
index 00000000000..31908e33657
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_textarea.html
@@ -0,0 +1,90 @@
+
+
+
+
+ Text Area Properties
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+ Collumns
+
+
+ Rows
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_textfield.html b/htdocs/includes/fckeditor/editor/dialog/fck_textfield.html
new file mode 100644
index 00000000000..0e9d3b4662c
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_textfield.html
@@ -0,0 +1,131 @@
+
+
+
+
+ Text Field Properties
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+
+
+ Value
+
+
+
+
+
+ Character Width
+
+
+
+
+ Maximum Characters
+
+
+
+
+
+ Type
+
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_universalkey.html b/htdocs/includes/fckeditor/editor/dialog/fck_universalkey.html
new file mode 100644
index 00000000000..7c3dbd1ff12
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_universalkey.html
@@ -0,0 +1,63 @@
+
+
+
+
+ Universal Keyboard
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/00.gif b/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/00.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fc2560981ee1caca400e225e48d282106f907f2d
GIT binary patch
literal 43
ucmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Df>utpmhBaYhCPCMFj~25SJyItL8^
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/data.js b/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/data.js
new file mode 100644
index 00000000000..485d02ba9a0
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/data.js
@@ -0,0 +1,70 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: data.js
+ * Scripts for the fck_universalkey.html page.
+ * Definition des 104 caracteres en hexa unicode.
+ *
+ * File Authors:
+ * Michel Staelens (michel.staelens@wanadoo.fr)
+ * Abdul-Aziz Al-Oraij (top7up@hotmail.com)
+ */
+
+var Maj = new Array() ;
+var Min = new Array() ;
+
+Maj["Arabic"] ="0651|0021|0040|0023|0024|0025|005E|0026|002A|0029|0028|005F|002B|064E|064B|064F|064C|0625|0625|2018|00F7|00D7|061B|003C|003E|0650|064D|005D|005B|0623|0623|0640|060C|002F|003A|0022|007E|0652|007D|007B|0622|0622|2019|002C|002E|061F|007C|0020|0020|0020|0020|0020" ;
+Min["Arabic"] ="0630|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0636|0635|062B|0642|0641|063A|0639|0647|062E|062D|062C|062F|0634|0633|064A|0628|0644|0627|062A|0646|0645|0643|0637|0626|0621|0624|0631|0644|0627|0649|0629|0648|0632|0638|005C|0020|0020|0020|0020" ;
+Maj["Belarusian (C)"] ="0401|0021|0022|2116|003B|0025|003A|003F|002A|0028|0029|005F|002B|0419|0426|0423|041A|0415|041D|0413|0428|040E|0417|0425|0027|0424|042B|0412|0410|041F|0420|041E|041B|0414|0416|042D|042F|0427|0421|041C|0406|0422|042C|0411|042E|002C|0020|0020|0020|0020|0020|0020" ;
+Min["Belarusian (C)"] ="0451|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0439|0446|0443|043A|0435|043D|0433|0448|045E|0437|0445|0027|0444|044B|0432|0430|043F|0440|043E|043B|0434|0436|044D|044F|0447|0441|043C|0456|0442|044C|0431|044E|002E|0020|0020|0020|0020|0020|0020" ;
+Maj["Bulgarian (C)"] ="007E|0021|003F|002B|0022|0025|003D|003A|002F|005F|2116|0406|0056|044B|0423|0415|0418|0428|0429|041A|0421|0414|0417|0426|00A7|042C|042F|0410|041E|0416|0413|0422|041D|0412|041C|0427|042E|0419|042A|042D|0424|0425|041F|0420|041B|0411|0029|0020|0020|0020|0020|0020" ;
+Min["Bulgarian (C)"] ="0060|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|002E|002C|0443|0435|0438|0448|0449|043A|0441|0434|0437|0446|003B|044C|044F|0430|043E|0436|0433|0442|043D|0432|043C|0447|044E|0439|044A|044D|0444|0445|043F|0440|043B|0431|0028|0020|0020|0020|0020|0020" ;
+Maj["Croatian (L)"] ="00B8|0021|0022|0023|0024|0025|0026|002F|0028|0029|003D|003F|00A8|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|0160|0110|0041|0053|0044|0046|0047|0048|004A|004B|004C|010C|0106|0059|0058|0043|0056|0042|004E|004D|017D|003B|003A|003C|003E|005F|002D|002A|002B" ;
+Min["Croatian (L)"] ="00B8|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0027|00A8|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|0161|0111|0061|0073|0064|0066|0067|0068|006A|006B|006C|010D|0107|0079|0078|0063|0076|0062|006E|006D|017E|002C|002E|003C|003E|005F|002D|002A|002B" ;
+Maj["Czech (L)"] ="00B0|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0025|02C7|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|002F|0028|0041|0053|0044|0046|0047|0048|004A|004B|004C|0022|0027|0059|0058|0043|0056|0042|004E|004D|003F|003A|005F|005B|007B|0021|0020|0148|010F" ;
+Min["Czech (L)"] ="003B|002B|011B|0161|010D|0159|017E|00FD|00E1|00ED|00E9|003D|00B4|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|00FA|0029|0061|0073|0064|0066|0067|0068|006A|006B|006C|016F|00A7|0079|0078|0063|0076|0062|006E|006D|002C|002E|002D|005D|007D|00A8|0040|00F3|0165" ;
+Maj["Danish (L)"] ="00A7|0021|0022|0023|00A4|0025|0026|002F|0028|0029|003D|003F|0060|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|00C5|005E|0041|0053|0044|0046|0047|0048|004A|004B|004C|00C6|00D8|003E|005A|0058|0043|0056|0042|004E|004D|003B|003A|002A|005F|007B|007D|005C|007E" ;
+Min["Danish (L)"] ="00BD|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002B|00B4|0071|0077|0065|0072|0074|0079|0075|0069|006F|0070|00E5|00A8|0061|0073|0064|0066|0067|0068|006A|006B|006C|00E6|00F8|003C|007A|0078|0063|0076|0062|006E|006D|002C|002E|0027|002D|005B|005D|007C|0040" ;
+Maj["Farsi"] ="0020|0021|0040|0023|0024|0025|005E|0026|002A|0029|0028|005F|002B|0020|0020|0020|0020|0020|0020|0020|00F7|00D7|0020|007D|007B|0020|0020|005D|005B|0623|0622|0640|060C|061B|003A|0022|007E|0020|0020|0020|0020|0020|2019|003E|003C|061F|007C|0020|0020|0020|0020|0020"
+Min["Farsi"] ="067E|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0636|0635|062B|0642|0641|063A|0639|0647|062E|062D|062C|0686|0634|0633|064A|0628|0644|0627|062A|0646|0645|0643|06AF|0638|0637|0632|0631|0630|062F|0621|0648|002E|002F|005C|0020|0020|0020|0020|0020"
+Maj["Finnish (L)"] ="00A7|0021|0022|0023|00A4|0025|0026|002F|0028|0029|003D|003F|0060|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|00C5|005E|0041|0053|0044|0046|0047|0048|004A|004B|004C|00D6|00C4|003E|005A|0058|0043|0056|0042|004E|004D|003B|003A|002A|005F|007B|007D|005C|007E" ;
+Min["Finnish (L)"] ="00BD|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002B|00B4|0071|0077|0065|0072|0074|0079|0075|0069|006F|0070|00E5|00A8|0061|0073|0064|0066|0067|0068|006A|006B|006C|00F6|00E4|003C|007A|0078|0063|0076|0062|006E|006D|002C|002E|0027|002D|005B|005D|007C|0040" ;
+Maj["French (L)"] ="0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|00B0|002B|0023|0041|005A|0045|0052|0054|0059|0055|0049|004F|0050|00A8|0025|0051|0053|0044|0046|0047|0048|004A|004B|004C|004D|00B5|0057|0058|0043|0056|0042|004E|003F|002E|002F|00A7|003C|005B|007B|00A3|007E|0020" ;
+Min["French (L)"] ="0026|00E9|0022|0027|0028|002D|00E8|005F|00E7|00E0|0029|003D|0040|0061|007A|0065|0072|0074|0079|0075|0069|006F|0070|005E|00F9|0071|0073|0064|0066|0067|0068|006A|006B|006C|006D|002A|0077|0078|0063|0076|0062|006E|002C|003B|003A|0021|003E|005D|007D|0024|007E|0020" ;
+Maj["Greek"] ="007E|0021|0040|0023|0024|0025|0390|0026|03B0|0028|0029|005F|002B|003A|03A3|0395|03A1|03A4|03A5|0398|0399|039F|03A0|0386|038F|0391|03A3|0394|03A6|0393|0397|039E|039A|039B|038C|0022|0396|03A7|03A8|03A9|0392|039D|039C|003C|003E|003F|0388|0389|038A|03AA|03AB|038E" ;
+Min["Greek"] ="0060|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|003B|03C2|03B5|03C1|03C4|03C5|03B8|03B9|03BF|03C0|03AC|03CE|03B1|03C3|03B4|03C6|03B3|03B7|03BE|03BA|03BB|03CC|0027|03B6|03C7|03C8|03C9|03B2|03BD|03BC|002C|002E|002F|03AD|03AE|03AF|03CA|03CB|03CD" ;
+Maj["Hebrew"] ="007E|0021|0040|0023|0024|0025|005E|0026|002A|0028|0029|005F|002B|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|007B|007D|0041|0053|0044|0046|0047|0048|004A|004B|004C|003A|0022|005A|0058|0043|0056|0042|004E|004D|003C|003E|003F|0020|0020|0020|0020|0020|0020" ;
+Min["Hebrew"] ="0060|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|002F|0027|05E7|05E8|05D0|05D8|05D5|05DF|05DD|05E4|005B|005D|05E9|05D3|05D2|05DB|05E2|05D9|05D7|05DC|05DA|05E3|002C|05D6|05E1|05D1|05D4|05E0|05DE|05E6|05EA|05E5|002E|0020|0020|0020|0020|0020|0020" ;
+Maj["Hungarian (L)"] ="00A7|0027|0022|002B|0021|0025|002F|003D|0028|0029|00ED|00DC|00D3|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|0150|00DA|0041|0053|0044|0046|0047|0048|004A|004B|004C|00C9|00C1|0170|00CD|0059|0058|0043|0056|0042|004E|004D|003F|002E|003A|002D|005F|007B|007D" ;
+Min["Hungarian (L)"] ="0030|0031|0032|0033|0034|0035|0036|0037|0038|0039|00F6|00FC|00F3|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|0151|00FA|0061|0073|0064|0066|0067|0068|006A|006B|006C|00E9|00E1|0171|00ED|0079|0078|0063|0076|0062|006E|006D|002C|002E|003A|002D|005F|007B|007D" ;
+Maj["Diacritical (L)"] ="0060|00B4|005E|00A8|007E|00B0|00B7|00B8|00AF|02D9|02DB|02C7|02D8|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|00C6|02DD|0041|0053|0044|0046|0047|0048|004A|004B|004C|0141|0152|0059|0058|0043|0056|0042|004E|004D|01A0|01AF|00D8|0126|0110|0132|00DE|00D0|00DF" ;
+Min["Diacritical (L)"] ="0060|00B4|005E|00A8|007E|00B0|00B7|00B8|00AF|02D9|02DB|02C7|02D8|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|00E6|02DD|0061|0073|0064|0066|0067|0068|006A|006B|006C|0142|0153|0079|0078|0063|0076|0062|006E|006D|01A1|01B0|00F8|0127|0111|0133|00FE|00F0|00DF" ;
+Maj["Macedonian (C)"] ="007E|0021|201E|201C|2019|0025|2018|0026|002A|0028|0029|005F|002B|0409|040A|0415|0420|0422|0405|0423|0418|041E|041F|0428|0403|0410|0421|0414|0424|0413|0425|0408|041A|041B|0427|040C|0401|0417|040F|0426|0412|0411|041D|041C|0416|003B|003A|003F|002A|005F|007B|007D" ;
+Min["Macedonian (C)"] ="0060|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0459|045A|0435|0440|0442|0455|0443|0438|043E|043F|0448|0453|0430|0441|0434|0444|0433|0445|0458|043A|043B|0447|045C|0451|0437|045F|0446|0432|0431|043D|043C|0436|002C|002E|002F|0027|002D|005B|005D" ;
+Maj["Norwegian (L)"] ="00A7|0021|0022|0023|00A4|0025|0026|002F|0028|0029|003D|003F|0060|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|00C5|005E|0041|0053|0044|0046|0047|0048|004A|004B|00D8|00C6|00C4|003E|005A|0058|0043|0056|0042|004E|004D|003B|003A|002A|005F|007B|007D|005C|007E" ;
+Min["Norwegian (L)"] ="00BD|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002B|00B4|0071|0077|0065|0072|0074|0079|0075|0069|006F|0070|00E5|00A8|0061|0073|0064|0066|0067|0068|006A|006B|00F8|00E6|00E4|003C|007A|0078|0063|0076|0062|006E|006D|002C|002E|0027|002D|005B|005D|007C|0040" ;
+Maj["Polish (L)"] ="002A|0021|0022|0023|00A4|0025|0026|002F|0028|0029|003D|003F|017A|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|0144|0107|0041|0053|0044|0046|0047|0048|004A|004B|004C|0141|0119|0059|0058|0043|0056|0042|004E|004D|003B|003A|005F|003C|005B|007B|02D9|00B4|02DB" ;
+Min["Polish (L)"] ="0027|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002B|00F3|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|017C|015B|0061|0073|0064|0066|0067|0068|006A|006B|006C|0142|0105|0079|0078|0063|0076|0062|006E|006D|002C|002E|002D|003E|005D|007D|02D9|00B4|02DB" ;
+Maj["Russian (C)"] ="0401|0021|0040|0023|2116|0025|005E|0026|002A|0028|0029|005F|002B|0419|0426|0423|041A|0415|041D|0413|0428|0429|0417|0425|042A|0424|042B|0412|0410|041F|0420|041E|041B|0414|0416|042D|042F|0427|0421|041C|0418|0422|042C|0411|042E|003E|002E|003A|0022|005B|005D|003F" ;
+Min["Russian (C)"] ="0451|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0439|0446|0443|043A|0435|043D|0433|0448|0449|0437|0445|044A|0444|044B|0432|0430|043F|0440|043E|043B|0434|0436|044D|044F|0447|0441|043C|0438|0442|044C|0431|044E|003C|002C|003B|0027|007B|007D|002F" ;
+Maj["Serbian (C)"] ="007E|0021|0022|0023|0024|0025|0026|002F|0028|0029|003D|003F|002A|0409|040A|0415|0420|0422|0417|0423|0418|041E|041F|0428|0402|0410|0421|0414|0424|0413|0425|0408|041A|041B|0427|040B|003E|0405|040F|0426|0412|0411|041D|041C|0416|003A|005F|002E|003A|0022|005B|005D" ;
+Min["Serbian (C)"] ="0060|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0027|002B|0459|045A|0435|0440|0442|0437|0443|0438|043E|043F|0448|0452|0430|0441|0434|0444|0433|0445|0458|043A|043B|0447|045B|003C|0455|045F|0446|0432|0431|043D|043C|0436|002E|002D|002C|003B|0027|007B|007D" ;
+Maj["Serbian (L)"] ="007E|0021|0022|0023|0024|0025|0026|002F|0028|0029|003D|003F|002A|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|0160|0110|0041|0053|0044|0046|0047|0048|004A|004B|004C|010C|0106|003E|0059|0058|0043|0056|0042|004E|004D|017D|003A|005F|002E|003A|0022|005B|005D" ;
+Min["Serbian (L)"] ="201A|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0027|002B|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|0161|0111|0061|0073|0064|0066|0067|0068|006A|006B|006C|010D|0107|003C|0079|0078|0063|0076|0062|006E|006D|017E|002E|002D|002C|003B|0027|007B|007D" ;
+Maj["Slovak (L)"] ="00B0|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0025|02C7|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|002F|0028|0041|0053|0044|0046|0047|0048|004A|004B|004C|0022|0021|0059|0058|0043|0056|0042|004E|004D|003F|003A|005F|003C|005B|010F|0029|002A|0020" ;
+Min["Slovak (L)"] ="003B|002B|013E|0161|010D|0165|017E|00FD|00E1|00ED|00E9|003D|00B4|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|00FA|00E4|0061|0073|0064|0066|0067|0068|006A|006B|006C|00F4|00A7|0079|0078|0063|0076|0062|006E|006D|002C|002E|002D|003E|005D|00F3|0148|0026|0020" ;
+Maj["Spanish (L)"] ="00AA|0021|0022|00B7|0024|0025|0026|002F|0028|0029|003D|003F|00BF|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|005E|00A8|0041|0053|0044|0046|0047|0048|004A|004B|004C|00D1|00C7|005A|0058|0043|0056|0042|004E|004D|003B|003A|005F|003E|007C|0040|0023|007E|002A" ;
+Min["Spanish (L)"] ="00BA|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0027|00A1|0071|0077|0065|0072|0074|0079|0075|0069|006F|0070|0060|00B4|0061|0073|0064|0066|0067|0068|006A|006B|006C|00F1|00E7|007A|0078|0063|0076|0062|006E|006D|002C|002E|002D|003C|005C|0040|0023|007E|002B" ;
+Maj["Ukrainian (C)"] ="0401|0021|0040|0023|2116|0025|005E|0026|002A|0028|0029|005F|002B|0419|0426|0423|041A|0415|041D|0413|0428|0429|0417|0425|0407|0424|0406|0412|0410|041F|0420|041E|041B|0414|0416|0404|0490|042F|0427|0421|041C|0418|0422|042C|0411|042E|002E|003A|0022|003C|003E|003F" ;
+Min["Ukrainian (C)"] ="0451|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0439|0446|0443|043A|0435|043D|0433|0448|0449|0437|0445|0457|0444|0456|0432|0430|043F|0440|043E|043B|0434|0436|0454|0491|044F|0447|0441|043C|0438|0442|044C|0431|044E|002C|003B|0027|007B|007D|002F" ;
+Maj["Vietnamese (L)"] ="007E|0021|0040|0023|0024|0025|005E|0026|002A|0028|0029|005F|002B|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|01AF|01A0|0041|0053|0044|0046|0047|0048|004A|004B|004C|0102|00C2|005A|0058|0043|0056|0042|004E|004D|00CA|00D4|0110|003C|003E|003F|007D|003A|0022" ;
+Min["Vietnamese (L)"] ="20AB|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0071|0077|0065|0072|0074|0079|0075|0069|006F|0070|01B0|01A1|0061|0073|0064|0066|0067|0068|006A|006B|006C|0103|00E2|007A|0078|0063|0076|0062|006E|006D|00EA|00F4|0111|002C|002E|002F|007B|003B|0027" ;
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/diacritic.js b/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/diacritic.js
new file mode 100644
index 00000000000..6b2ff9ac17b
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/diacritic.js
@@ -0,0 +1,65 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: diacritic.js
+ * Scripts for the fck_universalkey.html page.
+ *
+ * File Authors:
+ * Michel Staelens (michel.staelens@wanadoo.fr)
+ * Abdul-Aziz Al-Oraij (top7up@hotmail.com)
+ */
+
+var dia = new Array()
+
+dia["0060"]=new Array();dia["00B4"]=new Array();dia["005E"]=new Array();dia["00A8"]=new Array();dia["007E"]=new Array();dia["00B0"]=new Array();dia["00B7"]=new Array();dia["00B8"]=new Array();dia["00AF"]=new Array();dia["02D9"]=new Array();dia["02DB"]=new Array();dia["02C7"]=new Array();dia["02D8"]=new Array();dia["02DD"]=new Array();dia["031B"]=new Array();
+dia["0060"]["0061"]="00E0";dia["00B4"]["0061"]="00E1";dia["005E"]["0061"]="00E2";dia["00A8"]["0061"]="00E4";dia["007E"]["0061"]="00E3";dia["00B0"]["0061"]="00E5";dia["00AF"]["0061"]="0101";dia["02DB"]["0061"]="0105";dia["02D8"]["0061"]="0103";
+dia["00B4"]["0063"]="0107";dia["005E"]["0063"]="0109";dia["00B8"]["0063"]="00E7";dia["02D9"]["0063"]="010B";dia["02C7"]["0063"]="010D";
+dia["02C7"]["0064"]="010F";
+dia["0060"]["0065"]="00E8";dia["00B4"]["0065"]="00E9";dia["005E"]["0065"]="00EA";dia["00A8"]["0065"]="00EB";dia["00AF"]["0065"]="0113";dia["02D9"]["0065"]="0117";dia["02DB"]["0065"]="0119";dia["02C7"]["0065"]="011B";dia["02D8"]["0065"]="0115";
+dia["005E"]["0067"]="011D";dia["00B8"]["0067"]="0123";dia["02D9"]["0067"]="0121";dia["02D8"]["0067"]="011F";
+dia["005E"]["0068"]="0125";
+dia["0060"]["0069"]="00EC";dia["00B4"]["0069"]="00ED";dia["005E"]["0069"]="00EE";dia["00A8"]["0069"]="00EF";dia["007E"]["0069"]="0129";dia["00AF"]["0069"]="012B";dia["02DB"]["0069"]="012F";dia["02D8"]["0069"]="012D";
+dia["005E"]["006A"]="0135";
+dia["00B8"]["006B"]="0137";
+dia["00B4"]["006C"]="013A";dia["00B7"]["006C"]="0140";dia["00B8"]["006C"]="013C";dia["02C7"]["006C"]="013E";
+dia["00B4"]["006E"]="0144";dia["007E"]["006E"]="00F1";dia["00B8"]["006E"]="0146";dia["02D8"]["006E"]="0148";
+dia["0060"]["006F"]="00F2";dia["00B4"]["006F"]="00F3";dia["005E"]["006F"]="00F4";dia["00A8"]["006F"]="00F6";dia["007E"]["006F"]="00F5";dia["00AF"]["006F"]="014D";dia["02D8"]["006F"]="014F";dia["02DD"]["006F"]="0151";dia["031B"]["006F"]="01A1";
+dia["00B4"]["0072"]="0155";dia["00B8"]["0072"]="0157";dia["02C7"]["0072"]="0159";
+dia["00B4"]["0073"]="015B";dia["005E"]["0073"]="015D";dia["00B8"]["0073"]="015F";dia["02C7"]["0073"]="0161";
+dia["00B8"]["0074"]="0163";dia["02C7"]["0074"]="0165";
+dia["0060"]["0075"]="00F9";dia["00B4"]["0075"]="00FA";dia["005E"]["0075"]="00FB";dia["00A8"]["0075"]="00FC";dia["007E"]["0075"]="0169";dia["00B0"]["0075"]="016F";dia["00AF"]["0075"]="016B";dia["02DB"]["0075"]="0173";dia["02D8"]["0075"]="016D";dia["02DD"]["0075"]="0171";dia["031B"]["0075"]="01B0";
+dia["005E"]["0077"]="0175";
+dia["00B4"]["0079"]="00FD";dia["005E"]["0079"]="0177";dia["00A8"]["0079"]="00FF";
+dia["00B4"]["007A"]="017A";dia["02D9"]["007A"]="017C";dia["02C7"]["007A"]="017E";
+dia["00B4"]["00E6"]="01FD";
+dia["00B4"]["00F8"]="01FF";
+dia["0060"]["0041"]="00C0";dia["00B4"]["0041"]="00C1";dia["005E"]["0041"]="00C2";dia["00A8"]["0041"]="00C4";dia["007E"]["0041"]="00C3";dia["00B0"]["0041"]="00C5";dia["00AF"]["0041"]="0100";dia["02DB"]["0041"]="0104";dia["02D8"]["0041"]="0102";
+dia["00B4"]["0043"]="0106";dia["005E"]["0043"]="0108";dia["00B8"]["0043"]="00C7";dia["02D9"]["0043"]="010A";dia["02C7"]["0043"]="010C";
+dia["02C7"]["0044"]="010E";
+dia["0060"]["0045"]="00C8";dia["00B4"]["0045"]="00C9";dia["005E"]["0045"]="00CA";dia["00A8"]["0045"]="00CB";dia["00AF"]["0045"]="0112";dia["02D9"]["0045"]="0116";dia["02DB"]["0045"]="0118";dia["02C7"]["0045"]="011A";dia["02D8"]["0045"]="0114";
+dia["005E"]["0047"]="011C";dia["00B8"]["0047"]="0122";dia["02D9"]["0047"]="0120";dia["02D8"]["0047"]="011E";
+dia["005E"]["0048"]="0124";
+dia["0060"]["0049"]="00CC";dia["00B4"]["0049"]="00CD";dia["005E"]["0049"]="00CE";dia["00A8"]["0049"]="00CF";dia["007E"]["0049"]="0128";dia["00AF"]["0049"]="012A";dia["02D9"]["0049"]="0130";dia["02DB"]["0049"]="012E";dia["02D8"]["0049"]="012C";
+dia["005E"]["004A"]="0134";
+dia["00B8"]["004B"]="0136";
+dia["00B4"]["004C"]="0139";dia["00B7"]["004C"]="013F";dia["00B8"]["004C"]="013B";dia["02C7"]["004C"]="013D";
+dia["00B4"]["004E"]="0143";dia["007E"]["004E"]="00D1";dia["00B8"]["004E"]="0145";dia["02D8"]["004E"]="0147";
+dia["0060"]["004F"]="00D2";dia["00B4"]["004F"]="00D3";dia["005E"]["004F"]="00D4";dia["00A8"]["004F"]="00D6";dia["007E"]["004F"]="00D5";dia["00AF"]["004F"]="014C";dia["02D8"]["004F"]="014E";dia["02DD"]["004F"]="0150";dia["031B"]["004F"]="01A0";
+dia["00B4"]["0052"]="0154";dia["00B8"]["0052"]="0156";dia["02C7"]["0052"]="0158";
+dia["00B4"]["0053"]="015A";dia["005E"]["0053"]="015C";dia["00B8"]["0053"]="015E";dia["02C7"]["0053"]="0160";
+dia["00B8"]["0054"]="0162";dia["02C7"]["0054"]="0164";
+dia["0060"]["0055"]="00D9";dia["00B4"]["0055"]="00DA";dia["005E"]["0055"]="00DB";dia["00A8"]["0055"]="00DC";dia["007E"]["0055"]="0168";dia["00B0"]["0055"]="016E";dia["00AF"]["0055"]="016A";dia["02DB"]["0055"]="0172";dia["02D8"]["0055"]="016C";dia["02DD"]["0055"]="0170";dia["031B"]["0055"]="01AF";
+dia["005E"]["0057"]="0174";
+dia["00B4"]["0059"]="00DD";dia["005E"]["0059"]="0176";dia["00A8"]["0059"]="0178";
+dia["00B4"]["005A"]="0179";dia["02D9"]["005A"]="017B";dia["02C7"]["005A"]="017D";
+dia["00B4"]["00C6"]="01FC";
+dia["00B4"]["00D8"]="01FE";
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/dialogue.js b/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/dialogue.js
new file mode 100644
index 00000000000..d962e90d9c7
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/dialogue.js
@@ -0,0 +1,31 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: dialogue.js
+ * Scripts for the fck_universalkey.html page.
+ *
+ * File Authors:
+ * Michel Staelens (michel.staelens@wanadoo.fr)
+ * Bernadette Cierzniak
+ * Abdul-Aziz Al-Oraij (top7up@hotmail.com)
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+function afficher(txt)
+{
+ document.getElementById( 'uni_area' ).value = txt ;
+}
+
+function rechercher()
+{
+ return document.getElementById( 'uni_area' ).value ;
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/fck_universalkey.css b/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/fck_universalkey.css
new file mode 100644
index 00000000000..925e789fe44
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/fck_universalkey.css
@@ -0,0 +1,62 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fck_universalkey.css
+ * CSS styles for the Universal Keyboard.
+ *
+ * File Authors:
+ * Michel Staelens (michel.staelens@wanadoo.fr)
+ * Bernadette Cierzniak
+ * Abdul-Aziz Al-Oraij (top7up@hotmail.com)
+ */
+
+BODY, TEXTAREA, INPUT, TD, SELECT
+{
+ font-family: Tahoma,verdana,arial,sans-serif;
+}
+DIV
+{
+ position: absolute;
+}
+.simple
+{
+ font-size: 11pt;
+}
+.double
+{
+ font-size: 9pt;
+}
+.simpledia
+{
+ color: red;
+ font-size: 11pt;
+}
+.doubledia
+{
+ color: red;
+ font-size: 9pt;
+}
+.action
+{
+ color: white;
+ font-size: 7pt;
+}
+.clavier
+{
+ color: blue;
+ font-size: 7pt;
+}
+.sign
+{
+ color: gray;
+ font-size: 7pt;
+}
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/keyboard_layout.gif b/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/keyboard_layout.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2183cc7156a881b992bf8b01638cdf5b985074e0
GIT binary patch
literal 3056
zcmV1Nk%w1VUz)w0HOc@|NsB|{nxJ7|JL94d!Xh30000000000A^8La6aWJN
zEC2ui0F(ik000C3I0M}NFakxFyg2L4tKwiNhMqN^=vk(0tF5j>0Yq)zc&-yg1qi^P
za7Zi~kI1C5H&Z&F(5R95ky@`q&_ieki)wle+p4+qayFR*3
z`)>tje|~v;hDn8oibRQvjslI3ihYBGf|X>El7^a_dYztjprLYZa6&|qBC$j{bS$;~#*+&I$NQ`q9g
z)#bnB=uX?;-rwEo>xlC6N8$F6_4$mr@bLxy@u*OM-;*r`4N_B(P$3e84(U+{_>W3~
zix@L%+{khN3&V~eLy88lRe10^HbvMGXGNqXQ5I}lu|CYc
zMLSn*-53vM1lY^Buiw7`wg3Q37_i{Ni1{8)jCe6)!j2#RjV!q@<;r_6W7b@mvt-YY
zK{FOCP|X6&kUyX{ta`QIHLhQ`j-7cnZP>JHpUxfFc5K|af#3G+TKI2&rI!unZM-<~
z)y<(lM;)E|^v%~hXaBrCbobHU6IaK+Ai0|5!NWIJUwFLs-Ra>Emw%kTbNkZqTh~t>
z{e1ub^`&AS4*=d*V15VgmtcRq^~T?O3qshSd)z%(VT2b>$X;sY4G0K^-dPwTh~SA>
zB8lQ{$eM{Mvbdg$?Ws7KjIzPVA&M^wXkH*1+PET)G5R>8kTn8%V~=CQ2H2&6Um}R)l-*?cB#~#D86}!)s;Qfs4#G*{h+!&NCxcCP
zNG6YY$_eG0cS_i2pcxKosFj3{NM;#+vI*#+Tte!lq+n7irlofFxhR#G;)!Udf_^G$
zq@zw+YNb|g%IB$isJAMZtFJjC8ziv*
z!wOq$th7dJYk0aBcyZ=@DZnpDo
z3vRddew%N&_bRFBxXiXoufX>1i!Z_YBFwMBKgz4{!Rtah?ZoItY%ay@T703y8pGT1
zz#kX(oZuTwbS)MUA5F#Q+=P+TVvg|*7-5C=R`2ww368>q0N#9GpUV|+a|GH
zw%jq%?GoH1;XRVxBJo`lSAYjD_~3*WZusGdC$9M7j5qH1Rd`{r76_Afa2MtOms=i}
zTbsi*gIt}{6}nxcvsF6gr)&N>=Q;``T8mJ={$lJtEUl*OLDH^Q)VJ5pyY0J}VYH)h
z)=YEE$IslR@yjFMe5%U4Gv%Bh6Mb>T)~lPn$J?;-i`f1k1YJ*%HQ(EIEE{LQ(L-+<_sKl}~NeiB3A_3o!Y?KMzQ;TvAg40t{Y
zrq6=wd!Y9i$ibpTa9n>Xp7S21JQDKnfBrLJ3PlLL;EB(5Atc}dJGj6E($Il7n8YmN(2NlDAqb-g#R*z*ie#)}9IvRwGj8#NV`HNp-8e@$qH%+N9AhBMctPX+WCm3^
zL`fEjl7}oMDp#4wRMwJ~pHyTn8JWfaHW41PY$Yp;=t^PU(wMu{q$4>QN<)rvkFq4C
z7lTR6VTSRT)%2h<=O@h)n$n2hEM_*7X-jhAvYEc@qBp5|O>-i1nVy6vC^6~IHo@|l
zmXxP1^~pzAk!xY|T0+6LAA~kkp$}y!c^o?bQHWMlqVJ(-MlHHg
zj8;f&0VEqvK;k!&+U;y7Oa?mlt3K5PUnNWGn3@+UZK@2u
zyISvdr&im!^>=V>Yh1gwR^^1N
z&&_&vwzs_zWedC8fuy#tu#M(#6FXe^g%+;^T&-gp3(#`^Hus#g4QOr~cHG|jHn!7s
zZgjPqUFdfAo!fn7b$c7!y%zVf%ndJizdO#sz81MVQtortYuoyM_P)5aZ+>&MTi2=+
zxbjtRdj*VH{ni%0x*czS1I*q6BUriyhVX;A8{tVRIJ69|uy-{~-wAKn!yVr5vib|(
zPptXl@u;^
zIox6&C?47bwn?Hw2|txr#MCRsXqc!Rr8e9K6N!scRFiX+tk*1t7)!j
zeQQ{ox^GGiwy=jy>|z`H*vL-yvB^r-%5A{eFUZ`pr5)|DR-3ESwsr=fy=`iDTicTJ
zHnTN{=+~x|u5XpAy3sw?gw~Z!xZ{vrty|f0j~32&&Uc;l?dV7|+TZPSGN1yz_nUIhK9pO0&shkjU4Z`eZV1c-B(eMk6*h?oX=n1yIK2#e^2i5Q8F$cJaBhm#nH
zJt&Eq$Z?n`gqHXRj|hjGIEpH@SBRW?NWqwj!?=pYxQV|Ai@6v-$LLVb|j!vkKrf7sZ*p7bqj?}n^mIj8HwrT#D
yHTLL^;`fiAHZ`&sf3fCktA>yY$dC(}fDjpx5;>8t=8zTHHUwxB8EH}p002Ae=10l^
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/multihexa.js b/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/multihexa.js
new file mode 100644
index 00000000000..a377d2bb80d
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/dialog/fck_universalkey/multihexa.js
@@ -0,0 +1,309 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: multihexa.js
+ * Scripts for the fck_universalkey.html page.
+ * Definition des 104 caracteres en hexa unicode.
+ *
+ * File Authors:
+ * Michel Staelens (michel.staelens@wanadoo.fr)
+ * Bernadette Cierzniak
+ * Abdul-Aziz Al-Oraij (top7up@hotmail.com)
+ */
+
+var caps=0, lock=0, hexchars="0123456789ABCDEF", accent="0000", keydeb=0
+var key=new Array();j=0;for (i in Maj){key[j]=i;j++}
+var ns6=((!document.all)&&(document.getElementById))
+var ie=document.all
+
+var langue=getCk();
+if (langue==""){
+ langue=key[keydeb]
+}
+CarMaj=Maj[langue].split("|");CarMin=Min[langue].split("|")
+
+/*unikey*/
+var posUniKeyLeft=0, posUniKeyTop=0
+if (ns6){posUniKeyLeft=0;posUniKeyTop=60}
+else if (ie){posUniKeyLeft=0;posUniKeyTop=60}
+tracer("fond",posUniKeyLeft,posUniKeyTop,'
',"sign")
+/*touches*/
+var posX=new Array(0,28,56,84,112,140,168,196,224,252,280,308,336,42,70,98,126,154,182,210,238,266,294,322,350,50,78,106,134,162,190,218,246,274,302,330,64,92,120,148,176,204,232,260,288,316,28,56,84,294,322,350)
+var posY=new Array(14,14,14,14,14,14,14,14,14,14,14,14,14,42,42,42,42,42,42,42,42,42,42,42,42,70,70,70,70,70,70,70,70,70,70,70,98,98,98,98,98,98,98,98,98,98,126,126,126,126,126,126)
+var nbTouches=52
+for (i=0;i Lock","Enter","Shift","Shift","<|<","Space",">|>")
+var effet=new Array("keyscroll(-3)","keyscroll(3)","faire(\"del\")","RAZ()","faire(\"bck\")","bloq()","faire(\"\\n\")","haut()","haut()","faire(\"ar\")","faire(\" \")","faire(\"av\")")
+var nbActions=12
+for (i=0;i')
+document.write('')
+
+/*fonctions*/
+function ecrire(i){
+ txt=rechercher()+"|";subtxt=txt.split("|")
+ ceci=(lock==1)?CarMaj[i]:((caps==1)?CarMaj[i]:CarMin[i])
+ if (test(ceci)){subtxt[0]+=cardia(ceci);distinguer(false)}
+ else if(dia[accent]!=null&&dia[hexa(ceci)]!=null){distinguer(false);accent=hexa(ceci);distinguer(true)}
+ else if(dia[accent]!=null){subtxt[0]+=fromhexby4tocar(accent)+ceci;distinguer(false)}
+ else if(dia[hexa(ceci)]!=null){accent=hexa(ceci);distinguer(true)}
+ else {subtxt[0]+=ceci}
+ txt=subtxt[0]+"|"+subtxt[1]
+ afficher(txt)
+ if (caps==1){caps=0;MinusMajus()}
+}
+function faire(ceci){
+ txt=rechercher()+"|";subtxt=txt.split("|")
+ l0=subtxt[0].length
+ l1=subtxt[1].length
+ c1=subtxt[0].substring(0,(l0-2))
+ c2=subtxt[0].substring(0,(l0-1))
+ c3=subtxt[1].substring(0,1)
+ c4=subtxt[1].substring(0,2)
+ c5=subtxt[0].substring((l0-2),l0)
+ c6=subtxt[0].substring((l0-1),l0)
+ c7=subtxt[1].substring(1,l1)
+ c8=subtxt[1].substring(2,l1)
+ if(dia[accent]!=null){if(ceci==" "){ceci=fromhexby4tocar(accent)}distinguer(false)}
+ switch (ceci){
+ case("av") :if(escape(c4)!="%0D%0A"){txt=subtxt[0]+c3+"|"+c7}else{txt=subtxt[0]+c4+"|"+c8}break
+ case("ar") :if(escape(c5)!="%0D%0A"){txt=c2+"|"+c6+subtxt[1]}else{txt=c1+"|"+c5+subtxt[1]}break
+ case("bck"):if(escape(c5)!="%0D%0A"){txt=c2+"|"+subtxt[1]}else{txt=c1+"|"+subtxt[1]}break
+ case("del"):if(escape(c4)!="%0D%0A"){txt=subtxt[0]+"|"+c7}else{txt=subtxt[0]+"|"+c8}break
+ default:txt=subtxt[0]+ceci+"|"+subtxt[1];break
+ }
+ afficher(txt)
+}
+function RAZ(){txt="";if(dia[accent]!=null){distinguer(false)}afficher(txt)}
+function haut(){caps=1;MinusMajus()}
+function bloq(){lock=(lock==1)?0:1;MinusMajus()}
+
+/*fonctions de traitement du unikey*/
+function tracer(nom,gauche,haut,ceci,classe){ceci=""+ceci+"";document.write(''+ceci+'');if (ns6){document.getElementById(nom).style.left=gauche+"px";document.getElementById(nom).style.top=haut+"px";}else if (ie){document.all(nom).style.left=gauche;document.all(nom).style.top=haut}}
+function retracer(nom,ceci,classe){ceci=""+ceci+"";if (ns6){document.getElementById(nom).innerHTML=ceci}else if (ie){doc=document.all(nom);doc.innerHTML=ceci}}
+function keyscroll(n){
+ keydeb+=n
+ if (keydeb<0){
+ keydeb=0
+ }
+ if (keydeb>key.length-4){
+ keydeb=key.length-4
+ }
+ for (i=keydeb;i=0;a--){out+=Math.pow(16,inval.length-a-1)*hexchars.indexOf(inval.charAt(a))}return out}
+function fromhexby4tocar(ceci){out4=new String();for (l=0;l-1)|(langue!="Arabic")) return true;
+
+ if (!e) var e = window.event;
+ if (e.keyCode) keyCode = e.keyCode;
+ else if (e.which) keyCode = e.which;
+ var character = String.fromCharCode(keyCode);
+
+ entry = true;
+ cont=e.srcElement || e.currentTarget || e.target;
+ if (keyCode>64 && keyCode<91) {
+ entry=false;
+ source='ش لاؤ ي ث ب ل ا ه ت ن م ة ى خ ح ض ق س ف ع ر ص ء غ ئ ';
+ shsource='ِ لآ} ] ُ [ لأأ ÷ ـ ، / آ × ؛ َ ٌ ٍ لإ { ً ْ إ ~';
+
+ if (e.shiftKey) cont.value += shsource.substr((keyCode-64)*2-2,2);
+ else
+ cont.value += source.substr((keyCode-64)*2-2,2);
+ if (cont.value.substr(cont.value.length-1,1)==' ') cont.value=cont.value.substr(0,cont.value.length-1);
+ }
+ if (e.shiftKey) {
+ if (keyCode==186) {cont.value += ':';entry=false;}
+ if (keyCode==188) {cont.value += ',';entry=false;}
+ if (keyCode==190) {cont.value += '.';entry=false;}
+ if (keyCode==191) {cont.value += '؟';entry=false;}
+ if (keyCode==192) {cont.value += 'ّ';entry=false;}
+ if (keyCode==219) {cont.value += '<';entry=false;}
+ if (keyCode==221) {cont.value += '>';entry=false;}
+ } else {
+ if (keyCode==186||keyCode==59) {cont.value += 'ك';entry=false;}
+ if (keyCode==188) {cont.value += 'و';entry=false;}
+ if (keyCode==190) {cont.value += 'ز';entry=false;}
+ if (keyCode==191) {cont.value += 'ظ';entry=false;}
+ if (keyCode==192) {cont.value += 'ذ';entry=false;}
+ if (keyCode==219) {cont.value += 'ج';entry=false;}
+ if (keyCode==221) {cont.value += 'د';entry=false;}
+ if (keyCode==222) {cont.value += 'ط';entry=false;}
+ }
+ return entry;
+}
+function hold_it(e){
+ if ((document.layers)|(navigator.userAgent.indexOf("MSIE 4")>-1)|(langue!="Arabic")) return true;
+
+ var keyCode;
+ if (!e) var e = window.event;
+ if (e.keyCode) keyCode = e.keyCode;
+ else if (e.which) keyCode = e.which;
+ var character = String.fromCharCode(keyCode);
+ switch(keyCode){
+ case 186:
+ case 188:
+ case 190:
+ case 191:
+ case 192:
+ case 219:
+ case 221:
+ case 222:
+ case 116:
+ case 59:
+ case 47:
+ case 46:
+ case 44:
+ case 39:
+ return false;
+ case 92:
+ return true;
+ }
+ if (keyCode<63) return true;
+ return false;
+ }
+
+var obj = document.getElementById( 'uni_area' );
+if ( obj && langue=="Arabic"){
+ with (navigator) {
+ if (appName=="Netscape")
+ obj.onkeypress = hold_it;
+ }
+ obj.onkeydown = arkey;
+}
+// Arabic Keystroke Translator End
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/fckblank.html b/htdocs/includes/fckeditor/editor/fckblank.html
new file mode 100644
index 00000000000..d53f37eaa15
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/fckblank.html
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/fckdebug.html b/htdocs/includes/fckeditor/editor/fckdebug.html
new file mode 100644
index 00000000000..027f5bfbf44
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/fckdebug.html
@@ -0,0 +1,111 @@
+
+
+
+
+ FCKeditor Debug Window
+
+
+
+
+
+
+
+
+
+
+ FCKeditor Debug Window
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/fckdialog.html b/htdocs/includes/fckeditor/editor/fckdialog.html
new file mode 100644
index 00000000000..857a819c1db
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/fckdialog.html
@@ -0,0 +1,319 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/fckeditor.html b/htdocs/includes/fckeditor/editor/fckeditor.html
new file mode 100644
index 00000000000..e79670822c4
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/fckeditor.html
@@ -0,0 +1,207 @@
+
+
+
+
+ FCKeditor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/fckeditor.original.html b/htdocs/includes/fckeditor/editor/fckeditor.original.html
new file mode 100644
index 00000000000..c26050f432d
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/fckeditor.original.html
@@ -0,0 +1,289 @@
+
+
+
+
+ FCKeditor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/browser.css b/htdocs/includes/fckeditor/editor/filemanager/browser/default/browser.css
new file mode 100644
index 00000000000..5d063dd059e
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/browser.css
@@ -0,0 +1,84 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: browser.css
+ * CSS styles used by all pages that compose the File Browser.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+body
+{
+ background-color: #f1f1e3;
+}
+
+form
+{
+ margin: 0px 0px 0px 0px ;
+ padding: 0px 0px 0px 0px ;
+}
+
+.Frame
+{
+ background-color: #f1f1e3;
+ border-color: #f1f1e3;
+ border-right: thin inset;
+ border-top: thin inset;
+ border-left: thin inset;
+ border-bottom: thin inset;
+}
+
+body.FileArea
+{
+
+ background-color: #ffffff;
+}
+
+body, td, input, select
+{
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;
+}
+
+.ActualFolder
+{
+ font-weight: bold;
+ font-size: 14px;
+}
+
+.PopupButtons
+{
+ border-top: #d5d59d 1px solid;
+ background-color: #e3e3c7;
+ padding: 7px 10px 7px 10px;
+}
+
+.Button, button
+{
+ border-right: #737357 1px solid;
+ border-top: #737357 1px solid;
+ border-left: #737357 1px solid;
+ color: #3b3b1f;
+ border-bottom: #737357 1px solid;
+ background-color: #c7c78f;
+}
+
+.FolderListCurrentFolder img
+{
+ background-image: url(images/FolderOpened.gif);
+}
+
+.FolderListFolder img
+{
+ background-image: url(images/Folder.gif);
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/browser.html b/htdocs/includes/fckeditor/editor/filemanager/browser/default/browser.html
new file mode 100644
index 00000000000..10f53146e24
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/browser.html
@@ -0,0 +1,148 @@
+
+
+
+
+ FCKeditor - Resources Browser
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/basexml.asp b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/basexml.asp
new file mode 100644
index 00000000000..fa86743ee7a
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/basexml.asp
@@ -0,0 +1,58 @@
+
+<%
+
+Sub SetXmlHeaders()
+ ' Cleans the response buffer.
+ Response.Clear()
+
+ ' Prevent the browser from caching the result.
+ Response.CacheControl = "no-cache"
+
+ ' Set the response format.
+ Response.CharSet = "UTF-8"
+ Response.ContentType = "text/xml"
+End Sub
+
+Sub CreateXmlHeader( command, resourceType, currentFolder )
+ ' Create the XML document header.
+ Response.Write ""
+
+ ' Create the main "Connector" node.
+ Response.Write ""
+
+ ' Add the current folder node.
+ Response.Write " "
+End Sub
+
+Sub CreateXmlFooter()
+ Response.Write " "
+End Sub
+
+Sub SendError( number, text )
+ SetXmlHeaders
+
+ ' Create the XML document header.
+ Response.Write ""
+
+ Response.Write " "
+
+ Response.End
+End Sub
+%>
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/class_upload.asp b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/class_upload.asp
new file mode 100644
index 00000000000..5e60ab92ee3
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/class_upload.asp
@@ -0,0 +1,230 @@
+
+<%
+'**********************************************
+' File: NetRube_Upload.asp
+' Version: NetRube Upload Class Version 2.1 Build 20050228
+' Author: NetRube
+' Email: NetRube@126.com
+' Date: 02/28/2005
+' Comments: The code for the Upload.
+' This can free usage, but please
+' not to delete this copyright information.
+' If you have a modification version,
+' Please send out a duplicate to me.
+'**********************************************
+' 文件名: NetRube_Upload.asp
+' 版本: NetRube Upload Class Version 2.1 Build 20050228
+' 作者: NetRube(网络乡巴佬)
+' 电子邮件: NetRube@126.com
+' 日期: 2005年02月28日
+' 声明: 文件上传类
+' 本上传类可以自由使用,但请保留此版权声明信息
+' 如果您对本上传类进行修改增强,
+' 请发送一份给俺。
+'**********************************************
+
+Class NetRube_Upload
+
+ Public File, Form
+ Private oSourceData
+ Private nMaxSize, nErr, sAllowed, sDenied
+
+ Private Sub Class_Initialize
+ nErr = 0
+ nMaxSize = 1048576
+
+ Set File = Server.CreateObject("Scripting.Dictionary")
+ File.CompareMode = 1
+ Set Form = Server.CreateObject("Scripting.Dictionary")
+ Form.CompareMode = 1
+
+ Set oSourceData = Server.CreateObject("ADODB.Stream")
+ oSourceData.Type = 1
+ oSourceData.Mode = 3
+ oSourceData.Open
+ End Sub
+
+ Private Sub Class_Terminate
+ Form.RemoveAll
+ Set Form = Nothing
+ File.RemoveAll
+ Set File = Nothing
+
+ oSourceData.Close
+ Set oSourceData = Nothing
+ End Sub
+
+ Public Property Get Version
+ Version = "NetRube Upload Class Version 1.0 Build 20041218"
+ End Property
+
+ Public Property Get ErrNum
+ ErrNum = nErr
+ End Property
+
+ Public Property Let MaxSize(nSize)
+ nMaxSize = nSize
+ End Property
+
+ Public Property Let Allowed(sExt)
+ sAllowed = sExt
+ End Property
+
+ Public Property Let Denied(sExt)
+ sDenied = sExt
+ End Property
+
+ Public Sub GetData
+ Dim aCType
+ aCType = Split(Request.ServerVariables("HTTP_CONTENT_TYPE"), ";")
+ If aCType(0) <> "multipart/form-data" Then
+ nErr = 1
+ Exit Sub
+ End If
+
+ Dim nTotalSize
+ nTotalSize = Request.TotalBytes
+ If nTotalSize < 1 Then
+ nErr = 2
+ Exit Sub
+ End If
+ If nMaxSize > 0 And nTotalSize > nMaxSize Then
+ nErr = 3
+ Exit Sub
+ End If
+
+ oSourceData.Write Request.BinaryRead(nTotalSize)
+ oSourceData.Position = 0
+
+ Dim oTotalData, oFormStream, sFormHeader, sFormName, bCrLf, nBoundLen, nFormStart, nFormEnd, nPosStart, nPosEnd, sBoundary
+
+ oTotalData = oSourceData.Read
+ bCrLf = ChrB(13) & ChrB(10)
+ sBoundary = MidB(oTotalData, 1, InStrB(1, oTotalData, bCrLf) - 1)
+ nBoundLen = LenB(sBoundary) + 2
+ nFormStart = nBoundLen
+
+ Set oFormStream = Server.CreateObject("ADODB.Stream")
+
+ Do While (nFormStart + 2) < nTotalSize
+ nFormEnd = InStrB(nFormStart, oTotalData, bCrLf & bCrLf) + 3
+
+ With oFormStream
+ .Type = 1
+ .Mode = 3
+ .Open
+ oSourceData.Position = nFormStart
+ oSourceData.CopyTo oFormStream, nFormEnd - nFormStart
+ .Position = 0
+ .Type = 2
+ .CharSet = "UTF-8"
+ sFormHeader = .ReadText
+ .Close
+ End With
+
+ nFormStart = InStrB(nFormEnd, oTotalData, sBoundary) - 1
+ nPosStart = InStr(22, sFormHeader, " name=", 1) + 7
+ nPosEnd = InStr(nPosStart, sFormHeader, """")
+ sFormName = Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
+
+ If InStr(45, sFormHeader, " filename=", 1) > 0 Then
+ Set File(sFormName) = New NetRube_FileInfo
+ File(sFormName).FormName = sFormName
+ File(sFormName).Start = nFormEnd
+ File(sFormName).Size = nFormStart - nFormEnd - 2
+ nPosStart = InStr(nPosEnd, sFormHeader, " filename=", 1) + 11
+ nPosEnd = InStr(nPosStart, sFormHeader, """")
+ File(sFormName).ClientPath = Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
+ File(sFormName).Name = Mid(File(sFormName).ClientPath, InStrRev(File(sFormName).ClientPath, "\") + 1)
+ File(sFormName).Ext = LCase(Mid(File(sFormName).Name, InStrRev(File(sFormName).Name, ".") + 1))
+ nPosStart = InStr(nPosEnd, sFormHeader, "Content-Type: ", 1) + 14
+ nPosEnd = InStr(nPosStart, sFormHeader, vbCr)
+ File(sFormName).MIME = Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
+ Else
+ With oFormStream
+ .Type = 1
+ .Mode = 3
+ .Open
+ oSourceData.Position = nPosEnd
+ oSourceData.CopyTo oFormStream, nFormStart - nFormEnd - 2
+ .Position = 0
+ .Type = 2
+ .CharSet = "UTF-8"
+ Form(sFormName) = .ReadText
+ .Close
+ End With
+ End If
+
+ nFormStart = nFormStart + nBoundLen
+ Loop
+
+ oTotalData = ""
+ Set oFormStream = Nothing
+ End Sub
+
+ Public Sub SaveAs(sItem, sFileName)
+ If File(sItem).Size < 1 Then
+ nErr = 2
+ Exit Sub
+ End If
+
+ If Not IsAllowed(File(sItem).Ext) Then
+ nErr = 4
+ Exit Sub
+ End If
+
+ Dim oFileStream
+ Set oFileStream = Server.CreateObject("ADODB.Stream")
+ With oFileStream
+ .Type = 1
+ .Mode = 3
+ .Open
+ oSourceData.Position = File(sItem).Start
+ oSourceData.CopyTo oFileStream, File(sItem).Size
+ .Position = 0
+ .SaveToFile sFileName, 2
+ .Close
+ End With
+ Set oFileStream = Nothing
+ End Sub
+
+ Private Function IsAllowed(sExt)
+ Dim oRE
+ Set oRE = New RegExp
+ oRE.IgnoreCase = True
+ oRE.Global = True
+
+ If sDenied = "" Then
+ oRE.Pattern = sAllowed
+ IsAllowed = (sAllowed = "") Or oRE.Test(sExt)
+ Else
+ oRE.Pattern = sDenied
+ IsAllowed = Not oRE.Test(sExt)
+ End If
+
+ Set oRE = Nothing
+ End Function
+End Class
+
+Class NetRube_FileInfo
+ Dim FormName, ClientPath, Path, Name, Ext, Content, Size, MIME, Start
+End Class
+%>
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/commands.asp b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/commands.asp
new file mode 100644
index 00000000000..d093488a47a
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/commands.asp
@@ -0,0 +1,179 @@
+
+<%
+Sub GetFolders( resourceType, currentFolder )
+ ' Map the virtual path to the local server path.
+ Dim sServerDir
+ sServerDir = ServerMapFolder( resourceType, currentFolder )
+
+ ' Open the "Folders" node.
+ Response.Write ""
+
+ Dim oFSO, oCurrentFolder, oFolders, oFolder
+ Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
+ Set oCurrentFolder = oFSO.GetFolder( sServerDir )
+ Set oFolders = oCurrentFolder.SubFolders
+
+ For Each oFolder in oFolders
+ Response.Write " "
+ Next
+
+ Set oFSO = Nothing
+
+ ' Close the "Folders" node.
+ Response.Write " "
+End Sub
+
+Sub GetFoldersAndFiles( resourceType, currentFolder )
+ ' Map the virtual path to the local server path.
+ Dim sServerDir
+ sServerDir = ServerMapFolder( resourceType, currentFolder )
+
+ Dim oFSO, oCurrentFolder, oFolders, oFolder, oFiles, oFile
+ Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
+ Set oCurrentFolder = oFSO.GetFolder( sServerDir )
+ Set oFolders = oCurrentFolder.SubFolders
+ Set oFiles = oCurrentFolder.Files
+
+ ' Open the "Folders" node.
+ Response.Write ""
+
+ For Each oFolder in oFolders
+ Response.Write " "
+ Next
+
+ ' Close the "Folders" node.
+ Response.Write " "
+
+ ' Open the "Files" node.
+ Response.Write ""
+
+ For Each oFile in oFiles
+ Dim iFileSize
+ iFileSize = Round( oFile.size / 1024 )
+ If ( iFileSize < 1 AND oFile.size <> 0 ) Then iFileSize = 1
+
+ Response.Write " "
+ Next
+
+ ' Close the "Files" node.
+ Response.Write " "
+End Sub
+
+Sub CreateFolder( resourceType, currentFolder )
+ Dim sErrorNumber
+
+ Dim sNewFolderName
+ sNewFolderName = Request.QueryString( "NewFolderName" )
+
+ If ( sNewFolderName = "" OR InStr( 1, sNewFolderName, ".." ) > 0 ) Then
+ sErrorNumber = "102"
+ Else
+ ' Map the virtual path to the local server path of the current folder.
+ Dim sServerDir
+ sServerDir = ServerMapFolder( resourceType, currentFolder & "/" & sNewFolderName )
+
+ On Error Resume Next
+
+ CreateServerFolder sServerDir
+
+ Dim iErrNumber, sErrDescription
+ iErrNumber = err.number
+ sErrDescription = err.Description
+
+ On Error Goto 0
+
+ Select Case iErrNumber
+ Case 0
+ sErrorNumber = "0"
+ Case 52
+ sErrorNumber = "102" ' Invalid Folder Name.
+ Case 70
+ sErrorNumber = "103" ' Security Error.
+ Case 76
+ sErrorNumber = "102" ' Path too long.
+ Case Else
+ sErrorNumber = "110"
+ End Select
+ End If
+
+ ' Create the "Error" node.
+ Response.Write " "
+End Sub
+
+Sub FileUpload( resourceType, currentFolder )
+ Dim oUploader
+ Set oUploader = New NetRube_Upload
+ oUploader.MaxSize = 0
+ oUploader.Allowed = ConfigAllowedExtensions.Item( resourceType )
+ oUploader.Denied = ConfigDeniedExtensions.Item( resourceType )
+ oUploader.GetData
+
+ Dim sErrorNumber
+ sErrorNumber = "0"
+
+ Dim sFileName, sOriginalFileName, sExtension
+ sFileName = ""
+
+ If oUploader.ErrNum > 1 Then
+ sErrorNumber = "202"
+ Else
+ ' Map the virtual path to the local server path.
+ Dim sServerDir
+ sServerDir = ServerMapFolder( resourceType, currentFolder )
+
+ Dim oFSO
+ Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
+
+ ' Get the uploaded file name.
+ sFileName = oUploader.File( "NewFile" ).Name
+ sExtension = oUploader.File( "NewFile" ).Ext
+ sOriginalFileName = sFileName
+
+ Dim iCounter
+ iCounter = 0
+
+ Do While ( True )
+ Dim sFilePath
+ sFilePath = sServerDir & sFileName
+
+ If ( oFSO.FileExists( sFilePath ) ) Then
+ iCounter = iCounter + 1
+ sFileName = RemoveExtension( sOriginalFileName ) & "(" & iCounter & ")." & sExtension
+ sErrorNumber = "201"
+ Else
+ oUploader.SaveAs "NewFile", sFilePath
+ If oUploader.ErrNum > 0 Then sErrorNumber = "202"
+ Exit Do
+ End If
+ Loop
+ End If
+
+ Set oUploader = Nothing
+
+ Response.Clear
+
+ Response.Write ""
+
+ Response.End
+End Sub
+%>
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/config.asp b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/config.asp
new file mode 100644
index 00000000000..804af66bee8
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/config.asp
@@ -0,0 +1,45 @@
+
+<%
+
+' SECURITY: You must explicitelly enable this "connector" (set it to "True").
+Dim ConfigIsEnabled
+ConfigIsEnabled = False
+
+' Path to user files relative to the document root.
+Dim ConfigUserFilesPath
+ConfigUserFilesPath = "/UserFiles/"
+
+Dim ConfigAllowedExtensions, ConfigDeniedExtensions
+Set ConfigAllowedExtensions = CreateObject( "Scripting.Dictionary" )
+Set ConfigDeniedExtensions = CreateObject( "Scripting.Dictionary" )
+
+ConfigAllowedExtensions.Add "File", ""
+ConfigDeniedExtensions.Add "File", "php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi"
+
+ConfigAllowedExtensions.Add "Image", "jpg|gif|jpeg|png|bmp"
+ConfigDeniedExtensions.Add "Image", ""
+
+ConfigAllowedExtensions.Add "Flash", "swf|fla"
+ConfigDeniedExtensions.Add "Flash", ""
+
+ConfigAllowedExtensions.Add "Media", "swf|fla|jpg|gif|jpeg|png|avi|mpg|mpeg|mp(1-4)|wma|wmv|wav|mid|midi|rmi|rm|ram|rmvb|mov|qt"
+ConfigDeniedExtensions.Add "Media", ""
+
+%>
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/connector.asp b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/connector.asp
new file mode 100644
index 00000000000..157a5c1d31c
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/connector.asp
@@ -0,0 +1,120 @@
+<%@ CodePage=65001 Language="VBScript"%>
+<%
+Option Explicit
+Response.Buffer = True
+%>
+
+
+
+
+
+
+
+<%
+
+If ( ConfigIsEnabled = False ) Then
+ SendError 1, "This connector is disabled. Please check the ""editor/filemanager/browser/default/connectors/asp/config.asp"" file"
+End If
+
+' Get the "UserFiles" path.
+Dim sUserFilesPath
+
+If ( Not IsEmpty( ConfigUserFilesPath ) ) Then
+ sUserFilesPath = ConfigUserFilesPath
+
+ If ( Right( sUserFilesPath, 1 ) <> "/" ) Then
+ sUserFilesPath = sUserFilesPath & "/"
+ End If
+Else
+ sUserFilesPath = "/UserFiles/"
+End If
+
+' Map the "UserFiles" path to a local directory.
+Dim sUserFilesDirectory
+sUserFilesDirectory = Server.MapPath( sUserFilesPath )
+
+If ( Right( sUserFilesDirectory, 1 ) <> "\" ) Then
+ sUserFilesDirectory = sUserFilesDirectory & "\"
+End If
+
+DoResponse
+
+Sub DoResponse()
+ Dim sCommand, sResourceType, sCurrentFolder
+
+ ' Get the main request information.
+ sCommand = Request.QueryString("Command")
+ If ( sCommand = "" ) Then Exit Sub
+
+ sResourceType = Request.QueryString("Type")
+ If ( sResourceType = "" ) Then Exit Sub
+
+ sCurrentFolder = Request.QueryString("CurrentFolder")
+ If ( sCurrentFolder = "" ) Then Exit Sub
+
+ ' Check if it is an allower resource type.
+ if ( Not IsAllowedType( sResourceType ) ) Then Exit Sub
+
+ ' Check the current folder syntax (must begin and start with a slash).
+ If ( Right( sCurrentFolder, 1 ) <> "/" ) Then sCurrentFolder = sCurrentFolder & "/"
+ If ( Left( sCurrentFolder, 1 ) <> "/" ) Then sCurrentFolder = "/" & sCurrentFolder
+
+ ' Check for invalid folder paths (..)
+ If ( InStr( 1, sCurrentFolder, ".." ) <> 0 OR InStr( 1, sResourceType, ".." ) <> 0 ) Then
+ SendError 102, ""
+ End If
+
+ ' File Upload doesn't have to Return XML, so it must be intercepted before anything.
+ If ( sCommand = "FileUpload" ) Then
+ FileUpload sResourceType, sCurrentFolder
+ Exit Sub
+ End If
+
+ SetXmlHeaders
+
+ CreateXmlHeader sCommand, sResourceType, sCurrentFolder
+
+ ' Execute the required command.
+ Select Case sCommand
+ Case "GetFolders"
+ GetFolders sResourceType, sCurrentFolder
+ Case "GetFoldersAndFiles"
+ GetFoldersAndFiles sResourceType, sCurrentFolder
+ Case "CreateFolder"
+ CreateFolder sResourceType, sCurrentFolder
+ End Select
+
+ CreateXmlFooter
+
+ Response.End
+End Sub
+
+Function IsAllowedType( resourceType )
+ Dim oRE
+ Set oRE = New RegExp
+ oRE.IgnoreCase = True
+ oRE.Global = True
+ oRE.Pattern = "^(File|Image|Flash|Media)$"
+
+ IsAllowedType = oRE.Test( resourceType )
+
+ Set oRE = Nothing
+End Function
+%>
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/io.asp b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/io.asp
new file mode 100644
index 00000000000..d4cedafb7d6
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/io.asp
@@ -0,0 +1,85 @@
+
+<%
+Function GetUrlFromPath( resourceType, folderPath )
+ If resourceType = "" Then
+ GetUrlFromPath = RemoveFromEnd( sUserFilesPath, "/" ) & folderPath
+ Else
+ GetUrlFromPath = sUserFilesPath & resourceType & folderPath
+ End If
+End Function
+
+Function RemoveExtension( fileName )
+ RemoveExtension = Left( fileName, InStrRev( fileName, "." ) - 1 )
+End Function
+
+Function ServerMapFolder( resourceType, folderPath )
+ ' Get the resource type directory.
+ Dim sResourceTypePath
+ sResourceTypePath = sUserFilesDirectory & resourceType & "\"
+
+ ' Ensure that the directory exists.
+ CreateServerFolder sResourceTypePath
+
+ ' Return the resource type directory combined with the required path.
+ ServerMapFolder = sResourceTypePath & RemoveFromStart( folderPath, "/" )
+End Function
+
+Sub CreateServerFolder( folderPath )
+ Dim oFSO
+ Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
+
+ Dim sParent
+ sParent = oFSO.GetParentFolderName( folderPath )
+
+ ' Check if the parent exists, or create it.
+ If ( NOT oFSO.FolderExists( sParent ) ) Then CreateServerFolder( sParent )
+
+ If ( oFSO.FolderExists( folderPath ) = False ) Then
+ oFSO.CreateFolder( folderPath )
+ End If
+
+ Set oFSO = Nothing
+End Sub
+
+Function IsAllowedExt( extension, resourceType )
+ Dim oRE
+ Set oRE = New RegExp
+ oRE.IgnoreCase = True
+ oRE.Global = True
+
+ Dim sAllowed, sDenied
+ sAllowed = ConfigAllowedExtensions.Item( resourceType )
+ sDenied = ConfigDeniedExtensions.Item( resourceType )
+
+ IsAllowedExt = True
+
+ If sDenied <> "" Then
+ oRE.Pattern = sDenied
+ IsAllowedExt = Not oRE.Test( extension )
+ End If
+
+ If IsAllowedExt And sAllowed <> "" Then
+ oRE.Pattern = sAllowed
+ IsAllowedExt = oRE.Test( extension )
+ End If
+
+ Set oRE = Nothing
+End Function
+%>
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/util.asp b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/util.asp
new file mode 100644
index 00000000000..c06eed66603
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/asp/util.asp
@@ -0,0 +1,51 @@
+
+<%
+Function RemoveFromStart( sourceString, charToRemove )
+ Dim oRegex
+ Set oRegex = New RegExp
+ oRegex.Pattern = "^" & charToRemove & "+"
+
+ RemoveFromStart = oRegex.Replace( sourceString, "" )
+End Function
+
+Function RemoveFromEnd( sourceString, charToRemove )
+ Dim oRegex
+ Set oRegex = New RegExp
+ oRegex.Pattern = charToRemove & "+$"
+
+ RemoveFromEnd = oRegex.Replace( sourceString, "" )
+End Function
+
+Function ConvertToXmlAttribute( value )
+ ConvertToXmlAttribute = Replace( value, "&", "&" )
+End Function
+
+Function InArray( value, sourceArray )
+ Dim i
+ For i = 0 to UBound( sourceArray )
+ If sourceArray(i) = value Then
+ InArray = True
+ Exit Function
+ End If
+ Next
+ InArray = False
+End Function
+
+%>
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx
new file mode 100644
index 00000000000..8b814b39dee
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx
@@ -0,0 +1,26 @@
+<%@ Page language="c#" Inherits="FredCK.FCKeditorV2.FileBrowserConnector" AutoEventWireup="false" %>
+<%--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: connector.aspx
+ * This is the File Browser Connector for ASP.NET.
+ *
+ * The code of this page if included in the FCKeditor.Net package,
+ * in the FredCK.FCKeditorV2.dll assemblyfile. So to use it you must
+ * include that DLL in your "bin" directory.
+ *
+ * To download the FCKeditor.Net package, go to our official web site:
+ * http://www.fckeditor.net
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+--%>
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/cfm/config.cfm b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/cfm/config.cfm
new file mode 100644
index 00000000000..10c976dc133
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/cfm/config.cfm
@@ -0,0 +1,80 @@
+
+
+
+ config = structNew();
+
+ // SECURITY: You must explicitly enable this "connector". (Set enabled to "true")
+ config.enabled = false;
+
+ config.userFilesPath = "/UserFiles/";
+
+ config.serverPath = ""; // use this to force the server path if FCKeditor is not running directly off the root of the application or the FCKeditor directory in the URL is a virtual directory or a symbolic link / junction
+
+ config.allowedExtensions = structNew();
+ config.deniedExtensions = structNew();
+
+ // config.allowedExtensions["File"] = "doc,rtf,pdf,ppt,pps,xls,csv,vnd,zip";
+ config.allowedExtensions["File"] = "";
+ config.deniedExtensions["File"] = "php,php2,php3,php4,php5,phtml,pwml,inc,asp,aspx,ascx,jsp,cfm,cfc,pl,bat,exe,com,dll,vbs,js,reg,cgi";
+
+ config.allowedExtensions["Image"] = "png,gif,jpg,jpeg,bmp";
+ config.deniedExtensions["Image"] = "";
+
+ config.allowedExtensions["Flash"] = "swf,fla";
+ config.deniedExtensions["Flash"] = "";
+
+ config.allowedExtensions["Media"] = "swf,fla,jpg,gif,jpeg,png,avi,mpg,mpeg,mp3,mp4,m4a,wma,wmv,wav,mid,midi,rmi,rm,ram,rmvb,mov,qt";
+ config.deniedExtensions["Media"] = "";
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ function structCopyKeys(stFrom, stTo) {
+ for ( key in stFrom ) {
+ if ( isStruct(stFrom[key]) ) {
+ structCopyKeys(stFrom[key],stTo[key]);
+ } else {
+ stTo[key] = stFrom[key];
+ }
+ }
+ }
+ structCopyKeys(FCKeditor, config);
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/cfm/connector.cfm b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/cfm/connector.cfm
new file mode 100644
index 00000000000..7fa0888abd7
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/cfm/connector.cfm
@@ -0,0 +1,364 @@
+
+
+
+
+
+
+
+
+
+
+
+ userFilesPath = config.userFilesPath;
+ lAllowedExtensions = config.allowedExtensions[url.type];
+ lDeniedExtensions = config.deniedExtensions[url.type];
+
+ // make sure the user files path is correctly formatted
+ userFilesPath = replace(userFilesPath, "\", "/", "ALL");
+ userFilesPath = replace(userFilesPath, '//', '/', 'ALL');
+ if ( right(userFilesPath,1) neq "/" ) {
+ userFilesPath = userFilesPath & "/";
+ }
+ if ( left(userFilesPath,1) neq "/" ) {
+ userFilesPath = "/" & userFilesPath;
+ }
+
+ // make sure the current folder is correctly formatted
+ url.currentFolder = replace(url.currentFolder, "\", "/", "ALL");
+ url.currentFolder = replace(url.currentFolder, '//', '/', 'ALL');
+ if ( right(url.currentFolder,1) neq "/" ) {
+ url.currentFolder = url.currentFolder & "/";
+ }
+ if ( left(url.currentFolder,1) neq "/" ) {
+ url.currentFolder = "/" & url.currentFolder;
+ }
+
+ if ( find("/",getBaseTemplatePath()) neq 0 ) {
+ fs = "/";
+ } else {
+ fs = "\";
+ }
+
+ // Get the base physical path to the web root for this application. The code to determine the path automatically assumes that
+ // the "FCKeditor" directory in the http request path is directly off the web root for the application and that it's not a
+ // virtual directory or a symbolic link / junction. Use the serverPath config setting to force a physical path if necessary.
+ if ( len(config.serverPath) ) {
+ serverPath = config.serverPath;
+ } else {
+ serverPath = replaceNoCase(getBaseTemplatePath(),replace(cgi.script_name,"/",fs,"all"),"");
+ }
+
+ // map the user files path to a physical directory
+ userFilesServerPath = serverPath & replace(userFilesPath,"/",fs,"all");
+
+ xmlContent = ""; // append to this string to build content
+
+
+
+
+ ">
+
+
+
+ ">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ errorNumber = 0;
+ fileName = cffile.ClientFileName;
+ fileExt = cffile.ServerFileExt;
+
+ // munge filename for html download. Only a-z, 0-9, _, - and . are allowed
+ if( reFind("[^A-Za-z0-9_\-\.]", fileName) ) {
+ fileName = reReplace(fileName, "[^A-Za-z0-9\-\.]", "_", "ALL");
+ fileName = reReplace(fileName, "_{2,}", "_", "ALL");
+ fileName = reReplace(fileName, "([^_]+)_+$", "\1", "ALL");
+ fileName = reReplace(fileName, "$_([^_]+)$", "\1", "ALL");
+ }
+
+ // When the original filename already exists, add numbers (0), (1), (2), ... at the end of the filename.
+ if( compare( cffile.ServerFileName, fileName ) ) {
+ counter = 0;
+ tmpFileName = fileName;
+ while( fileExists("#currentFolderPath##fileName#.#fileExt#") ) {
+ counter = counter + 1;
+ fileName = tmpFileName & '(#counter#)';
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ i=1;
+ folders = "";
+ while( i lte qDir.recordCount ) {
+ if( not compareNoCase( qDir.type[i], "FILE" ))
+ break;
+ if( not listFind(".,..", qDir.name[i]) )
+ folders = folders & ' ';
+ i=i+1;
+ }
+
+ xmlContent = xmlContent & '' & folders & ' ';
+
+
+
+
+
+
+
+
+
+
+
+ i=1;
+ folders = "";
+ files = "";
+ while( i lte qDir.recordCount ) {
+ if( not compareNoCase( qDir.type[i], "DIR" ) and not listFind(".,..", qDir.name[i]) ) {
+ folders = folders & ' ';
+ } else if( not compareNoCase( qDir.type[i], "FILE" ) ) {
+ fileSizeKB = round(qDir.size[i] / 1024);
+ files = files & ' ';
+ }
+ i=i+1;
+ }
+
+ xmlContent = xmlContent & '' & folders & ' ';
+ xmlContent = xmlContent & '' & files & ' ';
+
+
+
+
+
+
+
+
+
+
+ newFolderName = url.newFolderName;
+ if( reFind("[^A-Za-z0-9_\-\.]", newFolderName) ) {
+ // Munge folder name same way as we do the filename
+ // This means folder names are always US-ASCII so we don't have to worry about CF5 and UTF-8
+ newFolderName = reReplace(newFolderName, "[^A-Za-z0-9\-\.]", "_", "all");
+ newFolderName = reReplace(newFolderName, "_{2,}", "_", "all");
+ newFolderName = reReplace(newFolderName, "([^_]+)_+$", "\1", "all");
+ newFolderName = reReplace(newFolderName, "$_([^_]+)$", "\1", "all");
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ '>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ xmlHeader = '';
+ xmlHeader = xmlHeader & ' ';
+ xmlFooter = ' ';
+
+
+
+
+
+
+#xmlHeader##xmlContent##xmlFooter#
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/lasso/config.lasso b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/lasso/config.lasso
new file mode 100644
index 00000000000..460138e97ec
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/lasso/config.lasso
@@ -0,0 +1,61 @@
+[//lasso
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: config.lasso
+ * Configuration file for the File Manager Connector for Lasso.
+ *
+ * File Authors:
+ * Jason Huck (jason.huck@corefive.com)
+ */
+
+ /*.....................................................................
+ The connector uses the file tags, which require authentication. Enter a
+ valid username and password from Lasso admin for a group with file tags
+ permissions for uploads and the path you define in UserFilesPath below.
+ */
+
+ var('connection') = array(
+ -username='xxxxxxxx',
+ -password='xxxxxxxx'
+ );
+
+
+ /*.....................................................................
+ Set the base path for files that users can upload and browse (relative
+ to server root).
+
+ Set which file extensions are allowed and/or denied for each file type.
+ */
+ var('config') = map(
+ 'Enabled' = true,
+ 'UserFilesPath' = '/UserFiles/',
+ 'Subdirectories' = map(
+ 'File' = 'File/',
+ 'Image' = 'Image/',
+ 'Flash' = 'Flash/',
+ 'Media' = 'Media/'
+ ),
+ 'AllowedExtensions' = map(
+ 'File' = array(),
+ 'Image' = array('jpg','gif','jpeg','png'),
+ 'Flash' = array('swf','fla'),
+ 'Media' = array('swf','fla','jpg','gif','jpeg','png','avi','mpg','mpeg')
+ ),
+ 'DeniedExtensions' = map(
+ 'File' = array('php','php2','php3','php4','php5','phtml','pwml','inc','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','com','dll','vbs','js','reg','cgi','lasso','lassoapp'),
+ 'Image' = array(),
+ 'Flash' = array(),
+ 'Media' = array()
+ )
+ );
+]
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/lasso/connector.lasso b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/lasso/connector.lasso
new file mode 100644
index 00000000000..54c0ce52e69
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/lasso/connector.lasso
@@ -0,0 +1,245 @@
+[//lasso
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: connector.lasso
+ * This is the File Manager Connector for Lasso.
+ *
+ * File Authors:
+ * Jason Huck (jason.huck@corefive.com)
+ */
+
+ /*.....................................................................
+ Include global configuration. See config.lasso for details.
+ */
+ include('config.lasso');
+
+
+ /*.....................................................................
+ Translate current date/time to GMT for custom header.
+ */
+ var('headerDate') = date_localtogmt(date)->format('%a, %d %b %Y %T GMT');
+
+
+ /*.....................................................................
+ Convert query string parameters to variables and initialize output.
+ */
+ var(
+ 'Command' = action_param('Command'),
+ 'Type' = action_param('Type'),
+ 'CurrentFolder' = action_param('CurrentFolder'),
+ 'ServerPath' = action_param('ServerPath'),
+ 'NewFolderName' = action_param('NewFolderName'),
+ 'NewFile' = null,
+ 'NewFileName' = string,
+ 'OrigFilePath' = string,
+ 'NewFilePath' = string,
+ 'commandData' = string,
+ 'folders' = '\t\n',
+ 'files' = '\t\n',
+ 'errorNumber' = integer,
+ 'responseType' = 'xml',
+ 'uploadResult' = '0'
+ );
+
+
+ /*.....................................................................
+ Calculate the path to the current folder.
+ */
+ $ServerPath == '' ? $ServerPath = $config->find('UserFilesPath');
+
+ var('currentFolderURL' = $ServerPath
+ + $config->find('Subdirectories')->find(action_param('Type'))
+ + action_param('CurrentFolder')
+ );
+
+
+ /*.....................................................................
+ Build the appropriate response per the 'Command' parameter. Wrap the
+ entire process in an inline for file tag permissions.
+ */
+ inline($connection);
+ select($Command);
+ /*.............................................................
+ List all subdirectories in the 'Current Folder' directory.
+ */
+ case('GetFolders');
+ $commandData += '\t\n';
+
+ iterate(file_listdirectory($currentFolderURL), local('this'));
+ #this->endswith('/') ? $commandData += '\t\t \n';
+ /iterate;
+
+ $commandData += '\t \n';
+
+
+ /*.............................................................
+ List both files and folders in the 'Current Folder' directory.
+ Include the file sizes in kilobytes.
+ */
+ case('GetFoldersAndFiles');
+ iterate(file_listdirectory($currentFolderURL), local('this'));
+ if(#this->endswith('/'));
+ $folders += '\t\t \n';
+ else;
+ local('size') = file_getsize($currentFolderURL + #this) / 1024;
+ $files += '\t\t \n';
+ /if;
+ /iterate;
+
+ $folders += '\t \n';
+ $files += '\t\n';
+
+ $commandData += $folders + $files;
+
+
+ /*.............................................................
+ Create a directory 'NewFolderName' within the 'Current Folder.'
+ */
+ case('CreateFolder');
+ var('newFolder' = $currentFolderURL + $NewFolderName + '/');
+ file_create($newFolder);
+
+
+ /*.........................................................
+ Map Lasso's file error codes to FCKEditor's error codes.
+ */
+ select(file_currenterror( -errorcode));
+ case(0);
+ $errorNumber = 0;
+ case( -9983);
+ $errorNumber = 101;
+ case( -9976);
+ $errorNumber = 102;
+ case( -9977);
+ $errorNumber = 102;
+ case( -9961);
+ $errorNumber = 103;
+ case;
+ $errorNumber = 110;
+ /select;
+
+ $commandData += ' \n';
+
+
+ /*.............................................................
+ Process an uploaded file.
+ */
+ case('FileUpload');
+ /*.........................................................
+ This is the only command that returns an HTML response.
+ */
+ $responseType = 'html';
+
+
+ /*.........................................................
+ Was a file actually uploaded?
+ */
+ file_uploads->size ? $NewFile = file_uploads->get(1) | $uploadResult = '202';
+
+ if($uploadResult == '0');
+ /*.....................................................
+ Split the file's extension from the filename in order
+ to follow the API's naming convention for duplicate
+ files. (Test.txt, Test(1).txt, Test(2).txt, etc.)
+ */
+ $NewFileName = $NewFile->find('OrigName');
+ $OrigFilePath = $currentFolderURL + $NewFileName;
+ $NewFilePath = $OrigFilePath;
+ local('fileExtension') = '.' + $NewFile->find('OrigExtension');
+ local('shortFileName') = $NewFileName->removetrailing(#fileExtension)&;
+
+
+ /*.....................................................
+ Make sure the file extension is allowed.
+ */
+ if($config->find('DeniedExtensions')->find($Type) >> $NewFile->find('OrigExtension'));
+ $uploadResult = '202';
+ else;
+ /*.................................................
+ Rename the target path until it is unique.
+ */
+ while(file_exists($NewFilePath));
+ $NewFilePath = $currentFolderURL + #shortFileName + '(' + loop_count + ')' + #fileExtension;
+ /while;
+
+
+ /*.................................................
+ Copy the uploaded file to its final location.
+ */
+ file_copy($NewFile->find('path'), $NewFilePath);
+
+
+ /*.................................................
+ Set the error code for the response. Note whether
+ the file had to be renamed.
+ */
+ select(file_currenterror( -errorcode));
+ case(0);
+ $OrigFilePath != $NewFilePath ? $uploadResult = '201, \'' + $NewFilePath->split('/')->last + '\'';
+ case;
+ $uploadResult = '202';
+ /select;
+ /if;
+ /if;
+
+
+ /*.........................................................
+ Set the HTML response.
+ */
+ $__html_reply__ = '\
+
+ ';
+ /select;
+ /inline;
+
+
+ /*.....................................................................
+ Send a custom header for xml responses.
+ */
+ if($responseType == 'xml');
+ header;
+]
+HTTP/1.0 200 OK
+Date: [$headerDate]
+Server: Lasso Professional [lasso_version( -lassoversion)]
+Expires: Mon, 26 Jul 1997 05:00:00 GMT
+Last-Modified: [$headerDate]
+Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
+Pragma: no-cache
+Keep-Alive: timeout=15, max=98
+Connection: Keep-Alive
+Content-Type: text/xml; charset=utf-8
+[//lasso
+ /header;
+
+
+ /*.................................................................
+ Set the content type encoding for Lasso.
+ */
+ content_type('text/xml; charset=utf-8');
+
+
+ /*.................................................................
+ Wrap the response as XML and output.
+ */
+ $__html_reply__ = '\
+
+
+
+' + $commandData + '
+
+ ';
+ /if;
+]
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl
new file mode 100644
index 00000000000..2f28287b185
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl
@@ -0,0 +1,59 @@
+#####
+# FCKeditor - The text editor for internet
+# Copyright (C) 2003-2006 Frederico Caldeira Knabben
+#
+# Licensed under the terms of the GNU Lesser General Public License:
+# http://www.opensource.org/licenses/lgpl-license.php
+#
+# For further information visit:
+# http://www.fckeditor.net/
+#
+# "Support Open Source software. What about a donation today?"
+#
+# File Name: basexml.pl
+# This is the File Manager Connector for Perl.
+#
+# File Authors:
+# Takashi Yamaguchi (jack@omakase.net)
+#####
+
+sub CreateXmlHeader
+{
+ local($command,$resourceType,$currentFolder) = @_;
+
+ # Create the XML document header.
+ print '';
+
+ # Create the main "Connector" node.
+ print '';
+
+ # Add the current folder node.
+ print ' ';
+}
+
+sub CreateXmlFooter
+{
+ print ' ';
+}
+
+sub SendError
+{
+ local( $number, $text ) = @_;
+
+ print << "_HTML_HEAD_";
+Content-Type:text/xml; charset=utf-8
+Pragma: no-cache
+Cache-Control: no-cache
+Expires: Thu, 01 Dec 1994 16:00:00 GMT
+
+_HTML_HEAD_
+
+ # Create the XML document header
+ print '' ;
+
+ print ' ' ;
+
+ exit ;
+}
+
+1;
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl
new file mode 100644
index 00000000000..6e54d0c93b7
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl
@@ -0,0 +1,154 @@
+#####
+# FCKeditor - The text editor for internet
+# Copyright (C) 2003-2006 Frederico Caldeira Knabben
+#
+# Licensed under the terms of the GNU Lesser General Public License:
+# http://www.opensource.org/licenses/lgpl-license.php
+#
+# For further information visit:
+# http://www.fckeditor.net/
+#
+# "Support Open Source software. What about a donation today?"
+#
+# File Name: commands.pl
+# This is the File Manager Connector for Perl.
+#
+# File Authors:
+# Takashi Yamaguchi (jack@omakase.net)
+#####
+
+sub GetFolders
+{
+
+ local($resourceType, $currentFolder) = @_;
+
+ # Map the virtual path to the local server path.
+ $sServerDir = &ServerMapFolder($resourceType, $currentFolder);
+ print ""; # Open the "Folders" node.
+
+ opendir(DIR,"$sServerDir");
+ @files = grep(!/^\.\.?$/,readdir(DIR));
+ closedir(DIR);
+
+ foreach $sFile (@files) {
+ if($sFile != '.' && $sFile != '..' && (-d "$sServerDir$sFile")) {
+ $cnv_filename = &ConvertToXmlAttribute($sFile);
+ print ' ';
+ }
+ }
+ print " "; # Close the "Folders" node.
+}
+
+sub GetFoldersAndFiles
+{
+
+ local($resourceType, $currentFolder) = @_;
+ # Map the virtual path to the local server path.
+ $sServerDir = &ServerMapFolder($resourceType,$currentFolder);
+
+ # Initialize the output buffers for "Folders" and "Files".
+ $sFolders = '';
+ $sFiles = '';
+
+ opendir(DIR,"$sServerDir");
+ @files = grep(!/^\.\.?$/,readdir(DIR));
+ closedir(DIR);
+
+ foreach $sFile (@files) {
+ if($sFile ne '.' && $sFile ne '..') {
+ if(-d "$sServerDir$sFile") {
+ $cnv_filename = &ConvertToXmlAttribute($sFile);
+ $sFolders .= ' ' ;
+ } else {
+ ($iFileSize,$refdate,$filedate,$fileperm) = (stat("$sServerDir$sFile"))[7,8,9,2];
+ if($iFileSize > 0) {
+ $iFileSize = int($iFileSize / 1024);
+ if($iFileSize < 1) {
+ $iFileSize = 1;
+ }
+ }
+ $cnv_filename = &ConvertToXmlAttribute($sFile);
+ $sFiles .= ' ' ;
+ }
+ }
+ }
+ print $sFolders ;
+ print ' '; # Close the "Folders" node.
+ print $sFiles ;
+ print ''; # Close the "Files" node.
+}
+
+sub CreateFolder
+{
+
+ local($resourceType, $currentFolder) = @_;
+ $sErrorNumber = '0' ;
+ $sErrorMsg = '' ;
+
+ if($FORM{'NewFolderName'} ne "") {
+ $sNewFolderName = $FORM{'NewFolderName'};
+ # Map the virtual path to the local server path of the current folder.
+ $sServerDir = &ServerMapFolder($resourceType, $currentFolder);
+ if(-w $sServerDir) {
+ $sServerDir .= $sNewFolderName;
+ $sErrorMsg = &CreateServerFolder($sServerDir);
+ if($sErrorMsg == 0) {
+ $sErrorNumber = '0';
+ } elsif($sErrorMsg eq 'Invalid argument' || $sErrorMsg eq 'No such file or directory') {
+ $sErrorNumber = '102'; #// Path too long.
+ } else {
+ $sErrorNumber = '110';
+ }
+ } else {
+ $sErrorNumber = '103';
+ }
+ } else {
+ $sErrorNumber = '102' ;
+ }
+ # Create the "Error" node.
+ $cnv_errmsg = &ConvertToXmlAttribute($sErrorMsg);
+ print ' ';
+}
+
+sub FileUpload
+{
+eval("use File::Copy;");
+
+ local($resourceType, $currentFolder) = @_;
+
+ $sErrorNumber = '0' ;
+ $sFileName = '' ;
+ if($new_fname) {
+ # Map the virtual path to the local server path.
+ $sServerDir = &ServerMapFolder($resourceType,$currentFolder);
+
+ # Get the uploaded file name.
+ $sFileName = $new_fname;
+ $sOriginalFileName = $sFileName;
+
+ $iCounter = 0;
+ while(1) {
+ $sFilePath = $sServerDir . $sFileName;
+ if(-e $sFilePath) {
+ $iCounter++ ;
+ ($path,$BaseName,$ext) = &RemoveExtension($sOriginalFileName);
+ $sFileName = $BaseName . '(' . $iCounter . ').' . $ext;
+ $sErrorNumber = '201';
+ } else {
+ copy("$img_dir/$new_fname","$sFilePath");
+ chmod(0777,$sFilePath);
+ unlink("$img_dir/$new_fname");
+ last;
+ }
+ }
+ } else {
+ $sErrorNumber = '202' ;
+ }
+ $sFileName =~ s/"/\\"/g;
+ print "Content-type: text/html\n\n";
+ print '';
+ exit ;
+}
+1;
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi
new file mode 100644
index 00000000000..dadfcb9ccde
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi
@@ -0,0 +1,134 @@
+#!/usr/bin/env perl
+
+#####
+# FCKeditor - The text editor for internet
+# Copyright (C) 2003-2006 Frederico Caldeira Knabben
+#
+# Licensed under the terms of the GNU Lesser General Public License:
+# http://www.opensource.org/licenses/lgpl-license.php
+#
+# For further information visit:
+# http://www.fckeditor.net/
+#
+# "Support Open Source software. What about a donation today?"
+#
+# File Name: connector.cgi
+# This is the File Manager Connector for Perl.
+#
+# File Authors:
+# Takashi Yamaguchi (jack@omakase.net)
+# Frederico Caldeira Knabben (fredck@fckeditor.net)
+#####
+
+##
+# ATTENTION: To enable this connector, look for the "SECURITY" comment in this file.
+##
+
+## START: Hack for Windows (Not important to understand the editor code... Perl specific).
+if(Windows_check()) {
+ chdir(GetScriptPath($0));
+}
+
+sub Windows_check
+{
+ # IIS,PWS(NT/95)
+ $www_server_os = $^O;
+ # Win98 & NT(SP4)
+ if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
+ # AnHTTPd/Omni/IIS
+ if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
+ # Win Apache
+ if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
+ if($www_server_os=~ /win/i) { return(1); }
+ return(0);
+}
+
+sub GetScriptPath {
+ local($path) = @_;
+ if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
+ $path;
+}
+## END: Hack for IIS
+
+require 'util.pl';
+require 'io.pl';
+require 'basexml.pl';
+require 'commands.pl';
+require 'upload_fck.pl';
+
+##
+# SECURITY: REMOVE/COMMENT THE FOLLOWING LINE TO ENABLE THIS CONNECTOR.
+##
+&SendError( 1, 'This connector is disabled. Please check the "editor/filemanager/browser/default/connectors/perl/connector.cgi" file' ) ;
+
+ &read_input();
+
+ if($FORM{'ServerPath'} ne "") {
+ $GLOBALS{'UserFilesPath'} = $FORM{'ServerPath'};
+ if(!($GLOBALS{'UserFilesPath'} =~ /\/$/)) {
+ $GLOBALS{'UserFilesPath'} .= '/' ;
+ }
+ } else {
+ $GLOBALS{'UserFilesPath'} = '/UserFiles/';
+ }
+
+ # Map the "UserFiles" path to a local directory.
+ $rootpath = &GetRootPath();
+ $GLOBALS{'UserFilesDirectory'} = $rootpath . $GLOBALS{'UserFilesPath'};
+
+ &DoResponse();
+
+sub DoResponse
+{
+
+ if($FORM{'Command'} eq "" || $FORM{'Type'} eq "" || $FORM{'CurrentFolder'} eq "") {
+ return ;
+ }
+ # Get the main request informaiton.
+ $sCommand = $FORM{'Command'};
+ $sResourceType = $FORM{'Type'};
+ $sCurrentFolder = $FORM{'CurrentFolder'};
+
+ # Check the current folder syntax (must begin and start with a slash).
+ if(!($sCurrentFolder =~ /\/$/)) {
+ $sCurrentFolder .= '/';
+ }
+ if(!($sCurrentFolder =~ /^\//)) {
+ $sCurrentFolder = '/' . $sCurrentFolder;
+ }
+
+ # Check for invalid folder paths (..)
+ if ( $sCurrentFolder =~ /\.\./ ) {
+ SendError( 102, "" ) ;
+ }
+
+ # File Upload doesn't have to Return XML, so it must be intercepted before anything.
+ if($sCommand eq 'FileUpload') {
+ FileUpload($sResourceType,$sCurrentFolder);
+ return ;
+ }
+
+ print << "_HTML_HEAD_";
+Content-Type:text/xml; charset=utf-8
+Pragma: no-cache
+Cache-Control: no-cache
+Expires: Thu, 01 Dec 1994 16:00:00 GMT
+
+_HTML_HEAD_
+
+ &CreateXmlHeader($sCommand,$sResourceType,$sCurrentFolder);
+
+ # Execute the required command.
+ if($sCommand eq 'GetFolders') {
+ &GetFolders($sResourceType,$sCurrentFolder);
+ } elsif($sCommand eq 'GetFoldersAndFiles') {
+ &GetFoldersAndFiles($sResourceType,$sCurrentFolder);
+ } elsif($sCommand eq 'CreateFolder') {
+ &CreateFolder($sResourceType,$sCurrentFolder);
+ }
+
+ &CreateXmlFooter();
+
+ exit ;
+}
+
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl
new file mode 100644
index 00000000000..472f6be8aa9
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl
@@ -0,0 +1,127 @@
+#####
+# FCKeditor - The text editor for internet
+# Copyright (C) 2003-2006 Frederico Caldeira Knabben
+#
+# Licensed under the terms of the GNU Lesser General Public License:
+# http://www.opensource.org/licenses/lgpl-license.php
+#
+# For further information visit:
+# http://www.fckeditor.net/
+#
+# "Support Open Source software. What about a donation today?"
+#
+# File Name: io.pl
+# This is the File Manager Connector for Perl.
+#
+# File Authors:
+# Takashi Yamaguchi (jack@omakase.net)
+#####
+
+sub GetUrlFromPath
+{
+ local($resourceType, $folderPath) = @_;
+
+ if($resourceType eq '') {
+ $rmpath = &RemoveFromEnd($GLOBALS{'UserFilesPath'},'/');
+ return("$rmpath$folderPath");
+ } else {
+ return("$GLOBALS{'UserFilesPath'}$resourceType$folderPath");
+ }
+}
+
+sub RemoveExtension
+{
+ local($fileName) = @_;
+ local($path, $base, $ext);
+ if($fileName !~ /\./) {
+ $fileName .= '.';
+ }
+ if($fileName =~ /([^\\\/]*)\.(.*)$/) {
+ $base = $1;
+ $ext = $2;
+ if($fileName =~ /(.*)$base\.$ext$/) {
+ $path = $1;
+ }
+ }
+ return($path,$base,$ext);
+
+}
+
+sub ServerMapFolder
+{
+ local($resourceType,$folderPath) = @_;
+
+ # Get the resource type directory.
+ $sResourceTypePath = $GLOBALS{'UserFilesDirectory'} . $resourceType . '/';
+
+ # Ensure that the directory exists.
+ &CreateServerFolder($sResourceTypePath);
+
+ # Return the resource type directory combined with the required path.
+ $rmpath = &RemoveFromStart($folderPath,'/');
+ return("$sResourceTypePath$rmpath");
+}
+
+sub GetParentFolder
+{
+ local($folderPath) = @_;
+
+ $folderPath =~ s/[\/][^\/]+[\/]?$//g;
+ return $folderPath;
+}
+
+sub CreateServerFolder
+{
+ local($folderPath) = @_;
+
+ $sParent = &GetParentFolder($folderPath);
+ # Check if the parent exists, or create it.
+ if(!(-e $sParent)) {
+ $sErrorMsg = &CreateServerFolder($sParent);
+ if($sErrorMsg == 1) {
+ return(1);
+ }
+ }
+ if(!(-e $folderPath)) {
+ umask(000);
+ mkdir("$folderPath",0777);
+ chmod(0777,"$folderPath");
+ return(0);
+ } else {
+ return(1);
+ }
+}
+
+sub GetRootPath
+{
+#use Cwd;
+
+# my $dir = getcwd;
+# print $dir;
+# $dir =~ s/$ENV{'DOCUMENT_ROOT'}//g;
+# print $dir;
+# return($dir);
+
+# $wk = $0;
+# $wk =~ s/\/connector\.cgi//g;
+# if($wk) {
+# $current_dir = $wk;
+# } else {
+# $current_dir = `pwd`;
+# }
+# return($current_dir);
+use Cwd;
+
+ if($ENV{'DOCUMENT_ROOT'}) {
+ $dir = $ENV{'DOCUMENT_ROOT'};
+ } else {
+ my $dir = getcwd;
+ $workdir =~ s/\/connector\.cgi//g;
+ $dir =~ s/$workdir//g;
+ }
+ return($dir);
+
+
+
+}
+1;
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl
new file mode 100644
index 00000000000..04540812c5a
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl
@@ -0,0 +1,663 @@
+#####
+# FCKeditor - The text editor for internet
+# Copyright (C) 2003-2006 Frederico Caldeira Knabben
+#
+# Licensed under the terms of the GNU Lesser General Public License:
+# http://www.opensource.org/licenses/lgpl-license.php
+#
+# For further information visit:
+# http://www.fckeditor.net/
+#
+# "Support Open Source software. What about a donation today?"
+#
+# File Name: upload_fck.pl
+# This is the File Manager Connector for Perl.
+#
+# File Authors:
+# Takashi Yamaguchi (jack@omakase.net)
+#####
+
+# image data save dir
+$img_dir = './temp/';
+
+
+# File size max(unit KB)
+$MAX_CONTENT_SIZE = 30000;
+
+# Filelock (1=use,0=not use)
+$PM{'flock'} = '1';
+
+
+# upload Content-Type list
+my %UPLOAD_CONTENT_TYPE_LIST = (
+ 'image/(x-)?png' => 'png', # PNG image
+ 'image/p?jpe?g' => 'jpg', # JPEG image
+ 'image/gif' => 'gif', # GIF image
+ 'image/x-xbitmap' => 'xbm', # XBM image
+
+ 'image/(x-(MS-)?)?bmp' => 'bmp', # Windows BMP image
+ 'image/pict' => 'pict', # Macintosh PICT image
+ 'image/tiff' => 'tif', # TIFF image
+ 'application/pdf' => 'pdf', # PDF image
+ 'application/x-shockwave-flash' => 'swf', # Shockwave Flash
+
+ 'video/(x-)?msvideo' => 'avi', # Microsoft Video
+ 'video/quicktime' => 'mov', # QuickTime Video
+ 'video/mpeg' => 'mpeg', # MPEG Video
+ 'video/x-mpeg2' => 'mpv2', # MPEG2 Video
+
+ 'audio/(x-)?midi?' => 'mid', # MIDI Audio
+ 'audio/(x-)?wav' => 'wav', # WAV Audio
+ 'audio/basic' => 'au', # ULAW Audio
+ 'audio/mpeg' => 'mpga', # MPEG Audio
+
+ 'application/(x-)?zip(-compressed)?' => 'zip', # ZIP Compress
+
+ 'text/html' => 'html', # HTML
+ 'text/plain' => 'txt', # TEXT
+ '(?:application|text)/(?:rtf|richtext)' => 'rtf', # RichText
+
+ 'application/msword' => 'doc', # Microsoft Word
+ 'application/vnd.ms-excel' => 'xls', # Microsoft Excel
+
+ ''
+);
+
+# Upload is permitted.
+# A regular expression is possible.
+my %UPLOAD_EXT_LIST = (
+ 'png' => 'PNG image',
+ 'p?jpe?g|jpe|jfif|pjp' => 'JPEG image',
+ 'gif' => 'GIF image',
+ 'xbm' => 'XBM image',
+
+ 'bmp|dib|rle' => 'Windows BMP image',
+ 'pi?ct' => 'Macintosh PICT image',
+ 'tiff?' => 'TIFF image',
+ 'pdf' => 'PDF image',
+ 'swf' => 'Shockwave Flash',
+
+ 'avi' => 'Microsoft Video',
+ 'moo?v|qt' => 'QuickTime Video',
+ 'm(p(e?gv?|e|v)|1v)' => 'MPEG Video',
+ 'mp(v2|2v)' => 'MPEG2 Video',
+
+ 'midi?|kar|smf|rmi|mff' => 'MIDI Audio',
+ 'wav' => 'WAVE Audio',
+ 'au|snd' => 'ULAW Audio',
+ 'mp(e?ga|2|a|3)|abs' => 'MPEG Audio',
+
+ 'zip' => 'ZIP Compress',
+ 'lzh' => 'LZH Compress',
+ 'cab' => 'CAB Compress',
+
+ 'd?html?' => 'HTML',
+ 'rtf|rtx' => 'RichText',
+ 'txt|text' => 'Text',
+
+ ''
+);
+
+
+# sjis or euc
+my $CHARCODE = 'sjis';
+
+$TRANS_2BYTE_CODE = 0;
+
+##############################################################################
+# Summary
+#
+# Form Read input
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+sub read_input
+{
+eval("use File::Copy;");
+eval("use File::Path;");
+
+ my ($FORM) = @_;
+
+
+ mkdir($img_dir,0777);
+ chmod(0777,$img_dir);
+
+ undef $img_data_exists;
+ undef @NEWFNAMES;
+ undef @NEWFNAME_DATA;
+
+ if($ENV{'CONTENT_LENGTH'} > 10000000 || $ENV{'CONTENT_LENGTH'} > $MAX_CONTENT_SIZE * 1024) {
+ &upload_error(
+ 'Size Error',
+ sprintf(
+ "Transmitting size is too large.MAX %d KB Now Size %d KB(%d bytes Over)",
+ $MAX_CONTENT_SIZE,
+ int($ENV{'CONTENT_LENGTH'} / 1024),
+ $ENV{'CONTENT_LENGTH'} - $MAX_CONTENT_SIZE * 1024
+ )
+ );
+ }
+
+ my $Buffer;
+ if($ENV{'CONTENT_TYPE'} =~ /multipart\/form-data/) {
+ # METHOD POST only
+ return unless($ENV{'CONTENT_LENGTH'});
+
+ binmode(STDIN);
+ # STDIN A pause character is detected.'(MacIE3.0 boundary of $ENV{'CONTENT_TYPE'} cannot be trusted.)
+ my $Boundary = ;
+ $Boundary =~ s/\x0D\x0A//;
+ $Boundary = quotemeta($Boundary);
+ while() {
+ if(/^\s*Content-Disposition:/i) {
+ my($name,$ContentType,$FileName);
+ # form data get
+ if(/\bname="([^"]+)"/i || /\bname=([^\s:;]+)/i) {
+ $name = $1;
+ $name =~ tr/+/ /;
+ $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ &Encode(\$name);
+ }
+ if(/\bfilename="([^"]*)"/i || /\bfilename=([^\s:;]*)/i) {
+ $FileName = $1 || 'unknown';
+ }
+ # head read
+ while() {
+ last if(! /\w/);
+ if(/^\s*Content-Type:\s*"([^"]+)"/i || /^\s*Content-Type:\s*([^\s:;]+)/i) {
+ $ContentType = $1;
+ }
+ }
+ # body read
+ $value = "";
+ while() {
+ last if(/^$Boundary/o);
+ $value .= $_;
+ };
+ $lastline = $_;
+ $value =~s /\x0D\x0A$//;
+ if($value ne '') {
+ if($FileName || $ContentType) {
+ $img_data_exists = 1;
+ (
+ $FileName, #
+ $Ext, #
+ $Length, #
+ $ImageWidth, #
+ $ImageHeight, #
+ $ContentName #
+ ) = &CheckContentType(\$value,$FileName,$ContentType);
+
+ $FORM{$name} = $FileName;
+ $new_fname = $FileName;
+ push(@NEWFNAME_DATA,"$FileName\t$Ext\t$Length\t$ImageWidth\t$ImageHeight\t$ContentName");
+
+ # Multi-upload correspondence
+ push(@NEWFNAMES,$new_fname);
+ open(OUT,">$img_dir/$new_fname");
+ binmode(OUT);
+ eval "flock(OUT,2);" if($PM{'flock'} == 1);
+ print OUT $value;
+ eval "flock(OUT,8);" if($PM{'flock'} == 1);
+ close(OUT);
+
+ } elsif($name) {
+ $value =~ tr/+/ /;
+ $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ &Encode(\$value,'trans');
+ $FORM{$name} .= "\0" if(defined($FORM{$name}));
+ $FORM{$name} .= $value;
+ }
+ }
+ };
+ last if($lastline =~ /^$Boundary\-\-/o);
+ }
+ } elsif($ENV{'CONTENT_LENGTH'}) {
+ read(STDIN,$Buffer,$ENV{'CONTENT_LENGTH'});
+ }
+ foreach(split(/&/,$Buffer),split(/&/,$ENV{'QUERY_STRING'})) {
+ my($name, $value) = split(/=/);
+ $name =~ tr/+/ /;
+ $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ $value =~ tr/+/ /;
+ $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+
+ &Encode(\$name);
+ &Encode(\$value,'trans');
+ $FORM{$name} .= "\0" if(defined($FORM{$name}));
+ $FORM{$name} .= $value;
+
+ }
+
+}
+
+##############################################################################
+# Summary
+#
+# CheckContentType
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+sub CheckContentType
+{
+
+ my($DATA,$FileName,$ContentType) = @_;
+ my($Ext,$ImageWidth,$ImageHeight,$ContentName,$Infomation);
+ my $DataLength = length($$DATA);
+
+ # An unknown file type
+
+ $_ = $ContentType;
+ my $UnknownType = (
+ !$_
+ || /^application\/(x-)?macbinary$/i
+ || /^application\/applefile$/i
+ || /^application\/octet-stream$/i
+ || /^text\/plane$/i
+ || /^x-unknown-content-type/i
+ );
+
+ # MacBinary(Mac Unnecessary data are deleted.)
+ if($UnknownType || $ENV{'HTTP_USER_AGENT'} =~ /Macintosh|Mac_/) {
+ if($DataLength > 128 && !unpack("C",substr($$DATA,0,1)) && !unpack("C",substr($$DATA,74,1)) && !unpack("C",substr($$DATA,82,1)) ) {
+ my $MacBinary_ForkLength = unpack("N", substr($$DATA, 83, 4)); # ForkLength Get
+ my $MacBinary_FileName = quotemeta(substr($$DATA, 2, unpack("C",substr($$DATA, 1, 1))));
+ if($MacBinary_FileName && $MacBinary_ForkLength && $DataLength >= $MacBinary_ForkLength + 128
+ && ($FileName =~ /$MacBinary_FileName/i || substr($$DATA,102,4) eq 'mBIN')) { # DATA TOP 128byte MacBinary!!
+ $$DATA = substr($$DATA,128,$MacBinary_ForkLength);
+ my $ResourceLength = $DataLength - $MacBinary_ForkLength - 128;
+ $DataLength = $MacBinary_ForkLength;
+ }
+ }
+ }
+
+ # A file name is changed into EUC.
+# &jcode::convert(\$FileName,'euc',$FormCodeDefault);
+# &jcode::h2z_euc(\$FileName);
+ $FileName =~ s/^.*\\//; # Windows, Mac
+ $FileName =~ s/^.*\///; # UNIX
+ $FileName =~ s/&/&/g;
+ $FileName =~ s/"/"/g;
+ $FileName =~ s/</g;
+ $FileName =~ s/>/>/g;
+#
+# if($CHARCODE ne 'euc') {
+# &jcode::convert(\$FileName,$CHARCODE,'euc');
+# }
+
+ # An extension is extracted and it changes into a small letter.
+ my $FileExt;
+ if($FileName =~ /\.(\w+)$/) {
+ $FileExt = $1;
+ $FileExt =~ tr/A-Z/a-z/;
+ }
+
+ # Executable file detection (ban on upload)
+ if($$DATA =~ /^MZ/) {
+ $Ext = 'exe';
+ }
+ # text
+ if(!$Ext && ($UnknownType || $ContentType =~ /^text\//i || $ContentType =~ /^application\/(?:rtf|richtext)$/i || $ContentType =~ /^image\/x-xbitmap$/i)
+ && ! $$DATA =~ /[\000-\006\177\377]/) {
+# $$DATA =~ s/\x0D\x0A/\n/g;
+# $$DATA =~ tr/\x0D\x0A/\n\n/;
+#
+# if(
+# $$DATA =~ /<\s*SCRIPT(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*(?:.|\n)*?\bONLOAD\s*=(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*(?:.|\n)*?\bONCLICK\s*=(?:.|\n)*?>/i
+# ) {
+# $Infomation = '(JavaScript contains)';
+# }
+# if($$DATA =~ /<\s*TABLE(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*BLINK(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*MARQUEE(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*OBJECT(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*EMBED(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*FRAME(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*APPLET(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*FORM(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*(?:.|\n)*?\bSRC\s*=(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*(?:.|\n)*?\bDYNSRC\s*=(?:.|\n)*?>/i
+# ) {
+# $Infomation = '(the HTML tag which is not safe is included)';
+# }
+
+ if($FileExt =~ /^txt$/i || $FileExt =~ /^cgi$/i || $FileExt =~ /^pl$/i) { # Text File
+ $Ext = 'txt';
+ } elsif($ContentType =~ /^text\/html$/i || $FileExt =~ /html?/i || $$DATA =~ /<\s*HTML(?:.|\n)*?>/i) { # HTML File
+ $Ext = 'html';
+ } elsif($ContentType =~ /^image\/x-xbitmap$/i || $FileExt =~ /^xbm$/i) { # XBM(x-BitMap) Image
+ my $XbmName = $1;
+ my ($XbmWidth, $XbmHeight);
+ if($$DATA =~ /\#define\s*$XbmName\_width\s*(\d+)/i) {
+ $XbmWidth = $1;
+ }
+ if($$DATA =~ /\#define\s*$XbmName\_height\s*(\d+)/i) {
+ $XbmHeight = $1;
+ }
+ if($XbmWidth && $XbmHeight) {
+ $Ext = 'xbm';
+ $ImageWidth = $XbmWidth;
+ $ImageHeight = $XbmHeight;
+ }
+ } else { #
+ $Ext = 'txt';
+ }
+ }
+
+ # image
+ if(!$Ext && ($UnknownType || $ContentType =~ /^image\//i)) {
+ # PNG
+ if($$DATA =~ /^\x89PNG\x0D\x0A\x1A\x0A/) {
+ if(substr($$DATA, 12, 4) eq 'IHDR') {
+ $Ext = 'png';
+ ($ImageWidth, $ImageHeight) = unpack("N2", substr($$DATA, 16, 8));
+ }
+ } elsif($$DATA =~ /^GIF8(?:9|7)a/) { # GIF89a(modified), GIF89a, GIF87a
+ $Ext = 'gif';
+ ($ImageWidth, $ImageHeight) = unpack("v2", substr($$DATA, 6, 4));
+ } elsif($$DATA =~ /^II\x2a\x00\x08\x00\x00\x00/ || $$DATA =~ /^MM\x00\x2a\x00\x00\x00\x08/) { # TIFF
+ $Ext = 'tif';
+ } elsif($$DATA =~ /^BM/) { # BMP
+ $Ext = 'bmp';
+ } elsif($$DATA =~ /^\xFF\xD8\xFF/ || $$DATA =~ /JFIF/) { # JPEG
+ my $HeaderPoint = index($$DATA, "\xFF\xD8\xFF", 0);
+ my $Point = $HeaderPoint + 2;
+ while($Point < $DataLength) {
+ my($Maker, $MakerType, $MakerLength) = unpack("C2n",substr($$DATA,$Point,4));
+ if($Maker != 0xFF || $MakerType == 0xd9 || $MakerType == 0xda) {
+ last;
+ } elsif($MakerType >= 0xC0 && $MakerType <= 0xC3) {
+ $Ext = 'jpg';
+ ($ImageHeight, $ImageWidth) = unpack("n2", substr($$DATA, $Point + 5, 4));
+ if($HeaderPoint > 0) {
+ $$DATA = substr($$DATA, $HeaderPoint);
+ $DataLength = length($$DATA);
+ }
+ last;
+ } else {
+ $Point += $MakerLength + 2;
+ }
+ }
+ }
+ }
+
+ # audio
+ if(!$Ext && ($UnknownType || $ContentType =~ /^audio\//i)) {
+ # MIDI Audio
+ if($$DATA =~ /^MThd/) {
+ $Ext = 'mid';
+ } elsif($$DATA =~ /^\x2esnd/) { # ULAW Audio
+ $Ext = 'au';
+ } elsif($$DATA =~ /^RIFF/ || $$DATA =~ /^ID3/ && $$DATA =~ /RIFF/) {
+ my $HeaderPoint = index($$DATA, "RIFF", 0);
+ $_ = substr($$DATA, $HeaderPoint + 8, 8);
+ if(/^WAVEfmt $/) {
+ # WAVE
+ if(unpack("V",substr($$DATA, $HeaderPoint + 16, 4)) == 16) {
+ $Ext = 'wav';
+ } else { # RIFF WAVE MP3
+ $Ext = 'mp3';
+ }
+ } elsif(/^RMIDdata$/) { # RIFF MIDI
+ $Ext = 'rmi';
+ } elsif(/^RMP3data$/) { # RIFF MP3
+ $Ext = 'rmp';
+ }
+ if($ContentType =~ /^audio\//i) {
+ $Infomation .= '(RIFF '. substr($$DATA, $HeaderPoint + 8, 4). ')';
+ }
+ }
+ }
+
+ # a binary file
+ unless ($Ext) {
+ # PDF image
+ if($$DATA =~ /^\%PDF/) {
+ # Picture size is not measured.
+ $Ext = 'pdf';
+ } elsif($$DATA =~ /^FWS/) { # Shockwave Flash
+ $Ext = 'swf';
+ } elsif($$DATA =~ /^RIFF/ || $$DATA =~ /^ID3/ && $$DATA =~ /RIFF/) {
+ my $HeaderPoint = index($$DATA, "RIFF", 0);
+ $_ = substr($$DATA,$HeaderPoint + 8, 8);
+ # AVI
+ if(/^AVI LIST$/) {
+ $Ext = 'avi';
+ }
+ if($ContentType =~ /^video\//i) {
+ $Infomation .= '(RIFF '. substr($$DATA, $HeaderPoint + 8, 4). ')';
+ }
+ } elsif($$DATA =~ /^PK/) { # ZIP Compress File
+ $Ext = 'zip';
+ } elsif($$DATA =~ /^MSCF/) { # CAB Compress File
+ $Ext = 'cab';
+ } elsif($$DATA =~ /^Rar\!/) { # RAR Compress File
+ $Ext = 'rar';
+ } elsif(substr($$DATA, 2, 5) =~ /^\-lh(\d+|d)\-$/) { # LHA Compress File
+ $Infomation .= "(lh$1)";
+ $Ext = 'lzh';
+ } elsif(substr($$DATA, 325, 25) eq "Apple Video Media Handler" || substr($$DATA, 325, 30) eq "Apple \x83\x72\x83\x66\x83\x49\x81\x45\x83\x81\x83\x66\x83\x42\x83\x41\x83\x6E\x83\x93\x83\x68\x83\x89") {
+ # QuickTime
+ $Ext = 'mov';
+ }
+ }
+
+ # Header analysis failure
+ unless ($Ext) {
+ # It will be followed if it applies for the MIME type from the browser.
+ foreach (keys %UPLOAD_CONTENT_TYPE_LIST) {
+ next unless ($_);
+ if($ContentType =~ /^$_$/i) {
+ $Ext = $UPLOAD_CONTENT_TYPE_LIST{$_};
+ $ContentName = &CheckContentExt($Ext);
+ if(
+ grep {$_ eq $Ext;} (
+ 'png',
+ 'gif',
+ 'jpg',
+ 'xbm',
+ 'tif',
+ 'bmp',
+ 'pdf',
+ 'swf',
+ 'mov',
+ 'zip',
+ 'cab',
+ 'lzh',
+ 'rar',
+ 'mid',
+ 'rmi',
+ 'au',
+ 'wav',
+ 'avi',
+ 'exe'
+ )
+ ) {
+ $Infomation .= ' / Header analysis failure';
+ }
+ if($Ext ne $FileExt && &CheckContentExt($FileExt) eq $ContentName) {
+ $Ext = $FileExt;
+ }
+ last;
+ }
+ }
+ # a MIME type is unknown--It judges from an extension.
+ unless ($Ext) {
+ $ContentName = &CheckContentExt($FileExt);
+ if($ContentName) {
+ $Ext = $FileExt;
+ $Infomation .= ' / MIME type is unknown('. $ContentType. ')';
+ last;
+ }
+ }
+ }
+
+# $ContentName = &CheckContentExt($Ext) unless($ContentName);
+# if($Ext && $ContentName) {
+# $ContentName .= $Infomation;
+# } else {
+# &upload_error(
+# 'Extension Error',
+# "$FileName A not corresponding extension ($Ext)
The extension which can be responded ". join(',', sort values(%UPLOAD_EXT_LIST))
+# );
+# }
+
+# # SSI Tag Deletion
+# if($Ext =~ /.?html?/ && $$DATA =~ /<\!/) {
+# foreach (
+# 'config',
+# 'echo',
+# 'exec',
+# 'flastmod',
+# 'fsize',
+# 'include'
+# ) {
+# $$DATA =~ s/\#\s*$_/\&\#35\;$_/ig
+# }
+# }
+
+ return (
+ $FileName,
+ $Ext,
+ int($DataLength / 1024 + 1),
+ $ImageWidth,
+ $ImageHeight,
+ $ContentName
+ );
+}
+
+##############################################################################
+# Summary
+#
+# Extension discernment
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+
+sub CheckContentExt
+{
+
+ my($Ext) = @_;
+ my $ContentName;
+ foreach (keys %UPLOAD_EXT_LIST) {
+ next unless ($_);
+ if($_ && $Ext =~ /^$_$/) {
+ $ContentName = $UPLOAD_EXT_LIST{$_};
+ last;
+ }
+ }
+ return $ContentName;
+
+}
+
+##############################################################################
+# Summary
+#
+# Form decode
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+sub Encode
+{
+
+ my($value,$Trans) = @_;
+
+# my $FormCode = &jcode::getcode($value) || $FormCodeDefault;
+# $FormCodeDefault ||= $FormCode;
+#
+# if($Trans && $TRANS_2BYTE_CODE) {
+# if($FormCode ne 'euc') {
+# &jcode::convert($value, 'euc', $FormCode);
+# }
+# &jcode::tr(
+# $value,
+# "\xA3\xB0-\xA3\xB9\xA3\xC1-\xA3\xDA\xA3\xE1-\xA3\xFA",
+# '0-9A-Za-z'
+# );
+# if($CHARCODE ne 'euc') {
+# &jcode::convert($value,$CHARCODE,'euc');
+# }
+# } else {
+# if($CHARCODE ne $FormCode) {
+# &jcode::convert($value,$CHARCODE,$FormCode);
+# }
+# }
+# if($CHARCODE eq 'euc') {
+# &jcode::h2z_euc($value);
+# } elsif($CHARCODE eq 'sjis') {
+# &jcode::h2z_sjis($value);
+# }
+
+}
+
+##############################################################################
+# Summary
+#
+# Error Msg
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+
+sub upload_error
+{
+
+ local($error_message) = $_[0];
+ local($error_message2) = $_[1];
+
+ print "Content-type: text/html\n\n";
+ print<
+
+Error Message
+
+
+
+ Error Message
+
+
+
+ $error_message
+$error_message2
+
+
+
+EOF
+ &rm_tmp_uploaded_files; # Image Temporary deletion
+ exit;
+}
+
+##############################################################################
+# Summary
+#
+# Image Temporary deletion
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+
+sub rm_tmp_uploaded_files
+{
+ if($img_data_exists == 1){
+ sleep 1;
+ foreach $fname_list(@NEWFNAMES) {
+ if(-e "$img_dir/$fname_list") {
+ unlink("$img_dir/$fname_list");
+ }
+ }
+ }
+
+}
+1;
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl
new file mode 100644
index 00000000000..614dcfee8ce
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl
@@ -0,0 +1,56 @@
+#####
+# FCKeditor - The text editor for internet
+# Copyright (C) 2003-2006 Frederico Caldeira Knabben
+#
+# Licensed under the terms of the GNU Lesser General Public License:
+# http://www.opensource.org/licenses/lgpl-license.php
+#
+# For further information visit:
+# http://www.fckeditor.net/
+#
+# "Support Open Source software. What about a donation today?"
+#
+# File Name: util.pl
+# This is the File Manager Connector for Perl.
+#
+# File Authors:
+# Takashi Yamaguchi (jack@omakase.net)
+#####
+
+sub RemoveFromStart
+{
+ local($sourceString, $charToRemove) = @_;
+ $sPattern = '^' . $charToRemove . '+' ;
+ $sourceString =~ s/^$charToRemove+//g;
+ return $sourceString;
+}
+
+sub RemoveFromEnd
+{
+ local($sourceString, $charToRemove) = @_;
+ $sPattern = $charToRemove . '+$' ;
+ $sourceString =~ s/$charToRemove+$//g;
+ return $sourceString;
+}
+
+sub ConvertToXmlAttribute
+{
+ local($value) = @_;
+ return $value;
+# return utf8_encode(htmlspecialchars($value));
+
+}
+
+sub specialchar_cnv
+{
+ local($ch) = @_;
+
+ $ch =~ s/&/&/g; # &
+ $ch =~ s/\"/"/g; #"
+ $ch =~ s/\'/'/g; # '
+ $ch =~ s/</g; # <
+ $ch =~ s/>/>/g; # >
+ return($ch);
+}
+
+1;
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/basexml.php b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/basexml.php
new file mode 100644
index 00000000000..89428a8a724
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/basexml.php
@@ -0,0 +1,68 @@
+' ;
+
+ // Create the main "Connector" node.
+ echo '' ;
+
+ // Add the current folder node.
+ echo ' ' ;
+}
+
+function CreateXmlFooter()
+{
+ echo ' ' ;
+}
+
+function SendError( $number, $text )
+{
+ SetXmlHeaders() ;
+
+ // Create the XML document header
+ echo '' ;
+
+ echo ' ' ;
+
+ exit ;
+}
+?>
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/commands.php b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/commands.php
new file mode 100644
index 00000000000..7a3abbc5771
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/commands.php
@@ -0,0 +1,218 @@
+' ;
+ }
+
+ closedir( $oCurrentFolder ) ;
+
+ // Open the "Folders" node.
+ echo "" ;
+
+ natcasesort( $aFolders ) ;
+ foreach ( $aFolders as $sFolder )
+ echo $sFolder ;
+
+ // Close the "Folders" node.
+ echo " " ;
+}
+
+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[] = ' ' ;
+ else
+ {
+ $iFileSize = filesize( $sServerDir . $sFile ) ;
+ if ( $iFileSize > 0 )
+ {
+ $iFileSize = round( $iFileSize / 1024 ) ;
+ if ( $iFileSize < 1 ) $iFileSize = 1 ;
+ }
+
+ $aFiles[] = ' ' ;
+ }
+ }
+ }
+
+ // Send the folders
+ natcasesort( $aFolders ) ;
+ echo '' ;
+
+ foreach ( $aFolders as $sFolder )
+ echo $sFolder ;
+
+ echo ' ' ;
+
+ // Send the files
+ natcasesort( $aFiles ) ;
+ echo '' ;
+
+ foreach ( $aFiles as $sFiles )
+ echo $sFiles ;
+
+ echo ' ' ;
+}
+
+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 ' ' ;
+}
+
+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 '' ;
+
+ exit ;
+}
+?>
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/config.php b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/config.php
new file mode 100644
index 00000000000..fa82259d7b3
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/config.php
@@ -0,0 +1,51 @@
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php
new file mode 100644
index 00000000000..59551a538d6
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php
@@ -0,0 +1,107 @@
+ 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/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/io.php b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/io.php
new file mode 100644
index 00000000000..2f997c6f812
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/io.php
@@ -0,0 +1,97 @@
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/util.php b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/util.php
new file mode 100644
index 00000000000..13d6d77f5fb
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/php/util.php
@@ -0,0 +1,37 @@
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/py/connector.py b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/py/connector.py
new file mode 100644
index 00000000000..70883dc1643
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/py/connector.py
@@ -0,0 +1,781 @@
+#!/usr/bin/env python
+
+"""
+FCKeditor - The text editor for internet
+Copyright (C) 2003-2006 Frederico Caldeira Knabben
+
+Licensed under the terms of the GNU Lesser General Public License:
+ http://www.opensource.org/licenses/lgpl-license.php
+
+For further information visit:
+ http://www.fckeditor.net/
+
+"Support Open Source software. What about a donation today?"
+
+File Name: connector.py
+ Connector for Python.
+
+ Tested With:
+ Standard:
+ Python 2.3.3
+ Zope:
+ Zope Version: (Zope 2.8.1-final, python 2.3.5, linux2)
+ Python Version: 2.3.5 (#4, Mar 10 2005, 01:40:25)
+ [GCC 3.3.3 20040412 (Red Hat Linux 3.3.3-7)]
+ System Platform: linux2
+
+File Authors:
+ Andrew Liu (andrew@liuholdings.com)
+"""
+
+"""
+Author Notes (04 December 2005):
+This module has gone through quite a few phases of change. Obviously,
+I am only supporting that part of the code that I use. Initially
+I had the upload directory as a part of zope (ie. uploading files
+directly into Zope), before realising that there were too many
+complex intricacies within Zope to deal with. Zope is one ugly piece
+of code. So I decided to complement Zope by an Apache server (which
+I had running anyway, and doing nothing). So I mapped all uploads
+from an arbitrary server directory to an arbitrary web directory.
+All the FCKeditor uploading occurred this way, and I didn't have to
+stuff around with fiddling with Zope objects and the like (which are
+terribly complex and something you don't want to do - trust me).
+
+Maybe a Zope expert can touch up the Zope components. In the end,
+I had FCKeditor loaded in Zope (probably a bad idea as well), and
+I replaced the connector.py with an alias to a server module.
+Right now, all Zope components will simple remain as is because
+I've had enough of Zope.
+
+See notes right at the end of this file for how I aliased out of Zope.
+
+Anyway, most of you probably wont use Zope, so things are pretty
+simple in that regard.
+
+Typically, SERVER_DIR is the root of WEB_DIR (not necessarily).
+Most definitely, SERVER_USERFILES_DIR points to WEB_USERFILES_DIR.
+"""
+
+import cgi
+import re
+import os
+import string
+
+"""
+escape
+
+Converts the special characters '<', '>', and '&'.
+
+RFC 1866 specifies that these characters be represented
+in HTML as < > and & respectively. In Python
+1.5 we use the new string.replace() function for speed.
+"""
+def escape(text, replace=string.replace):
+ text = replace(text, '&', '&') # must be done 1st
+ text = replace(text, '<', '<')
+ text = replace(text, '>', '>')
+ text = replace(text, '"', '"')
+ return text
+
+"""
+getFCKeditorConnector
+
+Creates a new instance of an FCKeditorConnector, and runs it
+"""
+def getFCKeditorConnector(context=None):
+ # Called from Zope. Passes the context through
+ connector = FCKeditorConnector(context=context)
+ return connector.run()
+
+
+"""
+FCKeditorRequest
+
+A wrapper around the request object
+Can handle normal CGI request, or a Zope request
+Extend as required
+"""
+class FCKeditorRequest(object):
+ def __init__(self, context=None):
+ if (context is not None):
+ r = context.REQUEST
+ else:
+ r = cgi.FieldStorage()
+ self.context = context
+ self.request = r
+
+ def isZope(self):
+ if (self.context is not None):
+ return True
+ return False
+
+ def has_key(self, key):
+ return self.request.has_key(key)
+
+ def get(self, key, default=None):
+ value = None
+ if (self.isZope()):
+ value = self.request.get(key, default)
+ else:
+ if key in self.request.keys():
+ value = self.request[key].value
+ else:
+ value = default
+ return value
+
+"""
+FCKeditorConnector
+
+The connector class
+"""
+class FCKeditorConnector(object):
+ # Configuration for FCKEditor
+ # can point to another server here, if linked correctly
+ #WEB_HOST = "http://127.0.0.1/"
+ WEB_HOST = ""
+ SERVER_DIR = "/var/www/html/"
+
+ WEB_USERFILES_FOLDER = WEB_HOST + "upload/"
+ SERVER_USERFILES_FOLDER = SERVER_DIR + "upload/"
+
+ # Allow access (Zope)
+ __allow_access_to_unprotected_subobjects__ = 1
+ # Class Attributes
+ parentFolderRe = re.compile("[\/][^\/]+[\/]?$")
+
+ """
+ Constructor
+ """
+ def __init__(self, context=None):
+ # The given root path will NOT be shown to the user
+ # Only the userFilesPath will be shown
+
+ # Instance Attributes
+ self.context = context
+ self.request = FCKeditorRequest(context=context)
+ self.rootPath = self.SERVER_DIR
+ self.userFilesFolder = self.SERVER_USERFILES_FOLDER
+ self.webUserFilesFolder = self.WEB_USERFILES_FOLDER
+
+ # Enables / Disables the connector
+ self.enabled = False # Set to True to enable this connector
+
+ # These are instance variables
+ self.zopeRootContext = None
+ self.zopeUploadContext = None
+
+ # Copied from php module =)
+ self.allowedExtensions = {
+ "File": None,
+ "Image": None,
+ "Flash": None,
+ "Media": None
+ }
+ self.deniedExtensions = {
+ "File": [ "php","php2","php3","php4","php5","phtml","pwml","inc","asp","aspx","ascx","jsp","cfm","cfc","pl","bat","exe","com","dll","vbs","js","reg","cgi" ],
+ "Image": [ "php","php2","php3","php4","php5","phtml","pwml","inc","asp","aspx","ascx","jsp","cfm","cfc","pl","bat","exe","com","dll","vbs","js","reg","cgi" ],
+ "Flash": [ "php","php2","php3","php4","php5","phtml","pwml","inc","asp","aspx","ascx","jsp","cfm","cfc","pl","bat","exe","com","dll","vbs","js","reg","cgi" ],
+ "Media": [ "php","php2","php3","php4","php5","phtml","pwml","inc","asp","aspx","ascx","jsp","cfm","cfc","pl","bat","exe","com","dll","vbs","js","reg","cgi" ]
+ }
+
+ """
+ Zope specific functions
+ """
+ def isZope(self):
+ # The context object is the zope object
+ if (self.context is not None):
+ return True
+ return False
+
+ def getZopeRootContext(self):
+ if self.zopeRootContext is None:
+ self.zopeRootContext = self.context.getPhysicalRoot()
+ return self.zopeRootContext
+
+ def getZopeUploadContext(self):
+ if self.zopeUploadContext is None:
+ folderNames = self.userFilesFolder.split("/")
+ c = self.getZopeRootContext()
+ for folderName in folderNames:
+ if (folderName <> ""):
+ c = c[folderName]
+ self.zopeUploadContext = c
+ return self.zopeUploadContext
+
+ """
+ Generic manipulation functions
+ """
+ def getUserFilesFolder(self):
+ return self.userFilesFolder
+
+ def getWebUserFilesFolder(self):
+ return self.webUserFilesFolder
+
+ def getAllowedExtensions(self, resourceType):
+ return self.allowedExtensions[resourceType]
+
+ def getDeniedExtensions(self, resourceType):
+ return self.deniedExtensions[resourceType]
+
+ def removeFromStart(self, string, char):
+ return string.lstrip(char)
+
+ def removeFromEnd(self, string, char):
+ return string.rstrip(char)
+
+ def convertToXmlAttribute(self, value):
+ if (value is None):
+ value = ""
+ return escape(value)
+
+ def convertToPath(self, path):
+ if (path[-1] <> "/"):
+ return path + "/"
+ else:
+ return path
+
+ def getUrlFromPath(self, resourceType, path):
+ if (resourceType is None) or (resourceType == ''):
+ url = "%s%s" % (
+ self.removeFromEnd(self.getUserFilesFolder(), '/'),
+ path
+ )
+ else:
+ url = "%s%s%s" % (
+ self.getUserFilesFolder(),
+ resourceType,
+ path
+ )
+ return url
+
+ def getWebUrlFromPath(self, resourceType, path):
+ if (resourceType is None) or (resourceType == ''):
+ url = "%s%s" % (
+ self.removeFromEnd(self.getWebUserFilesFolder(), '/'),
+ path
+ )
+ else:
+ url = "%s%s%s" % (
+ self.getWebUserFilesFolder(),
+ resourceType,
+ path
+ )
+ return url
+
+ def removeExtension(self, fileName):
+ index = fileName.rindex(".")
+ newFileName = fileName[0:index]
+ return newFileName
+
+ def getExtension(self, fileName):
+ index = fileName.rindex(".") + 1
+ fileExtension = fileName[index:]
+ return fileExtension
+
+ def getParentFolder(self, folderPath):
+ parentFolderPath = self.parentFolderRe.sub('', folderPath)
+ return parentFolderPath
+
+ """
+ serverMapFolder
+
+ Purpose: works out the folder map on the server
+ """
+ def serverMapFolder(self, resourceType, folderPath):
+ # Get the resource type directory
+ resourceTypeFolder = "%s%s/" % (
+ self.getUserFilesFolder(),
+ resourceType
+ )
+ # Ensure that the directory exists
+ self.createServerFolder(resourceTypeFolder)
+
+ # Return the resource type directory combined with the
+ # required path
+ return "%s%s" % (
+ resourceTypeFolder,
+ self.removeFromStart(folderPath, '/')
+ )
+
+ """
+ createServerFolder
+
+ Purpose: physically creates a folder on the server
+ """
+ def createServerFolder(self, folderPath):
+ # Check if the parent exists
+ parentFolderPath = self.getParentFolder(folderPath)
+ if not(os.path.exists(parentFolderPath)):
+ errorMsg = self.createServerFolder(parentFolderPath)
+ if errorMsg is not None:
+ return errorMsg
+ # Check if this exists
+ if not(os.path.exists(folderPath)):
+ os.mkdir(folderPath)
+ os.chmod(folderPath, 0755)
+ errorMsg = None
+ else:
+ if os.path.isdir(folderPath):
+ errorMsg = None
+ else:
+ raise "createServerFolder: Non-folder of same name already exists"
+ return errorMsg
+
+
+ """
+ getRootPath
+
+ Purpose: returns the root path on the server
+ """
+ def getRootPath(self):
+ return self.rootPath
+
+ """
+ setXmlHeaders
+
+ Purpose: to prepare the headers for the xml to return
+ """
+ def setXmlHeaders(self):
+ #now = self.context.BS_get_now()
+ #yesterday = now - 1
+ self.setHeader("Content-Type", "text/xml")
+ #self.setHeader("Expires", yesterday)
+ #self.setHeader("Last-Modified", now)
+ #self.setHeader("Cache-Control", "no-store, no-cache, must-revalidate")
+ self.printHeaders()
+ return
+
+ def setHeader(self, key, value):
+ if (self.isZope()):
+ self.context.REQUEST.RESPONSE.setHeader(key, value)
+ else:
+ print "%s: %s" % (key, value)
+ return
+
+ def printHeaders(self):
+ # For non-Zope requests, we need to print an empty line
+ # to denote the end of headers
+ if (not(self.isZope())):
+ print ""
+
+ """
+ createXmlFooter
+
+ Purpose: returns the xml header
+ """
+ def createXmlHeader(self, command, resourceType, currentFolder):
+ self.setXmlHeaders()
+ s = ""
+ # Create the XML document header
+ s += """"""
+ # Create the main connector node
+ s += """""" % (
+ command,
+ resourceType
+ )
+ # Add the current folder node
+ s += """ """ % (
+ self.convertToXmlAttribute(currentFolder),
+ self.convertToXmlAttribute(
+ self.getWebUrlFromPath(
+ resourceType,
+ currentFolder
+ )
+ ),
+ )
+ return s
+
+ """
+ createXmlFooter
+
+ Purpose: returns the xml footer
+ """
+ def createXmlFooter(self):
+ s = """ """
+ return s
+
+ """
+ sendError
+
+ Purpose: in the event of an error, return an xml based error
+ """
+ def sendError(self, number, text):
+ self.setXmlHeaders()
+ s = ""
+ # Create the XML document header
+ s += """"""
+ s += """"""
+ s += """ """ % (number, text)
+ s += """ """
+ return s
+
+ """
+ getFolders
+
+ Purpose: command to recieve a list of folders
+ """
+ def getFolders(self, resourceType, currentFolder):
+ if (self.isZope()):
+ return self.getZopeFolders(resourceType, currentFolder)
+ else:
+ return self.getNonZopeFolders(resourceType, currentFolder)
+
+ def getZopeFolders(self, resourceType, currentFolder):
+ # Open the folders node
+ s = ""
+ s += """"""
+ zopeFolder = self.findZopeFolder(resourceType, currentFolder)
+ for (name, o) in zopeFolder.objectItems(["Folder"]):
+ s += """ """ % (
+ self.convertToXmlAttribute(name)
+ )
+ # Close the folders node
+ s += """ """
+ return s
+
+ def getNonZopeFolders(self, resourceType, currentFolder):
+ # Map the virtual path to our local server
+ serverPath = self.serverMapFolder(resourceType, currentFolder)
+ # Open the folders node
+ s = ""
+ s += """"""
+ for someObject in os.listdir(serverPath):
+ someObjectPath = os.path.join(serverPath, someObject)
+ if os.path.isdir(someObjectPath):
+ s += """ """ % (
+ self.convertToXmlAttribute(someObject)
+ )
+ # Close the folders node
+ s += """ """
+ return s
+
+ """
+ getFoldersAndFiles
+
+ Purpose: command to recieve a list of folders and files
+ """
+ def getFoldersAndFiles(self, resourceType, currentFolder):
+ if (self.isZope()):
+ return self.getZopeFoldersAndFiles(resourceType, currentFolder)
+ else:
+ return self.getNonZopeFoldersAndFiles(resourceType, currentFolder)
+
+ def getNonZopeFoldersAndFiles(self, resourceType, currentFolder):
+ # Map the virtual path to our local server
+ serverPath = self.serverMapFolder(resourceType, currentFolder)
+ # Open the folders / files node
+ folders = """"""
+ files = """"""
+ for someObject in os.listdir(serverPath):
+ someObjectPath = os.path.join(serverPath, someObject)
+ if os.path.isdir(someObjectPath):
+ folders += """ """ % (
+ self.convertToXmlAttribute(someObject)
+ )
+ elif os.path.isfile(someObjectPath):
+ size = os.path.getsize(someObjectPath)
+ files += """ """ % (
+ self.convertToXmlAttribute(someObject),
+ os.path.getsize(someObjectPath)
+ )
+ # Close the folders / files node
+ folders += """ """
+ files += """"""
+ # Return it
+ s = folders + files
+ return s
+
+ def getZopeFoldersAndFiles(self, resourceType, currentFolder):
+ folders = self.getZopeFolders(resourceType, currentFolder)
+ files = self.getZopeFiles(resourceType, currentFolder)
+ s = folders + files
+ return s
+
+ def getZopeFiles(self, resourceType, currentFolder):
+ # Open the files node
+ s = ""
+ s += """"""
+ zopeFolder = self.findZopeFolder(resourceType, currentFolder)
+ for (name, o) in zopeFolder.objectItems(["File","Image"]):
+ s += """ """ % (
+ self.convertToXmlAttribute(name),
+ ((o.get_size() / 1024) + 1)
+ )
+ # Close the files node
+ s += """ """
+ return s
+
+ def findZopeFolder(self, resourceType, folderName):
+ # returns the context of the resource / folder
+ zopeFolder = self.getZopeUploadContext()
+ folderName = self.removeFromStart(folderName, "/")
+ folderName = self.removeFromEnd(folderName, "/")
+ if (resourceType <> ""):
+ try:
+ zopeFolder = zopeFolder[resourceType]
+ except:
+ zopeFolder.manage_addProduct["OFSP"].manage_addFolder(id=resourceType, title=resourceType)
+ zopeFolder = zopeFolder[resourceType]
+ if (folderName <> ""):
+ folderNames = folderName.split("/")
+ for folderName in folderNames:
+ zopeFolder = zopeFolder[folderName]
+ return zopeFolder
+
+ """
+ createFolder
+
+ Purpose: command to create a new folder
+ """
+ def createFolder(self, resourceType, currentFolder):
+ if (self.isZope()):
+ return self.createZopeFolder(resourceType, currentFolder)
+ else:
+ return self.createNonZopeFolder(resourceType, currentFolder)
+
+ def createZopeFolder(self, resourceType, currentFolder):
+ # Find out where we are
+ zopeFolder = self.findZopeFolder(resourceType, currentFolder)
+ errorNo = 0
+ errorMsg = ""
+ if self.request.has_key("NewFolderName"):
+ newFolder = self.request.get("NewFolderName", None)
+ zopeFolder.manage_addProduct["OFSP"].manage_addFolder(id=newFolder, title=newFolder)
+ else:
+ errorNo = 102
+ error = """ """ % (
+ errorNo,
+ self.convertToXmlAttribute(errorMsg)
+ )
+ return error
+
+ def createNonZopeFolder(self, resourceType, currentFolder):
+ errorNo = 0
+ errorMsg = ""
+ if self.request.has_key("NewFolderName"):
+ newFolder = self.request.get("NewFolderName", None)
+ currentFolderPath = self.serverMapFolder(
+ resourceType,
+ currentFolder
+ )
+ try:
+ newFolderPath = currentFolderPath + newFolder
+ errorMsg = self.createServerFolder(newFolderPath)
+ if (errorMsg is not None):
+ errorNo = 110
+ except:
+ errorNo = 103
+ else:
+ errorNo = 102
+ error = """ """ % (
+ errorNo,
+ self.convertToXmlAttribute(errorMsg)
+ )
+ return error
+
+ """
+ getFileName
+
+ Purpose: helper function to extrapolate the filename
+ """
+ def getFileName(self, filename):
+ for splitChar in ["/", "\\"]:
+ array = filename.split(splitChar)
+ if (len(array) > 1):
+ filename = array[-1]
+ return filename
+
+ """
+ fileUpload
+
+ Purpose: command to upload files to server
+ """
+ def fileUpload(self, resourceType, currentFolder):
+ if (self.isZope()):
+ return self.zopeFileUpload(resourceType, currentFolder)
+ else:
+ return self.nonZopeFileUpload(resourceType, currentFolder)
+
+ def zopeFileUpload(self, resourceType, currentFolder, count=None):
+ zopeFolder = self.findZopeFolder(resourceType, currentFolder)
+ file = self.request.get("NewFile", None)
+ fileName = self.getFileName(file.filename)
+ fileNameOnly = self.removeExtension(fileName)
+ fileExtension = self.getExtension(fileName).lower()
+ if (count):
+ nid = "%s.%s.%s" % (fileNameOnly, count, fileExtension)
+ else:
+ nid = fileName
+ title = nid
+ try:
+ zopeFolder.manage_addProduct['OFSP'].manage_addFile(
+ id=nid,
+ title=title,
+ file=file.read()
+ )
+ except:
+ if (count):
+ count += 1
+ else:
+ count = 1
+ self.zopeFileUpload(resourceType, currentFolder, count)
+ return
+
+ def nonZopeFileUpload(self, resourceType, currentFolder):
+ errorNo = 0
+ errorMsg = ""
+ if self.request.has_key("NewFile"):
+ # newFile has all the contents we need
+ newFile = self.request.get("NewFile", "")
+ # Get the file name
+ newFileName = newFile.filename
+ newFileNameOnly = self.removeExtension(newFileName)
+ newFileExtension = self.getExtension(newFileName).lower()
+ allowedExtensions = self.getAllowedExtensions(resourceType)
+ deniedExtensions = self.getDeniedExtensions(resourceType)
+ if (allowedExtensions is not None):
+ # Check for allowed
+ isAllowed = False
+ if (newFileExtension in allowedExtensions):
+ isAllowed = True
+ elif (deniedExtensions is not None):
+ # Check for denied
+ isAllowed = True
+ if (newFileExtension in deniedExtensions):
+ isAllowed = False
+ else:
+ # No extension limitations
+ isAllowed = True
+
+ if (isAllowed):
+ if (self.isZope()):
+ # Upload into zope
+ self.zopeFileUpload(resourceType, currentFolder)
+ else:
+ # Upload to operating system
+ # Map the virtual path to the local server path
+ currentFolderPath = self.serverMapFolder(
+ resourceType,
+ currentFolder
+ )
+ i = 0
+ while (True):
+ newFilePath = "%s%s" % (
+ currentFolderPath,
+ newFileName
+ )
+ if os.path.exists(newFilePath):
+ i += 1
+ newFilePath = "%s%s(%s).%s" % (
+ currentFolderPath,
+ newFileNameOnly,
+ i,
+ newFileExtension
+ )
+ errorNo = 201
+ break
+ else:
+ fileHandle = open(newFilePath,'w')
+ linecount = 0
+ while (1):
+ #line = newFile.file.readline()
+ line = newFile.readline()
+ if not line: break
+ fileHandle.write("%s" % line)
+ linecount += 1
+ os.chmod(newFilePath, 0777)
+ break
+ else:
+ newFileName = "Extension not allowed"
+ errorNo = 203
+ else:
+ newFileName = "No File"
+ errorNo = 202
+
+ string = """
+
+ """ % (
+ errorNo,
+ newFileName.replace('"',"'")
+ )
+ return string
+
+ def run(self):
+ s = ""
+ try:
+ # Check if this is disabled
+ if not(self.enabled):
+ return self.sendError(1, "This connector is disabled. Please check the connector configurations and try again")
+ # Make sure we have valid inputs
+ if not(
+ (self.request.has_key("Command")) and
+ (self.request.has_key("Type")) and
+ (self.request.has_key("CurrentFolder"))
+ ):
+ return
+ # Get command
+ command = self.request.get("Command", None)
+ # Get resource type
+ resourceType = self.request.get("Type", None)
+ # folder syntax must start and end with "/"
+ currentFolder = self.request.get("CurrentFolder", None)
+ if (currentFolder[-1] <> "/"):
+ currentFolder += "/"
+ if (currentFolder[0] <> "/"):
+ currentFolder = "/" + currentFolder
+ # Check for invalid paths
+ if (".." in currentFolder):
+ return self.sendError(102, "")
+ # File upload doesn't have to return XML, so intercept
+ # her:e
+ if (command == "FileUpload"):
+ return self.fileUpload(resourceType, currentFolder)
+ # Begin XML
+ s += self.createXmlHeader(command, resourceType, currentFolder)
+ # Execute the command
+ if (command == "GetFolders"):
+ f = self.getFolders
+ elif (command == "GetFoldersAndFiles"):
+ f = self.getFoldersAndFiles
+ elif (command == "CreateFolder"):
+ f = self.createFolder
+ else:
+ f = None
+ if (f is not None):
+ s += f(resourceType, currentFolder)
+ s += self.createXmlFooter()
+ except Exception, e:
+ s = "ERROR: %s" % e
+ return s
+
+# Running from command line
+if __name__ == '__main__':
+ # To test the output, uncomment the standard headers
+ #print "Content-Type: text/html"
+ #print ""
+ print getFCKeditorConnector()
+
+"""
+Running from zope, you will need to modify this connector.
+If you have uploaded the FCKeditor into Zope (like me), you need to
+move this connector out of Zope, and replace the "connector" with an
+alias as below. The key to it is to pass the Zope context in, as
+we then have a like to the Zope context.
+
+## Script (Python) "connector.py"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=*args, **kws
+##title=ALIAS
+##
+import Products.connector as connector
+return connector.getFCKeditorConnector(context=context).run()
+"""
+
+
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/test.html b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/test.html
new file mode 100644
index 00000000000..51dbb5f148a
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/connectors/test.html
@@ -0,0 +1,177 @@
+
+
+
+
+ FCKeditor - Connectors Tests
+
+
+
+
+
+
+
+
+
+
+ Connector:
+
+
+
+
+
+ Current Folder
+
+
+
+
+ Resource Type
+
+
+
+
+
+
+
+
+ Get Folders
+
+
+
+ Get Folders and Files
+
+
+
+ Create Folder
+
+
+
+
+
+
+
+
+ URL:
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmactualfolder.html b/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmactualfolder.html
new file mode 100644
index 00000000000..39776a3d558
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmactualfolder.html
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html b/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html
new file mode 100644
index 00000000000..e0b5ec6c401
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmfolders.html b/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmfolders.html
new file mode 100644
index 00000000000..4a8003323d8
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmfolders.html
@@ -0,0 +1,192 @@
+
+
+
+
+
+
+
+
+
+
+
+ 
+ ..
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmresourceslist.html b/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmresourceslist.html
new file mode 100644
index 00000000000..ef1080a74b6
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmresourceslist.html
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmresourcetype.html b/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmresourcetype.html
new file mode 100644
index 00000000000..89b7e23dc8b
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmresourcetype.html
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Resource Type
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmupload.html b/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmupload.html
new file mode 100644
index 00000000000..3a0e21ef86f
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/browser/default/frmupload.html
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a355e5a449014d40f6e686aec027356b9e72c626
GIT binary patch
literal 138
zcmZ?wbhEHb?doRyP?sz1@R%qk?NW&|^
p|eTtnS=Y)v`XcZE0Wm%(S+{n>TgunLDTH*uh2T&!5`4%$c3C%y;hIyZ_+f
R9g8PVpFMx^^0^>`H30UMeqjIr
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0c5dd413efe52ef8df245c62d38abd3fb5531faf
GIT binary patch
literal 132
zcmZ?wbhEHb6krfwSj5I~?p*T!b93g*Vfg=l&j0`a85n>J5UKc+g^_`QjX?*<2C5Wb
zU|{yl*mXxoV3&KA=w%M0D)qo6IdPeS4hsuYt(PRqFy=dMJ1DS(;Y^uj?AqnKDvKH$
h4uqvBmU_;}`s(90J$U9C1Ji>22?c3Bc`6JH)&Op|Ft`8!
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3e3fcf56cc471cb8f44c5edb5f23407f120b75a9
GIT binary patch
literal 264
zcmV+j0r&n#Nk%w1VITk?0HOx~fPet_`1s7sW&i*HnVA6p%$fiHng9R)A^8LW000L7
zEC2ui03ZM$000Bcc)HyFFv{78y_ZT7y6*y^J)B{lXE-t?>Kf|WzJ*zbST3@`>l>e7
zXTYP`jx|Fqxg-!3v!5%8G&mPg=26MzE|piEc$^ay3Qmr2&HfAsp|@13xD0Kw@Z;yk4lxJy}TbYwv1&v{IeS%6~q)(8cfvHH9
z1FWAXijuHrXtPjLUZ*y?s=NoSsJ^hlX9AX3p}@()!dFnYxLu3VoKMAM-ecScv*YCD
O=I1Nv>g((j2>?5Tf_QiU
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ad5bc202670bfa12195e767c28050b236089e940
GIT binary patch
literal 132
zcmV-~0DJ#ONk%w1VGsZi0HOx~_xJbz|IYu;oSd8h&dy{1|C|5-0RR90A^8LW000L7
zEC2ui01yBW0009?c)Hv>5E}PD2&Iha2KgWnMapoU=v5GtnPtYC3GCs*Ml2M2edjh0KmVcuWJD*FM9~M9v0;0gPtyf2D4lb<@_VjwB*Bz)~b>#zfjC@IsD5w|Oidff-V#g8}2kNqXb|
z3*=vg3;-`U_%`_V2~bM`Zz#+RT^Sx39b;sQ1LKpSLm`J&E4zlMTrP)fis|!OD8)8jZh1;Bx0l-=
z|5olUpD))!On*&71F@oVS4HgTQTv+9Iq!CAXG00xRC*#ce9p0;gBC#?#*V6(fm&gZ6(iJ-?<*$cbd*Pk~-cu8ti%)$w~m
zF}hZExT5MvJfM2lQ43BrJ}jtiY)z1z1`ujO>Tf(rd_j!es+s?@v3Z@+H#wzy1)VN~
z@>^29db%?9H2l8(hXn%^4iv!}88EbHo(0)mmo&(%=?eP|btA=e;a;G2Q0DP
z{-2wtWFHm{1TQkUDOA}p5{MVR_NXWH$j~Q!`r_`FL9mV*0)_R8X_@LhsNeFX+sNR+
zSfg*(_dLbjNJHJs(*8ZS&&0=-PQx#BQM^m*xk9gs-%qS
znBFlNEK&BnY6)r2oZVd1)G6?=(lHPMAXN*g^vz7X7pY-0Z6&Aw2(%UNZ;9`9D~)47
zrrC(Kl^)sZ>YQrb0&SZ5`MJ2}gUe;0&|w@Y2TdTqQnY+2%QP)b0SNt_6c
z?vCNb#g{jS
zqzS1F7Yi`j+&oF3vk@0`c_AlBY-{D
z_{yQ;#4A33CbnP$uv<4j5!vO4<#7+FSQ$k_Zp>IRAV4-*NE~_OF;=T}DqVd0X!Bwp
wStD5{bcIq>&_CW_%>cTRhtqE{M<8rT)nil
z!>wDl1_cGpIX9=cxY)_bDS6JhrAwC@0;zN7lIJ9Qd3jyCc5Tj_ImyXD;@rJ^_ma;g
z8yY5`d;cG#;{UlRQ>F+A2pqe249Ed0F-%To`2XJ!Xvn$mii(QIjvZ@hX<_)!zyK8e
z52b({B7x#h7DfgJLk1m?dXS$O*!~}wQ6SMQ*?%Hs(g~SEVHZ}EoNC$|w?XZ5<=d*g
ztFz3tLuQ?K`?%vx*6#ZsEPVF1?cDu#wReB{`LnL&mDMf!E$w>6I^8|>%FP4+RFsZbl(HUW2zRj7*mpIc#(i7%CXAa&G$1
zb$HJi?&sBSc@@$XSXf!41ycM4mR3*HJEyr}!-dTZEo^K(lB@3>s9p2_-O+~A4J>>T
HEDY8FY?%te
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b62bd026061c32a9c6e5e0b7bb0f63f29e2b3dff
GIT binary patch
literal 224
zcmZ?wbhEHbRA5kGSj5J_(8AEt(sJzBF^2yPK=2<7fDFZ-EQ|~cYz#UeQIJ{&=A{`~
z7yn&Y>lvzH@j8}i<%6w^G1qDysAQ$w*7Cw
zb)JWJSY*qv{Jo}@*85%ep#_^mxz@^Ek!v|my$+pkc#iYHgR|<)Hv*145}Xzy*?#uy
zW+72u^}VkibX`f?;iJ!XMxcLs>SwXJYbV{lxV?&3^z_y8;(O=jz293O)tFaX(OQ+m
V(AC}3+t;1pIBD{fscM`I)&R&*NlyR(
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9b54964576b86bdff354807f15bf8d7b45c26a87
GIT binary patch
literal 258
zcmZ?wbhEHbRA5kGSj5KA(!y};*s+$DmjC}5fZ#tE02zuuSr{1@*cfy`q9C;l%*Qjd
z?)>vVsp-1YB3p;!?=`iwp6{W_Q5=rtdap9Js!4P!*0z~@{&9%b7hSQiZSf+3>%l=4
zbC?{xRHYJ^JbD!_YN>wVRmm#fINl3>={^y&r(Zh2+A*{0{Dp5OF3+;}xtHpSu`tBg
zGna`sL=;C?F*CGG>|*W7kZQMY%L(e5o+#PMJTG{P!~)G$mL+Rfuc**k!@v;4&?&i6
zd2`3?whaZ+?fYX6_}i99@A5dc@yywS=ck>!bS&ZO&I-occkbT1e<$7H@sp>|OgR~>
E0d_=epa1{>
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b557568b3d1ca19f9520b38a4c74de4e4abe0301
GIT binary patch
literal 260
zcmZ?wbhEHbRA5kGSj5WE($aG5*f9o%{|rD320#W7DE?$&WME)r&;fBkY8jYMM(kq!
zXJF^1sbKNi_rQt=M|)>{Hf)}-F6;CphX;mvXV)1h&Uf|7+UJv?arlkMs(3X`m9CP_
zv)3+@oW^!z&6Ep|?ycG7>(EguSdif;%5!b$-mI&xN9DLr?#s-QF^TF-@eHzvD|N|b
zOf4v2R;u;NYnoIoQPMuWEU$95PkPn_w-&EyGa42)SIuA0xw3g_dy3)$ug*<%>t}2f
z_1`SBb+_-1>AS@Cs_Z|y`tZVS$C7M#_MAI&;Bx2%Zo@;jPiRElfABCu;mOly&tE8T
HGFSruuDNnD
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif
new file mode 100644
index 0000000000000000000000000000000000000000..758499394afc5814b9da3e02d6b2996623ea3ece
GIT binary patch
literal 170
zcmZ?wbhEHbRA5kGSj5V3?AWoEmKKKp{}~v71PA~bK%n@Og^_`Ql|cu@0jXtR&X3r2
z=bynT&((V^Uh}fgcb2F-r!c4K#l%&et8O!#Y3N#3U@Bnaczx0Bu1&8c>vg>^p7?UH
zZNaiF>{E4?pUHaCwNz`jZ!Y_szmxXvGM=^K87~uK*>B$dd{+jey?NVLeM+n`tOzMk
R;r49r>h9_76XRsC1^{%DM?C-l
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif
new file mode 100644
index 0000000000000000000000000000000000000000..923079fc6bbc36b0f3cef03c381d42fb9962c753
GIT binary patch
literal 946
zcmdUs-ET{A9EZO<+S9YC?Wob8m!v&2wj#5`EE?U~b1XJhOV`LE=R#U_A%>LBTk4|S
zDr>A5I=U%J+YM1$%pthhOzORHK?$-Hd%=a%c}WpTjsL=P_1t})AeVLSTYuigUXan3z0}9Eu?9h
z4g>-bhr_|LX#{*U>a$wohya=sD6q38WU|M2-pz4VO66u*f^)O9+M!lQeLk<%>M)rS
z@wg8m9uWb%T~Db3Za0TeOoiOEDnX+NMMe>+W=#Q_8XFq2BNU$qP77YIcVbf*696Fd
zj|ur7p?-?809aV`H~#M@Ajvq{CbpuYvZaL}@K*dVj_I0@`ubTVq)>xVDrh4rms5^3Spr$J-t`?u;zkBE4#^Dz7jki4oSKP`v#fm9opMHCnZ;}
zz1GBI{`)<+KP-zs;Tg$M-Djcl;f+t)SC6%Q2YyxP#?LXbXR8Ot7T)hy{Qg~6P_(9=
zkQdf^l{=`riw%{(Tm{ue)-_qW)%G&WtZSVquZKD9wz*vvb@{U-2|A~ACfIDf%*e$P
z?cUS3lIChBh={$LNy`98ZaqW`&r0BuD
z4e~{vlsT1)@1B+?J7{TnC0!%;?@hifwn#f%#%SZ*H~5S4*^M6Md&ZgN-V?5w@~~=t
z{vj(Nr0)EH;qJQ9o~mu@T=}_;Ri6HWl}~Q2nBysSj+e}{F=hLUxurkNGZZr8)2@BH
zc*QJFQiqE)DV<5`2@a_I-->GXJTEl6a!_e0hA-#`rlP|j&e=bb4-A%VXakYh*qgmk
zvHe)KIKK@GwKB_#Mav3D*S`~KYRv;jX8bUE+RCqgjUTO
z!>wDl1_cGpIX9=cxY)_bDS6JhrAwC@0;zN7lIJ9Qd3jyCc5Tj_ImyXD;@rJ^_ma;g
z8yY5`d;cG#;{UlRQ>F+A2pqe249Ed0F-%To`2XJ!Xvn$mii(QIjvZ@hX<=w#VE7Ld
z{?7oU!6cAD3{d>Z!pOj2$e;sK4Du5L+y4VI3M85(`%k1yIw5l??81tYQ%!s0HmH5B
zd|S15b(Xny$gJ~jA9viz+I|0nh0or$qwC-1oqj!Uc6Wh(V`Y&}TYG3|b5l!oMQw0E
zU2}DBPkvau_T>@iN3<4dSxx*7gJJ}yHGHWubb-ZC<
zSlGlWA{rr3aE6m1Db7hm;O9fu#z~Ku=EN*`;OKotHpw{YmFPBEF7n0SPh
z-5{fcDcGTDk%p2-0>i<1jU3uMQ*0^|Rtd8?vkEi_C^|6;eq&3yu%Yol*KBr%M_EkF
zYZ-VLm6m7(GRQOXifBkk9A$F2w>LUu!BPQ*!<<6eDjpXepmF>6I+p(?v&mbqn
H!e9*mGolF;
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a9bdf0030869bb72b8115ce01f776f080576c7b9
GIT binary patch
literal 1527
zcmeH`{ZA8j0LH)9QYgijQL3Xb9mPUCP}fsqdcG`2MWB@s=vZ*wTcIvP>jLr2GVQVz
zsSK7QR(9EZxjA2Q#At5f;%#Q}wifXeUv8S=#l7Ts(Rs#Su5P-onwal!f5HBMJwHBq
zl24u|d20PNUb3|WlmN&99U=pwfS}>5j&nK@pj8723W`QKf);~}MALjMAw)PO5@89>
zfDlR=jIbgv>yZR6s4zGkQcx(w_#%l=h$UFV6_Z3+4X7x_Nt}U14Kac$Du@;|R?-E<
zAbCjekWmes*9A!-SuGF~d@_uPT2MlafpEc4bSMZYz$$`@=!8fLkQ5DEG>Bjf=M9!u
zI8hT-gI1AYKr$gSoETIg&gi~S3>TrSL!8wTyv$9bRTzk}E>>5kP0nB?m5`u|(}PjQ
zCm=$EQAP;S3`z451-Tf-6`%!(SRLUZhLsTw5wD|!ti?D1XXJ#ABt;Jh22S%n5rqU@
z)*vAwLO_~ss5(+LgA}LfhO8TSLc;|_G71Y3!DzB-Xb{C@o#b?y;YbNZbi`|hD;RSz
z8mk$>U_w?kQi34`iPHnh2u~ZYig>O`E6zO$w${GbK~PbwtSb3mHwSqnssSQ)8U-}b8HPg_%>_x
zBa>>fIL03gpPN^)w#SV+8-Q)r+?LX&lOIh!p)e}g2`O;-;CQ9i`y!RwzimCp_U?@R
zlK+k0JpW9xx(Ev`)qt4;Yv-<6Zk>qV#E1Iqx%Vj0TvCxq^}Y)BV9x9fUX$tOyoD*(
z(hLKd)h=*;7*6e`zP{NubIIL9!;aS-hi(tlS3FLaeE~M5utm1heOY8(
z`kbR-(VrGJ+_T+Zwk)wJRhHvT{o3{M2G=dn?FM&d=Z@jkGu=rKR@^o?xzDeuOf1vXFIQ&Z5CaSncE@`o)s?@Yvp&Gd|+sxQr}rC5+;yoa`Jb8YWvo}>;o{{qmZ0^wKHN~U0k<{~VI7%+gT2)wO
zaTc7dJbCs(+l4fU-X67DTIw=gBc=6?>2%H~$ysb;
za64Ysd4;-jJbz>Gud6HcvxI+!XDIbkUigo=xhPC+yI$Ddc-pcn+_I;jLr2GVQVz
zsSK7QR(9EZxjA2Q#At5f;%#Q}wifXeUv8S=#l7Ts(Rs#Su5P-onwal!f5HBMJwHBq
zl24u|d20PNUb3|WlmN&99U=pwfS}>5j&nK@pj8723W`QKf);~}MALjMAw)PO5@89>
zfDlR=jIbgv>yZR6s4zGkQcx(w_#%l=h$UFV6_Z3+4X7x_Nt}U14Kac$Du@;|R?-E<
zAbCjekWmes*9A!-SuGF~d@_uPT2MlafpEc4bSMZYz$$`@=!8fLkQ5DEG>Bjf=M9!u
zI8hT-gI1AYKr$gSoETIg&gi~S3>TrSL!8wTyv$9bRTzk}E>>5kP0nB?m5`u|(}PjQ
zCm=$EQAP;S3`z451-Tf-6`%!(SRLUZhLsTw5wD|!ti?D1XXJ#ABt;Jh22S%n5rqU@
z)*vAwLO_~ss5(+LgA}LfhO8TSLc;|_G71Y3!DzB-Xb{C@o#b?y;YbNZbi`|hD;RSz
z8mk$>U_w?kQi34`iPHnh2u~ZYig>O`E6zO$w${GbK~PbwtSb3mHwSqnssSQ)8U-}b8HPg_%>_x
zBa>>fIL03gpPN^)w#SV+8-Q)r+?LX&lOIh!p)e}g2`O;-;CQ9i`y!RwzimCp_U?@R
zlK+k0JpW9xx(Ev`)qt4;Yv-<6Zk>qV#E1Iqx%Vj0TvCxq^}Y)BV9x9fUX$tOyoD*(
z(hLKd)h=*;7*6e`zP{NubIIL9!;aS-hi(tlS3FLaeE~M5utm1heOY8(
z`kbR-(VrGJ+_T+Zwk)wJRhHvT{o3{M2G=dn?FM&d=Z@jkGu=rKR@^o?xzDeuOf1vXFIQ&Z5CaSncE@`o)s?@Yvp&Gd|+sxQr}rC5+;yoa`Jb8YWvo}>;o{{qmZ0^wKHN~U0k<{~VI7%+gT2)wO
zaTc7dJbCs(+l4fU-X67DTIw=gBc=6?>2%H~$ysb;
za64Ysd4;-jJbz>Gud6HcvxI+!XDIbkUigo=xhPC+yI$Ddc-pcn+_I;Rw%
zgoK0u0RI60|Nj600RR90A^8LW000jFEC2ui03ZM$000F4@X7g{y*Over%PZcj*8PX
zPRD&`>$*wVrjlmgmOR%>@BhG{L$`DMT#J_P^c&hL!A4J-tOAFMtkxNwGON_yXO!SB
ztzop!^eUH*;dC<1hM9wS;j7`s`7wKLDp*>DhI@QNg9!o+0tN&L0099CjEIQ}9w`}xc~qK1}B2eunLhO1qbA^(8kG)-OZLR3gZX7ufVg|lgu6kyp9dh2Lp`={0ea3
zRk2Bt6j2zmPk^)m0|*c>7hphwdAIZ_Tu9)AfCB}5AQpJ`>%gY~7hP4_$kEY6ivuWr
zG7x}|0$2f9dO*-I!MFjSBu46|fSW;`HDGmoXF$NCPz@$-^C$~x1)sz&7Wm{;z|D>@
zT50Ow!0F9suh7Qo*i~JLu`3*bN(-%0)23ZRSgqsKfC6c-Vo@4Qc<-OXa5)%S%y@AG
F06XGF$;AKw
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif
new file mode 100644
index 0000000000000000000000000000000000000000..fe0c98e975c3e36eb30275c584f5cfdaf2bb0b52
GIT binary patch
literal 274
zcmV+t0qy=rNk%w1VITk?0HOu}goFUb#>Rw%g#Z5l00030|NsC0{{R30A^8LW000I6
zEC2ui03ZM$000BmXe!+PP|3N9y*Oh*C>2_$F`ZY5XdwigX@IE+vgH@c7VW_sE=S8CAk;96zye@OEi4J7%yYsMBs14lfQi{kx>D-2z!ZXXBlpHGLXfU%%aXw0F>cMSa3P;YN@~85
zXs1wZZWz^I$sBYt#31HnOf{Juf_6(VW^93iSL5Ui2-3o>8d&O_<;{7#7K;Vu(OKI1
z;;nFSdR=&TNjQdbgFbA98Gu(;7;}G#8%mLqI%r`kjz?`jI+KK=hk>Yqn`^8sag(rR
zlwho{Z*H_0P?(bV5^7Hid_8W(lfGF~=&@ij1P5SHA!N?yuXeKm(zYURrXvvm
z02f3pqh`0;IW=%{9SIi~0s#OTdVEQ2Ol&zEl$9KW28V}scnlMdOpzUuf|p+%1)7?P
z01XV0D}SVKrgN#Pn~IA~O|XEpgtw{zx&ywUzrd%Nxy1wo$jCSwwH=v>x)%i*2akTq
zHq?X(tPK|nG~C`lOry0C7kB42j-ocmf3*q&0}5#WYDWEvmd}fogI6N`T1e}k!-tOq
z(ohn}-H8`1Wc?9D>*5=M-@a9>NX;Y2kQ+xsakOZHqDGMu1u7}oQqW64yn5l}LW1JS
wh3#O{lo3win^+%9nY4LhR#Tomen<@mRfIy6Sg}_1V5zIuua$U+O%VbBJG0Wu*8l(j
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4950ec87c13f9918009b13ae2db6732e07317cd0
GIT binary patch
literal 567
zcmZ?wbhEHbRA5kGxT?c&?%cWOmX-nn0?EnA&*#k9yLa!kYuBE81--YlJa+8Z+O=z=
zqN28L-TFKz$jQm+d3Ls!m)G;X$DT(;JvTIbuW9(arRBM$;q&V1=Rr|Zrc8OBocum0
z>iOQi_cS%Lv$N*_4RmsP@8tEoXUg-Qp6A)c?~98qEiH?Si~j=w0|?x^cMrw{^GPHW
zf3h$#Fz5gw5P@~~Qom*ewqZhw7
zKBurJtN!*1^O!YOYu9|)YB8_t^WW6ca;6rh2(6sF+WgwC%rb5DN$RB?)j2&i$xXpi
zXH<91Dwz;8FKv0soTXD@*19hVEcJDrymhOr!sL)mzWyOW976j8_W0~Otj(@`;%MZF
z07c$2>YI-rW@Nm4^}HZEi}c~Me&>Z*v_(|+KXSSjEdDG&n311fNae_ty(exka&YjA
z3b14-FdgnHb#0U7V94icWRT)}X6&|fc5Aw}g~uJWRtM%biI0UgiAk;v%sgIhj0-kh
zc1hP(n4!^dprL6J+ky=&8(u%P2${xg#2}GysD*KoI+sXnLPBFRqx9EWgM|t!Ij4C=
zs_n>1(muUHq|?e^qLB9WHL>g!0Swn9Z;EDi%b6A`9lXKl>+6tVt+!-b+&ZS;DoLw1
LBt|rC3S
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif
new file mode 100644
index 0000000000000000000000000000000000000000..023431c16401f84d3be65bc112f9d0ac38a6aba1
GIT binary patch
literal 254
zcmZ?wbhEHbRA5kGSj5KA0s;)jjvZrQVE7M2U;tz*{$ycfU|?g=0kVNA6&M(p4`=LR
z`)6S1rm11^I`+Vd2SD
zmu}o7y+v%V%zmD2V?;>*==MW7XXv~x5)aMfBoK?F
zW6zSoF1YE1%;Xl!+`|~*F%!825>LA^kD=kxDLIWMmuhA@4aseU*nlRFhyRAJe17_T
zednEgTH2cH8+u%Xi^xwCx~}JPxqLn^%Q8ZU<2Y8uilPXDpsK1M$f77FRLmRXFfhr&_Mo^w%1SiCjqEi$FfC3CdWW#Vx#+XI9hG0Y#wXle3m_taUP(G1Bk%%bi
zd5%*7FENslF#v987>gJtA&5B&>WZQ=Fb5Pp9HGJyIv5N>H3vAAW!Z2z40t7sbU{*C
zNskB`r|3|WSp{pFM$*GP~H>s_TyfBt%-F5T8;J#~8H?0~s+
zXXB9PW>r(KZ`8W`gfA8$e1fNO%=5#NJh;x~k4ES33@n~zf1OYA*v&hGHzSS4?YPRQ&w4x)AxOBAXi6+*mu{KIuGh-r|Wzv*e+FR&JZ$xH1zUYu>cG
z&uzI9Yq2%M2+ZunHb+$N1&swYAuDxyBGP!IrSI*qb3{MTMZ?x0V6mWcE
z|9I}gv+Zq5){pLIssew!b1CU`96NN@Lmgc;S&v>{nR6wN1qU|2T6&+L3hhaM(Mw%*
z=Cbw&*_@SYooKank`p0e+U}nkcSN&;J5R;>2P@wHG7vNmO}g(4+wR?39xu;~%vQg<
zR5uH^PL`HTjZgH3$5R)tj|9pq+DGQe#QhXwJ1IW#TFzKpt=1433zr-oN$pzWPW3N)
z3vDY`$G2a5h9EB2ESek@@obZ&?AYo9?}a@b{_0IaO93CVWK6}Ix*b7F+;uhM-Q5?z=G__V3lY5wu~{Q`c_Bd
p$!sXy?YxvMau4r&IQrbrt}oV%E%z;d_m?(Y)4DIetHV#c_%B&pUbg@M
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5df7de574966c8f4738c337d97c97b362cfb9f91
GIT binary patch
literal 725
zcmZ?wbhEHbRA5kGxN5}U<>i%K-E;5x^Y7o^pSyOC!7ym=-o5X?f6va&j*5y}yLRol
zbJrLYoz9&**D__!lqqwfidzf~4XbDFV}EmQU$yT;&^-7{zD+O2zova1E6
zTHe3^Uft3o5mY>7=~@QOpgC*zdL>sU7gulHdoH_rN_NlEDRY)aRZoe^Zn<~w`L%1;
zdU|@^e}7+HUH$&~dj&K6yl
zojL~V+xsHH@c`o|9UhyC1r82J
zxwvJ|?KtsmX#fwSz>CD02Ob=1WztX6Yq-Gqe2S+wyg)7Bt*sVo!_W*x)34c}@Y7
zfW?X=#ttTpbtl%GzNUM0S(}W`jNJ=z7`bH9q-4uKzYW*nGST5k*x}Susnz8aaN);%
zk-6GdPqd>OoiEPR_xjSi@ycd_dkEKgTed$
sRj~fxwYl+MVLG=`U+uM14J=|F5Athe7Cva=(YhfkFW{!(D!^b300g%yMgRZ+
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7807c075c4082d561fd2f08c9a20ab4844d8cee4
GIT binary patch
literal 724
zcmZ?wbhEHbRA5kGxN5}U<>i%K-E;5x^Y7o^pSyOC!7ym=-o5X?f6va&j*5y}yLRol
zbJrLYoz9&**D__!lqqwfidzf~4XbDFV}EmQU$yT;&^-7{zD+O2zova1E6
zTHe3^Uft3o5mY>7=~@QOpgC*zdL>sU7gulHdoH_rN_NlEDRY)aRZoe^Zn<~w`L%1;
zdU|@^e}7+HUH$&~dj6nnc&>9RAQ*ojz&Z49h@M%{gzUy7xRu}X=tXv8QUvk`Ss)JT|f=Hm=e
z*-sPK9%x)~MqKsBv4C5Z9>La?bkD@4;205_cZ-x
olY3FW;k4_-V{to`9yGAAE9cT`#-ccAhw4`jpjrZ$Po=+>rS<-e!jPxbB|+;eoCFoy*4?8no+b9O@c7
znu6TZTic2fJ10d?=r%vv9_HjDCz
zuLzsz8*EthN5gskqy(RPrt4~5-RICX$;@Huv^eHaHuZ)ITCWCd#;pH0iBv~AT`
zy{2TX>>jQNx6%cN_>V4GmXLeO{Gvrq>3P1>XKIxXvqqdd(YocrnJ3qzF1@(?>e;q6
V@7}Mula%u1>$flJKLt4%tN|w0c+CI+
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif
new file mode 100644
index 0000000000000000000000000000000000000000..afe724a3d06a51d2810f8d956f9a2042f4127e39
GIT binary patch
literal 271
zcmV+q0r37uNk%w1VITk?0HOr|0E7U9goMV%#sB~S|NsC0|Nj6000000A^8LW000F5
zEC2ui03ZM$000BjSh^MdFg`|UAUNwy!l>ZIjhOQ>0g$e0%aVcMF>cMSLY`-rd^P}*
zCI!Rz6e@y?mrRaCgd_3RX;pPt-(bsaDsRo0Mlj9@21Mm|c`cjG1E-q(&D!Bg(+7An)+;^79}G06U9=e5U{a
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4fae35662f0ff048d4004fdc74cda6b63f16d119
GIT binary patch
literal 408
zcmZ?wbhEHbRA5kGI3mViIETS7`9A~09EN0urRTmg%=vGa%wTx#zu`GU28RFV-v2*#
z?AW>g=g$5AZ}|T|Lkq*XbLR|`=d`r6eEY<3j9Dk`OoZE`nWr*xa<<-Z+HtMSBJn{^u;`V&6mSzrNEt?LH`~3Ax?=4JrY*0GX#-Qk=qQTsLv|qx~^^Qg0
iVuwC~AkkGZCpV>f)n+A~n&Y{-{p@Uu;&~j54AuZc3Y?7q
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7157f72ad82ea877fcb6995070a6563f56ef67d8
GIT binary patch
literal 368
zcmZ?wbhEHbRA5kGI3mt)ZwdoL@|2!y|Nno#_WxKm!<2grhC%{EB};slLq*~Wvao7t(4YcThC6;%`Yr24Zi4PaOV6eOA}Gnc(I#ahItQPFz&i!!1#jo#hY7?
xFH}7HYVuU?=dbU7{-(T977Tb`-^99F#>8mh!o%$X%5o`g8JrTL0dyds<4RV^aVB
z|57BDbA&H|IUoo#=W(zoP=va&U;d8QcCBXbFE`S
zIUx{AF)?dGF|DPoy|um8l$26hT61GsrId``*3Q<>#_!(N_xJC;lzX*=bN97#y`_w;
zoRr4a-o4J&oRpmJ@Ar&zW5%telzVgk@2%FQQj}6cwR2kk-jp#pIT#oib8~zD|Nj60
z00000A^8LW002DzEC2ui01yBW000KCz@CstEEa{x;b0IOxF9c{E~y-RE*p%ErCXs53AutGm1iI;a&9
x77a8B0W|>v8K@@^5iJcNH3tSG6{sd9*aZa#2L%MDNFqA#5;_tRJN5NJ06RZNq>TUo
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6f3bac9bf1593da0934d7ce02064ef74e484c1a9
GIT binary patch
literal 249
zcmZ?wbhEHb6krfwI3mMvZjPa$VRCZvIm6^RbLO1;{{8!$ImuhMZvFrNTynDExpT=;
zQBh7#PUq$Tr48R-J9cgk!?|-n9>bhupf;f9IseZw{GY?n($aG5*f9nMhW}syWI%x8
zPZmZ71{nq&5Eo=818bRrdQwVemqvT;n`v8Ts6~~;GQZY}p1#>*LidNJlNo(daVY@{
zWwUaL(+k*J$tlM*YK{1NYI`ZnW)mW{>#=ysy0hLX0`cg&BbkJ4}^gUQzaPeB<)#Q2S7Oc~`%`->q#0Q%_#rF={k17wA&Fi)#cna}i9!sV4Aub8Vl3$Z
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4d927230b980dbbdca5b06f12a98449647ca0fe7
GIT binary patch
literal 128
zcmZ?wbhEHb6krfwSj5V}(8AEt(sJzBF$M;P|6l-Q0DA+
z&boq$o(!ph*Rni6Ts&TSB!TY&dxW+s#|ou&Pgs`UaTDBbb9LQ}wC%4m<4%bCYbdc5
Z?pbo_Mu}eVr8OUpyyY@Z@L*!F1^}CaF8}}l
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6ce26a4dc516f5962623445396862c753a875900
GIT binary patch
literal 113
zcmZ?wbhEHb6krfwSj56`?AWoEmKFvEhW}syWI%x8PZmZ71{MY#5ErDDf!WMMz)wYHuMVva8^OvzO
GSOWls#w7~?
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif
new file mode 100644
index 0000000000000000000000000000000000000000..48d445acd2feab875c2d42c246e9010814314bb6
GIT binary patch
literal 132
zcmZ?wbhEHb6krfwSj5KA(!%inKf|$O$6A0a1|S;*fDFZ-EQ|~cYz#U;Hc+Ji0|T>X
z#^yWU3Z{52m-ukf%k`k3yP%3-*W8u93=RcNt9)D@gcWkI9QhQriC6L4&!=I+p7|fF
f&bcuq9o#ATcbQ|zt0ha__CHv$#zk+n5Q8-UbUQQ<
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6535b4c0e72aa2cded728e28ee6440c1fe0a954c
GIT binary patch
literal 140
zcmZ?wbhEHb6krfwSj5WE($aG5*f9o%{|rD320#W7DE?$&WME)r&;fBkY8jXVBe?FY
z+rZ$Y&Fb8_(OO=7Vq=(Ufb*})xCcUxyE@a|Sq$%KqPl7^Ro&=#&h4hzE(^L
jR*hU`(7bxhmuZnxV$QBxlGW+R@Sr5BCvfLoP6lfLw_`LY
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif
new file mode 100644
index 0000000000000000000000000000000000000000..315817f5d93a2a6fa5db3ca5e1c9d9e72297c1b0
GIT binary patch
literal 109
zcmZ?wbhEHb6krfwSj5V3?AWoEmKKKpAi%%?qJbn3DE?$&WME)r&;fBkY8jY~B6i*R
zXJF>^RLSWASNXZw&O8U&G9N8irFy(4+h@r~EB~#sJ|Y3ajSDg!Grv<&><*gAz+epk
D58Wo=
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8f91a98ecb196dbcf5424e266ca58d216cd4a9eb
GIT binary patch
literal 382
zcmZ?wbhEHb6krfwxT?XhR8hdo%PTuO`&>{EgJIPFI}I;|Dp
zc%Pgc6&3aV`}^-fUeCQOdwP0~X-ZUASHFM${{R2~3=9kq63CzsDE?$&WMI%>&;gkP
z@)HBwYzL7p7om#2#si)wL?(F!2%98Cm<2ZVZ~3Ch>UA|+?3QVy&oYC{!ISECotivn
zi=MmpqCcH_Dg71<%DDkb)jrCNqP!hVYOOUI?7WH`68uu^LH$n3d{a32xdr%?``R=Z
z6crRi1i6?MXU<-+T7iX|hf_g(S&gzHs}Re21x4km3ChAO(z2|q%0r28usf7#SE?8FWBAkXi<2r--O4
z|FS1KXsZVL9;`07c&+ei^1O2k*6G|{AtTej{=zM0yDLAt%B`L9e?;#s+CMY!M%Jo;
V3vL<)Qnkyb>9`50G6*qP0|1+DE=>Rc
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0b5d6ba1fc35ab7dccc0f27ef14f2bdbefe75859
GIT binary patch
literal 621
zcmd6k&ui0A0Dxb+VB4{+?YgxUTV^K{qg5LnvM_(lIJz`RQF6>pa?C||-g?<)1gmc#
znuA~%2n(Jb2oms;!(;>zd@zI@a}ZpP&%@y1>FN9{{7&ETgKuNdUy&bHKm{BPf$bAQ
zctp74_-+tm!XZvY7?`FD-7q4V=#n7LI(|kO*D!S=`qxAh%U-Hr9ul5XK60@Xu`r=B
zBBGZmgli+L*e=OYPhmpijCBxUoJ%MbLzXcv!BBQQ+xAQo#TmCOWTHs45W)$B
zkpBbxmvnv$IRJ*Bds27u1Qfn*4!1S;sax6}KQYjbQ3B6j7}Xo@=~BM;N(1VyYBVSI
z8e>(xbhXt4Mx}Z?-_VC5xY?bZoxa#MW@hqN!goSp%D6mNTdCj8Pw4U5t#bL!;#_;O
zeyAHlYkKhW=-%Y@`E^~83TFlv`p5l+YYX!m-)p~?m8p91_~pKu6ZFTu!$)iDJFV5T
zZ$4EQ5B8T%6}v|Mhfpk^(}do$596)Zxh8s0**y3H8nw1;?w$YkcG+37K7V|Fe|HOj
F)j#Az*75)V
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/html.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/html.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0b5d6ba1fc35ab7dccc0f27ef14f2bdbefe75859
GIT binary patch
literal 621
zcmd6k&ui0A0Dxb+VB4{+?YgxUTV^K{qg5LnvM_(lIJz`RQF6>pa?C||-g?<)1gmc#
znuA~%2n(Jb2oms;!(;>zd@zI@a}ZpP&%@y1>FN9{{7&ETgKuNdUy&bHKm{BPf$bAQ
zctp74_-+tm!XZvY7?`FD-7q4V=#n7LI(|kO*D!S=`qxAh%U-Hr9ul5XK60@Xu`r=B
zBBGZmgli+L*e=OYPhmpijCBxUoJ%MbLzXcv!BBQQ+xAQo#TmCOWTHs45W)$B
zkpBbxmvnv$IRJ*Bds27u1Qfn*4!1S;sax6}KQYjbQ3B6j7}Xo@=~BM;N(1VyYBVSI
z8e>(xbhXt4Mx}Z?-_VC5xY?bZoxa#MW@hqN!goSp%D6mNTdCj8Pw4U5t#bL!;#_;O
zeyAHlYkKhW=-%Y@`E^~83TFlv`p5l+YYX!m-)p~?m8p91_~pKu6ZFTu!$)iDJFV5T
zZ$4EQ5B8T%6}v|Mhfpk^(}do$596)Zxh8s0**y3H8nw1;?w$YkcG+37K7V|Fe|HOj
F)j#Az*75)V
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif
new file mode 100644
index 0000000000000000000000000000000000000000..634b386139ac697806757c8d34bed36b5a2e5b45
GIT binary patch
literal 125
zcmZ?wbhEHb6krfwSj5WE($aG5*s=fr|F^U-00EEzq8Jzyf3h$#Ft9S{fH)wv49rdu
zQCI$DPjt{$4fH)&U2ySQ;nn1M=N7Efxy>W1vu4h(L$B8CcA0nH;sGzmk%w`nkI!Gr
Xww$>lL&HF-cG)x?H=$exAqHyz+f*-Z
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/js.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/js.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4ea17d452edaf63a5f599042879cc05a3b05905d
GIT binary patch
literal 139
zcmZ?wbhEHb6krfwSj524(!y};*s=frfs7Ug28RDY78of0WC7DUAQGgOfjPip*Bukp
zV`_&dr*>@0-Etv>LB&I4!HI?a)6OrXSt1KqtHVsZE6pPt-9GvFF^A}XUv*^C
r;ak22hG!S;yY$xUOU2HaM|C{I+Ek;sd6_hJPfqX2@(WjGV6X-NZuBx8
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6f3bac9bf1593da0934d7ce02064ef74e484c1a9
GIT binary patch
literal 249
zcmZ?wbhEHb6krfwI3mMvZjPa$VRCZvIm6^RbLO1;{{8!$ImuhMZvFrNTynDExpT=;
zQBh7#PUq$Tr48R-J9cgk!?|-n9>bhupf;f9IseZw{GY?n($aG5*f9nMhW}syWI%x8
zPZmZ71{nq&5Eo=818bRrdQwVemqvT;n`v8Ts6~~;GQZY}p1#>*LidNJlNo(daVY@{
zWwUaL(+k*J$tlM*YK{1NYI`ZnW)mW{>#=ysy0hLX0`cgv>ev^SyhYS64r8X?YK12So`82>fRNfqVDv
z{r?YPGARCJVPs&CWzYdhfb3*oO-@kHONmUIxgsy-^|qPQW|^Ek`f1r)oAdK_#q~cu
zbtPl{l^0V5_T;S=Z~hQc)}ed!aA|{HGz;^B2|Yz@;*5(PawLd_EmCDzp}@k>p>l2}
b%e-`vLRL<;1{wB3!FE?Ijs6J}6d9}meKBOp
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif
new file mode 100644
index 0000000000000000000000000000000000000000..877a8c8679545e4ea31ea6d66c344cb1a69b9b60
GIT binary patch
literal 139
zcmZ?wbhEHb6krfwSj5KA0s;)jjvZrQVE7M2U;tz*{$ycfU|?g=0kVNA1sE8Z12VYo
zth>!zWU*s{&Jd<`>yWH_^+2I#AA{J%s7G|&p0BKw|IsgCw
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif
new file mode 100644
index 0000000000000000000000000000000000000000..916cd7e639de75276e3fac7d4a4466479285fbc0
GIT binary patch
literal 606
zcmchU&ubGw6vrpo{HP7Ji>awd!Ny-jsS1MH`U@LtlcrQ_s3zIwU|DauxyQX|x?q%1
zq|BkhKtPz|fCvMEEP~*e(;VkGD5!f}3&P@Qocc%jk8i|G!%@<`A|b55u$#WP!&Un9G3XLps}Wj7D9Eqf$#fJ8H5p*G7e=-si0JO
zNL85WQFn?71c9mX?Aw@`|sb+UAvcE-BaB&M=_}Q+_`f-OSf)4
zb}qYTDT7yb%al3Su3fu#?|E`@wO3T}oV9xy6rIkUyY~J2djY3pLqo%$?CQP8u1N$H
zzyJQ;%gbx&)?@dcKL={->FM!Gt_Fhl&)@(5|DS<@0YU;9lmo?|EQ|~c>I^y{qdwUe4Gl+*;-lwkB+sYUz^1v;|)#6j^vpu37T#
zmUD%0Y=v2e3tNhqVwDfO5R;r7Q-i8ZOSQU^94jjq2ZyAL>I5eRE_r!5X$}Qpc9pr4
zSQql}D#)`c&1sz^&mzyuz#u2Ed6fdUDiZ^b6pNe!-zs$lh21Qw^6W*$K1?FwqAc7B
ROoA@15eoGR5k8I#)&SOyb=v>{
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif
new file mode 100644
index 0000000000000000000000000000000000000000..314469da14a51a3079a95b10deff5e4af2f14dd3
GIT binary patch
literal 388
zcmZ?wbhEHb6krfwxT?;;U>Fn?71c9mX?Aw@`|sb+UAvcE-BaB&M=_}Q+_`f-OSf)4
zb}qYTDT7yb%al3Su3fu#?|E`@wO3T}oV9xy6rIkUyY~J2djY3pLqo%$?CQP8u1N$H
zzyJQ;%gbx&)?@dcKL={->FM!Gt_Fhl&)@(5|DS<@0YU;9lmo?|EQ|~c>I^y{qdwUe4Gl+*;-lwkB+sYUz^1v;|)#6j^vpu37T#
zmUD%0Y=v2e3tNhqVwDfO5R;r7Q-i8ZOSQU^94jjq2ZyAL>I5eRE_r!5X$}Qpc9pr4
zSQql}D#)`c&1sz^&mzyuz#u2Ed6fdUDiZ^b6pNe!-zs$lh21Qw^6W*$K1?FwqAc7B
ROoA@15eoGR5k8I#)&SOyb=v>{
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1511ba3e9fa53d21b23d74e5430199f52107b8c6
GIT binary patch
literal 122
zcmZ?wbhEHb6krfwSj586($aG5*f9nMhW}syWI%x8PZmZ71{MY#5ErDDf!W?edQV`N^25{1
dUq#HdJfRXbF>~kLGf7@*-Ks0MSTQnK0|4?|F*N`H
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f57715d6a0cf03d3d392fb78d1477fcb1756edc1
GIT binary patch
literal 138
zcmZ?wbhEHb6krfwSj5V}(86%+*f9nm-O}BIae?UME_83{kohvOm*4@L8Aw=661Zc_WCg}SOWmuf-oWg
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif
new file mode 100644
index 0000000000000000000000000000000000000000..455992877e103d01bd247e45d96e33412ae706d1
GIT binary patch
literal 231
zcmZ?wbhEHb6krfwI3mEn(9&}3*fGQ8|AuoI4Cnke{QuwZ+HPD{sTJjBd9|(eHjSNmO^r^D{SzDo6d9}m>N8Dk
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif b/htdocs/includes/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b1e24921e56f8b71282f953c690d152dd986f6ff
GIT binary patch
literal 235
zcmZ?wbhEHb6krfwI3mLE|M^yid-wjYW%$3>>;GEC|Np;dAN!x(^Z)<
+<%
+'**********************************************
+' File: NetRube_Upload.asp
+' Version: NetRube Upload Class Version 2.1 Build 20050228
+' Author: NetRube
+' Email: NetRube@126.com
+' Date: 02/28/2005
+' Comments: The code for the Upload.
+' This can free usage, but please
+' not to delete this copyright information.
+' If you have a modification version,
+' Please send out a duplicate to me.
+'**********************************************
+' 文件名: NetRube_Upload.asp
+' 版本: NetRube Upload Class Version 2.1 Build 20050228
+' 作者: NetRube(网络乡巴佬)
+' 电子邮件: NetRube@126.com
+' 日期: 2005年02月28日
+' 声明: 文件上传类
+' 本上传类可以自由使用,但请保留此版权声明信息
+' 如果您对本上传类进行修改增强,
+' 请发送一份给俺。
+'**********************************************
+
+Class NetRube_Upload
+
+ Public File, Form
+ Private oSourceData
+ Private nMaxSize, nErr, sAllowed, sDenied
+
+ Private Sub Class_Initialize
+ nErr = 0
+ nMaxSize = 1048576
+
+ Set File = Server.CreateObject("Scripting.Dictionary")
+ File.CompareMode = 1
+ Set Form = Server.CreateObject("Scripting.Dictionary")
+ Form.CompareMode = 1
+
+ Set oSourceData = Server.CreateObject("ADODB.Stream")
+ oSourceData.Type = 1
+ oSourceData.Mode = 3
+ oSourceData.Open
+ End Sub
+
+ Private Sub Class_Terminate
+ Form.RemoveAll
+ Set Form = Nothing
+ File.RemoveAll
+ Set File = Nothing
+
+ oSourceData.Close
+ Set oSourceData = Nothing
+ End Sub
+
+ Public Property Get Version
+ Version = "NetRube Upload Class Version 1.0 Build 20041218"
+ End Property
+
+ Public Property Get ErrNum
+ ErrNum = nErr
+ End Property
+
+ Public Property Let MaxSize(nSize)
+ nMaxSize = nSize
+ End Property
+
+ Public Property Let Allowed(sExt)
+ sAllowed = sExt
+ End Property
+
+ Public Property Let Denied(sExt)
+ sDenied = sExt
+ End Property
+
+ Public Sub GetData
+ Dim aCType
+ aCType = Split(Request.ServerVariables("HTTP_CONTENT_TYPE"), ";")
+ If aCType(0) <> "multipart/form-data" Then
+ nErr = 1
+ Exit Sub
+ End If
+
+ Dim nTotalSize
+ nTotalSize = Request.TotalBytes
+ If nTotalSize < 1 Then
+ nErr = 2
+ Exit Sub
+ End If
+ If nMaxSize > 0 And nTotalSize > nMaxSize Then
+ nErr = 3
+ Exit Sub
+ End If
+
+ oSourceData.Write Request.BinaryRead(nTotalSize)
+ oSourceData.Position = 0
+
+ Dim oTotalData, oFormStream, sFormHeader, sFormName, bCrLf, nBoundLen, nFormStart, nFormEnd, nPosStart, nPosEnd, sBoundary
+
+ oTotalData = oSourceData.Read
+ bCrLf = ChrB(13) & ChrB(10)
+ sBoundary = MidB(oTotalData, 1, InStrB(1, oTotalData, bCrLf) - 1)
+ nBoundLen = LenB(sBoundary) + 2
+ nFormStart = nBoundLen
+
+ Set oFormStream = Server.CreateObject("ADODB.Stream")
+
+ Do While (nFormStart + 2) < nTotalSize
+ nFormEnd = InStrB(nFormStart, oTotalData, bCrLf & bCrLf) + 3
+
+ With oFormStream
+ .Type = 1
+ .Mode = 3
+ .Open
+ oSourceData.Position = nFormStart
+ oSourceData.CopyTo oFormStream, nFormEnd - nFormStart
+ .Position = 0
+ .Type = 2
+ .CharSet = "UTF-8"
+ sFormHeader = .ReadText
+ .Close
+ End With
+
+ nFormStart = InStrB(nFormEnd, oTotalData, sBoundary) - 1
+ nPosStart = InStr(22, sFormHeader, " name=", 1) + 7
+ nPosEnd = InStr(nPosStart, sFormHeader, """")
+ sFormName = Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
+
+ If InStr(45, sFormHeader, " filename=", 1) > 0 Then
+ Set File(sFormName) = New NetRube_FileInfo
+ File(sFormName).FormName = sFormName
+ File(sFormName).Start = nFormEnd
+ File(sFormName).Size = nFormStart - nFormEnd - 2
+ nPosStart = InStr(nPosEnd, sFormHeader, " filename=", 1) + 11
+ nPosEnd = InStr(nPosStart, sFormHeader, """")
+ File(sFormName).ClientPath = Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
+ File(sFormName).Name = Mid(File(sFormName).ClientPath, InStrRev(File(sFormName).ClientPath, "\") + 1)
+ File(sFormName).Ext = LCase(Mid(File(sFormName).Name, InStrRev(File(sFormName).Name, ".") + 1))
+ nPosStart = InStr(nPosEnd, sFormHeader, "Content-Type: ", 1) + 14
+ nPosEnd = InStr(nPosStart, sFormHeader, vbCr)
+ File(sFormName).MIME = Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
+ Else
+ With oFormStream
+ .Type = 1
+ .Mode = 3
+ .Open
+ oSourceData.Position = nPosEnd
+ oSourceData.CopyTo oFormStream, nFormStart - nFormEnd - 2
+ .Position = 0
+ .Type = 2
+ .CharSet = "UTF-8"
+ Form(sFormName) = .ReadText
+ .Close
+ End With
+ End If
+
+ nFormStart = nFormStart + nBoundLen
+ Loop
+
+ oTotalData = ""
+ Set oFormStream = Nothing
+ End Sub
+
+ Public Sub SaveAs(sItem, sFileName)
+ If File(sItem).Size < 1 Then
+ nErr = 2
+ Exit Sub
+ End If
+
+ If Not IsAllowed(File(sItem).Ext) Then
+ nErr = 4
+ Exit Sub
+ End If
+
+ Dim oFileStream
+ Set oFileStream = Server.CreateObject("ADODB.Stream")
+ With oFileStream
+ .Type = 1
+ .Mode = 3
+ .Open
+ oSourceData.Position = File(sItem).Start
+ oSourceData.CopyTo oFileStream, File(sItem).Size
+ .Position = 0
+ .SaveToFile sFileName, 2
+ .Close
+ End With
+ Set oFileStream = Nothing
+ End Sub
+
+ Private Function IsAllowed(sExt)
+ Dim oRE
+ Set oRE = New RegExp
+ oRE.IgnoreCase = True
+ oRE.Global = True
+
+ If sDenied = "" Then
+ oRE.Pattern = sAllowed
+ IsAllowed = (sAllowed = "") Or oRE.Test(sExt)
+ Else
+ oRE.Pattern = sDenied
+ IsAllowed = Not oRE.Test(sExt)
+ End If
+
+ Set oRE = Nothing
+ End Function
+End Class
+
+Class NetRube_FileInfo
+ Dim FormName, ClientPath, Path, Name, Ext, Content, Size, MIME, Start
+End Class
+%>
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/upload/asp/config.asp b/htdocs/includes/fckeditor/editor/filemanager/upload/asp/config.asp
new file mode 100644
index 00000000000..a4b56dbe298
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/upload/asp/config.asp
@@ -0,0 +1,43 @@
+
+<%
+
+' SECURITY: You must explicitelly enable this "uploader" (set it to "True").
+Dim ConfigIsEnabled
+ConfigIsEnabled = False
+
+' Path to user files relative to the document root.
+Dim ConfigUserFilesPath
+ConfigUserFilesPath = "/UserFiles/"
+
+' Allowed and Denied extensions configurations.
+Dim ConfigAllowedExtensions, ConfigDeniedExtensions
+Set ConfigAllowedExtensions = CreateObject( "Scripting.Dictionary" )
+Set ConfigDeniedExtensions = CreateObject( "Scripting.Dictionary" )
+
+ConfigAllowedExtensions.Add "File", ""
+ConfigDeniedExtensions.Add "File", "php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi"
+
+ConfigAllowedExtensions.Add "Image", "jpg|gif|jpeg|png|bmp"
+ConfigDeniedExtensions.Add "Image", ""
+
+ConfigAllowedExtensions.Add "Flash", "swf|fla"
+ConfigDeniedExtensions.Add "Flash", ""
+
+%>
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/upload/asp/io.asp b/htdocs/includes/fckeditor/editor/filemanager/upload/asp/io.asp
new file mode 100644
index 00000000000..11354334a59
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/upload/asp/io.asp
@@ -0,0 +1,25 @@
+
+<%
+
+Function RemoveExtension( fileName )
+ RemoveExtension = Left( fileName, InStrRev( fileName, "." ) - 1 )
+End Function
+
+%>
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/upload/asp/upload.asp b/htdocs/includes/fckeditor/editor/filemanager/upload/asp/upload.asp
new file mode 100644
index 00000000000..9688ab41839
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/upload/asp/upload.asp
@@ -0,0 +1,109 @@
+<%@ CodePage=65001 Language="VBScript"%>
+<%
+Option Explicit
+Response.Buffer = True
+%>
+
+
+
+
+<%
+
+' This is the function that sends the results of the uploading process.
+Function SendResults( errorNumber, fileUrl, fileName, customMsg )
+ Response.Write ""
+ Response.End
+End Function
+
+%>
+<%
+
+' Check if this uploader has been enabled.
+If ( ConfigIsEnabled = False ) Then
+ SendResults "1", "", "", "This file uploader is disabled. Please check the ""editor/filemanager/upload/asp/config.asp"" file"
+End If
+
+' The the file type (from the QueryString, by default 'File').
+Dim resourceType
+If ( Request.QueryString("Type") <> "" ) Then
+ resourceType = Request.QueryString("Type")
+Else
+ resourceType = "File"
+End If
+
+' Create the Uploader object.
+Dim oUploader
+Set oUploader = New NetRube_Upload
+oUploader.MaxSize = 0
+oUploader.Allowed = ConfigAllowedExtensions.Item( resourceType )
+oUploader.Denied = ConfigDeniedExtensions.Item( resourceType )
+oUploader.GetData
+
+If oUploader.ErrNum > 1 Then
+ SendResults "202", "", "", ""
+Else
+ Dim sFileName, sFileUrl, sErrorNumber, sOriginalFileName, sExtension
+ sFileName = ""
+ sFileUrl = ""
+ sErrorNumber = "0"
+
+ ' Map the virtual path to the local server path.
+ Dim sServerDir
+ sServerDir = Server.MapPath( ConfigUserFilesPath )
+ If ( Right( sServerDir, 1 ) <> "\" ) Then
+ sServerDir = sServerDir & "\"
+ End If
+
+ Dim oFSO
+ Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
+
+ ' Get the uploaded file name.
+ sFileName = oUploader.File( "NewFile" ).Name
+ sExtension = oUploader.File( "NewFile" ).Ext
+ sOriginalFileName = sFileName
+
+ Dim iCounter
+ iCounter = 0
+
+ Do While ( True )
+ Dim sFilePath
+ sFilePath = sServerDir & sFileName
+
+ If ( oFSO.FileExists( sFilePath ) ) Then
+ iCounter = iCounter + 1
+ sFileName = RemoveExtension( sOriginalFileName ) & "(" & iCounter & ")." & sExtension
+ sErrorNumber = "201"
+ Else
+ oUploader.SaveAs "NewFile", sFilePath
+ If oUploader.ErrNum > 0 Then SendResults "202", "", "", ""
+ Exit Do
+ End If
+ Loop
+ Response.Write( sFilePath )
+ sFileUrl = ConfigUserFilesPath & sFileName
+
+ SendResults sErrorNumber, sFileUrl, sFileName, ""
+
+End If
+
+Set oUploader = Nothing
+%>
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/upload/aspx/upload.aspx b/htdocs/includes/fckeditor/editor/filemanager/upload/aspx/upload.aspx
new file mode 100644
index 00000000000..5be74f28286
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/upload/aspx/upload.aspx
@@ -0,0 +1,26 @@
+<%@ Page language="c#" Inherits="FredCK.FCKeditorV2.Uploader" AutoEventWireup="false" %>
+<%--
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: upload.aspx
+ * This is the Uploader for ASP.NET.
+ *
+ * The code of this page if included in the FCKeditor.Net package,
+ * in the FredCK.FCKeditorV2.dll assemblyfile. So to use it you must
+ * include that DLL in your "bin" directory.
+ *
+ * To download the FCKeditor.Net package, go to our official web site:
+ * http://www.fckeditor.net
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+--%>
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/upload/cfm/config.cfm b/htdocs/includes/fckeditor/editor/filemanager/upload/cfm/config.cfm
new file mode 100644
index 00000000000..3ca64267201
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/upload/cfm/config.cfm
@@ -0,0 +1,94 @@
+
+
+
+ config = StructNew();
+
+ // SECURITY: You must explicitelly enable this "uploader".
+ config.enabled = false;
+
+ // Path to uploaded files relative to the document root.
+ config.userFilesPath = "/UserFiles/";
+
+ config.serverPath = ""; // use this to force the server path if FCKeditor is not running directly off the root of the application or the FCKeditor directory in the URL is a virtual directory or a symbolic link / junction
+
+ config.allowedExtensions = StructNew();
+ config.deniedExtensions = StructNew();
+
+ config.allowedExtensions["File"] = "";
+ config.deniedExtensions["File"] = "php,php2,php3,php4,php5,phtml,pwml,inc,asp,aspx,ascx,jsp,cfm,cfc,pl,bat,exe,com,dll,vbs,js,reg,cgi";
+
+ config.allowedExtensions["Image"] = "png,gif,jpg,jpeg,bmp";
+ config.deniedExtensions["Image"] = "";
+
+ config.allowedExtensions["Flash"] = "swf,fla";
+ config.deniedExtensions["Flash"] = "";
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ function structCopyKeys(stFrom, stTo) {
+ for ( key in stFrom ) {
+ if ( isStruct(stFrom[key]) ) {
+ structCopyKeys(stFrom[key],stTo[key]);
+ } else {
+ stTo[key] = stFrom[key];
+ }
+ }
+ }
+ structCopyKeys(FCKeditor, config);
+
+
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/upload/cfm/upload.cfm b/htdocs/includes/fckeditor/editor/filemanager/upload/cfm/upload.cfm
new file mode 100644
index 00000000000..df3d6bef89d
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/upload/cfm/upload.cfm
@@ -0,0 +1,164 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ userFilesPath = config.userFilesPath;
+ lAllowedExtensions = config.allowedExtensions[url.type];
+ lDeniedExtensions = config.deniedExtensions[url.type];
+ customMsg = ''; // Can be overwritten. The last value will be sent with the result
+
+ // make sure the user files path is correctly formatted
+ userFilesPath = replace(userFilesPath, "\", "/", "ALL");
+ userFilesPath = replace(userFilesPath, '//', '/', 'ALL');
+ if ( right(userFilesPath,1) NEQ "/" ) {
+ userFilesPath = userFilesPath & "/";
+ }
+ if ( left(userFilesPath,1) NEQ "/" ) {
+ userFilesPath = "/" & userFilesPath;
+ }
+
+ if (find("/",getBaseTemplatePath())) {
+ fs = "/";
+ } else {
+ fs = "\";
+ }
+
+ // Get the base physical path to the web root for this application. The code to determine the path automatically assumes that
+ // the "FCKeditor" directory in the http request path is directly off the web root for the application and that it's not a
+ // virtual directory or a symbolic link / junction. Use the serverPath config setting to force a physical path if necessary.
+ if ( len(config.serverPath) ) {
+ serverPath = config.serverPath;
+ } else {
+ serverPath = replaceNoCase(getBaseTemplatePath(),replace(cgi.script_name,"/",fs,"all"),"");
+ }
+
+ // map the user files path to a physical directory
+ userFilesServerPath = serverPath & replace(userFilesPath,"/",fs,"all");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ errorNumber = 0;
+ fileName = cffile.ClientFileName;
+ fileExt = cffile.ServerFileExt;
+
+ // munge filename for html download. Only a-z, 0-9, _, - and . are allowed
+ if( reFind("[^A-Za-z0-9_\-\.]", fileName) ) {
+ fileName = reReplace(fileName, "[^A-Za-z0-9\-\.]", "_", "ALL");
+ fileName = reReplace(fileName, "_{2,}", "_", "ALL");
+ fileName = reReplace(fileName, "([^_]+)_+$", "\1", "ALL");
+ fileName = reReplace(fileName, "$_([^_]+)$", "\1", "ALL");
+ }
+
+ // When the original filename already exists, add numbers (0), (1), (2), ... at the end of the filename.
+ if( compare( cffile.ServerFileName, fileName ) ) {
+ counter = 0;
+ tmpFileName = fileName;
+ while( fileExists("#currentFolderPath##fileName#.#fileExt#") ) {
+ counter = counter + 1;
+ fileName = tmpFileName & '(#counter#)';
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/upload/lasso/config.lasso b/htdocs/includes/fckeditor/editor/filemanager/upload/lasso/config.lasso
new file mode 100644
index 00000000000..7317163f80a
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/upload/lasso/config.lasso
@@ -0,0 +1,59 @@
+[//lasso
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * File Name: config.php
+ * Configuration file for the Lasso File Uploader.
+ *
+ * File Authors:
+ * Jason Huck (jason.huck@corefive.com)
+ */
+
+ /*.....................................................................
+ The connector uses the file tags, which require authentication. Enter a
+ valid username and password from Lasso admin for a group with file tags
+ permissions for uploads and the path you define in UserFilesPath below.
+ */
+
+ var('connection') = array(
+ -username='xxxxxxxx',
+ -password='xxxxxxxx'
+ );
+
+
+ /*.....................................................................
+ Set the base path for files that users can upload and browse (relative
+ to server root).
+
+ Set which file extensions are allowed and/or denied for each file type.
+ */
+ var('config') = map(
+ 'Enabled' = false,
+ 'UserFilesPath' = '/UserFiles/',
+ 'Subdirectories' = map(
+ 'File' = 'File/',
+ 'Image' = 'Image/',
+ 'Flash' = 'Flash/',
+ 'Media' = 'Media/'
+ ),
+ 'AllowedExtensions' = map(
+ 'File' = array(),
+ 'Image' = array('jpg','gif','jpeg','png'),
+ 'Flash' = array('swf','fla'),
+ 'Media' = array('swf','fla','jpg','gif','jpeg','png','avi','mpg','mpeg')
+ ),
+ 'DeniedExtensions' = map(
+ 'File' = array('php','php2','php3','php4','php5','phtml','pwml','inc','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','com','dll','vbs','js','reg','cgi','lasso','lassoapp'),
+ 'Image' = array(),
+ 'Flash' = array(),
+ 'Media' = array()
+ )
+ );
+]
diff --git a/htdocs/includes/fckeditor/editor/filemanager/upload/lasso/upload.lasso b/htdocs/includes/fckeditor/editor/filemanager/upload/lasso/upload.lasso
new file mode 100644
index 00000000000..cfd8b268f91
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/upload/lasso/upload.lasso
@@ -0,0 +1,152 @@
+[//lasso
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * File Name: upload.php
+ * This is the "File Uploader" for Lasso.
+ *
+ * File Authors:
+ * Jason Huck (jason.huck@corefive.com)
+ */
+
+
+ /*.....................................................................
+ Include global configuration. See config.lasso for details.
+ */
+ include('config.lasso');
+
+
+ /*.....................................................................
+ Convert query string parameters to variables and initialize output.
+ */
+ var(
+ 'Type' = action_param('Type'),
+ 'CurrentFolder' = action_param('CurrentFolder'),
+ 'ServerPath' = action_param('ServerPath'),
+ 'NewFile' = null,
+ 'NewFileName' = string,
+ 'OrigFilePath' = string,
+ 'NewFilePath' = string,
+ 'errorNumber' = 0,
+ 'customMsg' = ''
+ );
+
+ $Type == '' ? $Type = 'File';
+
+
+ /*.....................................................................
+ Calculate the path to the current folder.
+ */
+ $ServerPath == '' ? $ServerPath = $config->find('UserFilesPath');
+
+ var('currentFolderURL' = $ServerPath
+ + $config->find('Subdirectories')->find(action_param('Type'))
+ + action_param('CurrentFolder')
+ );
+
+
+ /*.....................................................................
+ Custom tag sets the HTML response.
+ */
+
+ define_tag(
+ 'sendresults',
+ -namespace='fck_',
+ -priority='replace',
+ -required='errorNumber',
+ -type='integer',
+ -optional='fileUrl',
+ -type='string',
+ -optional='fileName',
+ -type='string',
+ -optional='customMsg',
+ -type='string',
+ -description='Sets the HTML response for the FCKEditor Quick Upload feature.'
+ );
+ $__html_reply__ = '\
+
+ ';
+ /define_tag;
+
+
+ if($config->find('Enabled'));
+ /*.................................................................
+ Process an uploaded file.
+ */
+ inline($connection);
+ /*.............................................................
+ Was a file actually uploaded?
+ */
+ file_uploads->size ? $NewFile = file_uploads->get(1) | $errorNumber = 202;
+
+ if($errorNumber == 0);
+ /*.........................................................
+ Split the file's extension from the filename in order
+ to follow the API's naming convention for duplicate
+ files. (Test.txt, Test(1).txt, Test(2).txt, etc.)
+ */
+ $NewFileName = $NewFile->find('OrigName');
+ $OrigFilePath = $currentFolderURL + $NewFileName;
+ $NewFilePath = $OrigFilePath;
+ local('fileExtension') = '.' + $NewFile->find('OrigExtension');
+ local('shortFileName') = $NewFileName->removetrailing(#fileExtension)&;
+
+
+ /*.........................................................
+ Make sure the file extension is allowed.
+ */
+
+ if($config->find('DeniedExtensions')->find($Type) >> $NewFile->find('OrigExtension'));
+ $errorNumber = 202;
+ else;
+ /*.....................................................
+ Rename the target path until it is unique.
+ */
+ while(file_exists($NewFilePath));
+ $NewFileName = #shortFileName + '(' + loop_count + ')' + #fileExtension;
+ $NewFilePath = $currentFolderURL + $NewFileName;
+ /while;
+
+
+ /*.....................................................
+ Copy the uploaded file to its final location.
+ */
+ file_copy($NewFile->find('path'), $NewFilePath);
+
+
+ /*.....................................................
+ Set the error code for the response.
+ */
+ select(file_currenterror( -errorcode));
+ case(0);
+ $OrigFilePath != $NewFilePath ? $errorNumber = 201;
+ case;
+ $errorNumber = 202;
+ /select;
+ /if;
+ /if;
+ /inline;
+ else;
+ $errorNumber = 1;
+ $customMsg = 'This file uploader is disabled. Please check the "editor/filemanager/upload/lasso/config.lasso" file.';
+ /if;
+
+ fck_sendresults(
+ -errorNumber=$errorNumber,
+ -fileUrl=$NewFilePath,
+ -fileName=$NewFileName,
+ -customMsg=$customMsg
+ );
+]
diff --git a/htdocs/includes/fckeditor/editor/filemanager/upload/php/config.php b/htdocs/includes/fckeditor/editor/filemanager/upload/php/config.php
new file mode 100644
index 00000000000..30b28105fc5
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/upload/php/config.php
@@ -0,0 +1,48 @@
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/upload/php/upload.php b/htdocs/includes/fckeditor/editor/filemanager/upload/php/upload.php
new file mode 100644
index 00000000000..ea1f4b4823b
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/upload/php/upload.php
@@ -0,0 +1,114 @@
+' ;
+ echo 'window.parent.OnUploadCompleted(' . $errorNumber . ',"' . str_replace( '"', '\\"', $fileUrl ) . '","' . str_replace( '"', '\\"', $fileName ) . '", "' . str_replace( '"', '\\"', $customMsg ) . '") ;' ;
+ echo '' ;
+ 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 ;
+
+// The the target directory.
+if ( isset( $Config['UserFilesAbsolutePath'] ) && strlen( $Config['UserFilesAbsolutePath'] ) > 0 )
+ $sServerDir = $Config['UserFilesAbsolutePath'] ;
+else
+ $sServerDir = GetRootPath() . $Config["UserFilesPath"] ;
+
+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 ) ;
+ }
+
+ $sFileUrl = $Config["UserFilesPath"] . $sFileName ;
+
+ break ;
+ }
+}
+
+SendResults( $sErrorNumber, $sFileUrl, $sFileName ) ;
+?>
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/upload/php/util.php b/htdocs/includes/fckeditor/editor/filemanager/upload/php/util.php
new file mode 100644
index 00000000000..a381e60f1f0
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/upload/php/util.php
@@ -0,0 +1,36 @@
+
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/filemanager/upload/test.html b/htdocs/includes/fckeditor/editor/filemanager/upload/test.html
new file mode 100644
index 00000000000..9e18443f0d3
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/filemanager/upload/test.html
@@ -0,0 +1,129 @@
+
+
+
+ FCKeditor - Uploaders Tests
+
+
+
+
+
+
+
+
+
+ Select the "File Uploader" to use:
+
+
+
+
+ Custom Uploader URL:
+
+
+
+
+
+
+
+
+
+
+
+
+ Uploaded File URL:
+
+
+
+
+
+ Post URL:
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/images/anchor.gif b/htdocs/includes/fckeditor/editor/images/anchor.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5aa797b2240a432d9f3f1d166ed5542eaf684937
GIT binary patch
literal 184
zcmZ?wbhEHb6kygJ|Uu&?oD;%Ae!z@09(NL_hv#6Slx0y!YR{?r|LJZgAju=f-$sQVWNL{+Tsz18#+~Ke%+zTWns()WcPwy8dQcr!JH#
U&i)o#0r5dH3``s@d}5hzR)=UXSOWn0FbS~$
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/images/arrow_rtl.gif b/htdocs/includes/fckeditor/editor/images/arrow_rtl.gif
new file mode 100644
index 0000000000000000000000000000000000000000..22e864984dc8be2445bc66780300651610c029b3
GIT binary patch
literal 49
ucmZ?wbhEHbWMN=uXkcW30L7myKqe!D4u}hqVPN9uDdaf4E0als!5RRbfd=jX
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/images/smiley/msn/angel_smile.gif b/htdocs/includes/fckeditor/editor/images/smiley/msn/angel_smile.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a95e053715347debd916ed191a9411a81b97c471
GIT binary patch
literal 445
zcmZ?wbhEHb6lM@+xXQrr9|(Sb_<#TZmHYqCocVv?&VeiY|Nox>6kYZI{;DhYSN-3=
z>dO9A|L3o|GJn;A1xx<_5B+~X^veCv|NBF)><|4vKlIA{&{gw+f(-xnGhErv@P9tT
zmH7<+>qA!oQGDns`_TXO46A_1o}s=zG!%&9LqqLD>*X1!0u+C;aB?uPGw6U!1Nn)8
z?bdpKkHzGr_?|tkP*zrwQ_#3s<;%KVQtI0mlP5;%EsX7TQU#R>4h0^J
Y+;U1?I|3RGOjWBEnPcc+z`_b-pkvvd@;YvKie|v^2_6+~!8Lr4P
ztg>fVCC^YV9~vqjs%0OlB_CQZ&k!olKy{$_lZBImfrUW_WHQK43~Y}anhH85q*w@Z
zCY?~pQtH=mahB4ZsXWO=sn)}7L5GWSrrWAXZBf#-E*hzc7rnDCt4=uXI$6MOYZkA7
zfHH%Mpn#yD91BN!TMQe&3S(QIgrF>Eh4NH+zCdLzW@Y|PK~Kr_#idOOiahP&f)e6l
zGW^QiN=x~9g)-tcCyT}+GB%Uce!hTiF?^;x8yJG>gSwKrZG0
z6C=Cw454kTES%E(B9T)Veznhd;v^)Jw)f;D)r6LG-(v@w*>vZyl=!x&dU75dX)&5lr
z7A#pce^o<6!~gnKSL#=-s$ccLKJ-d`=>Pc8EAgSL>O)t>hyJ$@y<#8wUp{n|edsEA
zpcKQEc!vM>3|H(K{>w95k!M&X&p;!f_>+Z`gMo!X2V_3TPYi5F9GVI|bfo%EJZwBP
zMW(}hV%sN?Af<`tSb}Y19K`$CjTLMJ*iN=MCkkjtUr;Yu*rM>hS&T$tHgPEt`JS%OQ5vpPyxUWh@crCCHyjLVyizh^ENYqG*rDc)3mp=#k?
zVIIaL2{~y|9ww)496~a}qFjO!5(*N$^)5U@JtExRGIH{lQeC&zaPi6Pzvm$)bhCEZ
mWzYI7SuyVWo-7RPPX)NXxr&Ls`^766;Qv5?!M%xr!5RS2k9cPQ
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/images/smiley/msn/cake.gif b/htdocs/includes/fckeditor/editor/images/smiley/msn/cake.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f6489d7d59dc8dba08fb248e9b0a6182695f5e01
GIT binary patch
literal 453
zcmZ?wbhEHb6lM@+xXQrr9|(Sb_<#TZmHYqCocVv?&Vgm8KK!2n6kYZI{;DhYSN-3=
z>dO9A|L3n-wSU!u1xr@VU)9jiu&REQR{Sb0`&C-p5cl;Lw$W{eSD~vJ&68_N$gbeS
zDhzroJfdsAFGyRV`i=9}4E~kM(rnrlo;*^G!jf71T_V!b{BAlt96Wqt^`f_P;a`ABWE2>Fv+}!NAO*1LA<}WMJL@K%tNMpb3xTy2pofx;E|L)fVEFIb0LGhDBCiZMJEM
zF6+Th3MWL`k0+aDo|R*0Nd3-{k*VZ%X3__r<8zOcJXByw?RQD%{;r^-cQVoJ+d5IP
zNPYnxL4HdERv%vLu68{hzM9F_#?u5_eW&@)HWt(q|
z%*7`&Nm6ozm-R1u?j2Sd7c&_b*U>lynMHL7Yg&A
PG*b->VrSA(WUvMRUk7-C
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/images/smiley/msn/cry_smile.gif b/htdocs/includes/fckeditor/editor/images/smiley/msn/cry_smile.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0758f429e95b1fa75f3e54b731fab507ab9318bd
GIT binary patch
literal 473
zcmZ?wbhEHb6lM@+xXQrr9|(SbxN`shnKSnzaM(#e(3-Gp;v%te(0+Gp{wQt1sVSD
zXSf1H^BGpvhpvhbU1cA-s-9t0Ji{t`hWh%@`uNaLdmzbBZ_hv>Q2fcl$-%(RpaU`o
zp$RRi*^+&@(=1KgLMhldk9yB&+Cz$0#Ola^FV6X-N
Dk$IbY
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/images/smiley/msn/devil_smile.gif b/htdocs/includes/fckeditor/editor/images/smiley/msn/devil_smile.gif
new file mode 100644
index 0000000000000000000000000000000000000000..15518d7f05408c0c00be035fbbeb20001878807b
GIT binary patch
literal 444
zcmZ?wbhEHb6lM@+xXQrr9|(Sb_<#TZmHYn>+&S=n#{Vn(S6!LEYSsQ#tLCq2XlS@n
zziL(eDy{nep&$|{75cwE^h$l`|M<`=@u92gLs!Lz{+Z`gMpPn2V^+NPYi4~4>Vm^Bq-G@-}NwJL4y#>vI`qF
zx-6f?_xO}ajSc5wRpw1HOIW#=RsGGdoB5=r`DK8K+@91(gD1M;%F0SYLL$w|QeqrQ
z@~r}bf=YtQf+7;~0dDNVLV~ReCJHJq|Pj?=;e9q-^_#2|zdIKUYk(Fhu#F*HOF1Rxj!p#lZephOfzAQ~c(1PMrn
zL=-^*ilGn`5TJon5v^)56{-_;P-p6>jc5aHOdDzt4bWg3s4A*ZHC1X9jnHTssYx_J
zlWC$B(E=@|g-WSIDNRWeF@cGh(43fqIWtFV#2Q#**3g1jfCaNqHFYeQS`}Lqi?C=G
zX-O=>l3Ah^u>vb*g+?*LXhvp{EXZP6n4M&Y>?}LxMskDPSZTUD_vb*4gENHbg+BVsnt8;-p&V4KfLVx>nDcC
z?z^Mww?A&{pZsFuucY>
ztow=MFWxoP-u2J+zjwWK{LsnSJ?p0K{%pFpr}Mzb?SA9j+u!dzHUIdk-Q&01w6$++
x$nQS$<_Jd59(ixz-PXe952gkkx~}V(@%^?x&i-=4>46{K8TW_Vms}&8{s+7l5EK9a
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/images/smiley/msn/envelope.gif b/htdocs/includes/fckeditor/editor/images/smiley/msn/envelope.gif
new file mode 100644
index 0000000000000000000000000000000000000000..66d3656147a0f70d36c65ea44a0ee1577fc5832b
GIT binary patch
literal 1030
zcmW+#U5FM$6g|dTZhx$PAq3H^i})~wp;2T#3{jc}!4lof${kBv77<#ghsuY$pT!ck
zJ=GUm56uRPu-AvohoEQ~_a$@tN~B2$jCt@uiUOlBBIq=`2Znow;czeKo_TD~t_OC!
z&_M@(V+B*IXKJ-fwcFGR&RjZkV)?2M<^z3%kK&{GNU!iJUd=0gf=}X;`9z=Lv-oU2
z(^vQ^zM8M}gr|6#Cj}6QzyuTraU#ydQ35201d~9CkSG#OB1Iu8q9#g7kR*~!5+y^j
zNH)oo3aKL1q*4f>2u(-@w5eeVs)IUFXX>Z{8bpI>phjpEji!;RP!&~Er6y<+O{R&O
zp;o$JN*Z7ggBfTJ=ER(tqXk$H3ub{9VNooa#inUviK#WQC0G(m
zW{H+zSuC4nT7^}yYF254QH*9}0SctR3RoP9lj5v6mVgqZ1S^3hqC_dtN@P(Km7-RZ
zC7~oK$x33$C|OFjl36NBl~S!#7NSrJt&l5rw$2W8Le~fxz#t69Kt?bMqcO7CO%c_#tEJV(8aDkiFt`rqaCdub
zKcWMyyNve+@7R56Zt2bGn+G3!ZK!+K#1AJHzC1fQeBH!Q`r?i0nUO~Z`X4`Wbo!53
zd+E-bMn>0u_v2?zot<6SzVnq$OTBCV{W5d$$=>7
z=WoC7##_3N4t)C6@Y`D^XBPLBtxx}ae0b^PzJo`$bpHCax43uk)UKoN^cFtpj*Txa
zUpxNMbBhN$n}_B<`2DBTFQ5N>|N95}`@3Tsx848k-qVMcp1tAl`Xd*&Um19D!^C<&
zI&|gS?Aq5aj9lJ!=$?ZcF8w+3&DY(x9^TX0{M*j!kIkL*x6Y66?oD>rtieP717~&l
A`~Uy|
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/images/smiley/msn/heart.gif b/htdocs/includes/fckeditor/editor/images/smiley/msn/heart.gif
new file mode 100644
index 0000000000000000000000000000000000000000..305714f889555d11032bb7a07bff522f5f854acb
GIT binary patch
literal 1012
zcmW+#U5JoH6g`r{F8w^T{ScHNVN_0O%Wi}gG@@ZYSO{^55E%toF!CX?p3=LTML#cv
z3N5kC(vQh~>d7D<#xTK_g%AdVPzE6qgTSDuE$B4sf#IHEINZy*XP$g|^Sbpr$1sM!
zu!QMrXZl*1?zibBoVsx8*!-~%BV>l`AuAMw!caUEg@(`=
znun$!1Tn~iM1UaSggAf$IXDL~f{~2QC?+tG$(ck0jWnl;8O&sMX0d>UEY2b}u#wH#
zM1dmZlnk)0h8tu9Y@iKpgDk=#ExJWnf+bpVOEQBQ&D>0uVVRcQvaG-gt+*9ggEd-n
zYcin^Wpa}oaM0ln`2Zj2gZm(l@JNsDQJ&z5p4?N{^s(sXUF;d2>DfKY3%t;adyzMI
zqc`^^7hH6?OBJYKg;%H!r~~WZbx@6{ku`dastGl*Ca+1=P>t2RnrcSPtl4W;EvSXH
zcrB_8wXrs@O;xC3l~-xW&fa-|25RU;icqAYD@qAURB|PCyJeJl_eB}XRCZ;lK!qx<
zA~mQ{&DA9J75Tz~w4h08N}5@s-P67{!n~V{3}hlZvQU6R6h{#n(1_+}>N)C`2Oxj}
zohS?l1H<59P>2YT`uFPG+~+;g>N)Rq>CcysZg_8D;=iBHj2&LH{iFSh2cMsK@xH0EZ;$@AeD9BIwtT&L>gIdKZ+YhE
z?EV#dUV4A`%1w{lKC$Z9k;CV=Kfdq$`mGPo9N)UyMlYV({lb=Y`)=T>zi+$ac$yu5
z>%xl5({m^8-L(48TPMcuiU(g_`Nqeue75%VJ2(Ea`s4#YTsm~!?`OYw^`Xg)oEg73
Zx%`_QpFEehjXkm9*%NyXEL(=h{s()1^AZ36
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/images/smiley/msn/kiss.gif b/htdocs/includes/fckeditor/editor/images/smiley/msn/kiss.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f840ea602cc02693e97a5cc3b3453f7c39dc2abf
GIT binary patch
literal 978
zcmW+#O=uoO6dXz`iDG;BE~yBMAXFDcLM|~{mNZr)h#u1Mx&|Z%5xf{_6@011ix>ZT
zP%vx?wdgDUL9en=+e6!U+k=R>7o`@8^j4&Yag%}N&9V&dF>m&{=bxQ_a&>|U?qC-i
zduL;>Y>eB+F1G*JzHse!OdgYBM$C-aV^%aoV>FMZSP%iCNYDV%+4$tXrwt!EMOsvvxpU}WOY`tgPrWoE(#PW
zr(}Q)HQXQzus{oLL6%^NmfVso!!j+qWtqW@W^N`cutFl?SCJ}Isp_gyhdR|=
zUD8;Q@9aoBnv>R~&v)tYbgYdqALgO}g(!|9RG<>oQH2h4qC2`qj)vtCh+xDZiUBb&
z29H58AtvhX?X9izBhnfR;n{TeaedVLWbGgp1|9t7<$|GlHmS*oBpPekfaQ{mOU!VHq
z%O_r)pS$@xXFuG2`qaXy%fH;}>7C_s2Yy|;dH(u~_2su7SUa?MY4z;MwQKFj;eCsz
z-+T9q*WQ@9`oZSGsW@}*g>N?>UO({Tk$+YfR~F_zzI^t^_R*#3<5#Ynxbf#v-pBX9
bnSAx{vD59u;bX7d`Qh*DpB=hqKc4y@%md%w
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/images/smiley/msn/lightbulb.gif b/htdocs/includes/fckeditor/editor/images/smiley/msn/lightbulb.gif
new file mode 100644
index 0000000000000000000000000000000000000000..863be6e51ca72e7855147df62c8506d60eb0e9c8
GIT binary patch
literal 303
zcmV+~0nq+ONk%w1VG{ro0K@TH#
zs?@)#)Ss%Vzp9|1q^h5)fPjF1pQ``=RsY{r)W22KpH-@#Re*p1s()3gUsbAq0DoUq
zRbN#qUsY8$YpNh5b^ri)7!6Y-7!y`)016uqFe(KY6j=cl8xE0E1rUA+7>@-~Q!IT#nJE_w
zB{-u84;&B>91mOz7%&7W4h{wm9)?JpBn}Yz9GcS0a>OJd06W)^
BeUJbE
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/images/smiley/msn/omg_smile.gif b/htdocs/includes/fckeditor/editor/images/smiley/msn/omg_smile.gif
new file mode 100644
index 0000000000000000000000000000000000000000..aabc7fd17e0f09bcb73ac9e200a626f3068d778e
GIT binary patch
literal 342
zcmZ?wbhEHb6lM@+IKsg29|(SbxN`shfjbA5o%-;9#{d8KS6u<3{i{~ZU)9ji@c)14
z|NEg=?uY*0A9@9d=7+AD4-{eezn|d>5Y1<3Xkb`XAG)fZVO2aseSK)XJPQK
z;!hS%4hB{R9S|2}Cj;x{1jWAAhc=sud8brn*#y@mnaV6C}`I17`wg@}N%$RQqaCWbT-Ve$P+Y-U0{8zn9>2=E0PaO_?wEX7>7
eIK)7SUzA^1KvGIVfcc#rhu~ihrgu&Z4AuY%yn4<6
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/images/smiley/msn/regular_smile.gif b/htdocs/includes/fckeditor/editor/images/smiley/msn/regular_smile.gif
new file mode 100644
index 0000000000000000000000000000000000000000..33f297e818c0fc7cc4841272301963c3344ad373
GIT binary patch
literal 1036
zcmW+#O=uoO6da1sM2c1t@KW5Spwg{)Xhmv0Y*TEt@nHHjPejBuAxR+zp*Mxfi;9g(
z1fil;k^O9&5TAlrr3XE14nZ^x7Qz<%DQxvp6vSLg4Iai#29`I=GQ7vU*~gC_+5gCB
zANp_$8<^fa)0<_w-KICNcx`chdCdp&fj+`V@zH#wS9le#=9NCdC-KRAqR;SId^Vry
zD|{7S%~yKDQ#{R+0tiH40*Zq;5oh8k0TM)lNuWeX6p1F0q7W5P6Qv|b5=kbBk|9|n
zn`BCbRFP^@DTGjjCZqz|)G!6rL7k{Gb<_Y2qQNv!BQ%Oe(@0gQimItn6Euk?(?reC
zESgO-wL+_CHLX;l4W%?C4KRqo3^WIGV$RIb0xXCHvp|cmC>G6P)3mX~)SB25EQuwv
zM9Z)&md!G)!m3y`t2DwWMl-Si1yW!IEDpsq{5
z=mUEG#F^e5XSefY0{KOFmg
zabmS|v-iEBaXa`*XZN0~+sC@fEr+*_UwOVevC!#V`g!Y#^v+@4JbCGh{)gVZ@^5$e
z+hbEdOBt5b@1b<`QtNpj1BL-
z_s;SA&Yavm{AIlH_xY($KkxM1|JRE{-;IrS=B{tKaeVpwKd;#f?|0sq9zBRh{|CYs
B0q6h#
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/images/smiley/msn/sad_smile.gif b/htdocs/includes/fckeditor/editor/images/smiley/msn/sad_smile.gif
new file mode 100644
index 0000000000000000000000000000000000000000..dfb78efea7fe651c7ba84aaf2fb3ee19aa8f8efc
GIT binary patch
literal 1039
zcmW+#O=uoO6nwQRZIK#H1fzu|Dwr(MOGWDMT7PQPprK?ygSd!RrQSS9!NNz@umN&~XyvMxRC!gB2
zrCa`%HH@#H@%1v^ZsTj1|8@Sv!m1DE1AP=9;iLITui_P6%`1HppWu`EM4!cH_-sDY
zSMe3Tny>T}Pk5RqAp!x!AcPY*z!@A71OW(!Ktw?Vq9GD0P(TezBtZg_ArV=Sfo#Y`
z6;z-aDnS7O8b}qK^VYb3}h5WFd8G9-BeJm`NAYj
zU@|5$3p1FFnXJMJR%0dER%A;{rX!EqK4Wib}l_ZiN$s|#-NQPvSOsOIj
zQcWsbj+*6O#0$JMLhr;ocxT?x2k`;CvfAlPw@9<)yeZa8tBp1E{d@K1O>$NS+hh9?
z-6ES-Rlqd^@^-?C#r_yKZwm!~cAF_^;2d-_o;x>+a#-FTc>)*MHR$4^B*dzkSb4
zr}x77KWdoiy7Kef#NJ+yfxc^JFOIJK`0!%qLvLR^*ZJVajb~RT-o7yO)z-PGEw6T6
z8alYJd*Gv!zSj<&8kw9reRTAv`RV`qAAkPx&A&Y|GqimCNblaxf$42;Jv+DbX8-*s
z9vZu2^65)EKV2C4dT{vMO#`35^vXMTT{Cg->Ct1)d^dRJlb&}cHXc8D_|_rZ^WKIH
G^1%P79RflC
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/images/smiley/msn/shades_smile.gif b/htdocs/includes/fckeditor/editor/images/smiley/msn/shades_smile.gif
new file mode 100644
index 0000000000000000000000000000000000000000..157df770acd36cbd49f1fd80da2cd9251ef52626
GIT binary patch
literal 1059
zcmW+#U1$(g7(K4lexM&2lQyE;9zwhr%_Om+ZYHP`VOD+#v$`fMEqcj%TE@4cKpKIh
z7DaSd*wSx7AQU|WSExp7+o5>2LwnxR=V
zn`UZ-R?%u&sYDw}X-XPk5Q7!E=Subuy9^*i@(
z+0Yaxc8=Y0pTD>?^y#jFbuV?{tI4j>TPN4t_Rv3_yFVGd16_wZHXr@-@u>-1S^wPJ
z+V^JP$L^6Yd#88Kj(@lR)XS@;54xkna{0*2t^pf=@d3Fw*nMEy-@Etjk4Nl!dwp=k
z@4LLI-yNFY@y7Fy93Niy@HJ`a!p8lFe>wBY>YIQ6d1>h6-m>Pw7w*I#`^G=qadPnV
z#JO4Jl@k+Fmu~dq@AiD)UtK%(%#WWvJA2@_r#D>~pF8x{rHx-4IJ?J2w%mTTKeqkX
Uj>pdQe*Mv?@9e*7RR`|*A1UAdR{#J2
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/images/smiley/msn/teeth_smile.gif b/htdocs/includes/fckeditor/editor/images/smiley/msn/teeth_smile.gif
new file mode 100644
index 0000000000000000000000000000000000000000..26b5a555f834884bf75e8c64021893d85eb1fc7a
GIT binary patch
literal 1064
zcmW+#Uue)(7(LV&v!aqUL5VH~n{@kw)+$%vudp?o3ljYXMsO?8{plfm5TufCnhz04
zQ5gDAccIw!2_+fjOWeJLm4im!6^`Hv=F1*p{r|J_bhiVS?_4g2@8f*u_HB85W6!hg
zXvd#e!r1Z|TP|buHnxPRAEr)zz2F=34Sj$Q;)D4>ukb2f%`1I`kK&{GNT1-7_+&oO
z7x*H+m@o8%r+Att1rUh91QZ8xBF@B78b~A3m^73C2_nHHP!ysfYNC_~i6YS?QW7MI
zB$GrbkRnn{3WX4g(1cV#s~V=DI;azMrjFV`8_~wJp$2FW4W@yrP!&~ErABBJji!;B
zph+~DCTf8e(PCPtL>)?LN*Z7ggBfTJ=ER(tqcyNbtTAh70T#r9S*V&imY7-5s
zsYA|&S?mV|wWop@O(-@uDjE-hFkZHZgf@btJiKQ2!SKCdczhr4dvoaU!F~Im9>+Lt
zU;}fTXKu61_1oMA&R;$M@%QT?dWZ@MAu%KmNx=||!918kM#v1=LslpVg`s#T3Jsw#
zG!IQd2x5>2i2y;u32^`ia&Qh}1S1)pQA}VWlQW418fi`wGnmQj%whoxS)4^|U?ZEe
zi2_B+DH&j04L8UJ*gzZH23dqfT6BxD1WUB!mShGqnz@-Q!!j+qWm$n0T5&6~25YqD
z)?`8-%H$?F;Gn}D@&P{32lqi9;gKHQqddVAJ-Mf@>0{B&yVx^4)3bY)7kHr;_ablb
zMsMy-F1YA&mnu-f3a?NdPzTn*>!2D@BWv^;RTFArO)844$k-@Wu)9C@A2AM$evNm>cI^9!
zOHYiZ+n;=I_1cA*)rHgH-0L6iI<_?Rf83t?z;TR{K(-W|7@Gz`NbnQ*MI-z&~1;Mym9TT>*Ig#xp>^C{<{CA
zH{SZO-16PR_Oa*heP(`i>h0|>|M}aqpU+%;>dgM5r`CR0x%%JM4|d;mVGa-e5AP%G
AhX4Qo
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/images/smiley/msn/thumbs_up.gif b/htdocs/includes/fckeditor/editor/images/smiley/msn/thumbs_up.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7e8c74627f641e404eee62083dfbb87e8664e119
GIT binary patch
literal 989
zcmW+#KWN`Y9DPI4)Fpv9=pf%V&?48UgB1Kzdu)Nf0B*!gAW%bRyY^bi#iLSjfBl7b-^gLyE8jF1_!hpbQ#3PbTw6dFQf
zXdaq^5X2x45&?pQ6XF04E18g7scuz@zX4YCM}wCEOP36^NdEy)aKG;=dqhGklI%d!G1wBlA|4c2JQ
zt;vKwl*vtUz(I#Q)m{6<(n_pbo5q*FiO+M%L&xswULLn!F}eLp4_OYN{DEvu3YZwV)Q(
z;n?!
z(22r;Ffa@r28Dp1++frDeXf$9F(f5ap(_6_AUbuJF=PtkX
z^ts2Myc#~6`uy~dvtQ3|&5w_^UbsK~`}K_z$Jb{LeYJZ1N65z>EI_TNaT&eTaf@e+=`Q!P1ARvuh6-4a=c@P)BfCWUJ^Q=%q0E{DPF)
zOJ#%>)Lr2g`_#kOV-H=+QF9w)deaKwg49F4w1TK8JKgQT<#R5V!{@{KocqwjJA1bb
zwa~(!SVVj2w3kY|-r9>eb?Maj?1J;=JY9eb;)1zAr*JAx%_&`ki{hfWNSEM}xMVKT
z6}TdRP5Y&rv_*c4W@yrP!&~ErABBJji!;B
zph+~DCTf8e(PCPtL>)?LN*Z7ggBfTItPyL>8k&cBF>mH+0T#r9S*V&imY7-SO&8EuiaPyxo24iR*uydTeg=rpJ31ewZ3QcXIm+Cq_Qp@$|%PJ9BT(JD(gm+uMKX
z?%xi$BiHQxqr2mg%bR7xrbpL)H~Eb}boh?`l~4W}MqgjO;@*{OXVy&*A0GLyWAM7c
znPs~=etvak-IYDVa|09aec!pFb^p2X?Q@sc+<5lj?DDZ=%iKK<66
zuUvU>+vcCXO?SmDhsK|~dA*z&_~rfmtJXw!;P|pVe?7k=9$a;N<1KG~-1^|liT<&^
z-uCW^zL&RdY+YFY#?(O9wNFeBj_iJR==9O6AD!>)d0^jI*Tu2DUtjDQ`uz9(yN*sy
cPW8RG_3G^T;g{~)XUm`QH_Wd7qK$3;1Il~_)&Kwi
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif b/htdocs/includes/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c0741223de8ddc366826bad1ef5db6e19e938896
GIT binary patch
literal 1034
zcmW+#UuYLp82ui!bObFoBPF;7NpVpKjaWro6Q(GV{n>db;W}llm!9hV+dwkbL*z{S
z1K!_C#eEdS`a?u<2aU2hE7pCng8NboLSjZ>Gur8H2QJ^aTn^vI`Oe+DZ%^OjgFVtC
zw`2t)t7l}jjI`Ux3Z{RZzBIe&gZV%o#YgyPKGLgrg;(=RpTsBlWIoYn@fkjw&-7J%
zg|Fr-J;f8A=1GV^05J&R1P*WpM+89tf*}x55P@ijgbEZ;gAz%QfMiHS7GxkBGEoH;
zsD?^VK!65PMYO5KRH#nWL7l0i2GIZwrhytoBQ%;us){O9O_iEN6EvA7Y8K7VY?`T6
zv_h+CrBd2ZN>kEAOkiRrG$-a@&dkw*SbznyK#O7#7R_SQw6S1nO>9Xl!ID{`Ww8v)
zW|>ySDy*7S8pQ~s8CgV%pokS=aZ((Lv*K8Slzk
z)-A~R`uk7c_4Cxg)y_SK`WCNG4bNYA>b28j6T5KW+0MgTpL@~wZo>9s-#qy4-rnwu
zul{{yX5-W2^PT>ak8S^bX87Xf{V&~n`QVoE?iZGBe0-xbJv4v&^V@fRcyMNT^wbw!
zzioTy(KknzC;nOJJ(Bdm^4cdZ|1tRdMCB!-HH09+
zTH73C6PjvyHV4yM#LEW6LrrQCR>2}HCiLq1NYs2$CKUY
z#-CWj==vF5FQe@?x`xH?7eDxN#Rv0&KEg-w(R`#=conbal|I2I@yUFm&+u7%HlOJ$
zd=+2KS9-!zJk65=2t;54ii0>2XW}RU5=4SYphQR%i6)Vv5EW4qr6foaNhXPsAz37w
zWJ-lpk!n&YgiwSgqypO1Fa^~?ov1T))Bp{l!8A}KG>S&kNL8qcs;N>FG>InDM9t7F
znoTpcLaS&styH27r8FfCFo?knGzW8H&dkvQEQkfOK#Q;_7R_SQw6Vn0n%EL7i6yf{
z%djk#%`&aRs#rCvG{PuGGqL~$QeXuv4#i1vRvb$}2~vWUz!FiSlxQWgD2hr^E6S2k
zl9Xg6v1F7iC0ofX6{Sk4Rw@foD1}zYH9K2p2Rfl^gbZL124f&27=_Uo+3cnY)tWC%
zU=k){A~TqU*_g=+R$(<(l5It{yi6|hW^xZXy+)g-ZEXUzW-bzt1j&$y3}itzWTFC9
zPz{wWN6m5%c!)-W2Pl)y5h&|J~8miIcdYJ+>dw
z4RoHvzOE||UV3I>aB1ed?TgoJy!-Xn`e*K6J^Djm@7Ul~Bc1a@HrRdro!bshJazB0
zr{@k2^_<_8COZzyzPtDQ?l128bKD2bK=fI8I4<9|pSPp%%AN4WNzQYZ^s6QAD-R%?S{wt-q`!#*In1%_Iuycb1!YY=gq&S7Y0VoPWjd8
z=iQ?h&(3}}`RSb$I5XpAMa!wSkZJZ+_yH!O|edsbh*WoF>W*oTi?c3uA#
L=^WkAfo=Z-Q#A*W
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/images/spacer.gif b/htdocs/includes/fckeditor/editor/images/spacer.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5bfd67a2d6f72ac3a55cbfcea5866e841d22f5d9
GIT binary patch
literal 43
mcmZ?wbhEHbWMp7uXkdT>#h)yUAf^t80Ld^gF}W}@SOWlZ0R#L1
literal 0
HcmV?d00001
diff --git a/htdocs/includes/fckeditor/editor/js/fckeditorcode_gecko.js b/htdocs/includes/fckeditor/editor/js/fckeditorcode_gecko.js
new file mode 100644
index 00000000000..82092d08313
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/js/fckeditorcode_gecko.js
@@ -0,0 +1,80 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * This file has been compacted for best loading performance.
+ */
+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';
+String.prototype.Contains=function(A){return (this.indexOf(A)>-1);};String.prototype.Equals=function(){for (var i=0;iC) 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';};for (var i=0;i|>)/g,_Replace);};FCKConfig.ProtectedSource.Add(//g);
+var FCKeditorAPI;function InitializeAPI(){var oAPI;if (!(oAPI=FCKeditorAPI=window.parent.FCKeditorAPI)){oAPI=FCKeditorAPI=window.parent.FCKeditorAPI=new Object();oAPI.Version='2.3';oAPI.VersionBuild='1054';oAPI.__Instances=new Object();oAPI.GetInstance=FCKeditorAPI_GetInstance;var oQueue=oAPI._FunctionQueue=new Object();oQueue.Functions=new Array();oQueue.IsRunning=false;oQueue.Add=FCKeditorAPI_FunctionQueue_Add;oQueue.StartNext=FCKeditorAPI_FunctionQueue_StartNext;oQueue.Remove=FCKeditorAPI_FunctionQueue_Remove;};oAPI.__Instances[FCK.Name]=FCK;};function FCKeditorAPI_GetInstance(instanceName){return this.__Instances[instanceName];};function FCKeditorAPI_FunctionQueue_Add(functionToAdd){this.Functions.push(functionToAdd);if (!this.IsRunning) this.StartNext();};function FCKeditorAPI_FunctionQueue_StartNext(){var aQueue=this.Functions;if (aQueue.length>0){this.IsRunning=true;FCKTools.RunFunction(aQueue[0]);}else this.IsRunning=false;};function FCKeditorAPI_FunctionQueue_Remove(func){var aQueue=this.Functions;var i=0,fFunc;while(fFunc=aQueue[i]){if (fFunc==func) aQueue.splice(i,1);i++;};this.StartNext();}
+var FCKDebug=new Object();FCKDebug.Output=function(A,B,C){if (!FCKConfig.Debug) return;if (!C&&A!=null&&isNaN(A)) A=A.replace(/ ';for (var D in A){try{var E=A[D]?A[D]+'':'[null]';C+=''+D+' : '+E.replace(/
';}catch (e){try{C+=''+D+' : ['+typeof(A[D])+']
';}catch (e){C+=''+D+' : [-error-]
';}}};C+='';} else C='OutputObject : Object is "null".';FCKDebug.Output(C,B,true);}
+var FCKTools=new Object();FCKTools.GetLinkedFieldValue=function(){return FCK.LinkedField.value;};FCKTools.AttachToLinkedFieldFormSubmit=function(A){var B=FCK.LinkedField.form;if (!B) return;if (FCKBrowserInfo.IsIE) B.attachEvent("onsubmit",A);else B.addEventListener('submit',A,false);if (!B.updateFCKeditor) B.updateFCKeditor=new Array();B.updateFCKeditor[B.updateFCKeditor.length]=A;if (!B.originalSubmit&&(typeof(B.submit)=='function'||(!B.submit.tagName&&!B.submit.length))){B.originalSubmit=B.submit;B.submit=FCKTools_SubmitReplacer;}};function FCKTools_SubmitReplacer(){if (this.updateFCKeditor){for (var i=0;i /g,'>');return A;};FCKTools.AddSelectOption=function(A,B,C){var D=A.ownerDocument.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);};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':'';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;i0) 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;i0){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);};};
+var FCKRegexLib=new Object();FCKRegexLib.AposEntity=/'/gi;FCKRegexLib.ObjectElements=/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i;FCKRegexLib.BlockElements=/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TD|TH)$/i;FCKRegexLib.EmptyElements=/^(?:BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT)$/i;FCKRegexLib.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;FCKRegexLib.BodyContents=/([\s\S]*\]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i;FCKRegexLib.ToReplace=/___fcktoreplace:([\w]+)/ig;FCKRegexLib.MetaHttpEquiv=/http-equiv\s*=\s*["']?([^"' ]+)/i;FCKRegexLib.HasBaseTag=/ ]*>/i;FCKRegexLib.HeadCloser=/<\/head\s*>/i;FCKRegexLib.TableBorderClass=/\s*FCK__ShowTableBorders\s*/;FCKRegexLib.ElementName=/(^[A-Za-z_:][\w.\-:]*\w$)|(^[A-Za-z_]$)/;FCKRegexLib.ForceSimpleAmpersand=/___FCKAmp___/g;FCKRegexLib.SpaceNoClose=/\/>/g;FCKRegexLib.EmptyParagraph=/^<(p|div)>\s*<\/\1>$/i;FCKRegexLib.TagBody=/>;FCKRegexLib.StrongOpener=/])/gi;FCKRegexLib.StrongCloser=/<\/STRONG>/gi;FCKRegexLib.EmOpener=/])/gi;FCKRegexLib.EmCloser=/<\/EM>/gi;FCKRegexLib.GeckoEntitiesMarker=/#\?-\:/g;FCKRegexLib.ProtectUrlsAApo=/(]+)/gi;FCKRegexLib.ProtectUrlsImgApo=/(
]+)/gi;FCKRegexLib.Html4DocType=/HTML 4\.0 Transitional/i;
+var FCKLanguageManager=FCK.Language=new Object();FCKLanguageManager.AvailableLanguages={'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','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'};FCKLanguageManager.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;};FCKLanguageManager.TranslateElements=function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i$/,'');D=D.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) D=D.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) D=FCKCodeFormatter.Format(D);for (var i=0;i0) FCKXHtml._AppendAttribute(A,'src',C);return A;};FCKXHtml.TagProcessors['a']=function(A,B){var C=B.getAttribute('_fcksavedurl');if (C&&C.length>0) FCKXHtml._AppendAttribute(A,'href',C);FCKXHtml._AppendChildNodes(A,B,false);return A;};FCKXHtml.TagProcessors['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;};FCKXHtml.TagProcessors['style']=function(A,B){if (B.getAttribute('_fcktemp')) return null;if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.innerHTML)));return A;};FCKXHtml.TagProcessors['title']=function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;};FCKXHtml.TagProcessors['base']=function(A,B){if (B.getAttribute('_fcktemp')) return null;return A;};FCKXHtml.TagProcessors['link']=function(A,B){if (B.getAttribute('_fcktemp')) return null;return A;};FCKXHtml.TagProcessors['table']=function(A,B){var C=A.attributes.getNamedItem('class');if (C&&FCKRegexLib.TableBorderClass.test(C.nodeValue)){var D=C.nodeValue.replace(FCKRegexLib.TableBorderClass,'');if (D.length==0) A.attributes.removeNamedItem('class');else FCKXHtml._AppendAttribute(A,'class',D);};FCKXHtml._AppendChildNodes(A,B,false);return A;};FCKXHtml.TagProcessors['ol']=FCKXHtml.TagProcessors['ul']=function(A,B,C){if (B.innerHTML.trim().length==0) return;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;};FCKXHtml._AppendChildNodes(A,B);return A;}
+FCKXHtml._GetMainXmlString=function(){var A=new XMLSerializer();return A.serializeToString(this.MainNode).replace(FCKRegexLib.GeckoEntitiesMarker,'&');};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendAttributes=function(A,B,C){var D=B.attributes;for (var n=0;n]*\>/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=/(]*>)([\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=new Array();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;i0) B.removeChild(B.childNodes[0]);if (this.Mode==FCK_EDITMODE_WYSIWYG){if (FCKBrowserInfo.IsGecko){A=A.replace(/(]*>)\s*(<\/body>)/i,'$1'+GECKO_BOGUS+'$2');};var D=this.IFrame=C.createElement('iframe');D.src='javascript:void(0)';D.frameBorder=0;D.width=D.height='100%';B.appendChild(D);this.Window=D.contentWindow;var E=this.Document=this.Window.document;E.open();E.write(A);E.close();this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}else{var F=this.Textarea=C.createElement('textarea');F.className='SourceField';F.dir='ltr';F.style.width=F.style.height='100%';F.style.border='none';B.appendChild(F);F.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var oEditorArea=this._FCKEditingArea;oEditorArea.MakeEditable();FCKTools.RunFunction(oEditorArea.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE) A.body.contentEditable=true;else{try{A.designMode='on';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==FCK_EDITMODE_WYSIWYG){if (FCKBrowserInfo.IsSafari) this.IFrame.focus();else this.Window.focus();}else 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 FCKDocumentProcessor=new Object();FCKDocumentProcessor._Items=new Array();FCKDocumentProcessor.AppendNew=function(){var A=new Object();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;};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&&(!C.getAttribute('href')||C.getAttribute('href').length==0)){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;if (E=C.getAttribute('scale')) D.setAttribute('scale',E);if (E=C.getAttribute('play')) D.setAttribute('play',E);if (E=C.getAttribute('loop')) D.setAttribute('loop',E);if (E=C.getAttribute('menu')) D.setAttribute('menu',E);if (E=C.getAttribute('wmode')) D.setAttribute('wmode',E);if (E=C.getAttribute('quality')) D.setAttribute('quality',E);};var F=FCKDocumentProcessor_CreateFakeImage('FCK__Flash',D);F.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(F,C);C.parentNode.insertBefore(F,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 FCK_StartupValue;FCK.Events=new FCKEvents(FCK);FCK.Toolbar=null;FCK.HasFocus=false;FCK.StartEditor=function(){FCK.TempBaseTag=FCKConfig.BaseHref.length>0?' ':'';FCK.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.SetHTML(FCKTools.GetLinkedFieldValue());};FCK.Focus=function(){FCK.EditingArea.Focus();};FCK.SetStatus=function(A){this.Status=A;if (A==FCK_STATUS_ACTIVE){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);};FCK.GetHTML=FCK.GetXHTML=function(A){if (FCK.EditMode==FCK_EDITMODE_SOURCE) return FCK.EditingArea.Textarea.value;var B;if (FCKConfig.FullPage) B=FCKXHtml.GetXHTML(this.EditorDocument.getElementsByTagName('html')[0],true,A);else{if (FCKConfig.IgnoreEmptyParagraphValue&&this.EditorDocument.body.innerHTML=='
') B='';else B=FCKXHtml.GetXHTML(this.EditorDocument.body,false,A);};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);};FCK.UpdateLinkedField=function(){FCK.LinkedField.value=FCK.GetXHTML(FCKConfig.FormatOutput);FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');};FCK.RegisteredDoubleClickHandlers=new Object();FCK.OnDoubleClick=function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);};FCK.RegisterDoubleClickHandler=function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;};FCK.OnAfterSetHTML=function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCK.Events.FireEvent('OnAfterSetHTML');};FCK.ProtectUrls=function(A){A=A.replace(FCKRegexLib.ProtectUrlsAApo,'$1$2$3$2 _fcksavedurl=$2$3$2');A=A.replace(FCKRegexLib.ProtectUrlsANoApo,'$1$2 _fcksavedurl="$2"');A=A.replace(FCKRegexLib.ProtectUrlsImgApo,'$1$2$3$2 _fcksavedurl=$2$3$2');A=A.replace(FCKRegexLib.ProtectUrlsImgNoApo,'$1$2 _fcksavedurl="$2"');return A;};FCK.IsDirty=function(){return (FCK_StartupValue!=FCK.EditorDocument.body.innerHTML);};FCK.ResetIsDirty=function(){if (FCK.EditorDocument.body) FCK_StartupValue=FCK.EditorDocument.body.innerHTML;};FCK.SetHTML=function(A){this.EditingArea.Mode=FCK.EditMode;if (FCK.EditMode==FCK_EDITMODE_WYSIWYG){if (FCKBrowserInfo.IsGecko){A=A.replace(FCKRegexLib.StrongOpener,'');A=A.replace(FCKRegexLib.EmOpener,'');};A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectUrls(A);var B;if (FCKConfig.FullPage){var B;if (FCKBrowserInfo.IsIE) B=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) B='';B+='';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+' '+this._GetEditorAreaStyleTags()+'';if (FCKBrowserInfo.IsIE) B+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) B+='';B+=FCK.TempBaseTag;B+='';if (FCKBrowserInfo.IsGecko&&(A.length==0||FCKRegexLib.EmptyParagraph.test(A))) B+=GECKO_BOGUS;else B+=A;B+='';};this.EditingArea.OnLoad=FCK_EditingArea_OnLoad;this.EditingArea.Start(B);}else{this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;}};function FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();FCK.OnAfterSetHTML();if (FCK.Status!=FCK_STATUS_NOTLOADED) return;FCK.ResetIsDirty();FCKTools.AttachToLinkedFieldFormSubmit(FCK.UpdateLinkedField);FCKUndo.SaveUndoStep();FCK.SetStatus(FCK_STATUS_ACTIVE);};FCK._GetEditorAreaStyleTags=function(){var A='';var B=FCKConfig.EditorAreaCSS;for (var i=0;i ';return A;};var FCKFocusManager=FCK.FocusManager=new Object();FCKFocusManager.IsLocked=false;FCK.HasFocus=false;FCKFocusManager.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);};FCKFocusManager.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);};FCKFocusManager.Lock=function(){this.IsLocked=true;};FCKFocusManager.Unlock=function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;};FCKFocusManager._ResetTimer=function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}};function FCKFocusManager_Win_OnBlur(){if (FCK&&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(){FCKFocusManager_Win_OnFocus();FCK.Focus();};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(){FCKFocusManager.AddWindow(this.EditorWindow);var A=function(e){var B;if (e.ctrlKey&&!e.shiftKey&&!e.altKey){switch (e.which){case 66:case 98:FCK.ExecuteNamedCommand('bold');B=true;break;case 105:case 73:FCK.ExecuteNamedCommand('italic');B=true;break;case 117:case 85:FCK.ExecuteNamedCommand('underline');B=true;break;case 86:case 118:B=(FCK.Status!=FCK_STATUS_COMPLETE||!FCK.Events.FireEvent("OnPaste"));break;}}else if (e.shiftKey&&!e.ctrlKey&&!e.altKey&&e.keyCode==45) B=(FCK.Status!=FCK_STATUS_COMPLETE||!FCK.Events.FireEvent("OnPaste"));if (B){e.preventDefault();e.stopPropagation();}};this.EditorDocument.addEventListener('keypress',A,true);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.RedirectNamedCommands=new Object();FCK.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();};FCK.GetNamedCommandState=function(A){try{if (!FCK.EditorDocument.queryCommandEnabled(A)) return FCK_TRISTATE_DISABLED;else return FCK.EditorDocument.queryCommandState(A)?FCK_TRISTATE_ON:FCK_TRISTATE_OFF;}catch (e){return FCK_TRISTATE_OFF;}};FCK.GetNamedCommandValue=function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==FCK_TRISTATE_DISABLED) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';};FCK.PasteFromWord=function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');};FCK.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.GetXHTML().replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+''+''+FCK.TempBaseTag+''+FCKLang.Preview+' '+FCK._GetEditorAreaStyleTags()+''+FCK.GetXHTML()+'';};D.document.write(E);D.document.close();};FCK.SwitchEditMode=function(A){var B=(FCK.EditMode==FCK_EDITMODE_WYSIWYG);var C;if (B){if (!A&&FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();C=FCK.GetXHTML(FCKConfig.FormatSource);}else C=this.EditingArea.Textarea.value;FCK.EditMode=B?FCK_EDITMODE_SOURCE:FCK_EDITMODE_WYSIWYG;FCK.SetHTML(C);if (FCKBrowserInfo.IsGecko) window.onresize();FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);};FCK.CreateElement=function(A){var e=FCK.EditorDocument.createElement(A);return FCK.InsertElementAndGetIt(e);};FCK.InsertElementAndGetIt=function(e){e.setAttribute('FCKTempLabel','true');this.InsertElement(e);var A=FCK.EditorDocument.getElementsByTagName(e.tagName);for (var i=0;i0){var B='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',B);var C=document.evaluate("//a[@href='"+B+"']",this.EditorDocument.body,null,9,null).singleNodeValue;if (C){C.href=A;return C;}}};
+var FCKSelection=FCK.Selection=new Object();
+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];}};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;}}};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.tagName==A) return C;C=C.parentNode;};return null;};FCKSelection.Delete=function(){var A=FCK.EditorWindow.getSelection();for (var i=0;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;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;i1) 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';};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');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 FCK_TRISTATE_OFF;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.LinkedField.form;if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};A.submit();};FCKSaveCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};FCKNewPageCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};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==FCK_EDITMODE_WYSIWYG?FCK_TRISTATE_OFF:FCK_TRISTATE_ON);};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()?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED);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()?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED);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=' ';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(){return FCK.GetNamedCommandState(this.Name);}
+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?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;}
+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 FCK_TRISTATE_OFF;};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='\\ \' + FCKLang.ColorAutomatic + ' \ \
';C.Command=this;C.onclick=FCKTextColorCommand_AutoOnClick;var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H';C.Command=this;C.onclick=FCKTextColorCommand_OnClick;}};E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML=''+FCKLang.ColorMoreColors+'
';C.Command=this;C.onclick=FCKTextColorCommand_MoreOnClick;}
+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 FCK_TRISTATE_DISABLED;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 FCK_TRISTATE_OFF;}
+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 FCK_TRISTATE_DISABLED;var A=FCK.EditorDocument.selection;if (FCKSelection.GetType()=='Control'){var e=FCKSelection.GetSelectedElement();if (e) return this.StylesLoader.StyleGroups[e.tagName]?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;};return FCK_TRISTATE_OFF;};FCKStyleCommand.prototype.GetActiveStyles=function(){var A=new Array();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<\/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';if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);};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){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':'';var 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{FCKFocusManager.Lock();if (this.ParentPanel) this.ParentPanel.Lock();this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';var D=this.MainNode.offsetWidth;if (!B) this._IFrame.width=1;if (!C) this._IFrame.height=1;D=this.MainNode.offsetWidth;var F=FCKTools.GetElementPosition((A.nodeType==9?A.body:A),this._Window);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 G=FCKTools.GetViewPaneSize(this._Window);var H=FCKTools.GetScrollPosition(this._Window);var I=G.Height+H.Y;var J=G.Width+H.X;if ((x+D)>J) x-=x+D-J;if ((y+this.MainNode.offsetHeight)>I) y-=y+this.MainNode.offsetHeight-I;};if (x<0) x=0;this._IFrame.style.left=x+'px';this._IFrame.style.top=y+'px';var K=D;var L=this.MainNode.offsetHeight;this._IFrame.width=K;this._IFrame.height=L;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;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.GetParentWindow(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();};/* Events */ function FCKPanel_Window_OnFocus(e,panel){panel.HasFocus=true;};function FCKPanel_Window_OnBlur(e,panel){panel.HasFocus=false;if (panel._LockCounter==0) FCKTools.RunFunction(panel.Hide,panel);};function CheckPopupOnHide(forceHide){if (forceHide||!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;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');var D=B.appendChild(A.createElement('IMG'));D.src=this.Path;D.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('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||FCK_TOOLBARITEM_ONLYICON;this.State=F||FCK_TRISTATE_OFF;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=A.ownerDocument;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==FCK_TOOLBARITEM_ONLYICON&&!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==FCK_TOOLBARITEM_ONLYICON||this.Style==FCK_TOOLBARITEM_ICONTEXT) F.appendChild(this.Icon.CreateIconElement(C));else F.appendChild(this._CreatePaddingElement(C));if (this.Style==FCK_TOOLBARITEM_ONLYTEXT||this.Style==FCK_TOOLBARITEM_ICONTEXT){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(C.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=FCK_TOOLBARITEM_ONLYICON){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)){case FCK_TRISTATE_OFF:e.className='TB_Button_Off';e.onmouseover=FCKToolbarButton_OnMouseOverOff;e.onmouseout=FCKToolbarButton_OnMouseOutOff;e.onclick=FCKToolbarButton_OnClick;break;case FCK_TRISTATE_ON:e.className='TB_Button_On';e.onmouseover=FCKToolbarButton_OnMouseOverOn;e.onmouseout=FCKToolbarButton_OnMouseOutOn;e.onclick=FCKToolbarButton_OnClick;break;case FCK_TRISTATE_DISABLED:e.className='TB_Button_Disabled';e.onmouseover=null;e.onmouseout=null;e.onclick=null;bEnableEvents=false;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(FCK_TRISTATE_DISABLED);}
+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=FCK_TOOLBARITEM_ICONTEXT;this.Enabled=true;this.Items=new Object();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='
';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;};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=this._OuterTable=A.appendChild(A.ownerDocument.createElement('TABLE'));B.cellPadding=0;B.cellSpacing=0;B.insertRow(-1);var C;var D;switch (this.Style){case FCK_TOOLBARITEM_ONLYICON:C='TB_ButtonType_Icon';D=false;break;case FCK_TOOLBARITEM_ONLYTEXT:C='TB_ButtonType_Text';D=false;break;case FCK_TOOLBARITEM_ICONTEXT:D=true;break;};if (this.Caption&&this.Caption.length>0&&D){var E=B.rows[0].insertCell(-1);E.innerHTML=this.Caption;E.className='SC_FieldCaption';};var F=B.rows[0].insertCell(-1).appendChild(A.ownerDocument.createElement('DIV'));if (D){F.className='SC_Field';F.style.width=this.FieldWidth+'px';F.innerHTML='
';this._LabelEl=F.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{F.className='TB_Button_Off';F.innerHTML=''+''+'
'+''+this.Caption+' '+'
'+'
'+'
'+' '+'
';};F.SpecialCombo=this;F.onmouseover=FCKSpecialCombo_OnMouseOver;F.onmouseout=FCKSpecialCombo_OnMouseOut;F.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 key in this.Items) this.Items[key]=null;}};function FCKSpecialCombo_OnMouseOver(){if (this.SpecialCombo.Enabled){switch (this.SpecialCombo.Style){case FCK_TOOLBARITEM_ONLYICON:this.className='TB_Button_On_Over';break;case FCK_TOOLBARITEM_ONLYTEXT:this.className='TB_Button_On_Over';break;case FCK_TOOLBARITEM_ICONTEXT:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(){switch (this.SpecialCombo.Style){case FCK_TOOLBARITEM_ONLYICON:this.className='TB_Button_Off';break;case FCK_TOOLBARITEM_ONLYTEXT:this.className='TB_Button_Off';break;case FCK_TOOLBARITEM_ICONTEXT:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e){var oSpecialCombo=this.SpecialCombo;if (oSpecialCombo.Enabled){var oPanel=oSpecialCombo._Panel;var oPanelBox=oSpecialCombo._PanelBox;var oItemsHolder=oSpecialCombo._ItemsHolderEl;var iMaxHeight=oSpecialCombo.PanelMaxHeight;if (oSpecialCombo.OnBeforeClick) oSpecialCombo.OnBeforeClick(oSpecialCombo);if (FCKBrowserInfo.IsIE) oPanel.Preload(0,this.offsetHeight,this);if (oItemsHolder.offsetHeight>iMaxHeight) oPanelBox.style.height=iMaxHeight+'px';else oPanelBox.style.height='';oPanel.Show(0,this.offsetHeight,this);}};
+var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;};function FCKToolbarSpecialCombo_OnSelect(itemId,item){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(itemId,item);};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(combo,value){combo.DeselectAll();combo.SelectItem(value);combo.SetLabelById(value);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=FCK_TRISTATE_DISABLED){A=FCK_TRISTATE_ON;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!=B){this._LastValue=B;FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=FCK_TRISTATE_DISABLED;if (A==this.State) return;if (A==FCK_TRISTATE_DISABLED){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=FCK_TRISTATE_DISABLED);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=FCK_TRISTATE_DISABLED;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:FCK_TOOLBARITEM_ICONTEXT;};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[i]+'');}
+var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;};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'+C[1]+'',C[1]);}}
+var FCKToolbarFontFormatCombo=function(A,B){this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;this.NormalLabel='Normal';this.PanelWidth=190;};FCKToolbarFontFormatCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.CreateItems=function(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]};var D=FCKConfig.FontFormats.split(';');for (var i=0;i<'+E+'>'+F+''+E+'>',F);}};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:FCK_TOOLBARITEM_ICONTEXT;};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;var C=FCKConfig.EditorAreaCSS;for (var i=0;i0){for (var i=0;i'+document.getElementById('xToolbarSpace').innerHTML+'');eTargetDocument.close();eTargetDocument.oncontextmenu=FCKTools.CancelEvent;FCKTools.AppendStyleSheet(eTargetDocument,FCKConfig.SkinPath+'fck_editor.css');oToolbarSet=eToolbarTarget.__FCKToolbarSet=new FCKToolbarSet(eTargetDocument);oToolbarSet._IFrame=eToolbarIFrame;if (FCK.IECleanup) FCK.IECleanup.AddItem(eToolbarTarget,FCKToolbarSet_Target_Cleanup);};oToolbarSet.CurrentInstance=FCK;FCK.AttachToOnSelectionChange(oToolbarSet.RefreshItemsState);return oToolbarSet;};function FCK_OnBlur(editorInstance){var eToolbarSet=editorInstance.ToolbarSet;if (eToolbarSet.CurrentInstance==editorInstance){eToolbarSet.Disable();}};function FCK_OnFocus(editorInstance){var oToolbarset=editorInstance.ToolbarSet;var oInstance=editorInstance||FCK;oToolbarset.CurrentInstance.FocusManager.RemoveWindow(oToolbarset._IFrame.contentWindow);oToolbarset.CurrentInstance=oInstance;oInstance.FocusManager.AddWindow(oToolbarset._IFrame.contentWindow,true);oToolbarset.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=new Array();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=new Array();this.ItemsWysiwygOnly=new Array();this.ItemsContextSensitive=new Array();this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=new Array();for (var x=0;x0) 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=A.ownerDocument;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;i0){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=new Object();FCKPlugins.ItemsCount=0;FCKPlugins.Items=new Object();FCKPlugins.Load=function(){var A=FCKPlugins.Items;for (var i=0;i-1);};String.prototype.Equals=function(){for (var i=0;iC) 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';};for (var i=0;i|>)/g,_Replace);};FCKConfig.ProtectedSource.Add(//g);
+var FCKeditorAPI;function InitializeAPI(){var oAPI;if (!(oAPI=FCKeditorAPI=window.parent.FCKeditorAPI)){oAPI=FCKeditorAPI=window.parent.FCKeditorAPI=new Object();oAPI.Version='2.3';oAPI.VersionBuild='1054';oAPI.__Instances=new Object();oAPI.GetInstance=FCKeditorAPI_GetInstance;var oQueue=oAPI._FunctionQueue=new Object();oQueue.Functions=new Array();oQueue.IsRunning=false;oQueue.Add=FCKeditorAPI_FunctionQueue_Add;oQueue.StartNext=FCKeditorAPI_FunctionQueue_StartNext;oQueue.Remove=FCKeditorAPI_FunctionQueue_Remove;};oAPI.__Instances[FCK.Name]=FCK;};function FCKeditorAPI_GetInstance(instanceName){return this.__Instances[instanceName];};function FCKeditorAPI_FunctionQueue_Add(functionToAdd){this.Functions.push(functionToAdd);if (!this.IsRunning) this.StartNext();};function FCKeditorAPI_FunctionQueue_StartNext(){var aQueue=this.Functions;if (aQueue.length>0){this.IsRunning=true;FCKTools.RunFunction(aQueue[0]);}else this.IsRunning=false;};function FCKeditorAPI_FunctionQueue_Remove(func){var aQueue=this.Functions;var i=0,fFunc;while(fFunc=aQueue[i]){if (fFunc==func) aQueue.splice(i,1);i++;};this.StartNext();}
+var FCKDebug=new Object();FCKDebug.Output=function(A,B,C){if (!FCKConfig.Debug) return;if (!C&&A!=null&&isNaN(A)) A=A.replace(/
';for (var D in A){try{var E=A[D]?A[D]+'':'[null]';C+=''+D+' : '+E.replace(/
';}catch (e){try{C+=''+D+' : ['+typeof(A[D])+']
';}catch (e){C+=''+D+' : [-error-]
';}}};C+='';} else C='OutputObject : Object is "null".';FCKDebug.Output(C,B,true);}
+var FCKTools=new Object();FCKTools.GetLinkedFieldValue=function(){return FCK.LinkedField.value;};FCKTools.AttachToLinkedFieldFormSubmit=function(A){var B=FCK.LinkedField.form;if (!B) return;if (FCKBrowserInfo.IsIE) B.attachEvent("onsubmit",A);else B.addEventListener('submit',A,false);if (!B.updateFCKeditor) B.updateFCKeditor=new Array();B.updateFCKeditor[B.updateFCKeditor.length]=A;if (!B.originalSubmit&&(typeof(B.submit)=='function'||(!B.submit.tagName&&!B.submit.length))){B.originalSubmit=B.submit;B.submit=FCKTools_SubmitReplacer;}};function FCKTools_SubmitReplacer(){if (this.updateFCKeditor){for (var i=0;i /g,'>');return A;};FCKTools.AddSelectOption=function(A,B,C){var D=A.ownerDocument.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);};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;i0) 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;}};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':/* Ignore the above tags */ 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=new Object();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=new Object();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;}
+var FCKRegexLib=new Object();FCKRegexLib.AposEntity=/'/gi;FCKRegexLib.ObjectElements=/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i;FCKRegexLib.BlockElements=/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TD|TH)$/i;FCKRegexLib.EmptyElements=/^(?:BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT)$/i;FCKRegexLib.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;FCKRegexLib.BodyContents=/([\s\S]*\]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i;FCKRegexLib.ToReplace=/___fcktoreplace:([\w]+)/ig;FCKRegexLib.MetaHttpEquiv=/http-equiv\s*=\s*["']?([^"' ]+)/i;FCKRegexLib.HasBaseTag=/ ]*>/i;FCKRegexLib.HeadCloser=/<\/head\s*>/i;FCKRegexLib.TableBorderClass=/\s*FCK__ShowTableBorders\s*/;FCKRegexLib.ElementName=/(^[A-Za-z_:][\w.\-:]*\w$)|(^[A-Za-z_]$)/;FCKRegexLib.ForceSimpleAmpersand=/___FCKAmp___/g;FCKRegexLib.SpaceNoClose=/\/>/g;FCKRegexLib.EmptyParagraph=/^<(p|div)>\s*<\/\1>$/i;FCKRegexLib.TagBody=/>;FCKRegexLib.StrongOpener=/])/gi;FCKRegexLib.StrongCloser=/<\/STRONG>/gi;FCKRegexLib.EmOpener=/])/gi;FCKRegexLib.EmCloser=/<\/EM>/gi;FCKRegexLib.GeckoEntitiesMarker=/#\?-\:/g;FCKRegexLib.ProtectUrlsAApo=/(]+)/gi;FCKRegexLib.ProtectUrlsImgApo=/(
]+)/gi;FCKRegexLib.Html4DocType=/HTML 4\.0 Transitional/i;
+var FCKLanguageManager=FCK.Language=new Object();FCKLanguageManager.AvailableLanguages={'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','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'};FCKLanguageManager.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;};FCKLanguageManager.TranslateElements=function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i$/,'');D=D.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) D=D.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) D=FCKCodeFormatter.Format(D);for (var i=0;i0) FCKXHtml._AppendAttribute(A,'src',C);return A;};FCKXHtml.TagProcessors['a']=function(A,B){var C=B.getAttribute('_fcksavedurl');if (C&&C.length>0) FCKXHtml._AppendAttribute(A,'href',C);FCKXHtml._AppendChildNodes(A,B,false);return A;};FCKXHtml.TagProcessors['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;};FCKXHtml.TagProcessors['style']=function(A,B){if (B.getAttribute('_fcktemp')) return null;if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.innerHTML)));return A;};FCKXHtml.TagProcessors['title']=function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;};FCKXHtml.TagProcessors['base']=function(A,B){if (B.getAttribute('_fcktemp')) return null;return A;};FCKXHtml.TagProcessors['link']=function(A,B){if (B.getAttribute('_fcktemp')) return null;return A;};FCKXHtml.TagProcessors['table']=function(A,B){var C=A.attributes.getNamedItem('class');if (C&&FCKRegexLib.TableBorderClass.test(C.nodeValue)){var D=C.nodeValue.replace(FCKRegexLib.TableBorderClass,'');if (D.length==0) A.attributes.removeNamedItem('class');else FCKXHtml._AppendAttribute(A,'class',D);};FCKXHtml._AppendChildNodes(A,B,false);return A;};FCKXHtml.TagProcessors['ol']=FCKXHtml.TagProcessors['ul']=function(A,B,C){if (B.innerHTML.trim().length==0) return;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;};FCKXHtml._AppendChildNodes(A,B);return A;}
+FCKXHtml._GetMainXmlString=function(){return this.MainNode.xml;};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createEntityReference(B));};FCKXHtml._AppendAttributes=function(A,B,C,D){var E=B.attributes;for (var n=0;n0) FCKXHtml._AppendAttribute(A,'shape',C);};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);return A;}
+var FCKCodeFormatter=new Object();FCKCodeFormatter.Init=function(){var A=this.Regex=new Object();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=/(]*>)([\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=new Array();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=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=FCK_EDITMODE_WYSIWYG;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A){var B=this.TargetElement;var C=B.ownerDocument;while(B.childNodes.length>0) B.removeChild(B.childNodes[0]);if (this.Mode==FCK_EDITMODE_WYSIWYG){if (FCKBrowserInfo.IsGecko){A=A.replace(/(]*>)\s*(<\/body>)/i,'$1'+GECKO_BOGUS+'$2');};var D=this.IFrame=C.createElement('iframe');D.src='javascript:void(0)';D.frameBorder=0;D.width=D.height='100%';B.appendChild(D);this.Window=D.contentWindow;var E=this.Document=this.Window.document;E.open();E.write(A);E.close();this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}else{var F=this.Textarea=C.createElement('textarea');F.className='SourceField';F.dir='ltr';F.style.width=F.style.height='100%';F.style.border='none';B.appendChild(F);F.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var oEditorArea=this._FCKEditingArea;oEditorArea.MakeEditable();FCKTools.RunFunction(oEditorArea.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE) A.body.contentEditable=true;else{try{A.designMode='on';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==FCK_EDITMODE_WYSIWYG){if (FCKBrowserInfo.IsSafari) this.IFrame.focus();else this.Window.focus();}else 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 FCKDocumentProcessor=new Object();FCKDocumentProcessor._Items=new Array();FCKDocumentProcessor.AppendNew=function(){var A=new Object();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;};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&&(!C.getAttribute('href')||C.getAttribute('href').length==0)){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;if (E=C.getAttribute('scale')) D.setAttribute('scale',E);if (E=C.getAttribute('play')) D.setAttribute('play',E);if (E=C.getAttribute('loop')) D.setAttribute('loop',E);if (E=C.getAttribute('menu')) D.setAttribute('menu',E);if (E=C.getAttribute('wmode')) D.setAttribute('wmode',E);if (E=C.getAttribute('quality')) D.setAttribute('quality',E);};var F=FCKDocumentProcessor_CreateFakeImage('FCK__Flash',D);F.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(F,C);C.parentNode.insertBefore(F,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 FCK_StartupValue;FCK.Events=new FCKEvents(FCK);FCK.Toolbar=null;FCK.HasFocus=false;FCK.StartEditor=function(){FCK.TempBaseTag=FCKConfig.BaseHref.length>0?' ':'';FCK.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.SetHTML(FCKTools.GetLinkedFieldValue());};FCK.Focus=function(){FCK.EditingArea.Focus();};FCK.SetStatus=function(A){this.Status=A;if (A==FCK_STATUS_ACTIVE){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);};FCK.GetHTML=FCK.GetXHTML=function(A){if (FCK.EditMode==FCK_EDITMODE_SOURCE) return FCK.EditingArea.Textarea.value;var B;if (FCKConfig.FullPage) B=FCKXHtml.GetXHTML(this.EditorDocument.getElementsByTagName('html')[0],true,A);else{if (FCKConfig.IgnoreEmptyParagraphValue&&this.EditorDocument.body.innerHTML=='
') B='';else B=FCKXHtml.GetXHTML(this.EditorDocument.body,false,A);};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);};FCK.UpdateLinkedField=function(){FCK.LinkedField.value=FCK.GetXHTML(FCKConfig.FormatOutput);FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');};FCK.RegisteredDoubleClickHandlers=new Object();FCK.OnDoubleClick=function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);};FCK.RegisterDoubleClickHandler=function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;};FCK.OnAfterSetHTML=function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCK.Events.FireEvent('OnAfterSetHTML');};FCK.ProtectUrls=function(A){A=A.replace(FCKRegexLib.ProtectUrlsAApo,'$1$2$3$2 _fcksavedurl=$2$3$2');A=A.replace(FCKRegexLib.ProtectUrlsANoApo,'$1$2 _fcksavedurl="$2"');A=A.replace(FCKRegexLib.ProtectUrlsImgApo,'$1$2$3$2 _fcksavedurl=$2$3$2');A=A.replace(FCKRegexLib.ProtectUrlsImgNoApo,'$1$2 _fcksavedurl="$2"');return A;};FCK.IsDirty=function(){return (FCK_StartupValue!=FCK.EditorDocument.body.innerHTML);};FCK.ResetIsDirty=function(){if (FCK.EditorDocument.body) FCK_StartupValue=FCK.EditorDocument.body.innerHTML;};FCK.SetHTML=function(A){this.EditingArea.Mode=FCK.EditMode;if (FCK.EditMode==FCK_EDITMODE_WYSIWYG){if (FCKBrowserInfo.IsGecko){A=A.replace(FCKRegexLib.StrongOpener,'');A=A.replace(FCKRegexLib.EmOpener,'');};A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectUrls(A);var B;if (FCKConfig.FullPage){var B;if (FCKBrowserInfo.IsIE) B=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) B='';B+='';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+' '+this._GetEditorAreaStyleTags()+'';if (FCKBrowserInfo.IsIE) B+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) B+='';B+=FCK.TempBaseTag;B+='';if (FCKBrowserInfo.IsGecko&&(A.length==0||FCKRegexLib.EmptyParagraph.test(A))) B+=GECKO_BOGUS;else B+=A;B+='';};this.EditingArea.OnLoad=FCK_EditingArea_OnLoad;this.EditingArea.Start(B);}else{this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;}};function FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();FCK.OnAfterSetHTML();if (FCK.Status!=FCK_STATUS_NOTLOADED) return;FCK.ResetIsDirty();FCKTools.AttachToLinkedFieldFormSubmit(FCK.UpdateLinkedField);FCKUndo.SaveUndoStep();FCK.SetStatus(FCK_STATUS_ACTIVE);};FCK._GetEditorAreaStyleTags=function(){var A='';var B=FCKConfig.EditorAreaCSS;for (var i=0;i ';return A;};var FCKFocusManager=FCK.FocusManager=new Object();FCKFocusManager.IsLocked=false;FCK.HasFocus=false;FCKFocusManager.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);};FCKFocusManager.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);};FCKFocusManager.Lock=function(){this.IsLocked=true;};FCKFocusManager.Unlock=function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;};FCKFocusManager._ResetTimer=function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}};function FCKFocusManager_Win_OnBlur(){if (FCK&&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(){FCKFocusManager_Win_OnFocus();FCK.Focus();};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;B='';FCK._BehaviorsStyle=B;};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(){if (FCK.Status==FCK_STATUS_COMPLETE) return FCK.Events.FireEvent("OnPaste");else return false;};function Doc_OnKeyDown(){var e=FCK.EditorWindow.event;switch (e.keyCode){case 13:if (FCKConfig.UseBROnCarriageReturn&&!(e.ctrlKey||e.altKey||e.shiftKey)){Doc_OnKeyDownUndo();if (FCK.EditorDocument.queryCommandState('InsertOrderedList')||FCK.EditorDocument.queryCommandState('InsertUnorderedList')) return true;FCK.InsertHtml('
');var oRange=FCK.EditorDocument.selection.createRange();oRange.moveStart('character',-1);oRange.select();FCK.EditorDocument.selection.clear();return false;};break;case 8:if (FCKSelection.GetType()=='Control'){FCKSelection.Delete();return false;};break;case 9:if (FCKConfig.TabSpaces>0&&!(e.ctrlKey||e.altKey||e.shiftKey)){Doc_OnKeyDownUndo();FCK.InsertHtml(window.FCKTabHTML);return false;};break;case 90:if (e.ctrlKey&&!(e.altKey||e.shiftKey)){FCKUndo.Undo();return false;};break;case 89:if (e.ctrlKey&&!(e.altKey||e.shiftKey)){FCKUndo.Redo();return false;};break;};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 '+A;B.getElementById('__fakeFCKRemove__').removeNode(true);};var FCK_PreloadImages_Count=0;var FCK_PreloadImages_Images=new Array();function FCK_PreloadImages(){var aImages=FCKConfig.PreloadImages||[];if (typeof(aImages)=='string') aImages=aImages.split(';');aImages.push(FCKConfig.SkinPath+'fck_strip.gif');FCK_PreloadImages_Count=aImages.length;var aImageElements=new Array();for (var i=0;i0) E=FCK.GetXHTML().replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+''+''+FCK.TempBaseTag+''+FCKLang.Preview+' '+FCK._GetEditorAreaStyleTags()+''+FCK.GetXHTML()+'';};D.document.write(E);D.document.close();};FCK.SwitchEditMode=function(A){var B=(FCK.EditMode==FCK_EDITMODE_WYSIWYG);var C;if (B){if (!A&&FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();C=FCK.GetXHTML(FCKConfig.FormatSource);}else C=this.EditingArea.Textarea.value;FCK.EditMode=B?FCK_EDITMODE_SOURCE:FCK_EDITMODE_WYSIWYG;FCK.SetHTML(C);if (FCKBrowserInfo.IsGecko) window.onresize();FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);};FCK.CreateElement=function(A){var e=FCK.EditorDocument.createElement(A);return FCK.InsertElementAndGetIt(e);};FCK.InsertElementAndGetIt=function(e){e.setAttribute('FCKTempLabel','true');this.InsertElement(e);var A=FCK.EditorDocument.getElementsByTagName(e.tagName);for (var i=0;i]*(( class="?MsoNormal"?)|(="mso-))/gi;if (B.test(A)){if (confirm(FCKLang["PasteWordConfirm"])){FCK.PasteFromWord();return false;}}}else return true;};FCK.PasteAsPlainText=function(){var A=FCKTools.HTMLEncode(clipboardData.getData("Text"));A=A.replace(/\n/g,'
');this.InsertHtml(A);};FCK.InsertElement=function(A){FCK.InsertHtml(A.outerHTML);};FCK.GetClipboardHTML=function(){var A=document.getElementById('___FCKHiddenDiv');if (!A){var A=document.createElement('DIV');A.id='___FCKHiddenDiv';A.style.visibility='hidden';A.style.overflow='hidden';A.style.position='absolute';A.style.width=1;A.style.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=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;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;i1) 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=0&&B.compareEndPoints('StartToEnd',E)<=0)||(B.compareEndPoints('EndToStart',E)>=0&&B.compareEndPoints('EndToEnd',E)<=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.Error=true;alert('Error loading "'+A+'"');}};FCKXml.prototype.SelectNodes=function(A,B){if (this.Error) return new Array();if (B) return B.selectNodes(A);else return this.DOMDocument.selectNodes(A);};FCKXml.prototype.SelectSingleNode=function(A,B){if (this.Error) return;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=new Object();};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');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 FCK_TRISTATE_OFF;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.LinkedField.form;if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};A.submit();};FCKSaveCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};FCKNewPageCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};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==FCK_EDITMODE_WYSIWYG?FCK_TRISTATE_OFF:FCK_TRISTATE_ON);};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()?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED);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()?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED);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=' ';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(){return FCK.GetNamedCommandState(this.Name);}
+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?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;}
+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 FCK_TRISTATE_OFF;};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='\\ \' + FCKLang.ColorAutomatic + ' \ \
';C.Command=this;C.onclick=FCKTextColorCommand_AutoOnClick;var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H';C.Command=this;C.onclick=FCKTextColorCommand_OnClick;}};E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML=''+FCKLang.ColorMoreColors+'
';C.Command=this;C.onclick=FCKTextColorCommand_MoreOnClick;}
+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 FCK_TRISTATE_DISABLED;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 FCK_TRISTATE_OFF;}
+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 FCK_TRISTATE_DISABLED;var A=FCK.EditorDocument.selection;if (FCKSelection.GetType()=='Control'){var e=FCKSelection.GetSelectedElement();if (e) return this.StylesLoader.StyleGroups[e.tagName]?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;};return FCK_TRISTATE_OFF;};FCKStyleCommand.prototype.GetActiveStyles=function(){var A=new Array();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<\/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';if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);};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){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':'';var 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{FCKFocusManager.Lock();if (this.ParentPanel) this.ParentPanel.Lock();this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';var D=this.MainNode.offsetWidth;if (!B) this._IFrame.width=1;if (!C) this._IFrame.height=1;D=this.MainNode.offsetWidth;var F=FCKTools.GetElementPosition((A.nodeType==9?A.body:A),this._Window);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 G=FCKTools.GetViewPaneSize(this._Window);var H=FCKTools.GetScrollPosition(this._Window);var I=G.Height+H.Y;var J=G.Width+H.X;if ((x+D)>J) x-=x+D-J;if ((y+this.MainNode.offsetHeight)>I) y-=y+this.MainNode.offsetHeight-I;};if (x<0) x=0;this._IFrame.style.left=x+'px';this._IFrame.style.top=y+'px';var K=D;var L=this.MainNode.offsetHeight;this._IFrame.width=K;this._IFrame.height=L;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;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.GetParentWindow(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();};/* Events */ function FCKPanel_Window_OnFocus(e,panel){panel.HasFocus=true;};function FCKPanel_Window_OnBlur(e,panel){panel.HasFocus=false;if (panel._LockCounter==0) FCKTools.RunFunction(panel.Hide,panel);};function CheckPopupOnHide(forceHide){if (forceHide||!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;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');var D=B.appendChild(A.createElement('IMG'));D.src=this.Path;D.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('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||FCK_TOOLBARITEM_ONLYICON;this.State=F||FCK_TRISTATE_OFF;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=A.ownerDocument;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==FCK_TOOLBARITEM_ONLYICON&&!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==FCK_TOOLBARITEM_ONLYICON||this.Style==FCK_TOOLBARITEM_ICONTEXT) F.appendChild(this.Icon.CreateIconElement(C));else F.appendChild(this._CreatePaddingElement(C));if (this.Style==FCK_TOOLBARITEM_ONLYTEXT||this.Style==FCK_TOOLBARITEM_ICONTEXT){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(C.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=FCK_TOOLBARITEM_ONLYICON){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)){case FCK_TRISTATE_OFF:e.className='TB_Button_Off';e.onmouseover=FCKToolbarButton_OnMouseOverOff;e.onmouseout=FCKToolbarButton_OnMouseOutOff;e.onclick=FCKToolbarButton_OnClick;break;case FCK_TRISTATE_ON:e.className='TB_Button_On';e.onmouseover=FCKToolbarButton_OnMouseOverOn;e.onmouseout=FCKToolbarButton_OnMouseOutOn;e.onclick=FCKToolbarButton_OnClick;break;case FCK_TRISTATE_DISABLED:e.className='TB_Button_Disabled';e.onmouseover=null;e.onmouseout=null;e.onclick=null;bEnableEvents=false;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(FCK_TRISTATE_DISABLED);}
+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=FCK_TOOLBARITEM_ICONTEXT;this.Enabled=true;this.Items=new Object();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='
';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;};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=this._OuterTable=A.appendChild(A.ownerDocument.createElement('TABLE'));B.cellPadding=0;B.cellSpacing=0;B.insertRow(-1);var C;var D;switch (this.Style){case FCK_TOOLBARITEM_ONLYICON:C='TB_ButtonType_Icon';D=false;break;case FCK_TOOLBARITEM_ONLYTEXT:C='TB_ButtonType_Text';D=false;break;case FCK_TOOLBARITEM_ICONTEXT:D=true;break;};if (this.Caption&&this.Caption.length>0&&D){var E=B.rows[0].insertCell(-1);E.innerHTML=this.Caption;E.className='SC_FieldCaption';};var F=B.rows[0].insertCell(-1).appendChild(A.ownerDocument.createElement('DIV'));if (D){F.className='SC_Field';F.style.width=this.FieldWidth+'px';F.innerHTML='
';this._LabelEl=F.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{F.className='TB_Button_Off';F.innerHTML=''+''+'
'+''+this.Caption+' '+'
'+'
'+'
'+' '+'
';};F.SpecialCombo=this;F.onmouseover=FCKSpecialCombo_OnMouseOver;F.onmouseout=FCKSpecialCombo_OnMouseOut;F.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 key in this.Items) this.Items[key]=null;}};function FCKSpecialCombo_OnMouseOver(){if (this.SpecialCombo.Enabled){switch (this.SpecialCombo.Style){case FCK_TOOLBARITEM_ONLYICON:this.className='TB_Button_On_Over';break;case FCK_TOOLBARITEM_ONLYTEXT:this.className='TB_Button_On_Over';break;case FCK_TOOLBARITEM_ICONTEXT:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(){switch (this.SpecialCombo.Style){case FCK_TOOLBARITEM_ONLYICON:this.className='TB_Button_Off';break;case FCK_TOOLBARITEM_ONLYTEXT:this.className='TB_Button_Off';break;case FCK_TOOLBARITEM_ICONTEXT:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e){var oSpecialCombo=this.SpecialCombo;if (oSpecialCombo.Enabled){var oPanel=oSpecialCombo._Panel;var oPanelBox=oSpecialCombo._PanelBox;var oItemsHolder=oSpecialCombo._ItemsHolderEl;var iMaxHeight=oSpecialCombo.PanelMaxHeight;if (oSpecialCombo.OnBeforeClick) oSpecialCombo.OnBeforeClick(oSpecialCombo);if (FCKBrowserInfo.IsIE) oPanel.Preload(0,this.offsetHeight,this);if (oItemsHolder.offsetHeight>iMaxHeight) oPanelBox.style.height=iMaxHeight+'px';else oPanelBox.style.height='';oPanel.Show(0,this.offsetHeight,this);}};
+var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;};function FCKToolbarSpecialCombo_OnSelect(itemId,item){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(itemId,item);};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(combo,value){combo.DeselectAll();combo.SelectItem(value);combo.SetLabelById(value);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=FCK_TRISTATE_DISABLED){A=FCK_TRISTATE_ON;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!=B){this._LastValue=B;FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=FCK_TRISTATE_DISABLED;if (A==this.State) return;if (A==FCK_TRISTATE_DISABLED){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=FCK_TRISTATE_DISABLED);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=FCK_TRISTATE_DISABLED;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:FCK_TOOLBARITEM_ICONTEXT;};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[i]+'');}
+var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;};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'+C[1]+'',C[1]);}}
+var FCKToolbarFontFormatCombo=function(A,B){this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;this.NormalLabel='Normal';this.PanelWidth=190;};FCKToolbarFontFormatCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.CreateItems=function(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]};var D=FCKConfig.FontFormats.split(';');for (var i=0;i<'+E+'>'+F+''+E+'>',F);}};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:FCK_TOOLBARITEM_ICONTEXT;};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;var C=FCKConfig.EditorAreaCSS;for (var i=0;i0){for (var i=0;i'+document.getElementById('xToolbarSpace').innerHTML+'');eTargetDocument.close();eTargetDocument.oncontextmenu=FCKTools.CancelEvent;FCKTools.AppendStyleSheet(eTargetDocument,FCKConfig.SkinPath+'fck_editor.css');oToolbarSet=eToolbarTarget.__FCKToolbarSet=new FCKToolbarSet(eTargetDocument);oToolbarSet._IFrame=eToolbarIFrame;if (FCK.IECleanup) FCK.IECleanup.AddItem(eToolbarTarget,FCKToolbarSet_Target_Cleanup);};oToolbarSet.CurrentInstance=FCK;FCK.AttachToOnSelectionChange(oToolbarSet.RefreshItemsState);return oToolbarSet;};function FCK_OnBlur(editorInstance){var eToolbarSet=editorInstance.ToolbarSet;if (eToolbarSet.CurrentInstance==editorInstance){eToolbarSet.Disable();}};function FCK_OnFocus(editorInstance){var oToolbarset=editorInstance.ToolbarSet;var oInstance=editorInstance||FCK;oToolbarset.CurrentInstance.FocusManager.RemoveWindow(oToolbarset._IFrame.contentWindow);oToolbarset.CurrentInstance=oInstance;oInstance.FocusManager.AddWindow(oToolbarset._IFrame.contentWindow,true);oToolbarset.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=new Array();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=new Array();this.ItemsWysiwygOnly=new Array();this.ItemsContextSensitive=new Array();this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=new Array();for (var x=0;x0) 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=A.ownerDocument;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;i0){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=new Object();FCKPlugins.ItemsCount=0;FCKPlugins.Items=new Object();FCKPlugins.Load=function(){var A=FCKPlugins.Items;for (var i=0;i
+
+
+
+
+
+
+
+
+
+
+ FontFormats Localization
+
+ IE has some limits when handling the "Font Format". It actually uses localized
+ strings to retrieve the current format value. This makes it very difficult to
+ make a system that works on every single computer in the world.
+
+
+ With FCKeditor, this problem impacts in the "Format" toolbar command that
+ doesn't reflects the format of the current cursor position.
+
+
+ There is only one way to make it work. We must localize FCKeditor using the
+ strings used by IE. In this way, we will have the expected behavior at least
+ when using FCKeditor in the same language as the browser. So, when localizing
+ FCKeditor, go to a computer with IE in the target language, open this page and
+ use the following string to the "FontFormats" value:
+
+
+ FontFormats : "",
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/htdocs/includes/fckeditor/editor/lang/_translationstatus.txt b/htdocs/includes/fckeditor/editor/lang/_translationstatus.txt
new file mode 100644
index 00000000000..caf123fa386
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/_translationstatus.txt
@@ -0,0 +1,70 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: _translationstatus.txt
+ * Translations Status.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+ar.js Found: 388 Missing: 0
+bg.js Found: 380 Missing: 8
+bn.js Found: 388 Missing: 0
+bs.js Found: 232 Missing: 156
+ca.js Found: 387 Missing: 1
+cs.js Found: 388 Missing: 0
+da.js Found: 388 Missing: 0
+de.js Found: 388 Missing: 0
+el.js Found: 232 Missing: 156
+en-au.js Found: 388 Missing: 0
+en-ca.js Found: 388 Missing: 0
+en-uk.js Found: 388 Missing: 0
+eo.js Found: 352 Missing: 36
+es.js Found: 382 Missing: 6
+et.js Found: 388 Missing: 0
+eu.js Found: 388 Missing: 0
+fa.js Found: 358 Missing: 30
+fi.js Found: 388 Missing: 0
+fo.js Found: 358 Missing: 30
+fr.js Found: 383 Missing: 5
+gl.js Found: 388 Missing: 0
+he.js Found: 388 Missing: 0
+hi.js Found: 388 Missing: 0
+hr.js Found: 383 Missing: 5
+hu.js Found: 388 Missing: 0
+it.js Found: 388 Missing: 0
+ja.js Found: 388 Missing: 0
+km.js Found: 377 Missing: 11
+ko.js Found: 375 Missing: 13
+lt.js Found: 383 Missing: 5
+lv.js Found: 388 Missing: 0
+mn.js Found: 232 Missing: 156
+ms.js Found: 358 Missing: 30
+nl.js Found: 388 Missing: 0
+no.js Found: 388 Missing: 0
+pl.js Found: 388 Missing: 0
+pt-br.js Found: 383 Missing: 5
+pt.js Found: 375 Missing: 13
+ro.js Found: 388 Missing: 0
+ru.js Found: 383 Missing: 5
+sk.js Found: 383 Missing: 5
+sl.js Found: 380 Missing: 8
+sr-latn.js Found: 375 Missing: 13
+sr.js Found: 375 Missing: 13
+sv.js Found: 383 Missing: 5
+th.js Found: 352 Missing: 36
+tr.js Found: 374 Missing: 14
+uk.js Found: 375 Missing: 13
+vi.js Found: 388 Missing: 0
+zh-cn.js Found: 388 Missing: 0
+zh.js Found: 388 Missing: 0
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/ar.js b/htdocs/includes/fckeditor/editor/lang/ar.js
new file mode 100644
index 00000000000..6cb792c77fe
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/ar.js
@@ -0,0 +1,487 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * 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)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "rtl",
+
+ToolbarCollapse : "ضم شريط الأدوات",
+ToolbarExpand : "تمدد شريط الأدوات",
+
+// Toolbar Items and Context Menu
+Save : "حفظ",
+NewPage : "صفحة جديدة",
+Preview : "معاينة الصفحة",
+Cut : "قص",
+Copy : "نسخ",
+Paste : "لصق",
+PasteText : "لصق كنص بسيط",
+PasteWord : "لصق من وورد",
+Print : "طباعة",
+SelectAll : "تحديد الكل",
+RemoveFormat : "إزالة التنسيقات",
+InsertLinkLbl : "رابط",
+InsertLink : "إدراج/تحرير رابط",
+RemoveLink : "إزالة رابط",
+Anchor : "إدراج/تحرير إشارة مرجعية",
+InsertImageLbl : "صورة",
+InsertImage : "إدراج/تحرير صورة",
+InsertFlashLbl : "فلاش",
+InsertFlash : "إدراج/تحرير فيلم فلاش",
+InsertTableLbl : "جدول",
+InsertTable : "إدراج/تحرير جدول",
+InsertLineLbl : "خط فاصل",
+InsertLine : "إدراج خط فاصل",
+InsertSpecialCharLbl: "رموز",
+InsertSpecialChar : "إدراج رموز..ِ",
+InsertSmileyLbl : "ابتسامات",
+InsertSmiley : "إدراج ابتسامات",
+About : "حول FCKeditor",
+Bold : "غامق",
+Italic : "مائل",
+Underline : "تسطير",
+StrikeThrough : "يتوسطه خط",
+Subscript : "منخفض",
+Superscript : "مرتفع",
+LeftJustify : "محاذاة إلى اليسار",
+CenterJustify : "توسيط",
+RightJustify : "محاذاة إلى اليمين",
+BlockJustify : "ضبط",
+DecreaseIndent : "إنقاص المسافة البادئة",
+IncreaseIndent : "زيادة المسافة البادئة",
+Undo : "تراجع",
+Redo : "إعادة",
+NumberedListLbl : "تعداد رقمي",
+NumberedList : "إدراج/إلغاء تعداد رقمي",
+BulletedListLbl : "تعداد نقطي",
+BulletedList : "إدراج/إلغاء تعداد نقطي",
+ShowTableBorders : "معاينة حدود الجداول",
+ShowDetails : "معاينة التفاصيل",
+Style : "نمط",
+FontFormat : "تنسيق",
+Font : "خط",
+FontSize : "حجم الخط",
+TextColor : "لون النص",
+BGColor : "لون الخلفية",
+Source : "شفرة المصدر",
+Find : "بحث",
+Replace : "إستبدال",
+SpellCheck : "تدقيق إملائي",
+UniversalKeyboard : "لوحة المفاتيح العالمية",
+PageBreakLbl : "فصل الصفحة",
+PageBreak : "إدخال صفحة جديدة",
+
+Form : "نموذج",
+Checkbox : "خانة إختيار",
+RadioButton : "زر خيار",
+TextField : "مربع نص",
+Textarea : "ناحية نص",
+HiddenField : "إدراج حقل خفي",
+Button : "زر ضغط",
+SelectionField : "قائمة منسدلة",
+ImageButton : "زر صورة",
+
+FitWindow : "تكبير حجم المحرر",
+
+// Context Menu
+EditLink : "تحرير رابط",
+CellCM : "خلية",
+RowCM : "صف",
+ColumnCM : "عمود",
+InsertRow : "إدراج صف",
+DeleteRows : "حذف صفوف",
+InsertColumn : "إدراج عمود",
+DeleteColumns : "حذف أعمدة",
+InsertCell : "إدراج خلية",
+DeleteCells : "حذف خلايا",
+MergeCells : "دمج خلايا",
+SplitCell : "تقسيم خلية",
+TableDelete : "حذف الجدول",
+CellProperties : "خصائص الخلية",
+TableProperties : "خصائص الجدول",
+ImageProperties : "خصائص الصورة",
+FlashProperties : "خصائص فيلم الفلاش",
+
+AnchorProp : "خصائص الإشارة المرجعية",
+ButtonProp : "خصائص زر الضغط",
+CheckboxProp : "خصائص خانة الإختيار",
+HiddenFieldProp : "خصائص الحقل الخفي",
+RadioButtonProp : "خصائص زر الخيار",
+ImageButtonProp : "خصائص زر الصورة",
+TextFieldProp : "خصائص مربع النص",
+SelectionFieldProp : "خصائص القائمة المنسدلة",
+TextareaProp : "خصائص ناحية النص",
+FormProp : "خصائص النموذج",
+
+FontFormats : "عادي;منسّق;دوس;العنوان 1;العنوان 2;العنوان 3;العنوان 4;العنوان 5;العنوان 6",
+
+// Alerts and Messages
+ProcessingXHTML : "إنتظر قليلاً ريثما تتم معالَجة XHTML. لن يستغرق طويلاً...",
+Done : "تم",
+PasteWordConfirm : "يبدو أن النص المراد لصقه منسوخ من برنامج وورد. هل تود تنظيفه قبل الشروع في عملية اللصق؟",
+NotCompatiblePaste : "هذه الميزة تحتاج لمتصفح من النوعInternet Explorer إصدار 5.5 فما فوق. هل تود اللصق دون تنظيف الكود؟",
+UnknownToolbarItem : "عنصر شريط أدوات غير معروف \"%1\"",
+UnknownCommand : "أمر غير معروف \"%1\"",
+NotImplemented : "لم يتم دعم هذا الأمر",
+UnknownToolbarSet : "لم أتمكن من العثور على طقم الأدوات \"%1\" ",
+NoActiveX : "لتأمين متصفحك يجب أن تحدد بعض مميزات المحرر. يتوجب عليك تمكين الخيار \"Run ActiveX controls and plug-ins\". قد تواجة أخطاء وتلاحظ مميزات مفقودة",
+BrowseServerBlocked : "لايمكن فتح مصدر المتصفح. فضلا يجب التأكد بأن جميع موانع النوافذ المنبثقة معطلة",
+DialogBlocked : "لايمكن فتح نافذة الحوار . فضلا تأكد من أن مانع النوافذ المنبثة معطل .",
+
+// Dialogs
+DlgBtnOK : "موافق",
+DlgBtnCancel : "إلغاء الأمر",
+DlgBtnClose : "إغلاق",
+DlgBtnBrowseServer : "تصفح الخادم",
+DlgAdvancedTag : "متقدم",
+DlgOpOther : "<أخرى>",
+DlgInfoTab : "معلومات",
+DlgAlertUrl : "الرجاء كتابة عنوان الإنترنت",
+
+// General Dialogs Labels
+DlgGenNotSet : "<بدون تحديد>",
+DlgGenId : "الرقم",
+DlgGenLangDir : "إتجاه النص",
+DlgGenLangDirLtr : "اليسار لليمين (LTR)",
+DlgGenLangDirRtl : "اليمين لليسار (RTL)",
+DlgGenLangCode : "رمز اللغة",
+DlgGenAccessKey : "مفاتيح الإختصار",
+DlgGenName : "الاسم",
+DlgGenTabIndex : "الترتيب",
+DlgGenLongDescr : "عنوان الوصف المفصّل",
+DlgGenClass : "فئات التنسيق",
+DlgGenTitle : "تلميح الشاشة",
+DlgGenContType : "نوع التلميح",
+DlgGenLinkCharset : "ترميز المادة المطلوبة",
+DlgGenStyle : "نمط",
+
+// Image Dialog
+DlgImgTitle : "خصائص الصورة",
+DlgImgInfoTab : "معلومات الصورة",
+DlgImgBtnUpload : "أرسلها للخادم",
+DlgImgURL : "موقع الصورة",
+DlgImgUpload : "رفع",
+DlgImgAlt : "الوصف",
+DlgImgWidth : "العرض",
+DlgImgHeight : "الإرتفاع",
+DlgImgLockRatio : "تناسق الحجم",
+DlgBtnResetSize : "إستعادة الحجم الأصلي",
+DlgImgBorder : "سمك الحدود",
+DlgImgHSpace : "تباعد أفقي",
+DlgImgVSpace : "تباعد عمودي",
+DlgImgAlign : "محاذاة",
+DlgImgAlignLeft : "يسار",
+DlgImgAlignAbsBottom: "أسفل النص",
+DlgImgAlignAbsMiddle: "وسط السطر",
+DlgImgAlignBaseline : "على السطر",
+DlgImgAlignBottom : "أسفل",
+DlgImgAlignMiddle : "وسط",
+DlgImgAlignRight : "يمين",
+DlgImgAlignTextTop : "أعلى النص",
+DlgImgAlignTop : "أعلى",
+DlgImgPreview : "معاينة",
+DlgImgAlertUrl : "فضلاً أكتب الموقع الذي توجد عليه هذه الصورة.",
+DlgImgLinkTab : "الرابط",
+
+// Flash Dialog
+DlgFlashTitle : "خصائص فيلم الفلاش",
+DlgFlashChkPlay : "تشغيل تلقائي",
+DlgFlashChkLoop : "تكرار",
+DlgFlashChkMenu : "تمكين قائمة فيلم الفلاش",
+DlgFlashScale : "الحجم",
+DlgFlashScaleAll : "إظهار الكل",
+DlgFlashScaleNoBorder : "بلا حدود",
+DlgFlashScaleFit : "ضبط تام",
+
+// Link Dialog
+DlgLnkWindowTitle : "إرتباط تشعبي",
+DlgLnkInfoTab : "معلومات الرابط",
+DlgLnkTargetTab : "الهدف",
+
+DlgLnkType : "نوع الربط",
+DlgLnkTypeURL : "العنوان",
+DlgLnkTypeAnchor : "مكان في هذا المستند",
+DlgLnkTypeEMail : "بريد إلكتروني",
+DlgLnkProto : "البروتوكول",
+DlgLnkProtoOther : "<أخرى>",
+DlgLnkURL : "الموقع",
+DlgLnkAnchorSel : "اختر علامة مرجعية",
+DlgLnkAnchorByName : "حسب اسم العلامة",
+DlgLnkAnchorById : "حسب تعريف العنصر",
+DlgLnkNoAnchors : "<لا يوجد علامات مرجعية في هذا المستند>",
+DlgLnkEMail : "عنوان بريد إلكتروني",
+DlgLnkEMailSubject : "موضوع الرسالة",
+DlgLnkEMailBody : "محتوى الرسالة",
+DlgLnkUpload : "رفع",
+DlgLnkBtnUpload : "أرسلها للخادم",
+
+DlgLnkTarget : "الهدف",
+DlgLnkTargetFrame : "<إطار>",
+DlgLnkTargetPopup : "<نافذة منبثقة>",
+DlgLnkTargetBlank : "إطار جديد (_blank)",
+DlgLnkTargetParent : "الإطار الأصل (_parent)",
+DlgLnkTargetSelf : "نفس الإطار (_self)",
+DlgLnkTargetTop : "صفحة كاملة (_top)",
+DlgLnkTargetFrameName : "اسم الإطار الهدف",
+DlgLnkPopWinName : "تسمية النافذة المنبثقة",
+DlgLnkPopWinFeat : "خصائص النافذة المنبثقة",
+DlgLnkPopResize : "قابلة للتحجيم",
+DlgLnkPopLocation : "شريط العنوان",
+DlgLnkPopMenu : "القوائم الرئيسية",
+DlgLnkPopScroll : "أشرطة التمرير",
+DlgLnkPopStatus : "شريط الحالة السفلي",
+DlgLnkPopToolbar : "شريط الأدوات",
+DlgLnkPopFullScrn : "ملئ الشاشة (IE)",
+DlgLnkPopDependent : "تابع (Netscape)",
+DlgLnkPopWidth : "العرض",
+DlgLnkPopHeight : "الإرتفاع",
+DlgLnkPopLeft : "التمركز لليسار",
+DlgLnkPopTop : "التمركز للأعلى",
+
+DlnLnkMsgNoUrl : "فضلاً أدخل عنوان الموقع الذي يشير إليه الرابط",
+DlnLnkMsgNoEMail : "فضلاً أدخل عنوان البريد الإلكتروني",
+DlnLnkMsgNoAnchor : "فضلاً حدد العلامة المرجعية المرغوبة",
+
+// Color Dialog
+DlgColorTitle : "اختر لوناً",
+DlgColorBtnClear : "مسح",
+DlgColorHighlight : "تحديد",
+DlgColorSelected : "إختيار",
+
+// Smiley Dialog
+DlgSmileyTitle : "إدراج إبتسامات ",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "إدراج رمز",
+
+// Table Dialog
+DlgTableTitle : "إدراج جدول",
+DlgTableRows : "صفوف",
+DlgTableColumns : "أعمدة",
+DlgTableBorder : "سمك الحدود",
+DlgTableAlign : "المحاذاة",
+DlgTableAlignNotSet : "<بدون تحديد>",
+DlgTableAlignLeft : "يسار",
+DlgTableAlignCenter : "وسط",
+DlgTableAlignRight : "يمين",
+DlgTableWidth : "العرض",
+DlgTableWidthPx : "بكسل",
+DlgTableWidthPc : "بالمئة",
+DlgTableHeight : "الإرتفاع",
+DlgTableCellSpace : "تباعد الخلايا",
+DlgTableCellPad : "المسافة البادئة",
+DlgTableCaption : "الوصف",
+DlgTableSummary : "الخلاصة",
+
+// Table Cell Dialog
+DlgCellTitle : "خصائص الخلية",
+DlgCellWidth : "العرض",
+DlgCellWidthPx : "بكسل",
+DlgCellWidthPc : "بالمئة",
+DlgCellHeight : "الإرتفاع",
+DlgCellWordWrap : "التفاف النص",
+DlgCellWordWrapNotSet : "<بدون تحديد>",
+DlgCellWordWrapYes : "نعم",
+DlgCellWordWrapNo : "لا",
+DlgCellHorAlign : "المحاذاة الأفقية",
+DlgCellHorAlignNotSet : "<بدون تحديد>",
+DlgCellHorAlignLeft : "يسار",
+DlgCellHorAlignCenter : "وسط",
+DlgCellHorAlignRight: "يمين",
+DlgCellVerAlign : "المحاذاة العمودية",
+DlgCellVerAlignNotSet : "<بدون تحديد>",
+DlgCellVerAlignTop : "أعلى",
+DlgCellVerAlignMiddle : "وسط",
+DlgCellVerAlignBottom : "أسفل",
+DlgCellVerAlignBaseline : "على السطر",
+DlgCellRowSpan : "إمتداد الصفوف",
+DlgCellCollSpan : "إمتداد الأعمدة",
+DlgCellBackColor : "لون الخلفية",
+DlgCellBorderColor : "لون الحدود",
+DlgCellBtnSelect : "حدّد...",
+
+// Find Dialog
+DlgFindTitle : "بحث",
+DlgFindFindBtn : "ابحث",
+DlgFindNotFoundMsg : "لم يتم العثور على النص المحدد.",
+
+// Replace Dialog
+DlgReplaceTitle : "إستبدال",
+DlgReplaceFindLbl : "البحث عن:",
+DlgReplaceReplaceLbl : "إستبدال بـ:",
+DlgReplaceCaseChk : "مطابقة حالة الأحرف",
+DlgReplaceReplaceBtn : "إستبدال",
+DlgReplaceReplAllBtn : "إستبدال الكل",
+DlgReplaceWordChk : "الكلمة بالكامل فقط",
+
+// Paste Operations / Dialog
+PasteErrorPaste : "الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع اللصق التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl+V).",
+PasteErrorCut : "الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع القص التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl+X).",
+PasteErrorCopy : "الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع النسخ التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl+C).",
+
+PasteAsText : "لصق كنص بسيط",
+PasteFromWord : "لصق من وورد",
+
+DlgPasteMsg2 : "الصق داخل الصندوق بإستخدام زرّي (Ctrl+V) في لوحة المفاتيح، ثم اضغط زر موافق.",
+DlgPasteIgnoreFont : "تجاهل تعريفات أسماء الخطوط",
+DlgPasteRemoveStyles : "إزالة تعريفات الأنماط",
+DlgPasteCleanBox : "نظّف محتوى الصندوق",
+
+// Color Picker
+ColorAutomatic : "تلقائي",
+ColorMoreColors : "ألوان إضافية...",
+
+// Document Properties
+DocProps : "خصائص الصفحة",
+
+// Anchor Dialog
+DlgAnchorTitle : "خصائص إشارة مرجعية",
+DlgAnchorName : "اسم الإشارة المرجعية",
+DlgAnchorErrorName : "الرجاء كتابة اسم الإشارة المرجعية",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "ليست في القاموس",
+DlgSpellChangeTo : "التغيير إلى",
+DlgSpellBtnIgnore : "تجاهل",
+DlgSpellBtnIgnoreAll : "تجاهل الكل",
+DlgSpellBtnReplace : "تغيير",
+DlgSpellBtnReplaceAll : "تغيير الكل",
+DlgSpellBtnUndo : "تراجع",
+DlgSpellNoSuggestions : "- لا توجد إقتراحات -",
+DlgSpellProgress : "جاري التدقيق إملائياً",
+DlgSpellNoMispell : "تم إكمال التدقيق الإملائي: لم يتم العثور على أي أخطاء إملائية",
+DlgSpellNoChanges : "تم إكمال التدقيق الإملائي: لم يتم تغيير أي كلمة",
+DlgSpellOneChange : "تم إكمال التدقيق الإملائي: تم تغيير كلمة واحدة فقط",
+DlgSpellManyChanges : "تم إكمال التدقيق الإملائي: تم تغيير %1 كلمات\كلمة",
+
+IeSpellDownload : "المدقق الإملائي (الإنجليزي) غير مثبّت. هل تود تحميله الآن؟",
+
+// Button Dialog
+DlgButtonText : "القيمة/التسمية",
+DlgButtonType : "نوع الزر",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "الاسم",
+DlgCheckboxValue : "القيمة",
+DlgCheckboxSelected : "محدد",
+
+// Form Dialog
+DlgFormName : "الاسم",
+DlgFormAction : "اسم الملف",
+DlgFormMethod : "الأسلوب",
+
+// Select Field Dialog
+DlgSelectName : "الاسم",
+DlgSelectValue : "القيمة",
+DlgSelectSize : "الحجم",
+DlgSelectLines : "الأسطر",
+DlgSelectChkMulti : "السماح بتحديدات متعددة",
+DlgSelectOpAvail : "الخيارات المتاحة",
+DlgSelectOpText : "النص",
+DlgSelectOpValue : "القيمة",
+DlgSelectBtnAdd : "إضافة",
+DlgSelectBtnModify : "تعديل",
+DlgSelectBtnUp : "تحريك لأعلى",
+DlgSelectBtnDown : "تحريك لأسفل",
+DlgSelectBtnSetValue : "إجعلها محددة",
+DlgSelectBtnDelete : "إزالة",
+
+// Textarea Dialog
+DlgTextareaName : "الاسم",
+DlgTextareaCols : "الأعمدة",
+DlgTextareaRows : "الصفوف",
+
+// Text Field Dialog
+DlgTextName : "الاسم",
+DlgTextValue : "القيمة",
+DlgTextCharWidth : "العرض بالأحرف",
+DlgTextMaxChars : "عدد الحروف الأقصى",
+DlgTextType : "نوع المحتوى",
+DlgTextTypeText : "نص",
+DlgTextTypePass : "كلمة مرور",
+
+// Hidden Field Dialog
+DlgHiddenName : "الاسم",
+DlgHiddenValue : "القيمة",
+
+// Bulleted List Dialog
+BulletedListProp : "خصائص التعداد النقطي",
+NumberedListProp : "خصائص التعداد الرقمي",
+DlgLstType : "النوع",
+DlgLstTypeCircle : "دائرة",
+DlgLstTypeDisc : "قرص",
+DlgLstTypeSquare : "مربع",
+DlgLstTypeNumbers : "أرقام (1، 2، 3)َ",
+DlgLstTypeLCase : "حروف صغيرة (a, b, c)َ",
+DlgLstTypeUCase : "حروف كبيرة (A, B, C)َ",
+DlgLstTypeSRoman : "ترقيم روماني صغير (i, ii, iii)َ",
+DlgLstTypeLRoman : "ترقيم روماني كبير (I, II, III)َ",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "عام",
+DlgDocBackTab : "الخلفية",
+DlgDocColorsTab : "الألوان والهوامش",
+DlgDocMetaTab : "المعرّفات الرأسية",
+
+DlgDocPageTitle : "عنوان الصفحة",
+DlgDocLangDir : "إتجاه اللغة",
+DlgDocLangDirLTR : "اليسار لليمين (LTR)",
+DlgDocLangDirRTL : "اليمين لليسار (RTL)",
+DlgDocLangCode : "رمز اللغة",
+DlgDocCharSet : "ترميز الحروف",
+DlgDocCharSetOther : "ترميز حروف آخر",
+
+DlgDocDocType : "ترويسة نوع الصفحة",
+DlgDocDocTypeOther : "ترويسة نوع صفحة أخرى",
+DlgDocIncXHTML : "تضمين إعلانات لغة XHTMLَ",
+DlgDocBgColor : "لون الخلفية",
+DlgDocBgImage : "رابط الصورة الخلفية",
+DlgDocBgNoScroll : "جعلها علامة مائية",
+DlgDocCText : "النص",
+DlgDocCLink : "الروابط",
+DlgDocCVisited : "المزارة",
+DlgDocCActive : "النشطة",
+DlgDocMargins : "هوامش الصفحة",
+DlgDocMaTop : "علوي",
+DlgDocMaLeft : "أيسر",
+DlgDocMaRight : "أيمن",
+DlgDocMaBottom : "سفلي",
+DlgDocMeIndex : "الكلمات الأساسية (مفصولة بفواصل)َ",
+DlgDocMeDescr : "وصف الصفحة",
+DlgDocMeAuthor : "الكاتب",
+DlgDocMeCopy : "المالك",
+DlgDocPreview : "معاينة",
+
+// Templates Dialog
+Templates : "القوالب",
+DlgTemplatesTitle : "قوالب المحتوى",
+DlgTemplatesSelMsg : "اختر القالب الذي تود وضعه في المحرر
(سيتم فقدان المحتوى الحالي):",
+DlgTemplatesLoading : "جاري تحميل قائمة القوالب، الرجاء الإنتظار...",
+DlgTemplatesNoTpl : "(لم يتم تعريف أي قالب)",
+
+// About Dialog
+DlgAboutAboutTab : "نبذة",
+DlgAboutBrowserInfoTab : "معلومات متصفحك",
+DlgAboutLicenseTab : "الترخيص",
+DlgAboutVersion : "الإصدار",
+DlgAboutLicense : "مرخّص بحسب قانون GNU LGPL",
+DlgAboutInfo : "لمزيد من المعلومات تفضل بزيارة"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/bg.js b/htdocs/includes/fckeditor/editor/lang/bg.js
new file mode 100644
index 00000000000..1ffd7360be2
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/bg.js
@@ -0,0 +1,486 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: bg.js
+ * Bulgarian language file.
+ *
+ * File Authors:
+ * Miroslav Ivanov (miro@primal-chaos.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Скрий панела с инструментите",
+ToolbarExpand : "Покажи панела с инструментите",
+
+// Toolbar Items and Context Menu
+Save : "Запази",
+NewPage : "Нова страница",
+Preview : "Предварителен изглед",
+Cut : "Изрежи",
+Copy : "Запамети",
+Paste : "Вмъкни",
+PasteText : "Вмъкни само текст",
+PasteWord : "Вмъкни от MS Word",
+Print : "Печат",
+SelectAll : "Селектирай всичко",
+RemoveFormat : "Изтрий форматирането",
+InsertLinkLbl : "Връзка",
+InsertLink : "Добави/Редактирай връзка",
+RemoveLink : "Изтрий връзка",
+Anchor : "Добави/Редактирай котва",
+InsertImageLbl : "Изображение",
+InsertImage : "Добави/Редактирай изображение",
+InsertFlashLbl : "Flash",
+InsertFlash : "Добави/Редактиай Flash обект",
+InsertTableLbl : "Таблица",
+InsertTable : "Добави/Редактирай таблица",
+InsertLineLbl : "Линия",
+InsertLine : "Вмъкни хоризонтална линия",
+InsertSpecialCharLbl: "Специален символ",
+InsertSpecialChar : "Вмъкни специален символ",
+InsertSmileyLbl : "Усмивка",
+InsertSmiley : "Добави усмивка",
+About : "За FCKeditor",
+Bold : "Удебелен",
+Italic : "Курсив",
+Underline : "Подчертан",
+StrikeThrough : "Зачертан",
+Subscript : "Индекс за база",
+Superscript : "Индекс за степен",
+LeftJustify : "Подравняване в ляво",
+CenterJustify : "Подравнявне в средата",
+RightJustify : "Подравняване в дясно",
+BlockJustify : "Двустранно подравняване",
+DecreaseIndent : "Намали отстъпа",
+IncreaseIndent : "Увеличи отстъпа",
+Undo : "Отмени",
+Redo : "Повтори",
+NumberedListLbl : "Нумериран списък",
+NumberedList : "Добави/Изтрий нумериран списък",
+BulletedListLbl : "Ненумериран списък",
+BulletedList : "Добави/Изтрий ненумериран списък",
+ShowTableBorders : "Покажи рамките на таблицата",
+ShowDetails : "Покажи подробности",
+Style : "Стил",
+FontFormat : "Формат",
+Font : "Шрифт",
+FontSize : "Размер",
+TextColor : "Цвят на текста",
+BGColor : "Цвят на фона",
+Source : "Код",
+Find : "Търси",
+Replace : "Замести",
+SpellCheck : "Провери правописа",
+UniversalKeyboard : "Универсална клавиатура",
+PageBreakLbl : "Нов ред",
+PageBreak : "Вмъкни нов ред",
+
+Form : "Формуляр",
+Checkbox : "Поле за отметка",
+RadioButton : "Поле за опция",
+TextField : "Текстово поле",
+Textarea : "Текстова област",
+HiddenField : "Скрито поле",
+Button : "Бутон",
+SelectionField : "Падащо меню с опции",
+ImageButton : "Бутон-изображение",
+
+FitWindow : "Maximize the editor size", //MISSING
+
+// Context Menu
+EditLink : "Редактирай връзка",
+CellCM : "Cell", //MISSING
+RowCM : "Row", //MISSING
+ColumnCM : "Column", //MISSING
+InsertRow : "Добави ред",
+DeleteRows : "Изтрий редовете",
+InsertColumn : "Добави колона",
+DeleteColumns : "Изтрий колоните",
+InsertCell : "Добави клетка",
+DeleteCells : "Изтрий клетките",
+MergeCells : "Обедини клетките",
+SplitCell : "Раздели клетката",
+TableDelete : "Изтрий таблицата",
+CellProperties : "Параметри на клетката",
+TableProperties : "Параметри на таблицата",
+ImageProperties : "Параметри на изображението",
+FlashProperties : "Параметри на Flash обекта",
+
+AnchorProp : "Параметри на котвата",
+ButtonProp : "Параметри на бутона",
+CheckboxProp : "Параметри на полето за отметка",
+HiddenFieldProp : "Параметри на скритото поле",
+RadioButtonProp : "Параметри на полето за опция",
+ImageButtonProp : "Параметри на бутона-изображение",
+TextFieldProp : "Параметри на текстовото-поле",
+SelectionFieldProp : "Параметри на падащото меню с опции",
+TextareaProp : "Параметри на текстовата област",
+FormProp : "Параметри на формуляра",
+
+FontFormats : "Нормален;Форматиран;Адрес;Заглавие 1;Заглавие 2;Заглавие 3;Заглавие 4;Заглавие 5;Заглавие 6;Параграф (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML : "Обработка на XHTML. Моля изчакайте...",
+Done : "Готово",
+PasteWordConfirm : "Текстът, който искате да вмъкнете е копиран от MS Word. Желаете ли да бъде изчистен преди вмъкването?",
+NotCompatiblePaste : "Тази операция изисква MS Internet Explorer версия 5.5 или по-висока. Желаете ли да вмъкнете запаметеното без изчистване?",
+UnknownToolbarItem : "Непознат инструмент \"%1\"",
+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
+
+// Dialogs
+DlgBtnOK : "ОК",
+DlgBtnCancel : "Отказ",
+DlgBtnClose : "Затвори",
+DlgBtnBrowseServer : "Разгледай сървъра",
+DlgAdvancedTag : "Подробности...",
+DlgOpOther : "<Друго>",
+DlgInfoTab : "Информация",
+DlgAlertUrl : "Моля, въведете пълния път (URL)",
+
+// General Dialogs Labels
+DlgGenNotSet : "<не е настроен>",
+DlgGenId : "Идентификатор",
+DlgGenLangDir : "посока на речта",
+DlgGenLangDirLtr : "От ляво на дясно",
+DlgGenLangDirRtl : "От дясно на ляво",
+DlgGenLangCode : "Код на езика",
+DlgGenAccessKey : "Бърз клавиш",
+DlgGenName : "Име",
+DlgGenTabIndex : "Ред на достъп",
+DlgGenLongDescr : "Описание на връзката",
+DlgGenClass : "Клас от стиловите таблици",
+DlgGenTitle : "Препоръчително заглавие",
+DlgGenContType : "Препоръчителен тип на съдържанието",
+DlgGenLinkCharset : "Тип на свързания ресурс",
+DlgGenStyle : "Стил",
+
+// Image Dialog
+DlgImgTitle : "Параметри на изображението",
+DlgImgInfoTab : "Информация за изображението",
+DlgImgBtnUpload : "Прати към сървъра",
+DlgImgURL : "Пълен път (URL)",
+DlgImgUpload : "Качи",
+DlgImgAlt : "Алтернативен текст",
+DlgImgWidth : "Ширина",
+DlgImgHeight : "Височина",
+DlgImgLockRatio : "Запази пропорцията",
+DlgBtnResetSize : "Възстанови размера",
+DlgImgBorder : "Рамка",
+DlgImgHSpace : "Хоризонтален отстъп",
+DlgImgVSpace : "Вертикален отстъп",
+DlgImgAlign : "Подравняване",
+DlgImgAlignLeft : "Ляво",
+DlgImgAlignAbsBottom: "Най-долу",
+DlgImgAlignAbsMiddle: "Точно по средата",
+DlgImgAlignBaseline : "По базовата линия",
+DlgImgAlignBottom : "Долу",
+DlgImgAlignMiddle : "По средата",
+DlgImgAlignRight : "Дясно",
+DlgImgAlignTextTop : "Върху текста",
+DlgImgAlignTop : "Отгоре",
+DlgImgPreview : "Изглед",
+DlgImgAlertUrl : "Моля, въведете пълния път до изображението",
+DlgImgLinkTab : "Връзка",
+
+// Flash Dialog
+DlgFlashTitle : "Параметри на Flash обекта",
+DlgFlashChkPlay : "Автоматично стартиране",
+DlgFlashChkLoop : "Ново стартиране след завършването",
+DlgFlashChkMenu : "Разрешено Flash меню",
+DlgFlashScale : "Оразмеряване",
+DlgFlashScaleAll : "Покажи целия обект",
+DlgFlashScaleNoBorder : "Без рамка",
+DlgFlashScaleFit : "Според мястото",
+
+// Link Dialog
+DlgLnkWindowTitle : "Връзка",
+DlgLnkInfoTab : "Информация за връзката",
+DlgLnkTargetTab : "Цел",
+
+DlgLnkType : "Вид на връзката",
+DlgLnkTypeURL : "Пълен път (URL)",
+DlgLnkTypeAnchor : "Котва в текущата страница",
+DlgLnkTypeEMail : "Е-поща",
+DlgLnkProto : "Протокол",
+DlgLnkProtoOther : "<друго>",
+DlgLnkURL : "Пълен път (URL)",
+DlgLnkAnchorSel : "Изберете котва",
+DlgLnkAnchorByName : "По име на котвата",
+DlgLnkAnchorById : "По идентификатор на елемент",
+DlgLnkNoAnchors : "<Няма котви в текущия документ>",
+DlgLnkEMail : "Адрес за е-поща",
+DlgLnkEMailSubject : "Тема на писмото",
+DlgLnkEMailBody : "Текст на писмото",
+DlgLnkUpload : "Качи",
+DlgLnkBtnUpload : "Прати на сървъра",
+
+DlgLnkTarget : "Цел",
+DlgLnkTargetFrame : "<рамка>",
+DlgLnkTargetPopup : "<дъщерен прозорец>",
+DlgLnkTargetBlank : "Нов прозорец (_blank)",
+DlgLnkTargetParent : "Родителски прозорец (_parent)",
+DlgLnkTargetSelf : "Активния прозорец (_self)",
+DlgLnkTargetTop : "Целия прозорец (_top)",
+DlgLnkTargetFrameName : "Име на целевия прозорец",
+DlgLnkPopWinName : "Име на дъщерния прозорец",
+DlgLnkPopWinFeat : "Параметри на дъщерния прозорец",
+DlgLnkPopResize : "С променливи размери",
+DlgLnkPopLocation : "Поле за адрес",
+DlgLnkPopMenu : "Меню",
+DlgLnkPopScroll : "Плъзгач",
+DlgLnkPopStatus : "Поле за статус",
+DlgLnkPopToolbar : "Панел с бутони",
+DlgLnkPopFullScrn : "Голям екран (MS IE)",
+DlgLnkPopDependent : "Зависим (Netscape)",
+DlgLnkPopWidth : "Ширина",
+DlgLnkPopHeight : "Височина",
+DlgLnkPopLeft : "Координати - X",
+DlgLnkPopTop : "Координати - Y",
+
+DlnLnkMsgNoUrl : "Моля, напишете пълния път (URL)",
+DlnLnkMsgNoEMail : "Моля, напишете адреса за е-поща",
+DlnLnkMsgNoAnchor : "Моля, изберете котва",
+
+// Color Dialog
+DlgColorTitle : "Изберете цвят",
+DlgColorBtnClear : "Изчисти",
+DlgColorHighlight : "Текущ",
+DlgColorSelected : "Избран",
+
+// Smiley Dialog
+DlgSmileyTitle : "Добави усмивка",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Изберете специален символ",
+
+// Table Dialog
+DlgTableTitle : "Параметри на таблицата",
+DlgTableRows : "Редове",
+DlgTableColumns : "Колони",
+DlgTableBorder : "Размер на рамката",
+DlgTableAlign : "Подравняване",
+DlgTableAlignNotSet : "<Не е избрано>",
+DlgTableAlignLeft : "Ляво",
+DlgTableAlignCenter : "Център",
+DlgTableAlignRight : "Дясно",
+DlgTableWidth : "Ширина",
+DlgTableWidthPx : "пиксели",
+DlgTableWidthPc : "проценти",
+DlgTableHeight : "Височина",
+DlgTableCellSpace : "Разстояние между клетките",
+DlgTableCellPad : "Отстъп на съдържанието в клетките",
+DlgTableCaption : "Заглавие",
+DlgTableSummary : "Резюме",
+
+// Table Cell Dialog
+DlgCellTitle : "Параметри на клетката",
+DlgCellWidth : "Ширина",
+DlgCellWidthPx : "пиксели",
+DlgCellWidthPc : "проценти",
+DlgCellHeight : "Височина",
+DlgCellWordWrap : "пренасяне на нов ред",
+DlgCellWordWrapNotSet : "<Не е настроено>",
+DlgCellWordWrapYes : "Да",
+DlgCellWordWrapNo : "не",
+DlgCellHorAlign : "Хоризонтално подравняване",
+DlgCellHorAlignNotSet : "<Не е настроено>",
+DlgCellHorAlignLeft : "Ляво",
+DlgCellHorAlignCenter : "Център",
+DlgCellHorAlignRight: "Дясно",
+DlgCellVerAlign : "Вертикално подравняване",
+DlgCellVerAlignNotSet : "<Не е настроено>",
+DlgCellVerAlignTop : "Горе",
+DlgCellVerAlignMiddle : "По средата",
+DlgCellVerAlignBottom : "Долу",
+DlgCellVerAlignBaseline : "По базовата линия",
+DlgCellRowSpan : "повече от един ред",
+DlgCellCollSpan : "повече от една колона",
+DlgCellBackColor : "фонов цвят",
+DlgCellBorderColor : "цвят на рамката",
+DlgCellBtnSelect : "Изберете...",
+
+// Find Dialog
+DlgFindTitle : "Търси",
+DlgFindFindBtn : "Търси",
+DlgFindNotFoundMsg : "Указания текст не беше намерен.",
+
+// Replace Dialog
+DlgReplaceTitle : "Замести",
+DlgReplaceFindLbl : "Търси:",
+DlgReplaceReplaceLbl : "Замести с:",
+DlgReplaceCaseChk : "Със същия регистър",
+DlgReplaceReplaceBtn : "Замести",
+DlgReplaceReplAllBtn : "Замести всички",
+DlgReplaceWordChk : "Търси същата дума",
+
+// Paste Operations / Dialog
+PasteErrorPaste : "Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни вмъкването. За целта използвайте клавиатурата (Ctrl+V).",
+PasteErrorCut : "Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни изрязването. За целта използвайте клавиатурата (Ctrl+X).",
+PasteErrorCopy : "Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни запаметяването. За целта използвайте клавиатурата (Ctrl+C).",
+
+PasteAsText : "Вмъкни като чист текст",
+PasteFromWord : "Вмъкни от MS Word",
+
+DlgPasteMsg2 : "Вмъкнете тук съдъжанието с клавиатуарата (Ctrl+V) и натиснете OK.",
+DlgPasteIgnoreFont : "Игнорирай шрифтовите дефиниции",
+DlgPasteRemoveStyles : "Изтрий стиловите дефиниции",
+DlgPasteCleanBox : "Изчисти",
+
+// Color Picker
+ColorAutomatic : "По подразбиране",
+ColorMoreColors : "Други цветове...",
+
+// Document Properties
+DocProps : "Параметри на документа",
+
+// Anchor Dialog
+DlgAnchorTitle : "Параметри на котвата",
+DlgAnchorName : "Име на котвата",
+DlgAnchorErrorName : "Моля, въведете име на котвата",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Липсва в речника",
+DlgSpellChangeTo : "Промени на",
+DlgSpellBtnIgnore : "Игнорирай",
+DlgSpellBtnIgnoreAll : "Игнорирай всички",
+DlgSpellBtnReplace : "Замести",
+DlgSpellBtnReplaceAll : "Замести всички",
+DlgSpellBtnUndo : "Отмени",
+DlgSpellNoSuggestions : "- Няма предложения -",
+DlgSpellProgress : "Извършване на проверката за правопис...",
+DlgSpellNoMispell : "Проверката за правопис завършена: не са открити правописни грешки",
+DlgSpellNoChanges : "Проверката за правопис завършена: няма променени думи",
+DlgSpellOneChange : "Проверката за правопис завършена: една дума е променена",
+DlgSpellManyChanges : "Проверката за правопис завършена: %1 думи са променени",
+
+IeSpellDownload : "Инструментът за проверка на правопис не е инсталиран. Желаете ли да го инсталирате ?",
+
+// Button Dialog
+DlgButtonText : "Текст (Стойност)",
+DlgButtonType : "Тип",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Име",
+DlgCheckboxValue : "Стойност",
+DlgCheckboxSelected : "Отметнато",
+
+// Form Dialog
+DlgFormName : "Име",
+DlgFormAction : "Действие",
+DlgFormMethod : "Метод",
+
+// Select Field Dialog
+DlgSelectName : "Име",
+DlgSelectValue : "Стойност",
+DlgSelectSize : "Размер",
+DlgSelectLines : "линии",
+DlgSelectChkMulti : "Разрешено множествено селектиране",
+DlgSelectOpAvail : "Възможни опции",
+DlgSelectOpText : "Текст",
+DlgSelectOpValue : "Стойност",
+DlgSelectBtnAdd : "Добави",
+DlgSelectBtnModify : "Промени",
+DlgSelectBtnUp : "Нагоре",
+DlgSelectBtnDown : "Надолу",
+DlgSelectBtnSetValue : "Настрой като избрана стойност",
+DlgSelectBtnDelete : "Изтрий",
+
+// Textarea Dialog
+DlgTextareaName : "Име",
+DlgTextareaCols : "Колони",
+DlgTextareaRows : "Редове",
+
+// Text Field Dialog
+DlgTextName : "Име",
+DlgTextValue : "Стойност",
+DlgTextCharWidth : "Ширина на символите",
+DlgTextMaxChars : "Максимум символи",
+DlgTextType : "Тип",
+DlgTextTypeText : "Текст",
+DlgTextTypePass : "Парола",
+
+// Hidden Field Dialog
+DlgHiddenName : "Име",
+DlgHiddenValue : "Стойност",
+
+// Bulleted List Dialog
+BulletedListProp : "Параметри на ненумерирания списък",
+NumberedListProp : "Параметри на нумерирания списък",
+DlgLstType : "Тип",
+DlgLstTypeCircle : "Окръжност",
+DlgLstTypeDisc : "Кръг",
+DlgLstTypeSquare : "Квадрат",
+DlgLstTypeNumbers : "Числа (1, 2, 3)",
+DlgLstTypeLCase : "Малки букви (a, b, c)",
+DlgLstTypeUCase : "Големи букви (A, B, C)",
+DlgLstTypeSRoman : "Малки римски числа (i, ii, iii)",
+DlgLstTypeLRoman : "Големи римски числа (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "Общи",
+DlgDocBackTab : "Фон",
+DlgDocColorsTab : "Цветове и отстъпи",
+DlgDocMetaTab : "Мета данни",
+
+DlgDocPageTitle : "Заглавие на страницата",
+DlgDocLangDir : "Посока на речта",
+DlgDocLangDirLTR : "От ляво на дясно",
+DlgDocLangDirRTL : "От дясно на ляво",
+DlgDocLangCode : "Код на езика",
+DlgDocCharSet : "Кодиране на символите",
+DlgDocCharSetOther : "Друго кодиране на символите",
+
+DlgDocDocType : "Тип на документа",
+DlgDocDocTypeOther : "Друг тип на документа",
+DlgDocIncXHTML : "Включи XHTML декларация",
+DlgDocBgColor : "Цвят на фона",
+DlgDocBgImage : "Пълен път до фоновото изображение",
+DlgDocBgNoScroll : "Не-повтарящо се фоново изображение",
+DlgDocCText : "Текст",
+DlgDocCLink : "Връзка",
+DlgDocCVisited : "Посетена връзка",
+DlgDocCActive : "Активна връзка",
+DlgDocMargins : "Отстъпи на страницата",
+DlgDocMaTop : "Горе",
+DlgDocMaLeft : "Ляво",
+DlgDocMaRight : "Дясно",
+DlgDocMaBottom : "Долу",
+DlgDocMeIndex : "Ключови думи за документа (разделени със запетаи)",
+DlgDocMeDescr : "Описание на документа",
+DlgDocMeAuthor : "Автор",
+DlgDocMeCopy : "Авторски права",
+DlgDocPreview : "Изглед",
+
+// Templates Dialog
+Templates : "Шаблони",
+DlgTemplatesTitle : "Шаблони",
+DlgTemplatesSelMsg : "Изберете шаблон
(текущото съдържание на редактора ще бъде загубено):",
+DlgTemplatesLoading : "Зареждане на списъка с шаблоните. Моля изчакайте...",
+DlgTemplatesNoTpl : "(Няма дефинирани шаблони)",
+
+// About Dialog
+DlgAboutAboutTab : "За",
+DlgAboutBrowserInfoTab : "Информация за браузъра",
+DlgAboutLicenseTab : "License", //MISSING
+DlgAboutVersion : "версия",
+DlgAboutLicense : "Лиценз по условията на GNU Lesser General Public License",
+DlgAboutInfo : "За повече информация посетете"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/bn.js b/htdocs/includes/fckeditor/editor/lang/bn.js
new file mode 100644
index 00000000000..696e2537ab6
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/bn.js
@@ -0,0 +1,486 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: bn.js
+ * Bengali/Bangla language file.
+ *
+ * File Authors:
+ * Richard Walledge (darkdoctrine@hotmail.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "টূলবার সিমটাযেं",
+ToolbarExpand : "টূলবার কা িস্তার করেं",
+
+// Toolbar Items and Context Menu
+Save : "সে",
+NewPage : "নযা পেজ",
+Preview : "প্রী্যূ",
+Cut : "কট",
+Copy : "কপী",
+Paste : "পেস্ট",
+PasteText : "পেস্ট (সাদা টক্স্ট)",
+PasteWord : "পেস্ট (র্ড সে)",
+Print : "প্রিন্ট",
+SelectAll : "সব সলক্ট করেं",
+RemoveFormat : "র্মৈট হটাযেं",
+InsertLinkLbl : "লিंক",
+InsertLink : "লিंক ইন্সর্ট/সंপাদন",
+RemoveLink : "লিंক হটাযেं",
+Anchor : "ঐंকর ইন্সর্ট/সंপাদন",
+InsertImageLbl : "তস্ীর",
+InsertImage : "তস্ীর ইন্সর্ট/সंপাদন",
+InsertFlashLbl : "্লৈশ",
+InsertFlash : "্লৈশ ইন্সর্ট/সंপাদন",
+InsertTableLbl : "টেবল",
+InsertTable : "টেবল ইন্সর্ট/সंপাদন",
+InsertLineLbl : "রেখা",
+InsertLine : "হরিন্টল রেখা ইন্সর্ট করেं",
+InsertSpecialCharLbl: "িশেষ করক্টর",
+InsertSpecialChar : "িশেষ করক্টর ইন্সর্ট করেं",
+InsertSmileyLbl : "স্মাইলী",
+InsertSmiley : "স্মাইলী ইন্সর্ট করেं",
+About : "FCKeditor কে বারে মেं",
+Bold : "বোল্ড",
+Italic : "ইটৈলিক",
+Underline : "রেখাंকণ",
+StrikeThrough : "স্ট্রাইক থ্রূ",
+Subscript : "অধোলেখ",
+Superscript : "অভিলেখ",
+LeftJustify : "বাযীं তরফ",
+CenterJustify : "বীচ মেं",
+RightJustify : "দাযীं তরফ",
+BlockJustify : "ব্লক জস্টীাঈ",
+DecreaseIndent : "ইন্ডন্ট কম করেं",
+IncreaseIndent : "ইন্ডন্ট বঢ়াযেं",
+Undo : "অন্ডূ",
+Redo : "রীডূ",
+NumberedListLbl : "অंকীয সূচী",
+NumberedList : "অंকীয সূচী ইন্সর্ট/সंপাদন",
+BulletedListLbl : "বুলট সূচী",
+BulletedList : "বুলট সূচী ইন্সর্ট/সंপাদন",
+ShowTableBorders : "টেবল বর্ডরযেं দিখাযেं",
+ShowDetails : "জ্যাদা দিখাযেं",
+Style : "স্টাইল",
+FontFormat : "র্মৈট",
+Font : "ন্ট",
+FontSize : "সাই",
+TextColor : "টেক্স্ট রंগ",
+BGColor : "বৈক্গ্রাউন্ড রंগ",
+Source : "সোর্স",
+Find : "খোজেं",
+Replace : "রীপ্লেস",
+SpellCheck : "র্তনী (স্পেলিंগ) জাँচ",
+UniversalKeyboard : "যূনীর্সল কীবোর্ড",
+PageBreakLbl : "পেজ ব্রেক",
+PageBreak : "পেজ ব্রেক ইন্সর্ট্ করেं",
+
+Form : "র্ম",
+Checkbox : "চক বক্স",
+RadioButton : "রেডিও বটন",
+TextField : "টেক্স্ট ীল্ড",
+Textarea : "টেক্স্ট এরিযা",
+HiddenField : "গুপ্ত ীল্ড",
+Button : "বটন",
+SelectionField : "চুনা ীল্ড",
+ImageButton : "তস্ীর বটন",
+
+FitWindow : "মকসিমিসে সি",
+
+// Context Menu
+EditLink : "লিंক সंপাদন",
+CellCM : "সল",
+RowCM : "পंক্তি",
+ColumnCM : "কলম",
+InsertRow : "পंক্তি ইন্সর্ট করেं",
+DeleteRows : "পंক্তিযাँ ডিলীট করেं",
+InsertColumn : "কলম ইন্সর্ট করেं",
+DeleteColumns : "কলম ডিলীট করেं",
+InsertCell : "সল ইন্সর্ট করেं",
+DeleteCells : "সল ডিলীট করেं",
+MergeCells : "সল মিলাযেं",
+SplitCell : "সল অলগ করেं",
+TableDelete : "টেবল ডিলীট করেं",
+CellProperties : "সল প্রপর্টী",
+TableProperties : "টেবল প্রপর্টী",
+ImageProperties : "তস্ীর প্রপর্টী",
+FlashProperties : "্লৈশ প্রপর্টী",
+
+AnchorProp : "ঐंকর প্রপর্টী",
+ButtonProp : "বটন প্রপর্টী",
+CheckboxProp : "চক বক্স প্রপর্টী",
+HiddenFieldProp : "গুপ্ত ীল্ড প্রপর্টী",
+RadioButtonProp : "রেডিও বটন প্রপর্টী",
+ImageButtonProp : "তস্ীর বটন প্রপর্টী",
+TextFieldProp : "টেক্স্ট ীল্ড প্রপর্টী",
+SelectionFieldProp : "চুনা ীল্ড প্রপর্টী",
+TextareaProp : "টেক্স্ত এরিযা প্রপর্টী",
+FormProp : "র্ম প্রপর্টী",
+
+FontFormats : "সাধারণ;র্মৈটড;পতা;শীর্ষক 1;শীর্ষক 2;শীর্ষক 3;শীর্ষক4;শীর্ষক 5;শীর্ষক 6;শীর্ষক (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML : "XHTML প্রোসস হো রহা হৈ রা হরেं...",
+Done : "পূরা হুআ",
+PasteWordConfirm : "আপ জো টেক্স্ট পেস্ট করনা চাহতে হৈं, হ র্ড সে কপীকিযা হুআ লগ রহা হৈ ক্যা পেস্ট করনে সে পহলে আপ ইসে সা করনা চাহেंগে?",
+NotCompatiblePaste : "যহ কমাंড ইন্টরনট এক্স্প্লোরর(Internet Explorer)5.5 যা উসকে বাদ কে র্ন কে লিএ হী উপলব্ধ হৈ ক্যা আপ বিনা সা কিএপেস্ট করনা চাহেंগে?",
+UnknownToolbarItem : "অনজান টূলবার আইটম \"%1\"",
+UnknownCommand : "অনজান কমান্ড \"%1\"",
+NotImplemented : "কমান্ড ইম্প্লীমন্ট নহীं কিযা গযা হৈ",
+UnknownToolbarSet : "টূলবার সট \"%1\" উপলব্ধ নহীं হৈ",
+NoActiveX : "আপকে ব্রাউর্ কী সুরক্শা সেটিंগ্স্ এডিটর কী কুছ্ ীচরোं কোসীমিত কর্ সকতী হৈं ক্রিপযা \"Run ActiveX controls and plug-ins\"িকল্প কো এনেবল করেं. আপকো এরর্স্ ঔর গাযব ীচর্স্ কা অনুভ হো সকতাহৈ",
+BrowseServerBlocked : "রিসোর্সে ব্রাউর্ নহীं খোলা জা সকা ক্রিপযা সভীপপ্-অপ্ ব্লকর্স্ কো ডিসেবল করেं",
+DialogBlocked : "ডাযলগ িন্ডো নহীं খোলা জা সকা ক্রিপযা সভী পপ্-অপ্ব্লকর্স্ কো ডিসেবল করেं",
+
+// Dialogs
+DlgBtnOK : " ীক হৈ",
+DlgBtnCancel : "রদ্দ করেं",
+DlgBtnClose : "বন্দ করেं",
+DlgBtnBrowseServer : "সর্র ব্রাউ করেं",
+DlgAdvancedTag : "ড্ান্স্ড",
+DlgOpOther : "<অন্য>",
+DlgInfoTab : "সূচনা",
+DlgAlertUrl : "URL ইন্সর্ট করেं",
+
+// General Dialogs Labels
+DlgGenNotSet : "<সট নহীं>",
+DlgGenId : "Id",
+DlgGenLangDir : "ভাষা লিখনে কী দিশা",
+DlgGenLangDirLtr : "বাযেं সে দাযেं (LTR)",
+DlgGenLangDirRtl : "দাযেं সে বাযেं (RTL)",
+DlgGenLangCode : "ভাষা কোড",
+DlgGenAccessKey : "ক্সস কী",
+DlgGenName : "নাম",
+DlgGenTabIndex : "টৈব ইন্ডক্স",
+DlgGenLongDescr : "অধিক িরণ কে লিএ URL",
+DlgGenClass : "স্টাইল-শীট ক্লাস",
+DlgGenTitle : "পরামর্শ শীর্শক",
+DlgGenContType : "পরামর্শ কন্টন্ট প্রকার",
+DlgGenLinkCharset : "লিंক রিসোর্স করক্টর সট",
+DlgGenStyle : "স্টাইল",
+
+// Image Dialog
+DlgImgTitle : "তস্ীর প্রপর্টী",
+DlgImgInfoTab : "তস্ীর কী জানকারী",
+DlgImgBtnUpload : "ইসে সর্র কো ভেজেं",
+DlgImgURL : "URL",
+DlgImgUpload : "অপলোড",
+DlgImgAlt : "ৈকল্পিক টেক্স্ট",
+DlgImgWidth : "চৌড়াঈ",
+DlgImgHeight : "ঊँচাঈ",
+DlgImgLockRatio : "লক অনুপাত",
+DlgBtnResetSize : "রীসট সাই",
+DlgImgBorder : "বর্ডর",
+DlgImgHSpace : "হরিন্টল স্পেস",
+DlgImgVSpace : "র্টিকল স্পেস",
+DlgImgAlign : "লাইন",
+DlgImgAlignLeft : "দাযেं",
+DlgImgAlignAbsBottom: "Abs নীচে",
+DlgImgAlignAbsMiddle: "Abs ঊপর",
+DlgImgAlignBaseline : "মূল রেখা",
+DlgImgAlignBottom : "নীচে",
+DlgImgAlignMiddle : "মধ্য",
+DlgImgAlignRight : "দাযেं",
+DlgImgAlignTextTop : "টেক্স্ট ঊপর",
+DlgImgAlignTop : "ঊপর",
+DlgImgPreview : "প্রী্যূ",
+DlgImgAlertUrl : "তস্ীর কা URL টাইপ করেं ",
+DlgImgLinkTab : "লিंক",
+
+// Flash Dialog
+DlgFlashTitle : "্লৈশ প্রপর্টী",
+DlgFlashChkPlay : "টো প্লে",
+DlgFlashChkLoop : "লূপ",
+DlgFlashChkMenu : "্লৈশ মন্যূ কা প্রযোগ করেं",
+DlgFlashScale : "স্কেল",
+DlgFlashScaleAll : "সভী দিখাযেं",
+DlgFlashScaleNoBorder : "কোঈ বর্ডর নহীं",
+DlgFlashScaleFit : "বিল্কুল িট",
+
+// Link Dialog
+DlgLnkWindowTitle : "লিंক",
+DlgLnkInfoTab : "লিंক ",
+DlgLnkTargetTab : "টার্গেট",
+
+DlgLnkType : "লিंক প্রকার",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "ইস পেজ কা ঐंকর",
+DlgLnkTypeEMail : "ঈ-মেল",
+DlgLnkProto : "প্রোটোকল",
+DlgLnkProtoOther : "<অন্য>",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "ঐंকর চুনেं",
+DlgLnkAnchorByName : "ঐंকর নাম সে",
+DlgLnkAnchorById : "লীমন্ট Id সে",
+DlgLnkNoAnchors : "<ডক্যূমন্ট মেं ঐंকর্স কী সंখ্যা>",
+DlgLnkEMail : "ঈ-মেল পতা",
+DlgLnkEMailSubject : "সंদেশ িষয",
+DlgLnkEMailBody : "সंদেশ",
+DlgLnkUpload : "অপলোড",
+DlgLnkBtnUpload : "ইসে সর্র কো ভেজেं",
+
+DlgLnkTarget : "টার্গেট",
+DlgLnkTargetFrame : "<্রেম>",
+DlgLnkTargetPopup : "<পপ-অপ িন্ডো>",
+DlgLnkTargetBlank : "নযা িন্ডো (_blank)",
+DlgLnkTargetParent : "মূল িন্ডো (_parent)",
+DlgLnkTargetSelf : "ইসী িন্ডো (_self)",
+DlgLnkTargetTop : "শীর্ষ িন্ডো (_top)",
+DlgLnkTargetFrameName : "টার্গেট ্রেম কা নাম",
+DlgLnkPopWinName : "পপ-অপ িন্ডো কা নাম",
+DlgLnkPopWinFeat : "পপ-অপ িন্ডো ীচর্স",
+DlgLnkPopResize : "সাই বদলা জা সকতা হৈ",
+DlgLnkPopLocation : "লোকেশন বার",
+DlgLnkPopMenu : "মন্যূ বার",
+DlgLnkPopScroll : "স্ক্রল বার",
+DlgLnkPopStatus : "স্টেটস বার",
+DlgLnkPopToolbar : "টূল বার",
+DlgLnkPopFullScrn : "ুল স্ক্রীন (IE)",
+DlgLnkPopDependent : "ডিপেন্ডন্ট (Netscape)",
+DlgLnkPopWidth : "চৌড়াঈ",
+DlgLnkPopHeight : "ঊँচাঈ",
+DlgLnkPopLeft : "বাযীं তরফ",
+DlgLnkPopTop : "দাযীं তরফ",
+
+DlnLnkMsgNoUrl : "লিंক URL টাইপ করেं",
+DlnLnkMsgNoEMail : "ঈ-মেল পতা টাইপ করেं",
+DlnLnkMsgNoAnchor : "ঐंকর চুনেं",
+
+// Color Dialog
+DlgColorTitle : "রंগ চুনেं",
+DlgColorBtnClear : "সা করেं",
+DlgColorHighlight : "হাইলাইট",
+DlgColorSelected : "সলক্টড",
+
+// Smiley Dialog
+DlgSmileyTitle : "স্মাইলী ইন্সর্ট করেं",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "িশেষ করক্টর চুনেं",
+
+// Table Dialog
+DlgTableTitle : "টেবল প্রপর্টী",
+DlgTableRows : "পंক্তিযাँ",
+DlgTableColumns : "কলম",
+DlgTableBorder : "বর্ডর সাই",
+DlgTableAlign : "লাইন্মন্ট",
+DlgTableAlignNotSet : "<সট নহীं>",
+DlgTableAlignLeft : "দাযেं",
+DlgTableAlignCenter : "বীচ মেं",
+DlgTableAlignRight : "বাযেं",
+DlgTableWidth : "চৌড়াঈ",
+DlgTableWidthPx : "পিক্সল",
+DlgTableWidthPc : "প্রতিশত",
+DlgTableHeight : "ঊँচাঈ",
+DlgTableCellSpace : "সল অंতর",
+DlgTableCellPad : "সল পৈডিंগ",
+DlgTableCaption : "শীর্ষক",
+DlgTableSummary : "সারাंশ",
+
+// Table Cell Dialog
+DlgCellTitle : "সল প্রপর্টী",
+DlgCellWidth : "চৌড়াঈ",
+DlgCellWidthPx : "পিক্সল",
+DlgCellWidthPc : "প্রতিশত",
+DlgCellHeight : "ঊँচাঈ",
+DlgCellWordWrap : "র্ড রৈপ",
+DlgCellWordWrapNotSet : "<সট নহীं>",
+DlgCellWordWrapYes : "হাँ",
+DlgCellWordWrapNo : "নহীं",
+DlgCellHorAlign : "হরিন্টল লাইন্মন্ট",
+DlgCellHorAlignNotSet : "<সট নহীं>",
+DlgCellHorAlignLeft : "দাযেं",
+DlgCellHorAlignCenter : "বীচ মেं",
+DlgCellHorAlignRight: "বাযেं",
+DlgCellVerAlign : "র্টিকল লাইন্মন্ট",
+DlgCellVerAlignNotSet : "<সট নহীं>",
+DlgCellVerAlignTop : "ঊপর",
+DlgCellVerAlignMiddle : "মধ্য",
+DlgCellVerAlignBottom : "নীচে",
+DlgCellVerAlignBaseline : "মূলরেখা",
+DlgCellRowSpan : "পंক্তি স্পৈন",
+DlgCellCollSpan : "কলম স্পৈন",
+DlgCellBackColor : "বৈক্গ্রাউন্ড রंগ",
+DlgCellBorderColor : "বর্ডর কা রंগ",
+DlgCellBtnSelect : "চুনেं...",
+
+// Find Dialog
+DlgFindTitle : "খোজেं",
+DlgFindFindBtn : "খোজেं",
+DlgFindNotFoundMsg : "আপকে দ্ারা দিযা গযা টেক্স্ট নহীं মিলা",
+
+// Replace Dialog
+DlgReplaceTitle : "রিপ্লেস",
+DlgReplaceFindLbl : "যহ খোজেं:",
+DlgReplaceReplaceLbl : "ইসসে রিপ্লেস করেं:",
+DlgReplaceCaseChk : "কেস মিলাযেं",
+DlgReplaceReplaceBtn : "রিপ্লেস",
+DlgReplaceReplAllBtn : "সভী রিপ্লেস করেं",
+DlgReplaceWordChk : "পূরা শব্দ মিলাযেं",
+
+// Paste Operations / Dialog
+PasteErrorPaste : "আপকে ব্রাউর কী সুরক্ষা সটিন্গ্স নে পেস্ট করনে কী অনুমতি নহীं প্রদান কী হৈ (Ctrl+V) কা প্রযোগ করেं",
+PasteErrorCut : "আপকে ব্রাউর কী সুরক্ষা সটিন্গ্স নে কট করনে কী অনুমতি নহীं প্রদান কী হৈ (Ctrl+X) কা প্রযোগ করেं",
+PasteErrorCopy : "আপকে ব্রাআউর কী সুরক্ষা সটিন্গ্স নে কপী করনে কী অনুমতি নহীं প্রদান কী হৈ (Ctrl+C) কা প্রযোগ করেं",
+
+PasteAsText : "পেস্ট (সাদা টক্স্ট)",
+PasteFromWord : "পেস্ট (র্ড সে)",
+
+DlgPasteMsg2 : "Ctrl+V কা প্রযোগ করকে পেস্ট করেं ঔর ীক হৈ করেं.",
+DlgPasteIgnoreFont : "ন্ট পরিভাষা নিকালেं",
+DlgPasteRemoveStyles : "স্টাইল পরিভাষা নিকালেं",
+DlgPasteCleanBox : "বক্স সা করেं",
+
+// Color Picker
+ColorAutomatic : "টোমৈটিক",
+ColorMoreColors : "ঔর রंগ...",
+
+// Document Properties
+DocProps : "ডক্যূমন্ট প্রপর্টী",
+
+// Anchor Dialog
+DlgAnchorTitle : "ঐंকর প্রপর্টী",
+DlgAnchorName : "ঐंকর কা নাম",
+DlgAnchorErrorName : "ঐंকর কা নাম টাইপ করেं",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "শব্দকোশ মেं নহীं",
+DlgSpellChangeTo : "ইসমেं বদলেं",
+DlgSpellBtnIgnore : "ইগ্নোর",
+DlgSpellBtnIgnoreAll : "সভী ইগ্নোর করেं",
+DlgSpellBtnReplace : "রিপ্লেস",
+DlgSpellBtnReplaceAll : "সভী রিপ্লেস করেं",
+DlgSpellBtnUndo : "অন্ডূ",
+DlgSpellNoSuggestions : "- কোঈ সুঝা নহীं -",
+DlgSpellProgress : "র্তনী কী জাँচ (স্পল-চক) জারী হৈ...",
+DlgSpellNoMispell : "র্তনী কী জাँচ : কোঈ গলত র্তনী (স্পলিंগ) নহীं পাঈ গঈ",
+DlgSpellNoChanges : "র্তনী কী জাँচ :কোঈ শব্দ নহীं বদলা গযা",
+DlgSpellOneChange : "র্তনী কী জাँচ : এক শব্দ বদলা গযা",
+DlgSpellManyChanges : "র্তনী কী জাँচ : %1 শব্দ বদলে গযে",
+
+IeSpellDownload : "স্পল-চকর ইন্স্টাল নহীं কিযা গযা হৈ ক্যা আপ ইসে ডাউনলোড করনা চাহেंগে?",
+
+// Button Dialog
+DlgButtonText : "টেক্স্ট (ৈল্যূ)",
+DlgButtonType : "প্রকার",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "নাম",
+DlgCheckboxValue : "ৈল্যূ",
+DlgCheckboxSelected : "সলক্টড",
+
+// Form Dialog
+DlgFormName : "নাম",
+DlgFormAction : "ক্শন",
+DlgFormMethod : "তরীকা",
+
+// Select Field Dialog
+DlgSelectName : "নাম",
+DlgSelectValue : "ৈল্যূ",
+DlgSelectSize : "সাই",
+DlgSelectLines : "পंক্তিযাँ",
+DlgSelectChkMulti : "এক সে জ্যাদা িকল্প চুননে দেं",
+DlgSelectOpAvail : "উপলব্ধ িকল্প",
+DlgSelectOpText : "টেক্স্ট",
+DlgSelectOpValue : "ৈল্যূ",
+DlgSelectBtnAdd : "জোড়েं",
+DlgSelectBtnModify : "বদলেं",
+DlgSelectBtnUp : "ঊপর",
+DlgSelectBtnDown : "নীচে",
+DlgSelectBtnSetValue : "চুনী গঈ ৈল্যূ সট করেं",
+DlgSelectBtnDelete : "ডিলীট",
+
+// Textarea Dialog
+DlgTextareaName : "নাম",
+DlgTextareaCols : "কলম",
+DlgTextareaRows : "পंক্তিযাं",
+
+// Text Field Dialog
+DlgTextName : "নাম",
+DlgTextValue : "ৈল্যূ",
+DlgTextCharWidth : "করক্টর কী চৌঢ়াঈ",
+DlgTextMaxChars : "অধিকতম করক্টর",
+DlgTextType : "টাইপ",
+DlgTextTypeText : "টেক্স্ট",
+DlgTextTypePass : "পাস্র্ড",
+
+// Hidden Field Dialog
+DlgHiddenName : "নাম",
+DlgHiddenValue : "ৈল্যূ",
+
+// Bulleted List Dialog
+BulletedListProp : "বুলট সূচী প্রপর্টী",
+NumberedListProp : "অंকীয সূচী প্রপর্টী",
+DlgLstType : "প্রকার",
+DlgLstTypeCircle : "গোল",
+DlgLstTypeDisc : "ডিস্ক",
+DlgLstTypeSquare : "চৌকণ",
+DlgLstTypeNumbers : "অंক (1, 2, 3)",
+DlgLstTypeLCase : "ছোটে অক্ষর (a, b, c)",
+DlgLstTypeUCase : "বড়ে অক্ষর (A, B, C)",
+DlgLstTypeSRoman : "ছোটে রোমন অंক (i, ii, iii)",
+DlgLstTypeLRoman : "বড়ে রোমন অंক (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "আম",
+DlgDocBackTab : "বৈক্গ্রাউন্ড",
+DlgDocColorsTab : "রंগ ঔর মার্জিন",
+DlgDocMetaTab : "মটাডেটা",
+
+DlgDocPageTitle : "পেজ শীর্ষক",
+DlgDocLangDir : "ভাষা লিখনে কী দিশা",
+DlgDocLangDirLTR : "বাযেं সে দাযেं (LTR)",
+DlgDocLangDirRTL : "দাযেं সে বাযেं (RTL)",
+DlgDocLangCode : "ভাষা কোড",
+DlgDocCharSet : "করেক্টর সট ন্কোডিंগ",
+DlgDocCharSetOther : "অন্য করেক্টর সট ন্কোডিंগ",
+
+DlgDocDocType : "ডক্যূমন্ট প্রকার শীর্ষক",
+DlgDocDocTypeOther : "অন্য ডক্যূমন্ট প্রকার শীর্ষক",
+DlgDocIncXHTML : "XHTML সূচনা সম্মিলিত করেं",
+DlgDocBgColor : "বৈক্গ্রাউন্ড রंগ",
+DlgDocBgImage : "বৈক্গ্রাউন্ড তস্ীর URL",
+DlgDocBgNoScroll : "স্ক্রল ন করনে ালা বৈক্গ্রাউন্ড",
+DlgDocCText : "টেক্স্ট",
+DlgDocCLink : "লিंক",
+DlgDocCVisited : "িিট কিযা গযা লিंক",
+DlgDocCActive : "সক্রিয লিंক",
+DlgDocMargins : "পেজ মার্জিন",
+DlgDocMaTop : "ঊপর",
+DlgDocMaLeft : "বাযেं",
+DlgDocMaRight : "দাযেं",
+DlgDocMaBottom : "নীচে",
+DlgDocMeIndex : "ডক্যুমন্ট ইন্ডেক্স সंকেতশব্দ (অল্পিরাম সে অলগ করেं)",
+DlgDocMeDescr : "ডক্যূমন্ট করক্টরন",
+DlgDocMeAuthor : "লেখক",
+DlgDocMeCopy : "কপীরাইট",
+DlgDocPreview : "প্রী্যূ",
+
+// Templates Dialog
+Templates : "টম্প্লেট",
+DlgTemplatesTitle : "কন্টেন্ট টম্প্লেট",
+DlgTemplatesSelMsg : "ডিটর মেं ওপন করনে হেতু টম্প্লেট চুনেं(র্তমান কন্টন্ট সে নহীं হোंগে):",
+DlgTemplatesLoading : "টম্প্লেট সূচী লোড কী জা রহী হৈ রা হরেं...",
+DlgTemplatesNoTpl : "(কোঈ টম্প্লেট ডিাইন নহীं কিযা গযা হৈ)",
+
+// About Dialog
+DlgAboutAboutTab : "FCKEditor কে বারে মেं",
+DlgAboutBrowserInfoTab : "ব্রাউর কে বারে মেं",
+DlgAboutLicenseTab : "লিসেণস",
+DlgAboutVersion : "র্ন",
+DlgAboutLicense : "লাইসেंস :GNU LGPL",
+DlgAboutInfo : "অধিক জানকারী কে লিযে যহাँ জাযেं:"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/bs.js b/htdocs/includes/fckeditor/editor/lang/bs.js
new file mode 100644
index 00000000000..2b74f81fed5
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/bs.js
@@ -0,0 +1,486 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: bs.js
+ * Bosnian language file.
+ *
+ * File Authors:
+ * Muris Trax (www.elektronika.ba)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Skupi trake sa alatima",
+ToolbarExpand : "Otvori trake sa alatima",
+
+// Toolbar Items and Context Menu
+Save : "Snimi",
+NewPage : "Novi dokument",
+Preview : "Prikaži",
+Cut : "Izreži",
+Copy : "Kopiraj",
+Paste : "Zalijepi",
+PasteText : "Zalijepi kao obièan tekst",
+PasteWord : "Zalijepi iz Word-a",
+Print : "Štampaj",
+SelectAll : "Selektuj sve",
+RemoveFormat : "Poništi format",
+InsertLinkLbl : "Link",
+InsertLink : "Ubaci/Izmjeni link",
+RemoveLink : "Izbriši link",
+Anchor : "Insert/Edit Anchor", //MISSING
+InsertImageLbl : "Slika",
+InsertImage : "Ubaci/Izmjeni sliku",
+InsertFlashLbl : "Flash", //MISSING
+InsertFlash : "Insert/Edit Flash", //MISSING
+InsertTableLbl : "Tabela",
+InsertTable : "Ubaci/Izmjeni tabelu",
+InsertLineLbl : "Linija",
+InsertLine : "Ubaci horizontalnu liniju",
+InsertSpecialCharLbl: "Specijalni karakter",
+InsertSpecialChar : "Ubaci specijalni karater",
+InsertSmileyLbl : "Smješko",
+InsertSmiley : "Ubaci smješka",
+About : "O FCKeditor-u",
+Bold : "Boldiraj",
+Italic : "Ukosi",
+Underline : "Podvuci",
+StrikeThrough : "Precrtaj",
+Subscript : "Subscript",
+Superscript : "Superscript",
+LeftJustify : "Lijevo poravnanje",
+CenterJustify : "Centralno poravnanje",
+RightJustify : "Desno poravnanje",
+BlockJustify : "Puno poravnanje",
+DecreaseIndent : "Smanji uvod",
+IncreaseIndent : "Poveæaj uvod",
+Undo : "Vrati",
+Redo : "Ponovi",
+NumberedListLbl : "Numerisana lista",
+NumberedList : "Ubaci/Izmjeni numerisanu listu",
+BulletedListLbl : "Lista",
+BulletedList : "Ubaci/Izmjeni listu",
+ShowTableBorders : "Pokaži okvire tabela",
+ShowDetails : "Pokaži detalje",
+Style : "Stil",
+FontFormat : "Format",
+Font : "Font",
+FontSize : "Velièina",
+TextColor : "Boja teksta",
+BGColor : "Boja pozadine",
+Source : "HTML kôd",
+Find : "Naði",
+Replace : "Zamjeni",
+SpellCheck : "Check Spelling", //MISSING
+UniversalKeyboard : "Universal Keyboard", //MISSING
+PageBreakLbl : "Page Break", //MISSING
+PageBreak : "Insert Page Break", //MISSING
+
+Form : "Form", //MISSING
+Checkbox : "Checkbox", //MISSING
+RadioButton : "Radio Button", //MISSING
+TextField : "Text Field", //MISSING
+Textarea : "Textarea", //MISSING
+HiddenField : "Hidden Field", //MISSING
+Button : "Button", //MISSING
+SelectionField : "Selection Field", //MISSING
+ImageButton : "Image Button", //MISSING
+
+FitWindow : "Maximize the editor size", //MISSING
+
+// Context Menu
+EditLink : "Izmjeni link",
+CellCM : "Cell", //MISSING
+RowCM : "Row", //MISSING
+ColumnCM : "Column", //MISSING
+InsertRow : "Ubaci red",
+DeleteRows : "Briši redove",
+InsertColumn : "Ubaci kolonu",
+DeleteColumns : "Briši kolone",
+InsertCell : "Ubaci æeliju",
+DeleteCells : "Briši æelije",
+MergeCells : "Spoji æelije",
+SplitCell : "Razdvoji æeliju",
+TableDelete : "Delete Table", //MISSING
+CellProperties : "Svojstva æelije",
+TableProperties : "Svojstva tabele",
+ImageProperties : "Svojstva slike",
+FlashProperties : "Flash Properties", //MISSING
+
+AnchorProp : "Anchor Properties", //MISSING
+ButtonProp : "Button Properties", //MISSING
+CheckboxProp : "Checkbox Properties", //MISSING
+HiddenFieldProp : "Hidden Field Properties", //MISSING
+RadioButtonProp : "Radio Button Properties", //MISSING
+ImageButtonProp : "Image Button Properties", //MISSING
+TextFieldProp : "Text Field Properties", //MISSING
+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",
+
+// Alerts and Messages
+ProcessingXHTML : "Procesiram XHTML. Molim saèekajte...",
+Done : "Gotovo",
+PasteWordConfirm : "Tekst koji želite zalijepiti èini se da je kopiran iz Worda. Da li želite da se prvo oèisti?",
+NotCompatiblePaste : "Ova komanda je podržana u Internet Explorer-u verzijama 5.5 ili novijim. Da li želite da izvršite lijepljenje teksta bez èišæenja?",
+UnknownToolbarItem : "Nepoznata stavka sa trake sa alatima \"%1\"",
+UnknownCommand : "Nepoznata komanda \"%1\"",
+NotImplemented : "Komanda nije implementirana",
+UnknownToolbarSet : "Traka sa alatima \"%1\" ne postoji",
+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
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Odustani",
+DlgBtnClose : "Zatvori",
+DlgBtnBrowseServer : "Browse Server", //MISSING
+DlgAdvancedTag : "Naprednije",
+DlgOpOther : "", //MISSING
+DlgInfoTab : "Info", //MISSING
+DlgAlertUrl : "Please insert the URL", //MISSING
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Smjer pisanja",
+DlgGenLangDirLtr : "S lijeva na desno (LTR)",
+DlgGenLangDirRtl : "S desna na lijevo (RTL)",
+DlgGenLangCode : "Jezièni kôd",
+DlgGenAccessKey : "Pristupna tipka",
+DlgGenName : "Naziv",
+DlgGenTabIndex : "Tab indeks",
+DlgGenLongDescr : "Dugaèki opis URL-a",
+DlgGenClass : "Klase CSS stilova",
+DlgGenTitle : "Advisory title",
+DlgGenContType : "Advisory vrsta sadržaja",
+DlgGenLinkCharset : "Linked Resource Charset",
+DlgGenStyle : "Stil",
+
+// Image Dialog
+DlgImgTitle : "Svojstva slike",
+DlgImgInfoTab : "Info slike",
+DlgImgBtnUpload : "Šalji na server",
+DlgImgURL : "URL",
+DlgImgUpload : "Šalji",
+DlgImgAlt : "Tekst na slici",
+DlgImgWidth : "Širina",
+DlgImgHeight : "Visina",
+DlgImgLockRatio : "Zakljuèaj odnos",
+DlgBtnResetSize : "Resetuj dimenzije",
+DlgImgBorder : "Okvir",
+DlgImgHSpace : "HSpace",
+DlgImgVSpace : "VSpace",
+DlgImgAlign : "Poravnanje",
+DlgImgAlignLeft : "Lijevo",
+DlgImgAlignAbsBottom: "Abs dole",
+DlgImgAlignAbsMiddle: "Abs sredina",
+DlgImgAlignBaseline : "Bazno",
+DlgImgAlignBottom : "Dno",
+DlgImgAlignMiddle : "Sredina",
+DlgImgAlignRight : "Desno",
+DlgImgAlignTextTop : "Vrh teksta",
+DlgImgAlignTop : "Vrh",
+DlgImgPreview : "Prikaz",
+DlgImgAlertUrl : "Molimo ukucajte URL od slike.",
+DlgImgLinkTab : "Link", //MISSING
+
+// 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
+
+// Link Dialog
+DlgLnkWindowTitle : "Link",
+DlgLnkInfoTab : "Link info",
+DlgLnkTargetTab : "Prozor",
+
+DlgLnkType : "Tip linka",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Sidro na ovoj stranici",
+DlgLnkTypeEMail : "E-Mail",
+DlgLnkProto : "Protokol",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Izaberi sidro",
+DlgLnkAnchorByName : "Po nazivu sidra",
+DlgLnkAnchorById : "Po Id-u elementa",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "E-Mail Adresa",
+DlgLnkEMailSubject : "Subjekt poruke",
+DlgLnkEMailBody : "Poruka",
+DlgLnkUpload : "Šalji",
+DlgLnkBtnUpload : "Šalji na server",
+
+DlgLnkTarget : "Prozor",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "Novi prozor (_blank)",
+DlgLnkTargetParent : "Glavni prozor (_parent)",
+DlgLnkTargetSelf : "Isti prozor (_self)",
+DlgLnkTargetTop : "Najgornji prozor (_top)",
+DlgLnkTargetFrameName : "Target Frame Name", //MISSING
+DlgLnkPopWinName : "Naziv popup prozora",
+DlgLnkPopWinFeat : "Moguænosti popup prozora",
+DlgLnkPopResize : "Promjenljive velièine",
+DlgLnkPopLocation : "Traka za lokaciju",
+DlgLnkPopMenu : "Izborna traka",
+DlgLnkPopScroll : "Scroll traka",
+DlgLnkPopStatus : "Statusna traka",
+DlgLnkPopToolbar : "Traka sa alatima",
+DlgLnkPopFullScrn : "Cijeli ekran (IE)",
+DlgLnkPopDependent : "Ovisno (Netscape)",
+DlgLnkPopWidth : "Širina",
+DlgLnkPopHeight : "Visina",
+DlgLnkPopLeft : "Lijeva pozicija",
+DlgLnkPopTop : "Gornja pozicija",
+
+DlnLnkMsgNoUrl : "Molimo ukucajte URL link",
+DlnLnkMsgNoEMail : "Molimo ukucajte e-mail adresu",
+DlnLnkMsgNoAnchor : "Molimo izaberite sidro",
+
+// Color Dialog
+DlgColorTitle : "Izaberi boju",
+DlgColorBtnClear : "Oèisti",
+DlgColorHighlight : "Igled",
+DlgColorSelected : "Selektovana",
+
+// Smiley Dialog
+DlgSmileyTitle : "Ubaci smješka",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Izaberi specijalni karakter",
+
+// Table Dialog
+DlgTableTitle : "Svojstva tabele",
+DlgTableRows : "Redova",
+DlgTableColumns : "Kolona",
+DlgTableBorder : "Okvir",
+DlgTableAlign : "Poravnanje",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Lijevo",
+DlgTableAlignCenter : "Centar",
+DlgTableAlignRight : "Desno",
+DlgTableWidth : "Širina",
+DlgTableWidthPx : "piksela",
+DlgTableWidthPc : "posto",
+DlgTableHeight : "Visina",
+DlgTableCellSpace : "Razmak æelija",
+DlgTableCellPad : "Uvod æelija",
+DlgTableCaption : "Naslov",
+DlgTableSummary : "Summary", //MISSING
+
+// Table Cell Dialog
+DlgCellTitle : "Svojstva æelije",
+DlgCellWidth : "Širina",
+DlgCellWidthPx : "piksela",
+DlgCellWidthPc : "posto",
+DlgCellHeight : "Visina",
+DlgCellWordWrap : "Vrapuj tekst",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Da",
+DlgCellWordWrapNo : "Ne",
+DlgCellHorAlign : "Horizontalno poravnanje",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Lijevo",
+DlgCellHorAlignCenter : "Centar",
+DlgCellHorAlignRight: "Desno",
+DlgCellVerAlign : "Vertikalno poravnanje",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Gore",
+DlgCellVerAlignMiddle : "Sredina",
+DlgCellVerAlignBottom : "Dno",
+DlgCellVerAlignBaseline : "Bazno",
+DlgCellRowSpan : "Spajanje æelija",
+DlgCellCollSpan : "Spajanje kolona",
+DlgCellBackColor : "Boja pozadine",
+DlgCellBorderColor : "Boja okvira",
+DlgCellBtnSelect : "Selektuj...",
+
+// Find Dialog
+DlgFindTitle : "Naði",
+DlgFindFindBtn : "Naði",
+DlgFindNotFoundMsg : "Traženi tekst nije pronaðen.",
+
+// Replace Dialog
+DlgReplaceTitle : "Zamjeni",
+DlgReplaceFindLbl : "Naði šta:",
+DlgReplaceReplaceLbl : "Zamjeni sa:",
+DlgReplaceCaseChk : "Uporeðuj velika/mala slova",
+DlgReplaceReplaceBtn : "Zamjeni",
+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).",
+
+PasteAsText : "Zalijepi kao obièan tekst",
+PasteFromWord : "Zalijepi iz Word-a",
+
+DlgPasteMsg2 : "Please paste inside the following box using the keyboard (Ctrl+V) and hit OK.", //MISSING
+DlgPasteIgnoreFont : "Ignore Font Face definitions", //MISSING
+DlgPasteRemoveStyles : "Remove Styles definitions", //MISSING
+DlgPasteCleanBox : "Clean Up Box", //MISSING
+
+// Color Picker
+ColorAutomatic : "Automatska",
+ColorMoreColors : "Više boja...",
+
+// Document Properties
+DocProps : "Document Properties", //MISSING
+
+// Anchor Dialog
+DlgAnchorTitle : "Anchor Properties", //MISSING
+DlgAnchorName : "Anchor Name", //MISSING
+DlgAnchorErrorName : "Please type the anchor name", //MISSING
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Not in dictionary", //MISSING
+DlgSpellChangeTo : "Change to", //MISSING
+DlgSpellBtnIgnore : "Ignore", //MISSING
+DlgSpellBtnIgnoreAll : "Ignore All", //MISSING
+DlgSpellBtnReplace : "Replace", //MISSING
+DlgSpellBtnReplaceAll : "Replace All", //MISSING
+DlgSpellBtnUndo : "Undo", //MISSING
+DlgSpellNoSuggestions : "- No suggestions -", //MISSING
+DlgSpellProgress : "Spell check in progress...", //MISSING
+DlgSpellNoMispell : "Spell check complete: No misspellings found", //MISSING
+DlgSpellNoChanges : "Spell check complete: No words changed", //MISSING
+DlgSpellOneChange : "Spell check complete: One word changed", //MISSING
+DlgSpellManyChanges : "Spell check complete: %1 words changed", //MISSING
+
+IeSpellDownload : "Spell checker not installed. Do you want to download it now?", //MISSING
+
+// Button Dialog
+DlgButtonText : "Text (Value)", //MISSING
+DlgButtonType : "Type", //MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Name", //MISSING
+DlgCheckboxValue : "Value", //MISSING
+DlgCheckboxSelected : "Selected", //MISSING
+
+// Form Dialog
+DlgFormName : "Name", //MISSING
+DlgFormAction : "Action", //MISSING
+DlgFormMethod : "Method", //MISSING
+
+// Select Field Dialog
+DlgSelectName : "Name", //MISSING
+DlgSelectValue : "Value", //MISSING
+DlgSelectSize : "Size", //MISSING
+DlgSelectLines : "lines", //MISSING
+DlgSelectChkMulti : "Allow multiple selections", //MISSING
+DlgSelectOpAvail : "Available Options", //MISSING
+DlgSelectOpText : "Text", //MISSING
+DlgSelectOpValue : "Value", //MISSING
+DlgSelectBtnAdd : "Add", //MISSING
+DlgSelectBtnModify : "Modify", //MISSING
+DlgSelectBtnUp : "Up", //MISSING
+DlgSelectBtnDown : "Down", //MISSING
+DlgSelectBtnSetValue : "Set as selected value", //MISSING
+DlgSelectBtnDelete : "Delete", //MISSING
+
+// Textarea Dialog
+DlgTextareaName : "Name", //MISSING
+DlgTextareaCols : "Columns", //MISSING
+DlgTextareaRows : "Rows", //MISSING
+
+// Text Field Dialog
+DlgTextName : "Name", //MISSING
+DlgTextValue : "Value", //MISSING
+DlgTextCharWidth : "Character Width", //MISSING
+DlgTextMaxChars : "Maximum Characters", //MISSING
+DlgTextType : "Type", //MISSING
+DlgTextTypeText : "Text", //MISSING
+DlgTextTypePass : "Password", //MISSING
+
+// Hidden Field Dialog
+DlgHiddenName : "Name", //MISSING
+DlgHiddenValue : "Value", //MISSING
+
+// Bulleted List Dialog
+BulletedListProp : "Bulleted List Properties", //MISSING
+NumberedListProp : "Numbered List Properties", //MISSING
+DlgLstType : "Type", //MISSING
+DlgLstTypeCircle : "Circle", //MISSING
+DlgLstTypeDisc : "Disc", //MISSING
+DlgLstTypeSquare : "Square", //MISSING
+DlgLstTypeNumbers : "Numbers (1, 2, 3)", //MISSING
+DlgLstTypeLCase : "Lowercase Letters (a, b, c)", //MISSING
+DlgLstTypeUCase : "Uppercase Letters (A, B, C)", //MISSING
+DlgLstTypeSRoman : "Small Roman Numerals (i, ii, iii)", //MISSING
+DlgLstTypeLRoman : "Large Roman Numerals (I, II, III)", //MISSING
+
+// Document Properties Dialog
+DlgDocGeneralTab : "General", //MISSING
+DlgDocBackTab : "Background", //MISSING
+DlgDocColorsTab : "Colors and Margins", //MISSING
+DlgDocMetaTab : "Meta Data", //MISSING
+
+DlgDocPageTitle : "Page Title", //MISSING
+DlgDocLangDir : "Language Direction", //MISSING
+DlgDocLangDirLTR : "Left to Right (LTR)", //MISSING
+DlgDocLangDirRTL : "Right to Left (RTL)", //MISSING
+DlgDocLangCode : "Language Code", //MISSING
+DlgDocCharSet : "Character Set Encoding", //MISSING
+DlgDocCharSetOther : "Other Character Set Encoding", //MISSING
+
+DlgDocDocType : "Document Type Heading", //MISSING
+DlgDocDocTypeOther : "Other Document Type Heading", //MISSING
+DlgDocIncXHTML : "Include XHTML Declarations", //MISSING
+DlgDocBgColor : "Background Color", //MISSING
+DlgDocBgImage : "Background Image URL", //MISSING
+DlgDocBgNoScroll : "Nonscrolling Background", //MISSING
+DlgDocCText : "Text", //MISSING
+DlgDocCLink : "Link", //MISSING
+DlgDocCVisited : "Visited Link", //MISSING
+DlgDocCActive : "Active Link", //MISSING
+DlgDocMargins : "Page Margins", //MISSING
+DlgDocMaTop : "Top", //MISSING
+DlgDocMaLeft : "Left", //MISSING
+DlgDocMaRight : "Right", //MISSING
+DlgDocMaBottom : "Bottom", //MISSING
+DlgDocMeIndex : "Document Indexing Keywords (comma separated)", //MISSING
+DlgDocMeDescr : "Document Description", //MISSING
+DlgDocMeAuthor : "Author", //MISSING
+DlgDocMeCopy : "Copyright", //MISSING
+DlgDocPreview : "Preview", //MISSING
+
+// Templates Dialog
+Templates : "Templates", //MISSING
+DlgTemplatesTitle : "Content Templates", //MISSING
+DlgTemplatesSelMsg : "Please select the template to open in the editor
(the actual contents will be lost):", //MISSING
+DlgTemplatesLoading : "Loading templates list. Please wait...", //MISSING
+DlgTemplatesNoTpl : "(No templates defined)", //MISSING
+
+// About Dialog
+DlgAboutAboutTab : "About", //MISSING
+DlgAboutBrowserInfoTab : "Browser Info", //MISSING
+DlgAboutLicenseTab : "License", //MISSING
+DlgAboutVersion : "verzija",
+DlgAboutLicense : "Licencirano pod uslovima GNU Lesser General Public License",
+DlgAboutInfo : "Za više informacija posjetite"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/ca.js b/htdocs/includes/fckeditor/editor/lang/ca.js
new file mode 100644
index 00000000000..18ec7ed6474
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/ca.js
@@ -0,0 +1,487 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: ca.js
+ * Catalan language file.
+ *
+ * File Authors:
+ * Jordi Cerdan (nan@myp.ad)
+ * Marc Folch (mcus21@gmail.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Collapsa la barra",
+ToolbarExpand : "Amplia la barra",
+
+// Toolbar Items and Context Menu
+Save : "Desa",
+NewPage : "Nova Pgina",
+Preview : "Vista Prvia",
+Cut : "Retalla",
+Copy : "Copia",
+Paste : "Enganxa",
+PasteText : "Enganxa com a text no formatat",
+PasteWord : "Enganxa des del Word",
+Print : "Imprimeix",
+SelectAll : "Selecciona-ho tot",
+RemoveFormat : "Elimina Format",
+InsertLinkLbl : "Enlla",
+InsertLink : "Insereix/Edita enlla",
+RemoveLink : "Elimina enlla",
+Anchor : "Insereix/Edita ncora",
+InsertImageLbl : "Imatge",
+InsertImage : "Insereix/Edita imatge",
+InsertFlashLbl : "Flash",
+InsertFlash : "Insereix/Edita Flash",
+InsertTableLbl : "Taula",
+InsertTable : "Insereix/Edita taula",
+InsertLineLbl : "Lnia",
+InsertLine : "Insereix lnia horitzontal",
+InsertSpecialCharLbl: "Carcter Especial",
+InsertSpecialChar : "Insereix carcter especial",
+InsertSmileyLbl : "Icona",
+InsertSmiley : "Insereix icona",
+About : "Quant a FCKeditor",
+Bold : "Negreta",
+Italic : "Cursiva",
+Underline : "Subratllat",
+StrikeThrough : "Barrat",
+Subscript : "Subndex",
+Superscript : "Superndex",
+LeftJustify : "Aliniament esquerra",
+CenterJustify : "Aliniament centrat",
+RightJustify : "Aliniament dreta",
+BlockJustify : "Justifica",
+DecreaseIndent : "Sagna el text",
+IncreaseIndent : "Treu el sagnat del text",
+Undo : "Desfs",
+Redo : "Refs",
+NumberedListLbl : "Llista numerada",
+NumberedList : "Aplica o elimina la llista numerada",
+BulletedListLbl : "Llista de pics",
+BulletedList : "Aplica o elimina la llista de pics",
+ShowTableBorders : "Mostra les vores de les taules",
+ShowDetails : "Mostra detalls",
+Style : "Estil",
+FontFormat : "Format",
+Font : "Tipus de lletra",
+FontSize : "Mida",
+TextColor : "Color de Text",
+BGColor : "Color de Fons",
+Source : "Codi font",
+Find : "Cerca",
+Replace : "Reemplaa",
+SpellCheck : "Revisa l'ortografia",
+UniversalKeyboard : "Teclat universal",
+PageBreakLbl : "Salt de pgina",
+PageBreak : "Insereix salt de pgina",
+
+Form : "Formulari",
+Checkbox : "Casella de verificaci",
+RadioButton : "Bot d'opci",
+TextField : "Camp de text",
+Textarea : "rea de text",
+HiddenField : "Camp ocult",
+Button : "Bot",
+SelectionField : "Camp de selecci",
+ImageButton : "Bot d'imatge",
+
+FitWindow : "Maximiza la mida de l'editor",
+
+// Context Menu
+EditLink : "Edita l'enlla",
+CellCM : "Cella",
+RowCM : "Fila",
+ColumnCM : "Columna",
+InsertRow : "Insereix una fila",
+DeleteRows : "Suprimeix una fila",
+InsertColumn : "Afegeix una columna",
+DeleteColumns : "Suprimeix una columna",
+InsertCell : "Insereix una cella",
+DeleteCells : "Suprimeix les celles",
+MergeCells : "Fusiona les celles",
+SplitCell : "Separa les celles",
+TableDelete : "Suprimeix la taula",
+CellProperties : "Propietats de la cella",
+TableProperties : "Propietats de la taula",
+ImageProperties : "Propietats de la imatge",
+FlashProperties : "Propietats del Flash",
+
+AnchorProp : "Propietats de l'ncora",
+ButtonProp : "Propietats del bot",
+CheckboxProp : "Propietats de la casella de verificaci",
+HiddenFieldProp : "Propietats del camp ocult",
+RadioButtonProp : "Propietats del bot d'opci",
+ImageButtonProp : "Propietats del bot d'imatge",
+TextFieldProp : "Propietats del camp de text",
+SelectionFieldProp : "Propietats del camp de selecci",
+TextareaProp : "Propietats de l'rea de text",
+FormProp : "Propietats del formulari",
+
+FontFormats : "Normal;Formatejat;Adrea;Encapalament 1;Encapalament 2;Encapalament 3;Encapalament 4;Encapalament 5;Encapalament 6",
+
+// Alerts and Messages
+ProcessingXHTML : "Processant XHTML. Si us plau esperi...",
+Done : "Fet",
+PasteWordConfirm : "El text que voleu enganxar sembla provenir de Word. Voleu netejar aquest text abans que sigui enganxat?",
+NotCompatiblePaste : "Aquesta funci s disponible per a Internet Explorer versi 5.5 o superior. Voleu enganxar sense netejar?",
+UnknownToolbarItem : "Element de la barra d'eines desconegut \"%1\"",
+UnknownCommand : "Nom de comanda desconegut \"%1\"",
+NotImplemented : "Mtode no implementat",
+UnknownToolbarSet : "Conjunt de barra d'eines \"%1\" inexistent",
+NoActiveX : "Les preferncies del navegador poden limitar algunes funcions d'aquest editor. Cal habilitar l'opci \"Executa controls ActiveX i plug-ins\". Poden sorgir errors i poden faltar algunes funcions.",
+BrowseServerBlocked : "El visualitzador de recursos no s'ha pogut obrir. Assegura't de que els bloquejos de finestres emergents estan desactivats.",
+DialogBlocked : "No ha estat possible obrir una finestra de dileg. Assegura't de que els bloquejos de finestres emergents estan desactivats.",
+
+// Dialogs
+DlgBtnOK : "D'acord",
+DlgBtnCancel : "Cancella",
+DlgBtnClose : "Tanca",
+DlgBtnBrowseServer : "Veure servidor",
+DlgAdvancedTag : "Avanat",
+DlgOpOther : "Altres",
+DlgInfoTab : "Info",
+DlgAlertUrl : "Si us plau, afegiu la URL",
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Direcci de l'idioma",
+DlgGenLangDirLtr : "D'esquerra a dreta (LTR)",
+DlgGenLangDirRtl : "De dreta a esquerra (RTL)",
+DlgGenLangCode : "Codi d'idioma",
+DlgGenAccessKey : "Clau d'accs",
+DlgGenName : "Nom",
+DlgGenTabIndex : "Index de Tab",
+DlgGenLongDescr : "Descripci llarga de la URL",
+DlgGenClass : "Classes del full d'estil",
+DlgGenTitle : "Ttol consultiu",
+DlgGenContType : "Tipus de contingut consultiu",
+DlgGenLinkCharset : "Conjunt de carcters font enllaat",
+DlgGenStyle : "Estil",
+
+// Image Dialog
+DlgImgTitle : "Propietats de la imatge",
+DlgImgInfoTab : "Informaci de la imatge",
+DlgImgBtnUpload : "Envia-la al servidor",
+DlgImgURL : "URL",
+DlgImgUpload : "Puja",
+DlgImgAlt : "Text alternatiu",
+DlgImgWidth : "Amplada",
+DlgImgHeight : "Alada",
+DlgImgLockRatio : "Bloqueja les proporcions",
+DlgBtnResetSize : "Restaura la mida",
+DlgImgBorder : "Vora",
+DlgImgHSpace : "Espaiat horit.",
+DlgImgVSpace : "Espaiat vert.",
+DlgImgAlign : "Alineaci",
+DlgImgAlignLeft : "Ajusta a l'esquerra",
+DlgImgAlignAbsBottom: "Abs Bottom",
+DlgImgAlignAbsMiddle: "Abs Middle",
+DlgImgAlignBaseline : "Baseline",
+DlgImgAlignBottom : "Bottom",
+DlgImgAlignMiddle : "Middle",
+DlgImgAlignRight : "Ajusta a la dreta",
+DlgImgAlignTextTop : "Text Top",
+DlgImgAlignTop : "Top",
+DlgImgPreview : "Vista prvia",
+DlgImgAlertUrl : "Si us plau, escriviu la URL de la imatge",
+DlgImgLinkTab : "Enlla",
+
+// Flash Dialog
+DlgFlashTitle : "Propietats del Flash",
+DlgFlashChkPlay : "Reproduci automtica",
+DlgFlashChkLoop : "Bucle",
+DlgFlashChkMenu : "Habilita men Flash",
+DlgFlashScale : "Escala",
+DlgFlashScaleAll : "Mostra-ho tot",
+DlgFlashScaleNoBorder : "Sense vores",
+DlgFlashScaleFit : "Mida exacta",
+
+// Link Dialog
+DlgLnkWindowTitle : "Enlla",
+DlgLnkInfoTab : "Informaci de l'enlla",
+DlgLnkTargetTab : "Dest",
+
+DlgLnkType : "Tipus d'enlla",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "ncora en aquesta pgina",
+DlgLnkTypeEMail : "E-Mail",
+DlgLnkProto : "Protocol",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Selecciona una ncora",
+DlgLnkAnchorByName : "Per nom d'ncora",
+DlgLnkAnchorById : "Per Id d'element",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "Adrea d'E-Mail",
+DlgLnkEMailSubject : "Assumpte del missatge",
+DlgLnkEMailBody : "Cos del missatge",
+DlgLnkUpload : "Puja",
+DlgLnkBtnUpload : "Envia al servidor",
+
+DlgLnkTarget : "Dest",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "Nova finestra (_blank)",
+DlgLnkTargetParent : "Finestra pare (_parent)",
+DlgLnkTargetSelf : "Mateixa finestra (_self)",
+DlgLnkTargetTop : "Finestra Major (_top)",
+DlgLnkTargetFrameName : "Nom del marc de dest",
+DlgLnkPopWinName : "Nom finestra popup",
+DlgLnkPopWinFeat : "Caracterstiques finestra popup",
+DlgLnkPopResize : "Redimensionable",
+DlgLnkPopLocation : "Barra d'adrea",
+DlgLnkPopMenu : "Barra de men",
+DlgLnkPopScroll : "Barres d'scroll",
+DlgLnkPopStatus : "Barra d'estat",
+DlgLnkPopToolbar : "Barra d'eines",
+DlgLnkPopFullScrn : "Pantalla completa (IE)",
+DlgLnkPopDependent : "Depenent (Netscape)",
+DlgLnkPopWidth : "Amplada",
+DlgLnkPopHeight : "Alada",
+DlgLnkPopLeft : "Posici esquerra",
+DlgLnkPopTop : "Posici dalt",
+
+DlnLnkMsgNoUrl : "Si us plau, escrigui l'enlla URL",
+DlnLnkMsgNoEMail : "Si us plau, escrigui l'adrea e-mail",
+DlnLnkMsgNoAnchor : "Si us plau, escrigui l'ncora",
+
+// Color Dialog
+DlgColorTitle : "Selecciona el color",
+DlgColorBtnClear : "Neteja",
+DlgColorHighlight : "Reala",
+DlgColorSelected : "Selecciona",
+
+// Smiley Dialog
+DlgSmileyTitle : "Insereix una icona",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Selecciona el carcter especial",
+
+// Table Dialog
+DlgTableTitle : "Propietats de la taula",
+DlgTableRows : "Files",
+DlgTableColumns : "Columnes",
+DlgTableBorder : "Tamany vora",
+DlgTableAlign : "Alineaci",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Esquerra",
+DlgTableAlignCenter : "Centre",
+DlgTableAlignRight : "Dreta",
+DlgTableWidth : "Amplada",
+DlgTableWidthPx : "pxels",
+DlgTableWidthPc : "percentatge",
+DlgTableHeight : "Alada",
+DlgTableCellSpace : "Espaiat de celles",
+DlgTableCellPad : "Encoixinament de celles",
+DlgTableCaption : "Ttol",
+DlgTableSummary : "Resum",
+
+// Table Cell Dialog
+DlgCellTitle : "Propietats de la cella",
+DlgCellWidth : "Amplada",
+DlgCellWidthPx : "pxels",
+DlgCellWidthPc : "percentatge",
+DlgCellHeight : "Alada",
+DlgCellWordWrap : "Ajust de paraula",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Si",
+DlgCellWordWrapNo : "No",
+DlgCellHorAlign : "Alineaci horitzontal",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Esquerra",
+DlgCellHorAlignCenter : "Centre",
+DlgCellHorAlignRight: "Dreta",
+DlgCellVerAlign : "Alineaci vertical",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Top",
+DlgCellVerAlignMiddle : "Middle",
+DlgCellVerAlignBottom : "Bottom",
+DlgCellVerAlignBaseline : "Baseline",
+DlgCellRowSpan : "Rows Span",
+DlgCellCollSpan : "Columns Span",
+DlgCellBackColor : "Color de fons",
+DlgCellBorderColor : "Color de la vora",
+DlgCellBtnSelect : "Seleccioneu...",
+
+// Find Dialog
+DlgFindTitle : "Cerca",
+DlgFindFindBtn : "Cerca",
+DlgFindNotFoundMsg : "El text especificat no s'ha trobat.",
+
+// Replace Dialog
+DlgReplaceTitle : "Reemplaa",
+DlgReplaceFindLbl : "Cerca:",
+DlgReplaceReplaceLbl : "Remplaa amb:",
+DlgReplaceCaseChk : "Sensible a majscules",
+DlgReplaceReplaceBtn : "Reemplaa",
+DlgReplaceReplAllBtn : "Reemplaa'ls tots",
+DlgReplaceWordChk : "Cerca paraula completa",
+
+// Paste Operations / Dialog
+PasteErrorPaste : "La seguretat del vostre navegador no permet executar automticament les operacions d'enganxat. Si us plau, utilitzeu el teclat (Ctrl+V).",
+PasteErrorCut : "La seguretat del vostre navegador no permet executar automticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl+X).",
+PasteErrorCopy : "La seguretat del vostre navegador no permet executar automticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl+C).",
+
+PasteAsText : "Enganxa com a text sense format",
+PasteFromWord : "Enganxa com a Word",
+
+DlgPasteMsg2 : "Si us plau, enganxeu dins del segent camp utilitzant el teclat (Ctrl+V) i premeu OK.",
+DlgPasteIgnoreFont : "Ignora definicions de font",
+DlgPasteRemoveStyles : "Elimina definicions d'estil",
+DlgPasteCleanBox : "Neteja camp",
+
+// Color Picker
+ColorAutomatic : "Automtic",
+ColorMoreColors : "Ms colors...",
+
+// Document Properties
+DocProps : "Propietats del document",
+
+// Anchor Dialog
+DlgAnchorTitle : "Propietats de l'ncora",
+DlgAnchorName : "Nom de l'ncora",
+DlgAnchorErrorName : "Si us plau, escriviu el nom de l'ancora",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "No s al diccionari",
+DlgSpellChangeTo : "Canvia a",
+DlgSpellBtnIgnore : "Ignora",
+DlgSpellBtnIgnoreAll : "Ignora-les totes",
+DlgSpellBtnReplace : "Canvia",
+DlgSpellBtnReplaceAll : "Canvia-les totes",
+DlgSpellBtnUndo : "Desfs",
+DlgSpellNoSuggestions : "Cap sugerncia",
+DlgSpellProgress : "Comprovaci ortogrfica en progrs",
+DlgSpellNoMispell : "Comprovaci ortogrfica completada",
+DlgSpellNoChanges : "Comprovaci ortogrfica: cap paraulada canviada",
+DlgSpellOneChange : "Comprovaci ortogrfica: una paraula canviada",
+DlgSpellManyChanges : "Comprovaci ortogrfica %1 paraules canviades",
+
+IeSpellDownload : "Comprovaci ortogrfica no installada. Voleu descarregar-ho ara?",
+
+// Button Dialog
+DlgButtonText : "Text (Valor)",
+DlgButtonType : "Tipus",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Nom",
+DlgCheckboxValue : "Valor",
+DlgCheckboxSelected : "Seleccionat",
+
+// Form Dialog
+DlgFormName : "Nom",
+DlgFormAction : "Acci",
+DlgFormMethod : "Mtode",
+
+// Select Field Dialog
+DlgSelectName : "Nom",
+DlgSelectValue : "Valor",
+DlgSelectSize : "Tamany",
+DlgSelectLines : "Lnies",
+DlgSelectChkMulti : "Permet mltiples seleccions",
+DlgSelectOpAvail : "Opcions disponibles",
+DlgSelectOpText : "Text",
+DlgSelectOpValue : "Valor",
+DlgSelectBtnAdd : "Afegeix",
+DlgSelectBtnModify : "Modifica",
+DlgSelectBtnUp : "Amunt",
+DlgSelectBtnDown : "Avall",
+DlgSelectBtnSetValue : "Selecciona per defecte",
+DlgSelectBtnDelete : "Elimina",
+
+// Textarea Dialog
+DlgTextareaName : "Nom",
+DlgTextareaCols : "Columnes",
+DlgTextareaRows : "Files",
+
+// Text Field Dialog
+DlgTextName : "Nom",
+DlgTextValue : "Valor",
+DlgTextCharWidth : "Amplada de carcter",
+DlgTextMaxChars : "Mxim de carcters",
+DlgTextType : "Tipus",
+DlgTextTypeText : "Text",
+DlgTextTypePass : "Contrasenya",
+
+// Hidden Field Dialog
+DlgHiddenName : "Nom",
+DlgHiddenValue : "Valor",
+
+// Bulleted List Dialog
+BulletedListProp : "Propietats de llista marcada",
+NumberedListProp : "Propietats de llista numerada",
+DlgLstType : "Tipus",
+DlgLstTypeCircle : "Cercle",
+DlgLstTypeDisc : "Disc", //MISSING
+DlgLstTypeSquare : "Quadrat",
+DlgLstTypeNumbers : "Nmeros (1, 2, 3)",
+DlgLstTypeLCase : "Lletres minscules (a, b, c)",
+DlgLstTypeUCase : "Lletres majscules (A, B, C)",
+DlgLstTypeSRoman : "Nmeros romans minscules (i, ii, iii)",
+DlgLstTypeLRoman : "Nmeros romans majscules (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "General",
+DlgDocBackTab : "Fons",
+DlgDocColorsTab : "Colors i marges",
+DlgDocMetaTab : "Dades Meta",
+
+DlgDocPageTitle : "Ttol de la pgina",
+DlgDocLangDir : "Direcci llenguatge",
+DlgDocLangDirLTR : "Esquerra a dreta (LTR)",
+DlgDocLangDirRTL : "Dreta a esquerra (RTL)",
+DlgDocLangCode : "Codi de llenguatge",
+DlgDocCharSet : "Codificaci de conjunt de carcters",
+DlgDocCharSetOther : "Altra codificaci de conjunt de carcters",
+
+DlgDocDocType : "Capalera de tipus de document",
+DlgDocDocTypeOther : "Altra Capalera de tipus de document",
+DlgDocIncXHTML : "Incloure declaracions XHTML",
+DlgDocBgColor : "Color de fons",
+DlgDocBgImage : "URL de la imatge de fons",
+DlgDocBgNoScroll : "Fons fixe",
+DlgDocCText : "Text",
+DlgDocCLink : "Enlla",
+DlgDocCVisited : "Enlla visitat",
+DlgDocCActive : "Enlla actiu",
+DlgDocMargins : "Marges de pgina",
+DlgDocMaTop : "Cap",
+DlgDocMaLeft : "Esquerra",
+DlgDocMaRight : "Dreta",
+DlgDocMaBottom : "Peu",
+DlgDocMeIndex : "Mots clau per a indexaci (separats per coma)",
+DlgDocMeDescr : "Descripci del document",
+DlgDocMeAuthor : "Autor",
+DlgDocMeCopy : "Copyright",
+DlgDocPreview : "Vista prvia",
+
+// Templates Dialog
+Templates : "Plantilles",
+DlgTemplatesTitle : "Contingut plantilles",
+DlgTemplatesSelMsg : "Si us plau, seleccioneu la plantilla per obrir en l'editor
(el contingut actual no ser enregistrat):",
+DlgTemplatesLoading : "Carregant la llista de plantilles. Si us plau, espereu...",
+DlgTemplatesNoTpl : "(No hi ha plantilles definides)",
+
+// About Dialog
+DlgAboutAboutTab : "Quant a",
+DlgAboutBrowserInfoTab : "Informaci del navegador",
+DlgAboutLicenseTab : "Llicncia",
+DlgAboutVersion : "versi",
+DlgAboutLicense : "Segons els termes de la Llicncia GNU Lesser General Public License",
+DlgAboutInfo : "Per a ms informaci aneu a"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/cs.js b/htdocs/includes/fckeditor/editor/lang/cs.js
new file mode 100644
index 00000000000..fcc1c62988f
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/cs.js
@@ -0,0 +1,488 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * 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)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Skrýt panel nástrojů",
+ToolbarExpand : "Zobrazit panel nástrojů",
+
+// Toolbar Items and Context Menu
+Save : "Uložit",
+NewPage : "Nová stránka",
+Preview : "Náhled",
+Cut : "Vyjmout",
+Copy : "Kopírovat",
+Paste : "Vložit",
+PasteText : "Vložit jako čistý text",
+PasteWord : "Vložit z Wordu",
+Print : "Tisk",
+SelectAll : "Vybrat vše",
+RemoveFormat : "Odstranit formátování",
+InsertLinkLbl : "Odkaz",
+InsertLink : "Vložit/změnit odkaz",
+RemoveLink : "Odstranit odkaz",
+Anchor : "Vložít/změnit záložku",
+InsertImageLbl : "Obrázek",
+InsertImage : "Vložit/změnit obrázek",
+InsertFlashLbl : "Flash",
+InsertFlash : "Vložit/Upravit Flash",
+InsertTableLbl : "Tabulka",
+InsertTable : "Vložit/změnit tabulku",
+InsertLineLbl : "Linka",
+InsertLine : "Vložit vodorovnou linku",
+InsertSpecialCharLbl: "Speciální znaky",
+InsertSpecialChar : "Vložit speciální znaky",
+InsertSmileyLbl : "Smajlíky",
+InsertSmiley : "Vložit smajlík",
+About : "O aplikaci FCKeditor",
+Bold : "Tučné",
+Italic : "Kurzíva",
+Underline : "Podtržené",
+StrikeThrough : "Přeškrtnuté",
+Subscript : "Dolní index",
+Superscript : "Horní index",
+LeftJustify : "Zarovnat vlevo",
+CenterJustify : "Zarovnat na střed",
+RightJustify : "Zarovnat vpravo",
+BlockJustify : "Zarovnat do bloku",
+DecreaseIndent : "Zmenšit odsazení",
+IncreaseIndent : "Zvětšit odsazení",
+Undo : "Zpět",
+Redo : "Znovu",
+NumberedListLbl : "Číslování",
+NumberedList : "Vložit/odstranit číslovaný seznam",
+BulletedListLbl : "Odrážky",
+BulletedList : "Vložit/odstranit odrážky",
+ShowTableBorders : "Zobrazit okraje tabulek",
+ShowDetails : "Zobrazit podrobnosti",
+Style : "Styl",
+FontFormat : "Formát",
+Font : "Písmo",
+FontSize : "Velikost",
+TextColor : "Barva textu",
+BGColor : "Barva pozadí",
+Source : "Zdroj",
+Find : "Hledat",
+Replace : "Nahradit",
+SpellCheck : "Zkontrolovat pravopis",
+UniversalKeyboard : "Univerzální klávesnice",
+PageBreakLbl : "Konec stránky",
+PageBreak : "Vložit konec stránky",
+
+Form : "Formulář",
+Checkbox : "Zaškrtávací políčko",
+RadioButton : "Přepínač",
+TextField : "Textové pole",
+Textarea : "Textová oblast",
+HiddenField : "Skryté pole",
+Button : "Tlačítko",
+SelectionField : "Seznam",
+ImageButton : "Obrázkové tlačítko",
+
+FitWindow : "Maximalizovat velikost editoru",
+
+// Context Menu
+EditLink : "Změnit odkaz",
+CellCM : "Buňka",
+RowCM : "Řádek",
+ColumnCM : "Sloupec",
+InsertRow : "Vložit řádek",
+DeleteRows : "Smazat řádek",
+InsertColumn : "Vložit sloupec",
+DeleteColumns : "Smazat sloupec",
+InsertCell : "Vložit buňku",
+DeleteCells : "Smazat buňky",
+MergeCells : "Sloučit buňky",
+SplitCell : "Rozdělit buňku",
+TableDelete : "Smazat tabulku",
+CellProperties : "Vlastnosti buňky",
+TableProperties : "Vlastnosti tabulky",
+ImageProperties : "Vlastnosti obrázku",
+FlashProperties : "Vlastnosti Flashe",
+
+AnchorProp : "Vlastnosti záložky",
+ButtonProp : "Vlastnosti tlačítka",
+CheckboxProp : "Vlastnosti zaškrtávacího políčka",
+HiddenFieldProp : "Vlastnosti skrytého pole",
+RadioButtonProp : "Vlastnosti přepínače",
+ImageButtonProp : "Vlastností obrázkového tlačítka",
+TextFieldProp : "Vlastnosti textového pole",
+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",
+
+// Alerts and Messages
+ProcessingXHTML : "Probíhá zpracování XHTML. Prosím čekejte...",
+Done : "Hotovo",
+PasteWordConfirm : "Jak je vidět, vkládaný text je kopírován z Wordu. Chcete jej před vložením vyčistit?",
+NotCompatiblePaste : "Tento příkaz je dostupný pouze v Internet Exploreru verze 5.5 nebo vyšší. Chcete vložit text bez vyčištění?",
+UnknownToolbarItem : "Neznámá položka panelu nástrojů \"%1\"",
+UnknownCommand : "Neznámý příkaz \"%1\"",
+NotImplemented : "Příkaz není implementován",
+UnknownToolbarSet : "Panel nástrojů \"%1\" neexistuje",
+NoActiveX : "Nastavení bezpečnosti Vašeho prohlížeče omezuje funkčnost některých jeho možností. Je třeba zapnout volbu \"Spouštět ovládáací prvky ActiveX a moduly plug-in\", jinak nebude možné využívat všechny dosputné schopnosti editoru.",
+BrowseServerBlocked : "Průzkumník zdrojů nelze otevřít. Prověřte, zda nemáte aktivováno blokování popup oken.",
+DialogBlocked : "Nelze otevřít dialogové okno. Prověřte, zda nemáte aktivováno blokování popup oken.",
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Storno",
+DlgBtnClose : "Zavřít",
+DlgBtnBrowseServer : "Vybrat na serveru",
+DlgAdvancedTag : "Rozšířené",
+DlgOpOther : "",
+DlgInfoTab : "Info",
+DlgAlertUrl : "Prosím vložte URL",
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Orientace jazyka",
+DlgGenLangDirLtr : "Zleva do prava (LTR)",
+DlgGenLangDirRtl : "Zprava do leva (RTL)",
+DlgGenLangCode : "Kód jazyka",
+DlgGenAccessKey : "Přístupový klíč",
+DlgGenName : "Jméno",
+DlgGenTabIndex : "Pořadí prvku",
+DlgGenLongDescr : "Dlouhý popis URL",
+DlgGenClass : "Třída stylu",
+DlgGenTitle : "Pomocný titulek",
+DlgGenContType : "Pomocný typ obsahu",
+DlgGenLinkCharset : "Přiřazená znaková sada",
+DlgGenStyle : "Styl",
+
+// Image Dialog
+DlgImgTitle : "Vlastnosti obrázku",
+DlgImgInfoTab : "Informace o obrázku",
+DlgImgBtnUpload : "Odeslat na server",
+DlgImgURL : "URL",
+DlgImgUpload : "Odeslat",
+DlgImgAlt : "Alternativní text",
+DlgImgWidth : "Šířka",
+DlgImgHeight : "Výška",
+DlgImgLockRatio : "Zámek",
+DlgBtnResetSize : "Původní velikost",
+DlgImgBorder : "Okraje",
+DlgImgHSpace : "H-mezera",
+DlgImgVSpace : "V-mezera",
+DlgImgAlign : "Zarovnání",
+DlgImgAlignLeft : "Vlevo",
+DlgImgAlignAbsBottom: "Zcela dolů",
+DlgImgAlignAbsMiddle: "Doprostřed",
+DlgImgAlignBaseline : "Na účaří",
+DlgImgAlignBottom : "Dolů",
+DlgImgAlignMiddle : "Na střed",
+DlgImgAlignRight : "Vpravo",
+DlgImgAlignTextTop : "Na horní okraj textu",
+DlgImgAlignTop : "Nahoru",
+DlgImgPreview : "Náhled",
+DlgImgAlertUrl : "Zadejte prosím URL obrázku",
+DlgImgLinkTab : "Odkaz",
+
+// Flash Dialog
+DlgFlashTitle : "Vlastnosti Flashe",
+DlgFlashChkPlay : "Automatické spuštění",
+DlgFlashChkLoop : "Opakování",
+DlgFlashChkMenu : "Nabídka Flash",
+DlgFlashScale : "Zobrazit",
+DlgFlashScaleAll : "Zobrazit vše",
+DlgFlashScaleNoBorder : "Bez okraje",
+DlgFlashScaleFit : "Přizpůsobit",
+
+// Link Dialog
+DlgLnkWindowTitle : "Odkaz",
+DlgLnkInfoTab : "Informace o odkazu",
+DlgLnkTargetTab : "Cíl",
+
+DlgLnkType : "Typ odkazu",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Kotva v této stránce",
+DlgLnkTypeEMail : "E-Mail",
+DlgLnkProto : "Protokol",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Vybrat kotvu",
+DlgLnkAnchorByName : "Podle jména kotvy",
+DlgLnkAnchorById : "Podle Id objektu",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "E-Mailová adresa",
+DlgLnkEMailSubject : "Předmět zprávy",
+DlgLnkEMailBody : "Tělo zprávy",
+DlgLnkUpload : "Odeslat",
+DlgLnkBtnUpload : "Odeslat na Server",
+
+DlgLnkTarget : "Cíl",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "Nové okno (_blank)",
+DlgLnkTargetParent : "Rodičovské okno (_parent)",
+DlgLnkTargetSelf : "Stejné okno (_self)",
+DlgLnkTargetTop : "Hlavní okno (_top)",
+DlgLnkTargetFrameName : "Název cílového rámu",
+DlgLnkPopWinName : "Název vyskakovacího okna",
+DlgLnkPopWinFeat : "Vlastnosti vyskakovacího okna",
+DlgLnkPopResize : "Měnitelná velikost",
+DlgLnkPopLocation : "Panel umístění",
+DlgLnkPopMenu : "Panel nabídky",
+DlgLnkPopScroll : "Posuvníky",
+DlgLnkPopStatus : "Stavový řádek",
+DlgLnkPopToolbar : "Panel nástrojů",
+DlgLnkPopFullScrn : "Celá obrazovka (IE)",
+DlgLnkPopDependent : "Závislost (Netscape)",
+DlgLnkPopWidth : "Šířka",
+DlgLnkPopHeight : "Výška",
+DlgLnkPopLeft : "Levý okraj",
+DlgLnkPopTop : "Horní okraj",
+
+DlnLnkMsgNoUrl : "Zadejte prosím URL odkazu",
+DlnLnkMsgNoEMail : "Zadejte prosím e-mailovou adresu",
+DlnLnkMsgNoAnchor : "Vyberte prosím kotvu",
+
+// Color Dialog
+DlgColorTitle : "Výběr barvy",
+DlgColorBtnClear : "Vymazat",
+DlgColorHighlight : "Zvýrazněná",
+DlgColorSelected : "Vybraná",
+
+// Smiley Dialog
+DlgSmileyTitle : "Vkládání smajlíků",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Výběr speciálního znaku",
+
+// Table Dialog
+DlgTableTitle : "Vlastnosti tabulky",
+DlgTableRows : "Řádky",
+DlgTableColumns : "Sloupce",
+DlgTableBorder : "Ohraničení",
+DlgTableAlign : "Zarovnání",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Vlevo",
+DlgTableAlignCenter : "Na střed",
+DlgTableAlignRight : "Vpravo",
+DlgTableWidth : "Šířka",
+DlgTableWidthPx : "bodů",
+DlgTableWidthPc : "procent",
+DlgTableHeight : "Výška",
+DlgTableCellSpace : "Vzdálenost buněk",
+DlgTableCellPad : "Odsazení obsahu",
+DlgTableCaption : "Popis",
+DlgTableSummary : "Souhrn",
+
+// Table Cell Dialog
+DlgCellTitle : "Vlastnosti buňky",
+DlgCellWidth : "Šířka",
+DlgCellWidthPx : "bodů",
+DlgCellWidthPc : "procent",
+DlgCellHeight : "Výška",
+DlgCellWordWrap : "Zalamování",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Ano",
+DlgCellWordWrapNo : "Ne",
+DlgCellHorAlign : "Vodorovné zarovnání",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Vlevo",
+DlgCellHorAlignCenter : "Na střed",
+DlgCellHorAlignRight: "Vpravo",
+DlgCellVerAlign : "Svislé zarovnání",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Nahoru",
+DlgCellVerAlignMiddle : "Doprostřed",
+DlgCellVerAlignBottom : "Dolů",
+DlgCellVerAlignBaseline : "Na účaří",
+DlgCellRowSpan : "Sloučené řádky",
+DlgCellCollSpan : "Sloučené sloupce",
+DlgCellBackColor : "Barva pozadí",
+DlgCellBorderColor : "Barva ohraničení",
+DlgCellBtnSelect : "Výběr...",
+
+// Find Dialog
+DlgFindTitle : "Hledat",
+DlgFindFindBtn : "Hledat",
+DlgFindNotFoundMsg : "Hledaný text nebyl nalezen.",
+
+// Replace Dialog
+DlgReplaceTitle : "Nahradit",
+DlgReplaceFindLbl : "Co hledat:",
+DlgReplaceReplaceLbl : "Čím nahradit:",
+DlgReplaceCaseChk : "Rozlišovat velikost písma",
+DlgReplaceReplaceBtn : "Nahradit",
+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).",
+
+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 (Ctrl+V) a stiskněte OK.",
+DlgPasteIgnoreFont : "Ignorovat písmo",
+DlgPasteRemoveStyles : "Odstranit styly",
+DlgPasteCleanBox : "Vyčistit",
+
+// Color Picker
+ColorAutomatic : "Automaticky",
+ColorMoreColors : "Více barev...",
+
+// Document Properties
+DocProps : "Vlastnosti dokumentu",
+
+// Anchor Dialog
+DlgAnchorTitle : "Vlastnosti záložky",
+DlgAnchorName : "Název záložky",
+DlgAnchorErrorName : "Zadejte prosím název záložky",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Není ve slovníku",
+DlgSpellChangeTo : "Změnit na",
+DlgSpellBtnIgnore : "Přeskočit",
+DlgSpellBtnIgnoreAll : "Přeskakovat vše",
+DlgSpellBtnReplace : "Zaměnit",
+DlgSpellBtnReplaceAll : "Zaměňovat vše",
+DlgSpellBtnUndo : "Zpět",
+DlgSpellNoSuggestions : "- žádné návrhy -",
+DlgSpellProgress : "Probíhá kontrola pravopisu...",
+DlgSpellNoMispell : "Kontrola pravopisu dokončena: Žádné pravopisné chyby nenalezeny",
+DlgSpellNoChanges : "Kontrola pravopisu dokončena: Beze změn",
+DlgSpellOneChange : "Kontrola pravopisu dokončena: Jedno slovo změněno",
+DlgSpellManyChanges : "Kontrola pravopisu dokončena: %1 slov změněno",
+
+IeSpellDownload : "Kontrola pravopisu není nainstalována. Chcete ji nyní stáhnout?",
+
+// Button Dialog
+DlgButtonText : "Popisek",
+DlgButtonType : "Typ",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Název",
+DlgCheckboxValue : "Hodnota",
+DlgCheckboxSelected : "Zaškrtnuto",
+
+// Form Dialog
+DlgFormName : "Název",
+DlgFormAction : "Akce",
+DlgFormMethod : "Metoda",
+
+// Select Field Dialog
+DlgSelectName : "Název",
+DlgSelectValue : "Hodnota",
+DlgSelectSize : "Velikost",
+DlgSelectLines : "Řádků",
+DlgSelectChkMulti : "Povolit mnohonásobné výběry",
+DlgSelectOpAvail : "Dostupná nastavení",
+DlgSelectOpText : "Text",
+DlgSelectOpValue : "Hodnota",
+DlgSelectBtnAdd : "Přidat",
+DlgSelectBtnModify : "Změnit",
+DlgSelectBtnUp : "Nahoru",
+DlgSelectBtnDown : "Dolů",
+DlgSelectBtnSetValue : "Nastavit jako vybranou hodnotu",
+DlgSelectBtnDelete : "Smazat",
+
+// Textarea Dialog
+DlgTextareaName : "Název",
+DlgTextareaCols : "Sloupců",
+DlgTextareaRows : "Řádků",
+
+// Text Field Dialog
+DlgTextName : "Název",
+DlgTextValue : "Hodnota",
+DlgTextCharWidth : "Šířka ve znacích",
+DlgTextMaxChars : "Maximální počet znaků",
+DlgTextType : "Typ",
+DlgTextTypeText : "Text",
+DlgTextTypePass : "Heslo",
+
+// Hidden Field Dialog
+DlgHiddenName : "Název",
+DlgHiddenValue : "Hodnota",
+
+// Bulleted List Dialog
+BulletedListProp : "Vlastnosti odrážek",
+NumberedListProp : "Vlastnosti číslovaného seznamu",
+DlgLstType : "Typ",
+DlgLstTypeCircle : "Kružnice",
+DlgLstTypeDisc : "Kruh",
+DlgLstTypeSquare : "Čtverec",
+DlgLstTypeNumbers : "Čísla (1, 2, 3)",
+DlgLstTypeLCase : "Malá písmena (a, b, c)",
+DlgLstTypeUCase : "Velká písmena (A, B, C)",
+DlgLstTypeSRoman : "Malé římská číslice (i, ii, iii)",
+DlgLstTypeLRoman : "Velké římské číslice (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "Obecné",
+DlgDocBackTab : "Pozadí",
+DlgDocColorsTab : "Barvy a okraje",
+DlgDocMetaTab : "Metadata",
+
+DlgDocPageTitle : "Titulek stránky",
+DlgDocLangDir : "Směr jazyku",
+DlgDocLangDirLTR : "Zleva do prava ",
+DlgDocLangDirRTL : "Zprava doleva",
+DlgDocLangCode : "Kód jazyku",
+DlgDocCharSet : "Znaková sada",
+DlgDocCharSetOther : "Další znaková sada",
+
+DlgDocDocType : "Typ dokumentu",
+DlgDocDocTypeOther : "Jiný typ dokumetu",
+DlgDocIncXHTML : "Zahrnou deklarace XHTML",
+DlgDocBgColor : "Barva pozadí",
+DlgDocBgImage : "URL obrázku na pozadí",
+DlgDocBgNoScroll : "Nerolovatelné pozadí",
+DlgDocCText : "Text",
+DlgDocCLink : "Odkaz",
+DlgDocCVisited : "Navštívený odkaz",
+DlgDocCActive : "Vybraný odkaz",
+DlgDocMargins : "Okraje stránky",
+DlgDocMaTop : "Horní",
+DlgDocMaLeft : "Levý",
+DlgDocMaRight : "Pravý",
+DlgDocMaBottom : "Dolní",
+DlgDocMeIndex : "Klíčová slova (oddělená čárkou)",
+DlgDocMeDescr : "Popis dokumentu",
+DlgDocMeAuthor : "Autor",
+DlgDocMeCopy : "Autorská práva",
+DlgDocPreview : "Náhled",
+
+// Templates Dialog
+Templates : "Šablony",
+DlgTemplatesTitle : "Šablony obsahu",
+DlgTemplatesSelMsg : "Prosím zvolte šablonu pro otevření v editoru
(aktuální obsah editoru bude ztracen):",
+DlgTemplatesLoading : "Nahrávám přeheld šablon. Prosím čekejte...",
+DlgTemplatesNoTpl : "(Není definována žádná šablona)",
+
+// About Dialog
+DlgAboutAboutTab : "O aplikaci",
+DlgAboutBrowserInfoTab : "Informace o prohlížeči",
+DlgAboutLicenseTab : "Licence",
+DlgAboutVersion : "verze",
+DlgAboutLicense : "Licencováno pod GNU Lesser General Public License",
+DlgAboutInfo : "Více informací získáte na"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/da.js b/htdocs/includes/fckeditor/editor/lang/da.js
new file mode 100644
index 00000000000..1ec3f4d0194
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/da.js
@@ -0,0 +1,488 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * 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)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Skjul værktøjslinier",
+ToolbarExpand : "Vis værktøjslinier",
+
+// Toolbar Items and Context Menu
+Save : "Gem",
+NewPage : "Ny side",
+Preview : "Vis eksempel",
+Cut : "Klip",
+Copy : "Kopier",
+Paste : "Indsæt",
+PasteText : "Indsæt som ikke-formateret tekst",
+PasteWord : "Indsæt fra Word",
+Print : "Udskriv",
+SelectAll : "Vælg alt",
+RemoveFormat : "Fjern formatering",
+InsertLinkLbl : "Hyperlink",
+InsertLink : "Indsæt/rediger hyperlink",
+RemoveLink : "Fjern hyperlink",
+Anchor : "Indsæt/rediger bogmærke",
+InsertImageLbl : "Indsæt billede",
+InsertImage : "Indsæt/rediger billede",
+InsertFlashLbl : "Flash",
+InsertFlash : "Indsæt/rediger Flash",
+InsertTableLbl : "Table",
+InsertTable : "Indsæt/rediger tabel",
+InsertLineLbl : "Linie",
+InsertLine : "Indsæt vandret linie",
+InsertSpecialCharLbl: "Symbol",
+InsertSpecialChar : "Indsæt symbol",
+InsertSmileyLbl : "Smiley",
+InsertSmiley : "Indsæt smiley",
+About : "Om FCKeditor",
+Bold : "Fed",
+Italic : "Kursiv",
+Underline : "Understreget",
+StrikeThrough : "Overstreget",
+Subscript : "Sænket skrift",
+Superscript : "Hævet skrift",
+LeftJustify : "Venstrestillet",
+CenterJustify : "Centreret",
+RightJustify : "Højrestillet",
+BlockJustify : "Lige margener",
+DecreaseIndent : "Formindsk indrykning",
+IncreaseIndent : "Forøg indrykning",
+Undo : "Fortryd",
+Redo : "Annuller fortryd",
+NumberedListLbl : "Talopstilling",
+NumberedList : "Indsæt/fjern talopstilling",
+BulletedListLbl : "Punktopstilling",
+BulletedList : "Indsæt/fjern punktopstilling",
+ShowTableBorders : "Vis tabelkanter",
+ShowDetails : "Vis detaljer",
+Style : "Typografi",
+FontFormat : "Formatering",
+Font : "Skrifttype",
+FontSize : "Skriftstørrelse",
+TextColor : "Tekstfarve",
+BGColor : "Baggrundsfarve",
+Source : "Kilde",
+Find : "Søg",
+Replace : "Erstat",
+SpellCheck : "Stavekontrol",
+UniversalKeyboard : "Universaltastatur",
+PageBreakLbl : "Sidskift",
+PageBreak : "Indsæt sideskift",
+
+Form : "Indsæt formular",
+Checkbox : "Indsæt afkrydsningsfelt",
+RadioButton : "Indsæt alternativknap",
+TextField : "Indsæt tekstfelt",
+Textarea : "Indsæt tekstboks",
+HiddenField : "Indsæt skjult felt",
+Button : "Indsæt knap",
+SelectionField : "Indsæt liste",
+ImageButton : "Indsæt billedknap",
+
+FitWindow : "Maksimer editor vinduet",
+
+// Context Menu
+EditLink : "Rediger hyperlink",
+CellCM : "Celle",
+RowCM : "Række",
+ColumnCM : "Kolonne",
+InsertRow : "Indsæt række",
+DeleteRows : "Slet række",
+InsertColumn : "Indsæt kolonne",
+DeleteColumns : "Slet kolonne",
+InsertCell : "Indsæt celle",
+DeleteCells : "Slet celle",
+MergeCells : "Flet celler",
+SplitCell : "Opdel celle",
+TableDelete : "Slet tabel",
+CellProperties : "Egenskaber for celle",
+TableProperties : "Egenskaber for tabel",
+ImageProperties : "Egenskaber for billede",
+FlashProperties : "Egenskaber for Flash",
+
+AnchorProp : "Egenskaber for bogmærke",
+ButtonProp : "Egenskaber for knap",
+CheckboxProp : "Egenskaber for afkrydsningsfelt",
+HiddenFieldProp : "Egenskaber for skjult felt",
+RadioButtonProp : "Egenskaber for alternativknap",
+ImageButtonProp : "Egenskaber for billedknap",
+TextFieldProp : "Egenskaber for tekstfelt",
+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)",
+
+// Alerts and Messages
+ProcessingXHTML : "Behandler XHTML...",
+Done : "Færdig",
+PasteWordConfirm : "Den tekst du forsøger at indsætte ser ud til at komme fra Word.
Vil du rense teksten før den indsættes?",
+NotCompatiblePaste : "Denne kommando er tilgændelig i Internet Explorer 5.5 eller senere.
Vil du indsætte teksten uden at rense den ?",
+UnknownToolbarItem : "Ukendt værktøjslinjeobjekt \"%1\"!",
+UnknownCommand : "Ukendt kommandonavn \"%1\"!",
+NotImplemented : "Kommandoen er ikke implementeret!",
+UnknownToolbarSet : "Værktøjslinjen \"%1\" eksisterer ikke!",
+NoActiveX : "Din browsers sikkerhedsindstillinger begrænser nogle af editorens muligheder.
Slå \"Kør ActiveX-objekter og plug-ins\" til, ellers vil du opleve fejl og manglende muligheder.",
+BrowseServerBlocked : "Browseren kunne ikke åbne de nødvendige ressourcer!
Slå pop-up blokering fra.",
+DialogBlocked : "Dialogvinduet kunne ikke åbnes!
Slå pop-up blokering fra.",
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Annuller",
+DlgBtnClose : "Luk",
+DlgBtnBrowseServer : "Gennemse...",
+DlgAdvancedTag : "Avanceret",
+DlgOpOther : "",
+DlgInfoTab : "Generelt",
+DlgAlertUrl : "Indtast URL",
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Tekstretning",
+DlgGenLangDirLtr : "Fra venstre mod højre (LTR)",
+DlgGenLangDirRtl : "Fra højre mod venstre (RTL)",
+DlgGenLangCode : "Sprogkode",
+DlgGenAccessKey : "Genvejstast",
+DlgGenName : "Navn",
+DlgGenTabIndex : "Tabulator indeks",
+DlgGenLongDescr : "Udvidet beskrivelse",
+DlgGenClass : "Typografiark",
+DlgGenTitle : "Titel",
+DlgGenContType : "Indholdstype",
+DlgGenLinkCharset : "Tegnsæt",
+DlgGenStyle : "Typografi",
+
+// Image Dialog
+DlgImgTitle : "Egenskaber for billede",
+DlgImgInfoTab : "Generelt",
+DlgImgBtnUpload : "Upload",
+DlgImgURL : "URL",
+DlgImgUpload : "Upload",
+DlgImgAlt : "Alternativ tekst",
+DlgImgWidth : "Bredde",
+DlgImgHeight : "Højde",
+DlgImgLockRatio : "Lås størrelsesforhold",
+DlgBtnResetSize : "Nulstil størrelse",
+DlgImgBorder : "Ramme",
+DlgImgHSpace : "HMargen",
+DlgImgVSpace : "VMargen",
+DlgImgAlign : "Justering",
+DlgImgAlignLeft : "Venstre",
+DlgImgAlignAbsBottom: "Absolut nederst",
+DlgImgAlignAbsMiddle: "Absolut centreret",
+DlgImgAlignBaseline : "Grundlinje",
+DlgImgAlignBottom : "Nederst",
+DlgImgAlignMiddle : "Centreret",
+DlgImgAlignRight : "Højre",
+DlgImgAlignTextTop : "Toppen af teksten",
+DlgImgAlignTop : "Øverst",
+DlgImgPreview : "Vis eksempel",
+DlgImgAlertUrl : "Indtast stien til billedet",
+DlgImgLinkTab : "Hyperlink",
+
+// Flash Dialog
+DlgFlashTitle : "Egenskaber for Flash",
+DlgFlashChkPlay : "Automatisk afspilning",
+DlgFlashChkLoop : "Gentagelse",
+DlgFlashChkMenu : "Vis Flash menu",
+DlgFlashScale : "Skalér",
+DlgFlashScaleAll : "Vis alt",
+DlgFlashScaleNoBorder : "Ingen ramme",
+DlgFlashScaleFit : "Tilpas størrelse",
+
+// Link Dialog
+DlgLnkWindowTitle : "Egenskaber for hyperlink",
+DlgLnkInfoTab : "Generelt",
+DlgLnkTargetTab : "Mål",
+
+DlgLnkType : "Hyperlink type",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Bogmærke på denne side",
+DlgLnkTypeEMail : "E-mail",
+DlgLnkProto : "Protokol",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Vælg et anker",
+DlgLnkAnchorByName : "Efter anker navn",
+DlgLnkAnchorById : "Efter element Id",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "E-mailadresse",
+DlgLnkEMailSubject : "Emne",
+DlgLnkEMailBody : "Brødtekst",
+DlgLnkUpload : "Upload",
+DlgLnkBtnUpload : "Upload",
+
+DlgLnkTarget : "Mål",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "Nyt vindue (_blank)",
+DlgLnkTargetParent : "Overordnet ramme (_parent)",
+DlgLnkTargetSelf : "Samme vindue (_self)",
+DlgLnkTargetTop : "Hele vinduet (_top)",
+DlgLnkTargetFrameName : "Destinationsvinduets navn",
+DlgLnkPopWinName : "Pop-up vinduets navn",
+DlgLnkPopWinFeat : "Egenskaber for pop-up",
+DlgLnkPopResize : "Skalering",
+DlgLnkPopLocation : "Adresselinje",
+DlgLnkPopMenu : "Menulinje",
+DlgLnkPopScroll : "Scrollbars",
+DlgLnkPopStatus : "Statuslinje",
+DlgLnkPopToolbar : "Værktøjslinje",
+DlgLnkPopFullScrn : "Fuld skærm (IE)",
+DlgLnkPopDependent : "Koblet/dependent (Netscape)",
+DlgLnkPopWidth : "Bredde",
+DlgLnkPopHeight : "Højde",
+DlgLnkPopLeft : "Position fra venstre",
+DlgLnkPopTop : "Position fra toppen",
+
+DlnLnkMsgNoUrl : "Indtast hyperlink URL!",
+DlnLnkMsgNoEMail : "Indtast e-mailaddresse!",
+DlnLnkMsgNoAnchor : "Vælg bogmærke!",
+
+// Color Dialog
+DlgColorTitle : "Vælg farve",
+DlgColorBtnClear : "Nulstil",
+DlgColorHighlight : "Markeret",
+DlgColorSelected : "Valgt",
+
+// Smiley Dialog
+DlgSmileyTitle : "Vælg smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Vælg symbol",
+
+// Table Dialog
+DlgTableTitle : "Egenskaber for tabel",
+DlgTableRows : "Rækker",
+DlgTableColumns : "Kolonner",
+DlgTableBorder : "Rammebredde",
+DlgTableAlign : "Justering",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Venstrestillet",
+DlgTableAlignCenter : "Centreret",
+DlgTableAlignRight : "Højrestillet",
+DlgTableWidth : "Bredde",
+DlgTableWidthPx : "pixels",
+DlgTableWidthPc : "procent",
+DlgTableHeight : "Højde",
+DlgTableCellSpace : "Celleafstand",
+DlgTableCellPad : "Cellemargen",
+DlgTableCaption : "Titel",
+DlgTableSummary : "Resume",
+
+// Table Cell Dialog
+DlgCellTitle : "Egenskaber for celle",
+DlgCellWidth : "Bredde",
+DlgCellWidthPx : "pixels",
+DlgCellWidthPc : "procent",
+DlgCellHeight : "Højde",
+DlgCellWordWrap : "Orddeling",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Ja",
+DlgCellWordWrapNo : "Nej",
+DlgCellHorAlign : "Vandret justering",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Venstrestillet",
+DlgCellHorAlignCenter : "Centreret",
+DlgCellHorAlignRight: "Højrestillet",
+DlgCellVerAlign : "Lodret justering",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Øverst",
+DlgCellVerAlignMiddle : "Centreret",
+DlgCellVerAlignBottom : "Nederst",
+DlgCellVerAlignBaseline : "Grundlinje",
+DlgCellRowSpan : "Højde i antal rækker",
+DlgCellCollSpan : "Bredde i antal kolonner",
+DlgCellBackColor : "Baggrundsfarve",
+DlgCellBorderColor : "Rammefarve",
+DlgCellBtnSelect : "Vælg...",
+
+// Find Dialog
+DlgFindTitle : "Find",
+DlgFindFindBtn : "Find",
+DlgFindNotFoundMsg : "Søgeteksten blev ikke fundet!",
+
+// Replace Dialog
+DlgReplaceTitle : "Erstat",
+DlgReplaceFindLbl : "Søg efter:",
+DlgReplaceReplaceLbl : "Erstat med:",
+DlgReplaceCaseChk : "Forskel på store og små bogstaver",
+DlgReplaceReplaceBtn : "Erstat",
+DlgReplaceReplAllBtn : "Erstat alle",
+DlgReplaceWordChk : "Kun hele ord",
+
+// Paste Operations / Dialog
+PasteErrorPaste : "Din browsers sikkerhedsindstillinger tillader ikke editoren at indsætte tekst automatisk!
Brug i stedet tastaturet til at indsætte teksten (Ctrl+V).",
+PasteErrorCut : "Din browsers sikkerhedsindstillinger tillader ikke editoren at klippe tekst automatisk!
Brug i stedet tastaturet til at klippe teksten (Ctrl+X).",
+PasteErrorCopy : "Din browsers sikkerhedsindstillinger tillader ikke editoren at kopiere tekst automatisk!
Brug i stedet tastaturet til at kopiere teksten (Ctrl+C).",
+
+PasteAsText : "Indsæt som ikke-formateret tekst",
+PasteFromWord : "Indsæt fra Word",
+
+DlgPasteMsg2 : "Indsæt i feltet herunder (Ctrl+V) og klik OK.",
+DlgPasteIgnoreFont : "Ignorer font definitioner",
+DlgPasteRemoveStyles : "Ignorer typografi",
+DlgPasteCleanBox : "Slet indhold",
+
+// Color Picker
+ColorAutomatic : "Automatisk",
+ColorMoreColors : "Flere farver...",
+
+// Document Properties
+DocProps : "Egenskaber for dokument",
+
+// Anchor Dialog
+DlgAnchorTitle : "Egenskaber for bogmærke",
+DlgAnchorName : "Bogmærke navn",
+DlgAnchorErrorName : "Indtast bogmærke navn!",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Ikke i ordbogen",
+DlgSpellChangeTo : "Forslag",
+DlgSpellBtnIgnore : "Ignorer",
+DlgSpellBtnIgnoreAll : "Ignorer alle",
+DlgSpellBtnReplace : "Erstat",
+DlgSpellBtnReplaceAll : "Erstat alle",
+DlgSpellBtnUndo : "Tilbage",
+DlgSpellNoSuggestions : "- ingen forslag -",
+DlgSpellProgress : "Stavekontrolen arbejder...",
+DlgSpellNoMispell : "Stavekontrol færdig: Ingen fejl fundet",
+DlgSpellNoChanges : "Stavekontrol færdig: Ingen ord ændret",
+DlgSpellOneChange : "Stavekontrol færdig: Et ord ændret",
+DlgSpellManyChanges : "Stavekontrol færdig: %1 ord ændret",
+
+IeSpellDownload : "Stavekontrol ikke installeret.
Vil du hente den nu?",
+
+// Button Dialog
+DlgButtonText : "Tekst",
+DlgButtonType : "Type",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Navn",
+DlgCheckboxValue : "Værdi",
+DlgCheckboxSelected : "Valgt",
+
+// Form Dialog
+DlgFormName : "Navn",
+DlgFormAction : "Handling",
+DlgFormMethod : "Metod",
+
+// Select Field Dialog
+DlgSelectName : "Navn",
+DlgSelectValue : "Værdi",
+DlgSelectSize : "Størrelse",
+DlgSelectLines : "linier",
+DlgSelectChkMulti : "Tillad flere valg",
+DlgSelectOpAvail : "Valgmuligheder",
+DlgSelectOpText : "Tekst",
+DlgSelectOpValue : "Værdi",
+DlgSelectBtnAdd : "Tilføj",
+DlgSelectBtnModify : "Rediger",
+DlgSelectBtnUp : "Op",
+DlgSelectBtnDown : "Ned",
+DlgSelectBtnSetValue : "Sæt som valgt",
+DlgSelectBtnDelete : "Slet",
+
+// Textarea Dialog
+DlgTextareaName : "Navn",
+DlgTextareaCols : "Kolonner",
+DlgTextareaRows : "Rækker",
+
+// Text Field Dialog
+DlgTextName : "Navn",
+DlgTextValue : "Værdi",
+DlgTextCharWidth : "Bredde (tegn)",
+DlgTextMaxChars : "Max antal tegn",
+DlgTextType : "Type",
+DlgTextTypeText : "Tekst",
+DlgTextTypePass : "Adgangskode",
+
+// Hidden Field Dialog
+DlgHiddenName : "Navn",
+DlgHiddenValue : "Værdi",
+
+// Bulleted List Dialog
+BulletedListProp : "Egenskaber for punktopstilling",
+NumberedListProp : "Egenskaber for talopstilling",
+DlgLstType : "Type",
+DlgLstTypeCircle : "Cirkel",
+DlgLstTypeDisc : "Udfyldt cirkel",
+DlgLstTypeSquare : "Firkant",
+DlgLstTypeNumbers : "Nummereret (1, 2, 3)",
+DlgLstTypeLCase : "Små bogstaver (a, b, c)",
+DlgLstTypeUCase : "Store bogstaver (A, B, C)",
+DlgLstTypeSRoman : "Små romertal (i, ii, iii)",
+DlgLstTypeLRoman : "Store romertal (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "Generelt",
+DlgDocBackTab : "Baggrund",
+DlgDocColorsTab : "Farver og margen",
+DlgDocMetaTab : "Metadata",
+
+DlgDocPageTitle : "Sidetitel",
+DlgDocLangDir : "Sprog",
+DlgDocLangDirLTR : "Fra venstre mod højre (LTR)",
+DlgDocLangDirRTL : "Fra højre mod venstre (RTL)",
+DlgDocLangCode : "Landekode",
+DlgDocCharSet : "Tegnsæt kode",
+DlgDocCharSetOther : "Anden tegnsæt kode",
+
+DlgDocDocType : "Dokumenttype kategori",
+DlgDocDocTypeOther : "Anden dokumenttype kategori",
+DlgDocIncXHTML : "Inkludere XHTML deklartion",
+DlgDocBgColor : "Baggrundsfarve",
+DlgDocBgImage : "Baggrundsbillede URL",
+DlgDocBgNoScroll : "Fastlåst baggrund",
+DlgDocCText : "Tekst",
+DlgDocCLink : "Hyperlink",
+DlgDocCVisited : "Besøgt hyperlink",
+DlgDocCActive : "Aktivt hyperlink",
+DlgDocMargins : "Sidemargen",
+DlgDocMaTop : "Øverst",
+DlgDocMaLeft : "Venstre",
+DlgDocMaRight : "Højre",
+DlgDocMaBottom : "Nederst",
+DlgDocMeIndex : "Dokument index nøgleord (kommasepareret)",
+DlgDocMeDescr : "Dokument beskrivelse",
+DlgDocMeAuthor : "Forfatter",
+DlgDocMeCopy : "Copyright",
+DlgDocPreview : "Vis",
+
+// Templates Dialog
+Templates : "Skabeloner",
+DlgTemplatesTitle : "Indholdsskabeloner",
+DlgTemplatesSelMsg : "Vælg den skabelon, som skal åbnes i editoren.
(Nuværende indhold vil blive overskrevet!):",
+DlgTemplatesLoading : "Henter liste over skabeloner...",
+DlgTemplatesNoTpl : "(Der er ikke defineret nogen skabelon!)",
+
+// About Dialog
+DlgAboutAboutTab : "Om",
+DlgAboutBrowserInfoTab : "Generelt",
+DlgAboutLicenseTab : "Licens",
+DlgAboutVersion : "version",
+DlgAboutLicense : "Licens under vilkår for GNU Lesser General Public License",
+DlgAboutInfo : "For yderlig information gå til"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/de.js b/htdocs/includes/fckeditor/editor/lang/de.js
new file mode 100644
index 00000000000..525c3c9ee40
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/de.js
@@ -0,0 +1,487 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: de.js
+ * German language file.
+ *
+ * File Authors:
+ * Maik Unruh (m.unruh@mm-concept.de)
+ * Hendrik Kramer (HK@lwd.de)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Symbolleiste einklappen",
+ToolbarExpand : "Symbolleiste ausklappen",
+
+// Toolbar Items and Context Menu
+Save : "Speichern",
+NewPage : "Neue Seite",
+Preview : "Vorschau",
+Cut : "Ausschneiden",
+Copy : "Kopieren",
+Paste : "Einfügen",
+PasteText : "aus Textdatei einfügen",
+PasteWord : "aus MS-Word einfügen",
+Print : "Drucken",
+SelectAll : "Alles auswählen",
+RemoveFormat : "Formatierungen entfernen",
+InsertLinkLbl : "Link",
+InsertLink : "Link einfügen/editieren",
+RemoveLink : "Link entfernen",
+Anchor : "Anker einfügen/editieren",
+InsertImageLbl : "Bild",
+InsertImage : "Bild einfügen/editieren",
+InsertFlashLbl : "Flash",
+InsertFlash : "Flash einfügen/editieren",
+InsertTableLbl : "Tabelle",
+InsertTable : "Tabelle einfügen/editieren",
+InsertLineLbl : "Linie",
+InsertLine : "Horizontale Linie einfügen",
+InsertSpecialCharLbl: "Sonderzeichen",
+InsertSpecialChar : "Sonderzeichen einfügen/editieren",
+InsertSmileyLbl : "Smiley",
+InsertSmiley : "Smiley einfügen",
+About : "Über FCKeditor",
+Bold : "Fett",
+Italic : "Kursiv",
+Underline : "Unterstrichen",
+StrikeThrough : "Durchgestrichen",
+Subscript : "Tiefgestellt",
+Superscript : "Hochgestellt",
+LeftJustify : "Linksbündig",
+CenterJustify : "Zentriert",
+RightJustify : "Rechtsbündig",
+BlockJustify : "Blocksatz",
+DecreaseIndent : "Einzug verringern",
+IncreaseIndent : "Einzug erhöhen",
+Undo : "Rückgängig",
+Redo : "Wiederherstellen",
+NumberedListLbl : "Nummerierte Liste",
+NumberedList : "Nummerierte Liste einfügen/entfernen",
+BulletedListLbl : "Liste",
+BulletedList : "Liste einfügen/entfernen",
+ShowTableBorders : "Zeige Tabellenrahmen",
+ShowDetails : "Zeige Details",
+Style : "Style",
+FontFormat : "Format",
+Font : "Schriftart",
+FontSize : "Size",
+TextColor : "Textfarbe",
+BGColor : "Hintergrundfarbe",
+Source : "Quellcode",
+Find : "Finden",
+Replace : "Ersetzen",
+SpellCheck : "Rechtschreibprüfung",
+UniversalKeyboard : "Universal-Tastatur",
+PageBreakLbl : "Seitenumbruch",
+PageBreak : "Seitenumbruch einfügen",
+
+Form : "Formular",
+Checkbox : "Checkbox",
+RadioButton : "Radiobutton",
+TextField : "Textfeld einzeilig",
+Textarea : "Textfeld mehrzeilig",
+HiddenField : "verstecktes Feld",
+Button : "Klickbutton",
+SelectionField : "Auswahlfeld",
+ImageButton : "Bildbutton",
+
+FitWindow : "Editor maximieren",
+
+// Context Menu
+EditLink : "Link editieren",
+CellCM : "Zelle",
+RowCM : "Zeile",
+ColumnCM : "Spalte",
+InsertRow : "Zeile einfügen",
+DeleteRows : "Zeile entfernen",
+InsertColumn : "Spalte einfügen",
+DeleteColumns : "Spalte löschen",
+InsertCell : "Zelle einfügen",
+DeleteCells : "Zelle löschen",
+MergeCells : "Zellen vereinen",
+SplitCell : "Zelle 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",
+TextFieldProp : "Textfeld (einzeilig) Eigenschaften",
+SelectionFieldProp : "Auswahlfeld Eigenschaften",
+TextareaProp : "Textfeld (mehrzeilig) Eigenschaften",
+FormProp : "Formular Eigenschaften",
+
+FontFormats : "Normal;Formatiert;Addresse;Überschrift 1;Überschrift 2;Überschrift 3;Überschrift 4;Überschrift 5;Überschrift 6",
+
+// Alerts and Messages
+ProcessingXHTML : "Bearbeite XHTML. Bitte warten...",
+Done : "Fertig",
+PasteWordConfirm : "Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?",
+NotCompatiblePaste : "Diese Funktion steht nur im Internet Explorer ab Version 5.5 zur Verfügung. Möchten Sie den Text unbereinigt einfügen?",
+UnknownToolbarItem : "Unbekanntes Menüleisten-Objekt \"%1\"",
+UnknownCommand : "Unbekannter Befehl \"%1\"",
+NotImplemented : "Befehl nicht implementiert",
+UnknownToolbarSet : "Menüleiste \"%1\" existiert nicht",
+NoActiveX : "Die Sicherheitseinstellungen Ihres Browsers beschränken evtl. einige Funktionen des Editors. Aktivieren Sie die Option \"ActiveX-Steuerelemente und Plugins ausführen\" in den Sicherheitseinstellungen, um diese Funktionen nutzen zu können",
+BrowseServerBlocked : "Ein Auswahlfenster konnte nicht geöffnet werden. Stellen Sie sicher, das alle Popup-Blocker ausgeschaltet sind.",
+DialogBlocked : "Das Dialog-Fenster konnte nicht geöffnet werden. Stellen Sie sicher, das alle Popup-Blocker ausgeschaltet sind.",
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Abbrechen",
+DlgBtnClose : "Schließen",
+DlgBtnBrowseServer : "Server durchsuchen",
+DlgAdvancedTag : "Erweitert",
+DlgOpOther : "",
+DlgInfoTab : "Info",
+DlgAlertUrl : "Bitte tragen Sie die URL ein",
+
+// General Dialogs Labels
+DlgGenNotSet : "< nichts >",
+DlgGenId : "ID",
+DlgGenLangDir : "Schreibrichtung",
+DlgGenLangDirLtr : "Links nach Rechts (LTR)",
+DlgGenLangDirRtl : "Rechts nach Links (RTL)",
+DlgGenLangCode : "Sprachenkürzel",
+DlgGenAccessKey : "Schlüssel",
+DlgGenName : "Name",
+DlgGenTabIndex : "Tab Index",
+DlgGenLongDescr : "Langform URL",
+DlgGenClass : "Stylesheet Klasse",
+DlgGenTitle : "Titel Beschreibung",
+DlgGenContType : "Content Beschreibung",
+DlgGenLinkCharset : "Ziel-Zeichensatz",
+DlgGenStyle : "Style",
+
+// Image Dialog
+DlgImgTitle : "Bild Eigenschaften",
+DlgImgInfoTab : "Bild-Info",
+DlgImgBtnUpload : "Zum Server senden",
+DlgImgURL : "Bildauswahl",
+DlgImgUpload : "Upload",
+DlgImgAlt : "Alternativer Text",
+DlgImgWidth : "Breite",
+DlgImgHeight : "Höhe",
+DlgImgLockRatio : "Größenverhältniss beibehalten",
+DlgBtnResetSize : "Größe zurücksetzen",
+DlgImgBorder : "Rahmen",
+DlgImgHSpace : "H-Abstand",
+DlgImgVSpace : "V-Abstand",
+DlgImgAlign : "Ausrichtung",
+DlgImgAlignLeft : "Links",
+DlgImgAlignAbsBottom: "Abs Unten",
+DlgImgAlignAbsMiddle: "Abs Mitte",
+DlgImgAlignBaseline : "Baseline",
+DlgImgAlignBottom : "Unten",
+DlgImgAlignMiddle : "Mitte",
+DlgImgAlignRight : "Rechts",
+DlgImgAlignTextTop : "Text Oben",
+DlgImgAlignTop : "Oben",
+DlgImgPreview : "Vorschau",
+DlgImgAlertUrl : "Bitte geben Sie die Bild-URL an",
+DlgImgLinkTab : "Link",
+
+// Flash Dialog
+DlgFlashTitle : "Flash Eigenschaften",
+DlgFlashChkPlay : "autom. Abspielen",
+DlgFlashChkLoop : "Endlosschleife",
+DlgFlashChkMenu : "Flash-Menü aktivieren",
+DlgFlashScale : "Skalierung",
+DlgFlashScaleAll : "Alles anzeigen",
+DlgFlashScaleNoBorder : "ohne Rand",
+DlgFlashScaleFit : "Passgenau",
+
+// Link Dialog
+DlgLnkWindowTitle : "Link",
+DlgLnkInfoTab : "Link Info",
+DlgLnkTargetTab : "Zielseite",
+
+DlgLnkType : "Link-Typ",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Anker in dieser Seite",
+DlgLnkTypeEMail : "E-Mail",
+DlgLnkProto : "Protokoll",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Anker auswählen",
+DlgLnkAnchorByName : "nach Anker Name",
+DlgLnkAnchorById : "nach Element Id",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "E-Mail Addresse",
+DlgLnkEMailSubject : "Betreffzeile",
+DlgLnkEMailBody : "Nachrichtentext",
+DlgLnkUpload : "Upload",
+DlgLnkBtnUpload : "Zum Server senden",
+
+DlgLnkTarget : "Zielseite",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+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",
+DlgLnkPopResize : "Vergrößerbar",
+DlgLnkPopLocation : "Adress-Leiste",
+DlgLnkPopMenu : "Menü-Leiste",
+DlgLnkPopScroll : "Rollbalken",
+DlgLnkPopStatus : "Statusleiste",
+DlgLnkPopToolbar : "Werkzeugleiste",
+DlgLnkPopFullScrn : "Vollbild (IE)",
+DlgLnkPopDependent : "Abhängig (Netscape)",
+DlgLnkPopWidth : "Breite",
+DlgLnkPopHeight : "Höhe",
+DlgLnkPopLeft : "Linke Position",
+DlgLnkPopTop : "Obere Position",
+
+DlnLnkMsgNoUrl : "Bitte geben Sie die Link-URL an",
+DlnLnkMsgNoEMail : "Bitte geben Sie e-Mail Adresse an",
+DlnLnkMsgNoAnchor : "Bitte wählen Sie einen Anker aus",
+
+// Color Dialog
+DlgColorTitle : "Farbauswahl",
+DlgColorBtnClear : "Keine Farbe",
+DlgColorHighlight : "Vorschau",
+DlgColorSelected : "Ausgewählt",
+
+// Smiley Dialog
+DlgSmileyTitle : "Smiley auswählen",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Sonderzeichen auswählen",
+
+// Table Dialog
+DlgTableTitle : "Tabellen Eigenschaften",
+DlgTableRows : "Zeile",
+DlgTableColumns : "Spalte",
+DlgTableBorder : "Rahmen",
+DlgTableAlign : "Ausrichtung",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Links",
+DlgTableAlignCenter : "Zentriert",
+DlgTableAlignRight : "Rechts",
+DlgTableWidth : "Breite",
+DlgTableWidthPx : "Pixel",
+DlgTableWidthPc : "%",
+DlgTableHeight : "Höhe",
+DlgTableCellSpace : "Zellenabstand außen",
+DlgTableCellPad : "Zellenabstand innen",
+DlgTableCaption : "Überschrift",
+DlgTableSummary : "Inhaltsübersicht",
+
+// Table Cell Dialog
+DlgCellTitle : "Zellen-Eigenschaften",
+DlgCellWidth : "Breite",
+DlgCellWidthPx : "Pixel",
+DlgCellWidthPc : "%",
+DlgCellHeight : "Höhe",
+DlgCellWordWrap : "Umbruch",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Ja",
+DlgCellWordWrapNo : "Nein",
+DlgCellHorAlign : "Horizontale Ausrichtung",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Links",
+DlgCellHorAlignCenter : "Zentriert",
+DlgCellHorAlignRight: "Rechts",
+DlgCellVerAlign : "Vertikale Ausrichtung",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Oben",
+DlgCellVerAlignMiddle : "Mitte",
+DlgCellVerAlignBottom : "Unten",
+DlgCellVerAlignBaseline : "Grundlinie",
+DlgCellRowSpan : "Zeilen zusammenfassen",
+DlgCellCollSpan : "Spalten zusammenfassen",
+DlgCellBackColor : "Hintergrundfarbe",
+DlgCellBorderColor : "Rahmenfarbe",
+DlgCellBtnSelect : "Auswahl...",
+
+// Find Dialog
+DlgFindTitle : "Finden",
+DlgFindFindBtn : "Finden",
+DlgFindNotFoundMsg : "Der gesuchte Text wurde nicht gefunden.",
+
+// Replace Dialog
+DlgReplaceTitle : "Ersetzen",
+DlgReplaceFindLbl : "Suche nach:",
+DlgReplaceReplaceLbl : "Ersetze mit:",
+DlgReplaceCaseChk : "Groß-Kleinschreibung beachten",
+DlgReplaceReplaceBtn : "Ersetzen",
+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 Ctrl+V) ein und bestätigen Sie mit OK.",
+DlgPasteIgnoreFont : "Ignoriere Schriftart-Definitionen",
+DlgPasteRemoveStyles : "Entferne Style-Definitionen",
+DlgPasteCleanBox : "Inhalt aufräumen",
+
+// Color Picker
+ColorAutomatic : "Automatisch",
+ColorMoreColors : "Weitere Farben...",
+
+// Document Properties
+DocProps : "Dokument Eigenschaften",
+
+// Anchor Dialog
+DlgAnchorTitle : "Anker Eigenschaften",
+DlgAnchorName : "Anker Name",
+DlgAnchorErrorName : "Bitte geben Sie den Namen des Ankers ein",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Nicht im Wörterbuch",
+DlgSpellChangeTo : "Ändern in",
+DlgSpellBtnIgnore : "Ignorieren",
+DlgSpellBtnIgnoreAll : "Alle Ignorieren",
+DlgSpellBtnReplace : "Ersetzen",
+DlgSpellBtnReplaceAll : "Alle Ersetzen",
+DlgSpellBtnUndo : "Rückgängig",
+DlgSpellNoSuggestions : " - keine Vorschläge - ",
+DlgSpellProgress : "Rechtschreibprüfung läuft...",
+DlgSpellNoMispell : "Rechtschreibprüfung abgeschlossen - keine Fehler gefunden",
+DlgSpellNoChanges : "Rechtschreibprüfung abgeschlossen - keine Worte geändert",
+DlgSpellOneChange : "Rechtschreibprüfung abgeschlossen - ein Wort geändert",
+DlgSpellManyChanges : "Rechtschreibprüfung abgeschlossen - %1 Wörter geändert",
+
+IeSpellDownload : "Rechtschreibprüfung nicht installiert. Möchten Sie sie jetzt herunterladen?",
+
+// Button Dialog
+DlgButtonText : "Text (Wert)",
+DlgButtonType : "Typ",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Name",
+DlgCheckboxValue : "Wert",
+DlgCheckboxSelected : "ausgewählt",
+
+// Form Dialog
+DlgFormName : "Name",
+DlgFormAction : "Action",
+DlgFormMethod : "Method",
+
+// Select Field Dialog
+DlgSelectName : "Name",
+DlgSelectValue : "Wert",
+DlgSelectSize : "Größe",
+DlgSelectLines : "Linien",
+DlgSelectChkMulti : "Erlaube Mehrfachauswahl",
+DlgSelectOpAvail : "Mögliche Optionen",
+DlgSelectOpText : "Text",
+DlgSelectOpValue : "Wert",
+DlgSelectBtnAdd : "Hinzufügen",
+DlgSelectBtnModify : "Ändern",
+DlgSelectBtnUp : "Hoch",
+DlgSelectBtnDown : "Runter",
+DlgSelectBtnSetValue : "Setze als Standardwert",
+DlgSelectBtnDelete : "Entfernen",
+
+// Textarea Dialog
+DlgTextareaName : "Name",
+DlgTextareaCols : "Spalten",
+DlgTextareaRows : "Reihen",
+
+// Text Field Dialog
+DlgTextName : "Name",
+DlgTextValue : "Wert",
+DlgTextCharWidth : "Zeichenbreite",
+DlgTextMaxChars : "Max. Zeichen",
+DlgTextType : "Typ",
+DlgTextTypeText : "Text",
+DlgTextTypePass : "Passwort",
+
+// Hidden Field Dialog
+DlgHiddenName : "Name",
+DlgHiddenValue : "Wert",
+
+// Bulleted List Dialog
+BulletedListProp : "Listen-Eigenschaften",
+NumberedListProp : "Nummerierte Listen-Eigenschaften",
+DlgLstType : "Typ",
+DlgLstTypeCircle : "Ring",
+DlgLstTypeDisc : "Kreis",
+DlgLstTypeSquare : "Quadrat",
+DlgLstTypeNumbers : "Nummern (1, 2, 3)",
+DlgLstTypeLCase : "Kleinbuchstaben (a, b, c)",
+DlgLstTypeUCase : "Großbuchstaben (A, B, C)",
+DlgLstTypeSRoman : "Kleine römische Zahlen (i, ii, iii)",
+DlgLstTypeLRoman : "Große römische Zahlen (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "Allgemein",
+DlgDocBackTab : "Hintergrund",
+DlgDocColorsTab : "Farben und Abstände",
+DlgDocMetaTab : "Metadaten",
+
+DlgDocPageTitle : "Seitentitel",
+DlgDocLangDir : "Schriftrichtung",
+DlgDocLangDirLTR : "Links nach Rechts",
+DlgDocLangDirRTL : "rechts nach Links",
+DlgDocLangCode : "Sprachkürzel",
+DlgDocCharSet : "Zeichenkodierung",
+DlgDocCharSetOther : "Andere Zeichenkodierung",
+
+DlgDocDocType : "Dokumententyp",
+DlgDocDocTypeOther : "Anderer Dokumententyp",
+DlgDocIncXHTML : "Beziehe XHTML Deklarationen ein",
+DlgDocBgColor : "Hintergrundfarbe",
+DlgDocBgImage : "Hintergrundbild URL",
+DlgDocBgNoScroll : "feststehender Hintergrund",
+DlgDocCText : "Text",
+DlgDocCLink : "Link",
+DlgDocCVisited : "Besuchter Link",
+DlgDocCActive : "Aktiver Link",
+DlgDocMargins : "Seitenränder",
+DlgDocMaTop : "Oben",
+DlgDocMaLeft : "Links",
+DlgDocMaRight : "Rechts",
+DlgDocMaBottom : "Unten",
+DlgDocMeIndex : "Schlüsselwörter (durch Komma getrennt)",
+DlgDocMeDescr : "Dokument-Beschreibung",
+DlgDocMeAuthor : "Autor",
+DlgDocMeCopy : "Copyright",
+DlgDocPreview : "Vorschau",
+
+// Templates Dialog
+Templates : "Vorlagen",
+DlgTemplatesTitle : "Vorlagen",
+DlgTemplatesSelMsg : "Klicken Sie auf eine Vorlage, um sie im Editor zu öffnen (der aktuelle Inhalt wird dabei gelöscht!):",
+DlgTemplatesLoading : "Liste der Vorlagen wird geladen. Bitte warten...",
+DlgTemplatesNoTpl : "(keine Vorlagen definiert)",
+
+// About Dialog
+DlgAboutAboutTab : "Über",
+DlgAboutBrowserInfoTab : "Browser-Info",
+DlgAboutLicenseTab : "Lizenz",
+DlgAboutVersion : "Version",
+DlgAboutLicense : "Lizensiert unter den Richtlinien der GNU Lesser General Public License",
+DlgAboutInfo : "Für weitere Informationen siehe"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/el.js b/htdocs/includes/fckeditor/editor/lang/el.js
new file mode 100644
index 00000000000..b6800f59f52
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/el.js
@@ -0,0 +1,486 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: el.js
+ * Greek language file.
+ *
+ * File Authors:
+ * Spyros Barbatos (sbarbatos{at}users.sourceforge.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Απόκρυψη Μπάρας Εργαλείων",
+ToolbarExpand : "Εμφάνιση Μπάρας Εργαλείων",
+
+// Toolbar Items and Context Menu
+Save : "Αποθήκευση",
+NewPage : "Νέα Σελίδα",
+Preview : "Προεπισκόπιση",
+Cut : "Αποκοπή",
+Copy : "Αντιγραφή",
+Paste : "Επικόλληση",
+PasteText : "Επικόλληση (απλό κείμενο)",
+PasteWord : "Επικόλληση από το Word",
+Print : "Εκτύπωση",
+SelectAll : "Επιλογή όλων",
+RemoveFormat : "Αφαίρεση Μορφοποίησης",
+InsertLinkLbl : "Σύνδεσμος (Link)",
+InsertLink : "Εισαγωγή/Μεταβολή Συνδέσμου (Link)",
+RemoveLink : "Αφαίρεση Συνδέσμου (Link)",
+Anchor : "Insert/Edit Anchor", //MISSING
+InsertImageLbl : "Εικόνα",
+InsertImage : "Εισαγωγή/Μεταβολή Εικόνας",
+InsertFlashLbl : "Flash", //MISSING
+InsertFlash : "Insert/Edit Flash", //MISSING
+InsertTableLbl : "Πίνακας",
+InsertTable : "Εισαγωγή/Μεταβολή Πίνακα",
+InsertLineLbl : "Γραμμή",
+InsertLine : "Εισαγωγή Οριζόντιας Γραμμής",
+InsertSpecialCharLbl: "Ειδικό Σύμβολο",
+InsertSpecialChar : "Εισαγωγή Ειδικού Συμβόλου",
+InsertSmileyLbl : "Smiley",
+InsertSmiley : "Εισαγωγή Smiley",
+About : "Περί του FCKeditor",
+Bold : "Έντονα",
+Italic : "Πλάγια",
+Underline : "Υπογράμμιση",
+StrikeThrough : "Διαγράμμιση",
+Subscript : "Δείκτης",
+Superscript : "Εκθέτης",
+LeftJustify : "Στοίχιση Αριστερά",
+CenterJustify : "Στοίχιση στο Κέντρο",
+RightJustify : "Στοίχιση Δεξιά",
+BlockJustify : "Πλήρης Στοίχιση (Block)",
+DecreaseIndent : "Μείωση Εσοχής",
+IncreaseIndent : "Αύξηση Εσοχής",
+Undo : "Undo",
+Redo : "Redo",
+NumberedListLbl : "Λίστα με Αριθμούς",
+NumberedList : "Εισαγωγή/Διαγραφή Λίστας με Αριθμούς",
+BulletedListLbl : "Λίστα με Bullets",
+BulletedList : "Εισαγωγή/Διαγραφή Λίστας με Bullets",
+ShowTableBorders : "Προβολή Ορίων Πίνακα",
+ShowDetails : "Προβολή Λεπτομερειών",
+Style : "Style",
+FontFormat : "Μορφή Γραμματοσειράς",
+Font : "Γραμματοσειρά",
+FontSize : "Μέγεθος",
+TextColor : "Χρώμα Γραμμάτων",
+BGColor : "Χρώμα Υποβάθρου",
+Source : "HTML κώδικας",
+Find : "Αναζήτηση",
+Replace : "Αντικατάσταση",
+SpellCheck : "Check Spelling", //MISSING
+UniversalKeyboard : "Universal Keyboard", //MISSING
+PageBreakLbl : "Page Break", //MISSING
+PageBreak : "Insert Page Break", //MISSING
+
+Form : "Form", //MISSING
+Checkbox : "Checkbox", //MISSING
+RadioButton : "Radio Button", //MISSING
+TextField : "Text Field", //MISSING
+Textarea : "Textarea", //MISSING
+HiddenField : "Hidden Field", //MISSING
+Button : "Button", //MISSING
+SelectionField : "Selection Field", //MISSING
+ImageButton : "Image Button", //MISSING
+
+FitWindow : "Maximize the editor size", //MISSING
+
+// Context Menu
+EditLink : "Μεταβολή Συνδέσμου (Link)",
+CellCM : "Cell", //MISSING
+RowCM : "Row", //MISSING
+ColumnCM : "Column", //MISSING
+InsertRow : "Εισαγωγή Γραμμής",
+DeleteRows : "Διαγραφή Γραμμών",
+InsertColumn : "Εισαγωγή Κολώνας",
+DeleteColumns : "Διαγραφή Κολωνών",
+InsertCell : "Εισαγωγή Κελιού",
+DeleteCells : "Διαγραφή Κελιών",
+MergeCells : "Ενοποίηση Κελιών",
+SplitCell : "Διαχωρισμός Κελιού",
+TableDelete : "Delete Table", //MISSING
+CellProperties : "Ιδιότητες Κελιού",
+TableProperties : "Ιδιότητες Πίνακα",
+ImageProperties : "Ιδιότητες Εικόνας",
+FlashProperties : "Flash Properties", //MISSING
+
+AnchorProp : "Anchor Properties", //MISSING
+ButtonProp : "Button Properties", //MISSING
+CheckboxProp : "Checkbox Properties", //MISSING
+HiddenFieldProp : "Hidden Field Properties", //MISSING
+RadioButtonProp : "Radio Button Properties", //MISSING
+ImageButtonProp : "Image Button Properties", //MISSING
+TextFieldProp : "Text Field Properties", //MISSING
+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",
+
+// Alerts and Messages
+ProcessingXHTML : "Επεξεργασία XHTML. Παρακαλώ περιμένετε...",
+Done : "Έτοιμο",
+PasteWordConfirm : "Το κείμενο που θέλετε να επικολήσετε, φαίνεται πως προέρχεται από το Word. Θέλετε να καθαριστεί πριν επικοληθεί;",
+NotCompatiblePaste : "Αυτή η επιλογή είναι διαθέσιμη στον Internet Explorer έκδοση 5.5+. Θέλετε να γίνει η επικόλληση χωρίς καθαρισμό;",
+UnknownToolbarItem : "Άγνωστο αντικείμενο της μπάρας εργαλείων \"%1\"",
+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
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Ακύρωση",
+DlgBtnClose : "Κλείσιμο",
+DlgBtnBrowseServer : "Browse Server", //MISSING
+DlgAdvancedTag : "Για προχωρημένους",
+DlgOpOther : "", //MISSING
+DlgInfoTab : "Info", //MISSING
+DlgAlertUrl : "Please insert the URL", //MISSING
+
+// General Dialogs Labels
+DlgGenNotSet : "<χωρίς>",
+DlgGenId : "Id",
+DlgGenLangDir : "Κατεύθυνση κειμένου",
+DlgGenLangDirLtr : "Αριστερά προς Δεξιά (LTR)",
+DlgGenLangDirRtl : "Δεξιά προς Αριστερά (RTL)",
+DlgGenLangCode : "Κωδικός Γλώσσας",
+DlgGenAccessKey : "Συντόμευση (Access Key)",
+DlgGenName : "Name",
+DlgGenTabIndex : "Tab Index",
+DlgGenLongDescr : "Long Description URL",
+DlgGenClass : "Stylesheet Classes",
+DlgGenTitle : "Advisory Title",
+DlgGenContType : "Advisory Content Type",
+DlgGenLinkCharset : "Linked Resource Charset",
+DlgGenStyle : "Style",
+
+// Image Dialog
+DlgImgTitle : "Ιδιότητες Εικόνας",
+DlgImgInfoTab : "Πληροφορίες Εικόνας",
+DlgImgBtnUpload : "Αποστολή στον Διακομιστή",
+DlgImgURL : "URL",
+DlgImgUpload : "Αποστολή",
+DlgImgAlt : "Εναλλακτικό Κείμενο (ALT)",
+DlgImgWidth : "Πλάτος",
+DlgImgHeight : "Ύψος",
+DlgImgLockRatio : "Κλείδωμα Αναλογίας",
+DlgBtnResetSize : "Επαναφορά Αρχικού Μεγέθους",
+DlgImgBorder : "Περιθώριο",
+DlgImgHSpace : "Οριζόντιος Χώρος (HSpace)",
+DlgImgVSpace : "Κάθετος Χώρος (VSpace)",
+DlgImgAlign : "Ευθυγράμμιση (Align)",
+DlgImgAlignLeft : "Αριστερά",
+DlgImgAlignAbsBottom: "Απόλυτα Κάτω (Abs Bottom)",
+DlgImgAlignAbsMiddle: "Απόλυτα στη Μέση (Abs Middle)",
+DlgImgAlignBaseline : "Γραμμή Βάσης (Baseline)",
+DlgImgAlignBottom : "Κάτω (Bottom)",
+DlgImgAlignMiddle : "Μέση (Middle)",
+DlgImgAlignRight : "Δεξιά (Right)",
+DlgImgAlignTextTop : "Κορυφή Κειμένου (Text Top)",
+DlgImgAlignTop : "Πάνω (Top)",
+DlgImgPreview : "Προεπισκόπιση",
+DlgImgAlertUrl : "Εισάγετε την τοποθεσία (URL) της εικόνας",
+DlgImgLinkTab : "Link", //MISSING
+
+// 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
+
+// Link Dialog
+DlgLnkWindowTitle : "Υπερσύνδεσμος (Link)",
+DlgLnkInfoTab : "Link",
+DlgLnkTargetTab : "Παράθυρο Στόχος (Target)",
+
+DlgLnkType : "Τύπος Υπερσυνδέσμου (Link)",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Anchor in this page",
+DlgLnkTypeEMail : "E-Mail",
+DlgLnkProto : "Protocol",
+DlgLnkProtoOther : "<άλλο>",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Επιλέξτε ένα Anchor",
+DlgLnkAnchorByName : "Βάσει του Ονόματος (Name)του Anchor",
+DlgLnkAnchorById : "Βάσει του Element Id",
+DlgLnkNoAnchors : "<Δεν υπάρχουν Anchors στο κείμενο>",
+DlgLnkEMail : "Διεύθυνση Ηλεκτρονικού Ταχυδρομείου",
+DlgLnkEMailSubject : "Θέμα Μηνύματος",
+DlgLnkEMailBody : "Κείμενο Μηνύματος",
+DlgLnkUpload : "Αποστολή",
+DlgLnkBtnUpload : "Αποστολή στον Διακομιστή",
+
+DlgLnkTarget : "Παράθυρο Στόχος (Target)",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "Νέο Παράθυρο (_blank)",
+DlgLnkTargetParent : "Γονικό Παράθυρο (_parent)",
+DlgLnkTargetSelf : "Ίδιο Παράθυρο (_self)",
+DlgLnkTargetTop : "Ανώτατο Παράθυρο (_top)",
+DlgLnkTargetFrameName : "Target Frame Name", //MISSING
+DlgLnkPopWinName : "Όνομα Popup Window",
+DlgLnkPopWinFeat : "Επιλογές Popup Window",
+DlgLnkPopResize : "Με αλλαγή Μεγέθους",
+DlgLnkPopLocation : "Μπάρα Τοποθεσίας",
+DlgLnkPopMenu : "Μπάρα Menu",
+DlgLnkPopScroll : "Μπάρες Κύλισης",
+DlgLnkPopStatus : "Μπάρα Status",
+DlgLnkPopToolbar : "Μπάρα Εργαλείων",
+DlgLnkPopFullScrn : "Ολόκληρη η Οθόνη (IE)",
+DlgLnkPopDependent : "Dependent (Netscape)",
+DlgLnkPopWidth : "Πλάτος",
+DlgLnkPopHeight : "Ύψος",
+DlgLnkPopLeft : "Τοποθεσία Αριστερής Άκρης",
+DlgLnkPopTop : "Τοποθεσία Πάνω Άκρης",
+
+DlnLnkMsgNoUrl : "Εισάγετε την τοποθεσία (URL) του υπερσυνδέσμου (Link)",
+DlnLnkMsgNoEMail : "Εισάγετε την διεύθυνση ηλεκτρονικού ταχυδρομείου",
+DlnLnkMsgNoAnchor : "Επιλέξτε ένα Anchor",
+
+// Color Dialog
+DlgColorTitle : "Επιλογή χρώματος",
+DlgColorBtnClear : "Καθαρισμός",
+DlgColorHighlight : "Προεπισκόπιση",
+DlgColorSelected : "Επιλεγμένο",
+
+// Smiley Dialog
+DlgSmileyTitle : "Επιλέξτε ένα Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Επιλέξτε ένα Ειδικό Σύμβολο",
+
+// Table Dialog
+DlgTableTitle : "Ιδιότητες Πίνακα",
+DlgTableRows : "Γραμμές",
+DlgTableColumns : "Κολώνες",
+DlgTableBorder : "Μέγεθος Περιθωρίου",
+DlgTableAlign : "Στοίχιση",
+DlgTableAlignNotSet : "<χωρίς>",
+DlgTableAlignLeft : "Αριστερά",
+DlgTableAlignCenter : "Κέντρο",
+DlgTableAlignRight : "Δεξιά",
+DlgTableWidth : "Πλάτος",
+DlgTableWidthPx : "pixels",
+DlgTableWidthPc : "\%",
+DlgTableHeight : "Ύψος",
+DlgTableCellSpace : "Cell spacing",
+DlgTableCellPad : "Cell padding",
+DlgTableCaption : "Υπέρτιτλος",
+DlgTableSummary : "Summary", //MISSING
+
+// Table Cell Dialog
+DlgCellTitle : "Ιδιότητες Κελιού",
+DlgCellWidth : "Πλάτος",
+DlgCellWidthPx : "pixels",
+DlgCellWidthPc : "\%",
+DlgCellHeight : "Ύψος",
+DlgCellWordWrap : "Με αλλαγή γραμμής",
+DlgCellWordWrapNotSet : "<χωρίς>",
+DlgCellWordWrapYes : "Ναι",
+DlgCellWordWrapNo : "Όχι",
+DlgCellHorAlign : "Οριζόντια Στοίχιση",
+DlgCellHorAlignNotSet : "<χωρίς>",
+DlgCellHorAlignLeft : "Αριστερά",
+DlgCellHorAlignCenter : "Κέντρο",
+DlgCellHorAlignRight: "Δεξιά",
+DlgCellVerAlign : "Κάθετη Στοίχιση",
+DlgCellVerAlignNotSet : "<χωρίς>",
+DlgCellVerAlignTop : "Πάνω (Top)",
+DlgCellVerAlignMiddle : "Μέση (Middle)",
+DlgCellVerAlignBottom : "Κάτω (Bottom)",
+DlgCellVerAlignBaseline : "Γραμμή Βάσης (Baseline)",
+DlgCellRowSpan : "Αριθμός Γραμμών (Rows Span)",
+DlgCellCollSpan : "Αριθμός Κολωνών (Columns Span)",
+DlgCellBackColor : "Χρώμα Υποβάθρου",
+DlgCellBorderColor : "Χρώμα Περιθωρίου",
+DlgCellBtnSelect : "Επιλογή...",
+
+// Find Dialog
+DlgFindTitle : "Αναζήτηση",
+DlgFindFindBtn : "Αναζήτηση",
+DlgFindNotFoundMsg : "Το κείμενο δεν βρέθηκε.",
+
+// Replace Dialog
+DlgReplaceTitle : "Αντικατάσταση",
+DlgReplaceFindLbl : "Αναζήτηση:",
+DlgReplaceReplaceLbl : "Αντικατάσταση με:",
+DlgReplaceCaseChk : "Έλεγχος πεζών/κεφαλαίων",
+DlgReplaceReplaceBtn : "Αντικατάσταση",
+DlgReplaceReplAllBtn : "Αντικατάσταση Όλων",
+DlgReplaceWordChk : "Εύρεση πλήρους λέξης",
+
+// Paste Operations / Dialog
+PasteErrorPaste : "Οι ρυθμίσεις ασφαλείας του φυλλομετρητή σας δεν επιτρέπουν την επιλεγμένη εργασία επικόλλησης. Χρησιμοποιείστε το πληκτρολόγιο (Ctrl+V).",
+PasteErrorCut : "Οι ρυθμίσεις ασφαλείας του φυλλομετρητή σας δεν επιτρέπουν την επιλεγμένη εργασία αποκοπής. Χρησιμοποιείστε το πληκτρολόγιο (Ctrl+X).",
+PasteErrorCopy : "Οι ρυθμίσεις ασφαλείας του φυλλομετρητή σας δεν επιτρέπουν την επιλεγμένη εργασία αντιγραφής. Χρησιμοποιείστε το πληκτρολόγιο (Ctrl+C).",
+
+PasteAsText : "Επικόλληση ως Απλό Κείμενο",
+PasteFromWord : "Επικόλληση από το Word",
+
+DlgPasteMsg2 : "Please paste inside the following box using the keyboard (Ctrl+V) and hit OK.", //MISSING
+DlgPasteIgnoreFont : "Ignore Font Face definitions", //MISSING
+DlgPasteRemoveStyles : "Remove Styles definitions", //MISSING
+DlgPasteCleanBox : "Clean Up Box", //MISSING
+
+// Color Picker
+ColorAutomatic : "Αυτόματο",
+ColorMoreColors : "Περισσότερα χρώματα...",
+
+// Document Properties
+DocProps : "Document Properties", //MISSING
+
+// Anchor Dialog
+DlgAnchorTitle : "Anchor Properties", //MISSING
+DlgAnchorName : "Anchor Name", //MISSING
+DlgAnchorErrorName : "Please type the anchor name", //MISSING
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Not in dictionary", //MISSING
+DlgSpellChangeTo : "Change to", //MISSING
+DlgSpellBtnIgnore : "Ignore", //MISSING
+DlgSpellBtnIgnoreAll : "Ignore All", //MISSING
+DlgSpellBtnReplace : "Replace", //MISSING
+DlgSpellBtnReplaceAll : "Replace All", //MISSING
+DlgSpellBtnUndo : "Undo", //MISSING
+DlgSpellNoSuggestions : "- No suggestions -", //MISSING
+DlgSpellProgress : "Spell check in progress...", //MISSING
+DlgSpellNoMispell : "Spell check complete: No misspellings found", //MISSING
+DlgSpellNoChanges : "Spell check complete: No words changed", //MISSING
+DlgSpellOneChange : "Spell check complete: One word changed", //MISSING
+DlgSpellManyChanges : "Spell check complete: %1 words changed", //MISSING
+
+IeSpellDownload : "Spell checker not installed. Do you want to download it now?", //MISSING
+
+// Button Dialog
+DlgButtonText : "Text (Value)", //MISSING
+DlgButtonType : "Type", //MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Name", //MISSING
+DlgCheckboxValue : "Value", //MISSING
+DlgCheckboxSelected : "Selected", //MISSING
+
+// Form Dialog
+DlgFormName : "Name", //MISSING
+DlgFormAction : "Action", //MISSING
+DlgFormMethod : "Method", //MISSING
+
+// Select Field Dialog
+DlgSelectName : "Name", //MISSING
+DlgSelectValue : "Value", //MISSING
+DlgSelectSize : "Size", //MISSING
+DlgSelectLines : "lines", //MISSING
+DlgSelectChkMulti : "Allow multiple selections", //MISSING
+DlgSelectOpAvail : "Available Options", //MISSING
+DlgSelectOpText : "Text", //MISSING
+DlgSelectOpValue : "Value", //MISSING
+DlgSelectBtnAdd : "Add", //MISSING
+DlgSelectBtnModify : "Modify", //MISSING
+DlgSelectBtnUp : "Up", //MISSING
+DlgSelectBtnDown : "Down", //MISSING
+DlgSelectBtnSetValue : "Set as selected value", //MISSING
+DlgSelectBtnDelete : "Delete", //MISSING
+
+// Textarea Dialog
+DlgTextareaName : "Name", //MISSING
+DlgTextareaCols : "Columns", //MISSING
+DlgTextareaRows : "Rows", //MISSING
+
+// Text Field Dialog
+DlgTextName : "Name", //MISSING
+DlgTextValue : "Value", //MISSING
+DlgTextCharWidth : "Character Width", //MISSING
+DlgTextMaxChars : "Maximum Characters", //MISSING
+DlgTextType : "Type", //MISSING
+DlgTextTypeText : "Text", //MISSING
+DlgTextTypePass : "Password", //MISSING
+
+// Hidden Field Dialog
+DlgHiddenName : "Name", //MISSING
+DlgHiddenValue : "Value", //MISSING
+
+// Bulleted List Dialog
+BulletedListProp : "Bulleted List Properties", //MISSING
+NumberedListProp : "Numbered List Properties", //MISSING
+DlgLstType : "Type", //MISSING
+DlgLstTypeCircle : "Circle", //MISSING
+DlgLstTypeDisc : "Disc", //MISSING
+DlgLstTypeSquare : "Square", //MISSING
+DlgLstTypeNumbers : "Numbers (1, 2, 3)", //MISSING
+DlgLstTypeLCase : "Lowercase Letters (a, b, c)", //MISSING
+DlgLstTypeUCase : "Uppercase Letters (A, B, C)", //MISSING
+DlgLstTypeSRoman : "Small Roman Numerals (i, ii, iii)", //MISSING
+DlgLstTypeLRoman : "Large Roman Numerals (I, II, III)", //MISSING
+
+// Document Properties Dialog
+DlgDocGeneralTab : "General", //MISSING
+DlgDocBackTab : "Background", //MISSING
+DlgDocColorsTab : "Colors and Margins", //MISSING
+DlgDocMetaTab : "Meta Data", //MISSING
+
+DlgDocPageTitle : "Page Title", //MISSING
+DlgDocLangDir : "Language Direction", //MISSING
+DlgDocLangDirLTR : "Left to Right (LTR)", //MISSING
+DlgDocLangDirRTL : "Right to Left (RTL)", //MISSING
+DlgDocLangCode : "Language Code", //MISSING
+DlgDocCharSet : "Character Set Encoding", //MISSING
+DlgDocCharSetOther : "Other Character Set Encoding", //MISSING
+
+DlgDocDocType : "Document Type Heading", //MISSING
+DlgDocDocTypeOther : "Other Document Type Heading", //MISSING
+DlgDocIncXHTML : "Include XHTML Declarations", //MISSING
+DlgDocBgColor : "Background Color", //MISSING
+DlgDocBgImage : "Background Image URL", //MISSING
+DlgDocBgNoScroll : "Nonscrolling Background", //MISSING
+DlgDocCText : "Text", //MISSING
+DlgDocCLink : "Link", //MISSING
+DlgDocCVisited : "Visited Link", //MISSING
+DlgDocCActive : "Active Link", //MISSING
+DlgDocMargins : "Page Margins", //MISSING
+DlgDocMaTop : "Top", //MISSING
+DlgDocMaLeft : "Left", //MISSING
+DlgDocMaRight : "Right", //MISSING
+DlgDocMaBottom : "Bottom", //MISSING
+DlgDocMeIndex : "Document Indexing Keywords (comma separated)", //MISSING
+DlgDocMeDescr : "Document Description", //MISSING
+DlgDocMeAuthor : "Author", //MISSING
+DlgDocMeCopy : "Copyright", //MISSING
+DlgDocPreview : "Preview", //MISSING
+
+// Templates Dialog
+Templates : "Templates", //MISSING
+DlgTemplatesTitle : "Content Templates", //MISSING
+DlgTemplatesSelMsg : "Please select the template to open in the editor
(the actual contents will be lost):", //MISSING
+DlgTemplatesLoading : "Loading templates list. Please wait...", //MISSING
+DlgTemplatesNoTpl : "(No templates defined)", //MISSING
+
+// About Dialog
+DlgAboutAboutTab : "About", //MISSING
+DlgAboutBrowserInfoTab : "Browser Info", //MISSING
+DlgAboutLicenseTab : "License", //MISSING
+DlgAboutVersion : "έκδοση",
+DlgAboutLicense : "Άδεια χρήσης υπό τους όρους της GNU Lesser General Public License",
+DlgAboutInfo : "Για περισσότερες πληροφορίες"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/en-au.js b/htdocs/includes/fckeditor/editor/lang/en-au.js
new file mode 100644
index 00000000000..d06e7342f0e
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/en-au.js
@@ -0,0 +1,487 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: en-au.js
+ * English (Australia) language file.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ * Christopher Dawes (fckeditor@dawes.id.au)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Collapse Toolbar",
+ToolbarExpand : "Expand Toolbar",
+
+// Toolbar Items and Context Menu
+Save : "Save",
+NewPage : "New Page",
+Preview : "Preview",
+Cut : "Cut",
+Copy : "Copy",
+Paste : "Paste",
+PasteText : "Paste as plain text",
+PasteWord : "Paste from Word",
+Print : "Print",
+SelectAll : "Select All",
+RemoveFormat : "Remove Format",
+InsertLinkLbl : "Link",
+InsertLink : "Insert/Edit Link",
+RemoveLink : "Remove Link",
+Anchor : "Insert/Edit Anchor",
+InsertImageLbl : "Image",
+InsertImage : "Insert/Edit Image",
+InsertFlashLbl : "Flash",
+InsertFlash : "Insert/Edit Flash",
+InsertTableLbl : "Table",
+InsertTable : "Insert/Edit Table",
+InsertLineLbl : "Line",
+InsertLine : "Insert Horizontal Line",
+InsertSpecialCharLbl: "Special Character",
+InsertSpecialChar : "Insert Special Character",
+InsertSmileyLbl : "Smiley",
+InsertSmiley : "Insert Smiley",
+About : "About FCKeditor",
+Bold : "Bold",
+Italic : "Italic",
+Underline : "Underline",
+StrikeThrough : "Strike Through",
+Subscript : "Subscript",
+Superscript : "Superscript",
+LeftJustify : "Left Justify",
+CenterJustify : "Centre Justify",
+RightJustify : "Right Justify",
+BlockJustify : "Block Justify",
+DecreaseIndent : "Decrease Indent",
+IncreaseIndent : "Increase Indent",
+Undo : "Undo",
+Redo : "Redo",
+NumberedListLbl : "Numbered List",
+NumberedList : "Insert/Remove Numbered List",
+BulletedListLbl : "Bulleted List",
+BulletedList : "Insert/Remove Bulleted List",
+ShowTableBorders : "Show Table Borders",
+ShowDetails : "Show Details",
+Style : "Style",
+FontFormat : "Format",
+Font : "Font",
+FontSize : "Size",
+TextColor : "Text Colour",
+BGColor : "Background Colour",
+Source : "Source",
+Find : "Find",
+Replace : "Replace",
+SpellCheck : "Check Spelling",
+UniversalKeyboard : "Universal Keyboard",
+PageBreakLbl : "Page Break",
+PageBreak : "Insert Page Break",
+
+Form : "Form",
+Checkbox : "Checkbox",
+RadioButton : "Radio Button",
+TextField : "Text Field",
+Textarea : "Textarea",
+HiddenField : "Hidden Field",
+Button : "Button",
+SelectionField : "Selection Field",
+ImageButton : "Image Button",
+
+FitWindow : "Maximize the editor size",
+
+// Context Menu
+EditLink : "Edit Link",
+CellCM : "Cell",
+RowCM : "Row",
+ColumnCM : "Column",
+InsertRow : "Insert Row",
+DeleteRows : "Delete Rows",
+InsertColumn : "Insert Column",
+DeleteColumns : "Delete Columns",
+InsertCell : "Insert Cell",
+DeleteCells : "Delete Cells",
+MergeCells : "Merge Cells",
+SplitCell : "Split Cell",
+TableDelete : "Delete Table",
+CellProperties : "Cell Properties",
+TableProperties : "Table Properties",
+ImageProperties : "Image Properties",
+FlashProperties : "Flash Properties",
+
+AnchorProp : "Anchor Properties",
+ButtonProp : "Button Properties",
+CheckboxProp : "Checkbox Properties",
+HiddenFieldProp : "Hidden Field Properties",
+RadioButtonProp : "Radio Button Properties",
+ImageButtonProp : "Image Button Properties",
+TextFieldProp : "Text Field Properties",
+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)",
+
+// Alerts and Messages
+ProcessingXHTML : "Processing XHTML. Please wait...",
+Done : "Done",
+PasteWordConfirm : "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?",
+NotCompatiblePaste : "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?",
+UnknownToolbarItem : "Unknown toolbar item \"%1\"",
+UnknownCommand : "Unknown command name \"%1\"",
+NotImplemented : "Command not implemented",
+UnknownToolbarSet : "Toolbar set \"%1\" doesn't exist",
+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.",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
+DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Cancel",
+DlgBtnClose : "Close",
+DlgBtnBrowseServer : "Browse Server",
+DlgAdvancedTag : "Advanced",
+DlgOpOther : "",
+DlgInfoTab : "Info",
+DlgAlertUrl : "Please insert the URL",
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Language Direction",
+DlgGenLangDirLtr : "Left to Right (LTR)",
+DlgGenLangDirRtl : "Right to Left (RTL)",
+DlgGenLangCode : "Language Code",
+DlgGenAccessKey : "Access Key",
+DlgGenName : "Name",
+DlgGenTabIndex : "Tab Index",
+DlgGenLongDescr : "Long Description URL",
+DlgGenClass : "Stylesheet Classes",
+DlgGenTitle : "Advisory Title",
+DlgGenContType : "Advisory Content Type",
+DlgGenLinkCharset : "Linked Resource Charset",
+DlgGenStyle : "Style",
+
+// Image Dialog
+DlgImgTitle : "Image Properties",
+DlgImgInfoTab : "Image Info",
+DlgImgBtnUpload : "Send it to the Server",
+DlgImgURL : "URL",
+DlgImgUpload : "Upload",
+DlgImgAlt : "Alternative Text",
+DlgImgWidth : "Width",
+DlgImgHeight : "Height",
+DlgImgLockRatio : "Lock Ratio",
+DlgBtnResetSize : "Reset Size",
+DlgImgBorder : "Border",
+DlgImgHSpace : "HSpace",
+DlgImgVSpace : "VSpace",
+DlgImgAlign : "Align",
+DlgImgAlignLeft : "Left",
+DlgImgAlignAbsBottom: "Abs Bottom",
+DlgImgAlignAbsMiddle: "Abs Middle",
+DlgImgAlignBaseline : "Baseline",
+DlgImgAlignBottom : "Bottom",
+DlgImgAlignMiddle : "Middle",
+DlgImgAlignRight : "Right",
+DlgImgAlignTextTop : "Text Top",
+DlgImgAlignTop : "Top",
+DlgImgPreview : "Preview",
+DlgImgAlertUrl : "Please type the image URL",
+DlgImgLinkTab : "Link",
+
+// Flash Dialog
+DlgFlashTitle : "Flash Properties",
+DlgFlashChkPlay : "Auto Play",
+DlgFlashChkLoop : "Loop",
+DlgFlashChkMenu : "Enable Flash Menu",
+DlgFlashScale : "Scale",
+DlgFlashScaleAll : "Show all",
+DlgFlashScaleNoBorder : "No Border",
+DlgFlashScaleFit : "Exact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle : "Link",
+DlgLnkInfoTab : "Link Info",
+DlgLnkTargetTab : "Target",
+
+DlgLnkType : "Link Type",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Anchor in this page",
+DlgLnkTypeEMail : "E-Mail",
+DlgLnkProto : "Protocol",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Select an Anchor",
+DlgLnkAnchorByName : "By Anchor Name",
+DlgLnkAnchorById : "By Element Id",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "E-Mail Address",
+DlgLnkEMailSubject : "Message Subject",
+DlgLnkEMailBody : "Message Body",
+DlgLnkUpload : "Upload",
+DlgLnkBtnUpload : "Send it to the Server",
+
+DlgLnkTarget : "Target",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "New Window (_blank)",
+DlgLnkTargetParent : "Parent Window (_parent)",
+DlgLnkTargetSelf : "Same Window (_self)",
+DlgLnkTargetTop : "Topmost Window (_top)",
+DlgLnkTargetFrameName : "Target Frame Name",
+DlgLnkPopWinName : "Popup Window Name",
+DlgLnkPopWinFeat : "Popup Window Features",
+DlgLnkPopResize : "Resizable",
+DlgLnkPopLocation : "Location Bar",
+DlgLnkPopMenu : "Menu Bar",
+DlgLnkPopScroll : "Scroll Bars",
+DlgLnkPopStatus : "Status Bar",
+DlgLnkPopToolbar : "Toolbar",
+DlgLnkPopFullScrn : "Full Screen (IE)",
+DlgLnkPopDependent : "Dependent (Netscape)",
+DlgLnkPopWidth : "Width",
+DlgLnkPopHeight : "Height",
+DlgLnkPopLeft : "Left Position",
+DlgLnkPopTop : "Top Position",
+
+DlnLnkMsgNoUrl : "Please type the link URL",
+DlnLnkMsgNoEMail : "Please type the e-mail address",
+DlnLnkMsgNoAnchor : "Please select an anchor",
+
+// Color Dialog
+DlgColorTitle : "Select Colour",
+DlgColorBtnClear : "Clear",
+DlgColorHighlight : "Highlight",
+DlgColorSelected : "Selected",
+
+// Smiley Dialog
+DlgSmileyTitle : "Insert a Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Select Special Character",
+
+// Table Dialog
+DlgTableTitle : "Table Properties",
+DlgTableRows : "Rows",
+DlgTableColumns : "Columns",
+DlgTableBorder : "Border size",
+DlgTableAlign : "Alignment",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Left",
+DlgTableAlignCenter : "Centre",
+DlgTableAlignRight : "Right",
+DlgTableWidth : "Width",
+DlgTableWidthPx : "pixels",
+DlgTableWidthPc : "percent",
+DlgTableHeight : "Height",
+DlgTableCellSpace : "Cell spacing",
+DlgTableCellPad : "Cell padding",
+DlgTableCaption : "Caption",
+DlgTableSummary : "Summary",
+
+// Table Cell Dialog
+DlgCellTitle : "Cell Properties",
+DlgCellWidth : "Width",
+DlgCellWidthPx : "pixels",
+DlgCellWidthPc : "percent",
+DlgCellHeight : "Height",
+DlgCellWordWrap : "Word Wrap",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Yes",
+DlgCellWordWrapNo : "No",
+DlgCellHorAlign : "Horizontal Alignment",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Left",
+DlgCellHorAlignCenter : "Centre",
+DlgCellHorAlignRight: "Right",
+DlgCellVerAlign : "Vertical Alignment",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Top",
+DlgCellVerAlignMiddle : "Middle",
+DlgCellVerAlignBottom : "Bottom",
+DlgCellVerAlignBaseline : "Baseline",
+DlgCellRowSpan : "Rows Span",
+DlgCellCollSpan : "Columns Span",
+DlgCellBackColor : "Background Colour",
+DlgCellBorderColor : "Border Colour",
+DlgCellBtnSelect : "Select...",
+
+// Find Dialog
+DlgFindTitle : "Find",
+DlgFindFindBtn : "Find",
+DlgFindNotFoundMsg : "The specified text was not found.",
+
+// Replace Dialog
+DlgReplaceTitle : "Replace",
+DlgReplaceFindLbl : "Find what:",
+DlgReplaceReplaceLbl : "Replace with:",
+DlgReplaceCaseChk : "Match case",
+DlgReplaceReplaceBtn : "Replace",
+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).",
+
+PasteAsText : "Paste as Plain Text",
+PasteFromWord : "Paste from Word",
+
+DlgPasteMsg2 : "Please paste inside the following box using the keyboard (Ctrl+V) and hit OK.",
+DlgPasteIgnoreFont : "Ignore Font Face definitions",
+DlgPasteRemoveStyles : "Remove Styles definitions",
+DlgPasteCleanBox : "Clean Up Box",
+
+// Color Picker
+ColorAutomatic : "Automatic",
+ColorMoreColors : "More Colours...",
+
+// Document Properties
+DocProps : "Document Properties",
+
+// Anchor Dialog
+DlgAnchorTitle : "Anchor Properties",
+DlgAnchorName : "Anchor Name",
+DlgAnchorErrorName : "Please type the anchor name",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Not in dictionary",
+DlgSpellChangeTo : "Change to",
+DlgSpellBtnIgnore : "Ignore",
+DlgSpellBtnIgnoreAll : "Ignore All",
+DlgSpellBtnReplace : "Replace",
+DlgSpellBtnReplaceAll : "Replace All",
+DlgSpellBtnUndo : "Undo",
+DlgSpellNoSuggestions : "- No suggestions -",
+DlgSpellProgress : "Spell check in progress...",
+DlgSpellNoMispell : "Spell check complete: No misspellings found",
+DlgSpellNoChanges : "Spell check complete: No words changed",
+DlgSpellOneChange : "Spell check complete: One word changed",
+DlgSpellManyChanges : "Spell check complete: %1 words changed",
+
+IeSpellDownload : "Spell checker not installed. Do you want to download it now?",
+
+// Button Dialog
+DlgButtonText : "Text (Value)",
+DlgButtonType : "Type",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Name",
+DlgCheckboxValue : "Value",
+DlgCheckboxSelected : "Selected",
+
+// Form Dialog
+DlgFormName : "Name",
+DlgFormAction : "Action",
+DlgFormMethod : "Method",
+
+// Select Field Dialog
+DlgSelectName : "Name",
+DlgSelectValue : "Value",
+DlgSelectSize : "Size",
+DlgSelectLines : "lines",
+DlgSelectChkMulti : "Allow multiple selections",
+DlgSelectOpAvail : "Available Options",
+DlgSelectOpText : "Text",
+DlgSelectOpValue : "Value",
+DlgSelectBtnAdd : "Add",
+DlgSelectBtnModify : "Modify",
+DlgSelectBtnUp : "Up",
+DlgSelectBtnDown : "Down",
+DlgSelectBtnSetValue : "Set as selected value",
+DlgSelectBtnDelete : "Delete",
+
+// Textarea Dialog
+DlgTextareaName : "Name",
+DlgTextareaCols : "Columns",
+DlgTextareaRows : "Rows",
+
+// Text Field Dialog
+DlgTextName : "Name",
+DlgTextValue : "Value",
+DlgTextCharWidth : "Character Width",
+DlgTextMaxChars : "Maximum Characters",
+DlgTextType : "Type",
+DlgTextTypeText : "Text",
+DlgTextTypePass : "Password",
+
+// Hidden Field Dialog
+DlgHiddenName : "Name",
+DlgHiddenValue : "Value",
+
+// Bulleted List Dialog
+BulletedListProp : "Bulleted List Properties",
+NumberedListProp : "Numbered List Properties",
+DlgLstType : "Type",
+DlgLstTypeCircle : "Circle",
+DlgLstTypeDisc : "Disc",
+DlgLstTypeSquare : "Square",
+DlgLstTypeNumbers : "Numbers (1, 2, 3)",
+DlgLstTypeLCase : "Lowercase Letters (a, b, c)",
+DlgLstTypeUCase : "Uppercase Letters (A, B, C)",
+DlgLstTypeSRoman : "Small Roman Numerals (i, ii, iii)",
+DlgLstTypeLRoman : "Large Roman Numerals (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "General",
+DlgDocBackTab : "Background",
+DlgDocColorsTab : "Colours and Margins",
+DlgDocMetaTab : "Meta Data",
+
+DlgDocPageTitle : "Page Title",
+DlgDocLangDir : "Language Direction",
+DlgDocLangDirLTR : "Left to Right (LTR)",
+DlgDocLangDirRTL : "Right to Left (RTL)",
+DlgDocLangCode : "Language Code",
+DlgDocCharSet : "Character Set Encoding",
+DlgDocCharSetOther : "Other Character Set Encoding",
+
+DlgDocDocType : "Document Type Heading",
+DlgDocDocTypeOther : "Other Document Type Heading",
+DlgDocIncXHTML : "Include XHTML Declarations",
+DlgDocBgColor : "Background Colour",
+DlgDocBgImage : "Background Image URL",
+DlgDocBgNoScroll : "Nonscrolling Background",
+DlgDocCText : "Text",
+DlgDocCLink : "Link",
+DlgDocCVisited : "Visited Link",
+DlgDocCActive : "Active Link",
+DlgDocMargins : "Page Margins",
+DlgDocMaTop : "Top",
+DlgDocMaLeft : "Left",
+DlgDocMaRight : "Right",
+DlgDocMaBottom : "Bottom",
+DlgDocMeIndex : "Document Indexing Keywords (comma separated)",
+DlgDocMeDescr : "Document Description",
+DlgDocMeAuthor : "Author",
+DlgDocMeCopy : "Copyright",
+DlgDocPreview : "Preview",
+
+// Templates Dialog
+Templates : "Templates",
+DlgTemplatesTitle : "Content Templates",
+DlgTemplatesSelMsg : "Please select the template to open in the editor
(the actual contents will be lost):",
+DlgTemplatesLoading : "Loading templates list. Please wait...",
+DlgTemplatesNoTpl : "(No templates defined)",
+
+// About Dialog
+DlgAboutAboutTab : "About",
+DlgAboutBrowserInfoTab : "Browser Info",
+DlgAboutLicenseTab : "License",
+DlgAboutVersion : "version",
+DlgAboutLicense : "Licensed under the terms of the GNU Lesser General Public License",
+DlgAboutInfo : "For further information go to"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/en-ca.js b/htdocs/includes/fckeditor/editor/lang/en-ca.js
new file mode 100644
index 00000000000..4a913f0296d
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/en-ca.js
@@ -0,0 +1,487 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: en-ca.js
+ * English (Canadian) language file.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ * Kevin Bennett
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Collapse Toolbar",
+ToolbarExpand : "Expand Toolbar",
+
+// Toolbar Items and Context Menu
+Save : "Save",
+NewPage : "New Page",
+Preview : "Preview",
+Cut : "Cut",
+Copy : "Copy",
+Paste : "Paste",
+PasteText : "Paste as plain text",
+PasteWord : "Paste from Word",
+Print : "Print",
+SelectAll : "Select All",
+RemoveFormat : "Remove Format",
+InsertLinkLbl : "Link",
+InsertLink : "Insert/Edit Link",
+RemoveLink : "Remove Link",
+Anchor : "Insert/Edit Anchor",
+InsertImageLbl : "Image",
+InsertImage : "Insert/Edit Image",
+InsertFlashLbl : "Flash",
+InsertFlash : "Insert/Edit Flash",
+InsertTableLbl : "Table",
+InsertTable : "Insert/Edit Table",
+InsertLineLbl : "Line",
+InsertLine : "Insert Horizontal Line",
+InsertSpecialCharLbl: "Special Character",
+InsertSpecialChar : "Insert Special Character",
+InsertSmileyLbl : "Smiley",
+InsertSmiley : "Insert Smiley",
+About : "About FCKeditor",
+Bold : "Bold",
+Italic : "Italic",
+Underline : "Underline",
+StrikeThrough : "Strike Through",
+Subscript : "Subscript",
+Superscript : "Superscript",
+LeftJustify : "Left Justify",
+CenterJustify : "Centre Justify",
+RightJustify : "Right Justify",
+BlockJustify : "Block Justify",
+DecreaseIndent : "Decrease Indent",
+IncreaseIndent : "Increase Indent",
+Undo : "Undo",
+Redo : "Redo",
+NumberedListLbl : "Numbered List",
+NumberedList : "Insert/Remove Numbered List",
+BulletedListLbl : "Bulleted List",
+BulletedList : "Insert/Remove Bulleted List",
+ShowTableBorders : "Show Table Borders",
+ShowDetails : "Show Details",
+Style : "Style",
+FontFormat : "Format",
+Font : "Font",
+FontSize : "Size",
+TextColor : "Text Colour",
+BGColor : "Background Colour",
+Source : "Source",
+Find : "Find",
+Replace : "Replace",
+SpellCheck : "Check Spelling",
+UniversalKeyboard : "Universal Keyboard",
+PageBreakLbl : "Page Break",
+PageBreak : "Insert Page Break",
+
+Form : "Form",
+Checkbox : "Checkbox",
+RadioButton : "Radio Button",
+TextField : "Text Field",
+Textarea : "Textarea",
+HiddenField : "Hidden Field",
+Button : "Button",
+SelectionField : "Selection Field",
+ImageButton : "Image Button",
+
+FitWindow : "Maximize the editor size",
+
+// Context Menu
+EditLink : "Edit Link",
+CellCM : "Cell",
+RowCM : "Row",
+ColumnCM : "Column",
+InsertRow : "Insert Row",
+DeleteRows : "Delete Rows",
+InsertColumn : "Insert Column",
+DeleteColumns : "Delete Columns",
+InsertCell : "Insert Cell",
+DeleteCells : "Delete Cells",
+MergeCells : "Merge Cells",
+SplitCell : "Split Cell",
+TableDelete : "Delete Table",
+CellProperties : "Cell Properties",
+TableProperties : "Table Properties",
+ImageProperties : "Image Properties",
+FlashProperties : "Flash Properties",
+
+AnchorProp : "Anchor Properties",
+ButtonProp : "Button Properties",
+CheckboxProp : "Checkbox Properties",
+HiddenFieldProp : "Hidden Field Properties",
+RadioButtonProp : "Radio Button Properties",
+ImageButtonProp : "Image Button Properties",
+TextFieldProp : "Text Field Properties",
+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)",
+
+// Alerts and Messages
+ProcessingXHTML : "Processing XHTML. Please wait...",
+Done : "Done",
+PasteWordConfirm : "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?",
+NotCompatiblePaste : "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?",
+UnknownToolbarItem : "Unknown toolbar item \"%1\"",
+UnknownCommand : "Unknown command name \"%1\"",
+NotImplemented : "Command not implemented",
+UnknownToolbarSet : "Toolbar set \"%1\" doesn't exist",
+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.",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
+DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Cancel",
+DlgBtnClose : "Close",
+DlgBtnBrowseServer : "Browse Server",
+DlgAdvancedTag : "Advanced",
+DlgOpOther : "",
+DlgInfoTab : "Info",
+DlgAlertUrl : "Please insert the URL",
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Language Direction",
+DlgGenLangDirLtr : "Left to Right (LTR)",
+DlgGenLangDirRtl : "Right to Left (RTL)",
+DlgGenLangCode : "Language Code",
+DlgGenAccessKey : "Access Key",
+DlgGenName : "Name",
+DlgGenTabIndex : "Tab Index",
+DlgGenLongDescr : "Long Description URL",
+DlgGenClass : "Stylesheet Classes",
+DlgGenTitle : "Advisory Title",
+DlgGenContType : "Advisory Content Type",
+DlgGenLinkCharset : "Linked Resource Charset",
+DlgGenStyle : "Style",
+
+// Image Dialog
+DlgImgTitle : "Image Properties",
+DlgImgInfoTab : "Image Info",
+DlgImgBtnUpload : "Send it to the Server",
+DlgImgURL : "URL",
+DlgImgUpload : "Upload",
+DlgImgAlt : "Alternative Text",
+DlgImgWidth : "Width",
+DlgImgHeight : "Height",
+DlgImgLockRatio : "Lock Ratio",
+DlgBtnResetSize : "Reset Size",
+DlgImgBorder : "Border",
+DlgImgHSpace : "HSpace",
+DlgImgVSpace : "VSpace",
+DlgImgAlign : "Align",
+DlgImgAlignLeft : "Left",
+DlgImgAlignAbsBottom: "Abs Bottom",
+DlgImgAlignAbsMiddle: "Abs Middle",
+DlgImgAlignBaseline : "Baseline",
+DlgImgAlignBottom : "Bottom",
+DlgImgAlignMiddle : "Middle",
+DlgImgAlignRight : "Right",
+DlgImgAlignTextTop : "Text Top",
+DlgImgAlignTop : "Top",
+DlgImgPreview : "Preview",
+DlgImgAlertUrl : "Please type the image URL",
+DlgImgLinkTab : "Link",
+
+// Flash Dialog
+DlgFlashTitle : "Flash Properties",
+DlgFlashChkPlay : "Auto Play",
+DlgFlashChkLoop : "Loop",
+DlgFlashChkMenu : "Enable Flash Menu",
+DlgFlashScale : "Scale",
+DlgFlashScaleAll : "Show all",
+DlgFlashScaleNoBorder : "No Border",
+DlgFlashScaleFit : "Exact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle : "Link",
+DlgLnkInfoTab : "Link Info",
+DlgLnkTargetTab : "Target",
+
+DlgLnkType : "Link Type",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Anchor in this page",
+DlgLnkTypeEMail : "E-Mail",
+DlgLnkProto : "Protocol",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Select an Anchor",
+DlgLnkAnchorByName : "By Anchor Name",
+DlgLnkAnchorById : "By Element Id",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "E-Mail Address",
+DlgLnkEMailSubject : "Message Subject",
+DlgLnkEMailBody : "Message Body",
+DlgLnkUpload : "Upload",
+DlgLnkBtnUpload : "Send it to the Server",
+
+DlgLnkTarget : "Target",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "New Window (_blank)",
+DlgLnkTargetParent : "Parent Window (_parent)",
+DlgLnkTargetSelf : "Same Window (_self)",
+DlgLnkTargetTop : "Topmost Window (_top)",
+DlgLnkTargetFrameName : "Target Frame Name",
+DlgLnkPopWinName : "Popup Window Name",
+DlgLnkPopWinFeat : "Popup Window Features",
+DlgLnkPopResize : "Resizable",
+DlgLnkPopLocation : "Location Bar",
+DlgLnkPopMenu : "Menu Bar",
+DlgLnkPopScroll : "Scroll Bars",
+DlgLnkPopStatus : "Status Bar",
+DlgLnkPopToolbar : "Toolbar",
+DlgLnkPopFullScrn : "Full Screen (IE)",
+DlgLnkPopDependent : "Dependent (Netscape)",
+DlgLnkPopWidth : "Width",
+DlgLnkPopHeight : "Height",
+DlgLnkPopLeft : "Left Position",
+DlgLnkPopTop : "Top Position",
+
+DlnLnkMsgNoUrl : "Please type the link URL",
+DlnLnkMsgNoEMail : "Please type the e-mail address",
+DlnLnkMsgNoAnchor : "Please select an anchor",
+
+// Color Dialog
+DlgColorTitle : "Select Colour",
+DlgColorBtnClear : "Clear",
+DlgColorHighlight : "Highlight",
+DlgColorSelected : "Selected",
+
+// Smiley Dialog
+DlgSmileyTitle : "Insert a Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Select Special Character",
+
+// Table Dialog
+DlgTableTitle : "Table Properties",
+DlgTableRows : "Rows",
+DlgTableColumns : "Columns",
+DlgTableBorder : "Border size",
+DlgTableAlign : "Alignment",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Left",
+DlgTableAlignCenter : "Centre",
+DlgTableAlignRight : "Right",
+DlgTableWidth : "Width",
+DlgTableWidthPx : "pixels",
+DlgTableWidthPc : "percent",
+DlgTableHeight : "Height",
+DlgTableCellSpace : "Cell spacing",
+DlgTableCellPad : "Cell padding",
+DlgTableCaption : "Caption",
+DlgTableSummary : "Summary",
+
+// Table Cell Dialog
+DlgCellTitle : "Cell Properties",
+DlgCellWidth : "Width",
+DlgCellWidthPx : "pixels",
+DlgCellWidthPc : "percent",
+DlgCellHeight : "Height",
+DlgCellWordWrap : "Word Wrap",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Yes",
+DlgCellWordWrapNo : "No",
+DlgCellHorAlign : "Horizontal Alignment",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Left",
+DlgCellHorAlignCenter : "Centre",
+DlgCellHorAlignRight: "Right",
+DlgCellVerAlign : "Vertical Alignment",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Top",
+DlgCellVerAlignMiddle : "Middle",
+DlgCellVerAlignBottom : "Bottom",
+DlgCellVerAlignBaseline : "Baseline",
+DlgCellRowSpan : "Rows Span",
+DlgCellCollSpan : "Columns Span",
+DlgCellBackColor : "Background Colour",
+DlgCellBorderColor : "Border Colour",
+DlgCellBtnSelect : "Select...",
+
+// Find Dialog
+DlgFindTitle : "Find",
+DlgFindFindBtn : "Find",
+DlgFindNotFoundMsg : "The specified text was not found.",
+
+// Replace Dialog
+DlgReplaceTitle : "Replace",
+DlgReplaceFindLbl : "Find what:",
+DlgReplaceReplaceLbl : "Replace with:",
+DlgReplaceCaseChk : "Match case",
+DlgReplaceReplaceBtn : "Replace",
+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).",
+
+PasteAsText : "Paste as Plain Text",
+PasteFromWord : "Paste from Word",
+
+DlgPasteMsg2 : "Please paste inside the following box using the keyboard (Ctrl+V) and hit OK.",
+DlgPasteIgnoreFont : "Ignore Font Face definitions",
+DlgPasteRemoveStyles : "Remove Styles definitions",
+DlgPasteCleanBox : "Clean Up Box",
+
+// Color Picker
+ColorAutomatic : "Automatic",
+ColorMoreColors : "More Colours...",
+
+// Document Properties
+DocProps : "Document Properties",
+
+// Anchor Dialog
+DlgAnchorTitle : "Anchor Properties",
+DlgAnchorName : "Anchor Name",
+DlgAnchorErrorName : "Please type the anchor name",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Not in dictionary",
+DlgSpellChangeTo : "Change to",
+DlgSpellBtnIgnore : "Ignore",
+DlgSpellBtnIgnoreAll : "Ignore All",
+DlgSpellBtnReplace : "Replace",
+DlgSpellBtnReplaceAll : "Replace All",
+DlgSpellBtnUndo : "Undo",
+DlgSpellNoSuggestions : "- No suggestions -",
+DlgSpellProgress : "Spell check in progress...",
+DlgSpellNoMispell : "Spell check complete: No misspellings found",
+DlgSpellNoChanges : "Spell check complete: No words changed",
+DlgSpellOneChange : "Spell check complete: One word changed",
+DlgSpellManyChanges : "Spell check complete: %1 words changed",
+
+IeSpellDownload : "Spell checker not installed. Do you want to download it now?",
+
+// Button Dialog
+DlgButtonText : "Text (Value)",
+DlgButtonType : "Type",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Name",
+DlgCheckboxValue : "Value",
+DlgCheckboxSelected : "Selected",
+
+// Form Dialog
+DlgFormName : "Name",
+DlgFormAction : "Action",
+DlgFormMethod : "Method",
+
+// Select Field Dialog
+DlgSelectName : "Name",
+DlgSelectValue : "Value",
+DlgSelectSize : "Size",
+DlgSelectLines : "lines",
+DlgSelectChkMulti : "Allow multiple selections",
+DlgSelectOpAvail : "Available Options",
+DlgSelectOpText : "Text",
+DlgSelectOpValue : "Value",
+DlgSelectBtnAdd : "Add",
+DlgSelectBtnModify : "Modify",
+DlgSelectBtnUp : "Up",
+DlgSelectBtnDown : "Down",
+DlgSelectBtnSetValue : "Set as selected value",
+DlgSelectBtnDelete : "Delete",
+
+// Textarea Dialog
+DlgTextareaName : "Name",
+DlgTextareaCols : "Columns",
+DlgTextareaRows : "Rows",
+
+// Text Field Dialog
+DlgTextName : "Name",
+DlgTextValue : "Value",
+DlgTextCharWidth : "Character Width",
+DlgTextMaxChars : "Maximum Characters",
+DlgTextType : "Type",
+DlgTextTypeText : "Text",
+DlgTextTypePass : "Password",
+
+// Hidden Field Dialog
+DlgHiddenName : "Name",
+DlgHiddenValue : "Value",
+
+// Bulleted List Dialog
+BulletedListProp : "Bulleted List Properties",
+NumberedListProp : "Numbered List Properties",
+DlgLstType : "Type",
+DlgLstTypeCircle : "Circle",
+DlgLstTypeDisc : "Disc",
+DlgLstTypeSquare : "Square",
+DlgLstTypeNumbers : "Numbers (1, 2, 3)",
+DlgLstTypeLCase : "Lowercase Letters (a, b, c)",
+DlgLstTypeUCase : "Uppercase Letters (A, B, C)",
+DlgLstTypeSRoman : "Small Roman Numerals (i, ii, iii)",
+DlgLstTypeLRoman : "Large Roman Numerals (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "General",
+DlgDocBackTab : "Background",
+DlgDocColorsTab : "Colours and Margins",
+DlgDocMetaTab : "Meta Data",
+
+DlgDocPageTitle : "Page Title",
+DlgDocLangDir : "Language Direction",
+DlgDocLangDirLTR : "Left to Right (LTR)",
+DlgDocLangDirRTL : "Right to Left (RTL)",
+DlgDocLangCode : "Language Code",
+DlgDocCharSet : "Character Set Encoding",
+DlgDocCharSetOther : "Other Character Set Encoding",
+
+DlgDocDocType : "Document Type Heading",
+DlgDocDocTypeOther : "Other Document Type Heading",
+DlgDocIncXHTML : "Include XHTML Declarations",
+DlgDocBgColor : "Background Colour",
+DlgDocBgImage : "Background Image URL",
+DlgDocBgNoScroll : "Nonscrolling Background",
+DlgDocCText : "Text",
+DlgDocCLink : "Link",
+DlgDocCVisited : "Visited Link",
+DlgDocCActive : "Active Link",
+DlgDocMargins : "Page Margins",
+DlgDocMaTop : "Top",
+DlgDocMaLeft : "Left",
+DlgDocMaRight : "Right",
+DlgDocMaBottom : "Bottom",
+DlgDocMeIndex : "Document Indexing Keywords (comma separated)",
+DlgDocMeDescr : "Document Description",
+DlgDocMeAuthor : "Author",
+DlgDocMeCopy : "Copyright",
+DlgDocPreview : "Preview",
+
+// Templates Dialog
+Templates : "Templates",
+DlgTemplatesTitle : "Content Templates",
+DlgTemplatesSelMsg : "Please select the template to open in the editor
(the actual contents will be lost):",
+DlgTemplatesLoading : "Loading templates list. Please wait...",
+DlgTemplatesNoTpl : "(No templates defined)",
+
+// About Dialog
+DlgAboutAboutTab : "About",
+DlgAboutBrowserInfoTab : "Browser Info",
+DlgAboutLicenseTab : "License",
+DlgAboutVersion : "version",
+DlgAboutLicense : "Licensed under the terms of the GNU Lesser General Public License",
+DlgAboutInfo : "For further information go to"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/en-uk.js b/htdocs/includes/fckeditor/editor/lang/en-uk.js
new file mode 100644
index 00000000000..e9b97a0f36f
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/en-uk.js
@@ -0,0 +1,487 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: en-uk.js
+ * English (United Kingdom) language file.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ * Christopher Dawes (fckeditor@dawes.id.au)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Collapse Toolbar",
+ToolbarExpand : "Expand Toolbar",
+
+// Toolbar Items and Context Menu
+Save : "Save",
+NewPage : "New Page",
+Preview : "Preview",
+Cut : "Cut",
+Copy : "Copy",
+Paste : "Paste",
+PasteText : "Paste as plain text",
+PasteWord : "Paste from Word",
+Print : "Print",
+SelectAll : "Select All",
+RemoveFormat : "Remove Format",
+InsertLinkLbl : "Link",
+InsertLink : "Insert/Edit Link",
+RemoveLink : "Remove Link",
+Anchor : "Insert/Edit Anchor",
+InsertImageLbl : "Image",
+InsertImage : "Insert/Edit Image",
+InsertFlashLbl : "Flash",
+InsertFlash : "Insert/Edit Flash",
+InsertTableLbl : "Table",
+InsertTable : "Insert/Edit Table",
+InsertLineLbl : "Line",
+InsertLine : "Insert Horizontal Line",
+InsertSpecialCharLbl: "Special Character",
+InsertSpecialChar : "Insert Special Character",
+InsertSmileyLbl : "Smiley",
+InsertSmiley : "Insert Smiley",
+About : "About FCKeditor",
+Bold : "Bold",
+Italic : "Italic",
+Underline : "Underline",
+StrikeThrough : "Strike Through",
+Subscript : "Subscript",
+Superscript : "Superscript",
+LeftJustify : "Left Justify",
+CenterJustify : "Centre Justify",
+RightJustify : "Right Justify",
+BlockJustify : "Block Justify",
+DecreaseIndent : "Decrease Indent",
+IncreaseIndent : "Increase Indent",
+Undo : "Undo",
+Redo : "Redo",
+NumberedListLbl : "Numbered List",
+NumberedList : "Insert/Remove Numbered List",
+BulletedListLbl : "Bulleted List",
+BulletedList : "Insert/Remove Bulleted List",
+ShowTableBorders : "Show Table Borders",
+ShowDetails : "Show Details",
+Style : "Style",
+FontFormat : "Format",
+Font : "Font",
+FontSize : "Size",
+TextColor : "Text Colour",
+BGColor : "Background Colour",
+Source : "Source",
+Find : "Find",
+Replace : "Replace",
+SpellCheck : "Check Spelling",
+UniversalKeyboard : "Universal Keyboard",
+PageBreakLbl : "Page Break",
+PageBreak : "Insert Page Break",
+
+Form : "Form",
+Checkbox : "Checkbox",
+RadioButton : "Radio Button",
+TextField : "Text Field",
+Textarea : "Textarea",
+HiddenField : "Hidden Field",
+Button : "Button",
+SelectionField : "Selection Field",
+ImageButton : "Image Button",
+
+FitWindow : "Maximize the editor size",
+
+// Context Menu
+EditLink : "Edit Link",
+CellCM : "Cell",
+RowCM : "Row",
+ColumnCM : "Column",
+InsertRow : "Insert Row",
+DeleteRows : "Delete Rows",
+InsertColumn : "Insert Column",
+DeleteColumns : "Delete Columns",
+InsertCell : "Insert Cell",
+DeleteCells : "Delete Cells",
+MergeCells : "Merge Cells",
+SplitCell : "Split Cell",
+TableDelete : "Delete Table",
+CellProperties : "Cell Properties",
+TableProperties : "Table Properties",
+ImageProperties : "Image Properties",
+FlashProperties : "Flash Properties",
+
+AnchorProp : "Anchor Properties",
+ButtonProp : "Button Properties",
+CheckboxProp : "Checkbox Properties",
+HiddenFieldProp : "Hidden Field Properties",
+RadioButtonProp : "Radio Button Properties",
+ImageButtonProp : "Image Button Properties",
+TextFieldProp : "Text Field Properties",
+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)",
+
+// Alerts and Messages
+ProcessingXHTML : "Processing XHTML. Please wait...",
+Done : "Done",
+PasteWordConfirm : "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?",
+NotCompatiblePaste : "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?",
+UnknownToolbarItem : "Unknown toolbar item \"%1\"",
+UnknownCommand : "Unknown command name \"%1\"",
+NotImplemented : "Command not implemented",
+UnknownToolbarSet : "Toolbar set \"%1\" doesn't exist",
+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.",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
+DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Cancel",
+DlgBtnClose : "Close",
+DlgBtnBrowseServer : "Browse Server",
+DlgAdvancedTag : "Advanced",
+DlgOpOther : "",
+DlgInfoTab : "Info",
+DlgAlertUrl : "Please insert the URL",
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Language Direction",
+DlgGenLangDirLtr : "Left to Right (LTR)",
+DlgGenLangDirRtl : "Right to Left (RTL)",
+DlgGenLangCode : "Language Code",
+DlgGenAccessKey : "Access Key",
+DlgGenName : "Name",
+DlgGenTabIndex : "Tab Index",
+DlgGenLongDescr : "Long Description URL",
+DlgGenClass : "Stylesheet Classes",
+DlgGenTitle : "Advisory Title",
+DlgGenContType : "Advisory Content Type",
+DlgGenLinkCharset : "Linked Resource Charset",
+DlgGenStyle : "Style",
+
+// Image Dialog
+DlgImgTitle : "Image Properties",
+DlgImgInfoTab : "Image Info",
+DlgImgBtnUpload : "Send it to the Server",
+DlgImgURL : "URL",
+DlgImgUpload : "Upload",
+DlgImgAlt : "Alternative Text",
+DlgImgWidth : "Width",
+DlgImgHeight : "Height",
+DlgImgLockRatio : "Lock Ratio",
+DlgBtnResetSize : "Reset Size",
+DlgImgBorder : "Border",
+DlgImgHSpace : "HSpace",
+DlgImgVSpace : "VSpace",
+DlgImgAlign : "Align",
+DlgImgAlignLeft : "Left",
+DlgImgAlignAbsBottom: "Abs Bottom",
+DlgImgAlignAbsMiddle: "Abs Middle",
+DlgImgAlignBaseline : "Baseline",
+DlgImgAlignBottom : "Bottom",
+DlgImgAlignMiddle : "Middle",
+DlgImgAlignRight : "Right",
+DlgImgAlignTextTop : "Text Top",
+DlgImgAlignTop : "Top",
+DlgImgPreview : "Preview",
+DlgImgAlertUrl : "Please type the image URL",
+DlgImgLinkTab : "Link",
+
+// Flash Dialog
+DlgFlashTitle : "Flash Properties",
+DlgFlashChkPlay : "Auto Play",
+DlgFlashChkLoop : "Loop",
+DlgFlashChkMenu : "Enable Flash Menu",
+DlgFlashScale : "Scale",
+DlgFlashScaleAll : "Show all",
+DlgFlashScaleNoBorder : "No Border",
+DlgFlashScaleFit : "Exact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle : "Link",
+DlgLnkInfoTab : "Link Info",
+DlgLnkTargetTab : "Target",
+
+DlgLnkType : "Link Type",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Anchor in this page",
+DlgLnkTypeEMail : "E-Mail",
+DlgLnkProto : "Protocol",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Select an Anchor",
+DlgLnkAnchorByName : "By Anchor Name",
+DlgLnkAnchorById : "By Element Id",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "E-Mail Address",
+DlgLnkEMailSubject : "Message Subject",
+DlgLnkEMailBody : "Message Body",
+DlgLnkUpload : "Upload",
+DlgLnkBtnUpload : "Send it to the Server",
+
+DlgLnkTarget : "Target",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "New Window (_blank)",
+DlgLnkTargetParent : "Parent Window (_parent)",
+DlgLnkTargetSelf : "Same Window (_self)",
+DlgLnkTargetTop : "Topmost Window (_top)",
+DlgLnkTargetFrameName : "Target Frame Name",
+DlgLnkPopWinName : "Popup Window Name",
+DlgLnkPopWinFeat : "Popup Window Features",
+DlgLnkPopResize : "Resizable",
+DlgLnkPopLocation : "Location Bar",
+DlgLnkPopMenu : "Menu Bar",
+DlgLnkPopScroll : "Scroll Bars",
+DlgLnkPopStatus : "Status Bar",
+DlgLnkPopToolbar : "Toolbar",
+DlgLnkPopFullScrn : "Full Screen (IE)",
+DlgLnkPopDependent : "Dependent (Netscape)",
+DlgLnkPopWidth : "Width",
+DlgLnkPopHeight : "Height",
+DlgLnkPopLeft : "Left Position",
+DlgLnkPopTop : "Top Position",
+
+DlnLnkMsgNoUrl : "Please type the link URL",
+DlnLnkMsgNoEMail : "Please type the e-mail address",
+DlnLnkMsgNoAnchor : "Please select an anchor",
+
+// Color Dialog
+DlgColorTitle : "Select Colour",
+DlgColorBtnClear : "Clear",
+DlgColorHighlight : "Highlight",
+DlgColorSelected : "Selected",
+
+// Smiley Dialog
+DlgSmileyTitle : "Insert a Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Select Special Character",
+
+// Table Dialog
+DlgTableTitle : "Table Properties",
+DlgTableRows : "Rows",
+DlgTableColumns : "Columns",
+DlgTableBorder : "Border size",
+DlgTableAlign : "Alignment",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Left",
+DlgTableAlignCenter : "Centre",
+DlgTableAlignRight : "Right",
+DlgTableWidth : "Width",
+DlgTableWidthPx : "pixels",
+DlgTableWidthPc : "percent",
+DlgTableHeight : "Height",
+DlgTableCellSpace : "Cell spacing",
+DlgTableCellPad : "Cell padding",
+DlgTableCaption : "Caption",
+DlgTableSummary : "Summary",
+
+// Table Cell Dialog
+DlgCellTitle : "Cell Properties",
+DlgCellWidth : "Width",
+DlgCellWidthPx : "pixels",
+DlgCellWidthPc : "percent",
+DlgCellHeight : "Height",
+DlgCellWordWrap : "Word Wrap",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Yes",
+DlgCellWordWrapNo : "No",
+DlgCellHorAlign : "Horizontal Alignment",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Left",
+DlgCellHorAlignCenter : "Centre",
+DlgCellHorAlignRight: "Right",
+DlgCellVerAlign : "Vertical Alignment",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Top",
+DlgCellVerAlignMiddle : "Middle",
+DlgCellVerAlignBottom : "Bottom",
+DlgCellVerAlignBaseline : "Baseline",
+DlgCellRowSpan : "Rows Span",
+DlgCellCollSpan : "Columns Span",
+DlgCellBackColor : "Background Colour",
+DlgCellBorderColor : "Border Colour",
+DlgCellBtnSelect : "Select...",
+
+// Find Dialog
+DlgFindTitle : "Find",
+DlgFindFindBtn : "Find",
+DlgFindNotFoundMsg : "The specified text was not found.",
+
+// Replace Dialog
+DlgReplaceTitle : "Replace",
+DlgReplaceFindLbl : "Find what:",
+DlgReplaceReplaceLbl : "Replace with:",
+DlgReplaceCaseChk : "Match case",
+DlgReplaceReplaceBtn : "Replace",
+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).",
+
+PasteAsText : "Paste as Plain Text",
+PasteFromWord : "Paste from Word",
+
+DlgPasteMsg2 : "Please paste inside the following box using the keyboard (Ctrl+V) and hit OK.",
+DlgPasteIgnoreFont : "Ignore Font Face definitions",
+DlgPasteRemoveStyles : "Remove Styles definitions",
+DlgPasteCleanBox : "Clean Up Box",
+
+// Color Picker
+ColorAutomatic : "Automatic",
+ColorMoreColors : "More Colours...",
+
+// Document Properties
+DocProps : "Document Properties",
+
+// Anchor Dialog
+DlgAnchorTitle : "Anchor Properties",
+DlgAnchorName : "Anchor Name",
+DlgAnchorErrorName : "Please type the anchor name",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Not in dictionary",
+DlgSpellChangeTo : "Change to",
+DlgSpellBtnIgnore : "Ignore",
+DlgSpellBtnIgnoreAll : "Ignore All",
+DlgSpellBtnReplace : "Replace",
+DlgSpellBtnReplaceAll : "Replace All",
+DlgSpellBtnUndo : "Undo",
+DlgSpellNoSuggestions : "- No suggestions -",
+DlgSpellProgress : "Spell check in progress...",
+DlgSpellNoMispell : "Spell check complete: No misspellings found",
+DlgSpellNoChanges : "Spell check complete: No words changed",
+DlgSpellOneChange : "Spell check complete: One word changed",
+DlgSpellManyChanges : "Spell check complete: %1 words changed",
+
+IeSpellDownload : "Spell checker not installed. Do you want to download it now?",
+
+// Button Dialog
+DlgButtonText : "Text (Value)",
+DlgButtonType : "Type",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Name",
+DlgCheckboxValue : "Value",
+DlgCheckboxSelected : "Selected",
+
+// Form Dialog
+DlgFormName : "Name",
+DlgFormAction : "Action",
+DlgFormMethod : "Method",
+
+// Select Field Dialog
+DlgSelectName : "Name",
+DlgSelectValue : "Value",
+DlgSelectSize : "Size",
+DlgSelectLines : "lines",
+DlgSelectChkMulti : "Allow multiple selections",
+DlgSelectOpAvail : "Available Options",
+DlgSelectOpText : "Text",
+DlgSelectOpValue : "Value",
+DlgSelectBtnAdd : "Add",
+DlgSelectBtnModify : "Modify",
+DlgSelectBtnUp : "Up",
+DlgSelectBtnDown : "Down",
+DlgSelectBtnSetValue : "Set as selected value",
+DlgSelectBtnDelete : "Delete",
+
+// Textarea Dialog
+DlgTextareaName : "Name",
+DlgTextareaCols : "Columns",
+DlgTextareaRows : "Rows",
+
+// Text Field Dialog
+DlgTextName : "Name",
+DlgTextValue : "Value",
+DlgTextCharWidth : "Character Width",
+DlgTextMaxChars : "Maximum Characters",
+DlgTextType : "Type",
+DlgTextTypeText : "Text",
+DlgTextTypePass : "Password",
+
+// Hidden Field Dialog
+DlgHiddenName : "Name",
+DlgHiddenValue : "Value",
+
+// Bulleted List Dialog
+BulletedListProp : "Bulleted List Properties",
+NumberedListProp : "Numbered List Properties",
+DlgLstType : "Type",
+DlgLstTypeCircle : "Circle",
+DlgLstTypeDisc : "Disc",
+DlgLstTypeSquare : "Square",
+DlgLstTypeNumbers : "Numbers (1, 2, 3)",
+DlgLstTypeLCase : "Lowercase Letters (a, b, c)",
+DlgLstTypeUCase : "Uppercase Letters (A, B, C)",
+DlgLstTypeSRoman : "Small Roman Numerals (i, ii, iii)",
+DlgLstTypeLRoman : "Large Roman Numerals (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "General",
+DlgDocBackTab : "Background",
+DlgDocColorsTab : "Colours and Margins",
+DlgDocMetaTab : "Meta Data",
+
+DlgDocPageTitle : "Page Title",
+DlgDocLangDir : "Language Direction",
+DlgDocLangDirLTR : "Left to Right (LTR)",
+DlgDocLangDirRTL : "Right to Left (RTL)",
+DlgDocLangCode : "Language Code",
+DlgDocCharSet : "Character Set Encoding",
+DlgDocCharSetOther : "Other Character Set Encoding",
+
+DlgDocDocType : "Document Type Heading",
+DlgDocDocTypeOther : "Other Document Type Heading",
+DlgDocIncXHTML : "Include XHTML Declarations",
+DlgDocBgColor : "Background Colour",
+DlgDocBgImage : "Background Image URL",
+DlgDocBgNoScroll : "Nonscrolling Background",
+DlgDocCText : "Text",
+DlgDocCLink : "Link",
+DlgDocCVisited : "Visited Link",
+DlgDocCActive : "Active Link",
+DlgDocMargins : "Page Margins",
+DlgDocMaTop : "Top",
+DlgDocMaLeft : "Left",
+DlgDocMaRight : "Right",
+DlgDocMaBottom : "Bottom",
+DlgDocMeIndex : "Document Indexing Keywords (comma separated)",
+DlgDocMeDescr : "Document Description",
+DlgDocMeAuthor : "Author",
+DlgDocMeCopy : "Copyright",
+DlgDocPreview : "Preview",
+
+// Templates Dialog
+Templates : "Templates",
+DlgTemplatesTitle : "Content Templates",
+DlgTemplatesSelMsg : "Please select the template to open in the editor
(the actual contents will be lost):",
+DlgTemplatesLoading : "Loading templates list. Please wait...",
+DlgTemplatesNoTpl : "(No templates defined)",
+
+// About Dialog
+DlgAboutAboutTab : "About",
+DlgAboutBrowserInfoTab : "Browser Info",
+DlgAboutLicenseTab : "License",
+DlgAboutVersion : "version",
+DlgAboutLicense : "Licensed under the terms of the GNU Lesser General Public License",
+DlgAboutInfo : "For further information go to"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/en.js b/htdocs/includes/fckeditor/editor/lang/en.js
new file mode 100644
index 00000000000..724ddb8a623
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/en.js
@@ -0,0 +1,486 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: en.js
+ * English language file.
+ *
+ * File Authors:
+ * Frederico Caldeira Knabben (fredck@fckeditor.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Collapse Toolbar",
+ToolbarExpand : "Expand Toolbar",
+
+// Toolbar Items and Context Menu
+Save : "Save",
+NewPage : "New Page",
+Preview : "Preview",
+Cut : "Cut",
+Copy : "Copy",
+Paste : "Paste",
+PasteText : "Paste as plain text",
+PasteWord : "Paste from Word",
+Print : "Print",
+SelectAll : "Select All",
+RemoveFormat : "Remove Format",
+InsertLinkLbl : "Link",
+InsertLink : "Insert/Edit Link",
+RemoveLink : "Remove Link",
+Anchor : "Insert/Edit Anchor",
+InsertImageLbl : "Image",
+InsertImage : "Insert/Edit Image",
+InsertFlashLbl : "Flash",
+InsertFlash : "Insert/Edit Flash",
+InsertTableLbl : "Table",
+InsertTable : "Insert/Edit Table",
+InsertLineLbl : "Line",
+InsertLine : "Insert Horizontal Line",
+InsertSpecialCharLbl: "Special Character",
+InsertSpecialChar : "Insert Special Character",
+InsertSmileyLbl : "Smiley",
+InsertSmiley : "Insert Smiley",
+About : "About FCKeditor",
+Bold : "Bold",
+Italic : "Italic",
+Underline : "Underline",
+StrikeThrough : "Strike Through",
+Subscript : "Subscript",
+Superscript : "Superscript",
+LeftJustify : "Left Justify",
+CenterJustify : "Center Justify",
+RightJustify : "Right Justify",
+BlockJustify : "Block Justify",
+DecreaseIndent : "Decrease Indent",
+IncreaseIndent : "Increase Indent",
+Undo : "Undo",
+Redo : "Redo",
+NumberedListLbl : "Numbered List",
+NumberedList : "Insert/Remove Numbered List",
+BulletedListLbl : "Bulleted List",
+BulletedList : "Insert/Remove Bulleted List",
+ShowTableBorders : "Show Table Borders",
+ShowDetails : "Show Details",
+Style : "Style",
+FontFormat : "Format",
+Font : "Font",
+FontSize : "Size",
+TextColor : "Text Color",
+BGColor : "Background Color",
+Source : "Source",
+Find : "Find",
+Replace : "Replace",
+SpellCheck : "Check Spelling",
+UniversalKeyboard : "Universal Keyboard",
+PageBreakLbl : "Page Break",
+PageBreak : "Insert Page Break",
+
+Form : "Form",
+Checkbox : "Checkbox",
+RadioButton : "Radio Button",
+TextField : "Text Field",
+Textarea : "Textarea",
+HiddenField : "Hidden Field",
+Button : "Button",
+SelectionField : "Selection Field",
+ImageButton : "Image Button",
+
+FitWindow : "Maximize the editor size",
+
+// Context Menu
+EditLink : "Edit Link",
+CellCM : "Cell",
+RowCM : "Row",
+ColumnCM : "Column",
+InsertRow : "Insert Row",
+DeleteRows : "Delete Rows",
+InsertColumn : "Insert Column",
+DeleteColumns : "Delete Columns",
+InsertCell : "Insert Cell",
+DeleteCells : "Delete Cells",
+MergeCells : "Merge Cells",
+SplitCell : "Split Cell",
+TableDelete : "Delete Table",
+CellProperties : "Cell Properties",
+TableProperties : "Table Properties",
+ImageProperties : "Image Properties",
+FlashProperties : "Flash Properties",
+
+AnchorProp : "Anchor Properties",
+ButtonProp : "Button Properties",
+CheckboxProp : "Checkbox Properties",
+HiddenFieldProp : "Hidden Field Properties",
+RadioButtonProp : "Radio Button Properties",
+ImageButtonProp : "Image Button Properties",
+TextFieldProp : "Text Field Properties",
+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)",
+
+// Alerts and Messages
+ProcessingXHTML : "Processing XHTML. Please wait...",
+Done : "Done",
+PasteWordConfirm : "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?",
+NotCompatiblePaste : "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?",
+UnknownToolbarItem : "Unknown toolbar item \"%1\"",
+UnknownCommand : "Unknown command name \"%1\"",
+NotImplemented : "Command not implemented",
+UnknownToolbarSet : "Toolbar set \"%1\" doesn't exist",
+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.",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
+DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Cancel",
+DlgBtnClose : "Close",
+DlgBtnBrowseServer : "Browse Server",
+DlgAdvancedTag : "Advanced",
+DlgOpOther : "",
+DlgInfoTab : "Info",
+DlgAlertUrl : "Please insert the URL",
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Language Direction",
+DlgGenLangDirLtr : "Left to Right (LTR)",
+DlgGenLangDirRtl : "Right to Left (RTL)",
+DlgGenLangCode : "Language Code",
+DlgGenAccessKey : "Access Key",
+DlgGenName : "Name",
+DlgGenTabIndex : "Tab Index",
+DlgGenLongDescr : "Long Description URL",
+DlgGenClass : "Stylesheet Classes",
+DlgGenTitle : "Advisory Title",
+DlgGenContType : "Advisory Content Type",
+DlgGenLinkCharset : "Linked Resource Charset",
+DlgGenStyle : "Style",
+
+// Image Dialog
+DlgImgTitle : "Image Properties",
+DlgImgInfoTab : "Image Info",
+DlgImgBtnUpload : "Send it to the Server",
+DlgImgURL : "URL",
+DlgImgUpload : "Upload",
+DlgImgAlt : "Alternative Text",
+DlgImgWidth : "Width",
+DlgImgHeight : "Height",
+DlgImgLockRatio : "Lock Ratio",
+DlgBtnResetSize : "Reset Size",
+DlgImgBorder : "Border",
+DlgImgHSpace : "HSpace",
+DlgImgVSpace : "VSpace",
+DlgImgAlign : "Align",
+DlgImgAlignLeft : "Left",
+DlgImgAlignAbsBottom: "Abs Bottom",
+DlgImgAlignAbsMiddle: "Abs Middle",
+DlgImgAlignBaseline : "Baseline",
+DlgImgAlignBottom : "Bottom",
+DlgImgAlignMiddle : "Middle",
+DlgImgAlignRight : "Right",
+DlgImgAlignTextTop : "Text Top",
+DlgImgAlignTop : "Top",
+DlgImgPreview : "Preview",
+DlgImgAlertUrl : "Please type the image URL",
+DlgImgLinkTab : "Link",
+
+// Flash Dialog
+DlgFlashTitle : "Flash Properties",
+DlgFlashChkPlay : "Auto Play",
+DlgFlashChkLoop : "Loop",
+DlgFlashChkMenu : "Enable Flash Menu",
+DlgFlashScale : "Scale",
+DlgFlashScaleAll : "Show all",
+DlgFlashScaleNoBorder : "No Border",
+DlgFlashScaleFit : "Exact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle : "Link",
+DlgLnkInfoTab : "Link Info",
+DlgLnkTargetTab : "Target",
+
+DlgLnkType : "Link Type",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Anchor in this page",
+DlgLnkTypeEMail : "E-Mail",
+DlgLnkProto : "Protocol",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Select an Anchor",
+DlgLnkAnchorByName : "By Anchor Name",
+DlgLnkAnchorById : "By Element Id",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "E-Mail Address",
+DlgLnkEMailSubject : "Message Subject",
+DlgLnkEMailBody : "Message Body",
+DlgLnkUpload : "Upload",
+DlgLnkBtnUpload : "Send it to the Server",
+
+DlgLnkTarget : "Target",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "New Window (_blank)",
+DlgLnkTargetParent : "Parent Window (_parent)",
+DlgLnkTargetSelf : "Same Window (_self)",
+DlgLnkTargetTop : "Topmost Window (_top)",
+DlgLnkTargetFrameName : "Target Frame Name",
+DlgLnkPopWinName : "Popup Window Name",
+DlgLnkPopWinFeat : "Popup Window Features",
+DlgLnkPopResize : "Resizable",
+DlgLnkPopLocation : "Location Bar",
+DlgLnkPopMenu : "Menu Bar",
+DlgLnkPopScroll : "Scroll Bars",
+DlgLnkPopStatus : "Status Bar",
+DlgLnkPopToolbar : "Toolbar",
+DlgLnkPopFullScrn : "Full Screen (IE)",
+DlgLnkPopDependent : "Dependent (Netscape)",
+DlgLnkPopWidth : "Width",
+DlgLnkPopHeight : "Height",
+DlgLnkPopLeft : "Left Position",
+DlgLnkPopTop : "Top Position",
+
+DlnLnkMsgNoUrl : "Please type the link URL",
+DlnLnkMsgNoEMail : "Please type the e-mail address",
+DlnLnkMsgNoAnchor : "Please select an anchor",
+
+// Color Dialog
+DlgColorTitle : "Select Color",
+DlgColorBtnClear : "Clear",
+DlgColorHighlight : "Highlight",
+DlgColorSelected : "Selected",
+
+// Smiley Dialog
+DlgSmileyTitle : "Insert a Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Select Special Character",
+
+// Table Dialog
+DlgTableTitle : "Table Properties",
+DlgTableRows : "Rows",
+DlgTableColumns : "Columns",
+DlgTableBorder : "Border size",
+DlgTableAlign : "Alignment",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Left",
+DlgTableAlignCenter : "Center",
+DlgTableAlignRight : "Right",
+DlgTableWidth : "Width",
+DlgTableWidthPx : "pixels",
+DlgTableWidthPc : "percent",
+DlgTableHeight : "Height",
+DlgTableCellSpace : "Cell spacing",
+DlgTableCellPad : "Cell padding",
+DlgTableCaption : "Caption",
+DlgTableSummary : "Summary",
+
+// Table Cell Dialog
+DlgCellTitle : "Cell Properties",
+DlgCellWidth : "Width",
+DlgCellWidthPx : "pixels",
+DlgCellWidthPc : "percent",
+DlgCellHeight : "Height",
+DlgCellWordWrap : "Word Wrap",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Yes",
+DlgCellWordWrapNo : "No",
+DlgCellHorAlign : "Horizontal Alignment",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Left",
+DlgCellHorAlignCenter : "Center",
+DlgCellHorAlignRight: "Right",
+DlgCellVerAlign : "Vertical Alignment",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Top",
+DlgCellVerAlignMiddle : "Middle",
+DlgCellVerAlignBottom : "Bottom",
+DlgCellVerAlignBaseline : "Baseline",
+DlgCellRowSpan : "Rows Span",
+DlgCellCollSpan : "Columns Span",
+DlgCellBackColor : "Background Color",
+DlgCellBorderColor : "Border Color",
+DlgCellBtnSelect : "Select...",
+
+// Find Dialog
+DlgFindTitle : "Find",
+DlgFindFindBtn : "Find",
+DlgFindNotFoundMsg : "The specified text was not found.",
+
+// Replace Dialog
+DlgReplaceTitle : "Replace",
+DlgReplaceFindLbl : "Find what:",
+DlgReplaceReplaceLbl : "Replace with:",
+DlgReplaceCaseChk : "Match case",
+DlgReplaceReplaceBtn : "Replace",
+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).",
+
+PasteAsText : "Paste as Plain Text",
+PasteFromWord : "Paste from Word",
+
+DlgPasteMsg2 : "Please paste inside the following box using the keyboard (Ctrl+V) and hit OK.",
+DlgPasteIgnoreFont : "Ignore Font Face definitions",
+DlgPasteRemoveStyles : "Remove Styles definitions",
+DlgPasteCleanBox : "Clean Up Box",
+
+// Color Picker
+ColorAutomatic : "Automatic",
+ColorMoreColors : "More Colors...",
+
+// Document Properties
+DocProps : "Document Properties",
+
+// Anchor Dialog
+DlgAnchorTitle : "Anchor Properties",
+DlgAnchorName : "Anchor Name",
+DlgAnchorErrorName : "Please type the anchor name",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Not in dictionary",
+DlgSpellChangeTo : "Change to",
+DlgSpellBtnIgnore : "Ignore",
+DlgSpellBtnIgnoreAll : "Ignore All",
+DlgSpellBtnReplace : "Replace",
+DlgSpellBtnReplaceAll : "Replace All",
+DlgSpellBtnUndo : "Undo",
+DlgSpellNoSuggestions : "- No suggestions -",
+DlgSpellProgress : "Spell check in progress...",
+DlgSpellNoMispell : "Spell check complete: No misspellings found",
+DlgSpellNoChanges : "Spell check complete: No words changed",
+DlgSpellOneChange : "Spell check complete: One word changed",
+DlgSpellManyChanges : "Spell check complete: %1 words changed",
+
+IeSpellDownload : "Spell checker not installed. Do you want to download it now?",
+
+// Button Dialog
+DlgButtonText : "Text (Value)",
+DlgButtonType : "Type",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Name",
+DlgCheckboxValue : "Value",
+DlgCheckboxSelected : "Selected",
+
+// Form Dialog
+DlgFormName : "Name",
+DlgFormAction : "Action",
+DlgFormMethod : "Method",
+
+// Select Field Dialog
+DlgSelectName : "Name",
+DlgSelectValue : "Value",
+DlgSelectSize : "Size",
+DlgSelectLines : "lines",
+DlgSelectChkMulti : "Allow multiple selections",
+DlgSelectOpAvail : "Available Options",
+DlgSelectOpText : "Text",
+DlgSelectOpValue : "Value",
+DlgSelectBtnAdd : "Add",
+DlgSelectBtnModify : "Modify",
+DlgSelectBtnUp : "Up",
+DlgSelectBtnDown : "Down",
+DlgSelectBtnSetValue : "Set as selected value",
+DlgSelectBtnDelete : "Delete",
+
+// Textarea Dialog
+DlgTextareaName : "Name",
+DlgTextareaCols : "Columns",
+DlgTextareaRows : "Rows",
+
+// Text Field Dialog
+DlgTextName : "Name",
+DlgTextValue : "Value",
+DlgTextCharWidth : "Character Width",
+DlgTextMaxChars : "Maximum Characters",
+DlgTextType : "Type",
+DlgTextTypeText : "Text",
+DlgTextTypePass : "Password",
+
+// Hidden Field Dialog
+DlgHiddenName : "Name",
+DlgHiddenValue : "Value",
+
+// Bulleted List Dialog
+BulletedListProp : "Bulleted List Properties",
+NumberedListProp : "Numbered List Properties",
+DlgLstType : "Type",
+DlgLstTypeCircle : "Circle",
+DlgLstTypeDisc : "Disc",
+DlgLstTypeSquare : "Square",
+DlgLstTypeNumbers : "Numbers (1, 2, 3)",
+DlgLstTypeLCase : "Lowercase Letters (a, b, c)",
+DlgLstTypeUCase : "Uppercase Letters (A, B, C)",
+DlgLstTypeSRoman : "Small Roman Numerals (i, ii, iii)",
+DlgLstTypeLRoman : "Large Roman Numerals (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "General",
+DlgDocBackTab : "Background",
+DlgDocColorsTab : "Colors and Margins",
+DlgDocMetaTab : "Meta Data",
+
+DlgDocPageTitle : "Page Title",
+DlgDocLangDir : "Language Direction",
+DlgDocLangDirLTR : "Left to Right (LTR)",
+DlgDocLangDirRTL : "Right to Left (RTL)",
+DlgDocLangCode : "Language Code",
+DlgDocCharSet : "Character Set Encoding",
+DlgDocCharSetOther : "Other Character Set Encoding",
+
+DlgDocDocType : "Document Type Heading",
+DlgDocDocTypeOther : "Other Document Type Heading",
+DlgDocIncXHTML : "Include XHTML Declarations",
+DlgDocBgColor : "Background Color",
+DlgDocBgImage : "Background Image URL",
+DlgDocBgNoScroll : "Nonscrolling Background",
+DlgDocCText : "Text",
+DlgDocCLink : "Link",
+DlgDocCVisited : "Visited Link",
+DlgDocCActive : "Active Link",
+DlgDocMargins : "Page Margins",
+DlgDocMaTop : "Top",
+DlgDocMaLeft : "Left",
+DlgDocMaRight : "Right",
+DlgDocMaBottom : "Bottom",
+DlgDocMeIndex : "Document Indexing Keywords (comma separated)",
+DlgDocMeDescr : "Document Description",
+DlgDocMeAuthor : "Author",
+DlgDocMeCopy : "Copyright",
+DlgDocPreview : "Preview",
+
+// Templates Dialog
+Templates : "Templates",
+DlgTemplatesTitle : "Content Templates",
+DlgTemplatesSelMsg : "Please select the template to open in the editor
(the actual contents will be lost):",
+DlgTemplatesLoading : "Loading templates list. Please wait...",
+DlgTemplatesNoTpl : "(No templates defined)",
+
+// About Dialog
+DlgAboutAboutTab : "About",
+DlgAboutBrowserInfoTab : "Browser Info",
+DlgAboutLicenseTab : "License",
+DlgAboutVersion : "version",
+DlgAboutLicense : "Licensed under the terms of the GNU Lesser General Public License",
+DlgAboutInfo : "For further information go to"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/eo.js b/htdocs/includes/fckeditor/editor/lang/eo.js
new file mode 100644
index 00000000000..9a9912c11f2
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/eo.js
@@ -0,0 +1,486 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: eo.js
+ * Esperanto language file.
+ *
+ * File Authors:
+ * Tim Morley (timsk@openoffice.org)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Kaŝi Ilobreton",
+ToolbarExpand : "Vidigi Ilojn",
+
+// Toolbar Items and Context Menu
+Save : "Sekurigi",
+NewPage : "Nova Paĝo",
+Preview : "Vidigi Aspekton",
+Cut : "Eltondi",
+Copy : "Kopii",
+Paste : "Interglui",
+PasteText : "Interglui kiel Tekston",
+PasteWord : "Interglui el Word",
+Print : "Presi",
+SelectAll : "Elekti ĉion",
+RemoveFormat : "Forigi Formaton",
+InsertLinkLbl : "Ligilo",
+InsertLink : "Enmeti/Ŝanĝi Ligilon",
+RemoveLink : "Forigi Ligilon",
+Anchor : "Enmeti/Ŝanĝi Ankron",
+InsertImageLbl : "Bildo",
+InsertImage : "Enmeti/Ŝanĝi Bildon",
+InsertFlashLbl : "Flash", //MISSING
+InsertFlash : "Insert/Edit Flash", //MISSING
+InsertTableLbl : "Tabelo",
+InsertTable : "Enmeti/Ŝanĝi Tabelon",
+InsertLineLbl : "Horizonta Linio",
+InsertLine : "Enmeti Horizonta Linio",
+InsertSpecialCharLbl: "Speciala Signo",
+InsertSpecialChar : "Enmeti Specialan Signon",
+InsertSmileyLbl : "Mienvinjeto",
+InsertSmiley : "Enmeti Mienvinjeton",
+About : "Pri FCKeditor",
+Bold : "Grasa",
+Italic : "Kursiva",
+Underline : "Substreko",
+StrikeThrough : "Trastreko",
+Subscript : "Subskribo",
+Superscript : "Superskribo",
+LeftJustify : "Maldekstrigi",
+CenterJustify : "Centrigi",
+RightJustify : "Dekstrigi",
+BlockJustify : "Ĝisrandigi Ambaŭflanke",
+DecreaseIndent : "Malpligrandigi Krommarĝenon",
+IncreaseIndent : "Pligrandigi Krommarĝenon",
+Undo : "Malfari",
+Redo : "Refari",
+NumberedListLbl : "Numera Listo",
+NumberedList : "Enmeti/Forigi Numeran Liston",
+BulletedListLbl : "Bula Listo",
+BulletedList : "Enmeti/Forigi Bulan Liston",
+ShowTableBorders : "Vidigi Borderojn de Tabelo",
+ShowDetails : "Vidigi Detalojn",
+Style : "Stilo",
+FontFormat : "Formato",
+Font : "Tiparo",
+FontSize : "Grando",
+TextColor : "Teksta Koloro",
+BGColor : "Fona Koloro",
+Source : "Fonto",
+Find : "Serĉi",
+Replace : "Anstataŭigi",
+SpellCheck : "Literumada Kontrolilo",
+UniversalKeyboard : "Universala Klavaro",
+PageBreakLbl : "Page Break", //MISSING
+PageBreak : "Insert Page Break", //MISSING
+
+Form : "Formularo",
+Checkbox : "Markobutono",
+RadioButton : "Radiobutono",
+TextField : "Teksta kampo",
+Textarea : "Teksta Areo",
+HiddenField : "Kaŝita Kampo",
+Button : "Butono",
+SelectionField : "Elekta Kampo",
+ImageButton : "Bildbutono",
+
+FitWindow : "Maximize the editor size", //MISSING
+
+// Context Menu
+EditLink : "Modifier Ligilon",
+CellCM : "Cell", //MISSING
+RowCM : "Row", //MISSING
+ColumnCM : "Column", //MISSING
+InsertRow : "Enmeti Linion",
+DeleteRows : "Forigi Liniojn",
+InsertColumn : "Enmeti Kolumnon",
+DeleteColumns : "Forigi Kolumnojn",
+InsertCell : "Enmeti Ĉelon",
+DeleteCells : "Forigi Ĉelojn",
+MergeCells : "Kunfandi Ĉelojn",
+SplitCell : "Dividi Ĉelojn",
+TableDelete : "Delete Table", //MISSING
+CellProperties : "Atributoj de Ĉelo",
+TableProperties : "Atributoj de Tabelo",
+ImageProperties : "Atributoj de Bildo",
+FlashProperties : "Flash Properties", //MISSING
+
+AnchorProp : "Ankraj Atributoj",
+ButtonProp : "Butonaj Atributoj",
+CheckboxProp : "Markobutonaj Atributoj",
+HiddenFieldProp : "Atributoj de Kaŝita Kampo",
+RadioButtonProp : "Radiobutonaj Atributoj",
+ImageButtonProp : "Bildbutonaj Atributoj",
+TextFieldProp : "Atributoj de Teksta Kampo",
+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)",
+
+// Alerts and Messages
+ProcessingXHTML : "Traktado de XHTML. Bonvolu pacienci...",
+Done : "Finita",
+PasteWordConfirm : "La algluota teksto ŝajnas esti Word-devena. Ĉu vi volas purigi ĝin antaŭ ol interglui?",
+NotCompatiblePaste : "Tiu ĉi komando bezonas almenaŭ Internet Explorer 5.5. Ĉu vi volas daŭrigi sen purigado?",
+UnknownToolbarItem : "Ilobretero nekonata \"%1\"",
+UnknownCommand : "Komandonomo nekonata \"%1\"",
+NotImplemented : "Komando ne ankoraŭ realigita",
+UnknownToolbarSet : "La ilobreto \"%1\" ne ekzistas",
+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
+
+// Dialogs
+DlgBtnOK : "Akcepti",
+DlgBtnCancel : "Rezigni",
+DlgBtnClose : "Fermi",
+DlgBtnBrowseServer : "Foliumi en la Servilo",
+DlgAdvancedTag : "Speciala",
+DlgOpOther : "",
+DlgInfoTab : "Info", //MISSING
+DlgAlertUrl : "Please insert the URL", //MISSING
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Skribdirekto",
+DlgGenLangDirLtr : "De maldekstro dekstren (LTR)",
+DlgGenLangDirRtl : "De dekstro maldekstren (RTL)",
+DlgGenLangCode : "Lingva Kodo",
+DlgGenAccessKey : "Fulmoklavo",
+DlgGenName : "Nomo",
+DlgGenTabIndex : "Taba Ordo",
+DlgGenLongDescr : "URL de Longa Priskribo",
+DlgGenClass : "Klasoj de Stilfolioj",
+DlgGenTitle : "Indika Titolo",
+DlgGenContType : "Indika Enhavotipo",
+DlgGenLinkCharset : "Signaro de la Ligita Rimedo",
+DlgGenStyle : "Stilo",
+
+// Image Dialog
+DlgImgTitle : "Atributoj de Bildo",
+DlgImgInfoTab : "Informoj pri Bildo",
+DlgImgBtnUpload : "Sendu al Servilo",
+DlgImgURL : "URL",
+DlgImgUpload : "Alŝuti",
+DlgImgAlt : "Anstataŭiga Teksto",
+DlgImgWidth : "Larĝo",
+DlgImgHeight : "Alto",
+DlgImgLockRatio : "Konservi Proporcion",
+DlgBtnResetSize : "Origina Grando",
+DlgImgBorder : "Bordero",
+DlgImgHSpace : "HSpaco",
+DlgImgVSpace : "VSpaco",
+DlgImgAlign : "Ĝisrandigo",
+DlgImgAlignLeft : "Maldekstre",
+DlgImgAlignAbsBottom: "Abs Malsupre",
+DlgImgAlignAbsMiddle: "Abs Centre",
+DlgImgAlignBaseline : "Je Malsupro de Teksto",
+DlgImgAlignBottom : "Malsupre",
+DlgImgAlignMiddle : "Centre",
+DlgImgAlignRight : "Dekstre",
+DlgImgAlignTextTop : "Je Supro de Teksto",
+DlgImgAlignTop : "Supre",
+DlgImgPreview : "Vidigi Aspekton",
+DlgImgAlertUrl : "Bonvolu tajpi la URL de la bildo",
+DlgImgLinkTab : "Link", //MISSING
+
+// 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
+
+// Link Dialog
+DlgLnkWindowTitle : "Ligilo",
+DlgLnkInfoTab : "Informoj pri la Ligilo",
+DlgLnkTargetTab : "Celo",
+
+DlgLnkType : "Tipo de Ligilo",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Ankri en tiu ĉi paĝo",
+DlgLnkTypeEMail : "Retpoŝto",
+DlgLnkProto : "Protokolo",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Elekti Ankron",
+DlgLnkAnchorByName : "Per Ankronomo",
+DlgLnkAnchorById : "Per Elementidentigilo",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "Retadreso",
+DlgLnkEMailSubject : "Temlinio",
+DlgLnkEMailBody : "Mesaĝa korpo",
+DlgLnkUpload : "Alŝuti",
+DlgLnkBtnUpload : "Sendi al Servilo",
+
+DlgLnkTarget : "Celo",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "<ŝprucfenestro>",
+DlgLnkTargetBlank : "Nova Fenestro (_blank)",
+DlgLnkTargetParent : "Gepatra Fenestro (_parent)",
+DlgLnkTargetSelf : "Sama Fenestro (_self)",
+DlgLnkTargetTop : "Plej Supra Fenestro (_top)",
+DlgLnkTargetFrameName : "Nomo de Kadro",
+DlgLnkPopWinName : "Nomo de Ŝprucfenestro",
+DlgLnkPopWinFeat : "Atributoj de la Ŝprucfenestro",
+DlgLnkPopResize : "Grando Ŝanĝebla",
+DlgLnkPopLocation : "Adresobreto",
+DlgLnkPopMenu : "Menubreto",
+DlgLnkPopScroll : "Rulumlisteloj",
+DlgLnkPopStatus : "Statobreto",
+DlgLnkPopToolbar : "Ilobreto",
+DlgLnkPopFullScrn : "Tutekrane (IE)",
+DlgLnkPopDependent : "Dependa (Netscape)",
+DlgLnkPopWidth : "Larĝo",
+DlgLnkPopHeight : "Alto",
+DlgLnkPopLeft : "Pozicio de Maldekstro",
+DlgLnkPopTop : "Pozicio de Supro",
+
+DlnLnkMsgNoUrl : "Bonvolu entajpi la URL-on",
+DlnLnkMsgNoEMail : "Bonvolu entajpi la retadreson",
+DlnLnkMsgNoAnchor : "Bonvolu elekti ankron",
+
+// Color Dialog
+DlgColorTitle : "Elekti",
+DlgColorBtnClear : "Forigi",
+DlgColorHighlight : "Emfazi",
+DlgColorSelected : "Elektita",
+
+// Smiley Dialog
+DlgSmileyTitle : "Enmeti Mienvinjeton",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Enmeti Specialan Signon",
+
+// Table Dialog
+DlgTableTitle : "Atributoj de Tabelo",
+DlgTableRows : "Linioj",
+DlgTableColumns : "Kolumnoj",
+DlgTableBorder : "Bordero",
+DlgTableAlign : "Ĝisrandigo",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Maldekstre",
+DlgTableAlignCenter : "Centre",
+DlgTableAlignRight : "Dekstre",
+DlgTableWidth : "Larĝo",
+DlgTableWidthPx : "Bitbilderoj",
+DlgTableWidthPc : "elcentoj",
+DlgTableHeight : "Alto",
+DlgTableCellSpace : "Interspacigo de Ĉeloj",
+DlgTableCellPad : "Ĉirkaŭenhava Plenigado",
+DlgTableCaption : "Titolo",
+DlgTableSummary : "Summary", //MISSING
+
+// Table Cell Dialog
+DlgCellTitle : "Atributoj de Celo",
+DlgCellWidth : "Larĝo",
+DlgCellWidthPx : "bitbilderoj",
+DlgCellWidthPc : "elcentoj",
+DlgCellHeight : "Alto",
+DlgCellWordWrap : "Linifaldo",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Jes",
+DlgCellWordWrapNo : "Ne",
+DlgCellHorAlign : "Horizonta Ĝisrandigo",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Maldekstre",
+DlgCellHorAlignCenter : "Centre",
+DlgCellHorAlignRight: "Dekstre",
+DlgCellVerAlign : "Vertikala Ĝisrandigo",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Supre",
+DlgCellVerAlignMiddle : "Centre",
+DlgCellVerAlignBottom : "Malsupre",
+DlgCellVerAlignBaseline : "Je Malsupro de Teksto",
+DlgCellRowSpan : "Linioj Kunfanditaj",
+DlgCellCollSpan : "Kolumnoj Kunfanditaj",
+DlgCellBackColor : "Fono",
+DlgCellBorderColor : "Bordero",
+DlgCellBtnSelect : "Elekti...",
+
+// Find Dialog
+DlgFindTitle : "Serĉi",
+DlgFindFindBtn : "Serĉi",
+DlgFindNotFoundMsg : "La celteksto ne estas trovita.",
+
+// Replace Dialog
+DlgReplaceTitle : "Anstataŭigi",
+DlgReplaceFindLbl : "Serĉi:",
+DlgReplaceReplaceLbl : "Anstataŭigi per:",
+DlgReplaceCaseChk : "Kongruigi Usklecon",
+DlgReplaceReplaceBtn : "Anstataŭigi",
+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).",
+
+PasteAsText : "Interglui kiel Tekston",
+PasteFromWord : "Interglui el Word",
+
+DlgPasteMsg2 : "Please paste inside the following box using the keyboard (Ctrl+V) and hit OK.", //MISSING
+DlgPasteIgnoreFont : "Ignore Font Face definitions", //MISSING
+DlgPasteRemoveStyles : "Remove Styles definitions", //MISSING
+DlgPasteCleanBox : "Clean Up Box", //MISSING
+
+// Color Picker
+ColorAutomatic : "Aŭtomata",
+ColorMoreColors : "Pli da Koloroj...",
+
+// Document Properties
+DocProps : "Dokumentaj Atributoj",
+
+// Anchor Dialog
+DlgAnchorTitle : "Ankraj Atributoj",
+DlgAnchorName : "Ankra Nomo",
+DlgAnchorErrorName : "Bv tajpi la ankran nomon",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Ne trovita en la vortaro",
+DlgSpellChangeTo : "Ŝanĝi al",
+DlgSpellBtnIgnore : "Malatenti",
+DlgSpellBtnIgnoreAll : "Malatenti Ĉiun",
+DlgSpellBtnReplace : "Anstataŭigi",
+DlgSpellBtnReplaceAll : "Anstataŭigi Ĉiun",
+DlgSpellBtnUndo : "Malfari",
+DlgSpellNoSuggestions : "- Neniu propono -",
+DlgSpellProgress : "Literumkontrolado daŭras...",
+DlgSpellNoMispell : "Literumkontrolado finita: neniu fuŝo trovita",
+DlgSpellNoChanges : "Literumkontrolado finita: neniu vorto ŝanĝita",
+DlgSpellOneChange : "Literumkontrolado finita: unu vorto ŝanĝita",
+DlgSpellManyChanges : "Literumkontrolado finita: %1 vortoj ŝanĝitaj",
+
+IeSpellDownload : "Literumada Kontrolilo ne instalita. Ĉu vi volas elŝuti ĝin nun?",
+
+// Button Dialog
+DlgButtonText : "Teksto (Valoro)",
+DlgButtonType : "Tipo",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Nomo",
+DlgCheckboxValue : "Valoro",
+DlgCheckboxSelected : "Elektita",
+
+// Form Dialog
+DlgFormName : "Nomo",
+DlgFormAction : "Ago",
+DlgFormMethod : "Metodo",
+
+// Select Field Dialog
+DlgSelectName : "Nomo",
+DlgSelectValue : "Valoro",
+DlgSelectSize : "Grando",
+DlgSelectLines : "Linioj",
+DlgSelectChkMulti : "Permesi Plurajn Elektojn",
+DlgSelectOpAvail : "Elektoj Disponeblaj",
+DlgSelectOpText : "Teksto",
+DlgSelectOpValue : "Valoro",
+DlgSelectBtnAdd : "Aldoni",
+DlgSelectBtnModify : "Modifi",
+DlgSelectBtnUp : "Supren",
+DlgSelectBtnDown : "Malsupren",
+DlgSelectBtnSetValue : "Agordi kiel Elektitan Valoron",
+DlgSelectBtnDelete : "Forigi",
+
+// Textarea Dialog
+DlgTextareaName : "Nomo",
+DlgTextareaCols : "Kolumnoj",
+DlgTextareaRows : "Vicoj",
+
+// Text Field Dialog
+DlgTextName : "Nomo",
+DlgTextValue : "Valoro",
+DlgTextCharWidth : "Signolarĝo",
+DlgTextMaxChars : "Maksimuma Nombro da Signoj",
+DlgTextType : "Tipo",
+DlgTextTypeText : "Teksto",
+DlgTextTypePass : "Pasvorto",
+
+// Hidden Field Dialog
+DlgHiddenName : "Nomo",
+DlgHiddenValue : "Valoro",
+
+// Bulleted List Dialog
+BulletedListProp : "Atributoj de Bula Listo",
+NumberedListProp : "Atributoj de Numera Listo",
+DlgLstType : "Tipo",
+DlgLstTypeCircle : "Cirklo",
+DlgLstTypeDisc : "Disc", //MISSING
+DlgLstTypeSquare : "Kvadrato",
+DlgLstTypeNumbers : "Ciferoj (1, 2, 3)",
+DlgLstTypeLCase : "Minusklaj Literoj (a, b, c)",
+DlgLstTypeUCase : "Majusklaj Literoj (A, B, C)",
+DlgLstTypeSRoman : "Malgrandaj Romanaj Ciferoj (i, ii, iii)",
+DlgLstTypeLRoman : "Grandaj Romanaj Ciferoj (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "Ĝeneralaĵoj",
+DlgDocBackTab : "Fono",
+DlgDocColorsTab : "Koloroj kaj Marĝenoj",
+DlgDocMetaTab : "Metadatumoj",
+
+DlgDocPageTitle : "Paĝotitolo",
+DlgDocLangDir : "Skribdirekto de la Lingvo",
+DlgDocLangDirLTR : "De maldekstro dekstren (LTR)",
+DlgDocLangDirRTL : "De dekstro maldekstren (LTR)",
+DlgDocLangCode : "Lingvokodo",
+DlgDocCharSet : "Signara Kodo",
+DlgDocCharSetOther : "Alia Signara Kodo",
+
+DlgDocDocType : "Dokumenta Tipo",
+DlgDocDocTypeOther : "Alia Dokumenta Tipo",
+DlgDocIncXHTML : "Inkluzivi XHTML Deklaroj",
+DlgDocBgColor : "Fona Koloro",
+DlgDocBgImage : "URL de Fona Bildo",
+DlgDocBgNoScroll : "Neruluma Fono",
+DlgDocCText : "Teksto",
+DlgDocCLink : "Ligilo",
+DlgDocCVisited : "Vizitita Ligilo",
+DlgDocCActive : "Aktiva Ligilo",
+DlgDocMargins : "Paĝaj Marĝenoj",
+DlgDocMaTop : "Supra",
+DlgDocMaLeft : "Maldekstra",
+DlgDocMaRight : "Dekstra",
+DlgDocMaBottom : "Malsupra",
+DlgDocMeIndex : "Ŝlosilvortoj de la Dokumento (apartigita de komoj)",
+DlgDocMeDescr : "Dokumenta Priskribo",
+DlgDocMeAuthor : "Verkinto",
+DlgDocMeCopy : "Kopirajto",
+DlgDocPreview : "Aspekto",
+
+// Templates Dialog
+Templates : "Templates", //MISSING
+DlgTemplatesTitle : "Content Templates", //MISSING
+DlgTemplatesSelMsg : "Please select the template to open in the editor
(the actual contents will be lost):", //MISSING
+DlgTemplatesLoading : "Loading templates list. Please wait...", //MISSING
+DlgTemplatesNoTpl : "(No templates defined)", //MISSING
+
+// About Dialog
+DlgAboutAboutTab : "Pri",
+DlgAboutBrowserInfoTab : "Informoj pri TTT-legilo",
+DlgAboutLicenseTab : "License", //MISSING
+DlgAboutVersion : "versio",
+DlgAboutLicense : "Disdonata laŭ la GNU Lesser General Public License",
+DlgAboutInfo : "Por pli da informoj, vizitu"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/es.js b/htdocs/includes/fckeditor/editor/lang/es.js
new file mode 100644
index 00000000000..90fdb08c48b
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/es.js
@@ -0,0 +1,486 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: es.js
+ * Spanish language file.
+ *
+ * File Authors:
+ * Gabriel Schillaci (internetbug@users.sourceforge.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Contraer Barra",
+ToolbarExpand : "Expandir Barra",
+
+// Toolbar Items and Context Menu
+Save : "Guardar",
+NewPage : "Nueva Página",
+Preview : "Vista Previa",
+Cut : "Cortar",
+Copy : "Copiar",
+Paste : "Pegar",
+PasteText : "Pegar como texto plano",
+PasteWord : "Pegar desde Word",
+Print : "Imprimir",
+SelectAll : "Seleccionar Todo",
+RemoveFormat : "Eliminar Formato",
+InsertLinkLbl : "Vínculo",
+InsertLink : "Insertar/Editar Vínculo",
+RemoveLink : "Eliminar Vínculo",
+Anchor : "Referencia",
+InsertImageLbl : "Imagen",
+InsertImage : "Insertar/Editar Imagen",
+InsertFlashLbl : "Flash",
+InsertFlash : "Insertar/Editar Flash",
+InsertTableLbl : "Tabla",
+InsertTable : "Insertar/Editar Tabla",
+InsertLineLbl : "Línea",
+InsertLine : "Insertar Línea Horizontal",
+InsertSpecialCharLbl: "Caracter Especial",
+InsertSpecialChar : "Insertar Caracter Especial",
+InsertSmileyLbl : "Emoticons",
+InsertSmiley : "Insertar Emoticons",
+About : "Acerca de FCKeditor",
+Bold : "Negrita",
+Italic : "Cursiva",
+Underline : "Subrayado",
+StrikeThrough : "Tachado",
+Subscript : "Subíndice",
+Superscript : "Superíndice",
+LeftJustify : "Alinear a Izquierda",
+CenterJustify : "Centrar",
+RightJustify : "Alinear a Derecha",
+BlockJustify : "Justificado",
+DecreaseIndent : "Disminuir Sangría",
+IncreaseIndent : "Aumentar Sangría",
+Undo : "Deshacer",
+Redo : "Rehacer",
+NumberedListLbl : "Numeración",
+NumberedList : "Insertar/Eliminar Numeración",
+BulletedListLbl : "Viñetas",
+BulletedList : "Insertar/Eliminar Viñetas",
+ShowTableBorders : "Mostrar Bordes de Tablas",
+ShowDetails : "Mostrar saltos de Párrafo",
+Style : "Estilo",
+FontFormat : "Formato",
+Font : "Fuente",
+FontSize : "Tamaño",
+TextColor : "Color de Texto",
+BGColor : "Color de Fondo",
+Source : "Fuente HTML",
+Find : "Buscar",
+Replace : "Reemplazar",
+SpellCheck : "Ortografía",
+UniversalKeyboard : "Teclado Universal",
+PageBreakLbl : "Salto de Página",
+PageBreak : "Insertar Salto de Página",
+
+Form : "Formulario",
+Checkbox : "Casilla de Verificación",
+RadioButton : "Botones de Radio",
+TextField : "Campo de Texto",
+Textarea : "Area de Texto",
+HiddenField : "Campo Oculto",
+Button : "Botón",
+SelectionField : "Campo de Selección",
+ImageButton : "Botón Imagen",
+
+FitWindow : "Maximize the editor size", //MISSING
+
+// Context Menu
+EditLink : "Editar Vínculo",
+CellCM : "Cell", //MISSING
+RowCM : "Row", //MISSING
+ColumnCM : "Column", //MISSING
+InsertRow : "Insertar Fila",
+DeleteRows : "Eliminar Filas",
+InsertColumn : "Insertar Columna",
+DeleteColumns : "Eliminar Columnas",
+InsertCell : "Insertar Celda",
+DeleteCells : "Eliminar Celdas",
+MergeCells : "Combinar Celdas",
+SplitCell : "Dividir Celda",
+TableDelete : "Eliminar Tabla",
+CellProperties : "Propiedades de Celda",
+TableProperties : "Propiedades de Tabla",
+ImageProperties : "Propiedades de Imagen",
+FlashProperties : "Propiedades de Flash",
+
+AnchorProp : "Propiedades de Referencia",
+ButtonProp : "Propiedades de Botón",
+CheckboxProp : "Propiedades de Casilla",
+HiddenFieldProp : "Propiedades de Campo Oculto",
+RadioButtonProp : "Propiedades de Botón de Radio",
+ImageButtonProp : "Propiedades de Botón de Imagen",
+TextFieldProp : "Propiedades de Campo de Texto",
+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)",
+
+// Alerts and Messages
+ProcessingXHTML : "Procesando XHTML. Por favor, espere...",
+Done : "Hecho",
+PasteWordConfirm : "El texto que desea parece provenir de Word. Desea depurarlo antes de pegarlo?",
+NotCompatiblePaste : "Este comando está disponible sólo para Internet Explorer version 5.5 or superior. Desea pegar sin depurar?",
+UnknownToolbarItem : "Item de barra desconocido \"%1\"",
+UnknownCommand : "Nombre de comando desconocido \"%1\"",
+NotImplemented : "Comando no implementado",
+UnknownToolbarSet : "Nombre de barra \"%1\" no definido",
+NoActiveX : "La configuración de las opciones de seguridad de su navegador puede estar limitando algunas características del editor. Por favor active la opción \"Ejecutar controles y complementos de ActiveX \", de lo contrario puede experimentar errores o ausencia de funcionalidades.",
+BrowseServerBlocked : "La ventana de visualización del servidor no pudo ser abierta. Verifique que su navegador no esté bloqueando las ventanas emergentes (pop up).",
+DialogBlocked : "No se ha podido abrir la ventana de diálogo. Verifique que su navegador no esté bloqueando las ventanas emergentes (pop up).",
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Cancelar",
+DlgBtnClose : "Cerrar",
+DlgBtnBrowseServer : "Ver Servidor",
+DlgAdvancedTag : "Avanzado",
+DlgOpOther : "",
+DlgInfoTab : "Información",
+DlgAlertUrl : "Inserte el URL",
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Orientación de idioma",
+DlgGenLangDirLtr : "Izquierda a Derecha (LTR)",
+DlgGenLangDirRtl : "Derecha a Izquierda (RTL)",
+DlgGenLangCode : "Código de idioma",
+DlgGenAccessKey : "Clave de Acceso",
+DlgGenName : "Nombre",
+DlgGenTabIndex : "Indice de tabulación",
+DlgGenLongDescr : "Descripción larga URL",
+DlgGenClass : "Clases de hojas de estilo",
+DlgGenTitle : "Título",
+DlgGenContType : "Tipo de Contenido",
+DlgGenLinkCharset : "Fuente de caracteres vinculado",
+DlgGenStyle : "Estilo",
+
+// Image Dialog
+DlgImgTitle : "Propiedades de Imagen",
+DlgImgInfoTab : "Información de Imagen",
+DlgImgBtnUpload : "Enviar al Servidor",
+DlgImgURL : "URL",
+DlgImgUpload : "Cargar",
+DlgImgAlt : "Texto Alternativo",
+DlgImgWidth : "Anchura",
+DlgImgHeight : "Altura",
+DlgImgLockRatio : "Proporcional",
+DlgBtnResetSize : "Tamaño Original",
+DlgImgBorder : "Borde",
+DlgImgHSpace : "Esp.Horiz",
+DlgImgVSpace : "Esp.Vert",
+DlgImgAlign : "Alineación",
+DlgImgAlignLeft : "Izquierda",
+DlgImgAlignAbsBottom: "Abs inferior",
+DlgImgAlignAbsMiddle: "Abs centro",
+DlgImgAlignBaseline : "Línea de base",
+DlgImgAlignBottom : "Pie",
+DlgImgAlignMiddle : "Centro",
+DlgImgAlignRight : "Derecha",
+DlgImgAlignTextTop : "Tope del texto",
+DlgImgAlignTop : "Tope",
+DlgImgPreview : "Vista Previa",
+DlgImgAlertUrl : "Por favor tipee el URL de la imagen",
+DlgImgLinkTab : "Vínculo",
+
+// Flash Dialog
+DlgFlashTitle : "Propiedades de Flash",
+DlgFlashChkPlay : "Autoejecución",
+DlgFlashChkLoop : "Repetir",
+DlgFlashChkMenu : "Activar Menú Flash",
+DlgFlashScale : "Escala",
+DlgFlashScaleAll : "Mostrar todo",
+DlgFlashScaleNoBorder : "Sin Borde",
+DlgFlashScaleFit : "Ajustado",
+
+// Link Dialog
+DlgLnkWindowTitle : "Vínculo",
+DlgLnkInfoTab : "Información de Vínculo",
+DlgLnkTargetTab : "Destino",
+
+DlgLnkType : "Tipo de vínculo",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Referencia en esta página",
+DlgLnkTypeEMail : "E-Mail",
+DlgLnkProto : "Protocolo",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Seleccionar una referencia",
+DlgLnkAnchorByName : "Por Nombre de Referencia",
+DlgLnkAnchorById : "Por ID de elemento",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "Dirección de E-Mail",
+DlgLnkEMailSubject : "Título del Mensaje",
+DlgLnkEMailBody : "Cuerpo del Mensaje",
+DlgLnkUpload : "Cargar",
+DlgLnkBtnUpload : "Enviar al Servidor",
+
+DlgLnkTarget : "Destino",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "Nueva Ventana(_blank)",
+DlgLnkTargetParent : "Ventana Padre (_parent)",
+DlgLnkTargetSelf : "Misma Ventana (_self)",
+DlgLnkTargetTop : "Ventana primaria (_top)",
+DlgLnkTargetFrameName : "Nombre del Marco Destino",
+DlgLnkPopWinName : "Nombre de Ventana Emergente",
+DlgLnkPopWinFeat : "Características de Ventana Emergente",
+DlgLnkPopResize : "Ajustable",
+DlgLnkPopLocation : "Barra de ubicación",
+DlgLnkPopMenu : "Barra de Menú",
+DlgLnkPopScroll : "Barras de desplazamiento",
+DlgLnkPopStatus : "Barra de Estado",
+DlgLnkPopToolbar : "Barra de Herramientas",
+DlgLnkPopFullScrn : "Pantalla Completa (IE)",
+DlgLnkPopDependent : "Dependiente (Netscape)",
+DlgLnkPopWidth : "Anchura",
+DlgLnkPopHeight : "Altura",
+DlgLnkPopLeft : "Posición Izquierda",
+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",
+
+// Color Dialog
+DlgColorTitle : "Seleccionar Color",
+DlgColorBtnClear : "Ninguno",
+DlgColorHighlight : "Resaltado",
+DlgColorSelected : "Seleccionado",
+
+// Smiley Dialog
+DlgSmileyTitle : "Insertar un Emoticon",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Seleccione un caracter especial",
+
+// Table Dialog
+DlgTableTitle : "Propiedades de Tabla",
+DlgTableRows : "Filas",
+DlgTableColumns : "Columnas",
+DlgTableBorder : "Tamaño de Borde",
+DlgTableAlign : "Alineación",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Izquierda",
+DlgTableAlignCenter : "Centrado",
+DlgTableAlignRight : "Derecha",
+DlgTableWidth : "Anchura",
+DlgTableWidthPx : "pixeles",
+DlgTableWidthPc : "porcentaje",
+DlgTableHeight : "Altura",
+DlgTableCellSpace : "Esp. e/celdas",
+DlgTableCellPad : "Esp. interior",
+DlgTableCaption : "Título",
+DlgTableSummary : "Síntesis",
+
+// Table Cell Dialog
+DlgCellTitle : "Propiedades de Celda",
+DlgCellWidth : "Anchura",
+DlgCellWidthPx : "pixeles",
+DlgCellWidthPc : "porcentaje",
+DlgCellHeight : "Altura",
+DlgCellWordWrap : "Cortar Línea",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Si",
+DlgCellWordWrapNo : "No",
+DlgCellHorAlign : "Alineación Horizontal",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Izquierda",
+DlgCellHorAlignCenter : "Centrado",
+DlgCellHorAlignRight: "Derecha",
+DlgCellVerAlign : "Alineación Vertical",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Tope",
+DlgCellVerAlignMiddle : "Medio",
+DlgCellVerAlignBottom : "ie",
+DlgCellVerAlignBaseline : "Línea de Base",
+DlgCellRowSpan : "Abarcar Filas",
+DlgCellCollSpan : "Abarcar Columnas",
+DlgCellBackColor : "Color de Fondo",
+DlgCellBorderColor : "Color de Borde",
+DlgCellBtnSelect : "Seleccione...",
+
+// Find Dialog
+DlgFindTitle : "Buscar",
+DlgFindFindBtn : "Buscar",
+DlgFindNotFoundMsg : "El texto especificado no ha sido encontrado.",
+
+// Replace Dialog
+DlgReplaceTitle : "Reemplazar",
+DlgReplaceFindLbl : "Texto a buscar:",
+DlgReplaceReplaceLbl : "Reemplazar con:",
+DlgReplaceCaseChk : "Coincidir may/min",
+DlgReplaceReplaceBtn : "Reemplazar",
+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).",
+
+PasteAsText : "Pegar como Texto Plano",
+PasteFromWord : "Pegar desde Word",
+
+DlgPasteMsg2 : "Por favor pegue dentro del cuadro utilizando el teclado (Ctrl+V); luego presione OK.",
+DlgPasteIgnoreFont : "Ignorar definiciones de fuentes",
+DlgPasteRemoveStyles : "Remover definiciones de estilo",
+DlgPasteCleanBox : "Clean Up Box", //MISSING
+
+// Color Picker
+ColorAutomatic : "Automático",
+ColorMoreColors : "Más Colores...",
+
+// Document Properties
+DocProps : "Propiedades del Documento",
+
+// Anchor Dialog
+DlgAnchorTitle : "Propiedades de la Referencia",
+DlgAnchorName : "Nombre de la Referencia",
+DlgAnchorErrorName : "Por favor, complete el nombre de la Referencia",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "No se encuentra en el Diccionario",
+DlgSpellChangeTo : "Cambiar a",
+DlgSpellBtnIgnore : "Ignorar",
+DlgSpellBtnIgnoreAll : "Ignorar Todo",
+DlgSpellBtnReplace : "Reemplazar",
+DlgSpellBtnReplaceAll : "Reemplazar Todo",
+DlgSpellBtnUndo : "Deshacer",
+DlgSpellNoSuggestions : "- No hay sugerencias -",
+DlgSpellProgress : "Control de Ortografía en progreso...",
+DlgSpellNoMispell : "Control finalizado: no se encontraron errores",
+DlgSpellNoChanges : "Control finalizado: no se ha cambiado ninguna palabra",
+DlgSpellOneChange : "Control finalizado: se ha cambiado una palabra",
+DlgSpellManyChanges : "Control finalizado: se ha cambiado %1 palabras",
+
+IeSpellDownload : "Módulo de Control de Ortografía no instalado. ¿Desea descargarlo ahora?",
+
+// Button Dialog
+DlgButtonText : "Texto (Valor)",
+DlgButtonType : "Tipo",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Nombre",
+DlgCheckboxValue : "Valor",
+DlgCheckboxSelected : "Seleccionado",
+
+// Form Dialog
+DlgFormName : "Nombre",
+DlgFormAction : "Acción",
+DlgFormMethod : "Método",
+
+// Select Field Dialog
+DlgSelectName : "Nombre",
+DlgSelectValue : "Valor",
+DlgSelectSize : "Tamaño",
+DlgSelectLines : "Lineas",
+DlgSelectChkMulti : "Permitir múltiple selección",
+DlgSelectOpAvail : "Opciones disponibles",
+DlgSelectOpText : "Texto",
+DlgSelectOpValue : "Valor",
+DlgSelectBtnAdd : "Agregar",
+DlgSelectBtnModify : "Modificar",
+DlgSelectBtnUp : "Subir",
+DlgSelectBtnDown : "Bajar",
+DlgSelectBtnSetValue : "Establecer como predeterminado",
+DlgSelectBtnDelete : "Eliminar",
+
+// Textarea Dialog
+DlgTextareaName : "Nombre",
+DlgTextareaCols : "Columnas",
+DlgTextareaRows : "Filas",
+
+// Text Field Dialog
+DlgTextName : "Nombre",
+DlgTextValue : "Valor",
+DlgTextCharWidth : "Caracteres de ancho",
+DlgTextMaxChars : "Máximo caracteres",
+DlgTextType : "Tipo",
+DlgTextTypeText : "Texto",
+DlgTextTypePass : "Contraseña",
+
+// Hidden Field Dialog
+DlgHiddenName : "Nombre",
+DlgHiddenValue : "Valor",
+
+// Bulleted List Dialog
+BulletedListProp : "Propiedades de Viñetas",
+NumberedListProp : "Propiedades de Numeraciones",
+DlgLstType : "Tipo",
+DlgLstTypeCircle : "Círculo",
+DlgLstTypeDisc : "Disco",
+DlgLstTypeSquare : "Cuadrado",
+DlgLstTypeNumbers : "Números (1, 2, 3)",
+DlgLstTypeLCase : "letras en minúsculas (a, b, c)",
+DlgLstTypeUCase : "letras en mayúsculas (A, B, C)",
+DlgLstTypeSRoman : "Números Romanos (i, ii, iii)",
+DlgLstTypeLRoman : "Números Romanos (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "General",
+DlgDocBackTab : "Fondo",
+DlgDocColorsTab : "Colores y Márgenes",
+DlgDocMetaTab : "Meta Información",
+
+DlgDocPageTitle : "Título de Página",
+DlgDocLangDir : "Orientación de idioma",
+DlgDocLangDirLTR : "Izq. a Derecha (LTR)",
+DlgDocLangDirRTL : "Der. a Izquierda (RTL)",
+DlgDocLangCode : "Código de Idioma",
+DlgDocCharSet : "Codif. de Conjunto de Caracteres",
+DlgDocCharSetOther : "Otra Codificación",
+
+DlgDocDocType : "Encabezado de Tipo de Documento",
+DlgDocDocTypeOther : "Otro Encabezado",
+DlgDocIncXHTML : "Incluir Declaraciones XHTML",
+DlgDocBgColor : "Color de Fondo",
+DlgDocBgImage : "URL de Imagen de Fondo",
+DlgDocBgNoScroll : "Fondo sin rolido",
+DlgDocCText : "Texto",
+DlgDocCLink : "Vínculo",
+DlgDocCVisited : "Vínculo Visitado",
+DlgDocCActive : "Vínculo Activo",
+DlgDocMargins : "Márgenes de Página",
+DlgDocMaTop : "Tope",
+DlgDocMaLeft : "Izquierda",
+DlgDocMaRight : "Derecha",
+DlgDocMaBottom : "Pie",
+DlgDocMeIndex : "Claves de indexación del Documento (separados por comas)",
+DlgDocMeDescr : "Descripción del Documento",
+DlgDocMeAuthor : "Autor",
+DlgDocMeCopy : "Copyright",
+DlgDocPreview : "Vista Previa",
+
+// Templates Dialog
+Templates : "Plantillas",
+DlgTemplatesTitle : "Contenido de Plantillas",
+DlgTemplatesSelMsg : "Por favor selecciona la plantilla a abrir en el editor
(el contenido actual se perderá):",
+DlgTemplatesLoading : "Cargando lista de Plantillas. Por favor, aguarde...",
+DlgTemplatesNoTpl : "(No hay plantillas definidas)",
+
+// About Dialog
+DlgAboutAboutTab : "Acerca de",
+DlgAboutBrowserInfoTab : "Información de Navegador",
+DlgAboutLicenseTab : "License", //MISSING
+DlgAboutVersion : "versión",
+DlgAboutLicense : "Licenciado bajo los términos de GNU Lesser General Public License",
+DlgAboutInfo : "Para mayor información por favor dirigirse a"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/et.js b/htdocs/includes/fckeditor/editor/lang/et.js
new file mode 100644
index 00000000000..59ffd02c119
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/et.js
@@ -0,0 +1,487 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: et.js
+ * Estonian language file.
+ *
+ * File Authors:
+ * Kristjan Kivikangur (kristjan@ttrk.ee)
+ * Gustav Kaskema
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Voldi tööriistariba",
+ToolbarExpand : "Laienda tööriistariba",
+
+// Toolbar Items and Context Menu
+Save : "Salvesta",
+NewPage : "Uus leht",
+Preview : "Eelvaade",
+Cut : "Lõika",
+Copy : "Kopeeri",
+Paste : "Kleebi",
+PasteText : "Kleebi tavalise tekstina",
+PasteWord : "Kleebi Wordist",
+Print : "Prindi",
+SelectAll : "Vali kõik",
+RemoveFormat : "Eemalda vorming",
+InsertLinkLbl : "Link",
+InsertLink : "Sisesta/Muuda link",
+RemoveLink : "Eemalda link",
+Anchor : "Sisesta/Muuda ankur",
+InsertImageLbl : "Pilt",
+InsertImage : "Sisesta/Muuda pilt",
+InsertFlashLbl : "Flash",
+InsertFlash : "Sisesta/Muuda flash",
+InsertTableLbl : "Tabel",
+InsertTable : "Sisesta/Muuda tabel",
+InsertLineLbl : "Joon",
+InsertLine : "Sisesta horisontaaljoon",
+InsertSpecialCharLbl: "Erimärgid",
+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",
+Subscript : "Allindeks",
+Superscript : "Ülaindeks",
+LeftJustify : "Vasakjoondus",
+CenterJustify : "Keskjoondus",
+RightJustify : "Paremjoondus",
+BlockJustify : "Rööpjoondus",
+DecreaseIndent : "Vähenda taanet",
+IncreaseIndent : "Suurenda taanet",
+Undo : "Võta tagasi",
+Redo : "Korda toimingut",
+NumberedListLbl : "Nummerdatud loetelu",
+NumberedList : "Sisesta/Eemalda nummerdatud loetelu",
+BulletedListLbl : "Punktiseeritud loetelu",
+BulletedList : "Sisesta/Eemalda punktiseeritud loetelu",
+ShowTableBorders : "Näita tabeli jooni",
+ShowDetails : "Näita üksikasju",
+Style : "Laad",
+FontFormat : "Vorming",
+Font : "Kiri",
+FontSize : "Suurus",
+TextColor : "Teksti värv",
+BGColor : "Tausta värv",
+Source : "Lähtekood",
+Find : "Otsi",
+Replace : "Asenda",
+SpellCheck : "Kontrolli õigekirja",
+UniversalKeyboard : "Universaalne klaviatuur",
+PageBreakLbl : "Lehepiir",
+PageBreak : "Sisesta lehevahetus koht",
+
+Form : "Vorm",
+Checkbox : "Märkeruut",
+RadioButton : "Raadionupp",
+TextField : "Tekstilahter",
+Textarea : "Tekstiala",
+HiddenField : "Varjatud lahter",
+Button : "Nupp",
+SelectionField : "Valiklahter",
+ImageButton : "Piltnupp",
+
+FitWindow : "Maksimeeri redaktori mõõtmed",
+
+// Context Menu
+EditLink : "Muuda linki",
+CellCM : "Lahter",
+RowCM : "Rida",
+ColumnCM : "Veerg",
+InsertRow : "Lisa rida",
+DeleteRows : "Eemalda ridu",
+InsertColumn : "Lisa veerg",
+DeleteColumns : "Eemalda veerud",
+InsertCell : "Lisa lahter",
+DeleteCells : "Eemalda lahtrid",
+MergeCells : "Ühenda lahtrid",
+SplitCell : "Lahuta lahtrid",
+TableDelete : "Kustuta tabel",
+CellProperties : "Lahtri atribuudid",
+TableProperties : "Tabeli atribuudid",
+ImageProperties : "Pildi atribuudid",
+FlashProperties : "Flash omadused",
+
+AnchorProp : "Ankru omadused",
+ButtonProp : "Nupu omadused",
+CheckboxProp : "Märkeruudu omadused",
+HiddenFieldProp : "Varjatud lahtri omadused",
+RadioButtonProp : "Raadionupu omadused",
+ImageButtonProp : "Piltnupu omadused",
+TextFieldProp : "Tekstilahtri omadused",
+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",
+
+// Alerts and Messages
+ProcessingXHTML : "Töötlen XHTML. Palun oota...",
+Done : "Tehtud",
+PasteWordConfirm : "Tekst, mida soovid lisada paistab pärinevat Wordist. 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\"",
+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.",
+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.",
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Loobu",
+DlgBtnClose : "Sulge",
+DlgBtnBrowseServer : "Sirvi serverit",
+DlgAdvancedTag : "Täpsemalt",
+DlgOpOther : "",
+DlgInfoTab : "Info",
+DlgAlertUrl : "Palun sisesta URL",
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Keele suund",
+DlgGenLangDirLtr : "Vasakult paremale (LTR)",
+DlgGenLangDirRtl : "Paremalt vasakule (RTL)",
+DlgGenLangCode : "Keele kood",
+DlgGenAccessKey : "Juurdepääsu võti",
+DlgGenName : "Nimi",
+DlgGenTabIndex : "Tab indeks",
+DlgGenLongDescr : "Pikk kirjeldus URL",
+DlgGenClass : "Stiilistiku klassid",
+DlgGenTitle : "Juhendav tiitel",
+DlgGenContType : "Juhendava sisu tüüp",
+DlgGenLinkCharset : "Lingitud ressurssi märgistik",
+DlgGenStyle : "Laad",
+
+// Image Dialog
+DlgImgTitle : "Pildi atribuudid",
+DlgImgInfoTab : "Pildi info",
+DlgImgBtnUpload : "Saada serverissee",
+DlgImgURL : "URL",
+DlgImgUpload : "Lae üles",
+DlgImgAlt : "Alternatiivne tekst",
+DlgImgWidth : "Laius",
+DlgImgHeight : "Kõrgus",
+DlgImgLockRatio : "Lukusta kuvasuhe",
+DlgBtnResetSize : "Lähtesta suurus",
+DlgImgBorder : "Joon",
+DlgImgHSpace : "H. vaheruum",
+DlgImgVSpace : "V. vaheruum",
+DlgImgAlign : "Joondus",
+DlgImgAlignLeft : "Vasak",
+DlgImgAlignAbsBottom: "Abs alla",
+DlgImgAlignAbsMiddle: "Abs keskele",
+DlgImgAlignBaseline : "Baasjoonele",
+DlgImgAlignBottom : "Alla",
+DlgImgAlignMiddle : "Keskele",
+DlgImgAlignRight : "Paremale",
+DlgImgAlignTextTop : "Tekstit üles",
+DlgImgAlignTop : "Üles",
+DlgImgPreview : "Eelvaade",
+DlgImgAlertUrl : "Palun kirjuta pildi URL",
+DlgImgLinkTab : "Link",
+
+// Flash Dialog
+DlgFlashTitle : "Flash omadused",
+DlgFlashChkPlay : "Automaatne start ",
+DlgFlashChkLoop : "Korduv",
+DlgFlashChkMenu : "Võimalda flash menüü",
+DlgFlashScale : "Mastaap",
+DlgFlashScaleAll : "Näita kõike",
+DlgFlashScaleNoBorder : "Äärist ei ole",
+DlgFlashScaleFit : "Täpne sobivus",
+
+// Link Dialog
+DlgLnkWindowTitle : "Link",
+DlgLnkInfoTab : "Lingi info",
+DlgLnkTargetTab : "Sihtkoht",
+
+DlgLnkType : "Lingi tüüp",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Ankur sellel lehel",
+DlgLnkTypeEMail : "E-post",
+DlgLnkProto : "Protokoll",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Vali ankur",
+DlgLnkAnchorByName : "Ankru nime järgi",
+DlgLnkAnchorById : "Elemendi id järgi",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "E-posti aadress",
+DlgLnkEMailSubject : "Sõnumi teema",
+DlgLnkEMailBody : "Sõnumi tekst",
+DlgLnkUpload : "Lae üles",
+DlgLnkBtnUpload : "Saada serverisse",
+
+DlgLnkTarget : "Sihtkoht",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "Uus aken (_blank)",
+DlgLnkTargetParent : "Vanem aken (_parent)",
+DlgLnkTargetSelf : "Sama aken (_self)",
+DlgLnkTargetTop : "Pealmine aken (_top)",
+DlgLnkTargetFrameName : "Sihtmärk raami nimi",
+DlgLnkPopWinName : "Hüpikakna nimi",
+DlgLnkPopWinFeat : "Hüpikakna omadused",
+DlgLnkPopResize : "Suurendatav",
+DlgLnkPopLocation : "Aadressiriba",
+DlgLnkPopMenu : "Menüüriba",
+DlgLnkPopScroll : "Kerimisribad",
+DlgLnkPopStatus : "Olekuriba",
+DlgLnkPopToolbar : "Tööriistariba",
+DlgLnkPopFullScrn : "Täisekraan (IE)",
+DlgLnkPopDependent : "Sõltuv (Netscape)",
+DlgLnkPopWidth : "Laius",
+DlgLnkPopHeight : "Kõrgus",
+DlgLnkPopLeft : "Vasak asukoht",
+DlgLnkPopTop : "Ülemine asukoht",
+
+DlnLnkMsgNoUrl : "Palun kirjuta lingi URL",
+DlnLnkMsgNoEMail : "Palun kirjuta E-Posti aadress",
+DlnLnkMsgNoAnchor : "Palun vali ankur",
+
+// Color Dialog
+DlgColorTitle : "Vali värv",
+DlgColorBtnClear : "Tühjenda",
+DlgColorHighlight : "Märgi",
+DlgColorSelected : "Valitud",
+
+// Smiley Dialog
+DlgSmileyTitle : "Sisesta emotikon",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Vali erimärk",
+
+// Table Dialog
+DlgTableTitle : "Tabeli atribuudid",
+DlgTableRows : "Read",
+DlgTableColumns : "Veerud",
+DlgTableBorder : "Joone suurus",
+DlgTableAlign : "Joondus",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Vasak",
+DlgTableAlignCenter : "Kesk",
+DlgTableAlignRight : "Parem",
+DlgTableWidth : "Laius",
+DlgTableWidthPx : "pikslit",
+DlgTableWidthPc : "protsenti",
+DlgTableHeight : "Kõrgus",
+DlgTableCellSpace : "Lahtri vahe",
+DlgTableCellPad : "Lahtri täidis",
+DlgTableCaption : "Tabeli tiitel",
+DlgTableSummary : "Kokkuvõte",
+
+// Table Cell Dialog
+DlgCellTitle : "Lahtri atribuudid",
+DlgCellWidth : "Laius",
+DlgCellWidthPx : "pikslit",
+DlgCellWidthPc : "protsenti",
+DlgCellHeight : "Kõrgus",
+DlgCellWordWrap : "Sõna ülekanne",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Jah",
+DlgCellWordWrapNo : "Ei",
+DlgCellHorAlign : "Horisontaaljoondus",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Vasak",
+DlgCellHorAlignCenter : "Kesk",
+DlgCellHorAlignRight: "Parem",
+DlgCellVerAlign : "Vertikaaljoondus",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Üles",
+DlgCellVerAlignMiddle : "Keskele",
+DlgCellVerAlignBottom : "Alla",
+DlgCellVerAlignBaseline : "Baasjoonele",
+DlgCellRowSpan : "Reaulatus",
+DlgCellCollSpan : "Veeruulatus",
+DlgCellBackColor : "Tausta värv",
+DlgCellBorderColor : "Joone värv",
+DlgCellBtnSelect : "Vali...",
+
+// Find Dialog
+DlgFindTitle : "Otsi",
+DlgFindFindBtn : "Otsi",
+DlgFindNotFoundMsg : "Valitud teksti ei leitud.",
+
+// Replace Dialog
+DlgReplaceTitle : "Asenda",
+DlgReplaceFindLbl : "Leia mida:",
+DlgReplaceReplaceLbl : "Asenda millega:",
+DlgReplaceCaseChk : "Erista suur- ja väiketähti",
+DlgReplaceReplaceBtn : "Asenda",
+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).",
+
+PasteAsText : "Kleebi tavalise tekstina",
+PasteFromWord : "Kleebi Wordist",
+
+DlgPasteMsg2 : "Palun kleebi järgnevasse kasti kasutades klaviatuuri klahvikombinatsiooni (Ctrl+V) ja vajuta seejärel OK.",
+DlgPasteIgnoreFont : "Ignoreeri kirja definitsioone",
+DlgPasteRemoveStyles : "Eemalda stiilide definitsioonid",
+DlgPasteCleanBox : "Puhasta ära kast",
+
+// Color Picker
+ColorAutomatic : "Automaatne",
+ColorMoreColors : "Rohkem värve...",
+
+// Document Properties
+DocProps : "Dokumendi omadused",
+
+// Anchor Dialog
+DlgAnchorTitle : "Ankru omadused",
+DlgAnchorName : "Ankru nimi",
+DlgAnchorErrorName : "Palun sisest ankru nimi",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Puudub sõnastikust",
+DlgSpellChangeTo : "Muuda",
+DlgSpellBtnIgnore : "Ignoreeri",
+DlgSpellBtnIgnoreAll : "Ignoreeri kõiki",
+DlgSpellBtnReplace : "Asenda",
+DlgSpellBtnReplaceAll : "Asenda kõik",
+DlgSpellBtnUndo : "Võta tagasi",
+DlgSpellNoSuggestions : "- Soovitused puuduvad -",
+DlgSpellProgress : "Toimub õigekirja kontroll...",
+DlgSpellNoMispell : "Õigekirja kontroll sooritatud: õigekirjuvigu ei leitud",
+DlgSpellNoChanges : "Õigekirja kontroll sooritatud: ühtegi sõna ei muudetud",
+DlgSpellOneChange : "Õigekirja kontroll sooritatud: üks sõna muudeti",
+DlgSpellManyChanges : "Õigekirja kontroll sooritatud: %1 sõna muudetud",
+
+IeSpellDownload : "Õigekirja kontrollija ei ole installeeritud. Soovid sa selle alla laadida?",
+
+// Button Dialog
+DlgButtonText : "Tekst (väärtus)",
+DlgButtonType : "Tüüp",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Nimi",
+DlgCheckboxValue : "Väärtus",
+DlgCheckboxSelected : "Valitud",
+
+// Form Dialog
+DlgFormName : "Nimi",
+DlgFormAction : "Toiming",
+DlgFormMethod : "Meetod",
+
+// Select Field Dialog
+DlgSelectName : "Nimi",
+DlgSelectValue : "Väärtus",
+DlgSelectSize : "Suurus",
+DlgSelectLines : "ridu",
+DlgSelectChkMulti : "Võimalda mitu valikut",
+DlgSelectOpAvail : "Võimalikud valikud",
+DlgSelectOpText : "Tekst",
+DlgSelectOpValue : "Väärtus",
+DlgSelectBtnAdd : "Lisa",
+DlgSelectBtnModify : "Muuda",
+DlgSelectBtnUp : "Üles",
+DlgSelectBtnDown : "Alla",
+DlgSelectBtnSetValue : "Sea valitud olekuna",
+DlgSelectBtnDelete : "Kustuta",
+
+// Textarea Dialog
+DlgTextareaName : "Nimi",
+DlgTextareaCols : "Veerge",
+DlgTextareaRows : "Ridu",
+
+// Text Field Dialog
+DlgTextName : "Nimi",
+DlgTextValue : "Väärtus",
+DlgTextCharWidth : "Laius (tähemärkides)",
+DlgTextMaxChars : "Maksimaalselt tähemärke",
+DlgTextType : "Tüüp",
+DlgTextTypeText : "Tekst",
+DlgTextTypePass : "Parool",
+
+// Hidden Field Dialog
+DlgHiddenName : "Nimi",
+DlgHiddenValue : "Väärtus",
+
+// Bulleted List Dialog
+BulletedListProp : "Täpitud loetelu omadused",
+NumberedListProp : "Nummerdatud loetelu omadused",
+DlgLstType : "Tüüp",
+DlgLstTypeCircle : "Ring",
+DlgLstTypeDisc : "Ketas",
+DlgLstTypeSquare : "Ruut",
+DlgLstTypeNumbers : "Numbrid (1, 2, 3)",
+DlgLstTypeLCase : "Väiketähed (a, b, c)",
+DlgLstTypeUCase : "Suurtähed (A, B, C)",
+DlgLstTypeSRoman : "Väiksed Rooma numbrid (i, ii, iii)",
+DlgLstTypeLRoman : "Suured Rooma numbrid (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "Üldine",
+DlgDocBackTab : "Taust",
+DlgDocColorsTab : "Värvid ja veerised",
+DlgDocMetaTab : "Meta andmed",
+
+DlgDocPageTitle : "Lehekülje tiitel",
+DlgDocLangDir : "Kirja suund",
+DlgDocLangDirLTR : "Vasakult paremale (LTR)",
+DlgDocLangDirRTL : "Paremalt vasakule (RTL)",
+DlgDocLangCode : "Keele kood",
+DlgDocCharSet : "Märgistiku kodeering",
+DlgDocCharSetOther : "Ülejäänud märgistike kodeeringud",
+
+DlgDocDocType : "Dokumendi tüüppäis",
+DlgDocDocTypeOther : "Teised dokumendi tüüppäised",
+DlgDocIncXHTML : "Arva kaasa XHTML deklaratsioonid",
+DlgDocBgColor : "Taustavärv",
+DlgDocBgImage : "Taustapildi URL",
+DlgDocBgNoScroll : "Mittekeritav tagataust",
+DlgDocCText : "Tekst",
+DlgDocCLink : "Link",
+DlgDocCVisited : "Külastatud link",
+DlgDocCActive : "Aktiivne link",
+DlgDocMargins : "Lehekülje äärised",
+DlgDocMaTop : "Ülaserv",
+DlgDocMaLeft : "Vasakserv",
+DlgDocMaRight : "Paremserv",
+DlgDocMaBottom : "Alaserv",
+DlgDocMeIndex : "Dokumendi võtmesõnad (eraldatud komadega)",
+DlgDocMeDescr : "Dokumendi kirjeldus",
+DlgDocMeAuthor : "Autor",
+DlgDocMeCopy : "Autoriõigus",
+DlgDocPreview : "Eelvaade",
+
+// Templates Dialog
+Templates : "Šabloon",
+DlgTemplatesTitle : "Sisu šabloonid",
+DlgTemplatesSelMsg : "Palun vali šabloon, et avada see redaktoris
(praegune sisu läheb kaotsi):",
+DlgTemplatesLoading : "Laen šabloonide nimekirja. Palun oota...",
+DlgTemplatesNoTpl : "(Ühtegi šablooni ei ole defineeritud)",
+
+// About Dialog
+DlgAboutAboutTab : "Teave",
+DlgAboutBrowserInfoTab : "Interneti sirvija info",
+DlgAboutLicenseTab : "Litsents",
+DlgAboutVersion : "versioon",
+DlgAboutLicense : "Litsenseeritud GNU Lesser General Public License litsentsiga",
+DlgAboutInfo : "Täpsema info saamiseks mine"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/eu.js b/htdocs/includes/fckeditor/editor/lang/eu.js
new file mode 100644
index 00000000000..27fcd3a4231
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/eu.js
@@ -0,0 +1,487 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: eu.js
+ * Basque language file.
+ * Euskara hizkuntza fitxategia.
+ *
+ * File Authors:
+ * Ibon Igartua (Librezale.org)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Estutu Tresna Barra",
+ToolbarExpand : "Hedatu Tresna Barra",
+
+// Toolbar Items and Context Menu
+Save : "Gorde",
+NewPage : "Orrialde Berria",
+Preview : "Aurrebista",
+Cut : "Ebaki",
+Copy : "Kopiatu",
+Paste : "Itsatsi",
+PasteText : "Itsatsi testu bezala",
+PasteWord : "Itsatsi Word-etik",
+Print : "Inprimatu",
+SelectAll : "Hautatu dena",
+RemoveFormat : "Kendu Formatoa",
+InsertLinkLbl : "Esteka",
+InsertLink : "Txertatu/Editatu Esteka",
+RemoveLink : "Kendu Esteka",
+Anchor : "Aingura",
+InsertImageLbl : "Irudia",
+InsertImage : "Txertatu/Editatu Irudia",
+InsertFlashLbl : "Flasha",
+InsertFlash : "Txertatu/Editatu Flasha",
+InsertTableLbl : "Taula",
+InsertTable : "Txertatu/Editatu Taula",
+InsertLineLbl : "Lerroa",
+InsertLine : "Txertatu Marra Horizontala",
+InsertSpecialCharLbl: "Karaktere Berezia",
+InsertSpecialChar : "Txertatu Karaktere Berezia",
+InsertSmileyLbl : "Aurpegierak",
+InsertSmiley : "Txertatu Aurpegierak",
+About : "FCKeditor-ri buruz",
+Bold : "Lodia",
+Italic : "Etzana",
+Underline : "Azpimarratu",
+StrikeThrough : "Marratua",
+Subscript : "Azpi-indize",
+Superscript : "Goi-indize",
+LeftJustify : "Lerrokatu Ezkerrean",
+CenterJustify : "Lerrokatu Erdian",
+RightJustify : "Lerrokatu Eskuman",
+BlockJustify : "Justifikatu",
+DecreaseIndent : "Txikitu Koska",
+IncreaseIndent : "Handitu Koska",
+Undo : "Desegin",
+Redo : "Berregin",
+NumberedListLbl : "Zenbakidun Zerrenda",
+NumberedList : "Txertatu/Kendu Zenbakidun zerrenda",
+BulletedListLbl : "Buletdun Zerrenda",
+BulletedList : "Txertatu/Kendu Buletdun zerrenda",
+ShowTableBorders : "Erakutsi Taularen Ertzak",
+ShowDetails : "Erakutsi Xehetasunak",
+Style : "Estiloa",
+FontFormat : "Formatoa",
+Font : "Letra-tipoa",
+FontSize : "Tamaina",
+TextColor : "Testu Kolorea",
+BGColor : "Atzeko kolorea",
+Source : "HTML Iturburua",
+Find : "Bilatu",
+Replace : "Ordezkatu",
+SpellCheck : "Ortografia",
+UniversalKeyboard : "Teklatu Unibertsala",
+PageBreakLbl : "Orrialde-jauzia",
+PageBreak : "Txertatu Orrialde-jauzia",
+
+Form : "Formularioa",
+Checkbox : "Kontrol-laukia",
+RadioButton : "Aukera-botoia",
+TextField : "Testu Eremua",
+Textarea : "Testu-area",
+HiddenField : "Ezkutuko Eremua",
+Button : "Botoia",
+SelectionField : "Hautespen Eremua",
+ImageButton : "Irudi Botoia",
+
+FitWindow : "Maximizatu editorearen tamaina",
+
+// Context Menu
+EditLink : "Aldatu Esteka",
+CellCM : "Gelaxka",
+RowCM : "Errenkada",
+ColumnCM : "Zutabea",
+InsertRow : "Txertatu Errenkada",
+DeleteRows : "Ezabatu Errenkadak",
+InsertColumn : "Txertatu Zutabea",
+DeleteColumns : "Ezabatu Zutabeak",
+InsertCell : "Txertatu Gelaxka",
+DeleteCells : "Kendu Gelaxkak",
+MergeCells : "Batu Gelaxkak",
+SplitCell : "Zatitu Gelaxka",
+TableDelete : "Ezabatu Taula",
+CellProperties : "Gelaxkaren Ezaugarriak",
+TableProperties : "Taularen Ezaugarriak",
+ImageProperties : "Irudiaren Ezaugarriak",
+FlashProperties : "Flasharen Ezaugarriak",
+
+AnchorProp : "Ainguraren Ezaugarriak",
+ButtonProp : "Botoiaren Ezaugarriak",
+CheckboxProp : "Kontrol-laukiko Ezaugarriak",
+HiddenFieldProp : "Ezkutuko Eremuaren Ezaugarriak",
+RadioButtonProp : "Aukera-botoiaren Ezaugarriak",
+ImageButtonProp : "Irudi Botoiaren Ezaugarriak",
+TextFieldProp : "Testu Eremuaren Ezaugarriak",
+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)",
+
+// Alerts and Messages
+ProcessingXHTML : "XHTML Prozesatzen. Itxaron mesedez...",
+Done : "Eginda",
+PasteWordConfirm : "Itsatsi nahi duzun textua Wordetik hartua dela dirudi. Itsatsi baino lehen garbitu nahi duzu?",
+NotCompatiblePaste : "Komando hau Internet Explorer 5.5 bertsiorako edo ondorengoentzako erabilgarria dago. Garbitu gabe itsatsi nahi duzu?",
+UnknownToolbarItem : "Ataza barrako elementu ezezaguna \"%1\"",
+UnknownCommand : "Komando izen ezezaguna \"%1\"",
+NotImplemented : "Komando ez inplementatua",
+UnknownToolbarSet : "Ataza barra \"%1\" taldea ez da existitzen",
+NoActiveX : "Zure nabigatzailearen segustasun hobespenak editore honen zenbait ezaugarri mugatu ditzake. \"ActiveX kontrolak eta plug-inak\" aktibatu beharko zenituzke, bestela erroreak eta ezaugarrietan mugak egon daitezke.",
+BrowseServerBlocked : "Baliabideen arakatzailea ezin da ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.",
+DialogBlocked : "Ezin da elkarrizketa-leihoa ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.",
+
+// Dialogs
+DlgBtnOK : "Ados",
+DlgBtnCancel : "Utzi",
+DlgBtnClose : "Itxi",
+DlgBtnBrowseServer : "Zerbitzaria arakatu",
+DlgAdvancedTag : "Aurreratua",
+DlgOpOther : "",
+DlgInfoTab : "Informazioa",
+DlgAlertUrl : "Mesedez URLa idatzi ezazu",
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Hizkuntzaren Norabidea",
+DlgGenLangDirLtr : "Ezkerretik Eskumara(LTR)",
+DlgGenLangDirRtl : "Eskumatik Ezkerrera (RTL)",
+DlgGenLangCode : "Hizkuntza Kodea",
+DlgGenAccessKey : "Sarbide-gakoa",
+DlgGenName : "Izena",
+DlgGenTabIndex : "Tabulazio Indizea",
+DlgGenLongDescr : "URL Deskribapen Luzea",
+DlgGenClass : "Estilo-orriko Klaseak",
+DlgGenTitle : "Izenburua",
+DlgGenContType : "Eduki Mota (Content Type)",
+DlgGenLinkCharset : "Estekatutako Karaktere Multzoa",
+DlgGenStyle : "Estiloa",
+
+// Image Dialog
+DlgImgTitle : "Irudi Ezaugarriak",
+DlgImgInfoTab : "Irudi informazioa",
+DlgImgBtnUpload : "Zerbitzarira bidalia",
+DlgImgURL : "URL",
+DlgImgUpload : "Gora Kargatu",
+DlgImgAlt : "Textu Alternatiboa",
+DlgImgWidth : "Zabalera",
+DlgImgHeight : "Altuera",
+DlgImgLockRatio : "Erlazioa Blokeatu",
+DlgBtnResetSize : "Tamaina Berrezarri",
+DlgImgBorder : "Ertza",
+DlgImgHSpace : "HSpace",
+DlgImgVSpace : "VSpace",
+DlgImgAlign : "Lerrokatu",
+DlgImgAlignLeft : "Ezkerrera",
+DlgImgAlignAbsBottom: "Abs Behean",
+DlgImgAlignAbsMiddle: "Abs Erdian",
+DlgImgAlignBaseline : "Oinan",
+DlgImgAlignBottom : "Behean",
+DlgImgAlignMiddle : "Erdian",
+DlgImgAlignRight : "Eskuman",
+DlgImgAlignTextTop : "Testua Goian",
+DlgImgAlignTop : "Goian",
+DlgImgPreview : "Aurrebista",
+DlgImgAlertUrl : "Mesedez Irudiaren URLa idatzi",
+DlgImgLinkTab : "Esteka",
+
+// Flash Dialog
+DlgFlashTitle : "Flasharen Ezaugarriak",
+DlgFlashChkPlay : "Automatikoki Erreproduzitu",
+DlgFlashChkLoop : "Begizta",
+DlgFlashChkMenu : "Flasharen Menua Gaitu",
+DlgFlashScale : "Eskalatu",
+DlgFlashScaleAll : "Dena erakutsi",
+DlgFlashScaleNoBorder : "Ertzarik gabe",
+DlgFlashScaleFit : "Doitu",
+
+// Link Dialog
+DlgLnkWindowTitle : "Esteka",
+DlgLnkInfoTab : "Estekaren Informazioa",
+DlgLnkTargetTab : "Helburua",
+
+DlgLnkType : "Esteka Mota",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Aingura horrialde honentan",
+DlgLnkTypeEMail : "ePosta",
+DlgLnkProto : "Protokoloa",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Aingura bat hautatu",
+DlgLnkAnchorByName : "Aingura izenagatik",
+DlgLnkAnchorById : "Elementuaren ID-gatik",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "ePosta Helbidea",
+DlgLnkEMailSubject : "Mezuaren Gaia",
+DlgLnkEMailBody : "Mezuaren Gorputza",
+DlgLnkUpload : "Gora kargatu",
+DlgLnkBtnUpload : "Zerbitzarira bidali",
+
+DlgLnkTarget : "Target (Helburua)",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "Lehio Berria (_blank)",
+DlgLnkTargetParent : "Lehio Gurasoa (_parent)",
+DlgLnkTargetSelf : "Lehio Berdina (_self)",
+DlgLnkTargetTop : "Goiko Lehioa (_top)",
+DlgLnkTargetFrameName : "Marko Helburuaren Izena",
+DlgLnkPopWinName : "Popup Lehioaren Izena",
+DlgLnkPopWinFeat : "Popup Lehioaren Ezaugarriak",
+DlgLnkPopResize : "Tamaina Aldakorra",
+DlgLnkPopLocation : "Kokaleku Barra",
+DlgLnkPopMenu : "Menu Barra",
+DlgLnkPopScroll : "Korritze Barrak",
+DlgLnkPopStatus : "Egoera Barra",
+DlgLnkPopToolbar : "Tresna Barra",
+DlgLnkPopFullScrn : "Pantaila Osoa (IE)",
+DlgLnkPopDependent : "Menpekoa (Netscape)",
+DlgLnkPopWidth : "Zabalera",
+DlgLnkPopHeight : "Altuera",
+DlgLnkPopLeft : "Ezkerreko Posizioa",
+DlgLnkPopTop : "Goiko Posizioa",
+
+DlnLnkMsgNoUrl : "Mesedez URL esteka idatzi",
+DlnLnkMsgNoEMail : "Mesedez ePosta helbidea idatzi",
+DlnLnkMsgNoAnchor : "Mesedez aingura bat aukeratu",
+
+// Color Dialog
+DlgColorTitle : "Kolore Aukeraketa",
+DlgColorBtnClear : "Garbitu",
+DlgColorHighlight : "Nabarmendu",
+DlgColorSelected : "Aukeratuta",
+
+// Smiley Dialog
+DlgSmileyTitle : "Aurpegiera Sartu",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Karaktere Berezia Aukeratu",
+
+// Table Dialog
+DlgTableTitle : "Taularen Ezaugarriak",
+DlgTableRows : "Lerroak",
+DlgTableColumns : "Zutabeak",
+DlgTableBorder : "Ertzaren Zabalera",
+DlgTableAlign : "Lerrokatu",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Ezkerrean",
+DlgTableAlignCenter : "Erdian",
+DlgTableAlignRight : "Eskuman",
+DlgTableWidth : "Zabalera",
+DlgTableWidthPx : "pixel",
+DlgTableWidthPc : "ehuneko",
+DlgTableHeight : "Altuera",
+DlgTableCellSpace : "Gelaxka arteko tartea",
+DlgTableCellPad : "Gelaxken betegarria",
+DlgTableCaption : "Epigrafea",
+DlgTableSummary : "Laburpena",
+
+// Table Cell Dialog
+DlgCellTitle : "Gelaxken Ezaugarriak",
+DlgCellWidth : "Zabalera",
+DlgCellWidthPx : "pixel",
+DlgCellWidthPc : "ehuneko",
+DlgCellHeight : "Altuera",
+DlgCellWordWrap : "Itzulbira",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Bai",
+DlgCellWordWrapNo : "Ez",
+DlgCellHorAlign : "Horizontal Alignment",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Ezkerrean",
+DlgCellHorAlignCenter : "Erdian",
+DlgCellHorAlignRight: "Eskuman",
+DlgCellVerAlign : "Lerrokatu Bertikalki",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Goian",
+DlgCellVerAlignMiddle : "Erdian",
+DlgCellVerAlignBottom : "Behean",
+DlgCellVerAlignBaseline : "Oinan",
+DlgCellRowSpan : "Lerroak Hedatu",
+DlgCellCollSpan : "Zutabeak Hedatu",
+DlgCellBackColor : "Atzeko Kolorea",
+DlgCellBorderColor : "Ertzako Kolorea",
+DlgCellBtnSelect : "Aukertau...",
+
+// Find Dialog
+DlgFindTitle : "Bilaketa",
+DlgFindFindBtn : "Bilatu",
+DlgFindNotFoundMsg : "Idatzitako testua ez da topatu.",
+
+// Replace Dialog
+DlgReplaceTitle : "Ordeztu",
+DlgReplaceFindLbl : "Zer bilatu:",
+DlgReplaceReplaceLbl : "Zerekin ordeztu:",
+DlgReplaceCaseChk : "Maiuskula/minuskula",
+DlgReplaceReplaceBtn : "Ordeztu",
+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).",
+
+PasteAsText : "Testu Arrunta bezala Itsatsi",
+PasteFromWord : "Word-etik itsatsi",
+
+DlgPasteMsg2 : "Mesedez teklatua erabilita (Ctrl+V) ondorego eremuan testua itsatsi eta OK sakatu.",
+DlgPasteIgnoreFont : "Letra Motaren definizioa ezikusi",
+DlgPasteRemoveStyles : "Estilo definizioak kendu",
+DlgPasteCleanBox : "Testu-eremua Garbitu",
+
+// Color Picker
+ColorAutomatic : "Automatikoa",
+ColorMoreColors : "Kolore gehiago...",
+
+// Document Properties
+DocProps : "Dokumentuaren Ezarpenak",
+
+// Anchor Dialog
+DlgAnchorTitle : "Ainguraren Ezaugarriak",
+DlgAnchorName : "Ainguraren Izena",
+DlgAnchorErrorName : "Idatzi ainguraren izena",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Ez dago hiztegian",
+DlgSpellChangeTo : "Honekin ordezkatu",
+DlgSpellBtnIgnore : "Ezikusi",
+DlgSpellBtnIgnoreAll : "Denak Ezikusi",
+DlgSpellBtnReplace : "Ordezkatu",
+DlgSpellBtnReplaceAll : "Denak Ordezkatu",
+DlgSpellBtnUndo : "Desegin",
+DlgSpellNoSuggestions : "- Iradokizunik ez -",
+DlgSpellProgress : "Zuzenketa ortografikoa martxan...",
+DlgSpellNoMispell : "Zuzenketa ortografikoa bukatuta: Akatsik ez",
+DlgSpellNoChanges : "Zuzenketa ortografikoa bukatuta: Ez da ezer aldatu",
+DlgSpellOneChange : "Zuzenketa ortografikoa bukatuta: Hitz bat aldatu da",
+DlgSpellManyChanges : "Zuzenketa ortografikoa bukatuta: %1 hitz aldatu dira",
+
+IeSpellDownload : "Zuzentzaile ortografikoa ez dago instalatuta. Deskargatu nahi duzu?",
+
+// Button Dialog
+DlgButtonText : "Testua (Balorea)",
+DlgButtonType : "Mota",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Izena",
+DlgCheckboxValue : "Balorea",
+DlgCheckboxSelected : "Hautatuta",
+
+// Form Dialog
+DlgFormName : "Izena",
+DlgFormAction : "Ekintza",
+DlgFormMethod : "Method",
+
+// Select Field Dialog
+DlgSelectName : "Izena",
+DlgSelectValue : "Balorea",
+DlgSelectSize : "Tamaina",
+DlgSelectLines : "lerro kopurura",
+DlgSelectChkMulti : "Hautaketa anitzak baimendu",
+DlgSelectOpAvail : "Aukera Eskuragarriak",
+DlgSelectOpText : "Testua",
+DlgSelectOpValue : "Balorea",
+DlgSelectBtnAdd : "Gehitu",
+DlgSelectBtnModify : "Aldatu",
+DlgSelectBtnUp : "Gora",
+DlgSelectBtnDown : "Behera",
+DlgSelectBtnSetValue : "Aukeratutako balorea ezarri",
+DlgSelectBtnDelete : "Ezabatu",
+
+// Textarea Dialog
+DlgTextareaName : "Izena",
+DlgTextareaCols : "Zutabeak",
+DlgTextareaRows : "Lerroak",
+
+// Text Field Dialog
+DlgTextName : "Izena",
+DlgTextValue : "Balorea",
+DlgTextCharWidth : "Zabalera",
+DlgTextMaxChars : "Zenbat karaktere gehienez",
+DlgTextType : "Mota",
+DlgTextTypeText : "Testua",
+DlgTextTypePass : "Pasahitza",
+
+// Hidden Field Dialog
+DlgHiddenName : "Izena",
+DlgHiddenValue : "Balorea",
+
+// Bulleted List Dialog
+BulletedListProp : "Buletdun Zerrendaren Ezarpenak",
+NumberedListProp : "Zenbakidun Zerrendaren Ezarpenak",
+DlgLstType : "Mota",
+DlgLstTypeCircle : "Zirkulua",
+DlgLstTypeDisc : "Diskoa",
+DlgLstTypeSquare : "Karratua",
+DlgLstTypeNumbers : "Zenbakiak (1, 2, 3)",
+DlgLstTypeLCase : "Letra xeheak (a, b, c)",
+DlgLstTypeUCase : "Letra larriak (A, B, C)",
+DlgLstTypeSRoman : "Erromatar zenbaki zeheak (i, ii, iii)",
+DlgLstTypeLRoman : "Erromatar zenbaki larriak (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "Orokorra",
+DlgDocBackTab : "Atzekaldea",
+DlgDocColorsTab : "Koloreak eta Marjinak",
+DlgDocMetaTab : "Meta Informazioa",
+
+DlgDocPageTitle : "Orriaren Izenburua",
+DlgDocLangDir : "Hizkuntzaren Norabidea",
+DlgDocLangDirLTR : "Ezkerretik eskumara (LTR)",
+DlgDocLangDirRTL : "Eskumatik ezkerrera (RTL)",
+DlgDocLangCode : "Hizkuntzaren Kodea",
+DlgDocCharSet : "Karaktere Multzoaren Kodeketa",
+DlgDocCharSetOther : "Beste Karaktere Multzoaren Kodeketa",
+
+DlgDocDocType : "Document Type Goiburua",
+DlgDocDocTypeOther : "Beste Document Type Goiburua",
+DlgDocIncXHTML : "XHTML Ezarpenak",
+DlgDocBgColor : "Atzeko Kolorea",
+DlgDocBgImage : "Atzeko Irudiaren URL-a",
+DlgDocBgNoScroll : "Korritze gabeko Atzekaldea",
+DlgDocCText : "Testua",
+DlgDocCLink : "Estekak",
+DlgDocCVisited : "Bisitatutako Estekak",
+DlgDocCActive : "Esteka Aktiboa",
+DlgDocMargins : "Orrialdearen marjinak",
+DlgDocMaTop : "Goian",
+DlgDocMaLeft : "Ezkerrean",
+DlgDocMaRight : "Eskuman",
+DlgDocMaBottom : "Behean",
+DlgDocMeIndex : "Dokumentuaren Gako-hitzak (komarekin bananduta)",
+DlgDocMeDescr : "Dokumentuaren Deskribapena",
+DlgDocMeAuthor : "Egilea",
+DlgDocMeCopy : "Copyright",
+DlgDocPreview : "Aurrebista",
+
+// Templates Dialog
+Templates : "Txantiloiak",
+DlgTemplatesTitle : "Eduki Txantiloiak",
+DlgTemplatesSelMsg : "Mesedez txantiloia aukeratu editorean kargatzeko
(orain dauden edukiak galduko dira):",
+DlgTemplatesLoading : "Txantiloiak kargatzen. Itxaron mesedez...",
+DlgTemplatesNoTpl : "(Ez dago definitutako txantiloirik)",
+
+// About Dialog
+DlgAboutAboutTab : "Honi buruz",
+DlgAboutBrowserInfoTab : "Nabigatzailearen Informazioa",
+DlgAboutLicenseTab : "Lizentzia",
+DlgAboutVersion : "bertsioa",
+DlgAboutLicense : "GNU Lesser General Public License Lizentziapean",
+DlgAboutInfo : "Informazio gehiago eskuratzeko hona joan"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/fa.js b/htdocs/includes/fckeditor/editor/lang/fa.js
new file mode 100644
index 00000000000..68567352309
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/fa.js
@@ -0,0 +1,486 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fa.js
+ * Persian language file.
+ *
+ * File Authors:
+ * Hamed Taj-Abadi (hamed@ranginkaman.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "rtl",
+
+ToolbarCollapse : "بستن منوابزار",
+ToolbarExpand : "بازکردن منوابزار",
+
+// Toolbar Items and Context Menu
+Save : "ذخيره",
+NewPage : "جديد",
+Preview : "پيش نمايش",
+Cut : "برش",
+Copy : "کپی",
+Paste : "چسباندن",
+PasteText : "چسباندن به عنوان متن ساده",
+PasteWord : "چسباندن از WORD",
+Print : "چاپ",
+SelectAll : "انتخاب همه",
+RemoveFormat : "برداشتن فرمت",
+InsertLinkLbl : "لينک",
+InsertLink : "درج/ويرايش لينک",
+RemoveLink : "برداشتن لينک",
+Anchor : "درج/ويرايش لنگر",
+InsertImageLbl : "تصوير",
+InsertImage : "درج/ويرايش تصوير",
+InsertFlashLbl : "Flash", //MISSING
+InsertFlash : "Insert/Edit Flash", //MISSING
+InsertTableLbl : "جدول",
+InsertTable : "درج/ويرايش جدول",
+InsertLineLbl : "خط",
+InsertLine : "درج خط افقی",
+InsertSpecialCharLbl: "شناسه ويژه",
+InsertSpecialChar : "درج شناسه ويژه",
+InsertSmileyLbl : "خندانک",
+InsertSmiley : "درج خندانک",
+About : "درباره FCKeditor",
+Bold : "پررنگ",
+Italic : "ايتاليک",
+Underline : "زيرخط",
+StrikeThrough : "ميان خط",
+Subscript : "انديس پائين",
+Superscript : "انديس بالا",
+LeftJustify : "چپ چين",
+CenterJustify : "وسط چين",
+RightJustify : "راست چين",
+BlockJustify : "بلوک چين",
+DecreaseIndent : "کاهش تورفتگی",
+IncreaseIndent : "افزايش تورفتگی",
+Undo : "واچيدن",
+Redo : "بازچيدن",
+NumberedListLbl : "فهرست عددی",
+NumberedList : "درج/برداشتن فهرست عددی",
+BulletedListLbl : "فهرست نقطه ای",
+BulletedList : "درج/برداشتن فهرست نقطه ای",
+ShowTableBorders : "نمايش لبه جدول",
+ShowDetails : "نمايش جزئيات",
+Style : "سبک",
+FontFormat : "فرمت",
+Font : "قلم",
+FontSize : "اندازه",
+TextColor : "رنگ متن",
+BGColor : "رنگ پس زمينه",
+Source : "منبع",
+Find : "جستجو",
+Replace : "جايگزينی",
+SpellCheck : "کنترل املا",
+UniversalKeyboard : "صفحه کليد جهانی",
+PageBreakLbl : "Page Break", //MISSING
+PageBreak : "Insert Page Break", //MISSING
+
+Form : "فرم",
+Checkbox : "دکمه گزينه ای",
+RadioButton : "دکمه راديويی",
+TextField : "فيلد متنی",
+Textarea : "ناحيه متنی",
+HiddenField : "فيلد پنهان",
+Button : "دکمه",
+SelectionField : "فيلد انتخابی",
+ImageButton : "دکمه تصويری",
+
+FitWindow : "Maximize the editor size", //MISSING
+
+// Context Menu
+EditLink : "ويرايش لينک",
+CellCM : "Cell", //MISSING
+RowCM : "Row", //MISSING
+ColumnCM : "Column", //MISSING
+InsertRow : "درج سطر",
+DeleteRows : "حذف سطرها",
+InsertColumn : "درج ستون",
+DeleteColumns : "حذف ستونها",
+InsertCell : "درج سلول",
+DeleteCells : "حذف سلولها",
+MergeCells : "ادغام سلولها",
+SplitCell : "تفکيک سلول",
+TableDelete : "Delete Table", //MISSING
+CellProperties : "ويژگيهای سلول",
+TableProperties : "ويژگيهای جدول",
+ImageProperties : "ويژگيهای تصوير",
+FlashProperties : "Flash Properties", //MISSING
+
+AnchorProp : "ويژگيهای لنگر",
+ButtonProp : "ويژگيهای دکمه",
+CheckboxProp : "ويژگيهای دکمه گزينه ای",
+HiddenFieldProp : "ويژگيهای فيلد پنهان",
+RadioButtonProp : "ويژگيهای دکمه راديويی",
+ImageButtonProp : "ويژگيهای دکمه تصويری",
+TextFieldProp : "ويژگيهای فيلد متنی",
+SelectionFieldProp : "ويژگيهای فيلد انتخابی",
+TextareaProp : "ويژگيهای ناحيه متنی",
+FormProp : "ويژگيهای فرم",
+
+FontFormats : "نرمال;فرمت شده;آدرس;سرنويس 1;سرنويس 2;سرنويس 3;سرنويس 4;سرنويس 5;سرنويس 6;بند;(DIV)",
+
+// Alerts and Messages
+ProcessingXHTML : "پردازش XHTML. لطفا صبر کنيد...",
+Done : "انجام شد",
+PasteWordConfirm : "متنی که می خواهيد بچسبانيد به نظر از WORD کپی شده است. آيا مايليد قبل از چسباندن آنرا تميز کنيد؟ ",
+NotCompatiblePaste : "اين فرمان برای مرورگر Internet Explorer از نگارش 5.5 يا بالاتر در دسترس است. آيا مايليد بدون تميز کردن متن را بچسبانيد؟",
+UnknownToolbarItem : "فقره منوابزار ناشناخته \"%1\"",
+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
+
+// Dialogs
+DlgBtnOK : "تائيد",
+DlgBtnCancel : "انصراف",
+DlgBtnClose : "بستن",
+DlgBtnBrowseServer : "فهرست نمايی سرور",
+DlgAdvancedTag : "پيشرفته",
+DlgOpOther : "<غيره>",
+DlgInfoTab : "Info", //MISSING
+DlgAlertUrl : "Please insert the URL", //MISSING
+
+// General Dialogs Labels
+DlgGenNotSet : "<تعين نشده>",
+DlgGenId : "کد",
+DlgGenLangDir : "جهت نمای زبان",
+DlgGenLangDirLtr : "چپ به راست (LTR)",
+DlgGenLangDirRtl : "راست به چپ (RTL)",
+DlgGenLangCode : "کد زبان",
+DlgGenAccessKey : "کليد دستيابی",
+DlgGenName : "نام",
+DlgGenTabIndex : "انديس برگه",
+DlgGenLongDescr : "URL توضيح طولانی",
+DlgGenClass : "کلاسهای استايل شيت",
+DlgGenTitle : "عنوان کمکی",
+DlgGenContType : "نوع محتوی کمکی",
+DlgGenLinkCharset : "مجموعه نويسه منبع لينک شده",
+DlgGenStyle : "سبک",
+
+// Image Dialog
+DlgImgTitle : "ويژگيهای تصوير",
+DlgImgInfoTab : "اطلاعات تصوير",
+DlgImgBtnUpload : "به سرور ارسال کن",
+DlgImgURL : "URL",
+DlgImgUpload : "انتقال به سرور",
+DlgImgAlt : "متن جايگزين",
+DlgImgWidth : "پهنا",
+DlgImgHeight : "درازا",
+DlgImgLockRatio : "قفل کردن نسبت",
+DlgBtnResetSize : "بازنشانی اندازه",
+DlgImgBorder : "لبه",
+DlgImgHSpace : "فاصله افقی",
+DlgImgVSpace : "فاصله عمودی",
+DlgImgAlign : "چينش",
+DlgImgAlignLeft : "چپ",
+DlgImgAlignAbsBottom: "پائين مطلق",
+DlgImgAlignAbsMiddle: "وسط مطلق",
+DlgImgAlignBaseline : "خط پايه",
+DlgImgAlignBottom : "پائين",
+DlgImgAlignMiddle : "وسط",
+DlgImgAlignRight : "راست",
+DlgImgAlignTextTop : "متن بالا",
+DlgImgAlignTop : "بالا",
+DlgImgPreview : "پيش نمايش",
+DlgImgAlertUrl : "لطفا URL تصوير را انتخاب کنيد",
+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
+
+// Link Dialog
+DlgLnkWindowTitle : "لينک",
+DlgLnkInfoTab : "اطلاعات لينک",
+DlgLnkTargetTab : "مقصد",
+
+DlgLnkType : "نوع لينک",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "پيوند در صفحه جاری",
+DlgLnkTypeEMail : "پست الکترونيکی",
+DlgLnkProto : "پروتکل",
+DlgLnkProtoOther : "<غيره>",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "يک پيوند انتخاب کنيد",
+DlgLnkAnchorByName : "با نام پيوند",
+DlgLnkAnchorById : "با کد المان",
+DlgLnkNoAnchors : "<در اين سند پيوندی موجود نيست>",
+DlgLnkEMail : "آدرس پست الکترونيکی",
+DlgLnkEMailSubject : "موضوع پيام",
+DlgLnkEMailBody : "متن پيام",
+DlgLnkUpload : "انتقال به سرور",
+DlgLnkBtnUpload : "به سرور ارسال کن",
+
+DlgLnkTarget : "مقصد",
+DlgLnkTargetFrame : "<فريم>",
+DlgLnkTargetPopup : "<پنجره پاپاپ>",
+DlgLnkTargetBlank : "پنجره جديد (_blank)",
+DlgLnkTargetParent : "پنجره والد (_parent)",
+DlgLnkTargetSelf : "همان پنجره (_self)",
+DlgLnkTargetTop : "بالاترين پنجره (_top)",
+DlgLnkTargetFrameName : "نام فريم مقصد",
+DlgLnkPopWinName : "نام پنجره پاپاپ",
+DlgLnkPopWinFeat : "خصوصيات پنجره پاپاپ",
+DlgLnkPopResize : "قابل تغيراندازه",
+DlgLnkPopLocation : "نوار موقعيت",
+DlgLnkPopMenu : "نوار منو",
+DlgLnkPopScroll : "نوارهای طومار",
+DlgLnkPopStatus : "نوار وضعيت",
+DlgLnkPopToolbar : "نوارابزار",
+DlgLnkPopFullScrn : "تمام صفحه (IE)",
+DlgLnkPopDependent : "وابسته (Netscape)",
+DlgLnkPopWidth : "پهنا",
+DlgLnkPopHeight : "درازا",
+DlgLnkPopLeft : "موقعيت چپ",
+DlgLnkPopTop : "موقعيت بالا",
+
+DlnLnkMsgNoUrl : "لطفا URL لينک را وارد کنيد",
+DlnLnkMsgNoEMail : "لطفا آدرس ايميل را وارد کنيد",
+DlnLnkMsgNoAnchor : "لطفا پيوندی انتخاب کنيد",
+
+// Color Dialog
+DlgColorTitle : "انتخاب رنگ",
+DlgColorBtnClear : "پاک کردن",
+DlgColorHighlight : "هايلايت",
+DlgColorSelected : "انتخاب شده",
+
+// Smiley Dialog
+DlgSmileyTitle : "درج خندانک",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "انتخاب شناسه های ويژه",
+
+// Table Dialog
+DlgTableTitle : "ويژگيهای جدول",
+DlgTableRows : "سطرها",
+DlgTableColumns : "ستونها",
+DlgTableBorder : "اندازه لبه",
+DlgTableAlign : "چينش",
+DlgTableAlignNotSet : "<تعين نشده>",
+DlgTableAlignLeft : "چپ",
+DlgTableAlignCenter : "وسط",
+DlgTableAlignRight : "راست",
+DlgTableWidth : "پهنا",
+DlgTableWidthPx : "پيکسل",
+DlgTableWidthPc : "درصد",
+DlgTableHeight : "درازا",
+DlgTableCellSpace : "فاصله ميان سلولها",
+DlgTableCellPad : "فاصله پرشده در سلول",
+DlgTableCaption : "عنوان",
+DlgTableSummary : "Summary", //MISSING
+
+// Table Cell Dialog
+DlgCellTitle : "ويژگيهای سلول",
+DlgCellWidth : "پهنا",
+DlgCellWidthPx : "پيکسل",
+DlgCellWidthPc : "درصد",
+DlgCellHeight : "درازا",
+DlgCellWordWrap : "شکستن کلمات",
+DlgCellWordWrapNotSet : "<تعين نشده>",
+DlgCellWordWrapYes : "بله",
+DlgCellWordWrapNo : "خير",
+DlgCellHorAlign : "چينش افقی",
+DlgCellHorAlignNotSet : "<تعين نشده>",
+DlgCellHorAlignLeft : "چپ",
+DlgCellHorAlignCenter : "وسط",
+DlgCellHorAlignRight: "راست",
+DlgCellVerAlign : "چينش عمودی",
+DlgCellVerAlignNotSet : "<تعين نشده>",
+DlgCellVerAlignTop : "بالا",
+DlgCellVerAlignMiddle : "ميان",
+DlgCellVerAlignBottom : "پائين",
+DlgCellVerAlignBaseline : "خط پايه",
+DlgCellRowSpan : "گستردگی سطرها",
+DlgCellCollSpan : "گستردگی ستونها",
+DlgCellBackColor : "رنگ پس زمينه",
+DlgCellBorderColor : "رنگ لبه",
+DlgCellBtnSelect : "انتخاب کنيد...",
+
+// Find Dialog
+DlgFindTitle : "يافتن",
+DlgFindFindBtn : "يافتن",
+DlgFindNotFoundMsg : "متن مورد نظر يافت نشد.",
+
+// Replace Dialog
+DlgReplaceTitle : "جايگزينی",
+DlgReplaceFindLbl : "چه چيز را می يابيد:",
+DlgReplaceReplaceLbl : "جايگزينی با:",
+DlgReplaceCaseChk : "انطباق قالب",
+DlgReplaceReplaceBtn : "جايگزينی",
+DlgReplaceReplAllBtn : "جايگزينی همه موارد",
+DlgReplaceWordChk : "انطباق کلمه کامل",
+
+// Paste Operations / Dialog
+PasteErrorPaste : "تنظيمات امنيتی مرورگر شما اجازه نمی دهد که ويرايشگر به طور خودکار عملکردهای چسباندن کلمات را انجام دهد. لطفا از کلمه کليدی مرتبط با اينکار را استفاده کنيد (Ctrl+V).",
+PasteErrorCut : "تنظيمات امنيتی مرورگر شما اجازه نمی دهد که ويرايشگر به طور خودکار عملکردهای برش کلمات را انجام دهد. لطفا از کلمه کليدی مرتبط با اينکار را استفاده کنيد (Ctrl+X).",
+PasteErrorCopy : "تنظيمات امنيتی مرورگر شما اجازه نمی دهد که ويرايشگر به طور خودکار عملکردهای کپی کردن کلمات را انجام دهد. لطفا از کلمه کليدی مرتبط با اينکار را استفاده کنيد (Ctrl+C).",
+
+PasteAsText : "چسباندن به عنوان متن ساده",
+PasteFromWord : "چسباندن از Word",
+
+DlgPasteMsg2 : "Please paste inside the following box using the keyboard (Ctrl+V) and hit OK.", //MISSING
+DlgPasteIgnoreFont : "Ignore Font Face definitions", //MISSING
+DlgPasteRemoveStyles : "Remove Styles definitions", //MISSING
+DlgPasteCleanBox : "Clean Up Box", //MISSING
+
+// Color Picker
+ColorAutomatic : "خودکار",
+ColorMoreColors : "رنگهای بيشتر...",
+
+// Document Properties
+DocProps : "ويژگيهای سند",
+
+// Anchor Dialog
+DlgAnchorTitle : "ويژگيهای لنگر",
+DlgAnchorName : "نام لنگر",
+DlgAnchorErrorName : "لطفا نام لنگر را وارد کنيد",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "در واژه نامه موجود نيست",
+DlgSpellChangeTo : "تغير به",
+DlgSpellBtnIgnore : "چشم پوشی",
+DlgSpellBtnIgnoreAll : "چشم پوشی همه",
+DlgSpellBtnReplace : "جايگزينی",
+DlgSpellBtnReplaceAll : "جايگزينی همه",
+DlgSpellBtnUndo : "واچينش",
+DlgSpellNoSuggestions : "- پيشنهادی نيست -",
+DlgSpellProgress : "کنترل املا در حال انجام...",
+DlgSpellNoMispell : "کنترل املا انجام شد. هيچ غلط املائی يافت نشد",
+DlgSpellNoChanges : "کنترل املا انجام شد. هيچ کلمه ای تغير نيافت",
+DlgSpellOneChange : "کنترل املا انجام شد. يک کلمه تغير يافت",
+DlgSpellManyChanges : "کنترل املا انجام شد. %1 کلمه تغير يافت",
+
+IeSpellDownload : "کنترل کننده املا نصب نشده است. آيا مايليد آنرا هم اکنون دريافت کنيد؟",
+
+// Button Dialog
+DlgButtonText : "متن (مقدار)",
+DlgButtonType : "نوع",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "نام",
+DlgCheckboxValue : "مقدار",
+DlgCheckboxSelected : "برگزيده",
+
+// Form Dialog
+DlgFormName : "نام",
+DlgFormAction : "اقدام",
+DlgFormMethod : "متد",
+
+// Select Field Dialog
+DlgSelectName : "نام",
+DlgSelectValue : "مقدار",
+DlgSelectSize : "اندازه",
+DlgSelectLines : "خطوط",
+DlgSelectChkMulti : "انتخاب چند گزينه ای مجاز",
+DlgSelectOpAvail : "گزينه های موجود",
+DlgSelectOpText : "متن",
+DlgSelectOpValue : "مقدار",
+DlgSelectBtnAdd : "اضافه",
+DlgSelectBtnModify : "ويرايش",
+DlgSelectBtnUp : "بالا",
+DlgSelectBtnDown : "پائين",
+DlgSelectBtnSetValue : "تنظيم به عنوان مقدار برگزيده",
+DlgSelectBtnDelete : "حذف",
+
+// Textarea Dialog
+DlgTextareaName : "نام",
+DlgTextareaCols : "ستونها",
+DlgTextareaRows : "سطرها",
+
+// Text Field Dialog
+DlgTextName : "نام",
+DlgTextValue : "مقدار",
+DlgTextCharWidth : "پهنای شناسه",
+DlgTextMaxChars : "بيشينه شناسه",
+DlgTextType : "نوع",
+DlgTextTypeText : "متن",
+DlgTextTypePass : "کلمه عبور",
+
+// Hidden Field Dialog
+DlgHiddenName : "نام",
+DlgHiddenValue : "مقدار",
+
+// Bulleted List Dialog
+BulletedListProp : "ويژگيهای فهرست دکمه ای",
+NumberedListProp : "ويژگيهای فهرست عددی",
+DlgLstType : "نوع",
+DlgLstTypeCircle : "دايره",
+DlgLstTypeDisc : "Disc", //MISSING
+DlgLstTypeSquare : "مربع",
+DlgLstTypeNumbers : "شماره ها (1، 2، 3)",
+DlgLstTypeLCase : "حروف کوچک (a، b، c)",
+DlgLstTypeUCase : "حروف بزرگ (A، B، C)",
+DlgLstTypeSRoman : "ارقام يونانی کوچک (i، ii، iii)",
+DlgLstTypeLRoman : "ارقام يونانی بزرگ (I، II، III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "عمومی",
+DlgDocBackTab : "پس زمينه",
+DlgDocColorsTab : "رنگها و حاشيه ها",
+DlgDocMetaTab : "فراداده",
+
+DlgDocPageTitle : "عنوان صفحه",
+DlgDocLangDir : "جهت زبان",
+DlgDocLangDirLTR : "چپ به راست (LTF(",
+DlgDocLangDirRTL : "راست به چپ (RTL(",
+DlgDocLangCode : "کد زبان",
+DlgDocCharSet : "رمزگذاری نويسه",
+DlgDocCharSetOther : "رمزگذاری نويسه های ديگر",
+
+DlgDocDocType : "عنوان نوع سند",
+DlgDocDocTypeOther : "عنوان نوع سند های ديگر",
+DlgDocIncXHTML : "شامل تعاريف XHTML",
+DlgDocBgColor : "رنگ پس زمينه",
+DlgDocBgImage : "URL تصوير پس زمينه",
+DlgDocBgNoScroll : "پس زمينه غير طوماری",
+DlgDocCText : "متن",
+DlgDocCLink : "لينک",
+DlgDocCVisited : "لينک مشاهده شده",
+DlgDocCActive : "لينک فعال",
+DlgDocMargins : "حاشيه صفحه",
+DlgDocMaTop : "رو",
+DlgDocMaLeft : "چپ",
+DlgDocMaRight : "راست",
+DlgDocMaBottom : "زير",
+DlgDocMeIndex : "کلمات کليدی انديس کردن سند (با کاما جدا شوند)",
+DlgDocMeDescr : "سند",
+DlgDocMeAuthor : "نويسنده",
+DlgDocMeCopy : "کپی رايت",
+DlgDocPreview : "پيش نمايش",
+
+// Templates Dialog
+Templates : "الگوها",
+DlgTemplatesTitle : "الگوهای محتويات",
+DlgTemplatesSelMsg : "لطفا الگوی مورد نظر را برای باز کردن در ويرايشگر انتخاب نمائيد
(محتويات اصلی از دست خواهند رفت):",
+DlgTemplatesLoading : "بارگذاری فهرست الگوها. لطفا صبر کنيد...",
+DlgTemplatesNoTpl : "(الگوئی تعريف نشده است)",
+
+// About Dialog
+DlgAboutAboutTab : "درباره",
+DlgAboutBrowserInfoTab : "اطلاعات مرورگر",
+DlgAboutLicenseTab : "License", //MISSING
+DlgAboutVersion : "نگارش",
+DlgAboutLicense : "ليسانس تحت توافقنامه GNU Lesser General Public License",
+DlgAboutInfo : "برای اطلاعات بيشتر به آدرس زير برويد"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/fi.js b/htdocs/includes/fckeditor/editor/lang/fi.js
new file mode 100644
index 00000000000..a02c4aedf1e
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/fi.js
@@ -0,0 +1,486 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fi.js
+ * Finnish language file.
+ *
+ * File Authors:
+ * Marko Korhonen (marko.korhonen@datafisher.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Piilota työkalurivi",
+ToolbarExpand : "Näytä työkalurivi",
+
+// Toolbar Items and Context Menu
+Save : "Tallenna",
+NewPage : "Tyhjennä",
+Preview : "Esikatsele",
+Cut : "Leikkaa",
+Copy : "Kopioi",
+Paste : "Liitä",
+PasteText : "Liitä tekstinä",
+PasteWord : "Liitä Wordista",
+Print : "Tulosta",
+SelectAll : "Valitse kaikki",
+RemoveFormat : "Poista muotoilu",
+InsertLinkLbl : "Linkki",
+InsertLink : "Lisää linkki/muokkaa linkkiä",
+RemoveLink : "Poista linkki",
+Anchor : "Lisää ankkuri/muokkaa ankkuria",
+InsertImageLbl : "Kuva",
+InsertImage : "Lisää kuva/muokkaa kuvaa",
+InsertFlashLbl : "Flash",
+InsertFlash : "Lisää/muokkaa Flashia",
+InsertTableLbl : "Taulu",
+InsertTable : "Lisää taulu/muokkaa taulua",
+InsertLineLbl : "Murtoviiva",
+InsertLine : "Lisää murtoviiva",
+InsertSpecialCharLbl: "Erikoismerkki",
+InsertSpecialChar : "Lisää erikoismerkki",
+InsertSmileyLbl : "Hymiö",
+InsertSmiley : "Lisää hymiö",
+About : "FCKeditorista",
+Bold : "Lihavoitu",
+Italic : "Kursivoitu",
+Underline : "Alleviivattu",
+StrikeThrough : "Yliviivattu",
+Subscript : "Alaindeksi",
+Superscript : "Yläindeksi",
+LeftJustify : "Tasaa vasemmat reunat",
+CenterJustify : "Keskitä",
+RightJustify : "Tasaa oikeat reunat",
+BlockJustify : "Tasaa molemmat reunat",
+DecreaseIndent : "Pienennä sisennystä",
+IncreaseIndent : "Suurenna sisennystä",
+Undo : "Kumoa",
+Redo : "Toista",
+NumberedListLbl : "Numerointi",
+NumberedList : "Lisää/poista numerointi",
+BulletedListLbl : "Luottelomerkit",
+BulletedList : "Lisää/poista luottelomerkit",
+ShowTableBorders : "Näytä taulun rajat",
+ShowDetails : "Näytä muotoilu",
+Style : "Tyyli",
+FontFormat : "Muotoilu",
+Font : "Fontti",
+FontSize : "Koko",
+TextColor : "Tekstiväri",
+BGColor : "Taustaväri",
+Source : "Koodi",
+Find : "Etsi",
+Replace : "Korvaa",
+SpellCheck : "Tarkista oikeinkirjoitus",
+UniversalKeyboard : "Universaali näppäimistö",
+PageBreakLbl : "Sivun vaihto",
+PageBreak : "Lisää sivun vaihto",
+
+Form : "Lomake",
+Checkbox : "Valintaruutu",
+RadioButton : "Radiopainike",
+TextField : "Tekstikenttä",
+Textarea : "Tekstilaatikko",
+HiddenField : "Piilokenttä",
+Button : "Painike",
+SelectionField : "Valintakenttä",
+ImageButton : "Kuvapainike",
+
+FitWindow : "Suurenna editori koko ikkunaan",
+
+// Context Menu
+EditLink : "Muokkaa linkkiä",
+CellCM : "Solu",
+RowCM : "Rivi",
+ColumnCM : "Sarake",
+InsertRow : "Lisää rivi",
+DeleteRows : "Poista rivit",
+InsertColumn : "Lisää sarake",
+DeleteColumns : "Poista sarakkeet",
+InsertCell : "Lisää solu",
+DeleteCells : "Poista solut",
+MergeCells : "Yhdistä solut",
+SplitCell : "Jaa solu",
+TableDelete : "Poista taulu",
+CellProperties : "Solun ominaisuudet",
+TableProperties : "Taulun ominaisuudet",
+ImageProperties : "Kuvan ominaisuudet",
+FlashProperties : "Flash ominaisuudet",
+
+AnchorProp : "Ankkurin ominaisuudet",
+ButtonProp : "Painikkeen ominaisuudet",
+CheckboxProp : "Valintaruudun ominaisuudet",
+HiddenFieldProp : "Piilokentän ominaisuudet",
+RadioButtonProp : "Radiopainikkeen ominaisuudet",
+ImageButtonProp : "Kuvapainikkeen ominaisuudet",
+TextFieldProp : "Tekstikentän ominaisuudet",
+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",
+
+// Alerts and Messages
+ProcessingXHTML : "Prosessoidaan XHTML:ää. Odota hetki...",
+Done : "Valmis",
+PasteWordConfirm : "Teksti, jonka haluat liittää, näyttää olevan kopioitu Wordista. Haluatko puhdistaa sen ennen liittämistä?",
+NotCompatiblePaste : "Tämä komento toimii vain Internet Explorer 5.5:ssa tai uudemmassa. Haluatko liittää ilman puhdistusta?",
+UnknownToolbarItem : "Tuntemanton työkalu \"%1\"",
+UnknownCommand : "Tuntematon komento \"%1\"",
+NotImplemented : "Komentoa ei ole liitetty sovellukseen",
+UnknownToolbarSet : "Työkalukokonaisuus \"%1\" ei ole olemassa",
+NoActiveX : "Selaimesi turvallisuusasetukset voivat rajoittaa joitain editorin ominaisuuksia. Sinun pitää ottaa käyttöön asetuksista \"Suorita ActiveX komponentit ja -plugin-laajennukset\". Saatat kohdata virheitä ja huomata puuttuvia ominaisuuksia.",
+BrowseServerBlocked : "Resurssiselainta ei voitu avata. Varmista, että ponnahdusikkunoiden estäjät eivät ole päällä.",
+DialogBlocked : "Apuikkunaa ei voitu avaata. Varmista, että ponnahdusikkunoiden estäjät eivät ole päällä.",
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Peruuta",
+DlgBtnClose : "Sulje",
+DlgBtnBrowseServer : "Selaa palvelinta",
+DlgAdvancedTag : "Lisäominaisuudet",
+DlgOpOther : "Muut",
+DlgInfoTab : "Info",
+DlgAlertUrl : "Lisää URL",
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Tunniste",
+DlgGenLangDir : "Kielen suunta",
+DlgGenLangDirLtr : "Vasemmalta oikealle (LTR)",
+DlgGenLangDirRtl : "Oikealta vasemmalle (RTL)",
+DlgGenLangCode : "Kielikoodi",
+DlgGenAccessKey : "Pikanäppäin",
+DlgGenName : "Nimi",
+DlgGenTabIndex : "Tabulaattori indeksi",
+DlgGenLongDescr : "Pitkän kuvauksen URL",
+DlgGenClass : "Tyyliluokat",
+DlgGenTitle : "Avustava otsikko",
+DlgGenContType : "Avustava sisällön tyyppi",
+DlgGenLinkCharset : "Linkitetty kirjaimisto",
+DlgGenStyle : "Tyyli",
+
+// Image Dialog
+DlgImgTitle : "Kuvan ominaisuudet",
+DlgImgInfoTab : "Kuvan tiedot",
+DlgImgBtnUpload : "Lähetä palvelimelle",
+DlgImgURL : "Osoite",
+DlgImgUpload : "Lisää kuva",
+DlgImgAlt : "Vaihtoehtoinen teksti",
+DlgImgWidth : "Leveys",
+DlgImgHeight : "Korkeus",
+DlgImgLockRatio : "Lukitse suhteet",
+DlgBtnResetSize : "Alkuperäinen koko",
+DlgImgBorder : "Raja",
+DlgImgHSpace : "Vaakatila",
+DlgImgVSpace : "Pystytila",
+DlgImgAlign : "Kohdistus",
+DlgImgAlignLeft : "Vasemmalle",
+DlgImgAlignAbsBottom: "Aivan alas",
+DlgImgAlignAbsMiddle: "Aivan keskelle",
+DlgImgAlignBaseline : "Alas (teksti)",
+DlgImgAlignBottom : "Alas",
+DlgImgAlignMiddle : "Keskelle",
+DlgImgAlignRight : "Oikealle",
+DlgImgAlignTextTop : "Ylös (teksti)",
+DlgImgAlignTop : "Ylös",
+DlgImgPreview : "Esikatselu",
+DlgImgAlertUrl : "Kirjoita kuvan osoite (URL)",
+DlgImgLinkTab : "Linkki",
+
+// Flash Dialog
+DlgFlashTitle : "Flash ominaisuudet",
+DlgFlashChkPlay : "Automaattinen käynnistys",
+DlgFlashChkLoop : "Toisto",
+DlgFlashChkMenu : "Näytä Flash-valikko",
+DlgFlashScale : "Levitä",
+DlgFlashScaleAll : "Näytä kaikki",
+DlgFlashScaleNoBorder : "Ei rajaa",
+DlgFlashScaleFit : "Tarkka koko",
+
+// Link Dialog
+DlgLnkWindowTitle : "Linkki",
+DlgLnkInfoTab : "Linkin tiedot",
+DlgLnkTargetTab : "Kohde",
+
+DlgLnkType : "Linkkityyppi",
+DlgLnkTypeURL : "Osoite",
+DlgLnkTypeAnchor : "Ankkuri tässä sivussa",
+DlgLnkTypeEMail : "Sähköposti",
+DlgLnkProto : "Protokolla",
+DlgLnkProtoOther : "",
+DlgLnkURL : "Osoite",
+DlgLnkAnchorSel : "Valitse ankkuri",
+DlgLnkAnchorByName : "Ankkurin nimen mukaan",
+DlgLnkAnchorById : "Ankkurin ID:n mukaan",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "Sähköpostiosoite",
+DlgLnkEMailSubject : "Aihe",
+DlgLnkEMailBody : "Viesti",
+DlgLnkUpload : "Lisää tiedosto",
+DlgLnkBtnUpload : "Lähetä palvelimelle",
+
+DlgLnkTarget : "Kohde",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "Uusi ikkuna (_blank)",
+DlgLnkTargetParent : "Emoikkuna (_parent)",
+DlgLnkTargetSelf : "Sama ikkuna (_self)",
+DlgLnkTargetTop : "Päällimmäisin ikkuna (_top)",
+DlgLnkTargetFrameName : "Kohdekehyksen nimi",
+DlgLnkPopWinName : "Popup ikkunan nimi",
+DlgLnkPopWinFeat : "Popup ikkunan ominaisuudet",
+DlgLnkPopResize : "Venytettävä",
+DlgLnkPopLocation : "Osoiterivi",
+DlgLnkPopMenu : "Valikkorivi",
+DlgLnkPopScroll : "Vierityspalkit",
+DlgLnkPopStatus : "Tilarivi",
+DlgLnkPopToolbar : "Vakiopainikkeet",
+DlgLnkPopFullScrn : "Täysi ikkuna (IE)",
+DlgLnkPopDependent : "Riippuva (Netscape)",
+DlgLnkPopWidth : "Leveys",
+DlgLnkPopHeight : "Korkeus",
+DlgLnkPopLeft : "Vasemmalta (px)",
+DlgLnkPopTop : "Ylhäältä (px)",
+
+DlnLnkMsgNoUrl : "Linkille on kirjoitettava URL",
+DlnLnkMsgNoEMail : "Kirjoita sähköpostiosoite",
+DlnLnkMsgNoAnchor : "Valitse ankkuri",
+
+// Color Dialog
+DlgColorTitle : "Valitse väri",
+DlgColorBtnClear : "Tyhjennä",
+DlgColorHighlight : "Kohdalla",
+DlgColorSelected : "Valittu",
+
+// Smiley Dialog
+DlgSmileyTitle : "Lisää hymiö",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Valitse erikoismerkki",
+
+// Table Dialog
+DlgTableTitle : "Taulun ominaisuudet",
+DlgTableRows : "Rivit",
+DlgTableColumns : "Sarakkeet",
+DlgTableBorder : "Rajan paksuus",
+DlgTableAlign : "Kohdistus",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Vasemmalle",
+DlgTableAlignCenter : "Keskelle",
+DlgTableAlignRight : "Oikealle",
+DlgTableWidth : "Leveys",
+DlgTableWidthPx : "pikseliä",
+DlgTableWidthPc : "prosenttia",
+DlgTableHeight : "Korkeus",
+DlgTableCellSpace : "Solujen väli",
+DlgTableCellPad : "Solujen sisennys",
+DlgTableCaption : "Otsikko",
+DlgTableSummary : "Yhteenveto",
+
+// Table Cell Dialog
+DlgCellTitle : "Solun ominaisuudet",
+DlgCellWidth : "Leveys",
+DlgCellWidthPx : "pikseliä",
+DlgCellWidthPc : "prosenttia",
+DlgCellHeight : "Korkeus",
+DlgCellWordWrap : "Tekstikierrätys",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Kyllä",
+DlgCellWordWrapNo : "Ei",
+DlgCellHorAlign : "Vaakakohdistus",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Vasemmalle",
+DlgCellHorAlignCenter : "Keskelle",
+DlgCellHorAlignRight: "Oikealle",
+DlgCellVerAlign : "Pystykohdistus",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Ylös",
+DlgCellVerAlignMiddle : "Keskelle",
+DlgCellVerAlignBottom : "Alas",
+DlgCellVerAlignBaseline : "Tekstin alas",
+DlgCellRowSpan : "Rivin jatkuvuus",
+DlgCellCollSpan : "Sarakkeen jatkuvuus",
+DlgCellBackColor : "Taustaväri",
+DlgCellBorderColor : "Rajan väri",
+DlgCellBtnSelect : "Valitse...",
+
+// Find Dialog
+DlgFindTitle : "Etsi",
+DlgFindFindBtn : "Etsi",
+DlgFindNotFoundMsg : "Etsittyä tekstiä ei löytynyt.",
+
+// Replace Dialog
+DlgReplaceTitle : "Korvaa",
+DlgReplaceFindLbl : "Etsi mitä:",
+DlgReplaceReplaceLbl : "Korvaa tällä:",
+DlgReplaceCaseChk : "Sama kirjainkoko",
+DlgReplaceReplaceBtn : "Korvaa",
+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).",
+
+PasteAsText : "Liitä tekstinä",
+PasteFromWord : "Liitä Wordista",
+
+DlgPasteMsg2 : "Liitä painamalla (Ctrl+V) ja painamalla OK.",
+DlgPasteIgnoreFont : "Jätä huomioimatta fonttimääritykset",
+DlgPasteRemoveStyles : "Poista tyylimääritykset",
+DlgPasteCleanBox : "Tyhjennä",
+
+// Color Picker
+ColorAutomatic : "Automaattinen",
+ColorMoreColors : "Lisää värejä...",
+
+// Document Properties
+DocProps : "Dokumentin ominaisuudet",
+
+// Anchor Dialog
+DlgAnchorTitle : "Ankkurin ominaisuudet",
+DlgAnchorName : "Nimi",
+DlgAnchorErrorName : "Ankkurille on kirjoitettava nimi",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Ei sanakirjassa",
+DlgSpellChangeTo : "Vaihda",
+DlgSpellBtnIgnore : "Jätä huomioimatta",
+DlgSpellBtnIgnoreAll : "Jätä kaikki huomioimatta",
+DlgSpellBtnReplace : "Korvaa",
+DlgSpellBtnReplaceAll : "Korvaa kaikki",
+DlgSpellBtnUndo : "Kumoa",
+DlgSpellNoSuggestions : "Ei ehdotuksia",
+DlgSpellProgress : "Tarkistus käynnissä...",
+DlgSpellNoMispell : "Tarkistus valmis: Ei virheitä",
+DlgSpellNoChanges : "Tarkistus valmis: Yhtään sanaa ei muutettu",
+DlgSpellOneChange : "Tarkistus valmis: Yksi sana muutettiin",
+DlgSpellManyChanges : "Tarkistus valmis: %1 sanaa muutettiin",
+
+IeSpellDownload : "Oikeinkirjoituksen tarkistusta ei ole asennettu. Haluatko ladata sen nyt?",
+
+// Button Dialog
+DlgButtonText : "Teksti (arvo)",
+DlgButtonType : "Tyyppi",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Nimi",
+DlgCheckboxValue : "Arvo",
+DlgCheckboxSelected : "Valittu",
+
+// Form Dialog
+DlgFormName : "Nimi",
+DlgFormAction : "Toiminto",
+DlgFormMethod : "Tapa",
+
+// Select Field Dialog
+DlgSelectName : "Nimi",
+DlgSelectValue : "Arvo",
+DlgSelectSize : "Koko",
+DlgSelectLines : "Rivit",
+DlgSelectChkMulti : "Salli usea valinta",
+DlgSelectOpAvail : "Ominaisuudet",
+DlgSelectOpText : "Teksti",
+DlgSelectOpValue : "Arvo",
+DlgSelectBtnAdd : "Lisää",
+DlgSelectBtnModify : "Muuta",
+DlgSelectBtnUp : "Ylös",
+DlgSelectBtnDown : "Alas",
+DlgSelectBtnSetValue : "Aseta valituksi",
+DlgSelectBtnDelete : "Poista",
+
+// Textarea Dialog
+DlgTextareaName : "Nimi",
+DlgTextareaCols : "Sarakkeita",
+DlgTextareaRows : "Rivejä",
+
+// Text Field Dialog
+DlgTextName : "Nimi",
+DlgTextValue : "Arvo",
+DlgTextCharWidth : "Leveys",
+DlgTextMaxChars : "Maksimi merkkimäärä",
+DlgTextType : "Tyyppi",
+DlgTextTypeText : "Teksti",
+DlgTextTypePass : "Salasana",
+
+// Hidden Field Dialog
+DlgHiddenName : "Nimi",
+DlgHiddenValue : "Arvo",
+
+// Bulleted List Dialog
+BulletedListProp : "Luettelon ominaisuudet",
+NumberedListProp : "Numeroinnin ominaisuudet",
+DlgLstType : "Tyyppi",
+DlgLstTypeCircle : "Kehä",
+DlgLstTypeDisc : "Ympyrä",
+DlgLstTypeSquare : "Neliö",
+DlgLstTypeNumbers : "Numerot (1, 2, 3)",
+DlgLstTypeLCase : "Pienet kirjaimet (a, b, c)",
+DlgLstTypeUCase : "Isot kirjaimet (A, B, C)",
+DlgLstTypeSRoman : "Pienet roomalaiset numerot (i, ii, iii)",
+DlgLstTypeLRoman : "Isot roomalaiset numerot (Ii, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "Yleiset",
+DlgDocBackTab : "Tausta",
+DlgDocColorsTab : "Värit ja marginaalit",
+DlgDocMetaTab : "Meta-tieto",
+
+DlgDocPageTitle : "Sivun nimi",
+DlgDocLangDir : "Kielen suunta",
+DlgDocLangDirLTR : "Vasemmalta oikealle (LTR)",
+DlgDocLangDirRTL : "Oikealta vasemmalle (RTL)",
+DlgDocLangCode : "Kielikoodi",
+DlgDocCharSet : "Merkistäkoodaus",
+DlgDocCharSetOther : "Muu merkistäkoodaus",
+
+DlgDocDocType : "Dokumentin tyyppi",
+DlgDocDocTypeOther : "Muu dokumentin tyyppi",
+DlgDocIncXHTML : "Lisää XHTML julistukset",
+DlgDocBgColor : "Taustaväri",
+DlgDocBgImage : "Taustakuva",
+DlgDocBgNoScroll : "Paikallaanpysyvä tausta",
+DlgDocCText : "Teksti",
+DlgDocCLink : "Linkki",
+DlgDocCVisited : "Vierailtu linkki",
+DlgDocCActive : "Aktiivinen linkki",
+DlgDocMargins : "Sivun marginaalit",
+DlgDocMaTop : "Ylä",
+DlgDocMaLeft : "Vasen",
+DlgDocMaRight : "Oikea",
+DlgDocMaBottom : "Ala",
+DlgDocMeIndex : "Hakusanat (pilkulla erotettuna)",
+DlgDocMeDescr : "Kuvaus",
+DlgDocMeAuthor : "Tekijä",
+DlgDocMeCopy : "Tekijänoikeudet",
+DlgDocPreview : "Esikatselu",
+
+// Templates Dialog
+Templates : "Pohjat",
+DlgTemplatesTitle : "Sisältöpohjat",
+DlgTemplatesSelMsg : "Valitse pohja editoriin
(aiempi sisältö menetetään):",
+DlgTemplatesLoading : "Ladataan listaa pohjista. Hetkinen...",
+DlgTemplatesNoTpl : "(Ei määriteltyjä pohjia)",
+
+// About Dialog
+DlgAboutAboutTab : "Editorista",
+DlgAboutBrowserInfoTab : "Selaimen tiedot",
+DlgAboutLicenseTab : "Lisenssi",
+DlgAboutVersion : "versio",
+DlgAboutLicense : "Lisenssi: GNU Lesser General Public License",
+DlgAboutInfo : "Lisää tietoa osoitteesta"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/fo.js b/htdocs/includes/fckeditor/editor/lang/fo.js
new file mode 100644
index 00000000000..9546c8682c1
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/fo.js
@@ -0,0 +1,487 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fo.js
+ * Faroese language file.
+ *
+ * File Authors:
+ * Símin Lassaberg
+ * Helgi Arnthorsson
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Goym amboðalistan",
+ToolbarExpand : "Vís amboðalistan",
+
+// Toolbar Items and Context Menu
+Save : "Geim",
+NewPage : "Nýggj síða",
+Preview : "Vís dømi",
+Cut : "Klipp",
+Copy : "Avrita",
+Paste : "Set inn",
+PasteText : "Set inn sum reinan tekst",
+PasteWord : "Set inn frá Word",
+Print : "Prenta",
+SelectAll : "Markera alt",
+RemoveFormat : "Sletta sniðgeving",
+InsertLinkLbl : "Leinkja",
+InsertLink : "Seta inn/Broyta Leinkju",
+RemoveLink : "Sletta Leinkju",
+Anchor : "Seta inn/Broyta staðsetingarmerki",
+InsertImageLbl : "Seta inn mynd",
+InsertImage : "Seta inn/Broyta mynd",
+InsertFlashLbl : "Flash", //MISSING
+InsertFlash : "Insert/Edit Flash", //MISSING
+InsertTableLbl : "Talva",
+InsertTable : "Seta inn/Broyta talvu",
+InsertLineLbl : "Linja",
+InsertLine : "Seta inn vatnrætta linju",
+InsertSpecialCharLbl: "Serlig tekn",
+InsertSpecialChar : "Seta inn serligt tekn",
+InsertSmileyLbl : "Smiley",
+InsertSmiley : "Seta inn Smiley",
+About : "Um FCKeditor",
+Bold : "Feit",
+Italic : "Skástillað",
+Underline : "Undirstrikað",
+StrikeThrough : "Strikað yvir",
+Subscript : "Lækkað skrift",
+Superscript : "Hækkað skrift",
+LeftJustify : "Vinstristillað",
+CenterJustify : "Miðstillað",
+RightJustify : "Hægristillað",
+BlockJustify : "Beinir tekstkantar",
+DecreaseIndent : "Økja innrykk",
+IncreaseIndent : "Minka innrykk",
+Undo : "Angra",
+Redo : "Broyt aftur í upprunamynd",
+NumberedListLbl : "Talsettur listi",
+NumberedList : "Seta inn/Sletta talsettan lista",
+BulletedListLbl : "Punktsettur listi",
+BulletedList : "Seta inn/Sletta punktsettan lista",
+ShowTableBorders : "Vísa talvukantar ",
+ShowDetails : "Vísa detaljur",
+Style : "Tekstsnið",
+FontFormat : "Sniðgeving",
+Font : "Skrift",
+FontSize : "Skriftstødd",
+TextColor : "Tekstlitur",
+BGColor : "Litur aftanfyri",
+Source : "Kelda",
+Find : "Leita",
+Replace : "Set í staðin",
+SpellCheck : "Stavseting",
+UniversalKeyboard : "Universalt Tastatur",
+PageBreakLbl : "Page Break", //MISSING
+PageBreak : "Insert Page Break", //MISSING
+
+Form : "Seta inn Form",
+Checkbox : "Seta inn Avmerkingarboks",
+RadioButton : "Seta inn Radioknap",
+TextField : "Seta inn Tekstteig",
+Textarea : "Seta inn Tekstøki",
+HiddenField : "Seta inn GoymdanTeig",
+Button : "Seta inn knapp",
+SelectionField : "Seta inn Valteig",
+ImageButton : "Seta inn Myndaknapp",
+
+FitWindow : "Maximize the editor size", //MISSING
+
+// Context Menu
+EditLink : "Broyt leinkju",
+CellCM : "Cell", //MISSING
+RowCM : "Row", //MISSING
+ColumnCM : "Column", //MISSING
+InsertRow : "Seta inn rekkju",
+DeleteRows : "Sletta rekkjur",
+InsertColumn : "Seta inn søjlur",
+DeleteColumns : "Sletta søjlur",
+InsertCell : "Seta inn sellu",
+DeleteCells : "Sletta sellu",
+MergeCells : "Flætta sellur",
+SplitCell : "Deila sellur",
+TableDelete : "Delete Table", //MISSING
+CellProperties : "Eginleikar fyri sellu",
+TableProperties : "Eginleikar fyri talvu",
+ImageProperties : "Eginleikar fyri mynd",
+FlashProperties : "Flash Properties", //MISSING
+
+AnchorProp : "Eginleikar fyri staðsetingarpunkt",
+ButtonProp : "Eginleikar fyri knapp",
+CheckboxProp : "Eginleikar fyri avmerkingarboks",
+HiddenFieldProp : "Eginleikar fyri goymdan teig",
+RadioButtonProp : "Eginleikar fyri radioknapp",
+ImageButtonProp : "Eginleikar fyri myndaknapp",
+TextFieldProp : "Eginleikar fyri Tekstateig",
+SelectionFieldProp : "Eginleikar fyri Valteig",
+TextareaProp : "Eginleikar fyri Tekstaøki",
+FormProp : "Eginleikar fyri form",
+
+FontFormats : "Normalt;Sniðgevið;Adressa;Yvirskrift 1;Yvirskrift 2;Yvirskrift 3;Yvirskrift 4;Yvirskrift 5;Yvirskrift 6",
+
+// Alerts and Messages
+ProcessingXHTML : "Viðgerir XHTML. Bíða...",
+Done : "Liðugt",
+PasteWordConfirm : "Teksturin, tú roynir at seta inn, sýnist at vera frá Word. Vilt tú reinsa tekstin, áðrenn hann verður settur inn?",
+NotCompatiblePaste : "Hesin ordri er tøkur í Internet Explorer 5.5 og nýggjari. Vilt tú seta tekstin inn, uttan at reinsa hann?",
+UnknownToolbarItem : "Ókendur lutur í amboðalinju \"%1\"",
+UnknownCommand : "Kenni ikki ordra \"%1\"",
+NotImplemented : "Ordrin er ikki gjørdur virkin",
+UnknownToolbarSet : "Amboðalinjan \"%1\" finst ikki",
+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
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Angra",
+DlgBtnClose : "Lukka",
+DlgBtnBrowseServer : "Hyggja á servara",
+DlgAdvancedTag : "Útvíðka",
+DlgOpOther : "",
+DlgInfoTab : "Info", //MISSING
+DlgAlertUrl : "Please insert the URL", //MISSING
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Tekstakós",
+DlgGenLangDirLtr : "Vinstri móti høgri (LTR)",
+DlgGenLangDirRtl : "Høgri móti vinstri (RTL)",
+DlgGenLangCode : "Málkoda",
+DlgGenAccessKey : "Atgongdslykil",
+DlgGenName : "Navn",
+DlgGenTabIndex : "Tabulator Indeks",
+DlgGenLongDescr : "víðka frágreiðing",
+DlgGenClass : "Typografiark",
+DlgGenTitle : "Heiti",
+DlgGenContType : "Innihaldsslag",
+DlgGenLinkCharset : "Teknset",
+DlgGenStyle : "Prentlist",
+
+// Image Dialog
+DlgImgTitle : "Mynd eginleikar",
+DlgImgInfoTab : "Mynd info",
+DlgImgBtnUpload : "Send til serveren",
+DlgImgURL : "URL",
+DlgImgUpload : "Upload",
+DlgImgAlt : "Annar tekstur",
+DlgImgWidth : "Breidd",
+DlgImgHeight : "Hædd",
+DlgImgLockRatio : "Læs støddarlutfall",
+DlgBtnResetSize : "Nulstilla stødd",
+DlgImgBorder : "Ramma",
+DlgImgHSpace : "HMargin",
+DlgImgVSpace : "VMargin",
+DlgImgAlign : "Justering",
+DlgImgAlignLeft : "Vinstra",
+DlgImgAlignAbsBottom: "Abs botnur",
+DlgImgAlignAbsMiddle: "Abs Miðja",
+DlgImgAlignBaseline : "Botnlinja",
+DlgImgAlignBottom : "Botnur",
+DlgImgAlignMiddle : "Miðja",
+DlgImgAlignRight : "Høgra",
+DlgImgAlignTextTop : "Tekstur ovast",
+DlgImgAlignTop : "Ovast",
+DlgImgPreview : "Vís dømi",
+DlgImgAlertUrl : "Slá inn slóðina til myndina",
+DlgImgLinkTab : "Leinkja",
+
+// 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
+
+// Link Dialog
+DlgLnkWindowTitle : "Leinkja",
+DlgLnkInfoTab : "Leinkju info",
+DlgLnkTargetTab : "Mál",
+
+DlgLnkType : "Leinkju slag",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Akker á hesari síðuni",
+DlgLnkTypeEMail : "Teldupostur",
+DlgLnkProto : "Protokoll",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "VEl eitt akker",
+DlgLnkAnchorByName : "Eftir akker navni",
+DlgLnkAnchorById : "Eftir element Id",
+DlgLnkNoAnchors : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "Nytt vindeyga (_blank)",
+DlgLnkTargetParent : "Omaná liggjandi vindeyga (_parent)",
+DlgLnkTargetSelf : "Sama vindeyga (_self)",
+DlgLnkTargetTop : "ovasta vindeyga (_top)",
+DlgLnkTargetFrameName : "vísa vindeygas navn",
+DlgLnkPopWinName : "Popup vindeygas navn",
+DlgLnkPopWinFeat : "Popup vindeygas eginleikar",
+DlgLnkPopResize : "Skalering",
+DlgLnkPopLocation : "Lokationslinja",
+DlgLnkPopMenu : "Menulinja",
+DlgLnkPopScroll : "Scrollbars",
+DlgLnkPopStatus : "Statuslinja",
+DlgLnkPopToolbar : "Værktøjslinja",
+DlgLnkPopFullScrn : "Fullur skermur (IE)",
+DlgLnkPopDependent : "Bundin (Netscape)",
+DlgLnkPopWidth : "Breidd",
+DlgLnkPopHeight : "Hædd",
+DlgLnkPopLeft : "Positión frá vinstru",
+DlgLnkPopTop : "Positión frá toppinum",
+
+DlnLnkMsgNoUrl : "Inntasta leinkju URL",
+DlnLnkMsgNoEMail : "Inntasta teldupost addressuna",
+DlnLnkMsgNoAnchor : "Vel akker",
+
+// Color Dialog
+DlgColorTitle : "vel farvu",
+DlgColorBtnClear : "sletta alt",
+DlgColorHighlight : "Markera",
+DlgColorSelected : "valt",
+
+// Smiley Dialog
+DlgSmileyTitle : "Innset ein smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "vel specialkarakter",
+
+// Table Dialog
+DlgTableTitle : "Tabel eginleikar",
+DlgTableRows : "Rekkjur",
+DlgTableColumns : "Kolonnur",
+DlgTableBorder : "Rammu stødd",
+DlgTableAlign : "Justering",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Vinstrastilla",
+DlgTableAlignCenter : "Miðseta",
+DlgTableAlignRight : "Høgrastilla",
+DlgTableWidth : "Breidd",
+DlgTableWidthPx : "pixels",
+DlgTableWidthPc : "prosent",
+DlgTableHeight : "Hædd",
+DlgTableCellSpace : "Fjarstøða millum sellur",
+DlgTableCellPad : "Sellu breddi",
+DlgTableCaption : "Heiti",
+DlgTableSummary : "Summary", //MISSING
+
+// Table Cell Dialog
+DlgCellTitle : "Sellu eginleikar",
+DlgCellWidth : "Breidd",
+DlgCellWidthPx : "pixels",
+DlgCellWidthPc : "prosent",
+DlgCellHeight : "Hædd",
+DlgCellWordWrap : "Orðbýti",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Ja",
+DlgCellWordWrapNo : "Nej",
+DlgCellHorAlign : "Horisontal justering",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Vinstrastilla",
+DlgCellHorAlignCenter : "Miðsett",
+DlgCellHorAlignRight: "Høgrastilla",
+DlgCellVerAlign : "Lodrøtt Justering",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Ovast",
+DlgCellVerAlignMiddle : "Miðja",
+DlgCellVerAlignBottom : "Niðast",
+DlgCellVerAlignBaseline : "Botnlinja",
+DlgCellRowSpan : "Tal av rekkjum sellan spennur yvir",
+DlgCellCollSpan : "Tal av talrøðum sellan spennur yvir",
+DlgCellBackColor : "Bakgrundsfarva",
+DlgCellBorderColor : "rammufarva",
+DlgCellBtnSelect : "Vel...",
+
+// Find Dialog
+DlgFindTitle : "Finn",
+DlgFindFindBtn : "Finn",
+DlgFindNotFoundMsg : "Teksturin bleiv ikki funnin",
+
+// Replace Dialog
+DlgReplaceTitle : "Set í staðin",
+DlgReplaceFindLbl : "Finn:",
+DlgReplaceReplaceLbl : "Set í staðin við:",
+DlgReplaceCaseChk : "Munur á stórum og smáðum stavum",
+DlgReplaceReplaceBtn : "Set í staðin",
+DlgReplaceReplAllBtn : "Skift alt út",
+DlgReplaceWordChk : "Bert heil orð",
+
+// Paste Operations / Dialog
+PasteErrorPaste : "Leitarans trygdarinstillingar loyva ikki editorinum at innseta tekstin automatiskt. Brúka knappaborðið til at innseta tekstin (Ctrl+V).",
+PasteErrorCut : "Leitarans trygdarinstillingar loyva ikki editorinum at klippa tekstin automatiskt. Brúka í staðin knappaborðið til at klippa tekstin (Ctrl+X).",
+PasteErrorCopy : "Leitarans trygdarinstillingar loyva ikki editorinum at avrita tekstin automatiskt. Brúka í staðin knappaborðið til at avrita tekstin (Ctrl+V).",
+
+PasteAsText : "Seta inn som reinur tekstur",
+PasteFromWord : "Seta inn fra Word",
+
+DlgPasteMsg2 : "Please paste inside the following box using the keyboard (Ctrl+V) and hit OK.", //MISSING
+DlgPasteIgnoreFont : "Ignore Font Face definitions", //MISSING
+DlgPasteRemoveStyles : "Remove Styles definitions", //MISSING
+DlgPasteCleanBox : "Clean Up Box", //MISSING
+
+// Color Picker
+ColorAutomatic : "Automatisk",
+ColorMoreColors : "Fleiri farvur...",
+
+// Document Properties
+DocProps : "Dokument eginleikar",
+
+// Anchor Dialog
+DlgAnchorTitle : "Akker eginleikar",
+DlgAnchorName : "Akker navn",
+DlgAnchorErrorName : "Slá innn akker navn",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Finnst ikki í orðabókini",
+DlgSpellChangeTo : "broyta til",
+DlgSpellBtnIgnore : "Ignorera",
+DlgSpellBtnIgnoreAll : "Ignorera alt",
+DlgSpellBtnReplace : "Skift út",
+DlgSpellBtnReplaceAll : "Skift út alt",
+DlgSpellBtnUndo : "Aftur",
+DlgSpellNoSuggestions : "- Einki uppskot -",
+DlgSpellProgress : "Stavarin arbeiðir...",
+DlgSpellNoMispell : "Stavarain liðugur: Eingin feilur funnin",
+DlgSpellNoChanges : "Stavarain liðugur: Einki orð broytt",
+DlgSpellOneChange : "Stavarain liðugur: Eitt orð broytt",
+DlgSpellManyChanges : "Stavarain liðugur: %1 orð broytt",
+
+IeSpellDownload : "Stavarin ikki lagdur inn. vilt tú heinta hann nú?",
+
+// Button Dialog
+DlgButtonText : "Tekstur (Virði)",
+DlgButtonType : "Slag",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Navn",
+DlgCheckboxValue : "Virði",
+DlgCheckboxSelected : "Valgt",
+
+// Form Dialog
+DlgFormName : "Navn",
+DlgFormAction : "Gerð",
+DlgFormMethod : "Háttur",
+
+// Select Field Dialog
+DlgSelectName : "Navn",
+DlgSelectValue : "Virði",
+DlgSelectSize : "Stødd",
+DlgSelectLines : "linjir",
+DlgSelectChkMulti : "Loyv fleiri valmøguleikar",
+DlgSelectOpAvail : "valmøguleikar",
+DlgSelectOpText : "Tekstur",
+DlgSelectOpValue : "Virði",
+DlgSelectBtnAdd : "Legg afturat",
+DlgSelectBtnModify : "Broyt",
+DlgSelectBtnUp : "Upp",
+DlgSelectBtnDown : "Niður",
+DlgSelectBtnSetValue : "Set sum útvald",
+DlgSelectBtnDelete : "Sletta",
+
+// Textarea Dialog
+DlgTextareaName : "Navn",
+DlgTextareaCols : "talrøð",
+DlgTextareaRows : "Rekkja",
+
+// Text Field Dialog
+DlgTextName : "Navn",
+DlgTextValue : "Virði",
+DlgTextCharWidth : "Sjónligt tal av bókstavum",
+DlgTextMaxChars : "Hægst loyvda tal av bókstavum",
+DlgTextType : "Slag",
+DlgTextTypeText : "Tekstur",
+DlgTextTypePass : "Koduorð",
+
+// Hidden Field Dialog
+DlgHiddenName : "Navn",
+DlgHiddenValue : "Virði",
+
+// Bulleted List Dialog
+BulletedListProp : "Punktteknsuppsetingar eginleikar",
+NumberedListProp : "Taluppsetingar eginleikar",
+DlgLstType : "Slag",
+DlgLstTypeCircle : "Sirkul",
+DlgLstTypeDisc : "Disc", //MISSING
+DlgLstTypeSquare : "Fýrakantur",
+DlgLstTypeNumbers : "Talmerkt (1, 2, 3)",
+DlgLstTypeLCase : "Smáir bókstavir (a, b, c)",
+DlgLstTypeUCase : "Stórir bókstavir (A, B, C)",
+DlgLstTypeSRoman : "Smá rómaratøl (i, ii, iii)",
+DlgLstTypeLRoman : "Stór rómaratøl (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "Generelt",
+DlgDocBackTab : "Bakgrund",
+DlgDocColorsTab : "Farva og Breddin",
+DlgDocMetaTab : "Meta Information",
+
+DlgDocPageTitle : "Síðu heiti",
+DlgDocLangDir : "Mál",
+DlgDocLangDirLTR : "Frá vinstru móti høgru (LTR)",
+DlgDocLangDirRTL : "Frá høgru móti vinstru (RTL)",
+DlgDocLangCode : "Landakoda",
+DlgDocCharSet : "Karakter set kodu",
+DlgDocCharSetOther : "Annar karakter set kodu",
+
+DlgDocDocType : "Dokument slag kategori",
+DlgDocDocTypeOther : "Annað dokument slag kategori",
+DlgDocIncXHTML : "Inkludere XHTML deklartion",
+DlgDocBgColor : "Bakgrundsfarva",
+DlgDocBgImage : "Bakgrundsmynd URL",
+DlgDocBgNoScroll : "Ikki scrollbar bakgrund",
+DlgDocCText : "Tekstur",
+DlgDocCLink : "Leinkja",
+DlgDocCVisited : "Vitja leinkja",
+DlgDocCActive : "Aktiv leinkja",
+DlgDocMargins : "Síðu breddi",
+DlgDocMaTop : "Ovast",
+DlgDocMaLeft : "Vinstra",
+DlgDocMaRight : "Høgra",
+DlgDocMaBottom : "Niðast",
+DlgDocMeIndex : "Dokument index lyklaorð (komma sundurskilt)",
+DlgDocMeDescr : "Dokument lýsing",
+DlgDocMeAuthor : "Høvundur",
+DlgDocMeCopy : "Copyright",
+DlgDocPreview : "Vís",
+
+// Templates Dialog
+Templates : "Frymlar",
+DlgTemplatesTitle : "Innihaldsfrymlar",
+DlgTemplatesSelMsg : "Vel tann frymilin, sum skal opnast í editorinum
(Tað verður skriva útyvir núverandi innihald):",
+DlgTemplatesLoading : "Heintar lista yvir frymlar. Vinarliga bíða...",
+DlgTemplatesNoTpl : "(Ongin frymil er valdur)",
+
+// About Dialog
+DlgAboutAboutTab : "Um",
+DlgAboutBrowserInfoTab : "Browsara upplýsingar",
+DlgAboutLicenseTab : "License", //MISSING
+DlgAboutVersion : "versión",
+DlgAboutLicense : "Loyvi undir treytum fyri GNU Lesser General Public License",
+DlgAboutInfo : "Fleiri upplýsingar, far til"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/fr.js b/htdocs/includes/fckeditor/editor/lang/fr.js
new file mode 100644
index 00000000000..168a994d49e
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/fr.js
@@ -0,0 +1,486 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: fr.js
+ * French language file.
+ *
+ * File Authors:
+ * Hubert Garrido (liane@users.sourceforge.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Masquer Outils",
+ToolbarExpand : "Afficher Outils",
+
+// Toolbar Items and Context Menu
+Save : "Enregistrer",
+NewPage : "Nouvelle page",
+Preview : "Prévisualisation",
+Cut : "Couper",
+Copy : "Copier",
+Paste : "Coller",
+PasteText : "Coller comme texte",
+PasteWord : "Coller de Word",
+Print : "Imprimer",
+SelectAll : "Tout sélectionner",
+RemoveFormat : "Supprimer le format",
+InsertLinkLbl : "Lien",
+InsertLink : "Insérer/modifier le lien",
+RemoveLink : "Supprimer le lien",
+Anchor : "Insérer/modifier l'ancre",
+InsertImageLbl : "Image",
+InsertImage : "Insérer/modifier l'image",
+InsertFlashLbl : "Animation Flash",
+InsertFlash : "Insérer/modifier l'animation Flash",
+InsertTableLbl : "Tableau",
+InsertTable : "Insérer/modifier le tableau",
+InsertLineLbl : "Séparateur",
+InsertLine : "Insérer un séparateur",
+InsertSpecialCharLbl: "Caractères spéciaux",
+InsertSpecialChar : "Insérer un caractère spécial",
+InsertSmileyLbl : "Smiley",
+InsertSmiley : "Insérer un Smiley",
+About : "A propos de FCKeditor",
+Bold : "Gras",
+Italic : "Italique",
+Underline : "Souligné",
+StrikeThrough : "Barré",
+Subscript : "Indice",
+Superscript : "Exposant",
+LeftJustify : "Aligné à gauche",
+CenterJustify : "Centré",
+RightJustify : "Aligné à Droite",
+BlockJustify : "Texte justifié",
+DecreaseIndent : "Diminuer le retrait",
+IncreaseIndent : "Augmenter le retrait",
+Undo : "Annuler",
+Redo : "Refaire",
+NumberedListLbl : "Liste numérotée",
+NumberedList : "Insérer/supprimer la liste numérotée",
+BulletedListLbl : "Liste à puces",
+BulletedList : "Insérer/supprimer la liste à puces",
+ShowTableBorders : "Afficher les bordures du tableau",
+ShowDetails : "Afficher les caractères invisibles",
+Style : "Style",
+FontFormat : "Format",
+Font : "Police",
+FontSize : "Taille",
+TextColor : "Couleur de caractère",
+BGColor : "Couleur de fond",
+Source : "Source",
+Find : "Chercher",
+Replace : "Remplacer",
+SpellCheck : "Orthographe",
+UniversalKeyboard : "Clavier universel",
+PageBreakLbl : "Saut de page",
+PageBreak : "Insérer un saut de page",
+
+Form : "Formulaire",
+Checkbox : "Case à cocher",
+RadioButton : "Bouton radio",
+TextField : "Champ texte",
+Textarea : "Zone de texte",
+HiddenField : "Champ caché",
+Button : "Bouton",
+SelectionField : "Liste/menu",
+ImageButton : "Bouton image",
+
+FitWindow : "Plein écran",
+
+// Context Menu
+EditLink : "Modifier le lien",
+CellCM : "Cell", //MISSING
+RowCM : "Row", //MISSING
+ColumnCM : "Column", //MISSING
+InsertRow : "Insérer une ligne",
+DeleteRows : "Supprimer des lignes",
+InsertColumn : "Insérer une colonne",
+DeleteColumns : "Supprimer des colonnes",
+InsertCell : "Insérer une cellule",
+DeleteCells : "Supprimer des cellules",
+MergeCells : "Fusionner les cellules",
+SplitCell : "Scinder les cellules",
+TableDelete : "Supprimer le tableau",
+CellProperties : "Propriétés de cellule",
+TableProperties : "Propriétés du tableau",
+ImageProperties : "Propriétés de l'image",
+FlashProperties : "Propriétés de l'animation Flash",
+
+AnchorProp : "Propriétés de l'ancre",
+ButtonProp : "Propriétés du bouton",
+CheckboxProp : "Propriétés de la case à cocher",
+HiddenFieldProp : "Propriétés du champ caché",
+RadioButtonProp : "Propriétés du bouton radio",
+ImageButtonProp : "Propriétés du bouton image",
+TextFieldProp : "Propriétés du champ texte",
+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;Titre 1;Titre 2;Titre 3;Titre 4;Titre 5;Titre 6",
+
+// Alerts and Messages
+ProcessingXHTML : "Calcul XHTML. Veuillez patienter...",
+Done : "Terminé",
+PasteWordConfirm : "Le texte à coller semble provenir de Word. Désirez-vous le nettoyer avant de coller?",
+NotCompatiblePaste : "Cette commande nécessite Internet Explorer version 5.5 minimum. Souhaitez-vous coller sans nettoyage?",
+UnknownToolbarItem : "Elément de barre d'outil inconnu \"%1\"",
+UnknownCommand : "Nom de commande inconnu \"%1\"",
+NotImplemented : "Commande non encore écrite",
+UnknownToolbarSet : "La barre d'outils \"%1\" n'existe pas",
+NoActiveX : "Les paramètres de sécurité de votre navigateur peuvent limiter quelques fonctionnalités de l'éditeur. Veuillez activer l'option \"Exécuter les contrôles ActiveX et les plug-ins\". Il se peut que vous rencontriez des erreurs et remarquiez quelques limitations.",
+BrowseServerBlocked : "Le navigateur n'a pas pu être ouvert. Assurez-vous que les bloqueurs de popups soient désactivés.",
+DialogBlocked : "La fenêtre de dialogue n'a pas pu s'ouvrir. Assurez-vous que les bloqueurs de popups soient désactivés.",
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Annuler",
+DlgBtnClose : "Fermer",
+DlgBtnBrowseServer : "Parcourir le serveur",
+DlgAdvancedTag : "Avancé",
+DlgOpOther : "",
+DlgInfoTab : "Info",
+DlgAlertUrl : "Veuillez saisir l'URL",
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Sens d'écriture",
+DlgGenLangDirLtr : "De la gauche vers la droite (LTR)",
+DlgGenLangDirRtl : "De la roite vers la gauche (RTL)",
+DlgGenLangCode : "Code langue",
+DlgGenAccessKey : "Equivalent clavier",
+DlgGenName : "Nom",
+DlgGenTabIndex : "Ordre de tabulation",
+DlgGenLongDescr : "URL de description longue",
+DlgGenClass : "Classes de feuilles de style",
+DlgGenTitle : "Titre indicatif",
+DlgGenContType : "Type de contenu indicatif",
+DlgGenLinkCharset : "Encodage de caractère de la cible",
+DlgGenStyle : "Style",
+
+// Image Dialog
+DlgImgTitle : "Propriétés de l'image",
+DlgImgInfoTab : "Informations sur l'image",
+DlgImgBtnUpload : "Envoyer sur le serveur",
+DlgImgURL : "URL",
+DlgImgUpload : "Télécharger",
+DlgImgAlt : "Texte de remplacement",
+DlgImgWidth : "Largeur",
+DlgImgHeight : "Hauteur",
+DlgImgLockRatio : "Garder les proportions",
+DlgBtnResetSize : "Taille originale",
+DlgImgBorder : "Bordure",
+DlgImgHSpace : "Espacement horizontal",
+DlgImgVSpace : "Espacement vertical",
+DlgImgAlign : "Alignement",
+DlgImgAlignLeft : "Gauche",
+DlgImgAlignAbsBottom: "Abs Bas",
+DlgImgAlignAbsMiddle: "Abs Milieu",
+DlgImgAlignBaseline : "Bas du texte",
+DlgImgAlignBottom : "Bas",
+DlgImgAlignMiddle : "Milieu",
+DlgImgAlignRight : "Droite",
+DlgImgAlignTextTop : "Haut du texte",
+DlgImgAlignTop : "Haut",
+DlgImgPreview : "Prévisualisation",
+DlgImgAlertUrl : "Veuillez saisir l'URL de l'image",
+DlgImgLinkTab : "Lien",
+
+// Flash Dialog
+DlgFlashTitle : "Propriétés de l'animation Flash",
+DlgFlashChkPlay : "Lecture automatique",
+DlgFlashChkLoop : "Boucle",
+DlgFlashChkMenu : "Activer le menu Flash",
+DlgFlashScale : "Affichage",
+DlgFlashScaleAll : "Par défaut (tout montrer)",
+DlgFlashScaleNoBorder : "Sans bordure",
+DlgFlashScaleFit : "Ajuster aux dimensions",
+
+// Link Dialog
+DlgLnkWindowTitle : "Propriétés du lien",
+DlgLnkInfoTab : "Informations sur le lien",
+DlgLnkTargetTab : "Destination",
+
+DlgLnkType : "Type de lien",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Ancre dans cette page",
+DlgLnkTypeEMail : "E-Mail",
+DlgLnkProto : "Protocole",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Sélectionner une ancre",
+DlgLnkAnchorByName : "Par nom d'ancre",
+DlgLnkAnchorById : "Par Id d'élément",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "Adresse E-Mail",
+DlgLnkEMailSubject : "Sujet du message",
+DlgLnkEMailBody : "Corps du message",
+DlgLnkUpload : "Télécharger",
+DlgLnkBtnUpload : "Envoyer sur le serveur",
+
+DlgLnkTarget : "Destination",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "Nouvelle fenêtre (_blank)",
+DlgLnkTargetParent : "Fenêtre mère (_parent)",
+DlgLnkTargetSelf : "Même fenêtre (_self)",
+DlgLnkTargetTop : "Fenêtre supérieure (_top)",
+DlgLnkTargetFrameName : "Nom du cadre de destination",
+DlgLnkPopWinName : "Nom de la fenêtre popup",
+DlgLnkPopWinFeat : "Caractéristiques de la fenêtre popup",
+DlgLnkPopResize : "Taille modifiable",
+DlgLnkPopLocation : "Barre d'adresses",
+DlgLnkPopMenu : "Barre de menu",
+DlgLnkPopScroll : "Barres de défilement",
+DlgLnkPopStatus : "Barre d'état",
+DlgLnkPopToolbar : "Barre d'outils",
+DlgLnkPopFullScrn : "Plein écran (IE)",
+DlgLnkPopDependent : "Dépendante (Netscape)",
+DlgLnkPopWidth : "Largeur",
+DlgLnkPopHeight : "Hauteur",
+DlgLnkPopLeft : "Position à partir de la gauche",
+DlgLnkPopTop : "Position à partir du haut",
+
+DlnLnkMsgNoUrl : "Veuillez saisir l'URL",
+DlnLnkMsgNoEMail : "Veuillez saisir l'adresse e-mail",
+DlnLnkMsgNoAnchor : "Veuillez sélectionner une ancre",
+
+// Color Dialog
+DlgColorTitle : "Sélectionner",
+DlgColorBtnClear : "Effacer",
+DlgColorHighlight : "Mettre en exergue",
+DlgColorSelected : "Sélectionné",
+
+// Smiley Dialog
+DlgSmileyTitle : "Insérer un Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Insérer un caractère spécial",
+
+// Table Dialog
+DlgTableTitle : "Propriétés du tableau",
+DlgTableRows : "Lignes",
+DlgTableColumns : "Colonnes",
+DlgTableBorder : "Bordure",
+DlgTableAlign : "Alignement",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Gauche",
+DlgTableAlignCenter : "Centré",
+DlgTableAlignRight : "Droite",
+DlgTableWidth : "Largeur",
+DlgTableWidthPx : "pixels",
+DlgTableWidthPc : "pourcentage",
+DlgTableHeight : "Hauteur",
+DlgTableCellSpace : "Espacement",
+DlgTableCellPad : "Contour",
+DlgTableCaption : "Titre",
+DlgTableSummary : "Résumé",
+
+// Table Cell Dialog
+DlgCellTitle : "Propriétés de la cellule",
+DlgCellWidth : "Largeur",
+DlgCellWidthPx : "pixels",
+DlgCellWidthPc : "pourcentage",
+DlgCellHeight : "Hauteur",
+DlgCellWordWrap : "Retour à la ligne",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Oui",
+DlgCellWordWrapNo : "Non",
+DlgCellHorAlign : "Alignement horizontal",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Gauche",
+DlgCellHorAlignCenter : "Centré",
+DlgCellHorAlignRight: "Droite",
+DlgCellVerAlign : "Alignement vertical",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Haut",
+DlgCellVerAlignMiddle : "Milieu",
+DlgCellVerAlignBottom : "Bas",
+DlgCellVerAlignBaseline : "Bas du texte",
+DlgCellRowSpan : "Lignes fusionnées",
+DlgCellCollSpan : "Colonnes fusionnées",
+DlgCellBackColor : "Fond",
+DlgCellBorderColor : "Bordure",
+DlgCellBtnSelect : "Choisir...",
+
+// Find Dialog
+DlgFindTitle : "Chercher",
+DlgFindFindBtn : "Chercher",
+DlgFindNotFoundMsg : "Le texte indiqué est introuvable.",
+
+// Replace Dialog
+DlgReplaceTitle : "Remplacer",
+DlgReplaceFindLbl : "Rechercher:",
+DlgReplaceReplaceLbl : "Remplacer par:",
+DlgReplaceCaseChk : "Respecter la casse",
+DlgReplaceReplaceBtn : "Remplacer",
+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).",
+
+PasteAsText : "Coller comme texte",
+PasteFromWord : "Coller à partir de Word",
+
+DlgPasteMsg2 : "Veuillez coller dans la zone ci-dessous en utilisant le clavier (Ctrl+V) et cliquez sur OK.",
+DlgPasteIgnoreFont : "Ignorer les polices de caractères",
+DlgPasteRemoveStyles : "Supprimer les styles",
+DlgPasteCleanBox : "Effacer le contenu",
+
+// Color Picker
+ColorAutomatic : "Automatique",
+ColorMoreColors : "Plus de couleurs...",
+
+// Document Properties
+DocProps : "Propriétés du document",
+
+// Anchor Dialog
+DlgAnchorTitle : "Propriétés de l'ancre",
+DlgAnchorName : "Nom de l'ancre",
+DlgAnchorErrorName : "Veuillez saisir le nom de l'ancre",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Pas dans le dictionnaire",
+DlgSpellChangeTo : "Changer en",
+DlgSpellBtnIgnore : "Ignorer",
+DlgSpellBtnIgnoreAll : "Ignorer tout",
+DlgSpellBtnReplace : "Remplacer",
+DlgSpellBtnReplaceAll : "Remplacer tout",
+DlgSpellBtnUndo : "Annuler",
+DlgSpellNoSuggestions : "- Aucune suggestion -",
+DlgSpellProgress : "Vérification d'orthographe en cours...",
+DlgSpellNoMispell : "Vérification d'orthographe terminée: Aucune erreur trouvée",
+DlgSpellNoChanges : "Vérification d'orthographe terminée: Pas de modifications",
+DlgSpellOneChange : "Vérification d'orthographe terminée: Un mot modifié",
+DlgSpellManyChanges : "Vérification d'orthographe terminée: %1 mots modifiés",
+
+IeSpellDownload : "Le Correcteur n'est pas installé. Souhaitez-vous le télécharger maintenant?",
+
+// Button Dialog
+DlgButtonText : "Texte (valeur)",
+DlgButtonType : "Type",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Nom",
+DlgCheckboxValue : "Valeur",
+DlgCheckboxSelected : "Sélectionné",
+
+// Form Dialog
+DlgFormName : "Nom",
+DlgFormAction : "Action",
+DlgFormMethod : "Méthode",
+
+// Select Field Dialog
+DlgSelectName : "Nom",
+DlgSelectValue : "Valeur",
+DlgSelectSize : "Taille",
+DlgSelectLines : "lignes",
+DlgSelectChkMulti : "Sélection multiple",
+DlgSelectOpAvail : "Options disponibles",
+DlgSelectOpText : "Texte",
+DlgSelectOpValue : "Valeur",
+DlgSelectBtnAdd : "Ajouter",
+DlgSelectBtnModify : "Modifier",
+DlgSelectBtnUp : "Monter",
+DlgSelectBtnDown : "Descendre",
+DlgSelectBtnSetValue : "Valeur sélectionnée",
+DlgSelectBtnDelete : "Supprimer",
+
+// Textarea Dialog
+DlgTextareaName : "Nom",
+DlgTextareaCols : "Colonnes",
+DlgTextareaRows : "Lignes",
+
+// Text Field Dialog
+DlgTextName : "Nom",
+DlgTextValue : "Valeur",
+DlgTextCharWidth : "Largeur en caractères",
+DlgTextMaxChars : "Nombre maximum de caractères",
+DlgTextType : "Type",
+DlgTextTypeText : "Texte",
+DlgTextTypePass : "Mot de passe",
+
+// Hidden Field Dialog
+DlgHiddenName : "Nom",
+DlgHiddenValue : "Valeur",
+
+// Bulleted List Dialog
+BulletedListProp : "Propriétés de liste à puces",
+NumberedListProp : "Propriétés de numérotée",
+DlgLstType : "Type",
+DlgLstTypeCircle : "Cercle",
+DlgLstTypeDisc : "Disque",
+DlgLstTypeSquare : "Carré",
+DlgLstTypeNumbers : "Nombres (1, 2, 3)",
+DlgLstTypeLCase : "Lettres minuscules (a, b, c)",
+DlgLstTypeUCase : "Lettres majuscules (A, B, C)",
+DlgLstTypeSRoman : "Chiffres romains minuscules (i, ii, iii)",
+DlgLstTypeLRoman : "Chiffres romains majuscules (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "Général",
+DlgDocBackTab : "Fond",
+DlgDocColorsTab : "Couleurs et marges",
+DlgDocMetaTab : "Métadonnées",
+
+DlgDocPageTitle : "Titre de la page",
+DlgDocLangDir : "Sens d'écriture",
+DlgDocLangDirLTR : "De la gauche vers la droite (LTR)",
+DlgDocLangDirRTL : "De la droite vers la gauche (RTL)",
+DlgDocLangCode : "Code langue",
+DlgDocCharSet : "Encodage de caractère",
+DlgDocCharSetOther : "Autre encodage de caractère",
+
+DlgDocDocType : "Type de document",
+DlgDocDocTypeOther : "Autre type de document",
+DlgDocIncXHTML : "Inclure les déclarations XHTML",
+DlgDocBgColor : "Couleur de fond",
+DlgDocBgImage : "Image de fond",
+DlgDocBgNoScroll : "Image fixe sans défilement",
+DlgDocCText : "Texte",
+DlgDocCLink : "Lien",
+DlgDocCVisited : "Lien visité",
+DlgDocCActive : "Lien activé",
+DlgDocMargins : "Marges",
+DlgDocMaTop : "Haut",
+DlgDocMaLeft : "Gauche",
+DlgDocMaRight : "Droite",
+DlgDocMaBottom : "Bas",
+DlgDocMeIndex : "Mots-clés (séparés par des virgules)",
+DlgDocMeDescr : "Description",
+DlgDocMeAuthor : "Auteur",
+DlgDocMeCopy : "Copyright",
+DlgDocPreview : "Prévisualisation",
+
+// Templates Dialog
+Templates : "Modèles",
+DlgTemplatesTitle : "Modèles de contenu",
+DlgTemplatesSelMsg : "Veuillez sélectionner le modèle à ouvrir dans l'éditeur
(le contenu actuel sera remplacé):",
+DlgTemplatesLoading : "Chargement de la liste des modèles. Veuillez patienter...",
+DlgTemplatesNoTpl : "(Aucun modèle disponible)",
+
+// About Dialog
+DlgAboutAboutTab : "A propos de",
+DlgAboutBrowserInfoTab : "Navigateur",
+DlgAboutLicenseTab : "License", //MISSING
+DlgAboutVersion : "version",
+DlgAboutLicense : "License selon les termes de GNU Lesser General Public License",
+DlgAboutInfo : "Pour plus d'informations, aller à"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/gl.js b/htdocs/includes/fckeditor/editor/lang/gl.js
new file mode 100644
index 00000000000..0c6b6151e32
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/gl.js
@@ -0,0 +1,486 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: gl.js
+ * Galician language file.
+ *
+ * File Authors:
+ * Fernando Riveiro Lopez
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Ocultar Ferramentas",
+ToolbarExpand : "Mostrar Ferramentas",
+
+// Toolbar Items and Context Menu
+Save : "Gardar",
+NewPage : "Nova Páxina",
+Preview : "Vista Previa",
+Cut : "Cortar",
+Copy : "Copiar",
+Paste : "Pegar",
+PasteText : "Pegar como texto plano",
+PasteWord : "Pegar dende Word",
+Print : "Imprimir",
+SelectAll : "Seleccionar todo",
+RemoveFormat : "Eliminar Formato",
+InsertLinkLbl : "Ligazón",
+InsertLink : "Inserir/Editar Ligazón",
+RemoveLink : "Eliminar Ligazón",
+Anchor : "Inserir/Editar Referencia",
+InsertImageLbl : "Imaxe",
+InsertImage : "Inserir/Editar Imaxe",
+InsertFlashLbl : "Flash",
+InsertFlash : "Inserir/Editar Flash",
+InsertTableLbl : "Tabla",
+InsertTable : "Inserir/Editar Tabla",
+InsertLineLbl : "Liña",
+InsertLine : "Inserir Liña Horizontal",
+InsertSpecialCharLbl: "Carácter Special",
+InsertSpecialChar : "Inserir Carácter Especial",
+InsertSmileyLbl : "Smiley",
+InsertSmiley : "Inserir Smiley",
+About : "Acerca de FCKeditor",
+Bold : "Negrita",
+Italic : "Cursiva",
+Underline : "Sub-raiado",
+StrikeThrough : "Tachado",
+Subscript : "Subíndice",
+Superscript : "Superíndice",
+LeftJustify : "Aliñar á Esquerda",
+CenterJustify : "Centrado",
+RightJustify : "Aliñar á Dereita",
+BlockJustify : "Xustificado",
+DecreaseIndent : "Disminuir Sangría",
+IncreaseIndent : "Aumentar Sangría",
+Undo : "Desfacer",
+Redo : "Refacer",
+NumberedListLbl : "Lista Numerada",
+NumberedList : "Inserir/Eliminar Lista Numerada",
+BulletedListLbl : "Marcas",
+BulletedList : "Inserir/Eliminar Marcas",
+ShowTableBorders : "Mostrar Bordes das Taboas",
+ShowDetails : "Mostrar Marcas Parágrafo",
+Style : "Estilo",
+FontFormat : "Formato",
+Font : "Tipo",
+FontSize : "Tamaño",
+TextColor : "Cor do Texto",
+BGColor : "Cor do Fondo",
+Source : "Código Fonte",
+Find : "Procurar",
+Replace : "Substituir",
+SpellCheck : "Corrección Ortográfica",
+UniversalKeyboard : "Teclado Universal",
+PageBreakLbl : "Salto de Páxina",
+PageBreak : "Inserir Salto de Páxina",
+
+Form : "Formulario",
+Checkbox : "Cadro de Verificación",
+RadioButton : "Botón de Radio",
+TextField : "Campo de Texto",
+Textarea : "Área de Texto",
+HiddenField : "Campo Oculto",
+Button : "Botón",
+SelectionField : "Campo de Selección",
+ImageButton : "Botón de Imaxe",
+
+FitWindow : "Maximizar o tamaño do editor",
+
+// Context Menu
+EditLink : "Editar Ligazón",
+CellCM : "Cela",
+RowCM : "Fila",
+ColumnCM : "Columna",
+InsertRow : "Inserir Fila",
+DeleteRows : "Borrar Filas",
+InsertColumn : "Inserir Columna",
+DeleteColumns : "Borrar Columnas",
+InsertCell : "Inserir Cela",
+DeleteCells : "Borrar Cela",
+MergeCells : "Unir Celas",
+SplitCell : "Partir Celas",
+TableDelete : "Borrar Taboa",
+CellProperties : "Propriedades da Cela",
+TableProperties : "Propriedades da Taboa",
+ImageProperties : "Propriedades Imaxe",
+FlashProperties : "Propriedades Flash",
+
+AnchorProp : "Propriedades da Referencia",
+ButtonProp : "Propriedades do Botón",
+CheckboxProp : "Propriedades do Cadro de Verificación",
+HiddenFieldProp : "Propriedades do Campo Oculto",
+RadioButtonProp : "Propriedades do Botón de Radio",
+ImageButtonProp : "Propriedades do Botón de Imaxe",
+TextFieldProp : "Propriedades do Campo de Texto",
+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)",
+
+// Alerts and Messages
+ProcessingXHTML : "Procesando XHTML. Por facor, agarde...",
+Done : "Feiro",
+PasteWordConfirm : "Parece que o texto que quere pegar está copiado do Word.¿Quere limpar o formato antes de pegalo?",
+NotCompatiblePaste : "Este comando está disponible para Internet Explorer versión 5.5 ou superior. ¿Quere pegalo sen limpar o formato?",
+UnknownToolbarItem : "Ítem de ferramentas descoñecido \"%1\"",
+UnknownCommand : "Nome de comando descoñecido \"%1\"",
+NotImplemented : "Comando non implementado",
+UnknownToolbarSet : "O conxunto de ferramentas \"%1\" non existe",
+NoActiveX : "As opcións de seguridade do seu navegador poderían limitar algunha das características de editor. Debe activar a opción \"Executar controis ActiveX e plug-ins\". Pode notar que faltan características e experimentar erros",
+BrowseServerBlocked : "Non se poido abrir o navegador de recursos. Asegúrese de que están desactivados os bloqueadores de xanelas emerxentes",
+DialogBlocked : "Non foi posible abrir a xanela de diálogo. Asegúrese de que están desactivados os bloqueadores de xanelas emerxentes",
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Cancelar",
+DlgBtnClose : "Pechar",
+DlgBtnBrowseServer : "Navegar no Servidor",
+DlgAdvancedTag : "Advanzado",
+DlgOpOther : "",
+DlgInfoTab : "Info",
+DlgAlertUrl : "Por favor, insira a URL",
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Orientación do Idioma",
+DlgGenLangDirLtr : "Esquerda a Dereita (LTR)",
+DlgGenLangDirRtl : "Dereita a Esquerda (RTL)",
+DlgGenLangCode : "Código do Idioma",
+DlgGenAccessKey : "Chave de Acceso",
+DlgGenName : "Nome",
+DlgGenTabIndex : "Índice de Tabulación",
+DlgGenLongDescr : "Descrición Completa da URL",
+DlgGenClass : "Clases da Folla de Estilos",
+DlgGenTitle : "Título",
+DlgGenContType : "Tipo de Contido",
+DlgGenLinkCharset : "Fonte de Caracteres Vinculado",
+DlgGenStyle : "Estilo",
+
+// Image Dialog
+DlgImgTitle : "Propriedades da Imaxe",
+DlgImgInfoTab : "Información da Imaxe",
+DlgImgBtnUpload : "Enviar ó Servidor",
+DlgImgURL : "URL",
+DlgImgUpload : "Carregar",
+DlgImgAlt : "Texto Alternativo",
+DlgImgWidth : "Largura",
+DlgImgHeight : "Altura",
+DlgImgLockRatio : "Proporcional",
+DlgBtnResetSize : "Tamaño Orixinal",
+DlgImgBorder : "Límite",
+DlgImgHSpace : "Esp. Horiz.",
+DlgImgVSpace : "Esp. Vert.",
+DlgImgAlign : "Aliñamento",
+DlgImgAlignLeft : "Esquerda",
+DlgImgAlignAbsBottom: "Abs Inferior",
+DlgImgAlignAbsMiddle: "Abs Centro",
+DlgImgAlignBaseline : "Liña Base",
+DlgImgAlignBottom : "Pé",
+DlgImgAlignMiddle : "Centro",
+DlgImgAlignRight : "Dereita",
+DlgImgAlignTextTop : "Tope do Texto",
+DlgImgAlignTop : "Tope",
+DlgImgPreview : "Vista Previa",
+DlgImgAlertUrl : "Por favor, escriba a URL da imaxe",
+DlgImgLinkTab : "Ligazón",
+
+// Flash Dialog
+DlgFlashTitle : "Propriedades Flash",
+DlgFlashChkPlay : "Auto Execución",
+DlgFlashChkLoop : "Bucle",
+DlgFlashChkMenu : "Activar Menú Flash",
+DlgFlashScale : "Escalar",
+DlgFlashScaleAll : "Amosar Todo",
+DlgFlashScaleNoBorder : "Sen Borde",
+DlgFlashScaleFit : "Encaixar axustando",
+
+// Link Dialog
+DlgLnkWindowTitle : "Ligazón",
+DlgLnkInfoTab : "Información da Ligazón",
+DlgLnkTargetTab : "Referencia a esta páxina",
+
+DlgLnkType : "Tipo de Ligazón",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Referencia nesta páxina",
+DlgLnkTypeEMail : "E-Mail",
+DlgLnkProto : "Protocolo",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Seleccionar unha Referencia",
+DlgLnkAnchorByName : "Por Nome de Referencia",
+DlgLnkAnchorById : "Por Element Id",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "Enderezo de E-Mail",
+DlgLnkEMailSubject : "Asunto do Mensaxe",
+DlgLnkEMailBody : "Corpo do Mensaxe",
+DlgLnkUpload : "Carregar",
+DlgLnkBtnUpload : "Enviar ó servidor",
+
+DlgLnkTarget : "Destino",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "Nova Xanela (_blank)",
+DlgLnkTargetParent : "Xanela Pai (_parent)",
+DlgLnkTargetSelf : "Mesma Xanela (_self)",
+DlgLnkTargetTop : "Xanela Primaria (_top)",
+DlgLnkTargetFrameName : "Nome do Marco Destino",
+DlgLnkPopWinName : "Nome da Xanela Emerxente",
+DlgLnkPopWinFeat : "Características da Xanela Emerxente",
+DlgLnkPopResize : "Axustable",
+DlgLnkPopLocation : "Barra de Localización",
+DlgLnkPopMenu : "Barra de Menú",
+DlgLnkPopScroll : "Barras de Desplazamento",
+DlgLnkPopStatus : "Barra de Estado",
+DlgLnkPopToolbar : "Barra de Ferramentas",
+DlgLnkPopFullScrn : "A Toda Pantalla (IE)",
+DlgLnkPopDependent : "Dependente (Netscape)",
+DlgLnkPopWidth : "Largura",
+DlgLnkPopHeight : "Altura",
+DlgLnkPopLeft : "Posición Esquerda",
+DlgLnkPopTop : "Posición dende Arriba",
+
+DlnLnkMsgNoUrl : "Por favor, escriba a ligazón URL",
+DlnLnkMsgNoEMail : "Por favor, escriba o enderezo de e-mail",
+DlnLnkMsgNoAnchor : "Por favor, seleccione un destino",
+
+// Color Dialog
+DlgColorTitle : "Seleccionar Color",
+DlgColorBtnClear : "Nengunha",
+DlgColorHighlight : "Destacado",
+DlgColorSelected : "Seleccionado",
+
+// Smiley Dialog
+DlgSmileyTitle : "Inserte un Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Seleccione Caracter Especial",
+
+// Table Dialog
+DlgTableTitle : "Propiedades da Taboa",
+DlgTableRows : "Filas",
+DlgTableColumns : "Columnas",
+DlgTableBorder : "Tamaño do Borde",
+DlgTableAlign : "Aliñamento",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Esquerda",
+DlgTableAlignCenter : "Centro",
+DlgTableAlignRight : "Ereita",
+DlgTableWidth : "Largura",
+DlgTableWidthPx : "pixels",
+DlgTableWidthPc : "percent",
+DlgTableHeight : "Altura",
+DlgTableCellSpace : "Marxe entre Celas",
+DlgTableCellPad : "Marxe interior",
+DlgTableCaption : "Título",
+DlgTableSummary : "Sumario",
+
+// Table Cell Dialog
+DlgCellTitle : "Propriedades da Cela",
+DlgCellWidth : "Largura",
+DlgCellWidthPx : "pixels",
+DlgCellWidthPc : "percent",
+DlgCellHeight : "Altura",
+DlgCellWordWrap : "Axustar Liñas",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Si",
+DlgCellWordWrapNo : "Non",
+DlgCellHorAlign : "Aliñamento Horizontal",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Esquerda",
+DlgCellHorAlignCenter : "Centro",
+DlgCellHorAlignRight: "Dereita",
+DlgCellVerAlign : "Aliñamento Vertical",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Arriba",
+DlgCellVerAlignMiddle : "Medio",
+DlgCellVerAlignBottom : "Abaixo",
+DlgCellVerAlignBaseline : "Liña de Base",
+DlgCellRowSpan : "Ocupar Filas",
+DlgCellCollSpan : "Ocupar Columnas",
+DlgCellBackColor : "Color de Fondo",
+DlgCellBorderColor : "Color de Borde",
+DlgCellBtnSelect : "Seleccionar...",
+
+// Find Dialog
+DlgFindTitle : "Procurar",
+DlgFindFindBtn : "Procurar",
+DlgFindNotFoundMsg : "Non te atopou o texto indicado.",
+
+// Replace Dialog
+DlgReplaceTitle : "Substituir",
+DlgReplaceFindLbl : "Texto a procurar:",
+DlgReplaceReplaceLbl : "Substituir con:",
+DlgReplaceCaseChk : "Coincidir Mai./min.",
+DlgReplaceReplaceBtn : "Substituir",
+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).",
+
+PasteAsText : "Pegar como texto plano",
+PasteFromWord : "Pegar dende Word",
+
+DlgPasteMsg2 : "Por favor, pegue dentro do seguinte cadro usando o teclado (Ctrl+V) e pulse OK.",
+DlgPasteIgnoreFont : "Ignorar as definicións de Tipografía",
+DlgPasteRemoveStyles : "Eliminar as definicións de Estilos",
+DlgPasteCleanBox : "Limpar o Cadro",
+
+// Color Picker
+ColorAutomatic : "Automático",
+ColorMoreColors : "Máis Cores...",
+
+// Document Properties
+DocProps : "Propriedades do Documento",
+
+// Anchor Dialog
+DlgAnchorTitle : "Propriedades da Referencia",
+DlgAnchorName : "Nome da Referencia",
+DlgAnchorErrorName : "Por favor, escriba o nome da referencia",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Non está no diccionario",
+DlgSpellChangeTo : "Cambiar a",
+DlgSpellBtnIgnore : "Ignorar",
+DlgSpellBtnIgnoreAll : "Ignorar Todas",
+DlgSpellBtnReplace : "Substituir",
+DlgSpellBtnReplaceAll : "Substituir Todas",
+DlgSpellBtnUndo : "Desfacer",
+DlgSpellNoSuggestions : "- Sen candidatos -",
+DlgSpellProgress : "Corrección ortográfica en progreso...",
+DlgSpellNoMispell : "Corrección ortográfica rematada: Non se atoparon erros",
+DlgSpellNoChanges : "Corrección ortográfica rematada: Non se substituiu nengunha verba",
+DlgSpellOneChange : "Corrección ortográfica rematada: Unha verba substituida",
+DlgSpellManyChanges : "Corrección ortográfica rematada: %1 verbas substituidas",
+
+IeSpellDownload : "O corrector ortográfico non está instalado. ¿Quere descargalo agora?",
+
+// Button Dialog
+DlgButtonText : "Texto (Valor)",
+DlgButtonType : "Tipo",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Nome",
+DlgCheckboxValue : "Valor",
+DlgCheckboxSelected : "Seleccionado",
+
+// Form Dialog
+DlgFormName : "Nome",
+DlgFormAction : "Acción",
+DlgFormMethod : "Método",
+
+// Select Field Dialog
+DlgSelectName : "Nome",
+DlgSelectValue : "Valor",
+DlgSelectSize : "Tamaño",
+DlgSelectLines : "liñas",
+DlgSelectChkMulti : "Permitir múltiples seleccións",
+DlgSelectOpAvail : "Opcións Disponibles",
+DlgSelectOpText : "Texto",
+DlgSelectOpValue : "Valor",
+DlgSelectBtnAdd : "Engadir",
+DlgSelectBtnModify : "Modificar",
+DlgSelectBtnUp : "Subir",
+DlgSelectBtnDown : "Baixar",
+DlgSelectBtnSetValue : "Definir como valor por defecto",
+DlgSelectBtnDelete : "Borrar",
+
+// Textarea Dialog
+DlgTextareaName : "Nome",
+DlgTextareaCols : "Columnas",
+DlgTextareaRows : "Filas",
+
+// Text Field Dialog
+DlgTextName : "Nome",
+DlgTextValue : "Valor",
+DlgTextCharWidth : "Tamaño do Caracter",
+DlgTextMaxChars : "Máximo de Caracteres",
+DlgTextType : "Tipo",
+DlgTextTypeText : "Texto",
+DlgTextTypePass : "Chave",
+
+// Hidden Field Dialog
+DlgHiddenName : "Nome",
+DlgHiddenValue : "Valor",
+
+// Bulleted List Dialog
+BulletedListProp : "Propriedades das Marcas",
+NumberedListProp : "Propriedades da Lista de Numeración",
+DlgLstType : "Tipo",
+DlgLstTypeCircle : "Círculo",
+DlgLstTypeDisc : "Disco",
+DlgLstTypeSquare : "Cuadrado",
+DlgLstTypeNumbers : "Números (1, 2, 3)",
+DlgLstTypeLCase : "Letras Minúsculas (a, b, c)",
+DlgLstTypeUCase : "Letras Maiúsculas (A, B, C)",
+DlgLstTypeSRoman : "Números Romanos en minúscula (i, ii, iii)",
+DlgLstTypeLRoman : "Números Romanos en Maiúscula (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "Xeral",
+DlgDocBackTab : "Fondo",
+DlgDocColorsTab : "Cores e Marxes",
+DlgDocMetaTab : "Meta Data",
+
+DlgDocPageTitle : "Título da Páxina",
+DlgDocLangDir : "Orientación do Idioma",
+DlgDocLangDirLTR : "Esquerda a Dereita (LTR)",
+DlgDocLangDirRTL : "Dereita a Esquerda (RTL)",
+DlgDocLangCode : "Código de Idioma",
+DlgDocCharSet : "Codificación do Xogo de Caracteres",
+DlgDocCharSetOther : "Outra Codificación do Xogo de Caracteres",
+
+DlgDocDocType : "Encabezado do Tipo de Documento",
+DlgDocDocTypeOther : "Outro Encabezado do Tipo de Documento",
+DlgDocIncXHTML : "Incluir Declaracións XHTML",
+DlgDocBgColor : "Cor de Fondo",
+DlgDocBgImage : "URL da Imaxe de Fondo",
+DlgDocBgNoScroll : "Fondo Fixo",
+DlgDocCText : "Texto",
+DlgDocCLink : "Ligazóns",
+DlgDocCVisited : "Ligazón Visitada",
+DlgDocCActive : "Ligazón Activa",
+DlgDocMargins : "Marxes da Páxina",
+DlgDocMaTop : "Arriba",
+DlgDocMaLeft : "Esquerda",
+DlgDocMaRight : "Dereita",
+DlgDocMaBottom : "Abaixo",
+DlgDocMeIndex : "Palabras Chave de Indexación do Documento (separadas por comas)",
+DlgDocMeDescr : "Descripción do Documento",
+DlgDocMeAuthor : "Autor",
+DlgDocMeCopy : "Copyright",
+DlgDocPreview : "Vista Previa",
+
+// Templates Dialog
+Templates : "Plantillas",
+DlgTemplatesTitle : "Plantillas de Contido",
+DlgTemplatesSelMsg : "Por favor, seleccione a plantilla a abrir no editor
(o contido actual perderase):",
+DlgTemplatesLoading : "Cargando listado de plantillas. Por favor, espere...",
+DlgTemplatesNoTpl : "(Non hai plantillas definidas)",
+
+// About Dialog
+DlgAboutAboutTab : "Acerca de",
+DlgAboutBrowserInfoTab : "Información do Navegador",
+DlgAboutLicenseTab : "Licencia",
+DlgAboutVersion : "versión",
+DlgAboutLicense : "Licencia concedida baixo os termos da GNU Lesser General Public License",
+DlgAboutInfo : "Para máis información visitar:"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/he.js b/htdocs/includes/fckeditor/editor/lang/he.js
new file mode 100644
index 00000000000..fae887fc92b
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/he.js
@@ -0,0 +1,487 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: he.js
+ * Hebrew language file.
+ *
+ * File Authors:
+ * Tamir Mordo (tamir@tetitu.co.il)
+ * Ophir Radnitz (ophir@liqweed.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "rtl",
+
+ToolbarCollapse : "כיווץ סרגל הכלים",
+ToolbarExpand : "פתיחת סרגל הכלים",
+
+// Toolbar Items and Context Menu
+Save : "שמירה",
+NewPage : "דף חדש",
+Preview : "תצוגה מקדימה",
+Cut : "גזירה",
+Copy : "העתקה",
+Paste : "הדבקה",
+PasteText : "הדבקה כטקסט פשוט",
+PasteWord : "הדבקה מ-וורד",
+Print : "הדפסה",
+SelectAll : "בחירת הכל",
+RemoveFormat : "הסרת העיצוב",
+InsertLinkLbl : "קישור",
+InsertLink : "הוספת/עריכת קישור",
+RemoveLink : "הסרת הקישור",
+Anchor : "הוספת/עריכת נקודת עיגון",
+InsertImageLbl : "תמונה",
+InsertImage : "הוספת/עריכת תמונה",
+InsertFlashLbl : "פלאש",
+InsertFlash : "הוסף/ערוך פלאש",
+InsertTableLbl : "טבלה",
+InsertTable : "הוספת/עריכת טבלה",
+InsertLineLbl : "קו",
+InsertLine : "הוספת קו אופקי",
+InsertSpecialCharLbl: "תו מיוחד",
+InsertSpecialChar : "הוספת תו מיוחד",
+InsertSmileyLbl : "סמיילי",
+InsertSmiley : "הוספת סמיילי",
+About : "אודות FCKeditor",
+Bold : "מודגש",
+Italic : "נטוי",
+Underline : "קו תחתון",
+StrikeThrough : "כתיב מחוק",
+Subscript : "כתיב תחתון",
+Superscript : "כתיב עליון",
+LeftJustify : "יישור לשמאל",
+CenterJustify : "מרכוז",
+RightJustify : "יישור לימין",
+BlockJustify : "יישור לשוליים",
+DecreaseIndent : "הקטנת אינדנטציה",
+IncreaseIndent : "הגדלת אינדנטציה",
+Undo : "ביטול צעד אחרון",
+Redo : "חזרה על צעד אחרון",
+NumberedListLbl : "רשימה ממוספרת",
+NumberedList : "הוספת/הסרת רשימה ממוספרת",
+BulletedListLbl : "רשימת נקודות",
+BulletedList : "הוספת/הסרת רשימת נקודות",
+ShowTableBorders : "הצגת מסגרת הטבלה",
+ShowDetails : "הצגת פרטים",
+Style : "סגנון",
+FontFormat : "עיצוב",
+Font : "גופן",
+FontSize : "גודל",
+TextColor : "צבע טקסט",
+BGColor : "צבע רקע",
+Source : "מקור",
+Find : "חיפוש",
+Replace : "החלפה",
+SpellCheck : "בדיקת איות",
+UniversalKeyboard : "מקלדת אוניברסלית",
+PageBreakLbl : "שבירת דף",
+PageBreak : "הוסף שבירת דף",
+
+Form : "טופס",
+Checkbox : "תיבת סימון",
+RadioButton : "לחצן אפשרויות",
+TextField : "שדה טקסט",
+Textarea : "איזור טקסט",
+HiddenField : "שדה חבוי",
+Button : "כפתור",
+SelectionField : "שדה בחירה",
+ImageButton : "כפתור תמונה",
+
+FitWindow : "הגדל את גודל העורך",
+
+// Context Menu
+EditLink : "עריכת קישור",
+CellCM : "תא",
+RowCM : "שורה",
+ColumnCM : "עמודה",
+InsertRow : "הוספת שורה",
+DeleteRows : "מחיקת שורות",
+InsertColumn : "הוספת עמודה",
+DeleteColumns : "מחיקת עמודות",
+InsertCell : "הוספת תא",
+DeleteCells : "מחיקת תאים",
+MergeCells : "מיזוג תאים",
+SplitCell : "פיצול תאים",
+TableDelete : "מחק טבלה",
+CellProperties : "תכונות התא",
+TableProperties : "תכונות הטבלה",
+ImageProperties : "תכונות התמונה",
+FlashProperties : "מאפייני פלאש",
+
+AnchorProp : "מאפייני נקודת עיגון",
+ButtonProp : "מאפייני כפתור",
+CheckboxProp : "מאפייני תיבת סימון",
+HiddenFieldProp : "מאפיני שדה חבוי",
+RadioButtonProp : "מאפייני לחצן אפשרויות",
+ImageButtonProp : "מאפיני כפתור תמונה",
+TextFieldProp : "מאפייני שדה טקסט",
+SelectionFieldProp : "מאפייני שדה בחירה",
+TextareaProp : "מאפיני איזור טקסט",
+FormProp : "מאפיני טופס",
+
+FontFormats : "נורמלי;קוד;כתובת;כותרת;כותרת 2;כותרת 3;כותרת 4;כותרת 5;כותרת 6",
+
+// Alerts and Messages
+ProcessingXHTML : "מעבד XHTML, נא להמתין...",
+Done : "המשימה הושלמה",
+PasteWordConfirm : "נראה הטקסט שבכוונתך להדביק מקורו בקובץ וורד. האם ברצונך לנקות אותו טרם ההדבקה?",
+NotCompatiblePaste : "פעולה זו זמינה לדפדפן אינטרנט אקספלורר מגירסא 5.5 ומעלה. האם להמשיך בהדבקה ללא הניקוי?",
+UnknownToolbarItem : "פריט לא ידוע בסרגל הכלים \"%1\"",
+UnknownCommand : "שם פעולה לא ידוע \"%1\"",
+NotImplemented : "הפקודה לא מיושמת",
+UnknownToolbarSet : "ערכת סרגל הכלים \"%1\" לא קיימת",
+NoActiveX : "הגדרות אבטחה של הדפדפן עלולות לגביל את אפשרויות העריכה.יש לאפשר את האופציה \"הרץ פקדים פעילים ותוספות\". תוכל לחוות טעויות וחיווים של אפשרויות שחסרים.",
+BrowseServerBlocked : "לא ניתן לגשת לדפדפן משאבים.אנא וודא שחוסם חלונות הקופצים לא פעיל.",
+DialogBlocked : "לא היה ניתן לפתוח חלון דיאלוג. אנא וודא שחוסם חלונות קופצים לא פעיל.",
+
+// Dialogs
+DlgBtnOK : "אישור",
+DlgBtnCancel : "ביטול",
+DlgBtnClose : "סגירה",
+DlgBtnBrowseServer : "סייר השרת",
+DlgAdvancedTag : "אפשרויות מתקדמות",
+DlgOpOther : "<אחר>",
+DlgInfoTab : "מידע",
+DlgAlertUrl : "אנה הזן URL",
+
+// General Dialogs Labels
+DlgGenNotSet : "<לא נקבע>",
+DlgGenId : "זיהוי (Id)",
+DlgGenLangDir : "כיוון שפה",
+DlgGenLangDirLtr : "שמאל לימין (LTR)",
+DlgGenLangDirRtl : "ימין לשמאל (RTL)",
+DlgGenLangCode : "קוד שפה",
+DlgGenAccessKey : "מקש גישה",
+DlgGenName : "שם",
+DlgGenTabIndex : "מספר טאב",
+DlgGenLongDescr : "קישור לתיאור מפורט",
+DlgGenClass : "גיליונות עיצוב קבוצות",
+DlgGenTitle : "כותרת מוצעת",
+DlgGenContType : "Content Type מוצע",
+DlgGenLinkCharset : "קידוד המשאב המקושר",
+DlgGenStyle : "סגנון",
+
+// Image Dialog
+DlgImgTitle : "תכונות התמונה",
+DlgImgInfoTab : "מידע על התמונה",
+DlgImgBtnUpload : "שליחה לשרת",
+DlgImgURL : "כתובת (URL)",
+DlgImgUpload : "העלאה",
+DlgImgAlt : "טקסט חלופי",
+DlgImgWidth : "רוחב",
+DlgImgHeight : "גובה",
+DlgImgLockRatio : "נעילת היחס",
+DlgBtnResetSize : "איפוס הגודל",
+DlgImgBorder : "מסגרת",
+DlgImgHSpace : "מרווח אופקי",
+DlgImgVSpace : "מרווח אנכי",
+DlgImgAlign : "יישור",
+DlgImgAlignLeft : "לשמאל",
+DlgImgAlignAbsBottom: "לתחתית האבסולוטית",
+DlgImgAlignAbsMiddle: "מרכוז אבסולוטי",
+DlgImgAlignBaseline : "לקו התחתית",
+DlgImgAlignBottom : "לתחתית",
+DlgImgAlignMiddle : "לאמצע",
+DlgImgAlignRight : "לימין",
+DlgImgAlignTextTop : "לראש הטקסט",
+DlgImgAlignTop : "למעלה",
+DlgImgPreview : "תצוגה מקדימה",
+DlgImgAlertUrl : "נא להקליד את כתובת התמונה",
+DlgImgLinkTab : "קישור",
+
+// Flash Dialog
+DlgFlashTitle : "מאפיני פלאש",
+DlgFlashChkPlay : "נגן אוטומטי",
+DlgFlashChkLoop : "לולאה",
+DlgFlashChkMenu : "אפשר תפריט פלאש",
+DlgFlashScale : "גודל",
+DlgFlashScaleAll : "הצג הכל",
+DlgFlashScaleNoBorder : "ללא גבולות",
+DlgFlashScaleFit : "התאמה מושלמת",
+
+// Link Dialog
+DlgLnkWindowTitle : "קישור",
+DlgLnkInfoTab : "מידע על הקישור",
+DlgLnkTargetTab : "מטרה",
+
+DlgLnkType : "סוג קישור",
+DlgLnkTypeURL : "כתובת (URL)",
+DlgLnkTypeAnchor : "עוגן בעמוד זה",
+DlgLnkTypeEMail : "דוא''ל",
+DlgLnkProto : "פרוטוקול",
+DlgLnkProtoOther : "<אחר>",
+DlgLnkURL : "כתובת (URL)",
+DlgLnkAnchorSel : "בחירת עוגן",
+DlgLnkAnchorByName : "עפ''י שם העוגן",
+DlgLnkAnchorById : "עפ''י זיהוי (Id) הרכיב",
+DlgLnkNoAnchors : "<אין עוגנים זמינים בדף>",
+DlgLnkEMail : "כתובת הדוא''ל",
+DlgLnkEMailSubject : "נושא ההודעה",
+DlgLnkEMailBody : "גוף ההודעה",
+DlgLnkUpload : "העלאה",
+DlgLnkBtnUpload : "שליחה לשרת",
+
+DlgLnkTarget : "מטרה",
+DlgLnkTargetFrame : "<מסגרת>",
+DlgLnkTargetPopup : "<חלון קופץ>",
+DlgLnkTargetBlank : "חלון חדש (_blank)",
+DlgLnkTargetParent : "חלון האב (_parent)",
+DlgLnkTargetSelf : "באותו החלון (_self)",
+DlgLnkTargetTop : "חלון ראשי (_top)",
+DlgLnkTargetFrameName : "שם מסגרת היעד",
+DlgLnkPopWinName : "שם החלון הקופץ",
+DlgLnkPopWinFeat : "תכונות החלון הקופץ",
+DlgLnkPopResize : "בעל גודל ניתן לשינוי",
+DlgLnkPopLocation : "סרגל כתובת",
+DlgLnkPopMenu : "סרגל תפריט",
+DlgLnkPopScroll : "ניתן לגלילה",
+DlgLnkPopStatus : "סרגל חיווי",
+DlgLnkPopToolbar : "סרגל הכלים",
+DlgLnkPopFullScrn : "מסך מלא (IE)",
+DlgLnkPopDependent : "תלוי (Netscape)",
+DlgLnkPopWidth : "רוחב",
+DlgLnkPopHeight : "גובה",
+DlgLnkPopLeft : "מיקום צד שמאל",
+DlgLnkPopTop : "מיקום צד עליון",
+
+DlnLnkMsgNoUrl : "נא להקליד את כתובת הקישור (URL)",
+DlnLnkMsgNoEMail : "נא להקליד את כתובת הדוא''ל",
+DlnLnkMsgNoAnchor : "נא לבחור עוגן במסמך",
+
+// Color Dialog
+DlgColorTitle : "בחירת צבע",
+DlgColorBtnClear : "איפוס",
+DlgColorHighlight : "נוכחי",
+DlgColorSelected : "נבחר",
+
+// Smiley Dialog
+DlgSmileyTitle : "הוספת סמיילי",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "בחירת תו מיוחד",
+
+// Table Dialog
+DlgTableTitle : "תכונות טבלה",
+DlgTableRows : "שורות",
+DlgTableColumns : "עמודות",
+DlgTableBorder : "גודל מסגרת",
+DlgTableAlign : "יישור",
+DlgTableAlignNotSet : "<לא נקבע>",
+DlgTableAlignLeft : "שמאל",
+DlgTableAlignCenter : "מרכז",
+DlgTableAlignRight : "ימין",
+DlgTableWidth : "רוחב",
+DlgTableWidthPx : "פיקסלים",
+DlgTableWidthPc : "אחוז",
+DlgTableHeight : "גובה",
+DlgTableCellSpace : "מרווח תא",
+DlgTableCellPad : "ריפוד תא",
+DlgTableCaption : "כיתוב",
+DlgTableSummary : "סיכום",
+
+// Table Cell Dialog
+DlgCellTitle : "תכונות תא",
+DlgCellWidth : "רוחב",
+DlgCellWidthPx : "פיקסלים",
+DlgCellWidthPc : "אחוז",
+DlgCellHeight : "גובה",
+DlgCellWordWrap : "גלילת שורות",
+DlgCellWordWrapNotSet : "<לא נקבע>",
+DlgCellWordWrapYes : "כן",
+DlgCellWordWrapNo : "לא",
+DlgCellHorAlign : "יישור אופקי",
+DlgCellHorAlignNotSet : "<לא נקבע>",
+DlgCellHorAlignLeft : "שמאל",
+DlgCellHorAlignCenter : "מרכז",
+DlgCellHorAlignRight: "ימין",
+DlgCellVerAlign : "יישור אנכי",
+DlgCellVerAlignNotSet : "<לא נקבע>",
+DlgCellVerAlignTop : "למעלה",
+DlgCellVerAlignMiddle : "לאמצע",
+DlgCellVerAlignBottom : "לתחתית",
+DlgCellVerAlignBaseline : "קו תחתית",
+DlgCellRowSpan : "טווח שורות",
+DlgCellCollSpan : "טווח עמודות",
+DlgCellBackColor : "צבע רקע",
+DlgCellBorderColor : "צבע מסגרת",
+DlgCellBtnSelect : "בחירה...",
+
+// Find Dialog
+DlgFindTitle : "חיפוש",
+DlgFindFindBtn : "חיפוש",
+DlgFindNotFoundMsg : "הטקסט המבוקש לא נמצא.",
+
+// Replace Dialog
+DlgReplaceTitle : "החלפה",
+DlgReplaceFindLbl : "חיפוש מחרוזת:",
+DlgReplaceReplaceLbl : "החלפה במחרוזת:",
+DlgReplaceCaseChk : "התאמת סוג אותיות (Case)",
+DlgReplaceReplaceBtn : "החלפה",
+DlgReplaceReplAllBtn : "החלפה בכל העמוד",
+DlgReplaceWordChk : "התאמה למילה המלאה",
+
+// Paste Operations / Dialog
+PasteErrorPaste : "הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות הדבקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl+V).",
+PasteErrorCut : "הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות גזירה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl+X).",
+PasteErrorCopy : "הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות העתקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl+C).",
+
+PasteAsText : "הדבקה כטקסט פשוט",
+PasteFromWord : "הדבקה מ-וורד",
+
+DlgPasteMsg2 : "אנא הדבק בתוך הקופסה באמצעות (Ctrl+V) ולחץ על אישור.",
+DlgPasteIgnoreFont : "התעלם מהגדרות סוג פונט",
+DlgPasteRemoveStyles : "הסר הגדרות סגנון",
+DlgPasteCleanBox : "ניקוי קופסה",
+
+// Color Picker
+ColorAutomatic : "אוטומטי",
+ColorMoreColors : "צבעים נוספים...",
+
+// Document Properties
+DocProps : "מאפיני מסמך",
+
+// Anchor Dialog
+DlgAnchorTitle : "מאפיני נקודת עיגון",
+DlgAnchorName : "שם לנקודת עיגון",
+DlgAnchorErrorName : "אנא הזן שם לנקודת עיגון",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "לא נמצא במילון",
+DlgSpellChangeTo : "שנה ל",
+DlgSpellBtnIgnore : "התעלם",
+DlgSpellBtnIgnoreAll : "התעלם מהכל",
+DlgSpellBtnReplace : "החלף",
+DlgSpellBtnReplaceAll : "החלף הכל",
+DlgSpellBtnUndo : "החזר",
+DlgSpellNoSuggestions : "- אין הצעות -",
+DlgSpellProgress : "בדיקות איות בתהליך ....",
+DlgSpellNoMispell : "בדיקות איות הסתיימה: לא נמצאו שגיעות כתיב",
+DlgSpellNoChanges : "בדיקות איות הסתיימה: לא שונתה אף מילה",
+DlgSpellOneChange : "בדיקות איות הסתיימה: שונתה מילה אחת",
+DlgSpellManyChanges : "בדיקות איות הסתיימה: %1 מילים שונו",
+
+IeSpellDownload : "בודק האיות לא מותקן, האם אתה מעוניין להוריד?",
+
+// Button Dialog
+DlgButtonText : "טקסט (ערך)",
+DlgButtonType : "סוג",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "שם",
+DlgCheckboxValue : "ערך",
+DlgCheckboxSelected : "בחור",
+
+// Form Dialog
+DlgFormName : "שם",
+DlgFormAction : "שלח אל",
+DlgFormMethod : "סוג שליחה",
+
+// Select Field Dialog
+DlgSelectName : "שם",
+DlgSelectValue : "ערך",
+DlgSelectSize : "גודל",
+DlgSelectLines : "שורות",
+DlgSelectChkMulti : "אפשר בחירות מרובות",
+DlgSelectOpAvail : "אפשרויות זמינות",
+DlgSelectOpText : "טקסט",
+DlgSelectOpValue : "ערך",
+DlgSelectBtnAdd : "הוסף",
+DlgSelectBtnModify : "שנה",
+DlgSelectBtnUp : "למעלה",
+DlgSelectBtnDown : "למטה",
+DlgSelectBtnSetValue : "קבע כברירת מחדל",
+DlgSelectBtnDelete : "מחק",
+
+// Textarea Dialog
+DlgTextareaName : "שם",
+DlgTextareaCols : "עמודות",
+DlgTextareaRows : "שורות",
+
+// Text Field Dialog
+DlgTextName : "שם",
+DlgTextValue : "ערך",
+DlgTextCharWidth : "רוחב באותיות",
+DlgTextMaxChars : "מקסימות אותיות",
+DlgTextType : "סוג",
+DlgTextTypeText : "טקסט",
+DlgTextTypePass : "סיסמה",
+
+// Hidden Field Dialog
+DlgHiddenName : "שם",
+DlgHiddenValue : "ערך",
+
+// Bulleted List Dialog
+BulletedListProp : "מאפייני רשימה",
+NumberedListProp : "מאפייני רשימה ממוספרת",
+DlgLstType : "סוג",
+DlgLstTypeCircle : "עיגול",
+DlgLstTypeDisc : "דיסק",
+DlgLstTypeSquare : "מרובע",
+DlgLstTypeNumbers : "מספרים (1, 2, 3)",
+DlgLstTypeLCase : "אותיות קטנות (a, b, c)",
+DlgLstTypeUCase : "אותיות גדולות (A, B, C)",
+DlgLstTypeSRoman : "ספרות רומאיות קטנות (i, ii, iii)",
+DlgLstTypeLRoman : "ספרות רומאיות גדולות (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "כללי",
+DlgDocBackTab : "רקע",
+DlgDocColorsTab : "צבעים וגבולות",
+DlgDocMetaTab : "נתוני META",
+
+DlgDocPageTitle : "כותרת דף",
+DlgDocLangDir : "כיוון שפה",
+DlgDocLangDirLTR : "שמאל לימין (LTR)",
+DlgDocLangDirRTL : "ימין לשמאל (RTL)",
+DlgDocLangCode : "קוד שפה",
+DlgDocCharSet : "קידוד אותיות",
+DlgDocCharSetOther : "קידוד אותיות אחר",
+
+DlgDocDocType : "הגדרות סוג מסמך",
+DlgDocDocTypeOther : "הגדרות סוג מסמך אחרות",
+DlgDocIncXHTML : "כלול הגדרות XHTML",
+DlgDocBgColor : "צבע רקע",
+DlgDocBgImage : "URL לתמונת רקע",
+DlgDocBgNoScroll : "רגע ללא גלילה",
+DlgDocCText : "טקסט",
+DlgDocCLink : "קישור",
+DlgDocCVisited : "קישור שבוקר",
+DlgDocCActive : " קישור פעיל",
+DlgDocMargins : "גבולות דף",
+DlgDocMaTop : "למעלה",
+DlgDocMaLeft : "שמאלה",
+DlgDocMaRight : "ימינה",
+DlgDocMaBottom : "למטה",
+DlgDocMeIndex : "מפתח עניינים של המסמך )מופרד בפסיק(",
+DlgDocMeDescr : "תאור מסמך",
+DlgDocMeAuthor : "מחבר",
+DlgDocMeCopy : "זכויות יוצרים",
+DlgDocPreview : "תצוגה מקדימה",
+
+// Templates Dialog
+Templates : "תבניות",
+DlgTemplatesTitle : "תביות תוכן",
+DlgTemplatesSelMsg : "אנא בחר תבנית לפתיחה בעורך
התוכן המקורי ימחק:",
+DlgTemplatesLoading : "מעלה רשימת תבניות אנא המתן",
+DlgTemplatesNoTpl : "(לא הוגדרו תבניות)",
+
+// About Dialog
+DlgAboutAboutTab : "אודות",
+DlgAboutBrowserInfoTab : "גירסת דפדפן",
+DlgAboutLicenseTab : "רשיון",
+DlgAboutVersion : "גירסא",
+DlgAboutLicense : "ברשיון תחת תנאי GNU Lesser General Public License",
+DlgAboutInfo : "מידע נוסף ניתן למצוא כאן:"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/hi.js b/htdocs/includes/fckeditor/editor/lang/hi.js
new file mode 100644
index 00000000000..7f4c157fd6c
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/hi.js
@@ -0,0 +1,486 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: hi.js
+ * Hindi language file.
+ *
+ * File Authors:
+ * Utkarshraj Atmaram (utcursch@gmail.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "टूलबार सिमटायें",
+ToolbarExpand : "टूलबार का विस्तार करें",
+
+// Toolbar Items and Context Menu
+Save : "सेव",
+NewPage : "नया पेज",
+Preview : "प्रीव्यू",
+Cut : "कट",
+Copy : "कॉपी",
+Paste : "पेस्ट",
+PasteText : "पेस्ट (सादा टॅक्स्ट)",
+PasteWord : "पेस्ट (वर्ड से)",
+Print : "प्रिन्ट",
+SelectAll : "सब सॅलॅक्ट करें",
+RemoveFormat : "फ़ॉर्मैट हटायें",
+InsertLinkLbl : "लिंक",
+InsertLink : "लिंक इन्सर्ट/संपादन",
+RemoveLink : "लिंक हटायें",
+Anchor : "ऐंकर इन्सर्ट/संपादन",
+InsertImageLbl : "तस्वीर",
+InsertImage : "तस्वीर इन्सर्ट/संपादन",
+InsertFlashLbl : "फ़्लैश",
+InsertFlash : "फ़्लैश इन्सर्ट/संपादन",
+InsertTableLbl : "टेबल",
+InsertTable : "टेबल इन्सर्ट/संपादन",
+InsertLineLbl : "रेखा",
+InsertLine : "हॉरिज़ॉन्टल रेखा इन्सर्ट करें",
+InsertSpecialCharLbl: "विशेष करॅक्टर",
+InsertSpecialChar : "विशेष करॅक्टर इन्सर्ट करें",
+InsertSmileyLbl : "स्माइली",
+InsertSmiley : "स्माइली इन्सर्ट करें",
+About : "FCKeditor के बारे में",
+Bold : "बोल्ड",
+Italic : "इटैलिक",
+Underline : "रेखांकण",
+StrikeThrough : "स्ट्राइक थ्रू",
+Subscript : "अधोलेख",
+Superscript : "अभिलेख",
+LeftJustify : "बायीं तरफ",
+CenterJustify : "बीच में",
+RightJustify : "दायीं तरफ",
+BlockJustify : "ब्लॉक जस्टीफ़ाई",
+DecreaseIndent : "इन्डॅन्ट कम करें",
+IncreaseIndent : "इन्डॅन्ट बढ़ायें",
+Undo : "अन्डू",
+Redo : "रीडू",
+NumberedListLbl : "अंकीय सूची",
+NumberedList : "अंकीय सूची इन्सर्ट/संपादन",
+BulletedListLbl : "बुलॅट सूची",
+BulletedList : "बुलॅट सूची इन्सर्ट/संपादन",
+ShowTableBorders : "टेबल बॉर्डरयें दिखायें",
+ShowDetails : "ज्यादा दिखायें",
+Style : "स्टाइल",
+FontFormat : "फ़ॉर्मैट",
+Font : "फ़ॉन्ट",
+FontSize : "साइज़",
+TextColor : "टेक्स्ट रंग",
+BGColor : "बैक्ग्राउन्ड रंग",
+Source : "सोर्स",
+Find : "खोजें",
+Replace : "रीप्लेस",
+SpellCheck : "वर्तनी (स्पेलिंग) जाँच",
+UniversalKeyboard : "यूनीवर्सल कीबोर्ड",
+PageBreakLbl : "पेज ब्रेक",
+PageBreak : "पेज ब्रेक इन्सर्ट् करें",
+
+Form : "फ़ॉर्म",
+Checkbox : "चॅक बॉक्स",
+RadioButton : "रेडिओ बटन",
+TextField : "टेक्स्ट फ़ील्ड",
+Textarea : "टेक्स्ट एरिया",
+HiddenField : "गुप्त फ़ील्ड",
+Button : "बटन",
+SelectionField : "चुनाव फ़ील्ड",
+ImageButton : "तस्वीर बटन",
+
+FitWindow : "एडिटर साइज़ को चरम सीमा तक बढ़ायें",
+
+// Context Menu
+EditLink : "लिंक संपादन",
+CellCM : "खाना",
+RowCM : "पंक्ति",
+ColumnCM : "कालम",
+InsertRow : "पंक्ति इन्सर्ट करें",
+DeleteRows : "पंक्तियाँ डिलीट करें",
+InsertColumn : "कॉलम इन्सर्ट करें",
+DeleteColumns : "कॉलम डिलीट करें",
+InsertCell : "सॅल इन्सर्ट करें",
+DeleteCells : "सॅल डिलीट करें",
+MergeCells : "सॅल मिलायें",
+SplitCell : "सॅल अलग करें",
+TableDelete : "टेबल डिलीट करें",
+CellProperties : "सॅल प्रॉपर्टीज़",
+TableProperties : "टेबल प्रॉपर्टीज़",
+ImageProperties : "तस्वीर प्रॉपर्टीज़",
+FlashProperties : "फ़्लैश प्रॉपर्टीज़",
+
+AnchorProp : "ऐंकर प्रॉपर्टीज़",
+ButtonProp : "बटन प्रॉपर्टीज़",
+CheckboxProp : "चॅक बॉक्स प्रॉपर्टीज़",
+HiddenFieldProp : "गुप्त फ़ील्ड प्रॉपर्टीज़",
+RadioButtonProp : "रेडिओ बटन प्रॉपर्टीज़",
+ImageButtonProp : "तस्वीर बटन प्रॉपर्टीज़",
+TextFieldProp : "टेक्स्ट फ़ील्ड प्रॉपर्टीज़",
+SelectionFieldProp : "चुनाव फ़ील्ड प्रॉपर्टीज़",
+TextareaProp : "टेक्स्त एरिया प्रॉपर्टीज़",
+FormProp : "फ़ॉर्म प्रॉपर्टीज़",
+
+FontFormats : "साधारण;फ़ॉर्मैटॅड;पता;शीर्षक 1;शीर्षक 2;शीर्षक 3;शीर्षक 4;शीर्षक 5;शीर्षक 6;शीर्षक (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML : "XHTML प्रोसॅस हो रहा है। ज़रा ठहरें...",
+Done : "पूरा हुआ",
+PasteWordConfirm : "आप जो टेक्स्ट पेस्ट करना चाहते हैं, वह वर्ड से कॉपी किया हुआ लग रहा है। क्या पेस्ट करने से पहले आप इसे साफ़ करना चाहेंगे?",
+NotCompatiblePaste : "यह कमांड इन्टरनॅट एक्स्प्लोरर(Internet Explorer) 5.5 या उसके बाद के वर्ज़न के लिए ही उपलब्ध है। क्या आप बिना साफ़ किए पेस्ट करना चाहेंगे?",
+UnknownToolbarItem : "अनजान टूलबार आइटम \"%1\"",
+UnknownCommand : "अनजान कमान्ड \"%1\"",
+NotImplemented : "कमान्ड इम्प्लीमॅन्ट नहीं किया गया है",
+UnknownToolbarSet : "टूलबार सॅट \"%1\" उपलब्ध नहीं है",
+NoActiveX : "आपके ब्राउज़र् की सुरक्शा सेटिंग्स् एडिटर की कुछ् फ़ीचरों को सीमित कर् सकती हैं। क्रिपया \"Run ActiveX controls and plug-ins\" विकल्प को एनेबल करें. आपको एरर्स् और गायब फ़ीचर्स् का अनुभव हो सकता है।",
+BrowseServerBlocked : "रिसोर्सेज़ ब्राउज़र् नहीं खोला जा सका। क्रिपया सभी पॉप्-अप् ब्लॉकर्स् को डिसेबल करें।",
+DialogBlocked : "डायलग विन्डो नहीं खोला जा सका। क्रिपया सभी पॉप्-अप् ब्लॉकर्स् को डिसेबल करें।",
+
+// Dialogs
+DlgBtnOK : "ठीक है",
+DlgBtnCancel : "रद्द करें",
+DlgBtnClose : "बन्द करें",
+DlgBtnBrowseServer : "सर्वर ब्राउज़ करें",
+DlgAdvancedTag : "ऍड्वान्स्ड",
+DlgOpOther : "<अन्य>",
+DlgInfoTab : "सूचना",
+DlgAlertUrl : "URL इन्सर्ट करें",
+
+// General Dialogs Labels
+DlgGenNotSet : "<सॅट नहीं>",
+DlgGenId : "Id",
+DlgGenLangDir : "भाषा लिखने की दिशा",
+DlgGenLangDirLtr : "बायें से दायें (LTR)",
+DlgGenLangDirRtl : "दायें से बायें (RTL)",
+DlgGenLangCode : "भाषा कोड",
+DlgGenAccessKey : "ऍक्सॅस की",
+DlgGenName : "नाम",
+DlgGenTabIndex : "टैब इन्डॅक्स",
+DlgGenLongDescr : "अधिक विवरण के लिए URL",
+DlgGenClass : "स्टाइल-शीट क्लास",
+DlgGenTitle : "परामर्श शीर्शक",
+DlgGenContType : "परामर्श कन्टॅन्ट प्रकार",
+DlgGenLinkCharset : "लिंक रिसोर्स करॅक्टर सॅट",
+DlgGenStyle : "स्टाइल",
+
+// Image Dialog
+DlgImgTitle : "तस्वीर प्रॉपर्टीज़",
+DlgImgInfoTab : "तस्वीर की जानकारी",
+DlgImgBtnUpload : "इसे सर्वर को भेजें",
+DlgImgURL : "URL",
+DlgImgUpload : "अपलोड",
+DlgImgAlt : "वैकल्पिक टेक्स्ट",
+DlgImgWidth : "चौड़ाई",
+DlgImgHeight : "ऊँचाई",
+DlgImgLockRatio : "लॉक अनुपात",
+DlgBtnResetSize : "रीसॅट साइज़",
+DlgImgBorder : "बॉर्डर",
+DlgImgHSpace : "हॉरिज़ॉन्टल स्पेस",
+DlgImgVSpace : "वर्टिकल स्पेस",
+DlgImgAlign : "ऍलाइन",
+DlgImgAlignLeft : "दायें",
+DlgImgAlignAbsBottom: "Abs नीचे",
+DlgImgAlignAbsMiddle: "Abs ऊपर",
+DlgImgAlignBaseline : "मूल रेखा",
+DlgImgAlignBottom : "नीचे",
+DlgImgAlignMiddle : "मध्य",
+DlgImgAlignRight : "दायें",
+DlgImgAlignTextTop : "टेक्स्ट ऊपर",
+DlgImgAlignTop : "ऊपर",
+DlgImgPreview : "प्रीव्यू",
+DlgImgAlertUrl : "तस्वीर का URL टाइप करें ",
+DlgImgLinkTab : "लिंक",
+
+// Flash Dialog
+DlgFlashTitle : "फ़्लैश प्रॉपर्टीज़",
+DlgFlashChkPlay : "ऑटो प्ले",
+DlgFlashChkLoop : "लूप",
+DlgFlashChkMenu : "फ़्लैश मॅन्यू का प्रयोग करें",
+DlgFlashScale : "स्केल",
+DlgFlashScaleAll : "सभी दिखायें",
+DlgFlashScaleNoBorder : "कोई बॉर्डर नहीं",
+DlgFlashScaleFit : "बिल्कुल फ़िट",
+
+// Link Dialog
+DlgLnkWindowTitle : "लिंक",
+DlgLnkInfoTab : "लिंक ",
+DlgLnkTargetTab : "टार्गेट",
+
+DlgLnkType : "लिंक प्रकार",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "इस पेज का ऐंकर",
+DlgLnkTypeEMail : "ई-मेल",
+DlgLnkProto : "प्रोटोकॉल",
+DlgLnkProtoOther : "<अन्य>",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "ऐंकर चुनें",
+DlgLnkAnchorByName : "ऐंकर नाम से",
+DlgLnkAnchorById : "ऍलीमॅन्ट Id से",
+DlgLnkNoAnchors : "<डॉक्यूमॅन्ट में ऐंकर्स की संख्या>",
+DlgLnkEMail : "ई-मेल पता",
+DlgLnkEMailSubject : "संदेश विषय",
+DlgLnkEMailBody : "संदेश",
+DlgLnkUpload : "अपलोड",
+DlgLnkBtnUpload : "इसे सर्वर को भेजें",
+
+DlgLnkTarget : "टार्गेट",
+DlgLnkTargetFrame : "<फ़्रेम>",
+DlgLnkTargetPopup : "<पॉप-अप विन्डो>",
+DlgLnkTargetBlank : "नया विन्डो (_blank)",
+DlgLnkTargetParent : "मूल विन्डो (_parent)",
+DlgLnkTargetSelf : "इसी विन्डो (_self)",
+DlgLnkTargetTop : "शीर्ष विन्डो (_top)",
+DlgLnkTargetFrameName : "टार्गेट फ़्रेम का नाम",
+DlgLnkPopWinName : "पॉप-अप विन्डो का नाम",
+DlgLnkPopWinFeat : "पॉप-अप विन्डो फ़ीचर्स",
+DlgLnkPopResize : "साइज़ बदला जा सकता है",
+DlgLnkPopLocation : "लोकेशन बार",
+DlgLnkPopMenu : "मॅन्यू बार",
+DlgLnkPopScroll : "स्क्रॉल बार",
+DlgLnkPopStatus : "स्टेटस बार",
+DlgLnkPopToolbar : "टूल बार",
+DlgLnkPopFullScrn : "फ़ुल स्क्रीन (IE)",
+DlgLnkPopDependent : "डिपेन्डॅन्ट (Netscape)",
+DlgLnkPopWidth : "चौड़ाई",
+DlgLnkPopHeight : "ऊँचाई",
+DlgLnkPopLeft : "बायीं तरफ",
+DlgLnkPopTop : "दायीं तरफ",
+
+DlnLnkMsgNoUrl : "लिंक URL टाइप करें",
+DlnLnkMsgNoEMail : "ई-मेल पता टाइप करें",
+DlnLnkMsgNoAnchor : "ऐंकर चुनें",
+
+// Color Dialog
+DlgColorTitle : "रंग चुनें",
+DlgColorBtnClear : "साफ़ करें",
+DlgColorHighlight : "हाइलाइट",
+DlgColorSelected : "सॅलॅक्टॅड",
+
+// Smiley Dialog
+DlgSmileyTitle : "स्माइली इन्सर्ट करें",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "विशेष करॅक्टर चुनें",
+
+// Table Dialog
+DlgTableTitle : "टेबल प्रॉपर्टीज़",
+DlgTableRows : "पंक्तियाँ",
+DlgTableColumns : "कॉलम",
+DlgTableBorder : "बॉर्डर साइज़",
+DlgTableAlign : "ऍलाइन्मॅन्ट",
+DlgTableAlignNotSet : "<सॅट नहीं>",
+DlgTableAlignLeft : "दायें",
+DlgTableAlignCenter : "बीच में",
+DlgTableAlignRight : "बायें",
+DlgTableWidth : "चौड़ाई",
+DlgTableWidthPx : "पिक्सॅल",
+DlgTableWidthPc : "प्रतिशत",
+DlgTableHeight : "ऊँचाई",
+DlgTableCellSpace : "सॅल अंतर",
+DlgTableCellPad : "सॅल पैडिंग",
+DlgTableCaption : "शीर्षक",
+DlgTableSummary : "सारांश",
+
+// Table Cell Dialog
+DlgCellTitle : "सॅल प्रॉपर्टीज़",
+DlgCellWidth : "चौड़ाई",
+DlgCellWidthPx : "पिक्सॅल",
+DlgCellWidthPc : "प्रतिशत",
+DlgCellHeight : "ऊँचाई",
+DlgCellWordWrap : "वर्ड रैप",
+DlgCellWordWrapNotSet : "<सॅट नहीं>",
+DlgCellWordWrapYes : "हाँ",
+DlgCellWordWrapNo : "नहीं",
+DlgCellHorAlign : "हॉरिज़ॉन्टल ऍलाइन्मॅन्ट",
+DlgCellHorAlignNotSet : "<सॅट नहीं>",
+DlgCellHorAlignLeft : "दायें",
+DlgCellHorAlignCenter : "बीच में",
+DlgCellHorAlignRight: "बायें",
+DlgCellVerAlign : "वर्टिकल ऍलाइन्मॅन्ट",
+DlgCellVerAlignNotSet : "<सॅट नहीं>",
+DlgCellVerAlignTop : "ऊपर",
+DlgCellVerAlignMiddle : "मध्य",
+DlgCellVerAlignBottom : "नीचे",
+DlgCellVerAlignBaseline : "मूलरेखा",
+DlgCellRowSpan : "पंक्ति स्पैन",
+DlgCellCollSpan : "कॉलम स्पैन",
+DlgCellBackColor : "बैक्ग्राउन्ड रंग",
+DlgCellBorderColor : "बॉर्डर का रंग",
+DlgCellBtnSelect : "चुनें...",
+
+// Find Dialog
+DlgFindTitle : "खोजें",
+DlgFindFindBtn : "खोजें",
+DlgFindNotFoundMsg : "आपके द्वारा दिया गया टेक्स्ट नहीं मिला",
+
+// Replace Dialog
+DlgReplaceTitle : "रिप्लेस",
+DlgReplaceFindLbl : "यह खोजें:",
+DlgReplaceReplaceLbl : "इससे रिप्लेस करें:",
+DlgReplaceCaseChk : "केस मिलायें",
+DlgReplaceReplaceBtn : "रिप्लेस",
+DlgReplaceReplAllBtn : "सभी रिप्लेस करें",
+DlgReplaceWordChk : "पूरा शब्द मिलायें",
+
+// Paste Operations / Dialog
+PasteErrorPaste : "आपके ब्राउज़र की सुरक्षा सॅटिन्ग्स ने पेस्ट करने की अनुमति नहीं प्रदान की है। (Ctrl+V) का प्रयोग करें।",
+PasteErrorCut : "आपके ब्राउज़र की सुरक्षा सॅटिन्ग्स ने कट करने की अनुमति नहीं प्रदान की है। (Ctrl+X) का प्रयोग करें।",
+PasteErrorCopy : "आपके ब्राआउज़र की सुरक्षा सॅटिन्ग्स ने कॉपी करने की अनुमति नहीं प्रदान की है। (Ctrl+C) का प्रयोग करें।",
+
+PasteAsText : "पेस्ट (सादा टॅक्स्ट)",
+PasteFromWord : "पेस्ट (वर्ड से)",
+
+DlgPasteMsg2 : "Ctrl+V का प्रयोग करके पेस्ट करें और ठीक है करें.",
+DlgPasteIgnoreFont : "फ़ॉन्ट परिभाषा निकालें",
+DlgPasteRemoveStyles : "स्टाइल परिभाषा निकालें",
+DlgPasteCleanBox : "बॉक्स साफ़ करें",
+
+// Color Picker
+ColorAutomatic : "ऑटोमैटिक",
+ColorMoreColors : "और रंग...",
+
+// Document Properties
+DocProps : "डॉक्यूमॅन्ट प्रॉपर्टीज़",
+
+// Anchor Dialog
+DlgAnchorTitle : "ऐंकर प्रॉपर्टीज़",
+DlgAnchorName : "ऐंकर का नाम",
+DlgAnchorErrorName : "ऐंकर का नाम टाइप करें",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "शब्दकोश में नहीं",
+DlgSpellChangeTo : "इसमें बदलें",
+DlgSpellBtnIgnore : "इग्नोर",
+DlgSpellBtnIgnoreAll : "सभी इग्नोर करें",
+DlgSpellBtnReplace : "रिप्लेस",
+DlgSpellBtnReplaceAll : "सभी रिप्लेस करें",
+DlgSpellBtnUndo : "अन्डू",
+DlgSpellNoSuggestions : "- कोई सुझाव नहीं -",
+DlgSpellProgress : "वर्तनी की जाँच (स्पॅल-चॅक) जारी है...",
+DlgSpellNoMispell : "वर्तनी की जाँच : कोई गलत वर्तनी (स्पॅलिंग) नहीं पाई गई",
+DlgSpellNoChanges : "वर्तनी की जाँच :कोई शब्द नहीं बदला गया",
+DlgSpellOneChange : "वर्तनी की जाँच : एक शब्द बदला गया",
+DlgSpellManyChanges : "वर्तनी की जाँच : %1 शब्द बदले गये",
+
+IeSpellDownload : "स्पॅल-चॅकर इन्स्टाल नहीं किया गया है। क्या आप इसे डाउनलोड करना चाहेंगे?",
+
+// Button Dialog
+DlgButtonText : "टेक्स्ट (वैल्यू)",
+DlgButtonType : "प्रकार",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "नाम",
+DlgCheckboxValue : "वैल्यू",
+DlgCheckboxSelected : "सॅलॅक्टॅड",
+
+// Form Dialog
+DlgFormName : "नाम",
+DlgFormAction : "ऍक्शन",
+DlgFormMethod : "तरीका",
+
+// Select Field Dialog
+DlgSelectName : "नाम",
+DlgSelectValue : "वैल्यू",
+DlgSelectSize : "साइज़",
+DlgSelectLines : "पंक्तियाँ",
+DlgSelectChkMulti : "एक से ज्यादा विकल्प चुनने दें",
+DlgSelectOpAvail : "उपलब्ध विकल्प",
+DlgSelectOpText : "टेक्स्ट",
+DlgSelectOpValue : "वैल्यू",
+DlgSelectBtnAdd : "जोड़ें",
+DlgSelectBtnModify : "बदलें",
+DlgSelectBtnUp : "ऊपर",
+DlgSelectBtnDown : "नीचे",
+DlgSelectBtnSetValue : "चुनी गई वैल्यू सॅट करें",
+DlgSelectBtnDelete : "डिलीट",
+
+// Textarea Dialog
+DlgTextareaName : "नाम",
+DlgTextareaCols : "कॉलम",
+DlgTextareaRows : "पंक्तियां",
+
+// Text Field Dialog
+DlgTextName : "नाम",
+DlgTextValue : "वैल्यू",
+DlgTextCharWidth : "करॅक्टर की चौढ़ाई",
+DlgTextMaxChars : "अधिकतम करॅक्टर",
+DlgTextType : "टाइप",
+DlgTextTypeText : "टेक्स्ट",
+DlgTextTypePass : "पास्वर्ड",
+
+// Hidden Field Dialog
+DlgHiddenName : "नाम",
+DlgHiddenValue : "वैल्यू",
+
+// Bulleted List Dialog
+BulletedListProp : "बुलॅट सूची प्रॉपर्टीज़",
+NumberedListProp : "अंकीय सूची प्रॉपर्टीज़",
+DlgLstType : "प्रकार",
+DlgLstTypeCircle : "गोल",
+DlgLstTypeDisc : "डिस्क",
+DlgLstTypeSquare : "चौकॊण",
+DlgLstTypeNumbers : "अंक (1, 2, 3)",
+DlgLstTypeLCase : "छोटे अक्षर (a, b, c)",
+DlgLstTypeUCase : "बड़े अक्षर (A, B, C)",
+DlgLstTypeSRoman : "छोटे रोमन अंक (i, ii, iii)",
+DlgLstTypeLRoman : "बड़े रोमन अंक (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "आम",
+DlgDocBackTab : "बैक्ग्राउन्ड",
+DlgDocColorsTab : "रंग और मार्जिन",
+DlgDocMetaTab : "मॅटाडेटा",
+
+DlgDocPageTitle : "पेज शीर्षक",
+DlgDocLangDir : "भाषा लिखने की दिशा",
+DlgDocLangDirLTR : "बायें से दायें (LTR)",
+DlgDocLangDirRTL : "दायें से बायें (RTL)",
+DlgDocLangCode : "भाषा कोड",
+DlgDocCharSet : "करेक्टर सॅट ऍन्कोडिंग",
+DlgDocCharSetOther : "अन्य करेक्टर सॅट ऍन्कोडिंग",
+
+DlgDocDocType : "डॉक्यूमॅन्ट प्रकार शीर्षक",
+DlgDocDocTypeOther : "अन्य डॉक्यूमॅन्ट प्रकार शीर्षक",
+DlgDocIncXHTML : "XHTML सूचना सम्मिलित करें",
+DlgDocBgColor : "बैक्ग्राउन्ड रंग",
+DlgDocBgImage : "बैक्ग्राउन्ड तस्वीर URL",
+DlgDocBgNoScroll : "स्क्रॉल न करने वाला बैक्ग्राउन्ड",
+DlgDocCText : "टेक्स्ट",
+DlgDocCLink : "लिंक",
+DlgDocCVisited : "विज़िट किया गया लिंक",
+DlgDocCActive : "सक्रिय लिंक",
+DlgDocMargins : "पेज मार्जिन",
+DlgDocMaTop : "ऊपर",
+DlgDocMaLeft : "बायें",
+DlgDocMaRight : "दायें",
+DlgDocMaBottom : "नीचे",
+DlgDocMeIndex : "डॉक्युमॅन्ट इन्डेक्स संकेतशब्द (अल्पविराम से अलग करें)",
+DlgDocMeDescr : "डॉक्यूमॅन्ट करॅक्टरन",
+DlgDocMeAuthor : "लेखक",
+DlgDocMeCopy : "कॉपीराइट",
+DlgDocPreview : "प्रीव्यू",
+
+// Templates Dialog
+Templates : "टॅम्प्लेट",
+DlgTemplatesTitle : "कन्टेन्ट टॅम्प्लेट",
+DlgTemplatesSelMsg : "ऍडिटर में ओपन करने हेतु टॅम्प्लेट चुनें(वर्तमान कन्टॅन्ट सेव नहीं होंगे):",
+DlgTemplatesLoading : "टॅम्प्लेट सूची लोड की जा रही है। ज़रा ठहरें...",
+DlgTemplatesNoTpl : "(कोई टॅम्प्लेट डिफ़ाइन नहीं किया गया है)",
+
+// About Dialog
+DlgAboutAboutTab : "FCKEditor के बारे में",
+DlgAboutBrowserInfoTab : "ब्राउज़र के बारे में",
+DlgAboutLicenseTab : "लाइसैन्स",
+DlgAboutVersion : "वर्ज़न",
+DlgAboutLicense : "लाइसेंस :GNU LGPL",
+DlgAboutInfo : "अधिक जानकारी के लिये यहाँ जायें:"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/hr.js b/htdocs/includes/fckeditor/editor/lang/hr.js
new file mode 100644
index 00000000000..8e147214dc7
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/hr.js
@@ -0,0 +1,486 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: hr.js
+ * Croatian language file.
+ *
+ * File Authors:
+ * Alex Varga (avarga@globaldizajn.hr)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Smanji trake s alatima",
+ToolbarExpand : "Proširi trake s alatima",
+
+// Toolbar Items and Context Menu
+Save : "Snimi",
+NewPage : "Nova stranica",
+Preview : "Pregledaj",
+Cut : "Izreži",
+Copy : "Kopiraj",
+Paste : "Zalijepi",
+PasteText : "Zalijepi kao čisti tekst",
+PasteWord : "Zalijepi iz Worda",
+Print : "Ispiši",
+SelectAll : "Odaberi sve",
+RemoveFormat : "Ukloni formatiranje",
+InsertLinkLbl : "Link",
+InsertLink : "Ubaci/promijeni link",
+RemoveLink : "Ukloni link",
+Anchor : "Ubaci/promijeni sidro",
+InsertImageLbl : "Slika",
+InsertImage : "Ubaci/promijeni sliku",
+InsertFlashLbl : "Flash",
+InsertFlash : "Ubaci/promijeni Flash",
+InsertTableLbl : "Tablica",
+InsertTable : "Ubaci/promijeni tablicu",
+InsertLineLbl : "Linija",
+InsertLine : "Ubaci vodoravnu liniju",
+InsertSpecialCharLbl: "Posebni karakteri",
+InsertSpecialChar : "Ubaci posebne znakove",
+InsertSmileyLbl : "Smješko",
+InsertSmiley : "Ubaci smješka",
+About : "O FCKeditoru",
+Bold : "Podebljaj",
+Italic : "Ukosi",
+Underline : "Potcrtano",
+StrikeThrough : "Precrtano",
+Subscript : "Subscript",
+Superscript : "Superscript",
+LeftJustify : "Lijevo poravnanje",
+CenterJustify : "Središnje poravnanje",
+RightJustify : "Desno poravnanje",
+BlockJustify : "Blok poravnanje",
+DecreaseIndent : "Pomakni ulijevo",
+IncreaseIndent : "Pomakni udesno",
+Undo : "Poništi",
+Redo : "Ponovi",
+NumberedListLbl : "Brojčana lista",
+NumberedList : "Ubaci/ukloni brojčanu listu",
+BulletedListLbl : "Obična lista",
+BulletedList : "Ubaci/ukloni običnu listu",
+ShowTableBorders : "Prikaži okvir tablice",
+ShowDetails : "Prikaži detalje",
+Style : "Stil",
+FontFormat : "Format",
+Font : "Font",
+FontSize : "Veličina",
+TextColor : "Boja teksta",
+BGColor : "Boja pozadine",
+Source : "Kôd",
+Find : "Pronađi",
+Replace : "Zamijeni",
+SpellCheck : "Provjeri pravopis",
+UniversalKeyboard : "Univerzalna tipkovnica",
+PageBreakLbl : "Prijelom stranice",
+PageBreak : "Ubaci prijelom stranice",
+
+Form : "Form",
+Checkbox : "Checkbox",
+RadioButton : "Radio Button",
+TextField : "Text Field",
+Textarea : "Textarea",
+HiddenField : "Hidden Field",
+Button : "Button",
+SelectionField : "Selection Field",
+ImageButton : "Image Button",
+
+FitWindow : "Maximize the editor size", //MISSING
+
+// Context Menu
+EditLink : "Promijeni link",
+CellCM : "Cell", //MISSING
+RowCM : "Row", //MISSING
+ColumnCM : "Column", //MISSING
+InsertRow : "Ubaci red",
+DeleteRows : "Izbriši redove",
+InsertColumn : "Ubaci kolonu",
+DeleteColumns : "Izbriši kolone",
+InsertCell : "Ubaci ćelije",
+DeleteCells : "Izbriši ćelije",
+MergeCells : "Spoji ćelije",
+SplitCell : "Razdvoji ćelije",
+TableDelete : "Izbriši tablicu",
+CellProperties : "Svojstva ćelije",
+TableProperties : "Svojstva tablice",
+ImageProperties : "Svojstva slike",
+FlashProperties : "Flash svojstva",
+
+AnchorProp : "Svojstva sidra",
+ButtonProp : "Image Button svojstva",
+CheckboxProp : "Checkbox svojstva",
+HiddenFieldProp : "Hidden Field svojstva",
+RadioButtonProp : "Radio Button svojstva",
+ImageButtonProp : "Image Button svojstva",
+TextFieldProp : "Text Field svojstva",
+SelectionFieldProp : "Selection svojstva",
+TextareaProp : "Textarea svojstva",
+FormProp : "Form svojstva",
+
+FontFormats : "Normal;Formatirano;Adresa;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",
+
+// Alerts and Messages
+ProcessingXHTML : "Obrađujem XHTML. Molimo pričekajte...",
+Done : "Završio",
+PasteWordConfirm : "Tekst koji želite zalijepiti čini se da je kopiran iz Worda. Želite li prije očistiti tekst?",
+NotCompatiblePaste : "Ova naredba je dostupna samo u Internet Exploreru 5.5 ili novijem. Želite li nastaviti bez čišćenja?",
+UnknownToolbarItem : "Nepoznati član trake s alatima \"%1\"",
+UnknownCommand : "Nepoznata naredba \"%1\"",
+NotImplemented : "Naredba nije implementirana",
+UnknownToolbarSet : "Traka s alatima \"%1\" ne postoji",
+NoActiveX : "Vaše postavke pretraživača mogle bi ograničiti neke od mogućnosti editora. Morate uključiti opciju \"Run ActiveX controls and plug-ins\" u postavkama. Ukoliko to ne učinite, moguće su razliite greške tijekom rada.",
+BrowseServerBlocked : "Pretraivač nije moguće otvoriti. Provjerite da li je uključeno blokiranje pop-up prozora.",
+DialogBlocked : "Nije moguće otvoriti novi prozor. Provjerite da li je uključeno blokiranje pop-up prozora.",
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Poništi",
+DlgBtnClose : "Zatvori",
+DlgBtnBrowseServer : "Pretraži server",
+DlgAdvancedTag : "Napredno",
+DlgOpOther : "",
+DlgInfoTab : "Info",
+DlgAlertUrl : "Molimo unesite URL",
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Smjer jezika",
+DlgGenLangDirLtr : "S lijeva na desno (LTR)",
+DlgGenLangDirRtl : "S desna na lijevo (RTL)",
+DlgGenLangCode : "Kôd jezika",
+DlgGenAccessKey : "Pristupna tipka",
+DlgGenName : "Naziv",
+DlgGenTabIndex : "Tab Indeks",
+DlgGenLongDescr : "Dugački opis URL",
+DlgGenClass : "Stylesheet klase",
+DlgGenTitle : "Advisory naslov",
+DlgGenContType : "Advisory vrsta sadržaja",
+DlgGenLinkCharset : "Kodna stranica povezanih resursa",
+DlgGenStyle : "Stil",
+
+// Image Dialog
+DlgImgTitle : "Svojstva slika",
+DlgImgInfoTab : "Info slike",
+DlgImgBtnUpload : "Pošalji na server",
+DlgImgURL : "URL",
+DlgImgUpload : "Pošalji",
+DlgImgAlt : "Alternativni tekst",
+DlgImgWidth : "Širina",
+DlgImgHeight : "Visina",
+DlgImgLockRatio : "Zaključaj odnos",
+DlgBtnResetSize : "Obriši veličinu",
+DlgImgBorder : "Okvir",
+DlgImgHSpace : "HSpace",
+DlgImgVSpace : "VSpace",
+DlgImgAlign : "Poravnaj",
+DlgImgAlignLeft : "Lijevo",
+DlgImgAlignAbsBottom: "Abs dolje",
+DlgImgAlignAbsMiddle: "Abs sredina",
+DlgImgAlignBaseline : "Bazno",
+DlgImgAlignBottom : "Dolje",
+DlgImgAlignMiddle : "Sredina",
+DlgImgAlignRight : "Desno",
+DlgImgAlignTextTop : "Vrh teksta",
+DlgImgAlignTop : "Vrh",
+DlgImgPreview : "Pregledaj",
+DlgImgAlertUrl : "Unesite URL slike",
+DlgImgLinkTab : "Link",
+
+// Flash Dialog
+DlgFlashTitle : "Flash svojstva",
+DlgFlashChkPlay : "Auto Play",
+DlgFlashChkLoop : "Ponavljaj",
+DlgFlashChkMenu : "Omogući Flash izbornik",
+DlgFlashScale : "Omjer",
+DlgFlashScaleAll : "Prikaži sve",
+DlgFlashScaleNoBorder : "Bez okvira",
+DlgFlashScaleFit : "Točna veličina",
+
+// Link Dialog
+DlgLnkWindowTitle : "Link",
+DlgLnkInfoTab : "Link Info",
+DlgLnkTargetTab : "Meta",
+
+DlgLnkType : "Link vrsta",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Sidro na ovoj stranici",
+DlgLnkTypeEMail : "E-Mail",
+DlgLnkProto : "Protokol",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Odaberi sidro",
+DlgLnkAnchorByName : "Po nazivu sidra",
+DlgLnkAnchorById : "Po Id elementa",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "E-Mail adresa",
+DlgLnkEMailSubject : "Naslov",
+DlgLnkEMailBody : "Sadržaj poruke",
+DlgLnkUpload : "Pošalji",
+DlgLnkBtnUpload : "Pošalji na server",
+
+DlgLnkTarget : "Meta",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "Novi prozor (_blank)",
+DlgLnkTargetParent : "Roditeljski prozor (_parent)",
+DlgLnkTargetSelf : "Isti prozor (_self)",
+DlgLnkTargetTop : "Vršni prozor (_top)",
+DlgLnkTargetFrameName : "Ime ciljnog okvira",
+DlgLnkPopWinName : "Naziv popup prozora",
+DlgLnkPopWinFeat : "Mogućnosti popup prozora",
+DlgLnkPopResize : "Promjenljive veličine",
+DlgLnkPopLocation : "Traka za lokaciju",
+DlgLnkPopMenu : "Izborna traka",
+DlgLnkPopScroll : "Scroll traka",
+DlgLnkPopStatus : "Statusna traka",
+DlgLnkPopToolbar : "Traka s alatima",
+DlgLnkPopFullScrn : "Cijeli ekran (IE)",
+DlgLnkPopDependent : "Ovisno (Netscape)",
+DlgLnkPopWidth : "Širina",
+DlgLnkPopHeight : "Visina",
+DlgLnkPopLeft : "Lijeva pozicija",
+DlgLnkPopTop : "Gornja pozicija",
+
+DlnLnkMsgNoUrl : "Molimo upišite URL link",
+DlnLnkMsgNoEMail : "Molimo upišite e-mail adresu",
+DlnLnkMsgNoAnchor : "Molimo odaberite sidro",
+
+// Color Dialog
+DlgColorTitle : "Odaberite boju",
+DlgColorBtnClear : "Obriši",
+DlgColorHighlight : "Osvijetli",
+DlgColorSelected : "Odaberi",
+
+// Smiley Dialog
+DlgSmileyTitle : "Ubaci smješka",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Odaberite posebni karakter",
+
+// Table Dialog
+DlgTableTitle : "Svojstva tablice",
+DlgTableRows : "Redova",
+DlgTableColumns : "Kolona",
+DlgTableBorder : "Veličina okvira",
+DlgTableAlign : "Poravnanje",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Lijevo",
+DlgTableAlignCenter : "Središnje",
+DlgTableAlignRight : "Desno",
+DlgTableWidth : "Širina",
+DlgTableWidthPx : "piksela",
+DlgTableWidthPc : "postotaka",
+DlgTableHeight : "Visina",
+DlgTableCellSpace : "Prostornost ćelija",
+DlgTableCellPad : "Razmak ćelija",
+DlgTableCaption : "Naslov",
+DlgTableSummary : "Sažetak",
+
+// Table Cell Dialog
+DlgCellTitle : "Svojstva ćelije",
+DlgCellWidth : "Širina",
+DlgCellWidthPx : "piksela",
+DlgCellWidthPc : "postotaka",
+DlgCellHeight : "Visina",
+DlgCellWordWrap : "Word Wrap",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Da",
+DlgCellWordWrapNo : "Ne",
+DlgCellHorAlign : "Vodoravno poravnanje",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Lijevo",
+DlgCellHorAlignCenter : "Središnje",
+DlgCellHorAlignRight: "Desno",
+DlgCellVerAlign : "Okomito poravnanje",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Gornje",
+DlgCellVerAlignMiddle : "Srednišnje",
+DlgCellVerAlignBottom : "Donje",
+DlgCellVerAlignBaseline : "Bazno",
+DlgCellRowSpan : "Spajanje redova",
+DlgCellCollSpan : "Spajanje kolona",
+DlgCellBackColor : "Boja pozadine",
+DlgCellBorderColor : "Boja okvira",
+DlgCellBtnSelect : "Odaberi...",
+
+// Find Dialog
+DlgFindTitle : "Pronađi",
+DlgFindFindBtn : "Pronađi",
+DlgFindNotFoundMsg : "Traženi tekst nije pronađen.",
+
+// Replace Dialog
+DlgReplaceTitle : "Zamijeni",
+DlgReplaceFindLbl : "Pronađi:",
+DlgReplaceReplaceLbl : "Zamijeni s:",
+DlgReplaceCaseChk : "Usporedi mala/velika slova",
+DlgReplaceReplaceBtn : "Zamijeni",
+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).",
+
+PasteAsText : "Zalijepi kao čisti tekst",
+PasteFromWord : "Zalijepi iz Worda",
+
+DlgPasteMsg2 : "Molimo zaljepite unutar doljnjeg okvira koristeći tipkovnicu (Ctrl+V) i kliknite OK.",
+DlgPasteIgnoreFont : "Zanemari definiciju vrste fonta",
+DlgPasteRemoveStyles : "Ukloni definicije stilova",
+DlgPasteCleanBox : "Očisti okvir",
+
+// Color Picker
+ColorAutomatic : "Automatski",
+ColorMoreColors : "Više boja...",
+
+// Document Properties
+DocProps : "Svojstva dokumenta",
+
+// Anchor Dialog
+DlgAnchorTitle : "Svojstva sidra",
+DlgAnchorName : "Ime sidra",
+DlgAnchorErrorName : "Molimo unesite ime sidra",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Nije u rječniku",
+DlgSpellChangeTo : "Promijeni u",
+DlgSpellBtnIgnore : "Zanemari",
+DlgSpellBtnIgnoreAll : "Zanemari sve",
+DlgSpellBtnReplace : "Zamijeni",
+DlgSpellBtnReplaceAll : "Zamijeni sve",
+DlgSpellBtnUndo : "Vrati",
+DlgSpellNoSuggestions : "-Nema preporuke-",
+DlgSpellProgress : "Provjera u tijeku...",
+DlgSpellNoMispell : "Provjera završena: Nema grešaka",
+DlgSpellNoChanges : "Provjera završena: Nije napravljena promjena",
+DlgSpellOneChange : "Provjera završena: Jedna riječ promjenjena",
+DlgSpellManyChanges : "Provjera završena: Promijenjeno %1 riječi",
+
+IeSpellDownload : "Provjera pravopisa nije instalirana. Želite li skinuti provjeru pravopisa?",
+
+// Button Dialog
+DlgButtonText : "Tekst (vrijednost)",
+DlgButtonType : "Vrsta",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Ime",
+DlgCheckboxValue : "Vrijednost",
+DlgCheckboxSelected : "Odabrano",
+
+// Form Dialog
+DlgFormName : "Ime",
+DlgFormAction : "Akcija",
+DlgFormMethod : "Metoda",
+
+// Select Field Dialog
+DlgSelectName : "Ime",
+DlgSelectValue : "Vrijednost",
+DlgSelectSize : "Veličina",
+DlgSelectLines : "linija",
+DlgSelectChkMulti : "Dozvoli višestruki odabir",
+DlgSelectOpAvail : "Dostupne opcije",
+DlgSelectOpText : "Tekst",
+DlgSelectOpValue : "Vrijednost",
+DlgSelectBtnAdd : "Dodaj",
+DlgSelectBtnModify : "Promijeni",
+DlgSelectBtnUp : "Gore",
+DlgSelectBtnDown : "Dolje",
+DlgSelectBtnSetValue : "Postavi kao odabranu vrijednost",
+DlgSelectBtnDelete : "Obriši",
+
+// Textarea Dialog
+DlgTextareaName : "Ime",
+DlgTextareaCols : "Kolona",
+DlgTextareaRows : "Redova",
+
+// Text Field Dialog
+DlgTextName : "Ime",
+DlgTextValue : "Vrijednost",
+DlgTextCharWidth : "Širina",
+DlgTextMaxChars : "Najviše karaktera",
+DlgTextType : "Vrsta",
+DlgTextTypeText : "Tekst",
+DlgTextTypePass : "Šifra",
+
+// Hidden Field Dialog
+DlgHiddenName : "Ime",
+DlgHiddenValue : "Vrijednost",
+
+// Bulleted List Dialog
+BulletedListProp : "Svojstva liste",
+NumberedListProp : "Svojstva brojčane liste",
+DlgLstType : "Vrsta",
+DlgLstTypeCircle : "Krug",
+DlgLstTypeDisc : "Disk",
+DlgLstTypeSquare : "Kvadrat",
+DlgLstTypeNumbers : "Brojevi (1, 2, 3)",
+DlgLstTypeLCase : "Mala slova (a, b, c)",
+DlgLstTypeUCase : "Velika slova (A, B, C)",
+DlgLstTypeSRoman : "Male rimske brojke (i, ii, iii)",
+DlgLstTypeLRoman : "Velike rimske brojke (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "Općenito",
+DlgDocBackTab : "Pozadina",
+DlgDocColorsTab : "Boje i margine",
+DlgDocMetaTab : "Meta Data",
+
+DlgDocPageTitle : "Naslov stranice",
+DlgDocLangDir : "Smjer jezika",
+DlgDocLangDirLTR : "S lijeva na desno",
+DlgDocLangDirRTL : "S desna na lijevo",
+DlgDocLangCode : "Kôd jezika",
+DlgDocCharSet : "Enkodiranje znakova",
+DlgDocCharSetOther : "Ostalo enkodiranje znakova",
+
+DlgDocDocType : "Zaglavlje vrste dokumenta",
+DlgDocDocTypeOther : "Ostalo zaglavlje vrste dokumenta",
+DlgDocIncXHTML : "Ubaci XHTML deklaracije",
+DlgDocBgColor : "Boja pozadine",
+DlgDocBgImage : "URL slike pozadine",
+DlgDocBgNoScroll : "Pozadine se ne pomiče",
+DlgDocCText : "Tekst",
+DlgDocCLink : "Link",
+DlgDocCVisited : "Posjećeni link",
+DlgDocCActive : "Aktivni link",
+DlgDocMargins : "Margine stranice",
+DlgDocMaTop : "Vrh",
+DlgDocMaLeft : "Lijevo",
+DlgDocMaRight : "Desno",
+DlgDocMaBottom : "Dolje",
+DlgDocMeIndex : "Ključne riječi dokumenta (odvojene zarezom)",
+DlgDocMeDescr : "Opis dokumenta",
+DlgDocMeAuthor : "Autor",
+DlgDocMeCopy : "Autorska prava",
+DlgDocPreview : "Pregledaj",
+
+// Templates Dialog
+Templates : "Predlošci",
+DlgTemplatesTitle : "Predlošci sadržaja",
+DlgTemplatesSelMsg : "Molimo odaberite predložak koji želite otvoriti
(stvarni sadržaj će biti izgubljen):",
+DlgTemplatesLoading : "Učitavam listu predložaka. Molimo pričekajte...",
+DlgTemplatesNoTpl : "(Nema definiranih predložaka)",
+
+// About Dialog
+DlgAboutAboutTab : "O FCKEditoru",
+DlgAboutBrowserInfoTab : "Podaci o pretraživaču",
+DlgAboutLicenseTab : "License", //MISSING
+DlgAboutVersion : "inačica",
+DlgAboutLicense : "Licencirano pod uvjetima GNU Lesser General Public License",
+DlgAboutInfo : "Za više informacija posjetite"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/hu.js b/htdocs/includes/fckeditor/editor/lang/hu.js
new file mode 100644
index 00000000000..1ec27088bc8
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/hu.js
@@ -0,0 +1,487 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: hu.js
+ * Hungarian language file.
+ *
+ * File Authors:
+ * Varga Zsolt (meridian@netteszt.hu)
+ * Géza Szűcs (flextor@flextor.hu)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Eszköztár elrejtése",
+ToolbarExpand : "Eszköztár megjelenítése",
+
+// Toolbar Items and Context Menu
+Save : "Mentés",
+NewPage : "Új oldal",
+Preview : "Előnézet",
+Cut : "Kivágás",
+Copy : "Másolás",
+Paste : "Beillesztés",
+PasteText : "Beillesztés formázás nélkül",
+PasteWord : "Beillesztés Word-ből",
+Print : "Nyomtatás",
+SelectAll : "Mindent kijelöl",
+RemoveFormat : "Formázás eltávolítása",
+InsertLinkLbl : "Hivatkozás",
+InsertLink : "Hivatkozás beillesztése/módosítása",
+RemoveLink : "Hivatkozás törlése",
+Anchor : "Horgony beillesztése/szerkesztése",
+InsertImageLbl : "Kép",
+InsertImage : "Kép beillesztése/módosítása",
+InsertFlashLbl : "Flash",
+InsertFlash : "Flash beillesztése, módosítása",
+InsertTableLbl : "Táblázat",
+InsertTable : "Táblázat beillesztése/módosítása",
+InsertLineLbl : "Vonal",
+InsertLine : "Elválasztóvonal beillesztése",
+InsertSpecialCharLbl: "Speciális karakter",
+InsertSpecialChar : "Speciális karakter beillesztése",
+InsertSmileyLbl : "Hangulatjelek",
+InsertSmiley : "Hangulatjelek beillesztése",
+About : "FCKeditor névjegy",
+Bold : "Félkövér",
+Italic : "Dőlt",
+Underline : "Aláhúzott",
+StrikeThrough : "Áthúzott",
+Subscript : "Alsó index",
+Superscript : "Felső index",
+LeftJustify : "Balra",
+CenterJustify : "Középre",
+RightJustify : "Jobbra",
+BlockJustify : "Sorkizárt",
+DecreaseIndent : "Behúzás csökkentése",
+IncreaseIndent : "Behúzás növelése",
+Undo : "Visszavonás",
+Redo : "Ismétlés",
+NumberedListLbl : "Számozás",
+NumberedList : "Számozás beillesztése/törlése",
+BulletedListLbl : "Felsorolás",
+BulletedList : "Felsorolás beillesztése/törlése",
+ShowTableBorders : "Táblázat szegély mutatása",
+ShowDetails : "Részletek mutatása",
+Style : "Stílus",
+FontFormat : "Formátum",
+Font : "Betűtípus",
+FontSize : "Méret",
+TextColor : "Betűszín",
+BGColor : "Háttérszín",
+Source : "Forráskód",
+Find : "Keresés",
+Replace : "Csere",
+SpellCheck : "Helyesírás-ellenőrzés",
+UniversalKeyboard : "Univerzális billentyűzet",
+PageBreakLbl : "Oldaltörés",
+PageBreak : "Oldaltörés beillesztése",
+
+Form : "Űrlap",
+Checkbox : "Jelölőnégyzet",
+RadioButton : "Választógomb",
+TextField : "Szövegmező",
+Textarea : "Szövegterület",
+HiddenField : "Rejtettmező",
+Button : "Gomb",
+SelectionField : "Legördülő lista",
+ImageButton : "Képgomb",
+
+FitWindow : "Maximalizálás",
+
+// Context Menu
+EditLink : "Hivatkozás módosítása",
+CellCM : "Cella",
+RowCM : "Sor",
+ColumnCM : "Oszlop",
+InsertRow : "Sor beszúrása",
+DeleteRows : "Sorok törlése",
+InsertColumn : "Oszlop beszúrása",
+DeleteColumns : "Oszlopok törlése",
+InsertCell : "Cella beszúrása",
+DeleteCells : "Cellák törlése",
+MergeCells : "Cellák egyesítése",
+SplitCell : "Cella szétválasztása",
+TableDelete : "Táblázat törlése",
+CellProperties : "Cella tulajdonságai",
+TableProperties : "Táblázat tulajdonságai",
+ImageProperties : "Kép tulajdonságai",
+FlashProperties : "Flash tulajdonságai",
+
+AnchorProp : "Horgony tulajdonságai",
+ButtonProp : "Gomb tulajdonságai",
+CheckboxProp : "Jelölőnégyzet tulajdonságai",
+HiddenFieldProp : "Rejtett mező tulajdonságai",
+RadioButtonProp : "Választógomb tulajdonságai",
+ImageButtonProp : "Képgomb tulajdonságai",
+TextFieldProp : "Szövegmező tulajdonságai",
+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)",
+
+// Alerts and Messages
+ProcessingXHTML : "XHTML feldolgozása. Kérem várjon...",
+Done : "Kész",
+PasteWordConfirm : "A beilleszteni kívánt szöveg Word-ből van másolva. El kívánja távolítani a formázást a beillesztés előtt?",
+NotCompatiblePaste : "Ez a parancs csak Internet Explorer 5.5 verziótól használható. Megpróbálja beilleszteni a szöveget az eredeti formázással?",
+UnknownToolbarItem : "Ismeretlen eszköztár elem \"%1\"",
+UnknownCommand : "Ismeretlen parancs \"%1\"",
+NotImplemented : "A parancs nem hajtható végre",
+UnknownToolbarSet : "Az eszközkészlet \"%1\" nem létezik",
+NoActiveX : "A böngésző biztonsági beállításai korlátozzák a szerkesztő lehetőségeit. Engedélyezni kell ezt az opciót: \"Run ActiveX controls and plug-ins\". Ettől függetlenül előfordulhatnak hibaüzenetek ill. bizonyos funkciók hiányozhatnak.",
+BrowseServerBlocked : "Nem lehet megnyitni a fájlböngészőt. Bizonyosodjon meg róla, hogy a felbukkanó ablakok engedélyezve vannak.",
+DialogBlocked : "Nem lehet megnyitni a párbeszédablakot. Bizonyosodjon meg róla, hogy a felbukkanó ablakok engedélyezve vannak.",
+
+// Dialogs
+DlgBtnOK : "Rendben",
+DlgBtnCancel : "Mégsem",
+DlgBtnClose : "Bezárás",
+DlgBtnBrowseServer : "Böngészés a szerveren",
+DlgAdvancedTag : "További opciók",
+DlgOpOther : "Egyéb",
+DlgInfoTab : "Alaptulajdonságok",
+DlgAlertUrl : "Illessze be a webcímet",
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Azonosító",
+DlgGenLangDir : "Írás iránya",
+DlgGenLangDirLtr : "Balról jobbra",
+DlgGenLangDirRtl : "Jobbról balra",
+DlgGenLangCode : "Nyelv kódja",
+DlgGenAccessKey : "Billentyűkombináció",
+DlgGenName : "Név",
+DlgGenTabIndex : "Tabulátor index",
+DlgGenLongDescr : "Részletes leírás webcíme",
+DlgGenClass : "Stíluskészlet",
+DlgGenTitle : "Súgócimke",
+DlgGenContType : "Súgó tartalomtípusa",
+DlgGenLinkCharset : "Hivatkozott tartalom kódlapja",
+DlgGenStyle : "Stílus",
+
+// Image Dialog
+DlgImgTitle : "Kép tulajdonságai",
+DlgImgInfoTab : "Alaptulajdonságok",
+DlgImgBtnUpload : "Küldés a szerverre",
+DlgImgURL : "Hivatkozás",
+DlgImgUpload : "Feltöltés",
+DlgImgAlt : "Buborék szöveg",
+DlgImgWidth : "Szélesség",
+DlgImgHeight : "Magasság",
+DlgImgLockRatio : "Arány megtartása",
+DlgBtnResetSize : "Eredeti méret",
+DlgImgBorder : "Keret",
+DlgImgHSpace : "Vízsz. táv",
+DlgImgVSpace : "Függ. táv",
+DlgImgAlign : "Igazítás",
+DlgImgAlignLeft : "Bal",
+DlgImgAlignAbsBottom: "Legaljára",
+DlgImgAlignAbsMiddle: "Közepére",
+DlgImgAlignBaseline : "Alapvonalhoz",
+DlgImgAlignBottom : "Aljára",
+DlgImgAlignMiddle : "Középre",
+DlgImgAlignRight : "Jobbra",
+DlgImgAlignTextTop : "Szöveg tetejére",
+DlgImgAlignTop : "Tetejére",
+DlgImgPreview : "Előnézet",
+DlgImgAlertUrl : "Töltse ki a kép webcímét",
+DlgImgLinkTab : "Hivatkozás",
+
+// Flash Dialog
+DlgFlashTitle : "Flash tulajdonságai",
+DlgFlashChkPlay : "Automata lejátszás",
+DlgFlashChkLoop : "Folyamatosan",
+DlgFlashChkMenu : "Flash menü engedélyezése",
+DlgFlashScale : "Méretezés",
+DlgFlashScaleAll : "Mindent mutat",
+DlgFlashScaleNoBorder : "Keret nélkül",
+DlgFlashScaleFit : "Teljes kitöltés",
+
+// Link Dialog
+DlgLnkWindowTitle : "Hivatkozás tulajdonságai",
+DlgLnkInfoTab : "Alaptulajdonságok",
+DlgLnkTargetTab : "Megjelenítés",
+
+DlgLnkType : "Hivatkozás típusa",
+DlgLnkTypeURL : "Webcím",
+DlgLnkTypeAnchor : "Horgony az oldalon",
+DlgLnkTypeEMail : "E-Mail",
+DlgLnkProto : "Protokoll",
+DlgLnkProtoOther : "",
+DlgLnkURL : "Webcím",
+DlgLnkAnchorSel : "Horgony választása",
+DlgLnkAnchorByName : "Horgony név szerint",
+DlgLnkAnchorById : "Azonosító szerint",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "E-Mail cím",
+DlgLnkEMailSubject : "Üzenet tárgya",
+DlgLnkEMailBody : "Üzenet",
+DlgLnkUpload : "Feltöltés",
+DlgLnkBtnUpload : "Küldés a szerverre",
+
+DlgLnkTarget : "Tartalom megjelenítése",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "Új ablakban (_blank)",
+DlgLnkTargetParent : "Szülő ablakban (_parent)",
+DlgLnkTargetSelf : "Azonos ablakban (_self)",
+DlgLnkTargetTop : "Legfelső ablakban (_top)",
+DlgLnkTargetFrameName : "Keret neve",
+DlgLnkPopWinName : "Felugró ablak neve",
+DlgLnkPopWinFeat : "Felugró ablak jellemzői",
+DlgLnkPopResize : "Méretezhető",
+DlgLnkPopLocation : "Címsor",
+DlgLnkPopMenu : "Menü sor",
+DlgLnkPopScroll : "Gördítősáv",
+DlgLnkPopStatus : "Állapotsor",
+DlgLnkPopToolbar : "Eszköztár",
+DlgLnkPopFullScrn : "Teljes képernyő (csak IE)",
+DlgLnkPopDependent : "Szülőhöz kapcsolt (csak Netscape)",
+DlgLnkPopWidth : "Szélesség",
+DlgLnkPopHeight : "Magasság",
+DlgLnkPopLeft : "Bal pozíció",
+DlgLnkPopTop : "Felső pozíció",
+
+DlnLnkMsgNoUrl : "Adja meg a hivatkozás webcímét",
+DlnLnkMsgNoEMail : "Adja meg az E-Mail címet",
+DlnLnkMsgNoAnchor : "Válasszon egy horgonyt",
+
+// Color Dialog
+DlgColorTitle : "Színválasztás",
+DlgColorBtnClear : "Törlés",
+DlgColorHighlight : "Előnézet",
+DlgColorSelected : "Kiválasztott",
+
+// Smiley Dialog
+DlgSmileyTitle : "Hangulatjel beszúrása",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Speciális karakter választása",
+
+// Table Dialog
+DlgTableTitle : "Táblázat tulajdonságai",
+DlgTableRows : "Sorok",
+DlgTableColumns : "Oszlopok",
+DlgTableBorder : "Szegélyméret",
+DlgTableAlign : "Igazítás",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Balra",
+DlgTableAlignCenter : "Középre",
+DlgTableAlignRight : "Jobbra",
+DlgTableWidth : "Szélesség",
+DlgTableWidthPx : "képpont",
+DlgTableWidthPc : "százalék",
+DlgTableHeight : "Magasság",
+DlgTableCellSpace : "Cella térköz",
+DlgTableCellPad : "Cella belső margó",
+DlgTableCaption : "Felirat",
+DlgTableSummary : "Leírás",
+
+// Table Cell Dialog
+DlgCellTitle : "Cella tulajdonságai",
+DlgCellWidth : "Szélesség",
+DlgCellWidthPx : "képpont",
+DlgCellWidthPc : "százalék",
+DlgCellHeight : "Magasság",
+DlgCellWordWrap : "Sortörés",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Igen",
+DlgCellWordWrapNo : "Nem",
+DlgCellHorAlign : "Vízsz. igazítás",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Balra",
+DlgCellHorAlignCenter : "Középre",
+DlgCellHorAlignRight: "Jobbra",
+DlgCellVerAlign : "Függ. igazítás",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Tetejére",
+DlgCellVerAlignMiddle : "Középre",
+DlgCellVerAlignBottom : "Aljára",
+DlgCellVerAlignBaseline : "Egyvonalba",
+DlgCellRowSpan : "Sorok egyesítése",
+DlgCellCollSpan : "Oszlopok egyesítése",
+DlgCellBackColor : "Háttérszín",
+DlgCellBorderColor : "Szegélyszín",
+DlgCellBtnSelect : "Kiválasztás...",
+
+// Find Dialog
+DlgFindTitle : "Keresés",
+DlgFindFindBtn : "Keresés",
+DlgFindNotFoundMsg : "A keresett szöveg nem található.",
+
+// Replace Dialog
+DlgReplaceTitle : "Csere",
+DlgReplaceFindLbl : "Keresett szöveg:",
+DlgReplaceReplaceLbl : "Csere erre:",
+DlgReplaceCaseChk : "kis- és nagybetű megkülönböztetése",
+DlgReplaceReplaceBtn : "Csere",
+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).",
+
+PasteAsText : "Beillesztés formázatlan szövegként",
+PasteFromWord : "Beillesztés Word-ből",
+
+DlgPasteMsg2 : "Másolja be az alábbi mezőbe a Ctrl+V billentyűk lenyomásával, majd nyomjon Rendben-t.",
+DlgPasteIgnoreFont : "Betű formázások megszüntetése",
+DlgPasteRemoveStyles : "Stílusok eltávolítása",
+DlgPasteCleanBox : "Törlés",
+
+// Color Picker
+ColorAutomatic : "Automatikus",
+ColorMoreColors : "További színek...",
+
+// Document Properties
+DocProps : "Dokumentum tulajdonságai",
+
+// Anchor Dialog
+DlgAnchorTitle : "Horgony tulajdonságai",
+DlgAnchorName : "Horgony neve",
+DlgAnchorErrorName : "Kérem adja meg a horgony nevét",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Nincs a szótárban",
+DlgSpellChangeTo : "Módosítás",
+DlgSpellBtnIgnore : "Kihagyja",
+DlgSpellBtnIgnoreAll : "Mindet kihagyja",
+DlgSpellBtnReplace : "Csere",
+DlgSpellBtnReplaceAll : "Összes cseréje",
+DlgSpellBtnUndo : "Visszavonás",
+DlgSpellNoSuggestions : "Nincs javaslat",
+DlgSpellProgress : "Helyesírás-ellenőrzés folyamatban...",
+DlgSpellNoMispell : "Helyesírás-ellenőrzés kész: Nem találtam hibát",
+DlgSpellNoChanges : "Helyesírás-ellenőrzés kész: Nincs változtatott szó",
+DlgSpellOneChange : "Helyesírás-ellenőrzés kész: Egy szó cserélve",
+DlgSpellManyChanges : "Helyesírás-ellenőrzés kész: %1 szó cserélve",
+
+IeSpellDownload : "A helyesírás-ellenőrző nincs telepítve. Szeretné letölteni most?",
+
+// Button Dialog
+DlgButtonText : "Szöveg (Érték)",
+DlgButtonType : "Típus",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Név",
+DlgCheckboxValue : "Érték",
+DlgCheckboxSelected : "Kiválasztott",
+
+// Form Dialog
+DlgFormName : "Név",
+DlgFormAction : "Adatfeldolgozást végző hivatkozás",
+DlgFormMethod : "Adatküldés módja",
+
+// Select Field Dialog
+DlgSelectName : "Név",
+DlgSelectValue : "Érték",
+DlgSelectSize : "Méret",
+DlgSelectLines : "sor",
+DlgSelectChkMulti : "több sor is kiválasztható",
+DlgSelectOpAvail : "Elérhető opciók",
+DlgSelectOpText : "Szöveg",
+DlgSelectOpValue : "Érték",
+DlgSelectBtnAdd : "Hozzáad",
+DlgSelectBtnModify : "Módosít",
+DlgSelectBtnUp : "Fel",
+DlgSelectBtnDown : "Le",
+DlgSelectBtnSetValue : "Legyen az alapértelmezett érték",
+DlgSelectBtnDelete : "Töröl",
+
+// Textarea Dialog
+DlgTextareaName : "Név",
+DlgTextareaCols : "Karakterek száma egy sorban",
+DlgTextareaRows : "Sorok száma",
+
+// Text Field Dialog
+DlgTextName : "Név",
+DlgTextValue : "Érték",
+DlgTextCharWidth : "Megjelenített karakterek száma",
+DlgTextMaxChars : "Maximális karakterszám",
+DlgTextType : "Típus",
+DlgTextTypeText : "Szöveg",
+DlgTextTypePass : "Jelszó",
+
+// Hidden Field Dialog
+DlgHiddenName : "Név",
+DlgHiddenValue : "Érték",
+
+// Bulleted List Dialog
+BulletedListProp : "Felsorolás tulajdonságai",
+NumberedListProp : "Számozás tulajdonságai",
+DlgLstType : "Formátum",
+DlgLstTypeCircle : "Kör",
+DlgLstTypeDisc : "Lemez",
+DlgLstTypeSquare : "Négyzet",
+DlgLstTypeNumbers : "Számok (1, 2, 3)",
+DlgLstTypeLCase : "Kisbetűk (a, b, c)",
+DlgLstTypeUCase : "Nagybetűk (A, B, C)",
+DlgLstTypeSRoman : "Kis római számok (i, ii, iii)",
+DlgLstTypeLRoman : "Nagy római számok (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "Általános",
+DlgDocBackTab : "Háttér",
+DlgDocColorsTab : "Színek és margók",
+DlgDocMetaTab : "Meta adatok",
+
+DlgDocPageTitle : "Oldalcím",
+DlgDocLangDir : "Írás iránya",
+DlgDocLangDirLTR : "Balról jobbra",
+DlgDocLangDirRTL : "Jobbról balra",
+DlgDocLangCode : "Nyelv kód",
+DlgDocCharSet : "Karakterkódolás",
+DlgDocCharSetOther : "Más karakterkódolás",
+
+DlgDocDocType : "Dokumentum típus fejléc",
+DlgDocDocTypeOther : "Más dokumentum típus fejléc",
+DlgDocIncXHTML : "XHTML deklarációk beillesztése",
+DlgDocBgColor : "Háttérszín",
+DlgDocBgImage : "Háttérkép cím",
+DlgDocBgNoScroll : "Nem gördíthető háttér",
+DlgDocCText : "Szöveg",
+DlgDocCLink : "Cím",
+DlgDocCVisited : "Látogatott cím",
+DlgDocCActive : "Aktív cím",
+DlgDocMargins : "Oldal margók",
+DlgDocMaTop : "Felső",
+DlgDocMaLeft : "Bal",
+DlgDocMaRight : "Jobb",
+DlgDocMaBottom : "Alsó",
+DlgDocMeIndex : "Dokumentum keresőszavak (vesszővel elválasztva)",
+DlgDocMeDescr : "Dokumentum leírás",
+DlgDocMeAuthor : "Szerző",
+DlgDocMeCopy : "Szerzői jog",
+DlgDocPreview : "Előnézet",
+
+// Templates Dialog
+Templates : "Sablonok",
+DlgTemplatesTitle : "Elérhető sablonok",
+DlgTemplatesSelMsg : "Válassza ki melyik sablon nyíljon meg a szerkesztőben
(a jelenlegi tartalom elveszik):",
+DlgTemplatesLoading : "Sablon lista betöltése. Kis türelmet...",
+DlgTemplatesNoTpl : "(Nincs sablon megadva)",
+
+// About Dialog
+DlgAboutAboutTab : "Névjegy",
+DlgAboutBrowserInfoTab : "Böngésző információ",
+DlgAboutLicenseTab : "Licensz",
+DlgAboutVersion : "verzió",
+DlgAboutLicense : "GNU Lesser General Public License szabadalom alá tartozik",
+DlgAboutInfo : "További információkért látogasson el ide:"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/it.js b/htdocs/includes/fckeditor/editor/lang/it.js
new file mode 100644
index 00000000000..1ad56b27474
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/it.js
@@ -0,0 +1,486 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: it.js
+ * Italian language file.
+ *
+ * File Authors:
+ * Simone Chiaretta (simone@piyosailing.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Nascondi la barra degli strumenti",
+ToolbarExpand : "Mostra la barra degli strumenti",
+
+// Toolbar Items and Context Menu
+Save : "Salva",
+NewPage : "Nuova pagina vuota",
+Preview : "Anteprima",
+Cut : "Taglia",
+Copy : "Copia",
+Paste : "Incolla",
+PasteText : "Incolla come testo semplice",
+PasteWord : "Incolla da Word",
+Print : "Stampa",
+SelectAll : "Seleziona tutto",
+RemoveFormat : "Elimina formattazione",
+InsertLinkLbl : "Collegamento",
+InsertLink : "Inserisci/Modifica collegamento",
+RemoveLink : "Elimina collegamento",
+Anchor : "Inserisci/Modifica Ancora",
+InsertImageLbl : "Immagine",
+InsertImage : "Inserisci/Modifica immagine",
+InsertFlashLbl : "Oggetto Flash",
+InsertFlash : "Inserisci/Modifica Oggetto Flash",
+InsertTableLbl : "Tabella",
+InsertTable : "Inserisci/Modifica tabella",
+InsertLineLbl : "Riga orizzontale",
+InsertLine : "Inserisci riga orizzontale",
+InsertSpecialCharLbl: "Caratteri speciali",
+InsertSpecialChar : "Inserisci carattere speciale",
+InsertSmileyLbl : "Emoticon",
+InsertSmiley : "Inserisci emoticon",
+About : "Informazioni su FCKeditor",
+Bold : "Grassetto",
+Italic : "Corsivo",
+Underline : "Sottolineato",
+StrikeThrough : "Barrato",
+Subscript : "Pedice",
+Superscript : "Apice",
+LeftJustify : "Allinea a sinistra",
+CenterJustify : "Centra",
+RightJustify : "Allinea a destra",
+BlockJustify : "Giustifica",
+DecreaseIndent : "Riduci rientro",
+IncreaseIndent : "Aumenta rientro",
+Undo : "Annulla",
+Redo : "Ripristina",
+NumberedListLbl : "Elenco numerato",
+NumberedList : "Inserisci/Modifica elenco numerato",
+BulletedListLbl : "Elenco puntato",
+BulletedList : "Inserisci/Modifica elenco puntato",
+ShowTableBorders : "Mostra bordi tabelle",
+ShowDetails : "Mostra dettagli",
+Style : "Stile",
+FontFormat : "Formato",
+Font : "Font",
+FontSize : "Dimensione",
+TextColor : "Colore testo",
+BGColor : "Colore sfondo",
+Source : "Codice Sorgente",
+Find : "Trova",
+Replace : "Sostituisci",
+SpellCheck : "Correttore ortografico",
+UniversalKeyboard : "Tastiera universale",
+PageBreakLbl : "Interruzione di pagina",
+PageBreak : "Inserisci interruzione di pagina",
+
+Form : "Modulo",
+Checkbox : "Checkbox",
+RadioButton : "Radio Button",
+TextField : "Campo di testo",
+Textarea : "Area di testo",
+HiddenField : "Campo nascosto",
+Button : "Bottone",
+SelectionField : "Menu di selezione",
+ImageButton : "Bottone immagine",
+
+FitWindow : "Massimizza l'area dell'editor",
+
+// Context Menu
+EditLink : "Modifica collegamento",
+CellCM : "Cella",
+RowCM : "Riga",
+ColumnCM : "Colonna",
+InsertRow : "Inserisci riga",
+DeleteRows : "Elimina righe",
+InsertColumn : "Inserisci colonna",
+DeleteColumns : "Elimina colonne",
+InsertCell : "Inserisci cella",
+DeleteCells : "Elimina celle",
+MergeCells : "Unisce celle",
+SplitCell : "Dividi celle",
+TableDelete : "Cancella Tabella",
+CellProperties : "Proprietà cella",
+TableProperties : "Proprietà tabella",
+ImageProperties : "Proprietà immagine",
+FlashProperties : "Proprietà Oggetto Flash",
+
+AnchorProp : "Proprietà ancora",
+ButtonProp : "Proprietà bottone",
+CheckboxProp : "Proprietà checkbox",
+HiddenFieldProp : "Proprietà campo nascosto",
+RadioButtonProp : "Proprietà radio button",
+ImageButtonProp : "Proprietà bottone immagine",
+TextFieldProp : "Proprietà campo di testo",
+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)",
+
+// Alerts and Messages
+ProcessingXHTML : "Elaborazione XHTML in corso. Attendere prego...",
+Done : "Completato",
+PasteWordConfirm : "Il testo da incollare sembra provenire da Word. Desideri pulirlo prima di incollare?",
+NotCompatiblePaste : "Questa funzione è disponibile solo per Internet Explorer 5.5 o superiore. Desideri incollare il testo senza pulirlo?",
+UnknownToolbarItem : "Elemento della barra strumenti sconosciuto \"%1\"",
+UnknownCommand : "Comando sconosciuto \"%1\"",
+NotImplemented : "Comando non implementato",
+UnknownToolbarSet : "La barra di strumenti \"%1\" non esiste",
+NoActiveX : "Le impostazioni di sicurezza del tuo browser potrebbero limitare alcune funzionalità dell'editor. Devi abilitare l'opzione \"Esegui controlli e plug-in ActiveX\". Potresti avere errori e notare funzionalità mancanti.",
+BrowseServerBlocked : "Non è possibile aprire la finestra di espolorazione risorse. Verifica che tutti i blocca popup siano bloccati.",
+DialogBlocked : "Non è possibile aprire la finestra di dialogo. Verifica che tutti i blocca popup siano bloccati.",
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Annulla",
+DlgBtnClose : "Chiudi",
+DlgBtnBrowseServer : "Cerca sul server",
+DlgAdvancedTag : "Avanzate",
+DlgOpOther : "",
+DlgInfoTab : "Info",
+DlgAlertUrl : "Devi inserire l'URL",
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Direzione scrittura",
+DlgGenLangDirLtr : "Da Sinistra a Destra (LTR)",
+DlgGenLangDirRtl : "Da Destra a Sinistra (RTL)",
+DlgGenLangCode : "Codice Lingua",
+DlgGenAccessKey : "Scorciatoia
da tastiera",
+DlgGenName : "Nome",
+DlgGenTabIndex : "Ordine di tabulazione",
+DlgGenLongDescr : "URL descrizione estesa",
+DlgGenClass : "Nome classe CSS",
+DlgGenTitle : "Titolo",
+DlgGenContType : "Tipo della risorsa collegata",
+DlgGenLinkCharset : "Set di caretteri della risorsa collegata",
+DlgGenStyle : "Stile",
+
+// Image Dialog
+DlgImgTitle : "Proprietà immagine",
+DlgImgInfoTab : "Informazioni immagine",
+DlgImgBtnUpload : "Invia al server",
+DlgImgURL : "URL",
+DlgImgUpload : "Carica",
+DlgImgAlt : "Testo alternativo",
+DlgImgWidth : "Larghezza",
+DlgImgHeight : "Altezza",
+DlgImgLockRatio : "Blocca rapporto",
+DlgBtnResetSize : "Reimposta dimensione",
+DlgImgBorder : "Bordo",
+DlgImgHSpace : "HSpace",
+DlgImgVSpace : "VSpace",
+DlgImgAlign : "Allineamento",
+DlgImgAlignLeft : "Sinistra",
+DlgImgAlignAbsBottom: "In basso assoluto",
+DlgImgAlignAbsMiddle: "Centrato assoluto",
+DlgImgAlignBaseline : "Linea base",
+DlgImgAlignBottom : "In Basso",
+DlgImgAlignMiddle : "Centrato",
+DlgImgAlignRight : "Destra",
+DlgImgAlignTextTop : "In alto al testo",
+DlgImgAlignTop : "In Alto",
+DlgImgPreview : "Anteprima",
+DlgImgAlertUrl : "Devi inserire l'URL per l'immagine",
+DlgImgLinkTab : "Collegamento",
+
+// Flash Dialog
+DlgFlashTitle : "Proprietà Oggetto Flash",
+DlgFlashChkPlay : "Avvio Automatico",
+DlgFlashChkLoop : "Cicla",
+DlgFlashChkMenu : "Abilita Menu di Flash",
+DlgFlashScale : "Ridimensiona",
+DlgFlashScaleAll : "Mostra Tutto",
+DlgFlashScaleNoBorder : "Senza Bordo",
+DlgFlashScaleFit : "Dimensione Esatta",
+
+// Link Dialog
+DlgLnkWindowTitle : "Collegamento",
+DlgLnkInfoTab : "Informazioni collegamento",
+DlgLnkTargetTab : "Destinazione",
+
+DlgLnkType : "Tipo di Collegamento",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Ancora nella pagina",
+DlgLnkTypeEMail : "E-Mail",
+DlgLnkProto : "Protocollo",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Scegli Ancora",
+DlgLnkAnchorByName : "Per Nome",
+DlgLnkAnchorById : "Per id elemento",
+DlgLnkNoAnchors : "",
+DlgLnkEMail : "Indirizzo E-Mail",
+DlgLnkEMailSubject : "Oggetto del messaggio",
+DlgLnkEMailBody : "Corpo del messaggio",
+DlgLnkUpload : "Carica",
+DlgLnkBtnUpload : "Invia al Server",
+
+DlgLnkTarget : "Destinazione",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "Nuova finestra (_blank)",
+DlgLnkTargetParent : "Finestra padre (_parent)",
+DlgLnkTargetSelf : "Stessa finestra (_self)",
+DlgLnkTargetTop : "Finestra superiore (_top)",
+DlgLnkTargetFrameName : "Nome del riquadro di destinazione",
+DlgLnkPopWinName : "Nome finestra popup",
+DlgLnkPopWinFeat : "Caratteristiche finestra popup",
+DlgLnkPopResize : "Ridimensionabile",
+DlgLnkPopLocation : "Barra degli indirizzi",
+DlgLnkPopMenu : "Barra del menu",
+DlgLnkPopScroll : "Barre di scorrimento",
+DlgLnkPopStatus : "Barra di stato",
+DlgLnkPopToolbar : "Barra degli strumenti",
+DlgLnkPopFullScrn : "A tutto schermo (IE)",
+DlgLnkPopDependent : "Dipendente (Netscape)",
+DlgLnkPopWidth : "Larghezza",
+DlgLnkPopHeight : "Altezza",
+DlgLnkPopLeft : "Posizione da sinistra",
+DlgLnkPopTop : "Posizione dall'alto",
+
+DlnLnkMsgNoUrl : "Devi inserire l'URL del collegamento",
+DlnLnkMsgNoEMail : "Devi inserire un'indirizzo e-mail",
+DlnLnkMsgNoAnchor : "Devi selezionare un'ancora",
+
+// Color Dialog
+DlgColorTitle : "Seleziona colore",
+DlgColorBtnClear : "Vuota",
+DlgColorHighlight : "Evidenziato",
+DlgColorSelected : "Selezionato",
+
+// Smiley Dialog
+DlgSmileyTitle : "Inserisci emoticon",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Seleziona carattere speciale",
+
+// Table Dialog
+DlgTableTitle : "Proprietà tabella",
+DlgTableRows : "Righe",
+DlgTableColumns : "Colonne",
+DlgTableBorder : "Dimensione bordo",
+DlgTableAlign : "Allineamento",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Sinistra",
+DlgTableAlignCenter : "Centrato",
+DlgTableAlignRight : "Destra",
+DlgTableWidth : "Larghezza",
+DlgTableWidthPx : "pixel",
+DlgTableWidthPc : "percento",
+DlgTableHeight : "Altezza",
+DlgTableCellSpace : "Spaziatura celle",
+DlgTableCellPad : "Padding celle",
+DlgTableCaption : "Intestazione",
+DlgTableSummary : "Indice",
+
+// Table Cell Dialog
+DlgCellTitle : "Proprietà cella",
+DlgCellWidth : "Larghezza",
+DlgCellWidthPx : "pixel",
+DlgCellWidthPc : "percento",
+DlgCellHeight : "Altezza",
+DlgCellWordWrap : "A capo automatico",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Si",
+DlgCellWordWrapNo : "No",
+DlgCellHorAlign : "Allineamento orizzontale",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Sinistra",
+DlgCellHorAlignCenter : "Centrato",
+DlgCellHorAlignRight: "Destra",
+DlgCellVerAlign : "Allineamento verticale",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "In Alto",
+DlgCellVerAlignMiddle : "Centrato",
+DlgCellVerAlignBottom : "In Basso",
+DlgCellVerAlignBaseline : "Linea base",
+DlgCellRowSpan : "Righe occupate",
+DlgCellCollSpan : "Colonne occupate",
+DlgCellBackColor : "Colore sfondo",
+DlgCellBorderColor : "Colore bordo",
+DlgCellBtnSelect : "Scegli...",
+
+// Find Dialog
+DlgFindTitle : "Trova",
+DlgFindFindBtn : "Trova",
+DlgFindNotFoundMsg : "L'elemento cercato non è stato trovato.",
+
+// Replace Dialog
+DlgReplaceTitle : "Sostituisci",
+DlgReplaceFindLbl : "Trova:",
+DlgReplaceReplaceLbl : "Sostituisci con:",
+DlgReplaceCaseChk : "Maiuscole/minuscole",
+DlgReplaceReplaceBtn : "Sostituisci",
+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).",
+
+PasteAsText : "Incolla come testo semplice",
+PasteFromWord : "Incolla da Word",
+
+DlgPasteMsg2 : "Incolla il testo all'interno dell'area sottostante usando la scorciatoia di tastiere (Ctrl+V) e premi OK.",
+DlgPasteIgnoreFont : "Ignora le definizioni di Font",
+DlgPasteRemoveStyles : "Rimuovi le definizioni di Stile",
+DlgPasteCleanBox : "Svuota area di testo",
+
+// Color Picker
+ColorAutomatic : "Automatico",
+ColorMoreColors : "Altri colori...",
+
+// Document Properties
+DocProps : "Proprietà del Documento",
+
+// Anchor Dialog
+DlgAnchorTitle : "Proprietà ancora",
+DlgAnchorName : "Nome ancora",
+DlgAnchorErrorName : "Inserici il nome dell'ancora",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Non nel dizionario",
+DlgSpellChangeTo : "Cambia in",
+DlgSpellBtnIgnore : "Ignora",
+DlgSpellBtnIgnoreAll : "Ignora tutto",
+DlgSpellBtnReplace : "Cambia",
+DlgSpellBtnReplaceAll : "Cambia tutto",
+DlgSpellBtnUndo : "Annulla",
+DlgSpellNoSuggestions : "- Nessun suggerimento -",
+DlgSpellProgress : "Controllo ortografico in corso",
+DlgSpellNoMispell : "Controllo ortografico completato: nessun errore trovato",
+DlgSpellNoChanges : "Controllo ortografico completato: nessuna parola cambiata",
+DlgSpellOneChange : "Controllo ortografico completato: 1 parola cambiata",
+DlgSpellManyChanges : "Controllo ortografico completato: %1 parole cambiate",
+
+IeSpellDownload : "Contollo ortografico non installato. Lo vuoi scaricare ora?",
+
+// Button Dialog
+DlgButtonText : "Testo (Value)",
+DlgButtonType : "Tipo",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Nome",
+DlgCheckboxValue : "Valore",
+DlgCheckboxSelected : "Selezionato",
+
+// Form Dialog
+DlgFormName : "Nome",
+DlgFormAction : "Azione",
+DlgFormMethod : "Metodo",
+
+// Select Field Dialog
+DlgSelectName : "Nome",
+DlgSelectValue : "Valore",
+DlgSelectSize : "Dimensione",
+DlgSelectLines : "righe",
+DlgSelectChkMulti : "Permetti selezione multipla",
+DlgSelectOpAvail : "Opzioni disponibili",
+DlgSelectOpText : "Testo",
+DlgSelectOpValue : "Valore",
+DlgSelectBtnAdd : "Aggiungi",
+DlgSelectBtnModify : "Modifica",
+DlgSelectBtnUp : "Su",
+DlgSelectBtnDown : "Gi",
+DlgSelectBtnSetValue : "Imposta come predefinito",
+DlgSelectBtnDelete : "Rimuovi",
+
+// Textarea Dialog
+DlgTextareaName : "Nome",
+DlgTextareaCols : "Colonne",
+DlgTextareaRows : "Righe",
+
+// Text Field Dialog
+DlgTextName : "Nome",
+DlgTextValue : "Valore",
+DlgTextCharWidth : "Larghezza",
+DlgTextMaxChars : "Numero massimo di caratteri",
+DlgTextType : "Tipo",
+DlgTextTypeText : "Testo",
+DlgTextTypePass : "Password",
+
+// Hidden Field Dialog
+DlgHiddenName : "Nome",
+DlgHiddenValue : "Valore",
+
+// Bulleted List Dialog
+BulletedListProp : "Proprietà lista puntata",
+NumberedListProp : "Proprietà lista numerata",
+DlgLstType : "Tipo",
+DlgLstTypeCircle : "Tondo",
+DlgLstTypeDisc : "Disco",
+DlgLstTypeSquare : "Quadrato",
+DlgLstTypeNumbers : "Numeri (1, 2, 3)",
+DlgLstTypeLCase : "Caratteri minuscoli (a, b, c)",
+DlgLstTypeUCase : "Caratteri maiuscoli (A, B, C)",
+DlgLstTypeSRoman : "Numeri Romani minuscoli (i, ii, iii)",
+DlgLstTypeLRoman : "Numeri Romani maiuscoli (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "Genarale",
+DlgDocBackTab : "Sfondo",
+DlgDocColorsTab : "Colori e margini",
+DlgDocMetaTab : "Meta Data",
+
+DlgDocPageTitle : "Titolo pagina",
+DlgDocLangDir : "Direzione scrittura",
+DlgDocLangDirLTR : "Da Sinistra a Destra (LTR)",
+DlgDocLangDirRTL : "Da Destra a Sinistra (RTL)",
+DlgDocLangCode : "Codice Lingua",
+DlgDocCharSet : "Set di caretteri",
+DlgDocCharSetOther : "Altro set di caretteri",
+
+DlgDocDocType : "Intestazione DocType",
+DlgDocDocTypeOther : "Altra intestazione DocType",
+DlgDocIncXHTML : "Includi dichiarazione XHTML",
+DlgDocBgColor : "Colore di sfondo",
+DlgDocBgImage : "Immagine di sfondo",
+DlgDocBgNoScroll : "Sfondo fissato",
+DlgDocCText : "Testo",
+DlgDocCLink : "Collegamento",
+DlgDocCVisited : "Collegamento visitato",
+DlgDocCActive : "Collegamento attivo",
+DlgDocMargins : "Margini",
+DlgDocMaTop : "In Alto",
+DlgDocMaLeft : "A Sinistra",
+DlgDocMaRight : "A Destra",
+DlgDocMaBottom : "In Basso",
+DlgDocMeIndex : "Chiavi di indicizzazione documento (separate da virgola)",
+DlgDocMeDescr : "Descrizione documento",
+DlgDocMeAuthor : "Autore",
+DlgDocMeCopy : "Copyright",
+DlgDocPreview : "Anteprima",
+
+// Templates Dialog
+Templates : "Modelli",
+DlgTemplatesTitle : "Contenuto dei modelli",
+DlgTemplatesSelMsg : "Seleziona il modello da aprire nell'editor
(il contenuto attuale verrà eliminato):",
+DlgTemplatesLoading : "Caricamento modelli in corso. Attendere prego...",
+DlgTemplatesNoTpl : "(Nessun modello definito)",
+
+// About Dialog
+DlgAboutAboutTab : "Informazioni",
+DlgAboutBrowserInfoTab : "Informazioni Browser",
+DlgAboutLicenseTab : "Licenza",
+DlgAboutVersion : "versione",
+DlgAboutLicense : "Rilasciato sotto la licensa GNU Lesser General Public License",
+DlgAboutInfo : "Localizzazione in Italiano realizzata da Simone Chiaretta
www.piyosailing.com
Per maggiori informazioni visitare"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/ja.js b/htdocs/includes/fckeditor/editor/lang/ja.js
new file mode 100644
index 00000000000..0d1eaec0664
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/ja.js
@@ -0,0 +1,486 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: ja.js
+ * Japanese language file.
+ *
+ * File Authors:
+ * Takashi Yamaguchi (jack@omakase.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "ツールバーを隠す",
+ToolbarExpand : "ツールバーを表示",
+
+// Toolbar Items and Context Menu
+Save : "保存",
+NewPage : "新しいページ",
+Preview : "プレビュー",
+Cut : "切り取り",
+Copy : "コピー",
+Paste : "貼り付け",
+PasteText : "プレーンテキスト貼り付け",
+PasteWord : "ワード文章から貼り付け",
+Print : "印刷",
+SelectAll : "すべて選択",
+RemoveFormat : "フォーマット削除",
+InsertLinkLbl : "リンク",
+InsertLink : "リンク挿入/編集",
+RemoveLink : "リンク削除",
+Anchor : "アンカー挿入/編集",
+InsertImageLbl : "イメージ",
+InsertImage : "イメージ挿入/編集",
+InsertFlashLbl : "Flash",
+InsertFlash : "Flash挿入/編集",
+InsertTableLbl : "テーブル",
+InsertTable : "テーブル挿入/編集",
+InsertLineLbl : "ライン",
+InsertLine : "横罫線",
+InsertSpecialCharLbl: "特殊文字",
+InsertSpecialChar : "特殊文字挿入",
+InsertSmileyLbl : "絵文字",
+InsertSmiley : "絵文字挿入",
+About : "FCKeditorヘルプ",
+Bold : "太字",
+Italic : "斜体",
+Underline : "下線",
+StrikeThrough : "打ち消し線",
+Subscript : "添え字",
+Superscript : "上付き文字",
+LeftJustify : "左揃え",
+CenterJustify : "中央揃え",
+RightJustify : "右揃え",
+BlockJustify : "両端揃え",
+DecreaseIndent : "インデント解除",
+IncreaseIndent : "インデント",
+Undo : "元に戻す",
+Redo : "やり直し",
+NumberedListLbl : "段落番号",
+NumberedList : "段落番号の追加/削除",
+BulletedListLbl : "箇条書き",
+BulletedList : "箇条書きの追加/削除",
+ShowTableBorders : "テーブルボーダー表示",
+ShowDetails : "詳細表示",
+Style : "スタイル",
+FontFormat : "フォーマット",
+Font : "フォント",
+FontSize : "サイズ",
+TextColor : "テキスト色",
+BGColor : "背景色",
+Source : "ソース",
+Find : "検索",
+Replace : "置き換え",
+SpellCheck : "スペルチェック",
+UniversalKeyboard : "ユニバーサル・キーボード",
+PageBreakLbl : "改ページ",
+PageBreak : "改ページ挿入",
+
+Form : "フォーム",
+Checkbox : "チェックボックス",
+RadioButton : "ラジオボタン",
+TextField : "1行テキスト",
+Textarea : "テキストエリア",
+HiddenField : "不可視フィールド",
+Button : "ボタン",
+SelectionField : "選択フィールド",
+ImageButton : "画像ボタン",
+
+FitWindow : "エディタサイズを最大にします",
+
+// Context Menu
+EditLink : "リンク編集",
+CellCM : "セル",
+RowCM : "行",
+ColumnCM : "カラム",
+InsertRow : "行挿入",
+DeleteRows : "行削除",
+InsertColumn : "列挿入",
+DeleteColumns : "列削除",
+InsertCell : "セル挿入",
+DeleteCells : "セル削除",
+MergeCells : "セル結合",
+SplitCell : "セル分割",
+TableDelete : "テーブル削除",
+CellProperties : "セル プロパティ",
+TableProperties : "テーブル プロパティ",
+ImageProperties : "イメージ プロパティ",
+FlashProperties : "Flash プロパティ",
+
+AnchorProp : "アンカー プロパティ",
+ButtonProp : "ボタン プロパティ",
+CheckboxProp : "チェックボックス プロパティ",
+HiddenFieldProp : "不可視フィールド プロパティ",
+RadioButtonProp : "ラジオボタン プロパティ",
+ImageButtonProp : "画像ボタン プロパティ",
+TextFieldProp : "1行テキスト プロパティ",
+SelectionFieldProp : "選択フィールド プロパティ",
+TextareaProp : "テキストエリア プロパティ",
+FormProp : "フォーム プロパティ",
+
+FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML : "XHTML処理中. しばらくお待ちください...",
+Done : "完了",
+PasteWordConfirm : "貼り付けを行うテキストは、ワード文章からコピーされようとしています。貼り付ける前にクリーニングを行いますか?",
+NotCompatiblePaste : "このコマンドはインターネット・エクスプローラーバージョン5.5以上で利用可能です。クリーニングしないで貼り付けを行いますか?",
+UnknownToolbarItem : "未知のツールバー項目 \"%1\"",
+UnknownCommand : "未知のコマンド名 \"%1\"",
+NotImplemented : "コマンドはインプリメントされませんでした。",
+UnknownToolbarSet : "ツールバー設定 \"%1\" 存在しません。",
+NoActiveX : "エラー、警告メッセージなどが発生した場合、ブラウザーのセキュリティ設定によりエディタのいくつかの機能が制限されている可能性があります。セキュリティ設定のオプションで\"ActiveXコントロールとプラグインの実行\"を有効にするにしてください。",
+BrowseServerBlocked : "サーバーブラウザーを開くことができませんでした。ポップアップ・ブロック機能が無効になっているか確認してください。",
+DialogBlocked : "ダイアログウィンドウを開くことができませんでした。ポップアップ・ブロック機能が無効になっているか確認してください。",
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "キャンセル",
+DlgBtnClose : "閉じる",
+DlgBtnBrowseServer : "サーバーブラウザー",
+DlgAdvancedTag : "高度な設定",
+DlgOpOther : "<その他>",
+DlgInfoTab : "情報",
+DlgAlertUrl : "URLを挿入してください",
+
+// General Dialogs Labels
+DlgGenNotSet : "<なし>",
+DlgGenId : "Id",
+DlgGenLangDir : "文字表記の方向",
+DlgGenLangDirLtr : "左から右 (LTR)",
+DlgGenLangDirRtl : "右から左 (RTL)",
+DlgGenLangCode : "言語コード",
+DlgGenAccessKey : "アクセスキー",
+DlgGenName : "Name属性",
+DlgGenTabIndex : "タブインデックス",
+DlgGenLongDescr : "longdesc属性(長文説明)",
+DlgGenClass : "スタイルシートクラス",
+DlgGenTitle : "Title属性",
+DlgGenContType : "Content Type属性",
+DlgGenLinkCharset : "リンクcharset属性",
+DlgGenStyle : "スタイルシート",
+
+// Image Dialog
+DlgImgTitle : "イメージ プロパティ",
+DlgImgInfoTab : "イメージ 情報",
+DlgImgBtnUpload : "サーバーに送信",
+DlgImgURL : "URL",
+DlgImgUpload : "アップロード",
+DlgImgAlt : "代替テキスト",
+DlgImgWidth : "幅",
+DlgImgHeight : "高さ",
+DlgImgLockRatio : "ロック比率",
+DlgBtnResetSize : "サイズリセット",
+DlgImgBorder : "ボーダー",
+DlgImgHSpace : "横間隔",
+DlgImgVSpace : "縦間隔",
+DlgImgAlign : "行揃え",
+DlgImgAlignLeft : "左",
+DlgImgAlignAbsBottom: "下部(絶対的)",
+DlgImgAlignAbsMiddle: "中央(絶対的)",
+DlgImgAlignBaseline : "ベースライン",
+DlgImgAlignBottom : "下",
+DlgImgAlignMiddle : "中央",
+DlgImgAlignRight : "右",
+DlgImgAlignTextTop : "テキスト上部",
+DlgImgAlignTop : "上",
+DlgImgPreview : "プレビュー",
+DlgImgAlertUrl : "イメージのURLを入力してください。",
+DlgImgLinkTab : "リンク",
+
+// Flash Dialog
+DlgFlashTitle : "Flash プロパティ",
+DlgFlashChkPlay : "再生",
+DlgFlashChkLoop : "ループ再生",
+DlgFlashChkMenu : "Flashメニュー可能",
+DlgFlashScale : "拡大縮小設定",
+DlgFlashScaleAll : "すべて表示",
+DlgFlashScaleNoBorder : "外が見えない様に拡大",
+DlgFlashScaleFit : "上下左右にフィット",
+
+// Link Dialog
+DlgLnkWindowTitle : "ハイパーリンク",
+DlgLnkInfoTab : "ハイパーリンク 情報",
+DlgLnkTargetTab : "ターゲット",
+
+DlgLnkType : "リンクタイプ",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "このページのアンカー",
+DlgLnkTypeEMail : "E-Mail",
+DlgLnkProto : "プロトコル",
+DlgLnkProtoOther : "<その他>",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "アンカーを選択",
+DlgLnkAnchorByName : "アンカー名",
+DlgLnkAnchorById : "エレメントID",
+DlgLnkNoAnchors : "<ドキュメントにおいて利用可能なアンカーはありません。>",
+DlgLnkEMail : "E-Mail アドレス",
+DlgLnkEMailSubject : "件名",
+DlgLnkEMailBody : "本文",
+DlgLnkUpload : "アップロード",
+DlgLnkBtnUpload : "サーバーに送信",
+
+DlgLnkTarget : "ターゲット",
+DlgLnkTargetFrame : "<フレーム>",
+DlgLnkTargetPopup : "<ポップアップウィンドウ>",
+DlgLnkTargetBlank : "新しいウィンドウ (_blank)",
+DlgLnkTargetParent : "親ウィンドウ (_parent)",
+DlgLnkTargetSelf : "同じウィンドウ (_self)",
+DlgLnkTargetTop : "最上位ウィンドウ (_top)",
+DlgLnkTargetFrameName : "目的のフレーム名",
+DlgLnkPopWinName : "ポップアップウィンドウ名",
+DlgLnkPopWinFeat : "ポップアップウィンドウ特徴",
+DlgLnkPopResize : "リサイズ可能",
+DlgLnkPopLocation : "ロケーションバー",
+DlgLnkPopMenu : "メニューバー",
+DlgLnkPopScroll : "スクロールバー",
+DlgLnkPopStatus : "ステータスバー",
+DlgLnkPopToolbar : "ツールバー",
+DlgLnkPopFullScrn : "全画面モード(IE)",
+DlgLnkPopDependent : "開いたウィンドウに連動して閉じる (Netscape)",
+DlgLnkPopWidth : "幅",
+DlgLnkPopHeight : "高さ",
+DlgLnkPopLeft : "左端からの座標で指定",
+DlgLnkPopTop : "上端からの座標で指定",
+
+DlnLnkMsgNoUrl : "リンクURLを入力してください。",
+DlnLnkMsgNoEMail : "メールアドレスを入力してください。",
+DlnLnkMsgNoAnchor : "アンカーを選択してください。",
+
+// Color Dialog
+DlgColorTitle : "色選択",
+DlgColorBtnClear : "クリア",
+DlgColorHighlight : "ハイライト",
+DlgColorSelected : "選択色",
+
+// Smiley Dialog
+DlgSmileyTitle : "顔文字挿入",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "特殊文字選択",
+
+// Table Dialog
+DlgTableTitle : "テーブル プロパティ",
+DlgTableRows : "行",
+DlgTableColumns : "列",
+DlgTableBorder : "ボーダーサイズ",
+DlgTableAlign : "キャプションの整列",
+DlgTableAlignNotSet : "<なし>",
+DlgTableAlignLeft : "左",
+DlgTableAlignCenter : "中央",
+DlgTableAlignRight : "右",
+DlgTableWidth : "テーブル幅",
+DlgTableWidthPx : "ピクセル",
+DlgTableWidthPc : "パーセント",
+DlgTableHeight : "テーブル高さ",
+DlgTableCellSpace : "セル内余白",
+DlgTableCellPad : "セル内間隔",
+DlgTableCaption : "キャプション",
+DlgTableSummary : "テーブル目的/構造",
+
+// Table Cell Dialog
+DlgCellTitle : "セル プロパティ",
+DlgCellWidth : "幅",
+DlgCellWidthPx : "ピクセル",
+DlgCellWidthPc : "パーセント",
+DlgCellHeight : "高さ",
+DlgCellWordWrap : "折り返し",
+DlgCellWordWrapNotSet : "<なし>",
+DlgCellWordWrapYes : "Yes",
+DlgCellWordWrapNo : "No",
+DlgCellHorAlign : "セル横の整列",
+DlgCellHorAlignNotSet : "<なし>",
+DlgCellHorAlignLeft : "左",
+DlgCellHorAlignCenter : "中央",
+DlgCellHorAlignRight: "右",
+DlgCellVerAlign : "セル縦の整列",
+DlgCellVerAlignNotSet : "<なし>",
+DlgCellVerAlignTop : "上",
+DlgCellVerAlignMiddle : "中央",
+DlgCellVerAlignBottom : "下",
+DlgCellVerAlignBaseline : "ベースライン",
+DlgCellRowSpan : "縦幅(行数)",
+DlgCellCollSpan : "横幅(列数)",
+DlgCellBackColor : "背景色",
+DlgCellBorderColor : "ボーダーカラー",
+DlgCellBtnSelect : "選択...",
+
+// Find Dialog
+DlgFindTitle : "検索",
+DlgFindFindBtn : "検索",
+DlgFindNotFoundMsg : "指定された文字列は見つかりませんでした。",
+
+// Replace Dialog
+DlgReplaceTitle : "置き換え",
+DlgReplaceFindLbl : "検索する文字列:",
+DlgReplaceReplaceLbl : "置換えする文字列:",
+DlgReplaceCaseChk : "部分一致",
+DlgReplaceReplaceBtn : "置換え",
+DlgReplaceReplAllBtn : "すべて置換え",
+DlgReplaceWordChk : "単語単位で一致",
+
+// Paste Operations / Dialog
+PasteErrorPaste : "ブラウザーのセキュリティ設定によりエディタの貼り付け操作が自動で実行することができません。実行するには手動でキーボードの(Ctrl+V)を使用してください。",
+PasteErrorCut : "ブラウザーのセキュリティ設定によりエディタの切り取り操作が自動で実行することができません。実行するには手動でキーボードの(Ctrl+X)を使用してください。",
+PasteErrorCopy : "ブラウザーのセキュリティ設定によりエディタのコピー操作が自動で実行することができません。実行するには手動でキーボードの(Ctrl+C)を使用してください。",
+
+PasteAsText : "プレーンテキスト貼り付け",
+PasteFromWord : "ワード文章から貼り付け",
+
+DlgPasteMsg2 : "キーボード(Ctrl+V)を使用して、次の入力エリア内で貼って、OKを押してください。",
+DlgPasteIgnoreFont : "FontタグのFace属性を無視します。",
+DlgPasteRemoveStyles : "スタイル定義を削除します。",
+DlgPasteCleanBox : "入力エリアクリア",
+
+// Color Picker
+ColorAutomatic : "自動",
+ColorMoreColors : "その他の色...",
+
+// Document Properties
+DocProps : "文書 プロパティ",
+
+// Anchor Dialog
+DlgAnchorTitle : "アンカー プロパティ",
+DlgAnchorName : "アンカー名",
+DlgAnchorErrorName : "アンカー名を必ず入力してください。",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "辞書にありません",
+DlgSpellChangeTo : "変更",
+DlgSpellBtnIgnore : "無視",
+DlgSpellBtnIgnoreAll : "すべて無視",
+DlgSpellBtnReplace : "置換",
+DlgSpellBtnReplaceAll : "すべて置換",
+DlgSpellBtnUndo : "やり直し",
+DlgSpellNoSuggestions : "- 該当なし -",
+DlgSpellProgress : "スペルチェック処理中...",
+DlgSpellNoMispell : "スペルチェック完了: スペルの誤りはありませんでした",
+DlgSpellNoChanges : "スペルチェック完了: 語句は変更されませんでした",
+DlgSpellOneChange : "スペルチェック完了: 1語句変更されました",
+DlgSpellManyChanges : "スペルチェック完了: %1 語句変更されました",
+
+IeSpellDownload : "スペルチェッカーがインストールされていません。今すぐダウンロードしますか?",
+
+// Button Dialog
+DlgButtonText : "テキスト (値)",
+DlgButtonType : "タイプ",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "名前",
+DlgCheckboxValue : "値",
+DlgCheckboxSelected : "選択済み",
+
+// Form Dialog
+DlgFormName : "フォーム名",
+DlgFormAction : "アクション",
+DlgFormMethod : "メソッド",
+
+// Select Field Dialog
+DlgSelectName : "名前",
+DlgSelectValue : "値",
+DlgSelectSize : "サイズ",
+DlgSelectLines : "行",
+DlgSelectChkMulti : "複数項目選択を許可",
+DlgSelectOpAvail : "利用可能なオプション",
+DlgSelectOpText : "選択項目名",
+DlgSelectOpValue : "選択項目値",
+DlgSelectBtnAdd : "追加",
+DlgSelectBtnModify : "編集",
+DlgSelectBtnUp : "上へ",
+DlgSelectBtnDown : "下へ",
+DlgSelectBtnSetValue : "選択した値を設定",
+DlgSelectBtnDelete : "削除",
+
+// Textarea Dialog
+DlgTextareaName : "名前",
+DlgTextareaCols : "列",
+DlgTextareaRows : "行",
+
+// Text Field Dialog
+DlgTextName : "名前",
+DlgTextValue : "値",
+DlgTextCharWidth : "サイズ",
+DlgTextMaxChars : "最大長",
+DlgTextType : "タイプ",
+DlgTextTypeText : "テキスト",
+DlgTextTypePass : "パスワード入力",
+
+// Hidden Field Dialog
+DlgHiddenName : "名前",
+DlgHiddenValue : "値",
+
+// Bulleted List Dialog
+BulletedListProp : "箇条書き プロパティ",
+NumberedListProp : "段落番号 プロパティ",
+DlgLstType : "タイプ",
+DlgLstTypeCircle : "白丸",
+DlgLstTypeDisc : "黒丸",
+DlgLstTypeSquare : "四角",
+DlgLstTypeNumbers : "アラビア数字 (1, 2, 3)",
+DlgLstTypeLCase : "英字小文字 (a, b, c)",
+DlgLstTypeUCase : "英字大文字 (A, B, C)",
+DlgLstTypeSRoman : "ローマ数字小文字 (i, ii, iii)",
+DlgLstTypeLRoman : "ローマ数字大文字 (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "全般",
+DlgDocBackTab : "背景",
+DlgDocColorsTab : "色とマージン",
+DlgDocMetaTab : "メタデータ",
+
+DlgDocPageTitle : "ページタイトル",
+DlgDocLangDir : "言語文字表記の方向",
+DlgDocLangDirLTR : "左から右に文字表記します(LTR)",
+DlgDocLangDirRTL : "右から左に文字表記します(RTL)",
+DlgDocLangCode : "言語コード",
+DlgDocCharSet : "文字セット符号化",
+DlgDocCharSetOther : "他の文字セット符号化",
+
+DlgDocDocType : "文書タイプヘッダー",
+DlgDocDocTypeOther : "その他文書タイプヘッダー",
+DlgDocIncXHTML : "XHTML宣言をインクルード",
+DlgDocBgColor : "背景色",
+DlgDocBgImage : "背景画像 URL",
+DlgDocBgNoScroll : "スクロールしない背景",
+DlgDocCText : "テキスト",
+DlgDocCLink : "リンク",
+DlgDocCVisited : "アクセス済みリンク",
+DlgDocCActive : "アクセス中リンク",
+DlgDocMargins : "ページ・マージン",
+DlgDocMaTop : "上部",
+DlgDocMaLeft : "左",
+DlgDocMaRight : "右",
+DlgDocMaBottom : "下部",
+DlgDocMeIndex : "文書のキーワード(カンマ区切り)",
+DlgDocMeDescr : "文書の概要",
+DlgDocMeAuthor : "文書の作者",
+DlgDocMeCopy : "文書の著作権",
+DlgDocPreview : "プレビュー",
+
+// Templates Dialog
+Templates : "テンプレート(雛形)",
+DlgTemplatesTitle : "テンプレート内容",
+DlgTemplatesSelMsg : "エディターで使用するテンプレートを選択してください。
(現在のエディタの内容は失われます):",
+DlgTemplatesLoading : "テンプレート一覧読み込み中. しばらくお待ちください...",
+DlgTemplatesNoTpl : "(テンプレートが定義されていません)",
+
+// About Dialog
+DlgAboutAboutTab : "バージョン情報",
+DlgAboutBrowserInfoTab : "ブラウザ情報",
+DlgAboutLicenseTab : "ライセンス",
+DlgAboutVersion : "バージョン",
+DlgAboutLicense : "Licensed under the terms of the GNU Lesser General Public License",
+DlgAboutInfo : "より詳しい情報はこちらで"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/km.js b/htdocs/includes/fckeditor/editor/lang/km.js
new file mode 100644
index 00000000000..00311e68cea
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/km.js
@@ -0,0 +1,486 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: km.js
+ * Khmer language file.
+ *
+ * File Authors:
+ * Chay Sengtha (sengtha@e-khmer.com - http://translate.e-khmer.net)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "បង្រួមរបាឧបរកណ៍",
+ToolbarExpand : "ពង្រីករបាឧបរណ៍",
+
+// Toolbar Items and Context Menu
+Save : "រក្សាទុក",
+NewPage : "ទំព័រថ្មី",
+Preview : "មើលសាកល្បង",
+Cut : "កាត់យក",
+Copy : "ចំលងយក",
+Paste : "ចំលងដាក់",
+PasteText : "ចំលងដាក់ជាអត្ថបទធម្មតា",
+PasteWord : "ចំលងដាក់ពី Word",
+Print : "បោះពុម្ភ",
+SelectAll : "ជ្រើសរើសទាំងអស់",
+RemoveFormat : "លប់ចោល ការរចនា",
+InsertLinkLbl : "ឈ្នាប់",
+InsertLink : "បន្ថែម/កែប្រែ ឈ្នាប់",
+RemoveLink : "លប់ឈ្នាប់",
+Anchor : "បន្ថែម/កែប្រែ យុថ្កា",
+InsertImageLbl : "រូបភាព",
+InsertImage : "បន្ថែម/កែប្រែ រូបភាព",
+InsertFlashLbl : "Flash",
+InsertFlash : "បន្ថែម/កែប្រែ Flash",
+InsertTableLbl : "តារាង",
+InsertTable : "បន្ថែម/កែប្រែ តារាង",
+InsertLineLbl : "បន្ទាត់",
+InsertLine : "បន្ថែមបន្ទាត់ផ្តេក",
+InsertSpecialCharLbl: "អក្សរពិសេស",
+InsertSpecialChar : "បន្ថែមអក្សរពិសេស",
+InsertSmileyLbl : "រូបភាព",
+InsertSmiley : "បន្ថែម រូបភាព",
+About : "អំពី FCKeditor",
+Bold : "អក្សរដិតធំ",
+Italic : "អក្សរផ្តេក",
+Underline : "ដិតបន្ទាត់ពីក្រោមអក្សរ",
+StrikeThrough : "ដិតបន្ទាត់ពាក់កណ្តាលអក្សរ",
+Subscript : "អក្សរតូចក្រោម",
+Superscript : "អក្សរតូចលើ",
+LeftJustify : "តំរឹមឆ្វេង",
+CenterJustify : "តំរឹមកណ្តាល",
+RightJustify : "តំរឹមស្តាំ",
+BlockJustify : "តំរឹមសងខាង",
+DecreaseIndent : "បន្ថយការចូលបន្ទាត់",
+IncreaseIndent : "បន្ថែមការចូលបន្ទាត់",
+Undo : "សារឡើងវិញ",
+Redo : "ធ្វើឡើងវិញ",
+NumberedListLbl : "បញ្ជីជាអក្សរ",
+NumberedList : "បន្ថែម/លប់ បញ្ជីជាអក្សរ",
+BulletedListLbl : "បញ្ជីជារង្វង់មូល",
+BulletedList : "បន្ថែម/លប់ បញ្ជីជារង្វង់មូល",
+ShowTableBorders : "បង្ហាញស៊ុមតារាង",
+ShowDetails : "បង្ហាញពិស្តារ",
+Style : "ម៉ូត",
+FontFormat : "រចនា",
+Font : "ហ្វុង",
+FontSize : "ទំហំ",
+TextColor : "ពណ៌អក្សរ",
+BGColor : "ពណ៌ផ្ទៃខាងក្រោយ",
+Source : "កូត",
+Find : "ស្វែងរក",
+Replace : "ជំនួស",
+SpellCheck : "ពិនិត្យអក្ខរាវិរុទ្ធ",
+UniversalKeyboard : "ក្តារពុម្ភអក្សរសកល",
+PageBreakLbl : "ការផ្តាច់ទំព័រ",
+PageBreak : "បន្ថែម ការផ្តាច់ទំព័រ",
+
+Form : "បែបបទ",
+Checkbox : "ប្រអប់ជ្រើសរើស",
+RadioButton : "ប៉ូតុនរង្វង់មូល",
+TextField : "ជួរសរសេរអត្ថបទ",
+Textarea : "តំបន់សរសេរអត្ថបទ",
+HiddenField : "ជួរលាក់",
+Button : "ប៉ូតុន",
+SelectionField : "ជួរជ្រើសរើស",
+ImageButton : "ប៉ូតុនរូបភាព",
+
+FitWindow : "Maximize the editor size", //MISSING
+
+// Context Menu
+EditLink : "កែប្រែឈ្នាប់",
+CellCM : "Cell", //MISSING
+RowCM : "Row", //MISSING
+ColumnCM : "Column", //MISSING
+InsertRow : "បន្ថែមជួរផ្តេក",
+DeleteRows : "លប់ជួរផ្តេក",
+InsertColumn : "បន្ថែមជួរឈរ",
+DeleteColumns : "លប់ជួរឈរ",
+InsertCell : "បន្ថែម សែល",
+DeleteCells : "លប់សែល",
+MergeCells : "បញ្ជូលសែល",
+SplitCell : "ផ្តាច់សែល",
+TableDelete : "លប់តារាង",
+CellProperties : "ការកំណត់សែល",
+TableProperties : "ការកំណត់តារាង",
+ImageProperties : "ការកំណត់រូបភាព",
+FlashProperties : "ការកំណត់ Flash",
+
+AnchorProp : "ការកំណត់យុថ្កា",
+ButtonProp : "ការកំណត់ ប៉ូតុន",
+CheckboxProp : "ការកំណត់ប្រអប់ជ្រើសរើស",
+HiddenFieldProp : "ការកំណត់ជួរលាក់",
+RadioButtonProp : "ការកំណត់ប៉ូតុនរង្វង់",
+ImageButtonProp : "ការកំណត់ប៉ូតុនរូបភាព",
+TextFieldProp : "ការកំណត់ជួរអត្ថបទ",
+SelectionFieldProp : "ការកំណត់ជួរជ្រើសរើស",
+TextareaProp : "ការកំណត់កន្លែងសរសេរអត្ថបទ",
+FormProp : "ការកំណត់បែបបទ",
+
+FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML : "កំពុងដំណើរការ XHTML ។ សូមរងចាំ...",
+Done : "ចប់រួចរាល់",
+PasteWordConfirm : "អត្ថបទដែលលោកអ្នកបំរុងចំលងដាក់ ហាក់បីដូចជាត្រូវចំលងមកពីកម្មវិធីWord។ តើលោកអ្នកចង់សំអាតមុនចំលងអត្ថបទដាក់ទេ?",
+NotCompatiblePaste : "ពាក្យបញ្ជានេះប្រើបានតែជាមួយ Internet Explorer កំរិត 5.5 រឺ លើសនេះ ។ តើលោកអ្នកចង់ចំលងដាក់ដោយមិនចាំបាច់សំអាតទេ?",
+UnknownToolbarItem : "វត្ថុលើរបាឧបរកណ៍ មិនស្គាល់ \"%1\"",
+UnknownCommand : "ឈ្មោះពាក្យបញ្ជា មិនស្គាល់ \"%1\"",
+NotImplemented : "ពាក្យបញ្ជា មិនបានអនុវត្ត",
+UnknownToolbarSet : "របាឧបរកណ៍ \"%1\" ពុំមាន ។",
+NoActiveX : "ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះអាចធ្វើអោយលោកអ្នកមិនអាចប្រើមុខងារខ្លះរបស់កម្មវិធីតាក់តែងអត្ថបទនេះ ។ លោកអ្នកត្រូវកំណត់អោយ \"ActiveX និងកម្មវិធីជំនួយក្នុង (plug-ins)\" អោយដំណើរការ ។ លោកអ្នកអាចជួបប្រទះនឹង បញ្ហា ព្រមជាមួយនឹងការបាត់បង់មុខងារណាមួយរបស់កម្មវិធីតាក់តែងអត្ថបទនេះ ។",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.", //MISSING
+DialogBlocked : "វីនដូវមិនអាចបើកបានទេ ។ សូមពិនិត្យចំពោះកម្មវិធីបិទ វីនដូវលោត (popup) ថាតើវាដំណើរការរឺទេ ។",
+
+// Dialogs
+DlgBtnOK : "យល់ព្រម",
+DlgBtnCancel : "មិនយល់ព្រម",
+DlgBtnClose : "បិទ",
+DlgBtnBrowseServer : "មើល",
+DlgAdvancedTag : "កំរិតខ្ពស់",
+DlgOpOther : "<ផ្សេងទៅត>",
+DlgInfoTab : "ពត៌មាន",
+DlgAlertUrl : "សូមសរសេរ URL",
+
+// General Dialogs Labels
+DlgGenNotSet : "<មិនមែន>",
+DlgGenId : "Id",
+DlgGenLangDir : "ទិសដៅភាសា",
+DlgGenLangDirLtr : "ពីឆ្វេងទៅស្តាំ(LTR)",
+DlgGenLangDirRtl : "ពីស្តាំទៅឆ្វេង(RTL)",
+DlgGenLangCode : "លេខកូតភាសា",
+DlgGenAccessKey : "ឃី សំរាប់ចូល",
+DlgGenName : "ឈ្មោះ",
+DlgGenTabIndex : "លេខ Tab",
+DlgGenLongDescr : "អធិប្បាយ URL វែង",
+DlgGenClass : "Stylesheet Classes",
+DlgGenTitle : "ចំណងជើង ប្រឹក្សា",
+DlgGenContType : "ប្រភេទអត្ថបទ ប្រឹក្សា",
+DlgGenLinkCharset : "លេខកូតអក្សររបស់ឈ្នាប់",
+DlgGenStyle : "ម៉ូត",
+
+// Image Dialog
+DlgImgTitle : "ការកំណត់រូបភាព",
+DlgImgInfoTab : "ពត៌មានអំពីរូបភាព",
+DlgImgBtnUpload : "បញ្ជូនទៅកាន់ម៉ាស៊ីនផ្តល់សេវា",
+DlgImgURL : "URL",
+DlgImgUpload : "ទាញយក",
+DlgImgAlt : "អត្ថបទជំនួស",
+DlgImgWidth : "ទទឹង",
+DlgImgHeight : "កំពស់",
+DlgImgLockRatio : "អត្រាឡុក",
+DlgBtnResetSize : "កំណត់ទំហំឡើងវិញ",
+DlgImgBorder : "ស៊ុម",
+DlgImgHSpace : "គំលាតទទឹង",
+DlgImgVSpace : "គំលាតបណ្តោយ",
+DlgImgAlign : "កំណត់ទីតាំង",
+DlgImgAlignLeft : "ខាងឆ្វង",
+DlgImgAlignAbsBottom: "Abs Bottom", //MISSING
+DlgImgAlignAbsMiddle: "Abs Middle", //MISSING
+DlgImgAlignBaseline : "បន្ទាត់ជាមូលដ្ឋាន",
+DlgImgAlignBottom : "ខាងក្រោម",
+DlgImgAlignMiddle : "កណ្តាល",
+DlgImgAlignRight : "ខាងស្តាំ",
+DlgImgAlignTextTop : "លើអត្ថបទ",
+DlgImgAlignTop : "ខាងលើ",
+DlgImgPreview : "មើលសាកល្បង",
+DlgImgAlertUrl : "សូមសរសេរងាស័យដ្ឋានរបស់រូបភាព",
+DlgImgLinkTab : "ឈ្នាប់",
+
+// Flash Dialog
+DlgFlashTitle : "ការកំណត់ Flash",
+DlgFlashChkPlay : "លេងដោយស្វ័យប្រវត្ត",
+DlgFlashChkLoop : "ចំនួនដង",
+DlgFlashChkMenu : "បង្ហាញ មឺនុយរបស់ Flash",
+DlgFlashScale : "ទំហំ",
+DlgFlashScaleAll : "បង្ហាញទាំងអស់",
+DlgFlashScaleNoBorder : "មិនបង្ហាញស៊ុម",
+DlgFlashScaleFit : "ត្រូវល្មម",
+
+// Link Dialog
+DlgLnkWindowTitle : "ឈ្នាប់",
+DlgLnkInfoTab : "ពត៌មានអំពីឈ្នាប់",
+DlgLnkTargetTab : "គោលដៅ",
+
+DlgLnkType : "ប្រភេទឈ្នាប់",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "យុថ្កានៅក្នុងទំព័រនេះ",
+DlgLnkTypeEMail : "អ៊ីមែល",
+DlgLnkProto : "ប្រូតូកូល",
+DlgLnkProtoOther : "<ផ្សេងទៀត>",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "ជ្រើសរើសយុថ្កា",
+DlgLnkAnchorByName : "តាមឈ្មោះរបស់យុថ្កា",
+DlgLnkAnchorById : "តាម Id",
+DlgLnkNoAnchors : "<ពុំមានយុថ្កានៅក្នុងឯកសារនេះទេ>",
+DlgLnkEMail : "អ៊ីមែល",
+DlgLnkEMailSubject : "ចំណងជើងអត្ថបទ",
+DlgLnkEMailBody : "អត្ថបទ",
+DlgLnkUpload : "ទាញយក",
+DlgLnkBtnUpload : "ទាញយក",
+
+DlgLnkTarget : "គោលដៅ",
+DlgLnkTargetFrame : "<ហ្វ្រេម>",
+DlgLnkTargetPopup : "<វីនដូវ លោត>",
+DlgLnkTargetBlank : "វីនដូវថ្មី (_blank)",
+DlgLnkTargetParent : "វីនដូវមេ (_parent)",
+DlgLnkTargetSelf : "វីនដូវដដែល (_self)",
+DlgLnkTargetTop : "វីនដូវនៅលើគេ(_top)",
+DlgLnkTargetFrameName : "ឈ្មោះហ្រ្វេមដែលជាគោលដៅ",
+DlgLnkPopWinName : "ឈ្មោះវីនដូវលោត",
+DlgLnkPopWinFeat : "លក្ខណះរបស់វីនដូលលោត",
+DlgLnkPopResize : "ទំហំអាចផ្លាស់ប្តូរ",
+DlgLnkPopLocation : "របា ទីតាំង",
+DlgLnkPopMenu : "របា មឺនុយ",
+DlgLnkPopScroll : "របា ទាញ",
+DlgLnkPopStatus : "របា ពត៌មាន",
+DlgLnkPopToolbar : "របា ឩបករណ៍",
+DlgLnkPopFullScrn : "អេក្រុងពេញ(IE)",
+DlgLnkPopDependent : "អាស្រ័យលើ (Netscape)",
+DlgLnkPopWidth : "ទទឹង",
+DlgLnkPopHeight : "កំពស់",
+DlgLnkPopLeft : "ទីតាំងខាងឆ្វេង",
+DlgLnkPopTop : "ទីតាំងខាងលើ",
+
+DlnLnkMsgNoUrl : "សូមសរសេរ អាស័យដ្ឋាន URL",
+DlnLnkMsgNoEMail : "សូមសរសេរ អាស័យដ្ឋាន អ៊ីមែល",
+DlnLnkMsgNoAnchor : "សូមជ្រើសរើស យុថ្កា",
+
+// Color Dialog
+DlgColorTitle : "ជ្រើសរើស ពណ៌",
+DlgColorBtnClear : "លប់",
+DlgColorHighlight : "ផាត់ពណ៌",
+DlgColorSelected : "បានជ្រើសរើស",
+
+// Smiley Dialog
+DlgSmileyTitle : "បញ្ជូលរូបភាព",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "តូអក្សរពិសេស",
+
+// Table Dialog
+DlgTableTitle : "ការកំណត់ តារាង",
+DlgTableRows : "ជួរផ្តេក",
+DlgTableColumns : "ជួរឈរ",
+DlgTableBorder : "ទំហំស៊ុម",
+DlgTableAlign : "ការកំណត់ទីតាំង",
+DlgTableAlignNotSet : "<មិនកំណត់>",
+DlgTableAlignLeft : "ខាងឆ្វេង",
+DlgTableAlignCenter : "កណ្តាល",
+DlgTableAlignRight : "ខាងស្តាំ",
+DlgTableWidth : "ទទឹង",
+DlgTableWidthPx : "ភីកសែល",
+DlgTableWidthPc : "ភាគរយ",
+DlgTableHeight : "កំពស់",
+DlgTableCellSpace : "គំលាតសែល",
+DlgTableCellPad : "គែមសែល",
+DlgTableCaption : "ចំណងជើង",
+DlgTableSummary : "សេចក្តីសង្ខេប",
+
+// Table Cell Dialog
+DlgCellTitle : "ការកំណត់ សែល",
+DlgCellWidth : "ទទឹង",
+DlgCellWidthPx : "ភីកសែល",
+DlgCellWidthPc : "ភាគរយ",
+DlgCellHeight : "កំពស់",
+DlgCellWordWrap : "បង្ហាញអត្ថបទទាំងអស់",
+DlgCellWordWrapNotSet : "<មិនកំណត់>",
+DlgCellWordWrapYes : "បាទ(ចា)",
+DlgCellWordWrapNo : "ទេ",
+DlgCellHorAlign : "តំរឹមផ្តេក",
+DlgCellHorAlignNotSet : "<មិនកំណត់>",
+DlgCellHorAlignLeft : "ខាងឆ្វេង",
+DlgCellHorAlignCenter : "កណ្តាល",
+DlgCellHorAlignRight: "Right", //MISSING
+DlgCellVerAlign : "តំរឹមឈរ",
+DlgCellVerAlignNotSet : "<មិនកណត់>",
+DlgCellVerAlignTop : "ខាងលើ",
+DlgCellVerAlignMiddle : "កណ្តាល",
+DlgCellVerAlignBottom : "ខាងក្រោម",
+DlgCellVerAlignBaseline : "បន្ទាត់ជាមូលដ្ឋាន",
+DlgCellRowSpan : "បញ្ជូលជួរផ្តេក",
+DlgCellCollSpan : "បញ្ជូលជួរឈរ",
+DlgCellBackColor : "ពណ៌ផ្នែកខាងក្រោម",
+DlgCellBorderColor : "ពណ៌ស៊ុម",
+DlgCellBtnSelect : "ជ្រើសរើស...",
+
+// Find Dialog
+DlgFindTitle : "ស្វែងរក",
+DlgFindFindBtn : "ស្វែងរក",
+DlgFindNotFoundMsg : "ពាក្យនេះ រកមិនឃើញទេ ។",
+
+// Replace Dialog
+DlgReplaceTitle : "ជំនួស",
+DlgReplaceFindLbl : "ស្វែងរកអ្វី:",
+DlgReplaceReplaceLbl : "ជំនួសជាមួយ:",
+DlgReplaceCaseChk : "ករណ៉ត្រូវរក",
+DlgReplaceReplaceBtn : "ជំនួស",
+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)។",
+
+PasteAsText : "ចំលងដាក់អត្ថបទធម្មតា",
+PasteFromWord : "ចំលងពាក្យពីកម្មវិធី Word",
+
+DlgPasteMsg2 : "សូមចំលងអត្ថបទទៅដាក់ក្នុងប្រអប់ដូចខាងក្រោមដោយប្រើប្រាស់ ឃី (Ctrl+V) ហើយចុច OK ។",
+DlgPasteIgnoreFont : "មិនគិតអំពីប្រភេទពុម្ភអក្សរ",
+DlgPasteRemoveStyles : "លប់ម៉ូត",
+DlgPasteCleanBox : "លប់អត្ថបទចេញពីប្រអប់",
+
+// Color Picker
+ColorAutomatic : "ស្វ័យប្រវត្ត",
+ColorMoreColors : "ពណ៌ផ្សេងទៀត..",
+
+// Document Properties
+DocProps : "ការកំណត់ ឯកសារ",
+
+// Anchor Dialog
+DlgAnchorTitle : "ការកំណត់ចំណងជើងយុទ្ធថ្កា",
+DlgAnchorName : "ឈ្មោះយុទ្ធថ្កា",
+DlgAnchorErrorName : "សូមសរសេរ ឈ្មោះយុទ្ធថ្កា",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "គ្មានក្នុងវចនានុក្រម",
+DlgSpellChangeTo : "ផ្លាស់ប្តូរទៅ",
+DlgSpellBtnIgnore : "មិនផ្លាស់ប្តូរ",
+DlgSpellBtnIgnoreAll : "មិនផ្លាស់ប្តូរ ទាំងអស់",
+DlgSpellBtnReplace : "ជំនួស",
+DlgSpellBtnReplaceAll : "ជំនួសទាំងអស់",
+DlgSpellBtnUndo : "សារឡើងវិញ",
+DlgSpellNoSuggestions : "- គ្មានសំណើរ -",
+DlgSpellProgress : "កំពុងពិនិត្យអក្ខរាវិរុទ្ធ...",
+DlgSpellNoMispell : "ការពិនិត្យអក្ខរាវិរុទ្ធបានចប់: គ្មានកំហុស",
+DlgSpellNoChanges : "ការពិនិត្យអក្ខរាវិរុទ្ធបានចប់: ពុំមានផ្លាស់ប្តូរ",
+DlgSpellOneChange : "ការពិនិត្យអក្ខរាវិរុទ្ធបានចប់: ពាក្យមួយត្រូចបានផ្លាស់ប្តូរ",
+DlgSpellManyChanges : "ការពិនិត្យអក្ខរាវិរុទ្ធបានចប់: %1 ពាក្យបានផ្លាស់ប្តូរ",
+
+IeSpellDownload : "ពុំមានកម្មវិធីពិនិត្យអក្ខរាវិរុទ្ធ ។ តើចង់ទាញយកពីណា?",
+
+// Button Dialog
+DlgButtonText : "អត្ថបទ(តំលៃ)",
+DlgButtonType : "ប្រភេទ",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "ឈ្មោះ",
+DlgCheckboxValue : "តំលៃ",
+DlgCheckboxSelected : "បានជ្រើសរើស",
+
+// Form Dialog
+DlgFormName : "ឈ្មោះ",
+DlgFormAction : "សកម្មភាព",
+DlgFormMethod : "វិធី",
+
+// Select Field Dialog
+DlgSelectName : "ឈ្មោះ",
+DlgSelectValue : "តំលៃ",
+DlgSelectSize : "ទំហំ",
+DlgSelectLines : "បន្ទាត់",
+DlgSelectChkMulti : "អនុញ្ញាតអោយជ្រើសរើសច្រើន",
+DlgSelectOpAvail : "ការកំណត់ជ្រើសរើស ដែលអាចកំណត់បាន",
+DlgSelectOpText : "ពាក្យ",
+DlgSelectOpValue : "តំលៃ",
+DlgSelectBtnAdd : "បន្ថែម",
+DlgSelectBtnModify : "ផ្លាស់ប្តូរ",
+DlgSelectBtnUp : "លើ",
+DlgSelectBtnDown : "ក្រោម",
+DlgSelectBtnSetValue : "Set as selected value", //MISSING
+DlgSelectBtnDelete : "លប់",
+
+// Textarea Dialog
+DlgTextareaName : "ឈ្មោះ",
+DlgTextareaCols : "ជូរឈរ",
+DlgTextareaRows : "ជូរផ្តេក",
+
+// Text Field Dialog
+DlgTextName : "ឈ្មោះ",
+DlgTextValue : "តំលៃ",
+DlgTextCharWidth : "ទទឹង អក្សរ",
+DlgTextMaxChars : "អក្សរអតិបរិមា",
+DlgTextType : "ប្រភេទ",
+DlgTextTypeText : "ពាក្យ",
+DlgTextTypePass : "ពាក្យសំងាត់",
+
+// Hidden Field Dialog
+DlgHiddenName : "ឈ្មោះ",
+DlgHiddenValue : "តំលៃ",
+
+// Bulleted List Dialog
+BulletedListProp : "កំណត់បញ្ជីរង្វង់",
+NumberedListProp : "កំណត់បញ្េជីលេខ",
+DlgLstType : "ប្រភេទ",
+DlgLstTypeCircle : "រង្វង់",
+DlgLstTypeDisc : "Disc",
+DlgLstTypeSquare : "ការេ",
+DlgLstTypeNumbers : "លេខ(1, 2, 3)",
+DlgLstTypeLCase : "អក្សរតូច(a, b, c)",
+DlgLstTypeUCase : "អក្សរធំ(A, B, C)",
+DlgLstTypeSRoman : "អក្សរឡាតាំងតូច(i, ii, iii)",
+DlgLstTypeLRoman : "អក្សរឡាតាំងធំ(I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "ទូទៅ",
+DlgDocBackTab : "ផ្នែកខាងក្រោយ",
+DlgDocColorsTab : "ទំព័រនិង ស៊ុម",
+DlgDocMetaTab : "ទិន្នន័យមេ",
+
+DlgDocPageTitle : "ចំណងជើងទំព័រ",
+DlgDocLangDir : "ទិសដៅសរសេរភាសា",
+DlgDocLangDirLTR : "ពីឆ្វេងទៅស្ដាំ(LTR)",
+DlgDocLangDirRTL : "ពីស្ដាំទៅឆ្វេង(RTL)",
+DlgDocLangCode : "លេខកូតភាសា",
+DlgDocCharSet : "កំណត់លេខកូតភាសា",
+DlgDocCharSetOther : "កំណត់លេខកូតភាសាផ្សេងទៀត",
+
+DlgDocDocType : "ប្រភេទក្បាលទំព័រ",
+DlgDocDocTypeOther : "ប្រភេទក្បាលទំព័រផ្សេងទៀត",
+DlgDocIncXHTML : "បញ្ជូល XHTML",
+DlgDocBgColor : "ពណ៌ខាងក្រោម",
+DlgDocBgImage : "URL របស់រូបភាពខាងក្រោម",
+DlgDocBgNoScroll : "ទំព័រក្រោមមិនប្តូរ",
+DlgDocCText : "អត្តបទ",
+DlgDocCLink : "ឈ្នាប់",
+DlgDocCVisited : "ឈ្នាប់មើលហើយ",
+DlgDocCActive : "ឈ្នាប់កំពុងមើល",
+DlgDocMargins : "ស៊ុមទំព័រ",
+DlgDocMaTop : "លើ",
+DlgDocMaLeft : "ឆ្វេង",
+DlgDocMaRight : "ស្ដាំ",
+DlgDocMaBottom : "ក្រោម",
+DlgDocMeIndex : "ពាក្យនៅក្នុងឯកសារ (ផ្តាច់ពីគ្នាដោយក្បៀស)",
+DlgDocMeDescr : "សេចក្តីអត្ថាធិប្បាយអំពីឯកសារ",
+DlgDocMeAuthor : "អ្នកនិពន្ធ",
+DlgDocMeCopy : "រក្សាសិទ្ធិ៏",
+DlgDocPreview : "មើលសាកល្បង",
+
+// Templates Dialog
+Templates : "ឯកសារគំរូ",
+DlgTemplatesTitle : "ឯកសារគំរូ របស់អត្ថន័យ",
+DlgTemplatesSelMsg : "សូមជ្រើសរើសឯកសារគំរូ ដើម្បីបើកនៅក្នុងកម្មវិធីតាក់តែងអត្ថបទ
(អត្ថបទនឹងបាត់បង់):",
+DlgTemplatesLoading : "កំពុងអានបញ្ជីឯកសារគំរូ ។ សូមរងចាំ...",
+DlgTemplatesNoTpl : "(ពុំមានឯកសារគំរូត្រូវបានកំណត់)",
+
+// About Dialog
+DlgAboutAboutTab : "អំពី",
+DlgAboutBrowserInfoTab : "ព៌តមានកម្មវិធីរុករក",
+DlgAboutLicenseTab : "License", //MISSING
+DlgAboutVersion : "ជំនាន់",
+DlgAboutLicense : "Licensed under the terms of the GNU Lesser General Public License",
+DlgAboutInfo : "សំរាប់ព៌តមានផ្សេងទៀត សូមទាក់ទង"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/ko.js b/htdocs/includes/fckeditor/editor/lang/ko.js
new file mode 100644
index 00000000000..48f8427d464
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/ko.js
@@ -0,0 +1,487 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: ko.js
+ * Korean language file.
+ *
+ * File Authors:
+ * Taehwan Kwag (thkwag@nate.com)
+ * Hyung-chae, Kim (chaeya@gmail.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "툴바 감추기",
+ToolbarExpand : "툴바 보이기",
+
+// Toolbar Items and Context Menu
+Save : "저장하기",
+NewPage : "새 문서",
+Preview : "미리보기",
+Cut : "잘라내기",
+Copy : "복사하기",
+Paste : "붙여넣기",
+PasteText : "텍스트로 붙여넣기",
+PasteWord : "MS Word 형식에서 붙여넣기",
+Print : "인쇄하기",
+SelectAll : "전체선택",
+RemoveFormat : "포맷 지우기",
+InsertLinkLbl : "링크",
+InsertLink : "링크 삽입/변경",
+RemoveLink : "링크 삭제",
+Anchor : "책갈피 삽입/변경",
+InsertImageLbl : "이미지",
+InsertImage : "이미지 삽입/변경",
+InsertFlashLbl : "플래쉬",
+InsertFlash : "플래쉬 삽입/변경",
+InsertTableLbl : "표",
+InsertTable : "표 삽입/변경",
+InsertLineLbl : "수평선",
+InsertLine : "수평선 삽입",
+InsertSpecialCharLbl: "특수문자 삽입",
+InsertSpecialChar : "특수문자 삽입",
+InsertSmileyLbl : "아이콘",
+InsertSmiley : "아이콘 삽입",
+About : "FCKeditor에 대하여",
+Bold : "진하게",
+Italic : "이텔릭",
+Underline : "밑줄",
+StrikeThrough : "취소선",
+Subscript : "아래 첨자",
+Superscript : "위 첨자",
+LeftJustify : "왼쪽 정렬",
+CenterJustify : "가운데 정렬",
+RightJustify : "오른쪽 정렬",
+BlockJustify : "양쪽 맞춤",
+DecreaseIndent : "내어쓰기",
+IncreaseIndent : "들여쓰기",
+Undo : "취소",
+Redo : "재실행",
+NumberedListLbl : "순서있는 목록",
+NumberedList : "순서있는 목록",
+BulletedListLbl : "순서없는 목록",
+BulletedList : "순서없는 목록",
+ShowTableBorders : "표 테두리 보기",
+ShowDetails : "문서기호 보기",
+Style : "스타일",
+FontFormat : "포맷",
+Font : "폰트",
+FontSize : "글자 크기",
+TextColor : "글자 색상",
+BGColor : "배경 색상",
+Source : "소스",
+Find : "찾기",
+Replace : "바꾸기",
+SpellCheck : "철자검사",
+UniversalKeyboard : "다국어 입력기",
+PageBreakLbl : "Page Break", //MISSING
+PageBreak : "Insert Page Break", //MISSING
+
+Form : "폼",
+Checkbox : "체크박스",
+RadioButton : "라디오버튼",
+TextField : "입력필드",
+Textarea : "입력영역",
+HiddenField : "숨김필드",
+Button : "버튼",
+SelectionField : "펼침목록",
+ImageButton : "이미지버튼",
+
+FitWindow : "Maximize the editor size", //MISSING
+
+// Context Menu
+EditLink : "링크 수정",
+CellCM : "Cell", //MISSING
+RowCM : "Row", //MISSING
+ColumnCM : "Column", //MISSING
+InsertRow : "가로줄 삽입",
+DeleteRows : "가로줄 삭제",
+InsertColumn : "세로줄 삽입",
+DeleteColumns : "세로줄 삭제",
+InsertCell : "셀 삽입",
+DeleteCells : "셀 삭제",
+MergeCells : "셀 합치기",
+SplitCell : "셀 나누기",
+TableDelete : "Delete Table", //MISSING
+CellProperties : "셀 속성",
+TableProperties : "표 속성",
+ImageProperties : "이미지 속성",
+FlashProperties : "플래쉬 속성",
+
+AnchorProp : "책갈피 속성",
+ButtonProp : "버튼 속성",
+CheckboxProp : "체크박스 속성",
+HiddenFieldProp : "숨김필드 속성",
+RadioButtonProp : "라디오버튼 속성",
+ImageButtonProp : "이미지버튼 속성",
+TextFieldProp : "입력필드 속성",
+SelectionFieldProp : "펼침목록 속성",
+TextareaProp : "입력영역 속성",
+FormProp : "폼 속성",
+
+FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",
+
+// Alerts and Messages
+ProcessingXHTML : "XHTML 처리중. 잠시만 기다려주십시요.",
+Done : "완료",
+PasteWordConfirm : "붙여넣기 할 텍스트는 MS Word에서 복사한 것입니다. 붙여넣기 전에 MS Word 포멧을 삭제하시겠습니까?",
+NotCompatiblePaste : "이 명령은 인터넷익스플로러 5.5 버전 이상에서만 작동합니다. 포멧을 삭제하지 않고 붙여넣기 하시겠습니까?",
+UnknownToolbarItem : "알수없는 툴바입니다. : \"%1\"",
+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
+
+// Dialogs
+DlgBtnOK : "예",
+DlgBtnCancel : "아니오",
+DlgBtnClose : "닫기",
+DlgBtnBrowseServer : "서버 보기",
+DlgAdvancedTag : "자세히",
+DlgOpOther : "<기타>",
+DlgInfoTab : "정보",
+DlgAlertUrl : "URL을 입력하십시요",
+
+// General Dialogs Labels
+DlgGenNotSet : "<설정되지 않음>",
+DlgGenId : "ID",
+DlgGenLangDir : "쓰기 방향",
+DlgGenLangDirLtr : "왼쪽에서 오른쪽 (LTR)",
+DlgGenLangDirRtl : "오른쪽에서 왼쪽 (RTL)",
+DlgGenLangCode : "언어 코드",
+DlgGenAccessKey : "엑세스 키",
+DlgGenName : "Name",
+DlgGenTabIndex : "탭 순서",
+DlgGenLongDescr : "URL 설명",
+DlgGenClass : "Stylesheet Classes",
+DlgGenTitle : "Advisory Title",
+DlgGenContType : "Advisory Content Type",
+DlgGenLinkCharset : "Linked Resource Charset",
+DlgGenStyle : "Style",
+
+// Image Dialog
+DlgImgTitle : "이미지 설정",
+DlgImgInfoTab : "이미지 정보",
+DlgImgBtnUpload : "서버로 전송",
+DlgImgURL : "URL",
+DlgImgUpload : "업로드",
+DlgImgAlt : "이미지 설명",
+DlgImgWidth : "너비",
+DlgImgHeight : "높이",
+DlgImgLockRatio : "비율 유지",
+DlgBtnResetSize : "원래 크기로",
+DlgImgBorder : "테두리",
+DlgImgHSpace : "수평여백",
+DlgImgVSpace : "수직여백",
+DlgImgAlign : "정렬",
+DlgImgAlignLeft : "왼쪽",
+DlgImgAlignAbsBottom: "줄아래(Abs Bottom)",
+DlgImgAlignAbsMiddle: "줄중간(Abs Middle)",
+DlgImgAlignBaseline : "기준선",
+DlgImgAlignBottom : "아래",
+DlgImgAlignMiddle : "중간",
+DlgImgAlignRight : "오른쪽",
+DlgImgAlignTextTop : "글자위(Text Top)",
+DlgImgAlignTop : "위",
+DlgImgPreview : "미리보기",
+DlgImgAlertUrl : "이미지 URL을 입력하십시요",
+DlgImgLinkTab : "링크",
+
+// Flash Dialog
+DlgFlashTitle : "플래쉬 등록정보",
+DlgFlashChkPlay : "자동재생",
+DlgFlashChkLoop : "반복",
+DlgFlashChkMenu : "플래쉬메뉴 가능",
+DlgFlashScale : "영역",
+DlgFlashScaleAll : "모두보기",
+DlgFlashScaleNoBorder : "경계선없음",
+DlgFlashScaleFit : "영역자동조절",
+
+// Link Dialog
+DlgLnkWindowTitle : "링크",
+DlgLnkInfoTab : "링크 정보",
+DlgLnkTargetTab : "타겟",
+
+DlgLnkType : "링크 종류",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "책갈피",
+DlgLnkTypeEMail : "이메일",
+DlgLnkProto : "프로토콜",
+DlgLnkProtoOther : "<기타>",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "책갈피 선택",
+DlgLnkAnchorByName : "책갈피 이름",
+DlgLnkAnchorById : "책갈피 ID",
+DlgLnkNoAnchors : "<문서에 책갈피가 없습니다.>",
+DlgLnkEMail : "이메일 주소",
+DlgLnkEMailSubject : "제목",
+DlgLnkEMailBody : "내용",
+DlgLnkUpload : "업로드",
+DlgLnkBtnUpload : "서버로 전송",
+
+DlgLnkTarget : "타겟",
+DlgLnkTargetFrame : "<프레임>",
+DlgLnkTargetPopup : "<팝업창>",
+DlgLnkTargetBlank : "새 창 (_blank)",
+DlgLnkTargetParent : "부모 창 (_parent)",
+DlgLnkTargetSelf : "현재 창 (_self)",
+DlgLnkTargetTop : "최 상위 창 (_top)",
+DlgLnkTargetFrameName : "타겟 프레임 이름",
+DlgLnkPopWinName : "팝업창 이름",
+DlgLnkPopWinFeat : "팝업창 설정",
+DlgLnkPopResize : "크기조정",
+DlgLnkPopLocation : "주소표시줄",
+DlgLnkPopMenu : "메뉴바",
+DlgLnkPopScroll : "스크롤바",
+DlgLnkPopStatus : "상태바",
+DlgLnkPopToolbar : "툴바",
+DlgLnkPopFullScrn : "전체화면 (IE)",
+DlgLnkPopDependent : "Dependent (Netscape)",
+DlgLnkPopWidth : "너비",
+DlgLnkPopHeight : "높이",
+DlgLnkPopLeft : "왼쪽 위치",
+DlgLnkPopTop : "윗쪽 위치",
+
+DlnLnkMsgNoUrl : "링크 URL을 입력하십시요.",
+DlnLnkMsgNoEMail : "이메일주소를 입력하십시요.",
+DlnLnkMsgNoAnchor : "책갈피명을 입력하십시요.",
+
+// Color Dialog
+DlgColorTitle : "색상 선택",
+DlgColorBtnClear : "지우기",
+DlgColorHighlight : "현재",
+DlgColorSelected : "선택됨",
+
+// Smiley Dialog
+DlgSmileyTitle : "아이콘 삽입",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "특수문자 선택",
+
+// Table Dialog
+DlgTableTitle : "표 설정",
+DlgTableRows : "가로줄",
+DlgTableColumns : "세로줄",
+DlgTableBorder : "테두리 크기",
+DlgTableAlign : "정렬",
+DlgTableAlignNotSet : "<설정되지 않음>",
+DlgTableAlignLeft : "왼쪽",
+DlgTableAlignCenter : "가운데",
+DlgTableAlignRight : "오른쪽",
+DlgTableWidth : "너비",
+DlgTableWidthPx : "픽셀",
+DlgTableWidthPc : "퍼센트",
+DlgTableHeight : "높이",
+DlgTableCellSpace : "셀 간격",
+DlgTableCellPad : "셀 여백",
+DlgTableCaption : "캡션",
+DlgTableSummary : "Summary", //MISSING
+
+// Table Cell Dialog
+DlgCellTitle : "셀 설정",
+DlgCellWidth : "너비",
+DlgCellWidthPx : "픽셀",
+DlgCellWidthPc : "퍼센트",
+DlgCellHeight : "높이",
+DlgCellWordWrap : "워드랩",
+DlgCellWordWrapNotSet : "<설정되지 않음>",
+DlgCellWordWrapYes : "예",
+DlgCellWordWrapNo : "아니오",
+DlgCellHorAlign : "수평 정렬",
+DlgCellHorAlignNotSet : "<설정되지 않음>",
+DlgCellHorAlignLeft : "왼쪽",
+DlgCellHorAlignCenter : "가운데",
+DlgCellHorAlignRight: "오른쪽",
+DlgCellVerAlign : "수직 정렬",
+DlgCellVerAlignNotSet : "<설정되지 않음>",
+DlgCellVerAlignTop : "위",
+DlgCellVerAlignMiddle : "중간",
+DlgCellVerAlignBottom : "아래",
+DlgCellVerAlignBaseline : "기준선",
+DlgCellRowSpan : "세로 합치기",
+DlgCellCollSpan : "가로 합치기",
+DlgCellBackColor : "배경 색상",
+DlgCellBorderColor : "테두리 색상",
+DlgCellBtnSelect : "선택",
+
+// Find Dialog
+DlgFindTitle : "찾기",
+DlgFindFindBtn : "찾기",
+DlgFindNotFoundMsg : "문자열을 찾을 수 없습니다.",
+
+// Replace Dialog
+DlgReplaceTitle : "바꾸기",
+DlgReplaceFindLbl : "찾을 문자열:",
+DlgReplaceReplaceLbl : "바꿀 문자열:",
+DlgReplaceCaseChk : "대소문자 구분",
+DlgReplaceReplaceBtn : "바꾸기",
+DlgReplaceReplAllBtn : "모두 바꾸기",
+DlgReplaceWordChk : "온전한 단어",
+
+// Paste Operations / Dialog
+PasteErrorPaste : "브라우저의 보안설정때문에 붙여넣기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요. (Ctrl+V).",
+PasteErrorCut : "브라우저의 보안설정때문에 잘라내기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요. (Ctrl+X).",
+PasteErrorCopy : "브라우저의 보안설정때문에 복사하기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요. (Ctrl+C).",
+
+PasteAsText : "텍스트로 붙여넣기",
+PasteFromWord : "MS Word 형식에서 붙여넣기",
+
+DlgPasteMsg2 : "키보드의 (Ctrl+V) 를 이용해서 상자안에 붙여넣고 OK 를 누르세요.",
+DlgPasteIgnoreFont : "폰트 설정 무시",
+DlgPasteRemoveStyles : "스타일 정의 제거",
+DlgPasteCleanBox : "글상자 제거",
+
+// Color Picker
+ColorAutomatic : "기본색상",
+ColorMoreColors : "색상선택...",
+
+// Document Properties
+DocProps : "문서 속성",
+
+// Anchor Dialog
+DlgAnchorTitle : "책갈피 속성",
+DlgAnchorName : "책갈피 이름",
+DlgAnchorErrorName : "책갈피 이름을 입력하십시요.",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "사전에 없는 단어",
+DlgSpellChangeTo : "변경할 단어",
+DlgSpellBtnIgnore : "건너뜀",
+DlgSpellBtnIgnoreAll : "모두 건너뜀",
+DlgSpellBtnReplace : "변경",
+DlgSpellBtnReplaceAll : "모두 변경",
+DlgSpellBtnUndo : "취소",
+DlgSpellNoSuggestions : "- 추천단어 없음 -",
+DlgSpellProgress : "철자검사를 진행중입니다...",
+DlgSpellNoMispell : "철자검사 완료: 잘못된 철자가 없습니다.",
+DlgSpellNoChanges : "철자검사 완료: 변경된 단어가 없습니다.",
+DlgSpellOneChange : "철자검사 완료: 단어가 변경되었습니다.",
+DlgSpellManyChanges : "철자검사 완료: %1 단어가 변경되었습니다.",
+
+IeSpellDownload : "철자 검사기가 철치되지 않았습니다. 지금 다운로드하시겠습니까?",
+
+// Button Dialog
+DlgButtonText : "버튼글자(값)",
+DlgButtonType : "버튼종류",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "이름",
+DlgCheckboxValue : "값",
+DlgCheckboxSelected : "선택됨",
+
+// Form Dialog
+DlgFormName : "폼이름",
+DlgFormAction : "실행경로(Action)",
+DlgFormMethod : "방법(Method)",
+
+// Select Field Dialog
+DlgSelectName : "이름",
+DlgSelectValue : "값",
+DlgSelectSize : "세로크기",
+DlgSelectLines : "줄",
+DlgSelectChkMulti : "여러항목 선택 허용",
+DlgSelectOpAvail : "선택옵션",
+DlgSelectOpText : "이름",
+DlgSelectOpValue : "값",
+DlgSelectBtnAdd : "추가",
+DlgSelectBtnModify : "변경",
+DlgSelectBtnUp : "위로",
+DlgSelectBtnDown : "아래로",
+DlgSelectBtnSetValue : "선택된것으로 설정",
+DlgSelectBtnDelete : "삭제",
+
+// Textarea Dialog
+DlgTextareaName : "이름",
+DlgTextareaCols : "칸수",
+DlgTextareaRows : "줄수",
+
+// Text Field Dialog
+DlgTextName : "이름",
+DlgTextValue : "값",
+DlgTextCharWidth : "글자 너비",
+DlgTextMaxChars : "최대 글자수",
+DlgTextType : "종류",
+DlgTextTypeText : "문자열",
+DlgTextTypePass : "비밀번호",
+
+// Hidden Field Dialog
+DlgHiddenName : "이름",
+DlgHiddenValue : "값",
+
+// Bulleted List Dialog
+BulletedListProp : "순서없는 목록 속성",
+NumberedListProp : "순서있는 목록 속성",
+DlgLstType : "종류",
+DlgLstTypeCircle : "원(Circle)",
+DlgLstTypeDisc : "Disc", //MISSING
+DlgLstTypeSquare : "네모점(Square)",
+DlgLstTypeNumbers : "번호 (1, 2, 3)",
+DlgLstTypeLCase : "소문자 (a, b, c)",
+DlgLstTypeUCase : "대문자 (A, B, C)",
+DlgLstTypeSRoman : "로마자 수문자 (i, ii, iii)",
+DlgLstTypeLRoman : "로마자 대문자 (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "일반",
+DlgDocBackTab : "배경",
+DlgDocColorsTab : "색상 및 여백",
+DlgDocMetaTab : "메타데이터",
+
+DlgDocPageTitle : "페이지명",
+DlgDocLangDir : "문자 쓰기방향",
+DlgDocLangDirLTR : "왼쪽에서 오른쪽 (LTR)",
+DlgDocLangDirRTL : "오른쪽에서 왼쪽 (RTL)",
+DlgDocLangCode : "언어코드",
+DlgDocCharSet : "캐릭터셋 인코딩",
+DlgDocCharSetOther : "다른 캐릭터셋 인코딩",
+
+DlgDocDocType : "문서 헤드",
+DlgDocDocTypeOther : "다른 문서헤드",
+DlgDocIncXHTML : "XHTML 문서정의 포함",
+DlgDocBgColor : "배경색상",
+DlgDocBgImage : "배경이미지 URL",
+DlgDocBgNoScroll : "스크롤되지않는 배경",
+DlgDocCText : "텍스트",
+DlgDocCLink : "링크",
+DlgDocCVisited : "방문한 링크(Visited)",
+DlgDocCActive : "활성화된 링크(Active)",
+DlgDocMargins : "페이지 여백",
+DlgDocMaTop : "위",
+DlgDocMaLeft : "왼쪽",
+DlgDocMaRight : "오른쪽",
+DlgDocMaBottom : "아래",
+DlgDocMeIndex : "문서 키워드 (콤마로 구분)",
+DlgDocMeDescr : "문서 설명",
+DlgDocMeAuthor : "작성자",
+DlgDocMeCopy : "저작권",
+DlgDocPreview : "미리보기",
+
+// Templates Dialog
+Templates : "템플릿",
+DlgTemplatesTitle : "내용 템플릿",
+DlgTemplatesSelMsg : "에디터에서 사용할 템플릿을 선택하십시요.
(지금까지 작성된 내용은 사라집니다.):",
+DlgTemplatesLoading : "템플릿 목록을 불러오는중입니다. 잠시만 기다려주십시요.",
+DlgTemplatesNoTpl : "(템플릿이 없습니다.)",
+
+// About Dialog
+DlgAboutAboutTab : "About",
+DlgAboutBrowserInfoTab : "브라우저 정보",
+DlgAboutLicenseTab : "License", //MISSING
+DlgAboutVersion : "버전",
+DlgAboutLicense : "Licensed under the terms of the GNU Lesser General Public License",
+DlgAboutInfo : "For further information go to"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/lt.js b/htdocs/includes/fckeditor/editor/lang/lt.js
new file mode 100644
index 00000000000..bab003b3c9d
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/lt.js
@@ -0,0 +1,486 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: lt.js
+ * Lithuanian language file.
+ *
+ * File Authors:
+ * Tauras Paliulis (tauras.paliulis@tauras.com)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Sutraukti mygtukų juostą",
+ToolbarExpand : "Išplėsti mygtukų juostą",
+
+// Toolbar Items and Context Menu
+Save : "Išsaugoti",
+NewPage : "Naujas puslapis",
+Preview : "Peržiūra",
+Cut : "Iškirpti",
+Copy : "Kopijuoti",
+Paste : "Įdėti",
+PasteText : "Įdėti kaip gryną tekstą",
+PasteWord : "Įdėti iš Word",
+Print : "Spausdinti",
+SelectAll : "Pažymėti viską",
+RemoveFormat : "Panaikinti formatą",
+InsertLinkLbl : "Nuoroda",
+InsertLink : "Įterpti/taisyti nuorodą",
+RemoveLink : "Panaikinti nuorodą",
+Anchor : "Įterpti/modifikuoti žymę",
+InsertImageLbl : "Vaizdas",
+InsertImage : "Įterpti/taisyti vaizdą",
+InsertFlashLbl : "Flash",
+InsertFlash : "Įterpti/taisyti Flash",
+InsertTableLbl : "Lentelė",
+InsertTable : "Įterpti/taisyti lentelę",
+InsertLineLbl : "Linija",
+InsertLine : "Įterpti horizontalią liniją",
+InsertSpecialCharLbl: "Spec. simbolis",
+InsertSpecialChar : "Įterpti specialų simbolį",
+InsertSmileyLbl : "Veideliai",
+InsertSmiley : "Įterpti veidelį",
+About : "Apie FCKeditor",
+Bold : "Pusjuodis",
+Italic : "Kursyvas",
+Underline : "Pabrauktas",
+StrikeThrough : "Perbrauktas",
+Subscript : "Apatinis indeksas",
+Superscript : "Viršutinis indeksas",
+LeftJustify : "Lygiuoti kairę",
+CenterJustify : "Centruoti",
+RightJustify : "Lygiuoti dešinę",
+BlockJustify : "Lygiuoti abi puses",
+DecreaseIndent : "Sumažinti įtrauką",
+IncreaseIndent : "Padidinti įtrauką",
+Undo : "Atšaukti",
+Redo : "Atstatyti",
+NumberedListLbl : "Numeruotas sąrašas",
+NumberedList : "Įterpti/Panaikinti numeruotą sąrašą",
+BulletedListLbl : "Suženklintas sąrašas",
+BulletedList : "Įterpti/Panaikinti suženklintą sąrašą",
+ShowTableBorders : "Rodyti lentelės rėmus",
+ShowDetails : "Rodyti detales",
+Style : "Stilius",
+FontFormat : "Šrifto formatas",
+Font : "Šriftas",
+FontSize : "Šrifto dydis",
+TextColor : "Teksto spalva",
+BGColor : "Fono spalva",
+Source : "Šaltinis",
+Find : "Rasti",
+Replace : "Pakeisti",
+SpellCheck : "Rašybos tikrinimas",
+UniversalKeyboard : "Universali klaviatūra",
+PageBreakLbl : "Puslapių skirtukas",
+PageBreak : "Įterpti puslapių skirtuką",
+
+Form : "Forma",
+Checkbox : "Žymimasis langelis",
+RadioButton : "Žymimoji akutė",
+TextField : "Teksto laukas",
+Textarea : "Teksto sritis",
+HiddenField : "Nerodomas laukas",
+Button : "Mygtukas",
+SelectionField : "Atrankos laukas",
+ImageButton : "Vaizdinis mygtukas",
+
+FitWindow : "Maximize the editor size", //MISSING
+
+// Context Menu
+EditLink : "Taisyti nuorodą",
+CellCM : "Cell", //MISSING
+RowCM : "Row", //MISSING
+ColumnCM : "Column", //MISSING
+InsertRow : "Įterpti eilutę",
+DeleteRows : "Šalinti eilutes",
+InsertColumn : "Įterpti stulpelį",
+DeleteColumns : "Šalinti stulpelius",
+InsertCell : "Įterpti langelį",
+DeleteCells : "Šalinti langelius",
+MergeCells : "Sujungti langelius",
+SplitCell : "Skaidyti langelius",
+TableDelete : "Šalinti lentelę",
+CellProperties : "Langelio savybės",
+TableProperties : "Lentelės savybės",
+ImageProperties : "Vaizdo savybės",
+FlashProperties : "Flash savybės",
+
+AnchorProp : "Žymės savybės",
+ButtonProp : "Mygtuko savybės",
+CheckboxProp : "Žymimojo langelio savybės",
+HiddenFieldProp : "Nerodomo lauko savybės",
+RadioButtonProp : "Žymimosios akutės savybės",
+ImageButtonProp : "Vaizdinio mygtuko savybės",
+TextFieldProp : "Teksto lauko savybės",
+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",
+
+// Alerts and Messages
+ProcessingXHTML : "Apdorojamas XHTML. Prašome palaukti...",
+Done : "Baigta",
+PasteWordConfirm : "Įdedamas tekstas yra panašus į kopiją iš Word. Ar Jūs norite prieš įdėjimą išvalyti jį?",
+NotCompatiblePaste : "Ši komanda yra prieinama tik per Internet Explorer 5.5 ar aukštesnę versiją. Ar Jūs norite įterpti be valymo?",
+UnknownToolbarItem : "Nežinomas mygtukų juosta elementas \"%1\"",
+UnknownCommand : "Nežinomas komandos vardas \"%1\"",
+NotImplemented : "Komanda nėra įgyvendinta",
+UnknownToolbarSet : "Mygtukų juostos rinkinys \"%1\" neegzistuoja",
+NoActiveX : "Jūsų naršyklės saugumo nuostatos gali riboti kai kurias redaktoriaus savybes. Jūs turite aktyvuoti opciją \"Run ActiveX controls and plug-ins\". Kitu atveju Jums bus pranešama apie klaidas ir trūkstamas savybes.",
+BrowseServerBlocked : "Neįmanoma atidaryti naujo naršyklės lango. Įsitikinkite, kad iškylančių langų blokavimo programos neveiksnios.",
+DialogBlocked : "Neįmanoma atidaryti dialogo lango. Įsitikinkite, kad iškylančių langų blokavimo programos neveiksnios.",
+
+// Dialogs
+DlgBtnOK : "OK",
+DlgBtnCancel : "Nutraukti",
+DlgBtnClose : "Uždaryti",
+DlgBtnBrowseServer : "Naršyti po serverį",
+DlgAdvancedTag : "Papildomas",
+DlgOpOther : "",
+DlgInfoTab : "Informacija",
+DlgAlertUrl : "Prašome įrašyti URL",
+
+// General Dialogs Labels
+DlgGenNotSet : "",
+DlgGenId : "Id",
+DlgGenLangDir : "Teksto kryptis",
+DlgGenLangDirLtr : "Iš kairės į dešinę (LTR)",
+DlgGenLangDirRtl : "Iš dešinės į kairę (RTL)",
+DlgGenLangCode : "Kalbos kodas",
+DlgGenAccessKey : "Prieigos raktas",
+DlgGenName : "Vardas",
+DlgGenTabIndex : "Tabuliavimo indeksas",
+DlgGenLongDescr : "Ilgas aprašymas URL",
+DlgGenClass : "Stilių lentelės klasės",
+DlgGenTitle : "Konsultacinė antraštė",
+DlgGenContType : "Konsultacinio turinio tipas",
+DlgGenLinkCharset : "Susietų išteklių simbolių lentelė",
+DlgGenStyle : "Stilius",
+
+// Image Dialog
+DlgImgTitle : "Vaizdo savybės",
+DlgImgInfoTab : "Vaizdo informacija",
+DlgImgBtnUpload : "Siųsti į serverį",
+DlgImgURL : "URL",
+DlgImgUpload : "Nusiųsti",
+DlgImgAlt : "Alternatyvus Tekstas",
+DlgImgWidth : "Plotis",
+DlgImgHeight : "Aukštis",
+DlgImgLockRatio : "Išlaikyti proporciją",
+DlgBtnResetSize : "Atstatyti dydį",
+DlgImgBorder : "Rėmelis",
+DlgImgHSpace : "Hor.Erdvė",
+DlgImgVSpace : "Vert.Erdvė",
+DlgImgAlign : "Lygiuoti",
+DlgImgAlignLeft : "Kairę",
+DlgImgAlignAbsBottom: "Absoliučią apačią",
+DlgImgAlignAbsMiddle: "Absoliutų vidurį",
+DlgImgAlignBaseline : "Apatinę liniją",
+DlgImgAlignBottom : "Apačią",
+DlgImgAlignMiddle : "Vidurį",
+DlgImgAlignRight : "Dešinę",
+DlgImgAlignTextTop : "Teksto viršūnę",
+DlgImgAlignTop : "Viršūnę",
+DlgImgPreview : "Peržiūra",
+DlgImgAlertUrl : "Prašome įvesti vaizdo URL",
+DlgImgLinkTab : "Nuoroda",
+
+// Flash Dialog
+DlgFlashTitle : "Flash savybės",
+DlgFlashChkPlay : "Automatinis paleidimas",
+DlgFlashChkLoop : "Ciklas",
+DlgFlashChkMenu : "Leisti Flash meniu",
+DlgFlashScale : "Mastelis",
+DlgFlashScaleAll : "Rodyti visą",
+DlgFlashScaleNoBorder : "Be rėmelio",
+DlgFlashScaleFit : "Tikslus atitikimas",
+
+// Link Dialog
+DlgLnkWindowTitle : "Nuoroda",
+DlgLnkInfoTab : "Nuorodos informacija",
+DlgLnkTargetTab : "Paskirtis",
+
+DlgLnkType : "Nuorodos tipas",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "Žymė šiame puslapyje",
+DlgLnkTypeEMail : "El.paštas",
+DlgLnkProto : "Protokolas",
+DlgLnkProtoOther : "",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "Pasirinkite žymę",
+DlgLnkAnchorByName : "Pagal žymės vardą",
+DlgLnkAnchorById : "Pagal žymės Id",
+DlgLnkNoAnchors : "<Šiame dokumente žymių nėra>",
+DlgLnkEMail : "El.pašto adresas",
+DlgLnkEMailSubject : "Žinutės tema",
+DlgLnkEMailBody : "Žinutės turinys",
+DlgLnkUpload : "Siųsti",
+DlgLnkBtnUpload : "Siųsti į serverį",
+
+DlgLnkTarget : "Paskirties vieta",
+DlgLnkTargetFrame : "",
+DlgLnkTargetPopup : "",
+DlgLnkTargetBlank : "Naujas langas (_blank)",
+DlgLnkTargetParent : "Pirminis langas (_parent)",
+DlgLnkTargetSelf : "Tas pats langas (_self)",
+DlgLnkTargetTop : "Svarbiausias langas (_top)",
+DlgLnkTargetFrameName : "Paskirties kadro vardas",
+DlgLnkPopWinName : "Paskirties lango vardas",
+DlgLnkPopWinFeat : "Išskleidžiamo lango savybės",
+DlgLnkPopResize : "Keičiamas dydis",
+DlgLnkPopLocation : "Adreso juosta",
+DlgLnkPopMenu : "Meniu juosta",
+DlgLnkPopScroll : "Slinkties juostos",
+DlgLnkPopStatus : "Būsenos juosta",
+DlgLnkPopToolbar : "Mygtukų juosta",
+DlgLnkPopFullScrn : "Visas ekranas (IE)",
+DlgLnkPopDependent : "Priklausomas (Netscape)",
+DlgLnkPopWidth : "Plotis",
+DlgLnkPopHeight : "Aukštis",
+DlgLnkPopLeft : "Kairė pozicija",
+DlgLnkPopTop : "Viršutinė pozicija",
+
+DlnLnkMsgNoUrl : "Prašome įvesti nuorodos URL",
+DlnLnkMsgNoEMail : "Prašome įvesti el.pašto adresą",
+DlnLnkMsgNoAnchor : "Prašome pasirinkti žymę",
+
+// Color Dialog
+DlgColorTitle : "Pasirinkite spalvą",
+DlgColorBtnClear : "Trinti",
+DlgColorHighlight : "Paryškinta",
+DlgColorSelected : "Pažymėta",
+
+// Smiley Dialog
+DlgSmileyTitle : "Įterpti veidelį",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Pasirinkite specialų simbolį",
+
+// Table Dialog
+DlgTableTitle : "Lentelės savybės",
+DlgTableRows : "Eilutės",
+DlgTableColumns : "Stulpeliai",
+DlgTableBorder : "Rėmelio dydis",
+DlgTableAlign : "Lygiuoti",
+DlgTableAlignNotSet : "",
+DlgTableAlignLeft : "Kairę",
+DlgTableAlignCenter : "Centrą",
+DlgTableAlignRight : "Dešinę",
+DlgTableWidth : "Plotis",
+DlgTableWidthPx : "taškais",
+DlgTableWidthPc : "procentais",
+DlgTableHeight : "Aukštis",
+DlgTableCellSpace : "Tarpas tarp langelių",
+DlgTableCellPad : "Trapas nuo langelio rėmo iki teksto",
+DlgTableCaption : "Antraštė",
+DlgTableSummary : "Santrauka",
+
+// Table Cell Dialog
+DlgCellTitle : "Langelio savybės",
+DlgCellWidth : "Plotis",
+DlgCellWidthPx : "taškais",
+DlgCellWidthPc : "procentais",
+DlgCellHeight : "Aukštis",
+DlgCellWordWrap : "Teksto laužymas",
+DlgCellWordWrapNotSet : "",
+DlgCellWordWrapYes : "Taip",
+DlgCellWordWrapNo : "Ne",
+DlgCellHorAlign : "Horizontaliai lygiuoti",
+DlgCellHorAlignNotSet : "",
+DlgCellHorAlignLeft : "Kairę",
+DlgCellHorAlignCenter : "Centrą",
+DlgCellHorAlignRight: "Dešinę",
+DlgCellVerAlign : "Vertikaliai lygiuoti",
+DlgCellVerAlignNotSet : "",
+DlgCellVerAlignTop : "Viršų",
+DlgCellVerAlignMiddle : "Vidurį",
+DlgCellVerAlignBottom : "Apačią",
+DlgCellVerAlignBaseline : "Apatinę liniją",
+DlgCellRowSpan : "Eilučių apjungimas",
+DlgCellCollSpan : "Stulpelių apjungimas",
+DlgCellBackColor : "Fono spalva",
+DlgCellBorderColor : "Rėmelio spalva",
+DlgCellBtnSelect : "Pažymėti...",
+
+// Find Dialog
+DlgFindTitle : "Paieška",
+DlgFindFindBtn : "Surasti",
+DlgFindNotFoundMsg : "Nurodytas tekstas nerastas.",
+
+// Replace Dialog
+DlgReplaceTitle : "Pakeisti",
+DlgReplaceFindLbl : "Surasti tekstą:",
+DlgReplaceReplaceLbl : "Pakeisti tekstu:",
+DlgReplaceCaseChk : "Skirti didžiąsias ir mažąsias raides",
+DlgReplaceReplaceBtn : "Pakeisti",
+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).",
+
+PasteAsText : "Įdėti kaip gryną tekstą",
+PasteFromWord : "Įdėti iš Word",
+
+DlgPasteMsg2 : "Žemiau esančiame įvedimo lauke įdėkite tekstą, naudodami klaviatūrą (Ctrl+V) ir spūstelkite mygtuką OK.",
+DlgPasteIgnoreFont : "Ignoruoti šriftų nustatymus",
+DlgPasteRemoveStyles : "Pašalinti stilių nustatymus",
+DlgPasteCleanBox : "Trinti įvedimo lauką",
+
+// Color Picker
+ColorAutomatic : "Automatinis",
+ColorMoreColors : "Daugiau spalvų...",
+
+// Document Properties
+DocProps : "Dokumento savybės",
+
+// Anchor Dialog
+DlgAnchorTitle : "Žymės savybės",
+DlgAnchorName : "Žymės vardas",
+DlgAnchorErrorName : "Prašome įvesti žymės vardą",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Žodyne nerastas",
+DlgSpellChangeTo : "Pakeisti į",
+DlgSpellBtnIgnore : "Ignoruoti",
+DlgSpellBtnIgnoreAll : "Ignoruoti visus",
+DlgSpellBtnReplace : "Pakeisti",
+DlgSpellBtnReplaceAll : "Pakeisti visus",
+DlgSpellBtnUndo : "Atšaukti",
+DlgSpellNoSuggestions : "- Nėra pasiūlymų -",
+DlgSpellProgress : "Vyksta rašybos tikrinimas...",
+DlgSpellNoMispell : "Rašybos tikrinimas baigtas: Nerasta rašybos klaidų",
+DlgSpellNoChanges : "Rašybos tikrinimas baigtas: Nėra pakeistų žodžių",
+DlgSpellOneChange : "Rašybos tikrinimas baigtas: Vienas žodis pakeistas",
+DlgSpellManyChanges : "Rašybos tikrinimas baigtas: Pakeista %1 žodžių",
+
+IeSpellDownload : "Rašybos tikrinimas neinstaliuotas. Ar Jūs norite jį dabar atsisiųsti?",
+
+// Button Dialog
+DlgButtonText : "Tekstas (Reikšmė)",
+DlgButtonType : "Tipas",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Vardas",
+DlgCheckboxValue : "Reikšmė",
+DlgCheckboxSelected : "Pažymėtas",
+
+// Form Dialog
+DlgFormName : "Vardas",
+DlgFormAction : "Veiksmas",
+DlgFormMethod : "Metodas",
+
+// Select Field Dialog
+DlgSelectName : "Vardas",
+DlgSelectValue : "Reikšmė",
+DlgSelectSize : "Dydis",
+DlgSelectLines : "eilučių",
+DlgSelectChkMulti : "Leisti daugeriopą atranką",
+DlgSelectOpAvail : "Galimos parinktys",
+DlgSelectOpText : "Tekstas",
+DlgSelectOpValue : "Reikšmė",
+DlgSelectBtnAdd : "Įtraukti",
+DlgSelectBtnModify : "Modifikuoti",
+DlgSelectBtnUp : "Aukštyn",
+DlgSelectBtnDown : "Žemyn",
+DlgSelectBtnSetValue : "Laikyti pažymėta reikšme",
+DlgSelectBtnDelete : "Trinti",
+
+// Textarea Dialog
+DlgTextareaName : "Vardas",
+DlgTextareaCols : "Ilgis",
+DlgTextareaRows : "Plotis",
+
+// Text Field Dialog
+DlgTextName : "Vardas",
+DlgTextValue : "Reikšmė",
+DlgTextCharWidth : "Ilgis simboliais",
+DlgTextMaxChars : "Maksimalus simbolių skaičius",
+DlgTextType : "Tipas",
+DlgTextTypeText : "Tekstas",
+DlgTextTypePass : "Slaptažodis",
+
+// Hidden Field Dialog
+DlgHiddenName : "Vardas",
+DlgHiddenValue : "Reikšmė",
+
+// Bulleted List Dialog
+BulletedListProp : "Suženklinto sąrašo savybės",
+NumberedListProp : "Numeruoto sąrašo savybės",
+DlgLstType : "Tipas",
+DlgLstTypeCircle : "Apskritimas",
+DlgLstTypeDisc : "Diskas",
+DlgLstTypeSquare : "Kvadratas",
+DlgLstTypeNumbers : "Skaičiai (1, 2, 3)",
+DlgLstTypeLCase : "Mažosios raidės (a, b, c)",
+DlgLstTypeUCase : "Didžiosios raidės (A, B, C)",
+DlgLstTypeSRoman : "Romėnų mažieji skaičiai (i, ii, iii)",
+DlgLstTypeLRoman : "Romėnų didieji skaičiai (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "Bendros savybės",
+DlgDocBackTab : "Fonas",
+DlgDocColorsTab : "Spalvos ir kraštinės",
+DlgDocMetaTab : "Meta duomenys",
+
+DlgDocPageTitle : "Puslapio antraštė",
+DlgDocLangDir : "Kalbos kryptis",
+DlgDocLangDirLTR : "Iš kairės į dešinę (LTR)",
+DlgDocLangDirRTL : "Iš dešinės į kairę (RTL)",
+DlgDocLangCode : "Kalbos kodas",
+DlgDocCharSet : "Simbolių kodavimo lentelė",
+DlgDocCharSetOther : "Kita simbolių kodavimo lentelė",
+
+DlgDocDocType : "Dokumento tipo antraštė",
+DlgDocDocTypeOther : "Kita dokumento tipo antraštė",
+DlgDocIncXHTML : "Įtraukti XHTML deklaracijas",
+DlgDocBgColor : "Fono spalva",
+DlgDocBgImage : "Fono paveikslėlio nuoroda (URL)",
+DlgDocBgNoScroll : "Neslenkantis fonas",
+DlgDocCText : "Tekstas",
+DlgDocCLink : "Nuoroda",
+DlgDocCVisited : "Aplankyta nuoroda",
+DlgDocCActive : "Aktyvi nuoroda",
+DlgDocMargins : "Puslapio kraštinės",
+DlgDocMaTop : "Viršuje",
+DlgDocMaLeft : "Kairėje",
+DlgDocMaRight : "Dešinėje",
+DlgDocMaBottom : "Apačioje",
+DlgDocMeIndex : "Dokumento indeksavimo raktiniai žodžiai (atskirti kableliais)",
+DlgDocMeDescr : "Dokumento apibūdinimas",
+DlgDocMeAuthor : "Autorius",
+DlgDocMeCopy : "Autorinės teisės",
+DlgDocPreview : "Peržiūra",
+
+// Templates Dialog
+Templates : "Šablonai",
+DlgTemplatesTitle : "Turinio šablonai",
+DlgTemplatesSelMsg : "Pasirinkite norimą šabloną
(Dėmesio! esamas turinys bus prarastas):",
+DlgTemplatesLoading : "Įkeliamas šablonų sąrašas. Prašome palaukti...",
+DlgTemplatesNoTpl : "(Šablonų sąrašas tuščias)",
+
+// About Dialog
+DlgAboutAboutTab : "Apie",
+DlgAboutBrowserInfoTab : "Naršyklės informacija",
+DlgAboutLicenseTab : "License", //MISSING
+DlgAboutVersion : "versija",
+DlgAboutLicense : "Licencijuota pagal GNU mažesnės atsakomybės pagrindinės viešos licencijos sąlygas",
+DlgAboutInfo : "Papildomą informaciją galima gauti"
+}
\ No newline at end of file
diff --git a/htdocs/includes/fckeditor/editor/lang/lv.js b/htdocs/includes/fckeditor/editor/lang/lv.js
new file mode 100644
index 00000000000..6714dbb1fb3
--- /dev/null
+++ b/htdocs/includes/fckeditor/editor/lang/lv.js
@@ -0,0 +1,487 @@
+/*
+ * FCKeditor - The text editor for internet
+ * Copyright (C) 2003-2006 Frederico Caldeira Knabben
+ *
+ * Licensed under the terms of the GNU Lesser General Public License:
+ * http://www.opensource.org/licenses/lgpl-license.php
+ *
+ * For further information visit:
+ * http://www.fckeditor.net/
+ *
+ * "Support Open Source software. What about a donation today?"
+ *
+ * File Name: lv.js
+ * Latvian language file.
+ *
+ * File Authors:
+ * Jānis Kļaviņš (janis@4id.lv)
+ * Slowmo (slowmo@inbox.lv)
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Samazināt rīku joslu",
+ToolbarExpand : "Paplašināt rīku joslu",
+
+// Toolbar Items and Context Menu
+Save : "Saglabāt",
+NewPage : "Jauna lapa",
+Preview : "Pārskatīt",
+Cut : "Izgriezt",
+Copy : "Kopēt",
+Paste : "Ievietot",
+PasteText : "Ievietot kā vienkāršu tekstu",
+PasteWord : "Ievietot no Worda",
+Print : "Drukāt",
+SelectAll : "Iezīmēt visu",
+RemoveFormat : "Noņemt stilus",
+InsertLinkLbl : "Hipersaite",
+InsertLink : "Ievietot/Labot hipersaiti",
+RemoveLink : "Noņemt hipersaiti",
+Anchor : "Ievietot/Labot iezīmi",
+InsertImageLbl : "Attēls",
+InsertImage : "Ievietot/Labot Attēlu",
+InsertFlashLbl : "Flash",
+InsertFlash : "Ievietot/Labot Flash",
+InsertTableLbl : "Tabula",
+InsertTable : "Ievietot/Labot Tabulu",
+InsertLineLbl : "Atdalītājsvītra",
+InsertLine : "Ievietot horizontālu Atdalītājsvītru",
+InsertSpecialCharLbl: "Īpašs simbols",
+InsertSpecialChar : "Ievietot speciālo simbolu",
+InsertSmileyLbl : "Smaidiņi",
+InsertSmiley : "Ievietot smaidiņu",
+About : "Īsumā par FCKeditor",
+Bold : "Treknu šriftu",
+Italic : "Slīprakstā",
+Underline : "Apakšsvītra",
+StrikeThrough : "Pārsvītrots",
+Subscript : "Zemrakstā",
+Superscript : "Augšrakstā",
+LeftJustify : "Izlīdzināt pa kreisi",
+CenterJustify : "Izlīdzināt pret centru",
+RightJustify : "Izlīdzināt pa labi",
+BlockJustify : "Izlīdzināt malas",
+DecreaseIndent : "Samazināt atkāpi",
+IncreaseIndent : "Palielināt atkāpi",
+Undo : "Atcelt",
+Redo : "Atkārtot",
+NumberedListLbl : "Numurēts saraksts",
+NumberedList : "Ievietot/Noņemt numerēto sarakstu",
+BulletedListLbl : "Izcelts saraksts",
+BulletedList : "Ievietot/Noņemt izceltu sarakstu",
+ShowTableBorders : "Parādīt tabulas robežas",
+ShowDetails : "Parādīt sīkāku informāciju",
+Style : "Stils",
+FontFormat : "Formāts",
+Font : "Šrifts",
+FontSize : "Izmērs",
+TextColor : "Teksta krāsa",
+BGColor : "Fona krāsa",
+Source : "HTML kods",
+Find : "Meklēt",
+Replace : "Nomainīt",
+SpellCheck : "Pareizrakstības pārbaude",
+UniversalKeyboard : "Universāla klaviatūra",
+PageBreakLbl : "Lapas pārtraukums",
+PageBreak : "Ievietot lapas pārtraukumu",
+
+Form : "Forma",
+Checkbox : "Atzīmēšanas kastīte",
+RadioButton : "Izvēles poga",
+TextField : "Teksta rinda",
+Textarea : "Teksta laukums",
+HiddenField : "Paslēpta teksta rinda",
+Button : "Poga",
+SelectionField : "Iezīmēšanas lauks",
+ImageButton : "Attēlpoga",
+
+FitWindow : "Maksimizēt redaktora izmēru",
+
+// Context Menu
+EditLink : "Labot hipersaiti",
+CellCM : "Šūna",
+RowCM : "Rinda",
+ColumnCM : "Kolonna",
+InsertRow : "Ievietot rindu",
+DeleteRows : "Dzēst rindas",
+InsertColumn : "Ievietot kolonnu",
+DeleteColumns : "Dzēst kolonnas",
+InsertCell : "Ievietot rūtiņu",
+DeleteCells : "Dzēst rūtiņas",
+MergeCells : "Apvienot rūtiņas",
+SplitCell : "Sadalīt rūtiņu",
+TableDelete : "Dzēst tabulu",
+CellProperties : "Rūtiņas īpašības",
+TableProperties : "Tabulas īpašības",
+ImageProperties : "Attēla īpašības",
+FlashProperties : "Flash īpašības",
+
+AnchorProp : "Iezīmes īpašības",
+ButtonProp : "Pogas īpašības",
+CheckboxProp : "Atzīmēšanas kastītes īpašības",
+HiddenFieldProp : "Paslēptās teksta rindas īpašības",
+RadioButtonProp : "Izvēles poga īpašības",
+ImageButtonProp : "Attēlpogas īpašības",
+TextFieldProp : "Teksta rindas īpašības",
+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)",
+
+// Alerts and Messages
+ProcessingXHTML : "Tiek apstrādāts XHTML. Lūdzu uzgaidiet...",
+Done : "Darīts",
+PasteWordConfirm : "Teksta fragments, kas tiek ievietots, izskatās, ka būtu sagatavots Word'ā. Vai vēlaties to apstrādāt pirms ievietošanas?",
+NotCompatiblePaste : "Šī darbība ir pieejama Internet Explorer'ī, kas jaunāks par 5.5 versiju. Vai vēlaties ievietot bez apstrādes?",
+UnknownToolbarItem : "Nezināms rīku joslas objekts \"%1\"",
+UnknownCommand : "Nezināmas darbības nosaukums \"%1\"",
+NotImplemented : "Darbība netika paveikta",
+UnknownToolbarSet : "Rīku joslas komplekts \"%1\" neeksistē",
+NoActiveX : "Interneta pārlūkprogrammas drošības uzstādījumi varētu ietekmēt dažas no redaktora īpašībām. Jābūt aktivizētai sadaļai \"Run ActiveX controls and plug-ins\". Savādāk ir iespējamas kļūdas darbībā un kļūdu paziņojumu parādīšanās.",
+BrowseServerBlocked : "Resursu pārlūks nevar tikt atvērts. Pārliecinieties, ka uznirstošo logu bloķētāji ir atslēgti.",
+DialogBlocked : "Nav iespējams atvērt dialoglogu. Pārliecinieties, ka uznirstošo logu bloķētāji ir atslēgti.",
+
+// Dialogs
+DlgBtnOK : "Darīts!",
+DlgBtnCancel : "Atcelt",
+DlgBtnClose : "Aizvērt",
+DlgBtnBrowseServer : "Skatīt servera saturu",
+DlgAdvancedTag : "Izvērstais",
+DlgOpOther : "",
+DlgInfoTab : "Informācija",
+DlgAlertUrl : "Lūdzu, ievietojiet hipersaiti",
+
+// General Dialogs Labels
+DlgGenNotSet : "