openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit d3b61962f1d3b69c025250d6fc143d6dfd23e567
parent 42ff4712315689d9dbf491af71362a04b66688c1
Author: dankert <devnull@localhost>
Date:   Tue,  4 Dec 2007 22:58:41 +0100

Umstellung FCKEditor auf Version 2.5 (Unterst?tzt dann Opera 9.5b)

Diffstat:
editor/editor/_packager.xml | 219-------------------------------------------------------------------------------
editor/editor/css/behaviors/hiddenfield.gif | 0
editor/editor/css/behaviors/hiddenfield.htc | 30------------------------------
editor/editor/css/fck_editorarea.css | 43+++++++++++++++++++------------------------
editor/editor/css/fck_internal.css | 125+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------
editor/editor/css/fck_showtableborders_gecko.css | 30+++++++++++++-----------------
editor/editor/css/images/block_address.png | 0
editor/editor/css/images/block_blockquote.png | 0
editor/editor/css/images/block_div.png | 0
editor/editor/css/images/block_h1.png | 0
editor/editor/css/images/block_h2.png | 0
editor/editor/css/images/block_h3.png | 0
editor/editor/css/images/block_h4.png | 0
editor/editor/css/images/block_h5.png | 0
editor/editor/css/images/block_h6.png | 0
editor/editor/css/images/block_p.png | 0
editor/editor/css/images/block_pre.png | 0
editor/editor/css/images/fck_hiddenfield.gif | 0
editor/editor/dialog/common/fck_dialog_common.css | 28+++++++++-------------------
editor/editor/dialog/common/fck_dialog_common.js | 56+++++++++++++++++++++++++++++++-------------------------
editor/editor/dialog/common/fcknumericfield.htc | 24------------------------
editor/editor/dialog/common/moz-bindings.xml | 31-------------------------------
editor/editor/dialog/fck_about.html | 24++++++++++--------------
editor/editor/dialog/fck_anchor.html | 118++++++++++++++++++++++++++++++++-----------------------------------------------
editor/editor/dialog/fck_button.html | 25++++++++++++-------------
editor/editor/dialog/fck_checkbox.html | 27+++++++++++++--------------
editor/editor/dialog/fck_colorselector.html | 64++++++++++++++++++++++++++++++----------------------------------
editor/editor/dialog/fck_docprops.html | 26+++++++++++---------------
editor/editor/dialog/fck_docprops/fck_document_preview.html | 20++++++++------------
editor/editor/dialog/fck_find.html | 177-------------------------------------------------------------------------------
editor/editor/dialog/fck_flash.html | 26+++++++++++---------------
editor/editor/dialog/fck_flash/fck_flash.js | 72++++++++++++++++++++++++++++++++----------------------------------------
editor/editor/dialog/fck_flash/fck_flash_preview.html | 22+++++++++-------------
editor/editor/dialog/fck_form.html | 34++++++++++++++++------------------
editor/editor/dialog/fck_hiddenfield.html | 124++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
editor/editor/dialog/fck_image.html | 22+++++++++-------------
editor/editor/dialog/fck_image/fck_image.js | 71++++++++++++++++++++++++++++++++++++-----------------------------------
editor/editor/dialog/fck_image/fck_image_preview.html | 27++++++++++++---------------
editor/editor/dialog/fck_link.html | 37++++++++++++++++---------------------
editor/editor/dialog/fck_link/fck_link.js | 257+++++++++++++++++++++++++++++++++++++++++++++----------------------------------
editor/editor/dialog/fck_listprop.html | 24++++++++++--------------
editor/editor/dialog/fck_paste.html | 176++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------
editor/editor/dialog/fck_radiobutton.html | 27+++++++++++++--------------
editor/editor/dialog/fck_replace.html | 509+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
editor/editor/dialog/fck_select.html | 30++++++++++++++----------------
editor/editor/dialog/fck_select/fck_select.js | 53+++++++++++++++++++++++++++++++++++++----------------
editor/editor/dialog/fck_smiley.html | 31+++++++++++++++----------------
editor/editor/dialog/fck_source.html | 30+++++++++++++-----------------
editor/editor/dialog/fck_specialchar.html | 46++++++++++++++++++++++++----------------------
editor/editor/dialog/fck_spellerpages.html | 22+++++++++-------------
editor/editor/dialog/fck_spellerpages/spellerpages/controls.html | 2+-
editor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm | 146+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
editor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php | 2+-
editor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl | 180+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
editor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js | 54+++++++++++++++++++++++++++---------------------------
editor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html | 4++--
editor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js | 50+++++++++++++++++++++++++-------------------------
editor/editor/dialog/fck_table.html | 61++++++++++++++++++++++++++++++++-----------------------------
editor/editor/dialog/fck_tablecell.html | 22+++++++++-------------
editor/editor/dialog/fck_template.html | 28++++++++++++----------------
editor/editor/dialog/fck_textarea.html | 28+++++++++++++---------------
editor/editor/dialog/fck_textfield.html | 24+++++++++++-------------
editor/editor/dtd/fck_dtd_test.html | 43+++++++++++++++++++++++++++++++++++++++++++
editor/editor/dtd/fck_xhtml10strict.js | 116+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
editor/editor/dtd/fck_xhtml10transitional.js | 141+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
editor/editor/fckdebug.html | 52++++++++++++++++++++++++----------------------------
editor/editor/fckdialog.html | 48++++++++++++++++++++++++++++++------------------
editor/editor/fckeditor.html | 51++++++++++++++++++++++++---------------------------
editor/editor/fckeditor.original.html | 79++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
editor/editor/filemanager/browser/default/browser.css | 21+++++++++------------
editor/editor/filemanager/browser/default/browser.html | 47++++++++++++++++++++++++++---------------------
editor/editor/filemanager/browser/default/connectors/php/basexml.php | 80-------------------------------------------------------------------------------
editor/editor/filemanager/browser/default/connectors/php/commands.php | 227-------------------------------------------------------------------------------
editor/editor/filemanager/browser/default/connectors/php/config.php | 60------------------------------------------------------------
editor/editor/filemanager/browser/default/connectors/php/connector.php | 118-------------------------------------------------------------------------------
editor/editor/filemanager/browser/default/connectors/php/io.php | 106-------------------------------------------------------------------------------
editor/editor/filemanager/browser/default/connectors/php/util.php | 46----------------------------------------------
editor/editor/filemanager/browser/default/connectors/test.html | 185-------------------------------------------------------------------------------
editor/editor/filemanager/browser/default/frmactualfolder.html | 22+++++++++-------------
editor/editor/filemanager/browser/default/frmcreatefolder.html | 34+++++++++++++++-------------------
editor/editor/filemanager/browser/default/frmfolders.html | 50+++++++++++++++++++++++---------------------------
editor/editor/filemanager/browser/default/frmresourceslist.html | 75+++++++++++++++++++++++++++++++++++++++------------------------------------
editor/editor/filemanager/browser/default/frmresourcetype.html | 22+++++++++-------------
editor/editor/filemanager/browser/default/frmupload.html | 33+++++++++++++++------------------
editor/editor/filemanager/browser/default/images/icons/32/png.gif | 0
editor/editor/filemanager/browser/default/images/icons/png.gif | 0
editor/editor/filemanager/browser/default/js/common.js | 24++++++++++--------------
editor/editor/filemanager/browser/default/js/fckxml.js | 64++++++++++++++++++++++++++++++----------------------------------
editor/editor/filemanager/upload/php/config.php | 61-------------------------------------------------------------
editor/editor/filemanager/upload/php/upload.php | 129-------------------------------------------------------------------------------
editor/editor/filemanager/upload/php/util.php | 45---------------------------------------------
editor/editor/filemanager/upload/test.html | 137-------------------------------------------------------------------------------
editor/editor/js/fckeditorcode_gecko.js | 136+++++++++++++++++++++++++++++++++++++++++++------------------------------------
editor/editor/js/fckeditorcode_ie.js | 140+++++++++++++++++++++++++++++++++++++++++++------------------------------------
editor/editor/lang/_translationstatus.txt | 126++++++++++++++++++++++++++++++++++++++-----------------------------------------
editor/editor/lang/af.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/ar.js | 50++++++++++++++++++++++++++++----------------------
editor/editor/lang/bg.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/bn.js | 50++++++++++++++++++++++++++++----------------------
editor/editor/lang/bs.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/ca.js | 76+++++++++++++++++++++++++++++++++++++++++-----------------------------------
editor/editor/lang/cs.js | 79++++++++++++++++++++++++++++++++++++++++++-------------------------------------
editor/editor/lang/da.js | 51++++++++++++++++++++++++++++-----------------------
editor/editor/lang/de.js | 116++++++++++++++++++++++++++++++++++++++++++-------------------------------------
editor/editor/lang/el.js | 50++++++++++++++++++++++++++++----------------------
editor/editor/lang/en-au.js | 50++++++++++++++++++++++++++++----------------------
editor/editor/lang/en-ca.js | 50++++++++++++++++++++++++++++----------------------
editor/editor/lang/en-uk.js | 50++++++++++++++++++++++++++++----------------------
editor/editor/lang/en.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/eo.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/es.js | 85+++++++++++++++++++++++++++++++++++++++++++------------------------------------
editor/editor/lang/et.js | 122+++++++++++++++++++++++++++++++++++++++++--------------------------------------
editor/editor/lang/eu.js | 51+++++++++++++++++++++++++++++----------------------
editor/editor/lang/fa.js | 72+++++++++++++++++++++++++++++++++++++++---------------------------------
editor/editor/lang/fi.js | 83+++++++++++++++++++++++++++++++++++++++++++------------------------------------
editor/editor/lang/fo.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/fr.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/gl.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/he.js | 50++++++++++++++++++++++++++++----------------------
editor/editor/lang/hi.js | 77++++++++++++++++++++++++++++++++++++++++++-----------------------------------
editor/editor/lang/hr.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/hu.js | 50++++++++++++++++++++++++++++----------------------
editor/editor/lang/it.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/ja.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/km.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/ko.js | 50++++++++++++++++++++++++++++----------------------
editor/editor/lang/lt.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/lv.js | 50++++++++++++++++++++++++++++----------------------
editor/editor/lang/mn.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/ms.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/nb.js | 65++++++++++++++++++++++++++++++++++++-----------------------------
editor/editor/lang/nl.js | 55++++++++++++++++++++++++++++++-------------------------
editor/editor/lang/no.js | 65++++++++++++++++++++++++++++++++++++-----------------------------
editor/editor/lang/pl.js | 120+++++++++++++++++++++++++++++++++++++++++--------------------------------------
editor/editor/lang/pt-br.js | 51++++++++++++++++++++++++++++-----------------------
editor/editor/lang/pt.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/ro.js | 50++++++++++++++++++++++++++++----------------------
editor/editor/lang/ru.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/sk.js | 50++++++++++++++++++++++++++++----------------------
editor/editor/lang/sl.js | 95++++++++++++++++++++++++++++++++++++++++++-------------------------------------
editor/editor/lang/sr-latn.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/sr.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/sv.js | 87+++++++++++++++++++++++++++++++++++++++++++------------------------------------
editor/editor/lang/th.js | 152+++++++++++++++++++++++++++++++++++++++++--------------------------------------
editor/editor/lang/tr.js | 50++++++++++++++++++++++++++++----------------------
editor/editor/lang/uk.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/vi.js | 50++++++++++++++++++++++++++++----------------------
editor/editor/lang/zh-cn.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/lang/zh.js | 49++++++++++++++++++++++++++++---------------------
editor/editor/plugins/autogrow/fckplugin.js | 93+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
editor/editor/plugins/bbcode/_sample/sample.config.js | 26++++++++++++++++++++++++++
editor/editor/plugins/bbcode/_sample/sample.html | 67+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
editor/editor/plugins/bbcode/fckplugin.js | 124+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
editor/editor/plugins/dragresizetable/fckplugin.js | 503+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
editor/editor/plugins/placeholder/fck_placeholder.html | 101+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
editor/editor/plugins/placeholder/fckplugin.js | 188+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
editor/editor/plugins/placeholder/lang/de.js | 28++++++++++++++++++++++++++++
editor/editor/plugins/placeholder/lang/en.js | 28++++++++++++++++++++++++++++
editor/editor/plugins/placeholder/lang/fr.js | 27+++++++++++++++++++++++++++
editor/editor/plugins/placeholder/lang/it.js | 27+++++++++++++++++++++++++++
editor/editor/plugins/placeholder/lang/pl.js | 28++++++++++++++++++++++++++++
editor/editor/plugins/placeholder/placeholder.gif | 0
editor/editor/plugins/simplecommands/fckplugin.js | 29+++++++++++++++++++++++++++++
editor/editor/plugins/tablecommands/fckplugin.js | 33+++++++++++++++++++++++++++++++++
editor/editor/skins/_fckviewstrips.html | 29++++++++++++-----------------
editor/editor/skins/default/fck_dialog.css | 40++++++++++++++++++++--------------------
editor/editor/skins/default/fck_editor.css | 27++++++++++++---------------
editor/editor/skins/default/fck_strip.gif | 0
editor/editor/skins/office2003/fck_dialog.css | 141+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
editor/editor/skins/office2003/fck_editor.css | 476+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
editor/editor/skins/office2003/fck_strip.gif | 0
editor/editor/skins/office2003/images/toolbar.arrowright.gif | 0
editor/editor/skins/office2003/images/toolbar.bg.gif | 0
editor/editor/skins/office2003/images/toolbar.buttonarrow.gif | 0
editor/editor/skins/office2003/images/toolbar.collapse.gif | 0
editor/editor/skins/office2003/images/toolbar.end.gif | 0
editor/editor/skins/office2003/images/toolbar.expand.gif | 0
editor/editor/skins/office2003/images/toolbar.separator.gif | 0
editor/editor/skins/office2003/images/toolbar.start.gif | 0
editor/editor/skins/silver/fck_dialog.css | 144+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
editor/editor/skins/silver/fck_editor.css | 473+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
editor/editor/skins/silver/fck_strip.gif | 0
editor/editor/skins/silver/images/toolbar.arrowright.gif | 0
editor/editor/skins/silver/images/toolbar.buttonarrow.gif | 0
editor/editor/skins/silver/images/toolbar.buttonbg.gif | 0
editor/editor/skins/silver/images/toolbar.collapse.gif | 0
editor/editor/skins/silver/images/toolbar.end.gif | 0
editor/editor/skins/silver/images/toolbar.expand.gif | 0
editor/editor/skins/silver/images/toolbar.separator.gif | 0
editor/editor/skins/silver/images/toolbar.start.gif | 0
editor/fckconfig.js | 165+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------
editor/fckeditor.js | 212+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
editor/fckeditor.php | 73+++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------
editor/fckeditor_php4.php | 76+++++++++++++++++++++++++++++-----------------------------------------------
editor/fckeditor_php5.php | 66++++++++++++++++++++++--------------------------------------------
editor/fckstyles.xml | 116+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------
editor/fcktemplates.xml | 106-------------------------------------------------------------------------------
editor/openrat-fckconfig.js | 10+++++-----
198 files changed, 7539 insertions(+), 5023 deletions(-)

diff --git a/editor/editor/_packager.xml b/editor/editor/_packager.xml @@ -1,218 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!-- - * FCKeditor - The text editor for Internet - http://www.fckeditor.net - * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * - * == BEGIN LICENSE == - * - * Licensed under the terms of any of the following licenses at your - * choice: - * - * - GNU General Public License Version 2 or later (the "GPL") - * http://www.gnu.org/licenses/gpl.html - * - * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") - * http://www.gnu.org/licenses/lgpl.html - * - * - Mozilla Public License Version 1.1 or later (the "MPL") - * http://www.mozilla.org/MPL/MPL-1.1.html - * - * == END LICENSE == - * - * File Name: _packager.xml - * This is the configuration file used by the FCKeditor.Packager to create the - * compressed code files in the "js" folder. - * - * The FCKeditor.Packager software can be used to create the compressed files - * for the FCKeditor project only. Any other use of this software is illegal. - * - * Please check http://www.fckeditor.net/ckpackager for more info. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) ---> -<Package> - <Constants removeDeclaration="false"> - <Constant name="FCK_STATUS_NOTLOADED" value="0" /> - <Constant name="FCK_STATUS_ACTIVE" value="1" /> - <Constant name="FCK_STATUS_COMPLETE" value="2" /> - <Constant name="FCK_TRISTATE_OFF" value="0" /> - <Constant name="FCK_TRISTATE_ON" value="1" /> - <Constant name="FCK_TRISTATE_DISABLED" value="-1" /> - <Constant name="FCK_UNKNOWN" value="-9" /> - <Constant name="FCK_TOOLBARITEM_ONLYICON" value="0" /> - <Constant name="FCK_TOOLBARITEM_ONLYTEXT" value="1" /> - <Constant name="FCK_TOOLBARITEM_ICONTEXT" value="2" /> - <Constant name="FCK_EDITMODE_WYSIWYG" value="0" /> - <Constant name="FCK_EDITMODE_SOURCE" value="1" /> - </Constants> - <PackageFile name="fckeditorcode_ie.js"> - <File path="editor/_source/fckconstants.js" /> - <File path="editor/_source/fckjscoreextensions.js" /> - <File path="editor/_source/classes/fckiecleanup.js" /> - <File path="editor/_source/internals/fckbrowserinfo.js" /> - <File path="editor/_source/internals/fckurlparams.js" /> - <File path="editor/_source/classes/fckevents.js" /> - <File path="editor/_source/internals/fck.js" /> - <File path="editor/_source/internals/fck_ie.js" /> - <File path="editor/_source/internals/fckconfig.js" /> - <File path="editor/_source/internals/fckdebug.js" /> - <File path="editor/_source/internals/fckdomtools.js" /> - <File path="editor/_source/internals/fcktools.js" /> - <File path="editor/_source/internals/fcktools_ie.js" /> - <File path="editor/_source/fckeditorapi.js" /> - <File path="editor/_source/classes/fckimagepreloader.js" /> - - <File path="editor/_source/internals/fckregexlib.js" /> - <File path="editor/_source/internals/fcklanguagemanager.js" /> - <File path="editor/_source/internals/fckxhtmlentities.js" /> - <File path="editor/_source/internals/fckxhtml.js" /> - <File path="editor/_source/internals/fckxhtml_ie.js" /> - <File path="editor/_source/internals/fckcodeformatter.js" /> - <File path="editor/_source/internals/fckundo_ie.js" /> - <File path="editor/_source/classes/fckeditingarea.js" /> - <File path="editor/_source/classes/fckkeystrokehandler.js" /> - - <File path="editor/_source/internals/fcklisthandler.js" /> - <File path="editor/_source/classes/fckelementpath.js" /> - <File path="editor/_source/classes/fckdomrange.js" /> - <File path="editor/_source/classes/fckdomrange_ie.js" /> - <File path="editor/_source/classes/fckdocumentfragment_ie.js" /> - <File path="editor/_source/classes/fckw3crange.js" /> - <File path="editor/_source/classes/fckenterkey.js" /> - - <File path="editor/_source/internals/fckdocumentprocessor.js" /> - <File path="editor/_source/internals/fckselection.js" /> - <File path="editor/_source/internals/fckselection_ie.js" /> - - <File path="editor/_source/internals/fcktablehandler.js" /> - <File path="editor/_source/internals/fcktablehandler_ie.js" /> - <File path="editor/_source/classes/fckxml_ie.js" /> - <File path="editor/_source/classes/fckstyledef.js" /> - <File path="editor/_source/classes/fckstyledef_ie.js" /> - <File path="editor/_source/classes/fckstylesloader.js" /> - - <File path="editor/_source/commandclasses/fcknamedcommand.js" /> - <File path="editor/_source/commandclasses/fck_othercommands.js" /> - <File path="editor/_source/commandclasses/fckspellcheckcommand_ie.js" /> - <File path="editor/_source/commandclasses/fcktextcolorcommand.js" /> - <File path="editor/_source/commandclasses/fckpasteplaintextcommand.js" /> - <File path="editor/_source/commandclasses/fckpastewordcommand.js" /> - <File path="editor/_source/commandclasses/fcktablecommand.js" /> - <File path="editor/_source/commandclasses/fckstylecommand.js" /> - <File path="editor/_source/commandclasses/fckfitwindow.js" /> - <File path="editor/_source/internals/fckcommands.js" /> - - <File path="editor/_source/classes/fckpanel.js" /> - <File path="editor/_source/classes/fckicon.js" /> - <File path="editor/_source/classes/fcktoolbarbuttonui.js" /> - <File path="editor/_source/classes/fcktoolbarbutton.js" /> - <File path="editor/_source/classes/fckspecialcombo.js" /> - <File path="editor/_source/classes/fcktoolbarspecialcombo.js" /> - <File path="editor/_source/classes/fcktoolbarfontscombo.js" /> - <File path="editor/_source/classes/fcktoolbarfontsizecombo.js" /> - <File path="editor/_source/classes/fcktoolbarfontformatcombo.js" /> - <File path="editor/_source/classes/fcktoolbarstylecombo.js" /> - <File path="editor/_source/classes/fcktoolbarpanelbutton.js" /> - <File path="editor/_source/internals/fcktoolbaritems.js" /> - <File path="editor/_source/classes/fcktoolbar.js" /> - <File path="editor/_source/classes/fcktoolbarbreak_ie.js" /> - <File path="editor/_source/internals/fcktoolbarset.js" /> - <File path="editor/_source/internals/fckdialog.js" /> - <File path="editor/_source/internals/fckdialog_ie.js" /> - - <File path="editor/_source/classes/fckmenuitem.js" /> - <File path="editor/_source/classes/fckmenublock.js" /> - <File path="editor/_source/classes/fckmenublockpanel.js" /> - <File path="editor/_source/classes/fckcontextmenu.js" /> - <File path="editor/_source/internals/fck_contextmenu.js" /> - - <File path="editor/_source/classes/fckplugin.js" /> - <File path="editor/_source/internals/fckplugins.js" /> - </PackageFile> - - <PackageFile name="fckeditorcode_gecko.js"> - <File path="editor/_source/fckconstants.js" /> - <File path="editor/_source/fckjscoreextensions.js" /> - <File path="editor/_source/internals/fckbrowserinfo.js" /> - <File path="editor/_source/internals/fckurlparams.js" /> - <File path="editor/_source/classes/fckevents.js" /> - <File path="editor/_source/internals/fck.js" /> - <File path="editor/_source/internals/fck_gecko.js" /> - <File path="editor/_source/internals/fckconfig.js" /> - <File path="editor/_source/internals/fckdebug.js" /> - <File path="editor/_source/internals/fckdomtools.js" /> - <File path="editor/_source/internals/fcktools.js" /> - <File path="editor/_source/internals/fcktools_gecko.js" /> - <File path="editor/_source/fckeditorapi.js" /> - <File path="editor/_source/classes/fckimagepreloader.js" /> - - <File path="editor/_source/internals/fckregexlib.js" /> - <File path="editor/_source/internals/fcklanguagemanager.js" /> - <File path="editor/_source/internals/fckxhtmlentities.js" /> - <File path="editor/_source/internals/fckxhtml.js" /> - <File path="editor/_source/internals/fckxhtml_gecko.js" /> - <File path="editor/_source/internals/fckcodeformatter.js" /> - <File path="editor/_source/internals/fckundo_gecko.js" /> - <File path="editor/_source/classes/fckeditingarea.js" /> - <File path="editor/_source/classes/fckkeystrokehandler.js" /> - - <File path="editor/_source/internals/fcklisthandler.js" /> - <File path="editor/_source/classes/fckelementpath.js" /> - <File path="editor/_source/classes/fckdomrange.js" /> - <File path="editor/_source/classes/fckdomrange_gecko.js" /> - <File path="editor/_source/classes/fckdocumentfragment_gecko.js" /> - <File path="editor/_source/classes/fckw3crange.js" /> - <File path="editor/_source/classes/fckenterkey.js" /> - - <File path="editor/_source/internals/fckdocumentprocessor.js" /> - <File path="editor/_source/internals/fckselection.js" /> - <File path="editor/_source/internals/fckselection_gecko.js" /> - - <File path="editor/_source/internals/fcktablehandler.js" /> - <File path="editor/_source/internals/fcktablehandler_gecko.js" /> - <File path="editor/_source/classes/fckxml_gecko.js" /> - <File path="editor/_source/classes/fckstyledef.js" /> - <File path="editor/_source/classes/fckstyledef_gecko.js" /> - <File path="editor/_source/classes/fckstylesloader.js" /> - - <File path="editor/_source/commandclasses/fcknamedcommand.js" /> - <File path="editor/_source/commandclasses/fck_othercommands.js" /> - <File path="editor/_source/commandclasses/fckspellcheckcommand_gecko.js" /> - <File path="editor/_source/commandclasses/fcktextcolorcommand.js" /> - <File path="editor/_source/commandclasses/fckpasteplaintextcommand.js" /> - <File path="editor/_source/commandclasses/fckpastewordcommand.js" /> - <File path="editor/_source/commandclasses/fcktablecommand.js" /> - <File path="editor/_source/commandclasses/fckstylecommand.js" /> - <File path="editor/_source/commandclasses/fckfitwindow.js" /> - <File path="editor/_source/internals/fckcommands.js" /> - - <File path="editor/_source/classes/fckpanel.js" /> - <File path="editor/_source/classes/fckicon.js" /> - <File path="editor/_source/classes/fcktoolbarbuttonui.js" /> - <File path="editor/_source/classes/fcktoolbarbutton.js" /> - <File path="editor/_source/classes/fckspecialcombo.js" /> - <File path="editor/_source/classes/fcktoolbarspecialcombo.js" /> - <File path="editor/_source/classes/fcktoolbarfontscombo.js" /> - <File path="editor/_source/classes/fcktoolbarfontsizecombo.js" /> - <File path="editor/_source/classes/fcktoolbarfontformatcombo.js" /> - <File path="editor/_source/classes/fcktoolbarstylecombo.js" /> - <File path="editor/_source/classes/fcktoolbarpanelbutton.js" /> - <File path="editor/_source/internals/fcktoolbaritems.js" /> - <File path="editor/_source/classes/fcktoolbar.js" /> - <File path="editor/_source/classes/fcktoolbarbreak_gecko.js" /> - <File path="editor/_source/internals/fcktoolbarset.js" /> - <File path="editor/_source/internals/fckdialog.js" /> - <File path="editor/_source/internals/fckdialog_gecko.js" /> - - <File path="editor/_source/classes/fckmenuitem.js" /> - <File path="editor/_source/classes/fckmenublock.js" /> - <File path="editor/_source/classes/fckmenublockpanel.js" /> - <File path="editor/_source/classes/fckcontextmenu.js" /> - <File path="editor/_source/internals/fck_contextmenu.js" /> - - <File path="editor/_source/classes/fckplugin.js" /> - <File path="editor/_source/internals/fckplugins.js" /> - </PackageFile> - -</Package>- \ No newline at end of file diff --git a/editor/editor/css/behaviors/hiddenfield.gif b/editor/editor/css/behaviors/hiddenfield.gif Binary files differ. diff --git a/editor/editor/css/behaviors/hiddenfield.htc b/editor/editor/css/behaviors/hiddenfield.htc @@ -1,30 +0,0 @@ -<public:component lightweight="true"> - -<public:attach event="oncontentready" onevent="ShowField()" /> -<public:attach event="ondoubleclick" onevent="EditField()" /> - -<script language="javascript"> - -var bIsHiddenField = this.type == 'hidden' ; - -function ShowField() -{ - if ( bIsHiddenField ) - { - this.runtimeStyle.width = '20px' ; - this.runtimeStyle.height = '20px' ; - this.runtimeStyle.border = '1px dotted #FF0000' ; - this.runtimeStyle.backgroundImage = 'url(css/behaviors/hiddenfield.gif)' ; - this.runtimeStyle.fontSize = '99px' ; - } -} - -function EditField() -{ - if ( bIsHiddenField ) - alert( this.outerHTML ) ; -} - -</script> - -</public:component> diff --git a/editor/editor/css/fck_editorarea.css b/editor/editor/css/fck_editorarea.css @@ -1,34 +1,29 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_editorarea.css - * This is the default CSS file used by the editor area. It defines the - * initial font of the editor and background color. - * - * A user can configure the editor to use another CSS file. Just change - * the value of the FCKConfig.EditorAreaCSS key in the configuration - * file. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - * Alfonso Martinez de Lizarrondo - Uritec (alfonso at uritec dot net) + * + * This is the default CSS file used by the editor area. It defines the + * initial font of the editor and background color. + * + * A user can configure the editor to use another CSS file. Just change + * the value of the FCKConfig.EditorAreaCSS key in the configuration + * file. */ /* @@ -45,17 +40,18 @@ body body, td { - font-family: Arial, Verdana, Sans-Serif; + font-family: Arial, Verdana, sans-serif; font-size: 12px; } a[href] { - color: #0000FF !important; /* For Firefox... mark as important, otherwise it becomes black */ + color: -moz-hyperlinktext !important; /* For Firefox... mark as important, otherwise it becomes black */ + text-decoration: -moz-anchor-decoration; /* For Firefox 3, otherwise no underline will be used */ } -/* - Just uncomment the following block if you want to avoid spaces between +/* + Just uncomment the following block if you want to avoid spaces between paragraphs. Remember to apply the same style in your output front end page. */ @@ -93,4 +89,4 @@ p, ul, li color: #000066; font-family: 'Courier New' , Monospace; background-color: #ff9933; -}- \ No newline at end of file +} diff --git a/editor/editor/css/fck_internal.css b/editor/editor/css/fck_internal.css @@ -1,39 +1,33 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_internal.css - * This CSS Style Sheet defines rules used by the editor for its internal use. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - * Alfonso Martinez de Lizarrondo - Uritec (alfonso at uritec dot net) + * + * This CSS Style Sheet defines rules used by the editor for its internal use. */ -/* Fix to allow putting the caret at the end of the -content in Firefox if clicking below the content */ +/* Fix to allow putting the caret at the end of the content in Firefox if + clicking below the content. */ html { - min-height:100%; + min-height: 100%; } - table.FCK__ShowTableBorders, table.FCK__ShowTableBorders td, table.FCK__ShowTableBorders th { border: #d3d3d3 1px solid; @@ -47,7 +41,7 @@ form .FCK__Flash { - border: darkgray 1px solid; + border: #a9a9a9 1px solid; background-position: center center; background-image: url(images/fck_flashlogo.gif); background-repeat: no-repeat; @@ -71,21 +65,20 @@ form .FCK__AnchorC { border: 1px dotted #00F; - background-position: 1 center; + background-position: 1px center; background-image: url(images/fck_anchor.gif); background-repeat: no-repeat; - padding-left:18px; + padding-left: 18px; } -/* Any anchor for non-IE, if we combine it - with the previous rule IE ignores all. */ +/* Any anchor for non-IE, if we combine it with the previous rule IE ignores all. */ a[name] { border: 1px dotted #00F; background-position: 0 center; background-image: url(images/fck_anchor.gif); background-repeat: no-repeat; - padding-left:18px; + padding-left: 18px; } .FCK__PageBreak @@ -104,18 +97,86 @@ a[name] height: 5px; } -input[type="hidden"] +/* Hidden fields */ +.FCK__InputHidden { - display: inline; - width:20px; - height:20px; - border:1px dotted #FF0000 ; - background-image: url(behaviors/hiddenfield.gif); + width: 19px; + height: 18px; + background-image: url(images/fck_hiddenfield.gif); background-repeat: no-repeat; + vertical-align: text-bottom; + background-position: center center; +} + +.FCK__ShowBlocks p, +.FCK__ShowBlocks div, +.FCK__ShowBlocks pre, +.FCK__ShowBlocks address, +.FCK__ShowBlocks blockquote, +.FCK__ShowBlocks h1, +.FCK__ShowBlocks h2, +.FCK__ShowBlocks h3, +.FCK__ShowBlocks h4, +.FCK__ShowBlocks h5, +.FCK__ShowBlocks h6 +{ + background-repeat: no-repeat; + border: 1px dotted gray; + padding-top: 8px; + padding-left: 8px; +} + +.FCK__ShowBlocks p +{ + background-image: url(images/block_p.png); +} + +.FCK__ShowBlocks div +{ + background-image: url(images/block_div.png); +} + +.FCK__ShowBlocks pre +{ + background-image: url(images/block_pre.png); +} + +.FCK__ShowBlocks address +{ + background-image: url(images/block_address.png); +} + +.FCK__ShowBlocks blockquote +{ + background-image: url(images/block_blockquote.png); +} + +.FCK__ShowBlocks h1 +{ + background-image: url(images/block_h1.png); +} + +.FCK__ShowBlocks h2 +{ + background-image: url(images/block_h2.png); +} + +.FCK__ShowBlocks h3 +{ + background-image: url(images/block_h3.png); +} + +.FCK__ShowBlocks h4 +{ + background-image: url(images/block_h4.png); +} + +.FCK__ShowBlocks h5 +{ + background-image: url(images/block_h5.png); } -input[type="hidden"]:after +.FCK__ShowBlocks h6 { - padding-left: 20px; - content: "" ; + background-image: url(images/block_h6.png); } diff --git a/editor/editor/css/fck_showtableborders_gecko.css b/editor/editor/css/fck_showtableborders_gecko.css @@ -1,42 +1,38 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_showtableborders_gecko.css - * This CSS Style Sheet defines the rules to show table borders on Gecko. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * This CSS Style Sheet defines the rules to show table borders on Gecko. */ /* For tables with the "border" attribute set to "0" */ -table[border="0"], -table[border="0"] > tr > td, table[border="0"] > tr > th, -table[border="0"] > tbody > tr > td, table[border="0"] > tbody > tr > th, -table[border="0"] > thead > tr > td, table[border="0"] > thead > tr > th, +table[border="0"], +table[border="0"] > tr > td, table[border="0"] > tr > th, +table[border="0"] > tbody > tr > td, table[border="0"] > tbody > tr > th, +table[border="0"] > thead > tr > td, table[border="0"] > thead > tr > th, table[border="0"] > tfoot > tr > td, table[border="0"] > tfoot > tr > th { border: #d3d3d3 1px dotted ; } /* For tables with no "border" attribute set */ -table:not([border]), +table:not([border]), table:not([border]) > tr > td, table:not([border]) > tr > th, table:not([border]) > tbody > tr > td, table:not([border]) > tbody > tr > th, table:not([border]) > thead > tr > td, table:not([border]) > thead > tr > th, diff --git a/editor/editor/css/images/block_address.png b/editor/editor/css/images/block_address.png Binary files differ. diff --git a/editor/editor/css/images/block_blockquote.png b/editor/editor/css/images/block_blockquote.png Binary files differ. diff --git a/editor/editor/css/images/block_div.png b/editor/editor/css/images/block_div.png Binary files differ. diff --git a/editor/editor/css/images/block_h1.png b/editor/editor/css/images/block_h1.png Binary files differ. diff --git a/editor/editor/css/images/block_h2.png b/editor/editor/css/images/block_h2.png Binary files differ. diff --git a/editor/editor/css/images/block_h3.png b/editor/editor/css/images/block_h3.png Binary files differ. diff --git a/editor/editor/css/images/block_h4.png b/editor/editor/css/images/block_h4.png Binary files differ. diff --git a/editor/editor/css/images/block_h5.png b/editor/editor/css/images/block_h5.png Binary files differ. diff --git a/editor/editor/css/images/block_h6.png b/editor/editor/css/images/block_h6.png Binary files differ. diff --git a/editor/editor/css/images/block_p.png b/editor/editor/css/images/block_p.png Binary files differ. diff --git a/editor/editor/css/images/block_pre.png b/editor/editor/css/images/block_pre.png Binary files differ. diff --git a/editor/editor/css/images/fck_hiddenfield.gif b/editor/editor/css/images/fck_hiddenfield.gif Binary files differ. diff --git a/editor/editor/dialog/common/fck_dialog_common.css b/editor/editor/dialog/common/fck_dialog_common.css @@ -1,29 +1,25 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_dialog_common.css - * This is the CSS file used for interface details in some dialog - * windows. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * This is the CSS file used for interface details in some dialog + * windows. */ .ImagePreviewArea @@ -80,8 +76,3 @@ cursor: pointer; cursor: hand; } - -.FCK__FieldNumeric -{ - behavior: url(common/fcknumericfield.htc) ; -}- \ No newline at end of file diff --git a/editor/editor/dialog/common/fck_dialog_common.js b/editor/editor/dialog/common/fck_dialog_common.js @@ -1,32 +1,26 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_dialog_common.js - * Useful functions used by almost all dialog window pages. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Useful functions used by almost all dialog window pages. */ -var GECKO_BOGUS = '<br type="_moz">' ; - // Gets a element by its Id. Used for shorter coding. function GetE( elementId ) { @@ -56,14 +50,23 @@ function GetAttribute( element, attName, valueIfNull ) return valueIfNull ? valueIfNull : '' ; var oValue = element.getAttribute( attName, 2 ) ; - + if ( oValue == null ) oValue = oAtt.nodeValue ; return ( oValue == null ? valueIfNull : oValue ) ; } -// Functions used by text fiels to accept numbers only. +var KeyIdentifierMap = +{ + End : 35, + Home : 36, + Left : 37, + Right : 39, + 'U+00007F' : 46 // Delete +} + +// Functions used by text fields to accept numbers only. function IsDigit( e ) { if ( !e ) @@ -71,11 +74,15 @@ function IsDigit( e ) var iCode = ( e.keyCode || e.charCode ) ; + if ( !iCode && e.keyIdentifier && ( e.keyIdentifier in KeyIdentifierMap ) ) + iCode = KeyIdentifierMap[ e.keyIdentifier ] ; + return ( ( iCode >= 48 && iCode <= 57 ) // Numbers - || (iCode >= 37 && iCode <= 40) // Arrows + || (iCode >= 35 && iCode <= 40) // Arrows, Home, End || iCode == 8 // Backspace || iCode == 46 // Delete + || iCode == 9 // Tab ) ; } @@ -105,19 +112,19 @@ String.prototype.Remove = function( start, length ) String.prototype.ReplaceAll = function( searchArray, replaceArray ) { var replaced = this ; - + for ( var i = 0 ; i < searchArray.length ; i++ ) { replaced = replaced.replace( searchArray[i], replaceArray[i] ) ; } - + return replaced ; } function OpenFileBrowser( url, width, height ) { // oEditor must be defined. - + var iLeft = ( oEditor.FCKConfig.ScreenWidth - width ) / 2 ; var iTop = ( oEditor.FCKConfig.ScreenHeight - height ) / 2 ; @@ -127,16 +134,16 @@ function OpenFileBrowser( url, width, height ) sOptions += ",left=" + iLeft ; sOptions += ",top=" + iTop ; - // The "PreserveSessionOnFileBrowser" because the above code could be + // The "PreserveSessionOnFileBrowser" because the above code could be // blocked by popup blockers. if ( oEditor.FCKConfig.PreserveSessionOnFileBrowser && oEditor.FCKBrowserInfo.IsIE ) { - // The following change has been made otherwise IE will open the file + // The following change has been made otherwise IE will open the file // browser on a different server session (on some cases): // http://support.microsoft.com/default.aspx?scid=kb;en-us;831678 // by Simone Chiaretta. var oWindow = oEditor.window.open( url, 'FCKBrowseWindow', sOptions ) ; - + if ( oWindow ) { // Detect Yahoo popup blocker. @@ -155,4 +162,4 @@ function OpenFileBrowser( url, width, height ) } else window.open( url, 'FCKBrowseWindow', sOptions ) ; -}- \ No newline at end of file +} diff --git a/editor/editor/dialog/common/fcknumericfield.htc b/editor/editor/dialog/common/fcknumericfield.htc @@ -1,24 +0,0 @@ -<public:component lightweight="true"> - -<script language="javascript"> - -function CheckIsDigit() -{ - var iCode = event.keyCode ; - - event.returnValue = - ( - ( iCode >= 48 && iCode <= 57 ) // Numbers - || (iCode >= 37 && iCode <= 40) // Arrows - || iCode == 8 // Backspace - || iCode == 46 // Delete - ) ; - - return event.returnValue ; -} - -this.onkeypress = CheckIsDigit ; - -</script> - -</public:component> diff --git a/editor/editor/dialog/common/moz-bindings.xml b/editor/editor/dialog/common/moz-bindings.xml @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<bindings xmlns="http://www.mozilla.org/xbl"> - <binding id="numericfield"> - <implementation> - <constructor> - this.keypress = CheckIsDigit ; - </constructor> - <method name="CheckIsDigit"> - <body> - <![CDATA[ - var iCode = keyCode ; - - var bAccepted = - ( - ( iCode >= 48 && iCode <= 57 ) // Numbers - || (iCode >= 37 && iCode <= 40) // Arrows - || iCode == 8 // Backspace - || iCode == 46 // Delete - ) ; - - return bAccepted ; - ]]> - </body> - </method> - </implementation> - <events> - <event type="keypress" value="CheckIsDigit()" /> - </events> - </binding> -</bindings>- \ No newline at end of file diff --git a/editor/editor/dialog/fck_about.html b/editor/editor/dialog/fck_about.html @@ -2,28 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_about.html - * "About" dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * "About" dialog window. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> @@ -82,8 +78,8 @@ window.onload = function() border-left: #000000 1px solid; border-bottom: #000000 1px solid"> <span fcklang="DlgAboutVersion">version</span> <br /> - <b>2.4</b><br /> - Build 1148</td> + <b>2.5</b><br /> + Build 17352</td> </tr> </table> </td> diff --git a/editor/editor/dialog/fck_anchor.html b/editor/editor/dialog/fck_anchor.html @@ -2,29 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_anchor.html - * Anchor dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - * Alfonso Martinez de Lizarrondo - Uritec (alfonso at uritec dot net) + * + * Anchor dialog window. --> <html> <head> @@ -73,6 +68,7 @@ window.onload = function() oAnchor = null ; window.parent.SetOkButton( true ) ; + window.parent.SetAutoSize( true ) ; } function Ok() @@ -86,18 +82,19 @@ function Ok() if ( sNewName.length == 0 ) { // Remove the anchor if the user leaves the name blank - if ( oAnchor ) + if ( oAnchor ) { - RemoveAnchor() ; + // Removes the current anchor from the document using the new command + FCK.Commands.GetCommand( 'AnchorDelete' ).Execute() ; return true ; } alert( oEditor.FCKLang.DlgAnchorErrorName ) ; return false ; } - + oEditor.FCKUndo.SaveUndoStep() ; - + if ( oAnchor ) // Modifying an existent anchor. { ReadjustLinksToAnchor( oAnchor.name, sNewName ); @@ -115,79 +112,58 @@ function Ok() } // Create a new anchor preserving the current selection - oAnchor = oEditor.FCK.CreateLink( '#' ) ; - if ( !oAnchor ) + var aNewAnchors = oEditor.FCK.CreateLink( '#' ) ; + + if ( aNewAnchors.length == 0 ) { // Nothing was selected, so now just create a normal A - oAnchor = oEditor.FCK.CreateElement( 'a' ) ; + aNewAnchors.push( oEditor.FCK.InsertElement( 'a' ) ) ; } else { // Remove the fake href - oAnchor.removeAttribute( 'href' ) ; + for ( var i = 0 ; i < aNewAnchors.length ; i++ ) + aNewAnchors[i].removeAttribute( 'href' ) ; } - // Set the name - oAnchor.name = sNewName ; - // IE does require special processing to show the Anchor's image - // Opera doesn't allow to select empty anchors - if ( FCKBrowserInfo.IsIE || FCKBrowserInfo.IsOpera ) + // More than one anchors may have been created, so interact through all of them (see #220). + for ( var i = 0 ; i < aNewAnchors.length ; i++ ) { - if ( oAnchor.innerHTML != '' ) - { - if ( FCKBrowserInfo.IsIE ) - oAnchor.className += ' FCK__AnchorC' ; - } - else - { - // Create a fake image for both IE and Opera - var oImg = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Anchor', oAnchor.cloneNode(true) ) ; - oImg.setAttribute( '_fckanchor', 'true', 0 ) ; - - oAnchor.parentNode.insertBefore( oImg, oAnchor ) ; - oAnchor.parentNode.removeChild( oAnchor ) ; - } + oAnchor = aNewAnchors[i] ; - } + // Set the name + oAnchor.name = sNewName ; - return true ; -} + // IE does require special processing to show the Anchor's image + // Opera doesn't allow to select empty anchors + if ( FCKBrowserInfo.IsIE || FCKBrowserInfo.IsOpera ) + { + if ( oAnchor.innerHTML != '' ) + { + if ( FCKBrowserInfo.IsIE ) + oAnchor.className += ' FCK__AnchorC' ; + } + else + { + // Create a fake image for both IE and Opera + var oImg = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Anchor', oAnchor.cloneNode(true) ) ; + oImg.setAttribute( '_fckanchor', 'true', 0 ) ; + + oAnchor.parentNode.insertBefore( oImg, oAnchor ) ; + oAnchor.parentNode.removeChild( oAnchor ) ; + } -// Removes the current anchor from the document -function RemoveAnchor() -{ - // If it's also a link, then just remove the name and exit - if ( oAnchor.href.length != 0 ) - { - oAnchor.removeAttribute( 'name' ) ; - // Remove temporary class for IE - if ( FCKBrowserInfo.IsIE ) - oAnchor.className = oAnchor.className.replace( FCKRegexLib.FCK_Class, '' ) ; - return ; + } } - // We need to remove the anchor - // If we got a fake image, then just remove it and we're done - if ( oFakeImage ) - { - oFakeImage.parentNode.removeChild( oFakeImage ) ; - return ; - } - // Empty anchor, so just remove it - if ( oAnchor.innerHTML.length == 0 ) - { - oAnchor.parentNode.removeChild( oAnchor ) ; - return ; - } - // Anchor with content, leave the content - FCKTools.RemoveOuterTags( oAnchor ) ; + return true ; } // Checks all the links in the current page pointing to the current name and changes them to the new name function ReadjustLinksToAnchor( sCurrent, sNew ) { var oDoc = FCK.EditorDocument ; - + var aLinks = oDoc.getElementsByTagName( 'A' ) ; var sReference = '#' + sCurrent ; @@ -213,7 +189,7 @@ function ReadjustLinksToAnchor( sCurrent, sNew ) </script> </head> - <body style="OVERFLOW: hidden" scroll="no"> + <body style="overflow: hidden"> <table height="100%" width="100%"> <tr> <td align="center"> diff --git a/editor/editor/dialog/fck_button.html b/editor/editor/dialog/fck_button.html @@ -2,28 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_button.html - * Button dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Button dialog window. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> @@ -57,15 +53,18 @@ window.onload = function() oActiveEl = null ; window.parent.SetOkButton( true ) ; + window.parent.SetAutoSize( true ) ; } function Ok() { + oEditor.FCKUndo.SaveUndoStep() ; + if ( !oActiveEl ) { oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ; oActiveEl.type = GetE('txtType').value ; - oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ; + oActiveEl = oEditor.FCK.InsertElement( oActiveEl ) ; } oActiveEl.name = GetE('txtName').value ; diff --git a/editor/editor/dialog/fck_checkbox.html b/editor/editor/dialog/fck_checkbox.html @@ -2,28 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_checkbox.html - * Checkbox dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Checkbox dialog window. --> <html> <head> @@ -55,20 +51,23 @@ window.onload = function() oActiveEl = null ; window.parent.SetOkButton( true ) ; + window.parent.SetAutoSize( true ) ; } function Ok() { + oEditor.FCKUndo.SaveUndoStep() ; + if ( !oActiveEl ) { oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ; oActiveEl.type = 'checkbox' ; - oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ; + oActiveEl = oEditor.FCK.InsertElement( oActiveEl ) ; } if ( GetE('txtName').value.length > 0 ) oActiveEl.name = GetE('txtName').value ; - + if ( oEditor.FCKBrowserInfo.IsIE ) oActiveEl.value = GetE('txtValue').value ; else diff --git a/editor/editor/dialog/fck_colorselector.html b/editor/editor/dialog/fck_colorselector.html @@ -1,30 +1,26 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_colorselector.html - * Color Selection dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Color Selection dialog window. --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> @@ -39,17 +35,17 @@ .ColorCell { height: 15px ; width: 15px ; } </style> <script type="text/javascript"> - + var oEditor = window.parent.InnerDialogLoaded() ; function OnLoad() { // First of all, translate the dialog box texts oEditor.FCKLanguageManager.TranslatePage(document) ; - + CreateColorTable() ; - - window.parent.SetOkButton( true ) ; + + window.parent.SetOkButton( true ) ; window.parent.SetAutoSize( true ) ; } @@ -64,17 +60,17 @@ function CreateColorTable() // This function combines two ranges of three values from the color array into a row. function AppendColorRow( rangeA, rangeB ) { - for ( var i = rangeA ; i < rangeA + 3 ; i++ ) - { - var oRow = oTable.insertRow(-1) ; - - for ( var j = rangeB ; j < rangeB + 3 ; j++ ) - { - for ( var n = 0 ; n < 6 ; n++ ) - { - AppendColorCell( oRow, '#' + aColors[j] + aColors[n] + aColors[i] ) ; - } - } + for ( var i = rangeA ; i < rangeA + 3 ; i++ ) + { + var oRow = oTable.insertRow(-1) ; + + for ( var j = rangeB ; j < rangeB + 3 ; j++ ) + { + for ( var n = 0 ; n < 6 ; n++ ) + { + AppendColorCell( oRow, '#' + aColors[j] + aColors[n] + aColors[i] ) ; + } + } } } @@ -84,13 +80,13 @@ function CreateColorTable() var oCell = targetRow.insertCell(-1) ; oCell.className = 'ColorCell' ; oCell.bgColor = color ; - + oCell.onmouseover = function() { document.getElementById('hicolor').style.backgroundColor = this.bgColor ; document.getElementById('hicolortext').innerHTML = this.bgColor ; } - + oCell.onclick = function() { document.getElementById('selhicolor').style.backgroundColor = this.bgColor ; @@ -105,17 +101,17 @@ function CreateColorTable() // Create the last row. var oRow = oTable.insertRow(-1) ; - + // Create the gray scale colors cells. for ( var n = 0 ; n < 6 ; n++ ) { - AppendColorCell( oRow, '#' + aColors[n] + aColors[n] + aColors[n] ) ; + AppendColorCell( oRow, '#' + aColors[n] + aColors[n] + aColors[n] ) ; } - + // Fill the row with black cells. for ( var i = 0 ; i < 12 ; i++ ) { - AppendColorCell( oRow, '#000000' ) ; + AppendColorCell( oRow, '#000000' ) ; } } diff --git a/editor/editor/dialog/fck_docprops.html b/editor/editor/dialog/fck_docprops.html @@ -2,28 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_docprops.html - * Link dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Link dialog window. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> @@ -286,7 +282,7 @@ function Ok() if ( sCharSet.length == 0 ) sCharSet = 'utf-8' ; - FCK.XmlDeclaration = '<?xml version="1.0" encoding="' + sCharSet + '"?>' ; + FCK.XmlDeclaration = '<' + '?xml version="1.0" encoding="' + sCharSet + '"?>' ; SetAttribute( oHTML, 'xmlns', 'http://www.w3.org/1999/xhtml' ) ; } @@ -362,9 +358,9 @@ function CheckOther( combo, txtField ) GetE(txtField).disabled = bNotOther ; } -function SetColor( inputId, color ) +function SetColor( inputId, color ) { - GetE( inputId ).value = color + '' ; + GetE( inputId ).value = color + '' ; UpdatePreview() ; } diff --git a/editor/editor/dialog/fck_docprops/fck_document_preview.html b/editor/editor/dialog/fck_docprops/fck_document_preview.html @@ -2,28 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_document_preview.html - * Preview shown in the "Document Properties" dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Preview shown in the "Document Properties" dialog window. --> <html> <head> diff --git a/editor/editor/dialog/fck_find.html b/editor/editor/dialog/fck_find.html @@ -1,177 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<!-- - * FCKeditor - The text editor for Internet - http://www.fckeditor.net - * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * - * == BEGIN LICENSE == - * - * Licensed under the terms of any of the following licenses at your - * choice: - * - * - GNU General Public License Version 2 or later (the "GPL") - * http://www.gnu.org/licenses/gpl.html - * - * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") - * http://www.gnu.org/licenses/lgpl.html - * - * - Mozilla Public License Version 1.1 or later (the "MPL") - * http://www.mozilla.org/MPL/MPL-1.1.html - * - * == END LICENSE == - * - * File Name: fck_find.html - * "Find" dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) ---> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> - <title></title> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <meta content="noindex, nofollow" name="robots" /> - <script type="text/javascript"> - -var oEditor = window.parent.InnerDialogLoaded() ; - -function OnLoad() -{ - // Whole word is available on IE only. - if ( oEditor.FCKBrowserInfo.IsIE ) - document.getElementById('divWord').style.display = '' ; - - // First of all, translate the dialog box texts. - oEditor.FCKLanguageManager.TranslatePage( document ) ; - - window.parent.SetAutoSize( true ) ; -} - -function btnStat(frm) -{ - document.getElementById('btnFind').disabled = - ( document.getElementById('txtFind').value.length == 0 ) ; -} - -function ReplaceTextNodes( parentNode, regex, replaceValue, replaceAll ) -{ - for ( var i = 0 ; i < parentNode.childNodes.length ; i++ ) - { - var oNode = parentNode.childNodes[i] ; - if ( oNode.nodeType == 3 ) - { - var sReplaced = oNode.nodeValue.replace( regex, replaceValue ) ; - if ( oNode.nodeValue != sReplaced ) - { - oNode.nodeValue = sReplaced ; - if ( ! replaceAll ) - return true ; - } - } - else - { - if ( ReplaceTextNodes( oNode, regex, replaceValue ) ) - return true ; - } - } - return false ; -} - -function GetRegexExpr() -{ - var sExpr ; - - if ( document.getElementById('chkWord').checked ) - sExpr = '\\b' + document.getElementById('txtFind').value + '\\b' ; - else - sExpr = document.getElementById('txtFind').value ; - - return sExpr ; -} - -function GetCase() -{ - return ( document.getElementById('chkCase').checked ? '' : 'i' ) ; -} - -function Ok() -{ - if ( document.getElementById('txtFind').value.length == 0 ) - return ; - - if ( oEditor.FCKBrowserInfo.IsIE ) - FindIE() ; - else - FindGecko() ; -} - -var oRange ; - -if ( oEditor.FCKBrowserInfo.IsIE ) - oRange = oEditor.FCK.EditorDocument.body.createTextRange() ; - -function FindIE() -{ - var iFlags = 0 ; - - if ( chkCase.checked ) - iFlags = iFlags | 4 ; - - if ( chkWord.checked ) - iFlags = iFlags | 2 ; - - var bFound = oRange.findText( document.getElementById('txtFind').value, 1, iFlags ) ; - - if ( bFound ) - { - oRange.scrollIntoView() ; - oRange.select() ; - oRange.collapse(false) ; - oLastRangeFound = oRange ; - } - else - { - oRange = oEditor.FCK.EditorDocument.body.createTextRange() ; - alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ; - } -} - -function FindGecko() -{ - var bCase = document.getElementById('chkCase').checked ; - var bWord = document.getElementById('chkWord').checked ; - - // window.find( searchString, caseSensitive, backwards, wrapAround, wholeWord, searchInFrames, showDialog ) ; - if ( !oEditor.FCK.EditorWindow.find( document.getElementById('txtFind').value, bCase, false, false, bWord, false, false ) ) - alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ; -} - </script> -</head> -<body onload="OnLoad()" style="overflow: hidden"> - <table cellspacing="3" cellpadding="2" width="100%" border="0"> - <tr> - <td nowrap="nowrap"> - <label for="txtFind" fcklang="DlgReplaceFindLbl"> - Find what:</label>&nbsp; - </td> - <td width="100%"> - <input id="txtFind" style="width: 100%" tabindex="1" type="text" /> - </td> - <td> - <input id="btnFind" style="padding-right: 5px; padding-left: 5px" onclick="Ok();" - type="button" value="Find" fcklang="DlgFindFindBtn" /> - </td> - </tr> - <tr> - <td valign="bottom" colspan="3"> - &nbsp;<input id="chkCase" tabindex="3" type="checkbox" /><label for="chkCase" fcklang="DlgReplaceCaseChk">Match - case</label> - <br /> - <div id="divWord" style="display: none"> - &nbsp;<input id="chkWord" tabindex="4" type="checkbox" /><label for="chkWord" fcklang="DlgReplaceWordChk">Match - whole word</label> - </div> - </td> - </tr> - </table> -</body> -</html> diff --git a/editor/editor/dialog/fck_flash.html b/editor/editor/dialog/fck_flash.html @@ -2,28 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_flash.html - * Flash Properties dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Flash Properties dialog window. --> <html> <head> @@ -59,12 +55,12 @@ <TR> <TD nowrap> <span fckLang="DlgImgWidth">Width</span><br> - <input id="txtWidth" class="FCK__FieldNumeric" type="text" size="3"> + <input id="txtWidth" onkeypress="return IsDigit(event);" type="text" size="3"> </TD> <TD>&nbsp;</TD> <TD> <span fckLang="DlgImgHeight">Height</span><br> - <input id="txtHeight" class="FCK__FieldNumeric" type="text" size="3"> + <input id="txtHeight" onkeypress="return IsDigit(event);" type="text" size="3"> </TD> </TR> </table> @@ -96,7 +92,7 @@ <input id="txtUploadFile" style="WIDTH: 100%" type="file" size="40" name="NewFile" /><br /> <br /> <input id="btnUpload" type="submit" value="Send it to the Server" fckLang="DlgLnkBtnUpload" /> - <iframe name="UploadWindow" style="DISPLAY: none" src="javascript:void(0)"></iframe> + <iframe name="UploadWindow" style="DISPLAY: none" src="javascript:void(0)"></iframe> </form> </div> <div id="divAdvanced" style="DISPLAY: none"> diff --git a/editor/editor/dialog/fck_flash/fck_flash.js b/editor/editor/dialog/fck_flash/fck_flash.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_flash.js - * Scripts related to the Flash dialog window (see fck_flash.html). - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Scripts related to the Flash dialog window (see fck_flash.html). */ var oEditor = window.parent.InnerDialogLoaded() ; @@ -86,8 +82,6 @@ function LoadSelection() { if ( ! oEmbed ) return ; - var sUrl = GetAttribute( oEmbed, 'src', '' ) ; - GetE('txtUrl').value = GetAttribute( oEmbed, 'src', '' ) ; GetE('txtWidth').value = GetAttribute( oEmbed, 'width', '' ) ; GetE('txtHeight').value = GetAttribute( oEmbed, 'height', '' ) ; @@ -98,7 +92,7 @@ function LoadSelection() GetE('chkLoop').checked = GetAttribute( oEmbed, 'loop', 'true' ) == 'true' ; GetE('chkMenu').checked = GetAttribute( oEmbed, 'menu', 'true' ) == 'true' ; GetE('cmbScale').value = GetAttribute( oEmbed, 'scale', '' ).toLowerCase() ; - + GetE('txtAttTitle').value = oEmbed.title ; if ( oEditor.FCKBrowserInfo.IsIE ) @@ -109,7 +103,7 @@ function LoadSelection() else { GetE('txtAttClasses').value = oEmbed.getAttribute('class',2) || '' ; - GetE('txtAttStyle').value = oEmbed.getAttribute('style',2) ; + GetE('txtAttStyle').value = oEmbed.getAttribute('style',2) || '' ; } UpdatePreview() ; @@ -128,22 +122,21 @@ function Ok() return false ; } + oEditor.FCKUndo.SaveUndoStep() ; if ( !oEmbed ) { oEmbed = FCK.EditorDocument.createElement( 'EMBED' ) ; oFakeImage = null ; } UpdateEmbed( oEmbed ) ; - + if ( !oFakeImage ) { oFakeImage = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Flash', oEmbed ) ; oFakeImage.setAttribute( '_fckflash', 'true', 0 ) ; - oFakeImage = FCK.InsertElementAndGetIt( oFakeImage ) ; + oFakeImage = FCK.InsertElement( oFakeImage ) ; } - else - oEditor.FCKUndo.SaveUndoStep() ; - + oEditor.FCKFlashProcessor.RefreshView( oFakeImage, oEmbed ) ; return true ; @@ -154,15 +147,15 @@ function UpdateEmbed( e ) SetAttribute( e, 'type' , 'application/x-shockwave-flash' ) ; SetAttribute( e, 'pluginspage' , 'http://www.macromedia.com/go/getflashplayer' ) ; - e.src = GetE('txtUrl').value ; + SetAttribute( e, 'src', GetE('txtUrl').value ) ; SetAttribute( e, "width" , GetE('txtWidth').value ) ; SetAttribute( e, "height", GetE('txtHeight').value ) ; - + // Advances Attributes SetAttribute( e, 'id' , GetE('txtAttId').value ) ; SetAttribute( e, 'scale', GetE('cmbScale').value ) ; - + SetAttribute( e, 'play', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ; SetAttribute( e, 'loop', GetE('chkLoop').checked ? 'true' : 'false' ) ; SetAttribute( e, 'menu', GetE('chkMenu').checked ? 'true' : 'false' ) ; @@ -186,7 +179,7 @@ var ePreview ; function SetPreviewElement( previewEl ) { ePreview = previewEl ; - + if ( GetE('txtUrl').value.length > 0 ) UpdatePreview() ; } @@ -195,7 +188,7 @@ function UpdatePreview() { if ( !ePreview ) return ; - + while ( ePreview.firstChild ) ePreview.removeChild( ePreview.firstChild ) ; @@ -205,12 +198,12 @@ function UpdatePreview() { var oDoc = ePreview.ownerDocument || ePreview.document ; var e = oDoc.createElement( 'EMBED' ) ; - - e.src = GetE('txtUrl').value ; - e.type = 'application/x-shockwave-flash' ; - e.width = '100%' ; - e.height = '100%' ; - + + SetAttribute( e, 'src', GetE('txtUrl').value ) ; + SetAttribute( e, 'type', 'application/x-shockwave-flash' ) ; + SetAttribute( e, 'width', '100%' ) ; + SetAttribute( e, 'height', '100%' ) ; + ePreview.appendChild( e ) ; } } @@ -225,11 +218,11 @@ function BrowseServer() function SetUrl( url, width, height ) { GetE('txtUrl').value = url ; - + if ( width ) GetE('txtWidth').value = width ; - - if ( height ) + + if ( height ) GetE('txtHeight').value = height ; UpdatePreview() ; @@ -274,19 +267,19 @@ var oUploadDeniedExtRegex = new RegExp( FCKConfig.FlashUploadDeniedExtensions, ' function CheckUpload() { var sFile = GetE('txtUploadFile').value ; - + if ( sFile.length == 0 ) { alert( 'Please select a file to upload' ) ; return false ; } - + if ( ( FCKConfig.FlashUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) || ( FCKConfig.FlashUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) ) { OnUploadCompleted( 202 ) ; return false ; } - + return true ; -}- \ No newline at end of file +} diff --git a/editor/editor/dialog/fck_flash/fck_flash_preview.html b/editor/editor/dialog/fck_flash/fck_flash_preview.html @@ -1,30 +1,26 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_flash_preview.html - * Preview page for the Flash dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Preview page for the Flash dialog window. --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title></title> diff --git a/editor/editor/dialog/fck_form.html b/editor/editor/dialog/fck_form.html @@ -2,28 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_form.html - * Form dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Form dialog window. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> @@ -45,7 +41,7 @@ window.onload = function() // First of all, translate the dialog box texts oEditor.FCKLanguageManager.TranslatePage(document) ; - if ( oActiveEl ) + if ( oActiveEl ) { GetE('txtName').value = oActiveEl.name ; GetE('txtAction').value = oActiveEl.getAttribute( 'action', 2 ) ; @@ -55,19 +51,21 @@ window.onload = function() oActiveEl = null ; window.parent.SetOkButton( true ) ; + window.parent.SetAutoSize( true ) ; } function Ok() { if ( !oActiveEl ) { - oActiveEl = oEditor.FCK.EditorDocument.createElement( 'FORM' ) ; - oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ; - oActiveEl.innerHTML = '&nbsp;' ; + oActiveEl = oEditor.FCK.InsertElement( 'form' ) ; + + if ( oEditor.FCKBrowserInfo.IsGeckoLike ) + oEditor.FCKTools.AppendBogusBr( oActiveEl ) ; } - + oActiveEl.name = GetE('txtName').value ; - SetAttribute( oActiveEl, 'action' , GetE('txtAction').value ) ; + SetAttribute( oActiveEl, 'action', GetE('txtAction').value ) ; oActiveEl.method = GetE('txtMethod').value ; return true ; diff --git a/editor/editor/dialog/fck_hiddenfield.html b/editor/editor/dialog/fck_hiddenfield.html @@ -2,98 +2,118 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_hiddenfield.html - * Hidden Field dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Hidden Field dialog window. --> -<html> - <head> - <title>Hidden Field Properties</title> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> - <meta content="noindex, nofollow" name="robots"> - <script src="common/fck_dialog_common.js" type="text/javascript"></script> - <script type="text/javascript"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <title>Hidden Field Properties</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <meta content="noindex, nofollow" name="robots" /> + <script src="common/fck_dialog_common.js" type="text/javascript"></script> + <script type="text/javascript"> var oEditor = window.parent.InnerDialogLoaded() ; +var FCK = oEditor.FCK ; // Gets the document DOM -var oDOM = oEditor.FCK.EditorDocument ; +var oDOM = FCK.EditorDocument ; -var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ; +// Get the selected flash embed (if available). +var oFakeImage = FCK.Selection.GetSelectedElement() ; +var oActiveEl ; + +if ( oFakeImage ) +{ + if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckinputhidden') ) + oActiveEl = FCK.GetRealElement( oFakeImage ) ; + else + oFakeImage = null ; +} window.onload = function() { // First of all, translate the dialog box texts oEditor.FCKLanguageManager.TranslatePage(document) ; - if ( oActiveEl && oActiveEl.tagName == 'INPUT' && oActiveEl.type == 'hidden' ) + if ( oActiveEl ) { GetE('txtName').value = oActiveEl.name ; GetE('txtValue').value = oActiveEl.value ; } - else - oActiveEl = null ; window.parent.SetOkButton( true ) ; -} + window.parent.SetAutoSize( true ) ; +} function Ok() { + oEditor.FCKUndo.SaveUndoStep() ; + if ( !oActiveEl ) { - oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ; + oActiveEl = FCK.EditorDocument.createElement( 'INPUT' ) ; oActiveEl.type = 'hidden' ; - oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ; + + oFakeImage = null ; } - + oActiveEl.name = GetE('txtName').value ; SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ; + if ( !oFakeImage ) + { + oFakeImage = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__InputHidden', oActiveEl ) ; + oFakeImage.setAttribute( '_fckinputhidden', 'true', 0 ) ; + oFakeImage = FCK.InsertElement( oFakeImage ) ; + } + else + oEditor.FCKUndo.SaveUndoStep() ; + + oEditor.FCKFlashProcessor.RefreshView( oFakeImage, oActiveEl ) ; + return true ; } - </script> - </head> - <body style="OVERFLOW: hidden" scroll="no"> - <table height="100%" width="100%"> - <tr> - <td align="center"> - <table border="0" class="inhoud" cellpadding="0" cellspacing="0" width="80%"> - <tr> - <td> - <span fckLang="DlgHiddenName">Name</span><br> - <input type="text" size="20" id="txtName" style="WIDTH: 100%"> - </td> - </tr> - <tr> - <td> - <span fckLang="DlgHiddenValue">Value</span><br> - <input type="text" size="30" id="txtValue" style="WIDTH: 100%"> - </td> - </tr> - </table> - </td> - </tr> - </table> - </body> + </script> +</head> +<body style="overflow: hidden" scroll="no"> + <table height="100%" width="100%"> + <tr> + <td align="center"> + <table border="0" class="inhoud" cellpadding="0" cellspacing="0" width="80%"> + <tr> + <td> + <span fcklang="DlgHiddenName">Name</span><br /> + <input type="text" size="20" id="txtName" style="width: 100%" /> + </td> + </tr> + <tr> + <td> + <span fcklang="DlgHiddenValue">Value</span><br /> + <input type="text" size="30" id="txtValue" style="width: 100%" /> + </td> + </tr> + </table> + </td> + </tr> + </table> +</body> </html> diff --git a/editor/editor/dialog/fck_image.html b/editor/editor/dialog/fck_image.html @@ -1,30 +1,26 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_image.html - * Image Properties dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Image Properties dialog window. --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Image Properties</title> diff --git a/editor/editor/dialog/fck_image/fck_image.js b/editor/editor/dialog/fck_image/fck_image.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_image.js - * Scripts related to the Image dialog window (see fck_image.html). - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Scripts related to the Image dialog window (see fck_image.html). */ var oEditor = window.parent.InnerDialogLoaded() ; @@ -71,13 +67,13 @@ function UpdateOriginal( resetSize ) { if ( !eImgPreview ) return ; - + if ( GetE('txtUrl').value.length == 0 ) { oImageOriginal = null ; return ; } - + oImageOriginal = document.createElement( 'IMG' ) ; // new Image() ; if ( resetSize ) @@ -139,7 +135,7 @@ function LoadSelection() var iWidth, iHeight ; var regexSize = /^\s*(\d+)px\s*$/i ; - + if ( oImage.style.width ) { var aMatchW = oImage.style.width.match( regexSize ) ; @@ -147,6 +143,7 @@ function LoadSelection() { iWidth = aMatchW[1] ; oImage.style.width = '' ; + SetAttribute( oImage, 'width' , iWidth ) ; } } @@ -157,6 +154,7 @@ function LoadSelection() { iHeight = aMatchH[1] ; oImage.style.height = '' ; + SetAttribute( oImage, 'height', iHeight ) ; } } @@ -172,7 +170,7 @@ function LoadSelection() if ( oEditor.FCKBrowserInfo.IsIE ) { - GetE('txtAttClasses').value = oImage.getAttribute('className') || '' ; + GetE('txtAttClasses').value = oImage.className || '' ; GetE('txtAttStyle').value = oImage.style.cssText ; } else @@ -186,7 +184,7 @@ function LoadSelection() var sLinkUrl = oLink.getAttribute( '_fcksavedurl' ) ; if ( sLinkUrl == null ) sLinkUrl = oLink.getAttribute('href',2) ; - + GetE('txtLnkUrl').value = sLinkUrl ; GetE('cmbLnkTarget').value = oLink.target ; } @@ -219,21 +217,20 @@ function Ok() if ( confirm( 'Do you want to transform the selected image button on a simple image?' ) ) oImage = null ; } - + + oEditor.FCKUndo.SaveUndoStep() ; if ( !bHasImage ) { if ( bImageButton ) { - oImage = FCK.EditorDocument.createElement( 'INPUT' ) ; + oImage = FCK.EditorDocument.createElement( 'input' ) ; oImage.type = 'image' ; - oImage = FCK.InsertElementAndGetIt( oImage ) ; + oImage = FCK.InsertElement( oImage ) ; } else - oImage = FCK.CreateElement( 'IMG' ) ; + oImage = FCK.InsertElement( 'img' ) ; } - else - oEditor.FCKUndo.SaveUndoStep() ; - + UpdateImage( oImage ) ; var sLnkUrl = GetE('txtLnkUrl').value.Trim() ; @@ -252,7 +249,7 @@ function Ok() if ( !bHasImage ) oEditor.FCKSelection.SelectNode( oImage ) ; - oLink = oEditor.FCK.CreateLink( sLnkUrl ) ; + oLink = oEditor.FCK.CreateLink( sLnkUrl )[0] ; if ( !bHasImage ) { @@ -288,13 +285,18 @@ function UpdateImage( e, skipId ) SetAttribute( e, 'dir' , GetE('cmbAttLangDir').value ) ; SetAttribute( e, 'lang' , GetE('txtAttLangCode').value ) ; SetAttribute( e, 'title' , GetE('txtAttTitle').value ) ; - SetAttribute( e, 'class' , GetE('txtAttClasses').value ) ; SetAttribute( e, 'longDesc' , GetE('txtLongDesc').value ) ; if ( oEditor.FCKBrowserInfo.IsIE ) + { + e.className = GetE('txtAttClasses').value ; e.style.cssText = GetE('txtAttStyle').value ; + } else + { + SetAttribute( e, 'class' , GetE('txtAttClasses').value ) ; SetAttribute( e, 'style', GetE('txtAttStyle').value ) ; + } } var eImgPreview ; @@ -307,7 +309,7 @@ function SetPreviewElements( imageElement, linkElement ) UpdatePreview() ; UpdateOriginal() ; - + bPreviewInitialized = true ; } @@ -351,11 +353,11 @@ function SwitchLock( lockButton ) // Fired when the width or height input texts change function OnSizeChanged( dimension, value ) { - // Verifies if the aspect ration has to be mantained + // Verifies if the aspect ration has to be maintained if ( oImageOriginal && bLockRatio ) { var e = dimension == 'Width' ? GetE('txtHeight') : GetE('txtWidth') ; - + if ( value.length == 0 || isNaN( value ) ) { e.value = '' ; @@ -430,7 +432,7 @@ function SetUrl( url, width, height, alt ) UpdatePreview() ; UpdateOriginal( true ) ; } - + window.parent.SetSelectedTab( 'Info' ) ; } @@ -472,19 +474,19 @@ var oUploadDeniedExtRegex = new RegExp( FCKConfig.ImageUploadDeniedExtensions, ' function CheckUpload() { var sFile = GetE('txtUploadFile').value ; - + if ( sFile.length == 0 ) { alert( 'Please select a file to upload' ) ; return false ; } - + if ( ( FCKConfig.ImageUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) || ( FCKConfig.ImageUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) ) { OnUploadCompleted( 202 ) ; return false ; } - + return true ; -}- \ No newline at end of file +} diff --git a/editor/editor/dialog/fck_image/fck_image_preview.html b/editor/editor/dialog/fck_image/fck_image_preview.html @@ -1,31 +1,28 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_image_preview.html - * Preview page for the Image dialog window. - * Curiosity: http://en.wikipedia.org/wiki/Lorem_ipsum - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Preview page for the Image dialog window. + * + * Curiosity: http://en.wikipedia.org/wiki/Lorem_ipsum --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> @@ -42,7 +39,7 @@ if ( window.parent.FCKConfig.BaseHref.length > 0 ) window.onload = function() { - window.parent.SetPreviewElements( + window.parent.SetPreviewElements( document.getElementById( 'imgPreview' ), document.getElementById( 'lnkPreview' ) ) ; } diff --git a/editor/editor/dialog/fck_link.html b/editor/editor/dialog/fck_link.html @@ -1,30 +1,26 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_link.html - * Link dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Link dialog window. --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Link Properties</title> @@ -53,7 +49,6 @@ <option value="https://">https://</option> <option value="ftp://">ftp://</option> <option value="news://">news://</option> - <option value="object://">OpenRat-Object-Id://</option> <option value="" fckLang="DlgLnkProtoOther">&lt;other&gt;</option> </select> </td> @@ -113,7 +108,7 @@ <input id="txtUploadFile" style="WIDTH: 100%" type="file" size="40" name="NewFile" /><br /> <br /> <input id="btnUpload" type="submit" value="Send it to the Server" fckLang="DlgLnkBtnUpload" /> - <iframe name="UploadWindow" style="DISPLAY: none" src="javascript:void(0)"></iframe> + <iframe name="UploadWindow" style="DISPLAY: none" src="javascript:void(0)"></iframe> </form> </div> <div id="divTarget" style="DISPLAY: none"> @@ -153,21 +148,21 @@ <tr> <td valign="top" nowrap="nowrap" width="50%"> <input id="chkPopupResizable" name="chkFeature" value="resizable" type="checkbox" /><label for="chkPopupResizable" fckLang="DlgLnkPopResize">Resizable</label><br /> - <input id="chkPopupLocationBar" name="chkFeature" value="location" type="checkbox" /><label for="chkPopupLocationBar" fckLang="DlgLnkPopLocation">Location + <input id="chkPopupLocationBar" name="chkFeature" value="location" type="checkbox" /><label for="chkPopupLocationBar" fckLang="DlgLnkPopLocation">Location Bar</label><br /> - <input id="chkPopupManuBar" name="chkFeature" value="menubar" type="checkbox" /><label for="chkPopupManuBar" fckLang="DlgLnkPopMenu">Menu + <input id="chkPopupManuBar" name="chkFeature" value="menubar" type="checkbox" /><label for="chkPopupManuBar" fckLang="DlgLnkPopMenu">Menu Bar</label><br /> - <input id="chkPopupScrollBars" name="chkFeature" value="scrollbars" type="checkbox" /><label for="chkPopupScrollBars" fckLang="DlgLnkPopScroll">Scroll + <input id="chkPopupScrollBars" name="chkFeature" value="scrollbars" type="checkbox" /><label for="chkPopupScrollBars" fckLang="DlgLnkPopScroll">Scroll Bars</label> </td> <td></td> <td valign="top" nowrap="nowrap" width="50%"> - <input id="chkPopupStatusBar" name="chkFeature" value="status" type="checkbox" /><label for="chkPopupStatusBar" fckLang="DlgLnkPopStatus">Status + <input id="chkPopupStatusBar" name="chkFeature" value="status" type="checkbox" /><label for="chkPopupStatusBar" fckLang="DlgLnkPopStatus">Status Bar</label><br /> <input id="chkPopupToolbar" name="chkFeature" value="toolbar" type="checkbox" /><label for="chkPopupToolbar" fckLang="DlgLnkPopToolbar">Toolbar</label><br /> - <input id="chkPopupFullScreen" name="chkFeature" value="fullscreen" type="checkbox" /><label for="chkPopupFullScreen" fckLang="DlgLnkPopFullScrn">Full + <input id="chkPopupFullScreen" name="chkFeature" value="fullscreen" type="checkbox" /><label for="chkPopupFullScreen" fckLang="DlgLnkPopFullScrn">Full Screen (IE)</label><br /> - <input id="chkPopupDependent" name="chkFeature" value="dependent" type="checkbox" /><label for="chkPopupDependent" fckLang="DlgLnkPopDependent">Dependent + <input id="chkPopupDependent" name="chkFeature" value="dependent" type="checkbox" /><label for="chkPopupDependent" fckLang="DlgLnkPopDependent">Dependent (Netscape)</label> </td> </tr> diff --git a/editor/editor/dialog/fck_link/fck_link.js b/editor/editor/dialog/fck_link/fck_link.js @@ -1,37 +1,32 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_link.js - * Scripts related to the Link dialog window (see fck_link.html). - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - * Dominik Pesch ?dom? (empty selection patch) (d.pesch@11com7.de) - * Alfonso Martinez de Lizarrondo - Uritec (alfonso at uritec dot net) + * + * Scripts related to the Link dialog window (see fck_link.html). */ var oEditor = window.parent.InnerDialogLoaded() ; var FCK = oEditor.FCK ; var FCKLang = oEditor.FCKLang ; var FCKConfig = oEditor.FCKConfig ; -var FCKRegexLib = oEditor.FCKRegexLib ; +var FCKRegexLib = oEditor.FCKRegexLib ; +var FCKTools = oEditor.FCKTools ; //#### Dialog Tabs @@ -61,28 +56,20 @@ function OnDialogTabChange( tabCode ) //#### Regular Expressions library. var oRegex = new Object() ; -oRegex.UriProtocol = new RegExp('') ; -oRegex.UriProtocol.compile( '^(((http|https|ftp|news):\/\/)|mailto:)', 'gi' ) ; +oRegex.UriProtocol = /^(((http|https|ftp|news):\/\/)|mailto:)/gi ; -oRegex.UrlOnChangeProtocol = new RegExp('') ; -oRegex.UrlOnChangeProtocol.compile( '^(http|https|ftp|news)://(?=.)', 'gi' ) ; +oRegex.UrlOnChangeProtocol = /^(http|https|ftp|news):\/\/(?=.)/gi ; -oRegex.UrlOnChangeTestOther = new RegExp('') ; -//oRegex.UrlOnChangeTestOther.compile( '^(javascript:|#|/)', 'gi' ) ; -oRegex.UrlOnChangeTestOther.compile( '^((javascript:)|[#/\.])', 'gi' ) ; +oRegex.UrlOnChangeTestOther = /^((javascript:)|[#\/\.])/gi ; -oRegex.ReserveTarget = new RegExp('') ; -oRegex.ReserveTarget.compile( '^_(blank|self|top|parent)$', 'i' ) ; +oRegex.ReserveTarget = /^_(blank|self|top|parent)$/i ; -oRegex.PopupUri = new RegExp('') ; -oRegex.PopupUri.compile( "^javascript:void\\(\\s*window.open\\(\\s*'([^']+)'\\s*,\\s*(?:'([^']*)'|null)\\s*,\\s*'([^']*)'\\s*\\)\\s*\\)\\s*$" ) ; +oRegex.PopupUri = /^javascript:void\(\s*window.open\(\s*'([^']+)'\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*\)\s*$/ ; -// Accesible popups -oRegex.OnClickPopup = new RegExp('') ; -oRegex.OnClickPopup.compile( "^\\s*onClick=\"\\s*window.open\\(\\s*this\\.href\\s*,\\s*(?:'([^']*)'|null)\\s*,\\s*'([^']*)'\\s*\\)\\s*;\\s*return\\s*false;*\\s*\"$" ) ; +// Accessible popups +oRegex.OnClickPopup = /^\s*on[cC]lick="\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*"$/ ; -oRegex.PopupFeatures = new RegExp('') ; -oRegex.PopupFeatures.compile( '(?:^|,)([^=]+)=(\\d+|yes|no)', 'gi' ) ; +oRegex.PopupFeatures = /(?:^|,)([^=]+)=(\d+|yes|no)/gi ; //#### Parser Functions @@ -165,6 +152,9 @@ window.onload = function() if ( FCKConfig.LinkUpload ) GetE('frmUpload').action = FCKConfig.LinkUploadURL ; + // Set the default target (from configuration). + SetDefaultTarget() ; + // Activate the "OK" button. window.parent.SetOkButton( true ) ; } @@ -173,7 +163,7 @@ var bHasAnchors ; function LoadAnchorNamesAndIds() { - // Since version 2.0, the anchors are replaced in the DOM by IMGs so the user see the icon + // Since version 2.0, the anchors are replaced in the DOM by IMGs so the user see the icon // to edit them. So, we must look for that images now. var aAnchors = new Array() ; var i ; @@ -191,8 +181,8 @@ function LoadAnchorNamesAndIds() if ( oLinks[i].name && ( oLinks[i].name.length > 0 ) ) aAnchors[ aAnchors.length ] = oLinks[i] ; } - - var aIds = oEditor.FCKTools.GetAllChildrenIds( oEditor.FCK.EditorDocument.body ) ; + + var aIds = FCKTools.GetAllChildrenIds( oEditor.FCK.EditorDocument.body ) ; bHasAnchors = ( aAnchors.length > 0 || aIds.length > 0 ) ; @@ -200,12 +190,12 @@ function LoadAnchorNamesAndIds() { var sName = aAnchors[i].name ; if ( sName && sName.length > 0 ) - oEditor.FCKTools.AddSelectOption( GetE('cmbAnchorName'), sName, sName ) ; + FCKTools.AddSelectOption( GetE('cmbAnchorName'), sName, sName ) ; } for ( i = 0 ; i < aIds.length ; i++ ) { - oEditor.FCKTools.AddSelectOption( GetE('cmbAnchorId'), aIds[i], aIds[i] ) ; + FCKTools.AddSelectOption( GetE('cmbAnchorId'), aIds[i], aIds[i] ) ; } ShowE( 'divSelAnchor' , bHasAnchors ) ; @@ -233,15 +223,22 @@ function LoadSelection() SetTarget( 'popup' ) ; } - // Accesible popups, the popup data is in the onclick attribute - if ( !oPopupMatch ) { - var onclick = oLink.getAttribute( 'onClick_fckprotectedatt' ) ; - oPopupMatch = oRegex.OnClickPopup.exec( onclick ) ; - if( oPopupMatch ) + // Accessible popups, the popup data is in the onclick attribute + if ( !oPopupMatch ) + { + var onclick = oLink.getAttribute( 'onclick_fckprotectedatt' ) ; + if ( onclick ) { - GetE( 'cmbTarget' ).value = 'popup' ; - FillPopupFields( oPopupMatch[1], oPopupMatch[2] ) ; - SetTarget( 'popup' ) ; + // Decode the protected string + onclick = decodeURIComponent( onclick ) ; + + oPopupMatch = oRegex.OnClickPopup.exec( onclick ) ; + if( oPopupMatch ) + { + GetE( 'cmbTarget' ).value = 'popup' ; + FillPopupFields( oPopupMatch[1], oPopupMatch[2] ) ; + SetTarget( 'popup' ) ; + } } } @@ -253,7 +250,7 @@ function LoadSelection() sProtocol = sProtocol[0].toLowerCase() ; GetE('cmbLinkProtocol').value = sProtocol ; - // Remove the protocol and get the remainig URL. + // Remove the protocol and get the remaining URL. var sUrl = sHRef.replace( oRegex.UriProtocol, '' ) ; if ( sProtocol == 'mailto:' ) // It is an e-mail link. @@ -358,7 +355,7 @@ function SetTarget( targetType ) { GetE('tdTargetFrame').style.display = ( targetType == 'popup' ? 'none' : '' ) ; GetE('tdPopupName').style.display = - GetE('tablePopupFeatures').style.display = ( targetType == 'popup' ? '' : 'none' ) ; + GetE('tablePopupFeatures').style.display = ( targetType == 'popup' ? '' : 'none' ) ; switch ( targetType ) { @@ -408,7 +405,7 @@ function OnTargetNameChange() GetE('cmbTarget').value = 'frame' ; } -// Accesible popups +// Accessible popups function BuildOnClickPopup() { var sWindowName = "'" + GetE('txtPopupName').value.replace(/\W/gi, "") + "'" ; @@ -468,6 +465,7 @@ function FillPopupFields( windowName, features ) function Ok() { var sUri, sInnerHtml ; + oEditor.FCKUndo.SaveUndoStep() ; switch ( GetE('cmbLinkType').value ) { @@ -513,16 +511,13 @@ function Ok() break ; } - // No link selected, so try to create one. - if ( !oLink ) - oLink = oEditor.FCK.CreateLink( sUri ) ; - - if ( oLink ) - sInnerHtml = oLink.innerHTML ; // Save the innerHTML (IE changes it if it is like an URL). - else - { - // If no selection, use the uri as the link text (by dom, 2006-05-26) + // If no link is selected, create a new one (it may result in more than one link creation - #220). + var aLinks = oLink ? [ oLink ] : oEditor.FCK.CreateLink( sUri, true ) ; + // If no selection, no links are created, so use the uri as the link text (by dom, 2006-05-26) + var aHasSelection = ( aLinks.length > 0 ) ; + if ( !aHasSelection ) + { sInnerHtml = sUri; // Built a better text for empty links. @@ -548,66 +543,85 @@ function Ok() } // Create a new (empty) anchor. - oLink = oEditor.FCK.CreateElement( 'a' ) ; + aLinks = [ oEditor.FCK.InsertElement( 'a' ) ] ; } - oEditor.FCKUndo.SaveUndoStep() ; - - oLink.href = sUri ; - SetAttribute( oLink, '_fcksavedurl', sUri ) ; - - // Accesible popups - if( GetE('cmbTarget').value == 'popup' ) - { - SetAttribute( oLink, 'onClick_fckprotectedatt', " onClick=\"" + BuildOnClickPopup() + "\"") ; - } - else + for ( var i = 0 ; i < aLinks.length ; i++ ) { - // Check if the previous onclick was for a popup: - // In that case remove the onclick handler. - var onclick = oLink.getAttribute( 'onClick_fckprotectedatt' ) ; - if( oRegex.OnClickPopup.test( onclick ) ) - SetAttribute( oLink, 'onClick_fckprotectedatt', '' ) ; - } + oLink = aLinks[i] ; - oLink.innerHTML = sInnerHtml ; // Set (or restore) the innerHTML + if ( aHasSelection ) + sInnerHtml = oLink.innerHTML ; // Save the innerHTML (IE changes it if it is like an URL). - // Target - if( GetE('cmbTarget').value != 'popup' ) - SetAttribute( oLink, 'target', GetE('txtTargetFrame').value ) ; - else - SetAttribute( oLink, 'target', null ) ; - - // Advances Attributes - SetAttribute( oLink, 'id' , GetE('txtAttId').value ) ; - SetAttribute( oLink, 'name' , GetE('txtAttName').value ) ; - SetAttribute( oLink, 'dir' , GetE('cmbAttLangDir').value ) ; - SetAttribute( oLink, 'lang' , GetE('txtAttLangCode').value ) ; - SetAttribute( oLink, 'accesskey', GetE('txtAttAccessKey').value ) ; - SetAttribute( oLink, 'tabindex' , ( GetE('txtAttTabIndex').value > 0 ? GetE('txtAttTabIndex').value : null ) ) ; - SetAttribute( oLink, 'title' , GetE('txtAttTitle').value ) ; - SetAttribute( oLink, 'type' , GetE('txtAttContentType').value ) ; - SetAttribute( oLink, 'charset' , GetE('txtAttCharSet').value ) ; + oLink.href = sUri ; + SetAttribute( oLink, '_fcksavedurl', sUri ) ; - if ( oEditor.FCKBrowserInfo.IsIE ) - { - var sClass = GetE('txtAttClasses').value ; - // If it's also an anchor add an internal class - if ( GetE('txtAttName').value.length != 0 ) - sClass += ' FCK__AnchorC' ; - SetAttribute( oLink, 'className', sClass ) ; + var onclick; + // Accessible popups + if( GetE('cmbTarget').value == 'popup' ) + { + onclick = BuildOnClickPopup() ; + // Encode the attribute + onclick = encodeURIComponent( " onclick=\"" + onclick + "\"" ) ; + SetAttribute( oLink, 'onclick_fckprotectedatt', onclick ) ; + } + else + { + // Check if the previous onclick was for a popup: + // In that case remove the onclick handler. + onclick = oLink.getAttribute( 'onclick_fckprotectedatt' ) ; + if ( onclick ) + { + // Decode the protected string + onclick = decodeURIComponent( onclick ) ; + + if( oRegex.OnClickPopup.test( onclick ) ) + SetAttribute( oLink, 'onclick_fckprotectedatt', '' ) ; + } + } - oLink.style.cssText = GetE('txtAttStyle').value ; - } - else - { - SetAttribute( oLink, 'class', GetE('txtAttClasses').value ) ; - SetAttribute( oLink, 'style', GetE('txtAttStyle').value ) ; + oLink.innerHTML = sInnerHtml ; // Set (or restore) the innerHTML + + // Target + if( GetE('cmbTarget').value != 'popup' ) + SetAttribute( oLink, 'target', GetE('txtTargetFrame').value ) ; + else + SetAttribute( oLink, 'target', null ) ; + + // Let's set the "id" only for the first link to avoid duplication. + if ( i == 0 ) + SetAttribute( oLink, 'id', GetE('txtAttId').value ) ; + + // Advances Attributes + SetAttribute( oLink, 'name' , GetE('txtAttName').value ) ; + SetAttribute( oLink, 'dir' , GetE('cmbAttLangDir').value ) ; + SetAttribute( oLink, 'lang' , GetE('txtAttLangCode').value ) ; + SetAttribute( oLink, 'accesskey', GetE('txtAttAccessKey').value ) ; + SetAttribute( oLink, 'tabindex' , ( GetE('txtAttTabIndex').value > 0 ? GetE('txtAttTabIndex').value : null ) ) ; + SetAttribute( oLink, 'title' , GetE('txtAttTitle').value ) ; + SetAttribute( oLink, 'type' , GetE('txtAttContentType').value ) ; + SetAttribute( oLink, 'charset' , GetE('txtAttCharSet').value ) ; + + if ( oEditor.FCKBrowserInfo.IsIE ) + { + var sClass = GetE('txtAttClasses').value ; + // If it's also an anchor add an internal class + if ( GetE('txtAttName').value.length != 0 ) + sClass += ' FCK__AnchorC' ; + SetAttribute( oLink, 'className', sClass ) ; + + oLink.style.cssText = GetE('txtAttStyle').value ; + } + else + { + SetAttribute( oLink, 'class', GetE('txtAttClasses').value ) ; + SetAttribute( oLink, 'style', GetE('txtAttStyle').value ) ; + } } - // Select the link. - oEditor.FCKSelection.SelectNode(oLink); - + // Select the (first) link. + oEditor.FCKSelection.SelectNode( aLinks[0] ); + return true ; } @@ -660,19 +674,42 @@ var oUploadDeniedExtRegex = new RegExp( FCKConfig.LinkUploadDeniedExtensions, 'i function CheckUpload() { var sFile = GetE('txtUploadFile').value ; - + if ( sFile.length == 0 ) { alert( 'Please select a file to upload' ) ; return false ; } - + if ( ( FCKConfig.LinkUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) || ( FCKConfig.LinkUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) ) { OnUploadCompleted( 202 ) ; return false ; } - + return true ; } + +function SetDefaultTarget() +{ + var target = FCKConfig.DefaultLinkTarget || '' ; + + if ( oLink || target.length == 0 ) + return ; + + switch ( target ) + { + case '_blank' : + case '_self' : + case '_parent' : + case '_top' : + GetE('cmbTarget').value = target ; + break ; + default : + GetE('cmbTarget').value = 'frame' ; + break ; + } + + GetE('txtTargetFrame').value = target ; +} diff --git a/editor/editor/dialog/fck_listprop.html b/editor/editor/dialog/fck_listprop.html @@ -2,29 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_listprop.html - * Bulleted List dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - * Marcel J Bennett (start attribute) + * + * Bulleted List dialog window. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> @@ -65,10 +60,11 @@ window.onload = function() if ( oActiveEl ) { if ( oActiveEl.getAttribute('type') ) - oActiveSel.value = oActiveEl.getAttribute('type').toLowerCase() ; + oActiveSel.value = oActiveEl.getAttribute('type') ; } window.parent.SetOkButton( true ) ; + window.parent.SetAutoSize( true ) ; } function Ok() diff --git a/editor/editor/dialog/fck_paste.html b/editor/editor/dialog/fck_paste.html @@ -2,36 +2,33 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_paste.html - * This dialog is shown when, for some reason (usually security settings), - * the user is not able to paste data from the clipboard to the editor using - * the toolbar buttons or the context menu. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * This dialog is shown when, for some reason (usually security settings), + * the user is not able to paste data from the clipboard to the editor using + * the toolbar buttons or the context menu. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="robots" content="noindex, nofollow" /> + <script type="text/javascript"> var oEditor = window.parent.InnerDialogLoaded() ; var FCK = oEditor.FCK; @@ -42,47 +39,72 @@ window.onload = function () { // First of all, translate the dialog box texts oEditor.FCKLanguageManager.TranslatePage(document) ; - - if ( window.parent.dialogArguments.CustomValue == 'Word' ) + + var sPastingType = window.parent.dialogArguments.CustomValue ; + + if ( sPastingType == 'Word' || sPastingType == 'Security' ) { + if ( sPastingType == 'Security' ) + document.getElementById( 'xSecurityMsg' ).style.display = '' ; + var oFrame = document.getElementById('frmData') ; oFrame.style.display = '' ; + + // Avoid errors if the pasted content has any script that fails: #389 + var oDoc = oFrame.contentWindow.document ; + oDoc.open() ; + oDoc.write('<html><head><script>window.onerror = function() { return true ; };<\/script><\/head><body><\/body><\/html>') ; + oDoc.close() ; - if ( oFrame.contentDocument ) + if ( oFrame.contentDocument ) oFrame.contentDocument.designMode = 'on' ; else oFrame.contentWindow.document.body.contentEditable = true ; + + // Set the focus on the pasting area + oFrame.contentWindow.focus(); } else { document.getElementById('txtData').style.display = '' ; - document.getElementById('oWordCommands').style.display = 'none' ; } - window.parent.SetOkButton( true ) ; - window.parent.SetAutoSize( true ) ; + if ( sPastingType != 'Word' ) + document.getElementById('oWordCommands').style.display = 'none' ; + + window.parent.SetOkButton( true ) ; + window.parent.SetAutoSize( true ) ; } function Ok() { + // Before doing anything, save undo snapshot. + oEditor.FCKUndo.SaveUndoStep() ; + var sHtml ; - - if ( window.parent.dialogArguments.CustomValue == 'Word' ) + + var sPastingType = window.parent.dialogArguments.CustomValue ; + + if ( sPastingType == 'Word' || sPastingType == 'Security' ) { var oFrame = document.getElementById('frmData') ; var oBody ; - if ( oFrame.contentDocument ) + if ( oFrame.contentDocument ) oBody = oFrame.contentDocument.body ; else oBody = oFrame.contentWindow.document.body ; - // If a plugin creates a FCK.CustomCleanWord function it will be called instead of the default one - if ( typeof( FCKTools.CustomCleanWord ) == 'function' ) - sHtml = FCK.CustomCleanWord( oBody, document.getElementById('chkRemoveFont').checked, document.getElementById('chkRemoveStyles').checked ) ; + if ( sPastingType == 'Word' ) + { + // If a plugin creates a FCK.CustomCleanWord function it will be called instead of the default one + if ( typeof( FCK.CustomCleanWord ) == 'function' ) + sHtml = FCK.CustomCleanWord( oBody, document.getElementById('chkRemoveFont').checked, document.getElementById('chkRemoveStyles').checked ) ; + else + sHtml = CleanWord( oBody, document.getElementById('chkRemoveFont').checked, document.getElementById('chkRemoveStyles').checked ) ; + } else - sHtml = CleanWord( oBody, document.getElementById('chkRemoveFont').checked, document.getElementById('chkRemoveStyles').checked ) ; - + sHtml = oBody.innerHTML ; // Fix relative anchor URLs (IE automatically adds the current page URL). var re = new RegExp( window.location + "#", "g" ) ; @@ -91,19 +113,55 @@ function Ok() else { sHtml = oEditor.FCKTools.HTMLEncode( document.getElementById('txtData').value ) ; - sHtml = sHtml.replace( /\n/g, '<BR>' ) ; + sHtml = FCKTools.ProcessLineBreaks( oEditor, FCKConfig, sHtml ) ; + + // FCK.InsertHtml() does not work for us, since document fragments cannot contain node fragments. :( + // Use the marker method instead. It's primitive, but it works. + var range = new oEditor.FCKDomRange( oEditor.FCK.EditorWindow ) ; + var oDoc = oEditor.FCK.EditorDocument ; + range.MoveToSelection() ; + range.DeleteContents() ; + var marker = [] ; + for ( var i = 0 ; i < 5 ; i++ ) + marker.push( parseInt(Math.random() * 100000, 10 ) ) ; + marker = marker.join( "" ) ; + range.InsertNode ( oDoc.createTextNode( marker ) ) ; + var bookmark = range.CreateBookmark() ; + + // Now we've got a marker indicating the paste position in the editor document. + // Find its position in the HTML code. + var htmlString = oDoc.body.innerHTML ; + var index = htmlString.indexOf( marker ) ; + + // Split it the HTML code up, add the code we generated, and put them back together. + var htmlList = [] ; + htmlList.push( htmlString.substr( 0, index ) ) ; + htmlList.push( sHtml ) ; + htmlList.push( htmlString.substr( index + marker.length ) ) ; + htmlString = htmlList.join( "" ) ; + + if ( oEditor.FCKBrowserInfo.IsIE ) + oEditor.FCK.SetInnerHtml( htmlString ) ; + else + oDoc.body.innerHTML = htmlString ; + + range.MoveToBookmark( bookmark ) ; + range.Collapse( false ) ; + range.Select() ; + range.Release() ; + return true ; } - + oEditor.FCK.InsertHtml( sHtml ) ; - + return true ; } function CleanUpBox() { var oFrame = document.getElementById('frmData') ; - - if ( oFrame.contentDocument ) + + if ( oFrame.contentDocument ) oFrame.contentDocument.body.innerHTML = '' ; else oFrame.contentWindow.document.body.innerHTML = '' ; @@ -111,7 +169,7 @@ function CleanUpBox() // This function will be called from the PasteFromWord dialog (fck_paste.html) -// Input: oNode a DOM node that contains the raw paste from the clipboard +// Input: oNode a DOM node that contains the raw paste from the clipboard // bIgnoreFont, bRemoveStyles booleans according to the values set in the dialog // Output: the cleaned string function CleanWord( oNode, bIgnoreFont, bRemoveStyles ) @@ -120,7 +178,7 @@ function CleanWord( oNode, bIgnoreFont, bRemoveStyles ) html = html.replace(/<o:p>\s*<\/o:p>/g, '') ; html = html.replace(/<o:p>.*?<\/o:p>/g, '&nbsp;') ; - + // Remove mso-xxx styles. html = html.replace( /\s*mso-[^:]+:[^;"]+;?/gi, '' ) ; @@ -148,7 +206,7 @@ function CleanWord( oNode, bIgnoreFont, bRemoveStyles ) html = html.replace( /\s*FONT-FAMILY:[^;"]*;?/gi, '' ) ; } - + // Remove Class attributes html = html.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3") ; @@ -158,39 +216,49 @@ function CleanWord( oNode, bIgnoreFont, bRemoveStyles ) // Remove empty styles. html = html.replace( /\s*style="\s*"/gi, '' ) ; - + html = html.replace( /<SPAN\s*[^>]*>\s*&nbsp;\s*<\/SPAN>/gi, '&nbsp;' ) ; - + html = html.replace( /<SPAN\s*[^>]*><\/SPAN>/gi, '' ) ; - + // Remove Lang attributes html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ; - + html = html.replace( /<SPAN\s*>(.*?)<\/SPAN>/gi, '$1' ) ; - + html = html.replace( /<FONT\s*>(.*?)<\/FONT>/gi, '$1' ) ; // Remove XML elements and declarations html = html.replace(/<\\?\?xml[^>]*>/gi, '' ) ; - + // Remove Tags with XML namespace declarations: <o:p><\/o:p> html = html.replace(/<\/?\w+:[^>]*>/gi, '' ) ; - + // Remove comments [SF BUG-1481861]. - html = html.replace(/<\!--.*-->/g, '' ) ; + html = html.replace(/<\!--.*?-->/g, '' ) ; html = html.replace( /<(U|I|STRIKE)>&nbsp;<\/\1>/g, '&nbsp;' ) ; html = html.replace( /<H\d>\s*<\/H\d>/gi, '' ) ; + // Remove "display:none" tags. + html = html.replace( /<(\w+)[^>]*\sstyle="[^"]*DISPLAY\s?:\s?none(.*?)<\/\1>/ig, '' ) ; + + // Remove language tags + html = html.replace( /<(\w[^>]*) language=([^ |>]*)([^>]*)/gi, "<$1$3") ; + + // Remove onmouseover and onmouseout events (from MS Word comments effect) + html = html.replace( /<(\w[^>]*) onmouseover="([^\"]*)"([^>]*)/gi, "<$1$3") ; + html = html.replace( /<(\w[^>]*) onmouseout="([^\"]*)"([^>]*)/gi, "<$1$3") ; + if ( FCKConfig.CleanWordKeepsStructure ) { // The original <Hn> tag send from Word is something like this: <Hn style="margin-top:0px;margin-bottom:0px"> html = html.replace( /<H(\d)([^>]*)>/gi, '<h$1>' ) ; // Word likes to insert extra <font> tags, when using MSIE. (Wierd). - html = html.replace( /<(H\d)><FONT[^>]*>(.*?)<\/FONT><\/\1>/gi, '<$1>$2</$1>' ); - html = html.replace( /<(H\d)><EM>(.*?)<\/EM><\/\1>/gi, '<$1>$2</$1>' ); + html = html.replace( /<(H\d)><FONT[^>]*>(.*?)<\/FONT><\/\1>/gi, '<$1>$2<\/$1>' ); + html = html.replace( /<(H\d)><EM>(.*?)<\/EM><\/\1>/gi, '<$1>$2<\/$1>' ); } else { @@ -218,15 +286,23 @@ function CleanWord( oNode, bIgnoreFont, bRemoveStyles ) } </script> + </head> <body style="overflow: hidden"> <table cellspacing="0" cellpadding="0" width="100%" border="0" style="height: 98%"> <tr> <td> - <span fcklang="DlgPasteMsg2">Please paste inside the following box using the keyboard - (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.</span> - <br /> - &nbsp; + <div id="xSecurityMsg" style="display: none"> + <span fcklang="DlgPasteSec">Because of your browser security settings, + the editor is not able to access your clipboard data directly. You are required + to paste it again in this window.</span><br /> + &nbsp; + </div> + <div> + <span fcklang="DlgPasteMsg2">Please paste inside the following box using the keyboard + (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.</span><br /> + &nbsp; + </div> </td> </tr> <tr> diff --git a/editor/editor/dialog/fck_radiobutton.html b/editor/editor/dialog/fck_radiobutton.html @@ -2,28 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_radiobutton.html - * Radio Button dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Radio Button dialog window. --> <html> <head> @@ -55,20 +51,23 @@ window.onload = function() oActiveEl = null ; window.parent.SetOkButton( true ) ; + window.parent.SetAutoSize( true ) ; } function Ok() { + oEditor.FCKUndo.SaveUndoStep() ; + if ( !oActiveEl ) { oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ; oActiveEl.type = 'radio' ; - oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ; + oActiveEl = oEditor.FCK.InsertElement( oActiveEl ) ; } if ( GetE('txtName').value.length > 0 ) oActiveEl.name = GetE('txtName').value ; - + if ( oEditor.FCKBrowserInfo.IsIE ) oActiveEl.value = GetE('txtValue').value ; else diff --git a/editor/editor/dialog/fck_replace.html b/editor/editor/dialog/fck_replace.html @@ -2,160 +2,489 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_replace.html - * "Replace" dialog box window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - * Abdul-Aziz A. Al-Oraij (aziz.oraij.com) + * + * "Find" and "Replace" dialog box window. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta content="noindex, nofollow" name="robots" /> + <script src="common/fck_dialog_common.js" type="text/javascript"></script> <script type="text/javascript"> var oEditor = window.parent.InnerDialogLoaded() ; +var FCKLang = oEditor.FCKLang ; + +window.parent.AddTab( 'Find', FCKLang.DlgFindTitle ) ; +window.parent.AddTab( 'Replace', FCKLang.DlgReplaceTitle ) ; +var idMap = {} ; + +function OnDialogTabChange( tabCode ) +{ + ShowE( 'divFind', ( tabCode == 'Find' ) ) ; + ShowE( 'divReplace', ( tabCode == 'Replace' ) ) ; + idMap['FindText'] = 'txtFind' + tabCode ; + idMap['CheckCase'] = 'chkCase' + tabCode ; + idMap['CheckWord'] = 'chkWord' + tabCode ; + + if ( tabCode == 'Replace' ) + window.parent.SetAutoSize( true ) ; +} function OnLoad() { - // First of all, translate the dialog box texts + // First of all, translate the dialog box texts. oEditor.FCKLanguageManager.TranslatePage( document ) ; - window.parent.SetAutoSize( true ) ; + // Place the cursor at the start of document. + // This will be the starting point of our search. + var range = new oEditor.FCKDomRange( oEditor.FCK.EditorWindow ) ; + range.SetStart( oEditor.FCK.EditorDocument.body, 1 ) ; + range.SetEnd( oEditor.FCK.EditorDocument.body, 1 ) ; + range.Collapse( true ) ; + range.Select() ; + + // Show the appropriate tab at startup. + if ( window.parent.name.search( 'Replace' ) == -1 ) + { + window.parent.SetSelectedTab( 'Find' ) ; + window.parent.SetAutoSize( true ) ; + } + else + window.parent.SetSelectedTab( 'Replace' ) ; - oEditor.FCKUndo.SaveUndoStep() ; } function btnStat(frm) { - document.getElementById('btnReplace').disabled = - document.getElementById('btnReplaceAll').disabled = - ( document.getElementById('txtFind').value.length == 0 ) ; + document.getElementById('btnReplace').disabled = + document.getElementById('btnReplaceAll').disabled = + document.getElementById('btnFind').disabled = + ( document.getElementById(idMap["FindText"]).value.length == 0 ) ; +} + +function GetSelection() +{ + var range = new oEditor.FCKDomRange( oEditor.FCK.EditorWindow ) ; + range.MoveToSelection() ; + return range.CreateBookmark2() ; +} + +function GetSearchString() +{ + return document.getElementById(idMap['FindText']).value ; +} + +function GetReplaceString() +{ + return document.getElementById("txtReplace").value ; +} + +function GetCheckCase() +{ + return !! ( document.getElementById(idMap['CheckCase']).checked ) ; } -function ReplaceTextNodes( parentNode, regex, replaceValue, replaceAll, hasFound ) +function GetMatchWord() { - for ( var i = 0 ; i < parentNode.childNodes.length ; i++ ) + return !! ( document.getElementById(idMap['CheckWord']).checked ) ; +} + +// Get the data pointed to by a bookmark. +function GetData( bookmark ) +{ + var cursor = oEditor.FCK.EditorDocument.documentElement ; + for ( var i = 0 ; i < bookmark.length ; i++ ) { - var oNode = parentNode.childNodes[i] ; - if ( oNode.nodeType == 3 ) + var target = bookmark[i] ; + var currentIndex = -1 ; + if ( cursor.nodeType != 3 ) { - var sReplaced = oNode.nodeValue.replace( regex, replaceValue ) ; - if ( oNode.nodeValue != sReplaced ) + for (var j = 0 ; j < cursor.childNodes.length ; j++ ) { - oNode.nodeValue = sReplaced ; - if ( ! replaceAll ) - return true ; - hasFound = true ; + var candidate = cursor.childNodes[j] ; + if ( candidate.nodeType == 3 && + candidate.previousSibling && + candidate.previousSibling.nodeType == 3 ) + continue ; + currentIndex++ ; + if ( currentIndex == target ) + { + cursor = candidate ; + break ; + } } + if ( currentIndex < target ) + return null ; + } + else + { + if ( i != bookmark.length - 1 ) + return null ; + while ( target >= cursor.length && cursor.nextSibling && cursor.nextSibling.nodeType == 3 ) + { + target -= cursor.length ; + cursor = cursor.nextSibling ; + } + cursor = cursor.nodeValue.charAt( target ) ; + if ( cursor == "" ) + cursor = null ; } - - hasFound = ReplaceTextNodes( oNode, regex, replaceValue, replaceAll, hasFound ) ; - if ( ! replaceAll && hasFound ) - return true ; } - - return hasFound ; + return cursor ; } -function GetRegexExpr() +// With this function, we can treat the bookmark as an iterator for DFS. +function NextPosition( bookmark ) { - var sExpr = EscapeRegexString( document.getElementById('txtFind').value ) ; + // See if there's anything further down the tree. + var next = bookmark.concat( [0] ) ; + if ( GetData( next ) != null ) + return next ; + + // Nothing down there? See if there's anything next to me. + var next = bookmark.slice( 0, bookmark.length - 1 ).concat( [ bookmark[ bookmark.length - 1 ] + 1 ] ) ; + if ( GetData( next ) != null ) + return next ; - if ( document.getElementById('chkWord').checked ) - sExpr = '\\b' + sExpr + '\\b' ; + // Nothing even next to me? See if there's anything next to my ancestors. + for ( var i = bookmark.length - 1 ; i > 0 ; i-- ) + { + var next = bookmark.slice( 0, i - 1 ).concat( [ bookmark[ i - 1 ] + 1 ] ) ; + if ( GetData( next ) != null ) + return next ; + } - return sExpr ; + // There's absolutely nothing left to walk, return null. + return null ; +} + +// Is this character a unicode whitespace? +// Reference: http://unicode.org/Public/UNIDATA/PropList.txt +function CheckIsWhitespace( c ) +{ + var code = c.charCodeAt( 0 ); + if ( code >= 9 && code <= 0xd ) + return true; + if ( code >= 0x2000 && code <= 0x200a ) + return true; + switch ( code ) + { + case 0x20: + case 0x85: + case 0xa0: + case 0x1680: + case 0x180e: + case 0x2028: + case 0x2029: + case 0x202f: + case 0x205f: + case 0x3000: + return true; + default: + return false; + } } -function GetCase() +// Knuth-Morris-Pratt Algorithm for stream input +KMP_NOMATCH = 0 ; +KMP_ADVANCED = 1 ; +KMP_MATCHED = 2 ; +function KmpMatch( pattern, ignoreCase ) { - return ( document.getElementById('chkCase').checked ? '' : 'i' ) ; + var overlap = [ -1 ] ; + for ( var i = 0 ; i < pattern.length ; i++ ) + { + overlap.push( overlap[i] + 1 ) ; + while ( overlap[ i + 1 ] > 0 && pattern.charAt( i ) != pattern.charAt( overlap[ i + 1 ] - 1 ) ) + overlap[ i + 1 ] = overlap[ overlap[ i + 1 ] - 1 ] + 1 ; + } + this._Overlap = overlap ; + this._State = 0 ; + this._IgnoreCase = ( ignoreCase === true ) ; + if ( ignoreCase ) + this.Pattern = pattern.toLowerCase(); + else + this.Pattern = pattern ; } +KmpMatch.prototype = { + "FeedCharacter" : function( c ) + { + if ( this._IgnoreCase ) + c = c.toLowerCase(); -function GetReplacement() + while ( true ) + { + if ( c == this.Pattern.charAt( this._State ) ) + { + this._State++ ; + if ( this._State == this.Pattern.length ) + { + // found a match, start over, don't care about partial matches involving the current match + this._State = 0; + return KMP_MATCHED; + } + return KMP_ADVANCED; + } + else if ( this._State == 0 ) + return KMP_NOMATCH; + else + this._State = this._Overlap[ this._State ]; + } + + return null ; + }, + "Reset" : function() + { + this._State = 0 ; + } +}; + +function _Find() { - return document.getElementById('txtReplace').value.replace( /\$/g, '$$$$' ) ; + // Start from the end of the current selection. + var matcher = new KmpMatch( GetSearchString(), ! GetCheckCase() ) ; + var cursor = GetSelection().End ; + var matchState = KMP_NOMATCH ; + var matchBookmark = null ; + + // Match finding. + while ( true ) + { + // Perform KMP stream matching. + // - Reset KMP matcher if we encountered a block element. + var data = GetData( cursor ) ; + if ( data ) + { + if ( data.tagName ) + { + if ( oEditor.FCKListsLib.BlockElements[ data.tagName.toLowerCase() ] ) + { + matcher.Reset(); + matchBookmark = null ; + } + } + else if ( data.charAt != undefined ) + { + matchState = matcher.FeedCharacter(data) ; + + if ( matchState == KMP_NOMATCH ) + matchBookmark = null ; + else if ( matchState == KMP_ADVANCED && matchBookmark == null ) + matchBookmark = { Start : cursor.concat( [] ) } ; + else if ( matchState == KMP_MATCHED ) + { + if ( matchBookmark == null ) + matchBookmark = { Start : cursor.concat( [] ) } ; + matchBookmark.End = cursor.concat( [] ) ; + matchBookmark.End[ matchBookmark.End.length - 1 ]++; + + // Wait, do we have to match a whole word? + if ( GetMatchWord() ) + { + var startOk = false ; + var endOk = false ; + var start = matchBookmark.Start ; + var end = matchBookmark.End ; + if ( start[ start.length - 1 ] == 0 ) + startOk = true ; + else + { + var cursorBeforeStart = start.slice( 0, start.length - 1 ) ; + cursorBeforeStart.push( start[ start.length - 1 ] - 1 ) ; + var dataBeforeStart = GetData( cursorBeforeStart ) ; + if ( dataBeforeStart == null || dataBeforeStart.charAt == undefined ) + startOk = true ; + else if ( CheckIsWhitespace( dataBeforeStart ) ) + startOk = true ; + } + + // this is already one character beyond the last char, no need to move + var cursorAfterEnd = end ; + var dataAfterEnd = GetData( cursorAfterEnd ); + if ( dataAfterEnd == null || dataAfterEnd.charAt == undefined ) + endOk = true ; + else if ( CheckIsWhitespace( dataAfterEnd ) ) + endOk = true ; + + if ( startOk && endOk ) + break ; + else + matcher.Reset() ; + } + else + break ; + } + } + } + + // Perform DFS across the document, until we've reached the end. + cursor = NextPosition( cursor ) ; + if ( cursor == null ) + break; + } + + // If we've found a match, select the match. + if ( matchState == KMP_MATCHED ) + { + var range = new oEditor.FCKDomRange( oEditor.FCK.EditorWindow ) ; + range.MoveToBookmark2( matchBookmark ) ; + range.Select() ; + var focus = range._Range.endContainer ; + while ( focus && focus.nodeType != 1 ) + focus = focus.parentNode ; + + if ( focus ) + { + if ( oEditor.FCKBrowserInfo.IsSafari ) + oEditor.FCKDomTools.ScrollIntoView( focus, false ) ; + else + focus.scrollIntoView( false ) ; + } + + return true; + } + else + return false; } -function EscapeRegexString( str ) +function Find() { - return str.replace( /[\\\^\$\*\+\?\{\}\.\(\)\!\|\[\]\-]/g, '\\$&' ) ; + var range = new oEditor.FCKDomRange( oEditor.FCK.EditorWindow ) ; + range.MoveToSelection() ; + range.Collapse( false ) ; + range.Select() ; + + if ( ! _Find() ) + alert( FCKLang.DlgFindNotFoundMsg ) ; } function Replace() { - var oRegex = new RegExp( GetRegexExpr(), GetCase() ) ; - if ( !ReplaceTextNodes( oEditor.FCK.EditorDocument.body, oRegex, GetReplacement(), false, false ) ) - alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ; + var selection = new oEditor.FCKDomRange( oEditor.FCK.EditorWindow ) ; + selection.MoveToSelection() ; + + if ( selection.CheckIsCollapsed() ) + { + if (! _Find() ) + alert( FCKLang.DlgFindNotFoundMsg ) ; + } + else + { + oEditor.FCKUndo.SaveUndoStep() ; + selection.DeleteContents() ; + selection.InsertNode( oEditor.FCK.EditorDocument.createTextNode( GetReplaceString() ) ) ; + selection.Collapse( false ) ; + selection.Select() ; + } } function ReplaceAll() { - var oRegex = new RegExp( GetRegexExpr(), GetCase() + 'g' ) ; - if ( !ReplaceTextNodes( oEditor.FCK.EditorDocument.body, oRegex, GetReplacement(), true, false ) ) - alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ; + oEditor.FCKUndo.SaveUndoStep() ; + var range = new oEditor.FCKDomRange( oEditor.FCK.EditorWindow ) ; + + var replaceCount = 0 ; + + while ( _Find() ) + { + range.MoveToSelection() ; + range.DeleteContents() ; + range.InsertNode( oEditor.FCK.EditorDocument.createTextNode( GetReplaceString() ) ) ; + range.Collapse( false ) ; + range.Select() ; + replaceCount++ ; + } + if ( replaceCount == 0 ) + alert( FCKLang.DlgFindNotFoundMsg ) ; window.parent.Cancel() ; } </script> </head> <body onload="OnLoad()" style="overflow: hidden"> - <table cellspacing="3" cellpadding="2" width="100%" border="0"> - <tr> - <td nowrap="nowrap"> - <label for="txtFind" fcklang="DlgReplaceFindLbl"> - Find what:</label> - </td> - <td width="100%"> - <input id="txtFind" onkeyup="btnStat(this.form)" style="width: 100%" tabindex="1" - type="text" /> - </td> - <td> - <input id="btnReplace" style="width: 100%" disabled="disabled" onclick="Replace();" - type="button" value="Replace" fcklang="DlgReplaceReplaceBtn" /> - </td> - </tr> - <tr> - <td valign="top" nowrap="nowrap"> - <label for="txtReplace" fcklang="DlgReplaceReplaceLbl"> - Replace with:</label> - </td> - <td valign="top"> - <input id="txtReplace" style="width: 100%" tabindex="2" type="text" /> - </td> - <td> - <input id="btnReplaceAll" disabled="disabled" onclick="ReplaceAll()" type="button" - value="Replace All" fcklang="DlgReplaceReplAllBtn" /> - </td> - </tr> - <tr> - <td valign="bottom" colspan="3"> - &nbsp;<input id="chkCase" tabindex="3" type="checkbox" /><label for="chkCase" fcklang="DlgReplaceCaseChk">Match - case</label> - <br /> - &nbsp;<input id="chkWord" tabindex="4" type="checkbox" /><label for="chkWord" fcklang="DlgReplaceWordChk">Match - whole word</label> - </td> - </tr> - </table> + <div id="divFind" style="display: none"> + <table cellspacing="3" cellpadding="2" width="100%" border="0"> + <tr> + <td nowrap="nowrap"> + <label for="txtFindFind" fcklang="DlgReplaceFindLbl"> + Find what:</label> + </td> + <td width="100%"> + <input id="txtFindFind" onkeyup="btnStat(this.form)" style="width: 100%" tabindex="1" + type="text" /> + </td> + <td> + <input id="btnFind" style="width: 80px" disabled="disabled" onclick="Find();" + type="button" value="Find" fcklang="DlgFindFindBtn" /> + </td> + </tr> + <tr> + <td valign="bottom" colspan="3"> + &nbsp;<input id="chkCaseFind" tabindex="3" type="checkbox" /><label for="chkCaseFind" fcklang="DlgReplaceCaseChk">Match + case</label> + <br /> + &nbsp;<input id="chkWordFind" tabindex="4" type="checkbox" /><label for="chkWordFind" fcklang="DlgReplaceWordChk">Match + whole word</label> + </td> + </tr> + </table> + </div> + <div id="divReplace" style="display:none"> + <table cellspacing="3" cellpadding="2" width="100%" border="0"> + <tr> + <td nowrap="nowrap"> + <label for="txtFindReplace" fcklang="DlgReplaceFindLbl"> + Find what:</label> + </td> + <td width="100%"> + <input id="txtFindReplace" onkeyup="btnStat(this.form)" style="width: 100%" tabindex="1" + type="text" /> + </td> + <td> + <input id="btnReplace" style="width: 80px" disabled="disabled" onclick="Replace();" + type="button" value="Replace" fcklang="DlgReplaceReplaceBtn" /> + </td> + </tr> + <tr> + <td valign="top" nowrap="nowrap"> + <label for="txtReplace" fcklang="DlgReplaceReplaceLbl"> + Replace with:</label> + </td> + <td valign="top"> + <input id="txtReplace" style="width: 100%" tabindex="2" type="text" /> + </td> + <td> + <input id="btnReplaceAll" style="width: 80px" disabled="disabled" onclick="ReplaceAll()" type="button" + value="Replace All" fcklang="DlgReplaceReplAllBtn" /> + </td> + </tr> + <tr> + <td valign="bottom" colspan="3"> + &nbsp;<input id="chkCaseReplace" tabindex="3" type="checkbox" /><label for="chkCaseReplace" fcklang="DlgReplaceCaseChk">Match + case</label> + <br /> + &nbsp;<input id="chkWordReplace" tabindex="4" type="checkbox" /><label for="chkWordReplace" fcklang="DlgReplaceWordChk">Match + whole word</label> + </td> + </tr> + </table> + </div> </body> </html> diff --git a/editor/editor/dialog/fck_select.html b/editor/editor/dialog/fck_select.html @@ -2,28 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_select.html - * Select dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Select dialog window. --> <html> <head> @@ -62,7 +58,7 @@ window.onload = function() // Load the actual options for ( var i = 0 ; i < oActiveEl.options.length ; i++ ) { - var sText = oActiveEl.options[i].innerHTML ; + var sText = HTMLDecode( oActiveEl.options[i].innerHTML ) ; var sValue = oActiveEl.options[i].value ; AddComboOption( oListText, sText, sText ) ; @@ -73,18 +69,20 @@ window.onload = function() oActiveEl = null ; window.parent.SetOkButton( true ) ; + window.parent.SetAutoSize( true ) ; } function Ok() { + oEditor.FCKUndo.SaveUndoStep() ; + var sSize = GetE('txtLines').value ; if ( sSize == null || isNaN( sSize ) || sSize <= 1 ) sSize = '' ; if ( !oActiveEl ) { - oActiveEl = oEditor.FCK.EditorDocument.createElement( 'SELECT' ) ; - oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ; + oActiveEl = oEditor.FCK.InsertElement( 'select' ) ; } SetAttribute( oActiveEl, 'name' , GetE('txtName').value ) ; @@ -116,7 +114,7 @@ function Ok() </script> </head> - <body style='OVERFLOW: hidden' scroll='no'> + <body style="overflow: hidden"> <table width="100%" height="100%"> <tr> <td> diff --git a/editor/editor/dialog/fck_select/fck_select.js b/editor/editor/dialog/fck_select/fck_select.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_select.js - * Scripts for the fck_select.html page. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Scripts for the fck_select.html page. */ function Select( combo ) @@ -65,10 +61,10 @@ function Modify() var oTxtText = document.getElementById( "txtText" ) ; var oTxtValue = document.getElementById( "txtValue" ) ; - oListText.options[ iIndex ].innerHTML = oTxtText.value ; + oListText.options[ iIndex ].innerHTML = HTMLEncode( oTxtText.value ) ; oListText.options[ iIndex ].value = oTxtText.value ; - oListValue.options[ iIndex ].innerHTML = oTxtValue.value ; + oListValue.options[ iIndex ].innerHTML = HTMLEncode( oTxtValue.value ) ; oListValue.options[ iIndex ].value = oTxtValue.value ; oTxtText.value = '' ; @@ -119,7 +115,7 @@ function ChangeOptionPosition( combo, steps ) return ; var oOption = combo.options[ iActualIndex ] ; - var sText = oOption.innerHTML ; + var sText = HTMLDecode( oOption.innerHTML ) ; var sValue = oOption.value ; combo.remove( iActualIndex ) ; @@ -166,8 +162,33 @@ function AddComboOption( combo, optionText, optionValue, documentObject, index ) else combo.options.add( oOption ) ; - oOption.innerHTML = optionText.length > 0 ? optionText : '&nbsp;' ; + oOption.innerHTML = optionText.length > 0 ? HTMLEncode( optionText ) : '&nbsp;' ; oOption.value = optionValue ; return oOption ; +} + +function HTMLEncode( text ) +{ + if ( !text ) + return '' ; + + text = text.replace( /&/g, '&amp;' ) ; + text = text.replace( /</g, '&lt;' ) ; + text = text.replace( />/g, '&gt;' ) ; + + return text ; +} + + +function HTMLDecode( text ) +{ + if ( !text ) + return '' ; + + text = text.replace( /&gt;/g, '>' ) ; + text = text.replace( /&lt;/g, '<' ) ; + text = text.replace( /&amp;/g, '&' ) ; + + return text ; } \ No newline at end of file diff --git a/editor/editor/dialog/fck_smiley.html b/editor/editor/dialog/fck_smiley.html @@ -1,30 +1,26 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_smiley.html - * Smileys (emoticons) dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Smileys (emoticons) dialog window. --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> @@ -45,14 +41,17 @@ window.onload = function () { // First of all, translate the dialog box texts oEditor.FCKLanguageManager.TranslatePage(document) ; + + window.parent.SetAutoSize( true ) ; } function InsertSmiley( url ) { - var oImg = oEditor.FCK.CreateElement( 'IMG' ) ; + oEditor.FCKUndo.SaveUndoStep() ; + var oImg = oEditor.FCK.InsertElement( 'img' ) ; oImg.src = url ; oImg.setAttribute( '_fcksavedurl', url ) ; - + // For long smileys list, it seams that IE continues loading the images in // the background when you quickly select one image. so, let's clear // everything before closing. @@ -72,7 +71,7 @@ function out(td) } </script> </head> -<body scroll="no"> +<body style="overflow: hidden"> <table cellpadding="2" cellspacing="2" align="center" border="0" width="100%" height="100%"> <script type="text/javascript"> diff --git a/editor/editor/dialog/fck_source.html b/editor/editor/dialog/fck_source.html @@ -1,30 +1,26 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_source.html - * Source editor dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Source editor dialog window. --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html> <head> <title>Source</title> @@ -32,7 +28,7 @@ <meta name="robots" content="noindex, nofollow"> <link href="common/fck_dialog_common.css" rel="stylesheet" type="text/css" /> <script language="javascript"> - + var oEditor = window.parent.InnerDialogLoaded() ; var FCK = oEditor.FCK ; var FCKConfig = oEditor.FCKConfig ; @@ -52,9 +48,9 @@ function Ok() { if ( oEditor.FCKBrowserInfo.IsIE ) oEditor.FCKUndo.SaveUndoStep() ; - - FCK.SetHTML( document.getElementById('txtSource').value, false ) ; - + + FCK.SetData( document.getElementById('txtSource').value, false ) ; + return true ; } </script> diff --git a/editor/editor/dialog/fck_specialchar.html b/editor/editor/dialog/fck_specialchar.html @@ -1,39 +1,35 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_specialchar.html - * Special Chars Selector dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Special Chars Selector dialog window. --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html> <head> <meta name="robots" content="noindex, nofollow"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style type="text/css"> - .Hand - { + .Hand + { cursor: pointer ; - cursor: hand ; + cursor: hand ; } .Sample { font-size: 24px; } </style> @@ -45,18 +41,23 @@ var oSample ; function insertChar(charValue) { + oEditor.FCKUndo.SaveUndoStep() ; oEditor.FCK.InsertHtml( charValue || "" ) ; window.parent.Cancel() ; } function over(td) { + if ( ! oSample ) + return ; oSample.innerHTML = td.innerHTML ; td.className = 'LightBackground SpecialCharsOver Hand' ; } function out(td) { + if ( ! oSample ) + return ; oSample.innerHTML = "&nbsp;" ; td.className = 'DarkBackground SpecialCharsOut Hand' ; } @@ -68,11 +69,13 @@ function setDefaults() // First of all, translates the dialog box texts. oEditor.FCKLanguageManager.TranslatePage(document) ; + + window.parent.SetAutoSize( true ) ; } </script> - </HEAD> - <BODY onload="setDefaults()" scroll="no"> + </head> + <body onload="setDefaults()" style="overflow: hidden"> <table cellpadding="0" cellspacing="0" width="100%" height="100%"> <tr> <td width="100%"> @@ -86,7 +89,7 @@ var i = 0 ; while (i < aChars.length) { document.write("<TR>") ; - for(var j = 0 ; j < cols ; j++) + for(var j = 0 ; j < cols ; j++) { if (aChars[i]) { @@ -113,5 +116,5 @@ while (i < aChars.length) </td> </tr> </table> - </BODY> -</HTML>- \ No newline at end of file + </body> +</html> diff --git a/editor/editor/dialog/fck_spellerpages.html b/editor/editor/dialog/fck_spellerpages.html @@ -2,28 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_spellerpages.html - * Spell Check dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Spell Check dialog window. --> <html> <head> @@ -55,7 +51,7 @@ function OnSpellerControlsLoad( controlsWindow ) function oSpeller_OnFinished( numberOCorrections ) { if ( numberOCorrections > 0 ) - oEditor.FCK.SetHTML( document.getElementById('txtHtml').value ) ; + oEditor.FCK.SetData( document.getElementById('txtHtml').value ) ; window.parent.Cancel() ; } diff --git a/editor/editor/dialog/fck_spellerpages/spellerpages/controls.html b/editor/editor/dialog/fck_spellerpages/spellerpages/controls.html @@ -138,7 +138,7 @@ function init_spell() { disabled> </td> <td>&nbsp;&nbsp;</td> - <td> + <td> <!-- by FredCK <input class="buttonDefault" type="button" value="Close" onClick="end_spell();"> --> diff --git a/editor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm b/editor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm @@ -0,0 +1,146 @@ +<cfsetting enablecfoutputonly="true"> +<!--- +This code uses a CF User Defined Function and should work in CF version 5.0 +and up without alteration. + +Also if you are hosting your site at an ISP, you will have to check with them +to see if the use of <CFEXECUTE> is allowed. In most cases ISP will not allow +the use of that tag for security reasons. Clients would be able to access each +others files in certain cases. +---> + +<!--- The following variables values must reflect your installation. ---> +<cfset aspell_dir = "C:\Program Files\Aspell\bin"> +<cfset lang = "en_US"> +<cfset aspell_opts = "-a --lang=#lang# --encoding=utf-8 -H --rem-sgml-check=alt"> +<cfset tempfile_in = GetTempFile(GetTempDirectory(), "spell_")> +<cfset tempfile_out = GetTempFile(GetTempDirectory(), "spell_")> +<cfset spellercss = "../spellerStyle.css"> +<cfset word_win_src = "../wordWindow.js"> + +<cfset form.checktext = form["textinputs[]"]> + +<!--- make no difference between URL and FORM scopes ---> +<cfparam name="url.checktext" default=""> +<cfparam name="form.checktext" default="#url.checktext#"> + +<!--- Takes care of those pesky smart quotes from MS apps, replaces them with regular quotes ---> +<cfset submitted_text = ReplaceList(form.checktext,"%u201C,%u201D","%22,%22")> + +<!--- submitted_text now is ready for processing ---> + +<!--- use carat on each line to escape possible aspell commands ---> +<cfset text = ""> +<cfset CRLF = Chr(13) & Chr(10)> + +<cfloop list="#submitted_text#" index="field" delimiters=","> + <cfset text = text & "%" & CRLF + & "^A" & CRLF + & "!" & CRLF> + <cfloop list="#URLDecode(field)#" index="line" delimiters="#CRLF#"> + <cfset text = ListAppend(text, "^" & Trim(JSStringFormat(line)), CRLF)> + </cfloop> +</cfloop> + +<!--- create temp file from the submitted text, this will be passed to aspell to be check for misspelled words ---> +<cffile action="write" file="#tempfile_in#" output="#text#" charset="utf-8"> + +<!--- execute aspell in an UTF-8 console and redirect output to a file. UTF-8 encoding is lost if done differently ---> +<cfexecute name="cmd.exe" arguments='/c type "#tempfile_in#" | "#aspell_dir#\aspell.exe" #aspell_opts# > "#tempfile_out#"' timeout="100"/> + +<!--- read output file for further processing ---> +<cffile action="read" file="#tempfile_out#" variable="food" charset="utf-8"> + +<!--- remove temp files ---> +<cffile action="delete" file="#tempfile_in#"> +<cffile action="delete" file="#tempfile_out#"> + +<cfset texts = StructNew()> +<cfset texts.textinputs = ""> +<cfset texts.words = ""> +<cfset texts.abort = ""> + +<!--- Generate Text Inputs ---> +<cfset i = 0> +<cfloop list="#submitted_text#" index="textinput"> + <cfset texts.textinputs = ListAppend(texts.textinputs, 'textinputs[#i#] = decodeURIComponent("#textinput#");', CRLF)> + <cfset i = i + 1> +</cfloop> + +<!--- Generate Words Lists ---> +<cfset word_cnt = 0> +<cfset input_cnt = -1> +<cfloop list="#food#" index="aspell_line" delimiters="#CRLF#"> + <cfset leftChar = Left(aspell_line, 1)> + <cfif leftChar eq "*"> + <cfset input_cnt = input_cnt + 1> + <cfset word_cnt = 0> + <cfset texts.words = ListAppend(texts.words, "words[#input_cnt#] = [];", CRLF)> + <cfset texts.words = ListAppend(texts.words, "suggs[#input_cnt#] = [];", CRLF)> + <cfelse> + <cfif leftChar eq "&" or leftChar eq "##"> + <!--- word that misspelled ---> + <cfset bad_word = Trim(ListGetAt(aspell_line, 2, " "))> + <cfset bad_word = Replace(bad_word, "'", "\'", "ALL")> + <!--- sugestions ---> + <cfset sug_list = Trim(ListRest(aspell_line, ":"))> + <cfset sug_list = ListQualify(Replace(sug_list, "'", "\'", "ALL"), "'")> + <!--- javascript ---> + <cfset texts.words = ListAppend(texts.words, "words[#input_cnt#][#word_cnt#] = '#bad_word#';", CRLF)> + <cfset texts.words = ListAppend(texts.words, "suggs[#input_cnt#][#word_cnt#] = [#sug_list#];", CRLF)> + <cfset word_cnt = word_cnt + 1> + </cfif> + </cfif> +</cfloop> + +<cfif texts.words eq ""> + <cfset texts.abort = "alert('Spell check complete.\n\nNo misspellings found.'); top.window.close();"> +</cfif> + +<cfcontent type="text/html; charset=utf-8"> + +<cfoutput><html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<link rel="stylesheet" type="text/css" href="#spellercss#" /> +<script language="javascript" src="#word_win_src#"></script> +<script language="javascript"> +var suggs = new Array(); +var words = new Array(); +var textinputs = new Array(); +var error; + +#texts.textinputs##CRLF# +#texts.words# +#texts.abort# + +var wordWindowObj = new wordWindow(); +wordWindowObj.originalSpellings = words; +wordWindowObj.suggestions = suggs; +wordWindowObj.textInputs = textinputs; + +function init_spell() { + // check if any error occured during server-side processing + if( error ) { + alert( error ); + } else { + // call the init_spell() function in the parent frameset + if (parent.frames.length) { + parent.init_spell( wordWindowObj ); + } else { + alert('This page was loaded outside of a frameset. It might not display properly'); + } + } +} +</script> + +</head> +<body onLoad="init_spell();"> + +<script type="text/javascript"> +wordWindowObj.writeBody(); +</script> + +</body> +</html></cfoutput> +<cfsetting enablecfoutputonly="false"> diff --git a/editor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php b/editor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php @@ -7,7 +7,7 @@ $aspell_prog = '"C:\Program Files\Aspell\bin\aspell.exe"'; // by FredCK (for Win //$aspell_prog = 'aspell'; // by FredCK (for Linux) $lang = 'en_US'; -$aspell_opts = "-a --lang=$lang --encoding=utf-8 -H"; // by FredCK +$aspell_opts = "-a --lang=$lang --encoding=utf-8 -H --rem-sgml-check=alt"; // by FredCK $tempfiledir = "./"; diff --git a/editor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl b/editor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl @@ -0,0 +1,180 @@ +#!/usr/bin/perl + +use CGI qw/ :standard /; +use File::Temp qw/ tempfile tempdir /; + +# my $spellercss = '/speller/spellerStyle.css'; # by FredCK +my $spellercss = '../spellerStyle.css'; # by FredCK +# my $wordWindowSrc = '/speller/wordWindow.js'; # by FredCK +my $wordWindowSrc = '../wordWindow.js'; # by FredCK +my @textinputs = param( 'textinputs[]' ); # array +# my $aspell_cmd = 'aspell'; # by FredCK (for Linux) +my $aspell_cmd = '"C:\Program Files\Aspell\bin\aspell.exe"'; # by FredCK (for Windows) +my $lang = 'en_US'; +# my $aspell_opts = "-a --lang=$lang --encoding=utf-8"; # by FredCK +my $aspell_opts = "-a --lang=$lang --encoding=utf-8 -H --rem-sgml-check=alt"; # by FredCK +my $input_separator = "A"; + +# set the 'wordtext' JavaScript variable to the submitted text. +sub printTextVar { + for( my $i = 0; $i <= $#textinputs; $i++ ) { + print "textinputs[$i] = decodeURIComponent('" . escapeQuote( $textinputs[$i] ) . "')\n"; + } +} + +sub printTextIdxDecl { + my $idx = shift; + print "words[$idx] = [];\n"; + print "suggs[$idx] = [];\n"; +} + +sub printWordsElem { + my( $textIdx, $wordIdx, $word ) = @_; + print "words[$textIdx][$wordIdx] = '" . escapeQuote( $word ) . "';\n"; +} + +sub printSuggsElem { + my( $textIdx, $wordIdx, @suggs ) = @_; + print "suggs[$textIdx][$wordIdx] = ["; + for my $i ( 0..$#suggs ) { + print "'" . escapeQuote( $suggs[$i] ) . "'"; + if( $i < $#suggs ) { + print ", "; + } + } + print "];\n"; +} + +sub printCheckerResults { + my $textInputIdx = -1; + my $wordIdx = 0; + my $unhandledText; + # create temp file + my $dir = tempdir( CLEANUP => 1 ); + my( $fh, $tmpfilename ) = tempfile( DIR => $dir ); + + # temp file was created properly? + + # open temp file, add the submitted text. + for( my $i = 0; $i <= $#textinputs; $i++ ) { + $text = url_decode( $textinputs[$i] ); + @lines = split( /\n/, $text ); + print $fh "\%\n"; # exit terse mode + print $fh "^$input_separator\n"; + print $fh "!\n"; # enter terse mode + for my $line ( @lines ) { + # use carat on each line to escape possible aspell commands + print $fh "^$line\n"; + } + + } + # exec aspell command + my $cmd = "$aspell_cmd $aspell_opts < $tmpfilename 2>&1"; + open ASPELL, "$cmd |" or handleError( "Could not execute `$cmd`\\n$!" ) and return; + # parse each line of aspell return + for my $ret ( <ASPELL> ) { + chomp( $ret ); + # if '&', then not in dictionary but has suggestions + # if '#', then not in dictionary and no suggestions + # if '*', then it is a delimiter between text inputs + if( $ret =~ /^\*/ ) { + $textInputIdx++; + printTextIdxDecl( $textInputIdx ); + $wordIdx = 0; + + } elsif( $ret =~ /^(&|#)/ ) { + my @tokens = split( " ", $ret, 5 ); + printWordsElem( $textInputIdx, $wordIdx, $tokens[1] ); + my @suggs = (); + if( $tokens[4] ) { + @suggs = split( ", ", $tokens[4] ); + } + printSuggsElem( $textInputIdx, $wordIdx, @suggs ); + $wordIdx++; + } else { + $unhandledText .= $ret; + } + } + close ASPELL or handleError( "Error executing `$cmd`\\n$unhandledText" ) and return; +} + +sub escapeQuote { + my $str = shift; + $str =~ s/'/\\'/g; + return $str; +} + +sub handleError { + my $err = shift; + print "error = '" . escapeQuote( $err ) . "';\n"; +} + +sub url_decode { + local $_ = @_ ? shift : $_; + defined or return; + # change + signs to spaces + tr/+/ /; + # change hex escapes to the proper characters + s/%([a-fA-F0-9]{2})/pack "H2", $1/eg; + return $_; +} + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# Display HTML +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +print <<EOF; +Content-type: text/html; charset=utf-8 + +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<link rel="stylesheet" type="text/css" href="$spellercss"/> +<script src="$wordWindowSrc"></script> +<script type="text/javascript"> +var suggs = new Array(); +var words = new Array(); +var textinputs = new Array(); +var error; +EOF + +printTextVar(); + +printCheckerResults(); + +print <<EOF; +var wordWindowObj = new wordWindow(); +wordWindowObj.originalSpellings = words; +wordWindowObj.suggestions = suggs; +wordWindowObj.textInputs = textinputs; + + +function init_spell() { + // check if any error occured during server-side processing + if( error ) { + alert( error ); + } else { + // call the init_spell() function in the parent frameset + if (parent.frames.length) { + parent.init_spell( wordWindowObj ); + } else { + error = "This page was loaded outside of a frameset. "; + error += "It might not display properly"; + alert( error ); + } + } +} + +</script> + +</head> +<body onLoad="init_spell();"> + +<script type="text/javascript"> +wordWindowObj.writeBody(); +</script> + +</body> +</html> +EOF + diff --git a/editor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js b/editor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js @@ -36,7 +36,7 @@ function spellChecker( textObject ) { this.controlWin = null; this.wordWin = null; this.textArea = textObject; // deprecated - this.textInputs = arguments; + this.textInputs = arguments; // private methods this._spellcheck = _spellcheck; @@ -96,7 +96,7 @@ function startCheck( wordWindowObj, controlWindowObj ) { // set properties from args this.wordWin = wordWindowObj; this.controlWin = controlWindowObj; - + // reset properties this.wordWin.resetForm(); this.controlWin.resetForm(); @@ -111,7 +111,7 @@ function startCheck( wordWindowObj, controlWindowObj ) { // start this._spellcheck(); - + return true; } @@ -148,7 +148,7 @@ function ignoreAll() { return false; } - // set this word as an "ignore all" word. + // set this word as an "ignore all" word. this._setAsIgnored( ti, wi, this.ignrAllFlag ); // loop through all the words after this word @@ -156,7 +156,7 @@ function ignoreAll() { for( var j = 0; j < this.wordWin.totalWords( i ); j++ ) { if(( i == ti && j > wi ) || i > ti ) { // future word: set as "from ignore all" if - // 1) do not already have a flag and + // 1) do not already have a flag and // 2) have the same value as current word if(( this.wordWin.getTextVal( i, j ) == s_word_to_repl ) && ( !this.wordFlags[i][j] )) { @@ -213,7 +213,7 @@ function replaceAll() { if( !txt.value ) return false; var newspell = new String( txt.value ); - // set this word as a "replace all" word. + // set this word as a "replace all" word. this._setWordText( ti, wi, newspell, this.replAllFlag ); // loop through all the words after this word @@ -221,7 +221,7 @@ function replaceAll() { for( var j = 0; j < this.wordWin.totalWords( i ); j++ ) { if(( i == ti && j > wi ) || i > ti ) { // future word: set word text to s_word_to_repl if - // 1) do not already have a flag and + // 1) do not already have a flag and // 2) have the same value as s_word_to_repl if(( this.wordWin.getTextVal( i, j ) == s_word_to_repl ) && ( !this.wordFlags[i][j] )) { @@ -230,7 +230,7 @@ function replaceAll() { } } } - + // finally, move on this.currentWordIndex++; this._spellcheck(); @@ -290,11 +290,11 @@ function undo() { // skip if this is the first word! var ti = this.currentTextIndex; var wi = this.currentWordIndex; - + if( this.wordWin.totalPreviousWords( ti, wi ) > 0 ) { this.wordWin.removeFocus( ti, wi ); - // go back to the last word index that was acted upon + // go back to the last word index that was acted upon do { // if the current word index is zero then reset the seed if( this.currentWordIndex == 0 && this.currentTextIndex > 0 ) { @@ -306,25 +306,25 @@ function undo() { this.currentWordIndex--; } } - } while ( + } while ( this.wordWin.totalWords( this.currentTextIndex ) == 0 || this.wordFlags[this.currentTextIndex][this.currentWordIndex] == this.fromIgnrAll || this.wordFlags[this.currentTextIndex][this.currentWordIndex] == this.fromReplAll - ); + ); var text_idx = this.currentTextIndex; var idx = this.currentWordIndex; var preReplSpell = this.wordWin.originalSpellings[text_idx][idx]; - + // if we got back to the first word then set the Undo button back to disabled if( this.wordWin.totalPreviousWords( text_idx, idx ) == 0 ) { this.controlWin.disableUndo(); } - + var i, j, origSpell ; // examine what happened to this current word. switch( this.wordFlags[text_idx][idx] ) { - // replace all: go through this and all the future occurances of the word + // replace all: go through this and all the future occurances of the word // and revert them all to the original spelling and clear their flags case this.replAllFlag : for( i = text_idx; i < this.wordWin.textInputs.length; i++ ) { @@ -338,8 +338,8 @@ function undo() { } } break; - - // ignore all: go through all the future occurances of the word + + // ignore all: go through all the future occurances of the word // and clear their flags case this.ignrAllFlag : for( i = text_idx; i < this.wordWin.textInputs.length; i++ ) { @@ -347,13 +347,13 @@ function undo() { if(( i == text_idx && j >= idx ) || i > text_idx ) { origSpell = this.wordWin.originalSpellings[i][j]; if( origSpell == preReplSpell ) { - this.wordFlags[i][j] = undefined; + this.wordFlags[i][j] = undefined; } } } } break; - + // replace: revert the word to its original spelling case this.replWordFlag : this._setWordText ( text_idx, idx, preReplSpell, undefined ); @@ -361,20 +361,20 @@ function undo() { } // For all four cases, clear the wordFlag of this word. re-start the process - this.wordFlags[text_idx][idx] = undefined; + this.wordFlags[text_idx][idx] = undefined; this._spellcheck(); } } function _spellcheck() { var ww = this.wordWin; - + // check if this is the last word in the current text element if( this.currentWordIndex == ww.totalWords( this.currentTextIndex) ) { this.currentTextIndex++; this.currentWordIndex = 0; // keep going if we're not yet past the last text element - if( this.currentTextIndex < this.wordWin.textInputs.length ) { + if( this.currentTextIndex < this.wordWin.textInputs.length ) { this._spellcheck(); return; } else { @@ -382,7 +382,7 @@ function _spellcheck() { return; } } - + // if this is after the first one make sure the Undo button is enabled if( this.currentWordIndex > 0 ) { this.controlWin.enableUndo(); @@ -408,10 +408,10 @@ function _getSuggestions( text_num, word_num ) { // add suggestion in list for each suggested word. // get the array of suggested words out of the // three-dimensional array containing all suggestions. - var a_suggests = this.wordWin.suggestions[text_num][word_num]; + var a_suggests = this.wordWin.suggestions[text_num][word_num]; if( a_suggests ) { // got an array of suggestions. - for( var ii = 0; ii < a_suggests.length; ii++ ) { + for( var ii = 0; ii < a_suggests.length; ii++ ) { this.controlWin.addSuggestion( a_suggests[ii] ); } } @@ -453,8 +453,8 @@ function _getFormInputs( inputPattern ) { for( var i = 0; i < document.forms.length; i++ ) { for( var j = 0; j < document.forms[i].elements.length; j++ ) { if( document.forms[i].elements[j].type.match( inputPattern )) { - inputs[inputs.length] = document.forms[i].elements[j]; - } + inputs[inputs.length] = document.forms[i].elements[j]; + } } } return inputs; diff --git a/editor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html b/editor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html @@ -26,8 +26,8 @@ function init_spell( spellerWindow ) { function encodeForPost( str ) { var s = new String( str ); s = encodeURIComponent( s ); - // additionally encode single quotes to evade any PHP - // magic_quotes_gpc setting (it inserts escape characters and + // additionally encode single quotes to evade any PHP + // magic_quotes_gpc setting (it inserts escape characters and // therefore skews the btye positions of misspelled words) return s.replace( /\'/g, '%27' ); } diff --git a/editor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js b/editor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js @@ -12,7 +12,7 @@ function wordWindow() { this._adjustIndexes = _adjustIndexes; this._isWordChar = _isWordChar; this._lastPos = _lastPos; - + // public properties this.wordChar = /[a-zA-Z]/; this.windowType = "wordWindow"; @@ -69,7 +69,7 @@ function totalPreviousWords( textIndex, wordIndex ) { break; } else { total_words++; - } + } } } return total_words; @@ -115,17 +115,17 @@ function setText( textIndex, wordIndex, newText ) { var oldText = word.value; // update the text given the index of the string beginStr = this.textInputs[textIndex].substring( 0, pos ); - endStr = this.textInputs[textIndex].substring( - pos + oldText.length, - this.textInputs[textIndex].length + endStr = this.textInputs[textIndex].substring( + pos + oldText.length, + this.textInputs[textIndex].length ); this.textInputs[textIndex] = beginStr + newText + endStr; - - // adjust the indexes on the stack given the differences in - // length between the new word and old word. + + // adjust the indexes on the stack given the differences in + // length between the new word and old word. var lengthDiff = newText.length - oldText.length; this._adjustIndexes( textIndex, wordIndex, lengthDiff ); - + word.size = newText.length; word.value = newText; this.removeFocus( textIndex, wordIndex ); @@ -140,39 +140,39 @@ function writeBody() { d.open(); // iterate through each text input. - for( var txtid = 0; txtid < this.textInputs.length; txtid++ ) { + for( var txtid = 0; txtid < this.textInputs.length; txtid++ ) { var end_idx = 0; - var begin_idx = 0; + var begin_idx = 0; d.writeln( '<form name="textInput'+txtid+'">' ); var wordtxt = this.textInputs[txtid]; this.indexes[txtid] = []; - if( wordtxt ) { + if( wordtxt ) { var orig = this.originalSpellings[txtid]; if( !orig ) break; //!!! plain text, or HTML mode? d.writeln( '<div class="plainText">' ); - // iterate through each occurrence of a misspelled word. + // iterate through each occurrence of a misspelled word. for( var i = 0; i < orig.length; i++ ) { // find the position of the current misspelled word, - // starting at the last misspelled word. + // starting at the last misspelled word. // and keep looking if it's a substring of another word do { begin_idx = wordtxt.indexOf( orig[i], end_idx ); end_idx = begin_idx + orig[i].length; // word not found? messed up! - if( begin_idx == -1 ) break; - // look at the characters immediately before and after + if( begin_idx == -1 ) break; + // look at the characters immediately before and after // the word. If they are word characters we'll keep looking. var before_char = wordtxt.charAt( begin_idx - 1 ); var after_char = wordtxt.charAt( end_idx ); - } while ( - this._isWordChar( before_char ) + } while ( + this._isWordChar( before_char ) || this._isWordChar( after_char ) ); - // keep track of its position in the original text. + // keep track of its position in the original text. this.indexes[txtid][i] = begin_idx; // write out the characters before the current misspelled word @@ -181,17 +181,17 @@ function writeBody() { d.write( this.printForHtml( wordtxt.charAt( j ))); } - // write out the misspelled word. + // write out the misspelled word. d.write( this._wordInputStr( orig[i] )); // if it's the last word, write out the rest of the text if( i == orig.length-1 ){ d.write( printForHtml( wordtxt.substr( end_idx ))); - } + } } d.writeln( '</div>' ); - + } d.writeln( '</form>' ); } @@ -200,8 +200,8 @@ function writeBody() { // for( var k = 0; k < d.forms[j].elements.length; k++ ) { // alert( d.forms[j].elements[k].name + ": " + d.forms[j].elements[k].value ); // } - //} - + //} + // set the _forms property this._forms = d.forms; d.close(); @@ -217,7 +217,7 @@ function _lastPos( txtid, idx ) { function printForHtml( n ) { return n ; // by FredCK -/* +/* var htmlstr = n; if( htmlstr.length == 1 ) { // do simple case statement if it's just one character diff --git a/editor/editor/dialog/fck_table.html b/editor/editor/dialog/fck_table.html @@ -1,30 +1,26 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_table.html - * Table dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Table dialog window. --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Table Properties</title> @@ -74,10 +70,10 @@ window.onload = function() iWidth = iWidth.substr(0,iWidth.length - 2); document.getElementById('selWidthType').value = "pixels" ; } - + if (iHeight && iHeight.indexOf('px') >= 0) // Style Pixel = px iHeight = iHeight.substr(0,iHeight.length - 2); - + document.getElementById('txtWidth').value = iWidth || '' ; document.getElementById('txtHeight').value = iHeight || '' ; document.getElementById('txtBorder').value = GetAttribute( table, 'border', '' ) ; @@ -87,21 +83,22 @@ window.onload = function() document.getElementById('txtSummary').value = GetAttribute( table, 'summary', '' ) ; // document.getElementById('cmbFontStyle').value = table.className ; - if (table.caption) document.getElementById('txtCaption').value = table.caption.innerHTML ; - + var eCaption = oEditor.FCKDomTools.GetFirstChild( table, 'CAPTION' ) ; + if ( eCaption ) document.getElementById('txtCaption').value = eCaption.innerHTML ; + document.getElementById('txtRows').disabled = true ; document.getElementById('txtColumns').disabled = true ; } - - window.parent.SetOkButton( true ) ; - window.parent.SetAutoSize( true ) ; + + window.parent.SetOkButton( true ) ; + window.parent.SetAutoSize( true ) ; } // Fired when the user press the OK button function Ok() { var bExists = ( table != null ) ; - + if ( ! bExists ) table = oEditor.FCK.EditorDocument.createElement( "TABLE" ) ; @@ -134,13 +131,20 @@ function Ok() eCaption.innerHTML = document.getElementById('txtCaption').value ; } else if ( bExists && eCaption ) - eCaption.parentNode.removeChild( eCaption ) ; - + { + // TODO: It causes an IE internal error if using removeChild or + // table.deleteCaption() (see #505). + if ( oEditor.FCKBrowserInfo.IsIE ) + eCaption.innerHTML = '' ; + else + eCaption.parentNode.removeChild( eCaption ) ; + } + if (! bExists) { var iRows = document.getElementById('txtRows').value ; var iCols = document.getElementById('txtColumns').value ; - + for ( var r = 0 ; r < iRows ; r++ ) { var oRow = table.insertRow(-1) ; @@ -148,16 +152,15 @@ function Ok() { var oCell = oRow.insertCell(-1) ; if ( oEditor.FCKBrowserInfo.IsGeckoLike ) - oCell.innerHTML = GECKO_BOGUS ; - //oCell.innerHTML = "&nbsp;" ; + oEditor.FCKTools.AppendBogusBr( oCell ) ; } } - + oEditor.FCKUndo.SaveUndoStep() ; - + oEditor.FCK.InsertElement( table ) ; } - + return true ; } diff --git a/editor/editor/dialog/fck_tablecell.html b/editor/editor/dialog/fck_tablecell.html @@ -2,28 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_tablecell.html - * Cell properties dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Cell properties dialog window. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> @@ -91,7 +87,7 @@ function Ok() aCells[i].removeAttribute( 'width', 0 ) ; if ( GetE('selWordWrap').value == 'false' ) - aCells[i].noWrap = true ; + SetAttribute( aCells[i], 'noWrap', 'nowrap' ) ; else aCells[i].removeAttribute( 'noWrap' ) ; diff --git a/editor/editor/dialog/fck_template.html b/editor/editor/dialog/fck_template.html @@ -2,28 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_template.html - * Template selection dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Template selection dialog window. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> @@ -71,9 +67,9 @@ window.onload = function() // Translate the dialog box texts. oEditor.FCKLanguageManager.TranslatePage(document) ; - + GetE('xChkReplaceAll').checked = ( FCKConfig.TemplateReplaceAll !== false ) ; - + if ( FCKConfig.TemplateReplaceCheckbox !== false ) GetE('xReplaceBlock').style.display = '' ; @@ -167,7 +163,7 @@ function LoadTemplatesXml() sInner += '<\/td><\/tr><\/table>' ; oItemDiv.innerHTML = sInner ; - + oItemDiv.onmouseover = ItemDiv_OnMouseOver ; oItemDiv.onmouseout = ItemDiv_OnMouseOut ; oItemDiv.onclick = ItemDiv_OnClick ; @@ -195,7 +191,7 @@ function SelectTemplate( index ) oEditor.FCKUndo.SaveUndoStep() ; if ( GetE('xChkReplaceAll').checked ) - FCK.SetHTML( FCK._Templates[index].Html ) ; + FCK.SetData( FCK._Templates[index].Html ) ; else FCK.InsertHtml( FCK._Templates[index].Html ) ; diff --git a/editor/editor/dialog/fck_textarea.html b/editor/editor/dialog/fck_textarea.html @@ -2,28 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_textarea.html - * Text Area dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Text Area dialog window. --> <html> <head> @@ -55,14 +51,16 @@ window.onload = function() oActiveEl = null ; window.parent.SetOkButton( true ) ; + window.parent.SetAutoSize( true ) ; } function Ok() { + oEditor.FCKUndo.SaveUndoStep() ; + if ( !oActiveEl ) { - oActiveEl = oEditor.FCK.EditorDocument.createElement( 'TEXTAREA' ) ; - oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ; + oActiveEl = oEditor.FCK.InsertElement( 'textarea' ) ; } oActiveEl.name = GetE('txtName').value ; @@ -74,7 +72,7 @@ function Ok() </script> </head> - <body style='OVERFLOW: hidden' scroll='no'> + <body style="overflow: hidden"> <table height="100%" width="100%"> <tr> <td align="center"> diff --git a/editor/editor/dialog/fck_textfield.html b/editor/editor/dialog/fck_textfield.html @@ -2,28 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_textfield.html - * Text field dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Text field dialog window. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> @@ -59,6 +55,7 @@ window.onload = function() oActiveEl = null ; window.parent.SetOkButton( true ) ; + window.parent.SetAutoSize( true ) ; } function Ok() @@ -80,7 +77,8 @@ function Ok() { oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ; oActiveEl.type = GetE('txtType').value ; - oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ; + oEditor.FCKUndo.SaveUndoStep() ; + oActiveEl = oEditor.FCK.InsertElement( oActiveEl ) ; } oActiveEl.name = GetE('txtName').value ; diff --git a/editor/editor/dtd/fck_dtd_test.html b/editor/editor/dtd/fck_dtd_test.html @@ -0,0 +1,43 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <title>DTD Test Page</title> + <script type="text/javascript"> + + // Define an object for this test page, so the assignment to FCK.DTD works + var FCK = {} ; + </script> + <script type="text/javascript" src="../_source/internals/fcktools.js"></script> + <script type="text/javascript" src="fck_xhtml10transitional.js"></script> +</head> +<body> + <h1> + DTD Contents + </h1> + <table border="1"> + <script type="text/javascript"> + + alert(FCK.DTD); + +for ( var p in FCK.DTD ) +{ + document.write( '<tr><td><b>' + p + '</b></td><td>' ) ; + + var isFirst = true ; + + for ( var c in FCK.DTD[p] ) + { + if ( !isFirst ) + document.write( ', ' ) ; + isFirst = false ; + + document.write( c ) ; + } + + + document.write( '</td></tr>' ) ; +} + </script> + </table> +</body> +</html> diff --git a/editor/editor/dtd/fck_xhtml10strict.js b/editor/editor/dtd/fck_xhtml10strict.js @@ -0,0 +1,116 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Contains the DTD mapping for XHTML 1.0 Strict. + * This file was automatically generated from the file: xhtml10-strict.dtd + */ +FCK.DTD = (function() +{ + X = FCKTools.Merge ; + + var H,I,J,K,C,L,M,A,B,D,E,G,N,F ; + A = {ins:1, del:1, script:1} ; + B = {hr:1, ul:1, div:1, blockquote:1, noscript:1, table:1, address:1, pre:1, p:1, h5:1, dl:1, h4:1, ol:1, h6:1, h1:1, h3:1, h2:1} ; + C = X({fieldset:1}, B) ; + D = X({sub:1, bdo:1, 'var':1, sup:1, br:1, kbd:1, map:1, samp:1, b:1, acronym:1, '#':1, abbr:1, code:1, i:1, cite:1, tt:1, strong:1, q:1, em:1, big:1, small:1, span:1, dfn:1}, A) ; + E = X({img:1, object:1}, D) ; + F = {input:1, button:1, textarea:1, select:1, label:1} ; + G = X({a:1}, F) ; + H = {img:1, noscript:1, br:1, kbd:1, button:1, h5:1, h4:1, samp:1, h6:1, ol:1, h1:1, h3:1, h2:1, form:1, select:1, '#':1, ins:1, abbr:1, label:1, code:1, table:1, script:1, cite:1, input:1, strong:1, textarea:1, big:1, small:1, span:1, hr:1, sub:1, bdo:1, 'var':1, div:1, object:1, sup:1, map:1, dl:1, del:1, fieldset:1, ul:1, b:1, acronym:1, a:1, blockquote:1, i:1, address:1, tt:1, q:1, pre:1, p:1, em:1, dfn:1} ; + + I = X({form:1, fieldset:1}, B, E, G) ; + J = {tr:1} ; + K = {'#':1} ; + L = X(E, G) ; + M = {li:1} ; + N = X({form:1}, A, C) ; + + return { + col: {}, + tr: {td:1, th:1}, + img: {}, + colgroup: {col:1}, + noscript: N, + td: I, + br: {}, + th: I, + kbd: L, + button: X(B, E), + h5: L, + h4: L, + samp: L, + h6: L, + ol: M, + h1: L, + h3: L, + option: K, + h2: L, + form: X(A, C), + select: {optgroup:1, option:1}, + ins: I, + abbr: L, + label: L, + code: L, + table: {thead:1, col:1, tbody:1, tr:1, colgroup:1, caption:1, tfoot:1}, + script: K, + tfoot: J, + cite: L, + li: I, + input: {}, + strong: L, + textarea: K, + big: L, + small: L, + span: L, + dt: L, + hr: {}, + sub: L, + optgroup: {option:1}, + bdo: L, + param: {}, + 'var': L, + div: I, + object: X({param:1}, H), + sup: L, + dd: I, + area: {}, + map: X({form:1, area:1}, A, C), + dl: {dt:1, dd:1}, + del: I, + fieldset: X({legend:1}, H), + thead: J, + ul: M, + acronym: L, + b: L, + a: X({img:1, object:1}, D, F), + blockquote: N, + caption: L, + i: L, + tbody: J, + address: L, + tt: L, + legend: L, + q: L, + pre: X({a:1}, D, F), + p: L, + em: L, + dfn: L + } ; +})() ; diff --git a/editor/editor/dtd/fck_xhtml10transitional.js b/editor/editor/dtd/fck_xhtml10transitional.js @@ -0,0 +1,140 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Contains the DTD mapping for XHTML 1.0 Transitional. + * This file was automatically generated from the file: xhtml10-transitional.dtd + */ +FCK.DTD = (function() +{ + X = FCKTools.Merge ; + + var A,L,J,M,N,O,D,H,P,K,Q,F,G,C,B,E,I ; + A = {isindex:1, fieldset:1} ; + B = {input:1, button:1, select:1, textarea:1, label:1} ; + C = X({a:1}, B) ; + D = X({iframe:1}, C) ; + E = {hr:1, ul:1, menu:1, div:1, blockquote:1, noscript:1, table:1, center:1, address:1, dir:1, pre:1, h5:1, dl:1, h4:1, noframes:1, h6:1, ol:1, h1:1, h3:1, h2:1} ; + F = {ins:1, del:1, script:1} ; + G = X({b:1, acronym:1, bdo:1, 'var':1, '#':1, abbr:1, code:1, br:1, i:1, cite:1, kbd:1, u:1, strike:1, s:1, tt:1, strong:1, q:1, samp:1, em:1, dfn:1, span:1}, F) ; + H = X({sub:1, img:1, object:1, sup:1, basefont:1, map:1, applet:1, font:1, big:1, small:1}, G) ; + I = X({p:1}, H) ; + J = X({iframe:1}, H, B) ; + K = {img:1, noscript:1, br:1, kbd:1, center:1, button:1, basefont:1, h5:1, h4:1, samp:1, h6:1, ol:1, h1:1, h3:1, h2:1, form:1, font:1, '#':1, select:1, menu:1, ins:1, abbr:1, label:1, code:1, table:1, script:1, cite:1, input:1, iframe:1, strong:1, textarea:1, noframes:1, big:1, small:1, span:1, hr:1, sub:1, bdo:1, 'var':1, div:1, object:1, sup:1, strike:1, dir:1, map:1, dl:1, applet:1, del:1, isindex:1, fieldset:1, ul:1, b:1, acronym:1, a:1, blockquote:1, i:1, u:1, s:1, tt:1, address:1, q:1, pre:1, p:1, em:1, dfn:1} ; + + L = X({a:1}, J) ; + M = {tr:1} ; + N = {'#':1} ; + O = X({param:1}, K) ; + P = X({form:1}, A, D, E, I) ; + Q = {li:1} ; + + return { + col: {}, + tr: {td:1, th:1}, + img: {}, + colgroup: {col:1}, + noscript: P, + td: P, + br: {}, + th: P, + center: P, + kbd: L, + button: X(I, E), + basefont: {}, + h5: L, + h4: L, + samp: L, + h6: L, + ol: Q, + h1: L, + h3: L, + option: N, + h2: L, + form: X(A, D, E, I), + select: {optgroup:1, option:1}, + font: J, // Changed from L to J (see (1)) + ins: P, + menu: Q, + abbr: L, + label: L, + table: {thead:1, col:1, tbody:1, tr:1, colgroup:1, caption:1, tfoot:1}, + code: L, + script: N, + tfoot: M, + cite: L, + li: P, + input: {}, + iframe: P, + strong: J, // Changed from L to J (see (1)) + textarea: N, + noframes: P, + big: J, // Changed from L to J (see (1)) + small: J, // Changed from L to J (see (1)) + span: J, // Changed from L to J (see (1)) + hr: {}, + dt: L, + sub: J, // Changed from L to J (see (1)) + optgroup: {option:1}, + param: {}, + bdo: L, + 'var': J, // Changed from L to J (see (1)) + div: P, + object: O, + sup: J, // Changed from L to J (see (1)) + dd: P, + strike: J, // Changed from L to J (see (1)) + area: {}, + dir: Q, + map: X({area:1, form:1, p:1}, A, F, E), + applet: O, + dl: {dt:1, dd:1}, + del: P, + isindex: {}, + fieldset: X({legend:1}, K), + thead: M, + ul: Q, + acronym: L, + b: J, // Changed from L to J (see (1)) + a: J, + blockquote: P, + caption: L, + i: J, // Changed from L to J (see (1)) + u: J, // Changed from L to J (see (1)) + tbody: M, + s: L, + address: X(D, I), + tt: J, // Changed from L to J (see (1)) + legend: L, + q: L, + pre: X(G, C), + p: L, + em: J, // Changed from L to J (see (1)) + dfn: L + } ; +})() ; + +/* + Notes: + (1) According to the DTD, many elements, like <b> accept <a> elements + inside of them. But, to produce better output results, we have manually + changed the map to avoid breaking the links on pieces, having + "<b>this is a </b><a><b>link</b> test</a>", instead of + "<b>this is a <a>link</a></b><a> test</a>". +*/+ \ No newline at end of file diff --git a/editor/editor/fckdebug.html b/editor/editor/fckdebug.html @@ -2,29 +2,25 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fckdebug.html - * This is the Debug window. - * It automatically popups if the Debug = true in the configuration file. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * This is the Debug window. + * It automatically popups if the Debug = true in the configuration file. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> @@ -51,10 +47,10 @@ function Output( message, color, noParse ) { if ( !noParse && message != null && isNaN( message ) ) message = message.replace(/</g, "&lt;") ; - + if ( color ) message = '<font color="' + color + '">' + message + '<\/font>' ; - + window.FCKMessages[ window.FCKMessages.length ] = message ; StartTimer() ; } @@ -62,18 +58,18 @@ function Output( message, color, noParse ) function OutputObject( anyObject, color ) { var message ; - - if ( anyObject != null ) + + if ( anyObject != null ) { message = 'Properties of: ' + anyObject + '</b><blockquote>' ; - + for (var prop in anyObject) { - try + try { var sVal = anyObject[ prop ] != null ? anyObject[ prop ] + '' : '[null]' ; message += '<b>' + prop + '</b> : ' + sVal.replace(/</g, '&lt;') + '<br>' ; - } + } catch (e) { try @@ -87,10 +83,10 @@ function OutputObject( anyObject, color ) } } - message += '</blockquote><b>' ; + message += '</blockquote><b>' ; } else message = 'OutputObject : Object is "null".' ; - + Output( message, color, true ) ; } @@ -105,18 +101,18 @@ function CheckMessages() { // Get the first item in the queue var sMessage = window.FCKMessages[0] ; - + // Removes the first item from the queue var oTempArray = new Array() ; for ( i = 1 ; i < window.FCKMessages.length ; i++ ) oTempArray[ i - 1 ] = window.FCKMessages[ i ] ; window.FCKMessages = oTempArray ; - + var d = new Date() ; - var sTime = - ( d.getHours() + 100 + '' ).substr( 1,2 ) + ':' + - ( d.getMinutes() + 100 + '' ).substr( 1,2 ) + ':' + - ( d.getSeconds() + 100 + '' ).substr( 1,2 ) + ':' + + var sTime = + ( d.getHours() + 100 + '' ).substr( 1,2 ) + ':' + + ( d.getMinutes() + 100 + '' ).substr( 1,2 ) + ':' + + ( d.getSeconds() + 100 + '' ).substr( 1,2 ) + ':' + ( d.getMilliseconds() + 1000 + '' ).substr( 1,3 ) ; var oMsgDiv = oWindow.document.createElement( 'div' ) ; diff --git a/editor/editor/fckdialog.html b/editor/editor/fckdialog.html @@ -2,28 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fckdialog.html - * This page is used by all dialog box as the container. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * This page is used by all dialog box as the container. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> @@ -42,6 +38,10 @@ document.write( '<link href="' + window.dialogArguments.Editor.FCKConfig.SkinPat // Sets the language direction. window.document.dir = window.dialogArguments.Editor.FCKLang.Dir ; +// IE does not set the window name in showModalDialog(), let's set it here. +if ( window.dialogArguments.Editor.FCKBrowserInfo.IsIE ) + window.name = window.dialogArguments.DialogName ; + var sTitle = window.dialogArguments.Title ; document.write( '<title>' + sTitle + '<\/title>' ) ; @@ -111,6 +111,18 @@ function RefreshSize() } } +// Kludge for #1316: Safari seems to have a bug with the time when RefreshSize() is executed - it thinks frmMain's innerHeight +// is 0 if we query the value too soon after the page is loaded in some circumstances. +if ( window.dialogArguments.Editor.FCKBrowserInfo.IsSafari ) +{ + window.OriginalRefreshSize = RefreshSize ; + + RefreshSize = function() + { + window.setTimeout( window.OriginalRefreshSize, 1 ); + } +} + function Ok() { if ( window.frames["frmMain"].Ok && window.frames["frmMain"].Ok() ) @@ -119,7 +131,7 @@ function Ok() function Cancel( dontFireChange ) { - if ( !dontFireChange ) + if ( !dontFireChange && !window.dialogArguments.Editor.FCK.EditMode ) { // All dialog windows, by default, will fire the "OnSelectionChange" // event, no matter the Ok or Cancel button has been pressed. @@ -215,7 +227,7 @@ function SetOnKeyDown( targetDocument ) { case 13 : // ENTER var oTarget = e.srcElement || e.target ; - if ( oTarget.tagName == 'TEXTAREA' ) + if ( oTarget.tagName == 'TEXTAREA' ) return true ; Ok() ; return false ; @@ -315,8 +327,9 @@ document.write( sTitle ) ; <tr> <td width="100%">&nbsp;</td> <td nowrap="nowrap"> - <input id="btnOk" style="VISIBILITY: hidden; WIDTH: 100px" type="button" value="Ok" class="Button" - onclick="Ok();" fckLang="DlgBtnOK" />&nbsp; <input type="button" value="Cancel" class="Button" onclick="Cancel();" fckLang="DlgBtnCancel" /> + <input id="btnOk" style="VISIBILITY: hidden;" type="button" value="Ok" class="Button" onclick="Ok();" fckLang="DlgBtnOK" /> + &nbsp; + <input id="btnCancel" type="button" value="Cancel" class="Button" onclick="Cancel();" fckLang="DlgBtnCancel" /> </td> </tr> </table> @@ -324,4 +337,4 @@ document.write( sTitle ) ; </tr> </table> </body> -</html>- \ No newline at end of file +</html> diff --git a/editor/editor/fckeditor.html b/editor/editor/fckeditor.html @@ -2,34 +2,30 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fckeditor.html - * Main page that holds the editor. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Main page that holds the editor. --> -<html xmlns="http://www.w3.org/1999/xhtml"> +<html> <head> <title>FCKeditor</title> - <meta name="robots" content="noindex, nofollow" /> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <meta name="robots" content="noindex, nofollow"> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Cache-Control" content="public" /> <script type="text/javascript"> @@ -40,16 +36,16 @@ function LoadScript( url ) { - document.write( '<script type="text/javascript" src="' + url + '" onerror="alert(\'Error loading \' + this.src);"><\/script>' ) ; + document.write( '<scr' + 'ipt type="text/javascript" src="' + url + '"><\/scr' + 'ipt>' ) ; } function LoadCss( url ) { - document.write( '<link href="' + url + '" type="text/css" rel="stylesheet" onerror="alert(\'Error loading \' + this.src);" />' ) ; + document.write( '<link href="' + url + '" type="text/css" rel="stylesheet" />' ) ; } // Main editor scripts. -var sSuffix = /msie/.test( navigator.userAgent.toLowerCase() ) ? 'ie' : 'gecko' ; +var sSuffix = ( /*@cc_on!@*/false ) ? 'ie' : 'gecko' ; LoadScript( 'js/fckeditorcode_' + sSuffix + '.js' ) ; @@ -66,7 +62,7 @@ if ( FCKBrowserInfo.IsIE ) { document.execCommand( 'BackgroundImageCache', false, true ) ; } - catch (e) + catch (e) { // We have been reported about loading problems caused by the above // line. For safety, let's just ignore errors. @@ -78,6 +74,11 @@ if ( FCKBrowserInfo.IsIE ) FCK.IECleanup.AddItem( FCK, FCK_Cleanup ) ; } +// The first function to be called on selection change must the the styles +// change checker, because the result of its processing may be used by another +// functions listening to the same event. +FCK.Events.AttachEvent( 'OnSelectionChange', function() { FCKStyles.CheckSelectionChanges() ; } ) ; + // The config hidden field is processed immediately, because // CustomConfigurationsPath may be set in the page. FCKConfig.ProcessHiddenField() ; @@ -111,14 +112,10 @@ FCKPlugins.Load() ; </script> <script type="text/javascript"> - + // Set the editor interface direction. window.document.dir = FCKLang.Dir ; -// Activate pasting operations. -if ( FCKConfig.ForcePasteAsPlainText || FCKConfig.AutoDetectPasteFromWord ) - FCK.Events.AttachEvent( 'OnPaste', FCK.Paste ) ; - </script> <script type="text/javascript"> @@ -140,7 +137,7 @@ function LoadToolbarSetup() function LoadToolbar() { var oToolbarSet = FCK.ToolbarSet = FCKToolbarSet_Create() ; - + if ( oToolbarSet.IsLoaded ) StartEditor() ; else @@ -174,10 +171,10 @@ function WaitForActive( editorInstance, newStatus ) FCK.SetStatus( FCK_STATUS_COMPLETE ) ; - // Call the special "FCKeditor_OnComplete" function that should be present in + // Call the special "FCKeditor_OnComplete" function that should be present in // the HTML page where the editor is located. if ( typeof( window.parent.FCKeditor_OnComplete ) == 'function' ) - window.parent.FCKeditor_OnComplete( FCK ) ; + window.parent.FCKeditor_OnComplete( FCK ) ; } } diff --git a/editor/editor/fckeditor.original.html b/editor/editor/fckeditor.original.html @@ -1,35 +1,31 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fckeditor.original.html - * Main page that holds the editor. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Main page that holds the editor. --> -<html xmlns="http://www.w3.org/1999/xhtml"> +<html> <head> <title>FCKeditor</title> - <meta name="robots" content="noindex, nofollow" /> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <meta name="robots" content="noindex, nofollow"> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <!-- @Packager.RemoveLine <meta http-equiv="Cache-Control" content="public" /> @Packager.RemoveLine --> @@ -42,16 +38,16 @@ function LoadScript( url ) { - document.write( '<script type="text/javascript" src="' + url + '" onerror="alert(\'Error loading \' + this.src);"><\/script>' ) ; + document.write( '<scr' + 'ipt type="text/javascript" src="' + url + '"><\/scr' + 'ipt>' ) ; } function LoadCss( url ) { - document.write( '<link href="' + url + '" type="text/css" rel="stylesheet" onerror="alert(\'Error loading \' + this.src);" />' ) ; + document.write( '<link href="' + url + '" type="text/css" rel="stylesheet" />' ) ; } // Main editor scripts. -var sSuffix = /msie/.test( navigator.userAgent.toLowerCase() ) ? 'ie' : 'gecko' ; +var sSuffix = ( /*@cc_on!@*/false ) ? 'ie' : 'gecko' ; /* @Packager.RemoveLine LoadScript( 'js/fckeditorcode_' + sSuffix + '.js' ) ; @@ -67,6 +63,7 @@ if ( sSuffix == 'ie' ) LoadScript( '_source/internals/fckbrowserinfo.js' ) ; LoadScript( '_source/internals/fckurlparams.js' ) ; LoadScript( '_source/classes/fckevents.js' ) ; +LoadScript( '_source/classes/fckdataprocessor.js' ) ; LoadScript( '_source/internals/fck.js' ) ; LoadScript( '_source/internals/fck_' + sSuffix + '.js' ) ; LoadScript( '_source/internals/fckconfig.js' ) ; @@ -78,21 +75,27 @@ LoadScript( '_source/internals/fcktools_' + sSuffix + '.js' ) ; LoadScript( '_source/fckeditorapi.js' ) ; LoadScript( '_source/classes/fckimagepreloader.js' ) ; LoadScript( '_source/internals/fckregexlib.js' ) ; +LoadScript( '_source/internals/fcklistslib.js' ) ; LoadScript( '_source/internals/fcklanguagemanager.js' ) ; LoadScript( '_source/internals/fckxhtmlentities.js' ) ; LoadScript( '_source/internals/fckxhtml.js' ) ; LoadScript( '_source/internals/fckxhtml_' + sSuffix + '.js' ) ; LoadScript( '_source/internals/fckcodeformatter.js' ) ; -LoadScript( '_source/internals/fckundo_' + sSuffix + '.js' ) ; +LoadScript( '_source/internals/fckundo.js' ) ; LoadScript( '_source/classes/fckeditingarea.js' ) ; LoadScript( '_source/classes/fckkeystrokehandler.js' ) ; +LoadScript( 'dtd/fck_xhtml10transitional.js' ) ; +LoadScript( '_source/classes/fckstyle.js' ) ; +LoadScript( '_source/internals/fckstyles.js' ) ; + LoadScript( '_source/internals/fcklisthandler.js' ) ; LoadScript( '_source/classes/fckelementpath.js' ) ; LoadScript( '_source/classes/fckdomrange.js' ) ; LoadScript( '_source/classes/fckdocumentfragment_' + sSuffix + '.js' ) ; LoadScript( '_source/classes/fckw3crange.js' ) ; LoadScript( '_source/classes/fckdomrange_' + sSuffix + '.js' ) ; +LoadScript( '_source/classes/fckdomrangeiterator.js' ) ; LoadScript( '_source/classes/fckenterkey.js' ) ; LoadScript( '_source/internals/fckdocumentprocessor.js' ) ; @@ -101,20 +104,25 @@ LoadScript( '_source/internals/fckselection_' + sSuffix + '.js' ) ; LoadScript( '_source/internals/fcktablehandler.js' ) ; LoadScript( '_source/internals/fcktablehandler_' + sSuffix + '.js' ) ; +LoadScript( '_source/classes/fckxml.js' ) ; LoadScript( '_source/classes/fckxml_' + sSuffix + '.js' ) ; -LoadScript( '_source/classes/fckstyledef.js' ) ; -LoadScript( '_source/classes/fckstyledef_' + sSuffix + '.js' ) ; -LoadScript( '_source/classes/fckstylesloader.js' ) ; LoadScript( '_source/commandclasses/fcknamedcommand.js' ) ; +LoadScript( '_source/commandclasses/fckstylecommand.js' ) ; LoadScript( '_source/commandclasses/fck_othercommands.js' ) ; +LoadScript( '_source/commandclasses/fckshowblocks.js' ) ; LoadScript( '_source/commandclasses/fckspellcheckcommand_' + sSuffix + '.js' ) ; LoadScript( '_source/commandclasses/fcktextcolorcommand.js' ) ; LoadScript( '_source/commandclasses/fckpasteplaintextcommand.js' ) ; LoadScript( '_source/commandclasses/fckpastewordcommand.js' ) ; LoadScript( '_source/commandclasses/fcktablecommand.js' ) ; -LoadScript( '_source/commandclasses/fckstylecommand.js' ) ; LoadScript( '_source/commandclasses/fckfitwindow.js' ) ; +LoadScript( '_source/commandclasses/fcklistcommands.js' ) ; +LoadScript( '_source/commandclasses/fckjustifycommands.js' ) ; +LoadScript( '_source/commandclasses/fckindentcommands.js' ) ; +LoadScript( '_source/commandclasses/fckblockquotecommand.js' ) ; +LoadScript( '_source/commandclasses/fckcorestylecommand.js' ) ; +LoadScript( '_source/commandclasses/fckremoveformatcommand.js' ) ; LoadScript( '_source/internals/fckcommands.js' ) ; LoadScript( '_source/classes/fckpanel.js' ) ; @@ -123,10 +131,10 @@ LoadScript( '_source/classes/fcktoolbarbuttonui.js' ) ; LoadScript( '_source/classes/fcktoolbarbutton.js' ) ; LoadScript( '_source/classes/fckspecialcombo.js' ) ; LoadScript( '_source/classes/fcktoolbarspecialcombo.js' ) ; +LoadScript( '_source/classes/fcktoolbarstylecombo.js' ) ; +LoadScript( '_source/classes/fcktoolbarfontformatcombo.js' ) ; LoadScript( '_source/classes/fcktoolbarfontscombo.js' ) ; LoadScript( '_source/classes/fcktoolbarfontsizecombo.js' ) ; -LoadScript( '_source/classes/fcktoolbarfontformatcombo.js' ) ; -LoadScript( '_source/classes/fcktoolbarstylecombo.js' ) ; LoadScript( '_source/classes/fcktoolbarpanelbutton.js' ) ; LoadScript( '_source/internals/fcktoolbaritems.js' ) ; LoadScript( '_source/classes/fcktoolbar.js' ) ; @@ -157,7 +165,7 @@ if ( FCKBrowserInfo.IsIE ) { document.execCommand( 'BackgroundImageCache', false, true ) ; } - catch (e) + catch (e) { // We have been reported about loading problems caused by the above // line. For safety, let's just ignore errors. @@ -169,6 +177,11 @@ if ( FCKBrowserInfo.IsIE ) FCK.IECleanup.AddItem( FCK, FCK_Cleanup ) ; } +// The first function to be called on selection change must the the styles +// change checker, because the result of its processing may be used by another +// functions listening to the same event. +FCK.Events.AttachEvent( 'OnSelectionChange', function() { FCKStyles.CheckSelectionChanges() ; } ) ; + // The config hidden field is processed immediately, because // CustomConfigurationsPath may be set in the page. FCKConfig.ProcessHiddenField() ; @@ -202,14 +215,10 @@ FCKPlugins.Load() ; </script> <script type="text/javascript"> - + // Set the editor interface direction. window.document.dir = FCKLang.Dir ; -// Activate pasting operations. -if ( FCKConfig.ForcePasteAsPlainText || FCKConfig.AutoDetectPasteFromWord ) - FCK.Events.AttachEvent( 'OnPaste', FCK.Paste ) ; - </script> <script type="text/javascript"> @@ -231,7 +240,7 @@ function LoadToolbarSetup() function LoadToolbar() { var oToolbarSet = FCK.ToolbarSet = FCKToolbarSet_Create() ; - + if ( oToolbarSet.IsLoaded ) StartEditor() ; else @@ -265,10 +274,10 @@ function WaitForActive( editorInstance, newStatus ) FCK.SetStatus( FCK_STATUS_COMPLETE ) ; - // Call the special "FCKeditor_OnComplete" function that should be present in + // Call the special "FCKeditor_OnComplete" function that should be present in // the HTML page where the editor is located. if ( typeof( window.parent.FCKeditor_OnComplete ) == 'function' ) - window.parent.FCKeditor_OnComplete( FCK ) ; + window.parent.FCKeditor_OnComplete( FCK ) ; } } diff --git a/editor/editor/filemanager/browser/default/browser.css b/editor/editor/filemanager/browser/default/browser.css @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: browser.css - * CSS styles used by all pages that compose the File Browser. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * CSS styles used by all pages that compose the File Browser. */ body @@ -50,6 +46,7 @@ body.FileArea { background-color: #ffffff; + margin: 10px; } body, td, input, select diff --git a/editor/editor/filemanager/browser/default/browser.html b/editor/editor/filemanager/browser/default/browser.html @@ -1,30 +1,26 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: browser.html - * This page compose the File Browser dialog frameset. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * This page compose the File Browser dialog frameset. --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>FCKeditor - Resources Browser</title> @@ -36,7 +32,7 @@ function GetUrlParam( paramName ) { var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' ) ; var oMatch = oRegex.exec( window.top.location.search ) ; - + if ( oMatch && oMatch.length > 1 ) return decodeURIComponent( oMatch[1] ) ; else @@ -69,11 +65,14 @@ oConnector.SendCommand = function( command, params, callBackFunction ) var sUrl = this.ConnectorUrl + 'Command=' + command ; sUrl += '&Type=' + this.ResourceType ; sUrl += '&CurrentFolder=' + encodeURIComponent( this.CurrentFolder ) ; - + if ( params ) sUrl += '&' + params ; + // Add a random salt to avoid getting a cached version of the command execution + sUrl += '&uuid=' + new Date().getTime() ; + var oXML = new FCKXml() ; - + if ( callBackFunction ) oXML.LoadUrl( sUrl, callBackFunction ) ; // Asynchronous load. else @@ -86,11 +85,11 @@ oConnector.CheckError = function( responseXml ) { var iErrorNumber = 0 ; var oErrorNode = responseXml.SelectSingleNode( 'Connector/Error' ) ; - + if ( oErrorNode ) { iErrorNumber = parseInt( oErrorNode.attributes.getNamedItem('number').value, 10 ) ; - + switch ( iErrorNumber ) { case 0 : @@ -120,10 +119,10 @@ oConnector.CheckError = function( responseXml ) var oIcons = new Object() ; -oIcons.AvailableIconsArray = [ +oIcons.AvailableIconsArray = [ 'ai','avi','bmp','cs','dll','doc','exe','fla','gif','htm','html','jpg','js', - 'mdb','mp3','pdf','ppt','rdp','swf','swt','txt','vsd','xls','xml','zip' ] ; - + 'mdb','mp3','pdf','png','ppt','rdp','swf','swt','txt','vsd','xls','xml','zip' ] ; + oIcons.AvailableIcons = new Object() ; for ( var i = 0 ; i < oIcons.AvailableIconsArray.length ; i++ ) @@ -138,6 +137,12 @@ oIcons.GetIcon = function( fileName ) else return 'default.icon' ; } + +function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg ) +{ + window.frames['frmUpload'].OnUploadCompleted( errorNumber, fileName ) ; +} + </script> </head> <frameset cols="150,*" class="Frame" framespacing="3" bordercolor="#f1f1e3" frameborder="1"> diff --git a/editor/editor/filemanager/browser/default/connectors/php/basexml.php b/editor/editor/filemanager/browser/default/connectors/php/basexml.php @@ -1,79 +0,0 @@ -<?php -/* - * FCKeditor - The text editor for Internet - http://www.fckeditor.net - * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * - * == BEGIN LICENSE == - * - * Licensed under the terms of any of the following licenses at your - * choice: - * - * - GNU General Public License Version 2 or later (the "GPL") - * http://www.gnu.org/licenses/gpl.html - * - * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") - * http://www.gnu.org/licenses/lgpl.html - * - * - Mozilla Public License Version 1.1 or later (the "MPL") - * http://www.mozilla.org/MPL/MPL-1.1.html - * - * == END LICENSE == - * - * File Name: basexml.php - * These functions define the base of the XML response sent by the PHP - * connector. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - */ - -function SetXmlHeaders() -{ - ob_end_clean() ; - - // Prevent the browser from caching the result. - // Date in the past - header('Expires: Mon, 26 Jul 1997 05:00:00 GMT') ; - // always modified - header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT') ; - // HTTP/1.1 - header('Cache-Control: no-store, no-cache, must-revalidate') ; - header('Cache-Control: post-check=0, pre-check=0', false) ; - // HTTP/1.0 - header('Pragma: no-cache') ; - - // Set the response format. - header( 'Content-Type:text/xml; charset=utf-8' ) ; -} - -function CreateXmlHeader( $command, $resourceType, $currentFolder ) -{ - SetXmlHeaders() ; - - // Create the XML document header. - echo '<?xml version="1.0" encoding="utf-8" ?>' ; - - // Create the main "Connector" node. - echo '<Connector command="' . $command . '" resourceType="' . $resourceType . '">' ; - - // Add the current folder node. - echo '<CurrentFolder path="' . ConvertToXmlAttribute( $currentFolder ) . '" url="' . ConvertToXmlAttribute( GetUrlFromPath( $resourceType, $currentFolder ) ) . '" />' ; -} - -function CreateXmlFooter() -{ - echo '</Connector>' ; -} - -function SendError( $number, $text ) -{ - SetXmlHeaders() ; - - // Create the XML document header - echo '<?xml version="1.0" encoding="utf-8" ?>' ; - - echo '<Connector><Error number="' . $number . '" text="' . htmlspecialchars( $text ) . '" /></Connector>' ; - - exit ; -} -?>- \ No newline at end of file diff --git a/editor/editor/filemanager/browser/default/connectors/php/commands.php b/editor/editor/filemanager/browser/default/connectors/php/commands.php @@ -1,226 +0,0 @@ -<?php -/* - * FCKeditor - The text editor for Internet - http://www.fckeditor.net - * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * - * == BEGIN LICENSE == - * - * Licensed under the terms of any of the following licenses at your - * choice: - * - * - GNU General Public License Version 2 or later (the "GPL") - * http://www.gnu.org/licenses/gpl.html - * - * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") - * http://www.gnu.org/licenses/lgpl.html - * - * - Mozilla Public License Version 1.1 or later (the "MPL") - * http://www.mozilla.org/MPL/MPL-1.1.html - * - * == END LICENSE == - * - * File Name: commands.php - * This is the File Manager Connector for PHP. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - */ - -function GetFolders( $resourceType, $currentFolder ) -{ - // Map the virtual path to the local server path. - $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ; - - // Array that will hold the folders names. - $aFolders = array() ; - - $oCurrentFolder = opendir( $sServerDir ) ; - - while ( $sFile = readdir( $oCurrentFolder ) ) - { - if ( $sFile != '.' && $sFile != '..' && is_dir( $sServerDir . $sFile ) ) - $aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ; - } - - closedir( $oCurrentFolder ) ; - - // Open the "Folders" node. - echo "<Folders>" ; - - natcasesort( $aFolders ) ; - foreach ( $aFolders as $sFolder ) - echo $sFolder ; - - // Close the "Folders" node. - echo "</Folders>" ; -} - -function GetFoldersAndFiles( $resourceType, $currentFolder ) -{ - // Map the virtual path to the local server path. - $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ; - - // Arrays that will hold the folders and files names. - $aFolders = array() ; - $aFiles = array() ; - - $oCurrentFolder = opendir( $sServerDir ) ; - - while ( $sFile = readdir( $oCurrentFolder ) ) - { - if ( $sFile != '.' && $sFile != '..' ) - { - if ( is_dir( $sServerDir . $sFile ) ) - $aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ; - else - { - $iFileSize = filesize( $sServerDir . $sFile ) ; - if ( $iFileSize > 0 ) - { - $iFileSize = round( $iFileSize / 1024 ) ; - if ( $iFileSize < 1 ) $iFileSize = 1 ; - } - - $aFiles[] = '<File name="' . ConvertToXmlAttribute( $sFile ) . '" size="' . $iFileSize . '" />' ; - } - } - } - - // Send the folders - natcasesort( $aFolders ) ; - echo '<Folders>' ; - - foreach ( $aFolders as $sFolder ) - echo $sFolder ; - - echo '</Folders>' ; - - // Send the files - natcasesort( $aFiles ) ; - echo '<Files>' ; - - foreach ( $aFiles as $sFiles ) - echo $sFiles ; - - echo '</Files>' ; -} - -function CreateFolder( $resourceType, $currentFolder ) -{ - $sErrorNumber = '0' ; - $sErrorMsg = '' ; - - if ( isset( $_GET['NewFolderName'] ) ) - { - $sNewFolderName = $_GET['NewFolderName'] ; - - if ( strpos( $sNewFolderName, '..' ) !== FALSE ) - $sErrorNumber = '102' ; // Invalid folder name. - else - { - // Map the virtual path to the local server path of the current folder. - $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ; - - if ( is_writable( $sServerDir ) ) - { - $sServerDir .= $sNewFolderName ; - - $sErrorMsg = CreateServerFolder( $sServerDir ) ; - - switch ( $sErrorMsg ) - { - case '' : - $sErrorNumber = '0' ; - break ; - case 'Invalid argument' : - case 'No such file or directory' : - $sErrorNumber = '102' ; // Path too long. - break ; - default : - $sErrorNumber = '110' ; - break ; - } - } - else - $sErrorNumber = '103' ; - } - } - else - $sErrorNumber = '102' ; - - // Create the "Error" node. - echo '<Error number="' . $sErrorNumber . '" originalDescription="' . ConvertToXmlAttribute( $sErrorMsg ) . '" />' ; -} - -function FileUpload( $resourceType, $currentFolder ) -{ - $sErrorNumber = '0' ; - $sFileName = '' ; - - if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES['NewFile']['tmp_name'] ) ) - { - global $Config ; - - $oFile = $_FILES['NewFile'] ; - - // Map the virtual path to the local server path. - $sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ; - - // Get the uploaded file name. - $sFileName = $oFile['name'] ; - - // Replace dots in the name with underscores (only one dot can be there... security issue). - if ( $Config['ForceSingleExtension'] ) - $sFileName = preg_replace( '/\\.(?![^.]*$)/', '_', $sFileName ) ; - - $sOriginalFileName = $sFileName ; - - // Get the extension. - $sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ; - $sExtension = strtolower( $sExtension ) ; - - $arAllowed = $Config['AllowedExtensions'][$resourceType] ; - $arDenied = $Config['DeniedExtensions'][$resourceType] ; - - if ( ( count($arAllowed) == 0 || in_array( $sExtension, $arAllowed ) ) && ( count($arDenied) == 0 || !in_array( $sExtension, $arDenied ) ) ) - { - $iCounter = 0 ; - - while ( true ) - { - $sFilePath = $sServerDir . $sFileName ; - - if ( is_file( $sFilePath ) ) - { - $iCounter++ ; - $sFileName = RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ; - $sErrorNumber = '201' ; - } - else - { - move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ; - - if ( is_file( $sFilePath ) ) - { - $oldumask = umask(0) ; - chmod( $sFilePath, 0777 ) ; - umask( $oldumask ) ; - } - - break ; - } - } - } - else - $sErrorNumber = '202' ; - } - else - $sErrorNumber = '202' ; - - echo '<script type="text/javascript">' ; - echo 'window.parent.frames["frmUpload"].OnUploadCompleted(' . $sErrorNumber . ',"' . str_replace( '"', '\\"', $sFileName ) . '") ;' ; - echo '</script>' ; - - exit ; -} -?>- \ No newline at end of file diff --git a/editor/editor/filemanager/browser/default/connectors/php/config.php b/editor/editor/filemanager/browser/default/connectors/php/config.php @@ -1,59 +0,0 @@ -<?php -/* - * FCKeditor - The text editor for Internet - http://www.fckeditor.net - * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * - * == BEGIN LICENSE == - * - * Licensed under the terms of any of the following licenses at your - * choice: - * - * - GNU General Public License Version 2 or later (the "GPL") - * http://www.gnu.org/licenses/gpl.html - * - * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") - * http://www.gnu.org/licenses/lgpl.html - * - * - Mozilla Public License Version 1.1 or later (the "MPL") - * http://www.mozilla.org/MPL/MPL-1.1.html - * - * == END LICENSE == - * - * File Name: config.php - * Configuration file for the File Manager Connector for PHP. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - */ - -global $Config ; - -// SECURITY: You must explicitelly enable this "connector". (Set it to "true"). -$Config['Enabled'] = false ; - -// Path to user files relative to the document root. -$Config['UserFilesPath'] = '/userfiles/' ; - -// Fill the following value it you prefer to specify the absolute path for the -// user files directory. Usefull if you are using a virtual directory, symbolic -// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'. -// Attention: The above 'UserFilesPath' must point to the same directory. -$Config['UserFilesAbsolutePath'] = '' ; - -// Due to security issues with Apache modules, it is reccomended to leave the -// following setting enabled. -$Config['ForceSingleExtension'] = true ; - -$Config['AllowedExtensions']['File'] = array() ; -$Config['DeniedExtensions']['File'] = array('html','htm','php','php2','php3','php4','php5','phtml','pwml','inc','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','com','dll','vbs','js','reg','cgi','htaccess','asis') ; - -$Config['AllowedExtensions']['Image'] = array('jpg','gif','jpeg','png') ; -$Config['DeniedExtensions']['Image'] = array() ; - -$Config['AllowedExtensions']['Flash'] = array('swf','fla') ; -$Config['DeniedExtensions']['Flash'] = array() ; - -$Config['AllowedExtensions']['Media'] = array('swf','fla','jpg','gif','jpeg','png','avi','mpg','mpeg') ; -$Config['DeniedExtensions']['Media'] = array() ; - -?>- \ No newline at end of file diff --git a/editor/editor/filemanager/browser/default/connectors/php/connector.php b/editor/editor/filemanager/browser/default/connectors/php/connector.php @@ -1,117 +0,0 @@ -<?php -/* - * FCKeditor - The text editor for Internet - http://www.fckeditor.net - * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * - * == BEGIN LICENSE == - * - * Licensed under the terms of any of the following licenses at your - * choice: - * - * - GNU General Public License Version 2 or later (the "GPL") - * http://www.gnu.org/licenses/gpl.html - * - * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") - * http://www.gnu.org/licenses/lgpl.html - * - * - Mozilla Public License Version 1.1 or later (the "MPL") - * http://www.mozilla.org/MPL/MPL-1.1.html - * - * == END LICENSE == - * - * File Name: connector.php - * This is the File Manager Connector for PHP. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - */ - -ob_start() ; - -include('config.php') ; -include('util.php') ; -include('io.php') ; -include('basexml.php') ; -include('commands.php') ; - -if ( !$Config['Enabled'] ) - SendError( 1, 'This connector is disabled. Please check the "editor/filemanager/browser/default/connectors/php/config.php" file' ) ; - -// Get the "UserFiles" path. -$GLOBALS["UserFilesPath"] = '' ; - -if ( isset( $Config['UserFilesPath'] ) ) - $GLOBALS["UserFilesPath"] = $Config['UserFilesPath'] ; -else if ( isset( $_GET['ServerPath'] ) ) - $GLOBALS["UserFilesPath"] = $_GET['ServerPath'] ; -else - $GLOBALS["UserFilesPath"] = '/userfiles/' ; - -if ( ! ereg( '/$', $GLOBALS["UserFilesPath"] ) ) - $GLOBALS["UserFilesPath"] .= '/' ; - -if ( strlen( $Config['UserFilesAbsolutePath'] ) > 0 ) -{ - $GLOBALS["UserFilesDirectory"] = $Config['UserFilesAbsolutePath'] ; - - if ( ! ereg( '/$', $GLOBALS["UserFilesDirectory"] ) ) - $GLOBALS["UserFilesDirectory"] .= '/' ; -} -else -{ - // Map the "UserFiles" path to a local directory. - $GLOBALS["UserFilesDirectory"] = GetRootPath() . $GLOBALS["UserFilesPath"] ; -} - -DoResponse() ; - -function DoResponse() -{ - if ( !isset( $_GET['Command'] ) || !isset( $_GET['Type'] ) || !isset( $_GET['CurrentFolder'] ) ) - return ; - - // Get the main request informaiton. - $sCommand = $_GET['Command'] ; - $sResourceType = $_GET['Type'] ; - $sCurrentFolder = $_GET['CurrentFolder'] ; - - // Check if it is an allowed type. - if ( !in_array( $sResourceType, array('File','Image','Flash','Media') ) ) - return ; - - // Check the current folder syntax (must begin and start with a slash). - if ( ! ereg( '/$', $sCurrentFolder ) ) $sCurrentFolder .= '/' ; - if ( strpos( $sCurrentFolder, '/' ) !== 0 ) $sCurrentFolder = '/' . $sCurrentFolder ; - - // Check for invalid folder paths (..) - if ( strpos( $sCurrentFolder, '..' ) ) - SendError( 102, "" ) ; - - // File Upload doesn't have to Return XML, so it must be intercepted before anything. - if ( $sCommand == 'FileUpload' ) - { - FileUpload( $sResourceType, $sCurrentFolder ) ; - return ; - } - - CreateXmlHeader( $sCommand, $sResourceType, $sCurrentFolder ) ; - - // Execute the required command. - switch ( $sCommand ) - { - case 'GetFolders' : - GetFolders( $sResourceType, $sCurrentFolder ) ; - break ; - case 'GetFoldersAndFiles' : - GetFoldersAndFiles( $sResourceType, $sCurrentFolder ) ; - break ; - case 'CreateFolder' : - CreateFolder( $sResourceType, $sCurrentFolder ) ; - break ; - } - - CreateXmlFooter() ; - - exit ; -} -?>- \ No newline at end of file diff --git a/editor/editor/filemanager/browser/default/connectors/php/io.php b/editor/editor/filemanager/browser/default/connectors/php/io.php @@ -1,105 +0,0 @@ -<?php -/* - * FCKeditor - The text editor for Internet - http://www.fckeditor.net - * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * - * == BEGIN LICENSE == - * - * Licensed under the terms of any of the following licenses at your - * choice: - * - * - GNU General Public License Version 2 or later (the "GPL") - * http://www.gnu.org/licenses/gpl.html - * - * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") - * http://www.gnu.org/licenses/lgpl.html - * - * - Mozilla Public License Version 1.1 or later (the "MPL") - * http://www.mozilla.org/MPL/MPL-1.1.html - * - * == END LICENSE == - * - * File Name: io.php - * This is the File Manager Connector for ASP. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - */ - -function GetUrlFromPath( $resourceType, $folderPath ) -{ - if ( $resourceType == '' ) - return RemoveFromEnd( $GLOBALS["UserFilesPath"], '/' ) . $folderPath ; - else - return $GLOBALS["UserFilesPath"] . strtolower( $resourceType ) . $folderPath ; -} - -function RemoveExtension( $fileName ) -{ - return substr( $fileName, 0, strrpos( $fileName, '.' ) ) ; -} - -function ServerMapFolder( $resourceType, $folderPath ) -{ - // Get the resource type directory. - $sResourceTypePath = $GLOBALS["UserFilesDirectory"] . strtolower( $resourceType ) . '/' ; - - // Ensure that the directory exists. - CreateServerFolder( $sResourceTypePath ) ; - - // Return the resource type directory combined with the required path. - return $sResourceTypePath . RemoveFromStart( $folderPath, '/' ) ; -} - -function GetParentFolder( $folderPath ) -{ - $sPattern = "-[/\\\\][^/\\\\]+[/\\\\]?$-" ; - return preg_replace( $sPattern, '', $folderPath ) ; -} - -function CreateServerFolder( $folderPath ) -{ - $sParent = GetParentFolder( $folderPath ) ; - - // Check if the parent exists, or create it. - if ( !file_exists( $sParent ) ) - { - $sErrorMsg = CreateServerFolder( $sParent ) ; - if ( $sErrorMsg != '' ) - return $sErrorMsg ; - } - - if ( !file_exists( $folderPath ) ) - { - // Turn off all error reporting. - error_reporting( 0 ) ; - // Enable error tracking to catch the error. - ini_set( 'track_errors', '1' ) ; - - // To create the folder with 0777 permissions, we need to set umask to zero. - $oldumask = umask(0) ; - mkdir( $folderPath, 0777 ) ; - umask( $oldumask ) ; - - $sErrorMsg = $php_errormsg ; - - // Restore the configurations. - ini_restore( 'track_errors' ) ; - ini_restore( 'error_reporting' ) ; - - return $sErrorMsg ; - } - else - return '' ; -} - -function GetRootPath() -{ - $sRealPath = realpath( './' ) ; - - $sSelfPath = $_SERVER['PHP_SELF'] ; - $sSelfPath = substr( $sSelfPath, 0, strrpos( $sSelfPath, '/' ) ) ; - - return substr( $sRealPath, 0, strlen( $sRealPath ) - strlen( $sSelfPath ) ) ; -} -?>- \ No newline at end of file diff --git a/editor/editor/filemanager/browser/default/connectors/php/util.php b/editor/editor/filemanager/browser/default/connectors/php/util.php @@ -1,45 +0,0 @@ -<?php -/* - * FCKeditor - The text editor for Internet - http://www.fckeditor.net - * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * - * == BEGIN LICENSE == - * - * Licensed under the terms of any of the following licenses at your - * choice: - * - * - GNU General Public License Version 2 or later (the "GPL") - * http://www.gnu.org/licenses/gpl.html - * - * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") - * http://www.gnu.org/licenses/lgpl.html - * - * - Mozilla Public License Version 1.1 or later (the "MPL") - * http://www.mozilla.org/MPL/MPL-1.1.html - * - * == END LICENSE == - * - * File Name: util.php - * Utility functions for the File Manager Connector for PHP. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - */ - -function RemoveFromStart( $sourceString, $charToRemove ) -{ - $sPattern = '|^' . $charToRemove . '+|' ; - return preg_replace( $sPattern, '', $sourceString ) ; -} - -function RemoveFromEnd( $sourceString, $charToRemove ) -{ - $sPattern = '|' . $charToRemove . '+$|' ; - return preg_replace( $sPattern, '', $sourceString ) ; -} - -function ConvertToXmlAttribute( $value ) -{ - return utf8_encode( htmlspecialchars( $value ) ) ; -} -?>- \ No newline at end of file diff --git a/editor/editor/filemanager/browser/default/connectors/test.html b/editor/editor/filemanager/browser/default/connectors/test.html @@ -1,185 +0,0 @@ -<!-- - * FCKeditor - The text editor for Internet - http://www.fckeditor.net - * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * - * == BEGIN LICENSE == - * - * Licensed under the terms of any of the following licenses at your - * choice: - * - * - GNU General Public License Version 2 or later (the "GPL") - * http://www.gnu.org/licenses/gpl.html - * - * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") - * http://www.gnu.org/licenses/lgpl.html - * - * - Mozilla Public License Version 1.1 or later (the "MPL") - * http://www.mozilla.org/MPL/MPL-1.1.html - * - * == END LICENSE == - * - * File Name: test.html - * Test page for the File Browser connectors. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) ---> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> - <title>FCKeditor - Connectors Tests</title> - <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5" /> - <script type="text/javascript"> - -function BuildBaseUrl( command ) -{ - var sUrl = - document.getElementById('cmbConnector').value + - '?Command=' + command + - '&Type=' + document.getElementById('cmbType').value + - '&CurrentFolder=' + document.getElementById('txtFolder').value ; - - return sUrl ; -} - -function SetFrameUrl( url ) -{ - if ( document.all ) - eRunningFrame.document.location = url ; - else - document.getElementById('eRunningFrame').src = url ; - - document.getElementById('eUrl').innerHTML = url ; -} - -function GetFolders() -{ - SetFrameUrl( BuildBaseUrl( 'GetFolders' ) ) ; - return false ; -} - -function GetFoldersAndFiles() -{ - SetFrameUrl( BuildBaseUrl( 'GetFoldersAndFiles' ) ) ; - return false ; -} - -function CreateFolder() -{ - var sFolder = prompt( 'Type the folder name:', 'Test Folder' ) ; - - if ( ! sFolder ) - return false ; - - var sUrl = BuildBaseUrl( 'CreateFolder' ) ; - sUrl += '&NewFolderName=' + encodeURIComponent( sFolder ) ; - - SetFrameUrl( sUrl ) ; - return false ; -} - -function OnUploadCompleted( errorNumber, fileName ) -{ - switch ( errorNumber ) - { - case 0 : - alert( 'File uploaded with no errors' ) ; - break ; - case 201 : - GetFoldersAndFiles() ; - alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ; - break ; - case 202 : - alert( 'Invalid file' ) ; - break ; - default : - alert( 'Error on file upload. Error number: ' + errorNumber ) ; - break ; - } -} - -this.frames.frmUpload = this ; - -function SetAction() -{ - var sUrl = BuildBaseUrl( 'FileUpload' ) ; - document.getElementById('eUrl').innerHTML = sUrl ; - document.getElementById('frmUpload').action = sUrl ; -} - - </script> -</head> -<body> - <table height="100%" cellspacing="0" cellpadding="0" width="100%" border="0"> - <tr> - <td> - <table cellspacing="0" cellpadding="0" border="0"> - <tr> - <td> - Connector:<br /> - <select id="cmbConnector" name="cmbConnector"> - <option value="asp/connector.asp" selected="selected">ASP</option> - <option value="aspx/connector.aspx">ASP.Net</option> - <option value="cfm/connector.cfm">ColdFusion</option> - <option value="lasso/connector.lasso">Lasso</option> - <option value="perl/connector.cgi">Perl</option> - <option value="php/connector.php">PHP</option> - <option value="py/connector.py">Python</option> - </select> - </td> - <td> - &nbsp;&nbsp;&nbsp;</td> - <td> - Current Folder<br /> - <input id="txtFolder" type="text" value="/" name="txtFolder" /></td> - <td> - &nbsp;&nbsp;&nbsp;</td> - <td> - Resource Type<br /> - <select id="cmbType" name="cmbType"> - <option value="File" selected="selected">File</option> - <option value="Image">Image</option> - <option value="Flash">Flash</option> - <option value="Media">Media</option> - <option value="Invalid">Invalid Type (for testing)</option> - </select> - </td> - </tr> - </table> - <br /> - <table cellspacing="0" cellpadding="0" border="0"> - <tr> - <td valign="top"> - <a href="#" onclick="GetFolders();">Get Folders</a></td> - <td> - &nbsp;&nbsp;&nbsp;</td> - <td valign="top"> - <a href="#" onclick="GetFoldersAndFiles();">Get Folders and Files</a></td> - <td> - &nbsp;&nbsp;&nbsp;</td> - <td valign="top"> - <a href="#" onclick="CreateFolder();">Create Folder</a></td> - <td> - &nbsp;&nbsp;&nbsp;</td> - <td valign="top"> - <form id="frmUpload" action="" target="eRunningFrame" method="post" enctype="multipart/form-data"> - File Upload<br /> - <input id="txtFileUpload" type="file" name="NewFile" /> - <input type="submit" value="Upload" onclick="SetAction();" /> - </form> - </td> - </tr> - </table> - <br /> - URL: <span id="eUrl"></span> - </td> - </tr> - <tr> - <td height="100%" valign="top"> - <iframe id="eRunningFrame" src="javascript:void(0)" name="eRunningFrame" width="100%" - height="100%"></iframe> - </td> - </tr> - </table> -</body> -</html> diff --git a/editor/editor/filemanager/browser/default/frmactualfolder.html b/editor/editor/filemanager/browser/default/frmactualfolder.html @@ -1,30 +1,26 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: frmactualfolder.html - * This page shows the actual folder path. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * This page shows the actual folder path. --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <link href="browser.css" type="text/css" rel="stylesheet"> diff --git a/editor/editor/filemanager/browser/default/frmcreatefolder.html b/editor/editor/filemanager/browser/default/frmcreatefolder.html @@ -1,30 +1,26 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: frmcreatefolder.html - * Page used to create new folders in the current folder. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Page used to create new folders in the current folder. --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> @@ -41,11 +37,11 @@ function SetCurrentFolder( resourceType, folderPath ) function CreateFolder() { var sFolderName ; - - while ( true ) + + while ( true ) { sFolderName = prompt( 'Type the name of the new folder:', '' ) ; - + if ( sFolderName == null ) return ; else if ( sFolderName.length == 0 ) @@ -53,7 +49,7 @@ function CreateFolder() else break ; } - + oConnector.SendCommand( 'CreateFolder', 'NewFolderName=' + encodeURIComponent( sFolderName) , CreateFolderCallBack ) ; } @@ -61,12 +57,12 @@ function CreateFolderCallBack( fckXml ) { if ( oConnector.CheckError( fckXml ) == 0 ) window.parent.frames['frmResourcesList'].Refresh() ; - + /* // Get the current folder path. var oNode = fckXml.SelectSingleNode( 'Connector/Error' ) ; var iErrorNumber = parseInt( oNode.attributes.getNamedItem('number').value ) ; - + switch ( iErrorNumber ) { case 0 : diff --git a/editor/editor/filemanager/browser/default/frmfolders.html b/editor/editor/filemanager/browser/default/frmfolders.html @@ -1,31 +1,27 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: frmfolders.html - * This page shows the list of folders available in the parent folder - * of the current folder. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * This page shows the list of folders available in the parent folder + * of the current folder. --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <link href="browser.css" type="text/css" rel="stylesheet"> @@ -44,7 +40,7 @@ oListManager.Init = function() this.Table = document.getElementById('tableFiles') ; this.UpRow = document.getElementById('trUp') ; - this.TableRows = new Object() ; + this.TableRows = new Object() ; } oListManager.Clear = function() @@ -75,14 +71,14 @@ oListManager.AddItem = function( folderName, folderPath ) oCell = oRow.insertCell(-1) ; oCell.noWrap = true ; oCell.innerHTML = '&nbsp;' + sLink + folderName + '</a>' ; - + this.TableRows[ folderPath ] = oRow ; } oListManager.ShowUpFolder = function( upFolderPath ) { this.UpRow.style.display = ( upFolderPath != null ? '' : 'none' ) ; - + if ( upFolderPath != null ) { document.getElementById('linkUpIcon').onclick = document.getElementById('linkUp').onclick = function() @@ -95,8 +91,8 @@ oListManager.ShowUpFolder = function( upFolderPath ) function CheckLoaded() { - if ( window.top.IsLoadedActualFolder - && window.top.IsLoadedCreateFolder + if ( window.top.IsLoadedActualFolder + && window.top.IsLoadedCreateFolder && window.top.IsLoadedUpload && window.top.IsLoadedResourcesList ) { @@ -120,7 +116,7 @@ function OpenFolder( folderPath ) // Change the style for the select row (to show the opened folder). for ( var sFolderPath in oListManager.TableRows ) { - oListManager.TableRows[ sFolderPath ].className = + oListManager.TableRows[ sFolderPath ].className = ( sFolderPath == folderPath ? 'FolderListCurrentFolder' : 'FolderListFolder' ) ; } @@ -128,7 +124,7 @@ function OpenFolder( folderPath ) window.parent.frames['frmActualFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ; window.parent.frames['frmCreateFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ; window.parent.frames['frmUpload'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ; - + // Load the resources list for this folder. window.parent.frames['frmResourcesList'].LoadResources( oConnector.ResourceType, folderPath ) ; } @@ -145,7 +141,7 @@ function LoadFolders( folderPath ) // Show/Hide the Up Folder. oListManager.ShowUpFolder( sParentFolderPath ) ; - + if ( folderPath != '/' ) { sActiveFolder = folderPath ; @@ -160,19 +156,19 @@ function GetFoldersCallBack( fckXml ) { if ( oConnector.CheckError( fckXml ) != 0 ) return ; - + // Get the current folder path. var oNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ; var sCurrentFolderPath = oNode.attributes.getNamedItem('path').value ; - + var oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ; - + for ( var i = 0 ; i < oNodes.length ; i++ ) { var sFolderName = oNodes[i].attributes.getNamedItem('name').value ; - oListManager.AddItem( sFolderName, sCurrentFolderPath + sFolderName + "/" ) ; + oListManager.AddItem( sFolderName, sCurrentFolderPath + sFolderName + '/' ) ; } - + OpenFolder( sActiveFolder ) ; } diff --git a/editor/editor/filemanager/browser/default/frmresourceslist.html b/editor/editor/filemanager/browser/default/frmresourceslist.html @@ -2,28 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: frmresourceslist.html - * This page shows all resources available in a folder in the File Browser. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * This page shows all resources available in a folder in the File Browser. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> @@ -38,42 +34,49 @@ oListManager.Clear = function() document.body.innerHTML = '' ; } +function ProtectPath(path) +{ + path = path.replace( /\\/g, '\\\\') ; + path = path.replace( /'/g, '\\\'') ; + return path ; +} + oListManager.GetFolderRowHtml = function( folderName, folderPath ) { // Build the link to view the folder. - var sLink = '<a href="#" onclick="OpenFolder(\'' + folderPath.replace( /'/g, '\\\'') + '\');return false;">' ; + var sLink = '<a href="#" onclick="OpenFolder(\'' + ProtectPath( folderPath ) + '\');return false;">' ; return '<tr>' + '<td width="16">' + sLink + - '<img alt="" src="images/Folder.gif" width="16" height="16" border="0"></a>' + - '</td><td nowrap colspan="2">&nbsp;' + - sLink + - folderName + - '</a>' + - '</td></tr>' ; + '<img alt="" src="images/Folder.gif" width="16" height="16" border="0"><\/a>' + + '<\/td><td nowrap colspan="2">&nbsp;' + + sLink + + folderName + + '<\/a>' + + '<\/td><\/tr>' ; } oListManager.GetFileRowHtml = function( fileName, fileUrl, fileSize ) { // Build the link to view the folder. - var sLink = '<a href="#" onclick="OpenFile(\'' + fileUrl.replace( /'/g, '\\\'') + '\');return false;">' ; + var sLink = '<a href="#" onclick="OpenFile(\'' + ProtectPath( fileUrl ) + '\');return false;">' ; // Get the file icon. var sIcon = oIcons.GetIcon( fileName ) ; return '<tr>' + '<td width="16">' + - sLink + - '<img alt="" src="images/icons/' + sIcon + '.gif" width="16" height="16" border="0"></a>' + - '</td><td>&nbsp;' + - sLink + - fileName + - '</a>' + - '</td><td align="right" nowrap>&nbsp;' + - fileSize + + sLink + + '<img alt="" src="images/icons/' + sIcon + '.gif" width="16" height="16" border="0"><\/a>' + + '<\/td><td>&nbsp;' + + sLink + + fileName + + '<\/a>' + + '<\/td><td align="right" nowrap>&nbsp;' + + fileSize + ' KB' + - '</td></tr>' ; + '<\/td><\/tr>' ; } function OpenFolder( folderPath ) @@ -84,7 +87,7 @@ function OpenFolder( folderPath ) function OpenFile( fileUrl ) { - window.top.opener.SetUrl( fileUrl ) ; + window.top.opener.SetUrl( encodeURI( fileUrl ) ) ; window.top.close() ; window.top.opener.focus() ; } @@ -111,7 +114,7 @@ function GetFoldersAndFilesCallBack( fckXml ) var oFolderNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ; if ( oFolderNode == null ) { - alert( 'The server didn\'t reply with a proper XML file\r\nCheck your configuration.' ) ; + alert( 'The server didn\'t reply with a proper XML data. Please check your configuration.' ) ; return ; } var sCurrentFolderPath = oFolderNode.attributes.getNamedItem('path').value ; @@ -121,7 +124,7 @@ function GetFoldersAndFilesCallBack( fckXml ) var oHtml = new StringBuilder( '<table id="tableFiles" cellspacing="1" cellpadding="0" width="100%" border="0">' ) ; - // Add the Folders. + // Add the Folders. var oNodes ; oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ; for ( var i = 0 ; i < oNodes.length ; i++ ) @@ -130,7 +133,7 @@ function GetFoldersAndFilesCallBack( fckXml ) oHtml.Append( oListManager.GetFolderRowHtml( sFolderName, sCurrentFolderPath + sFolderName + "/" ) ) ; } - // Add the Files. + // Add the Files. oNodes = fckXml.SelectNodes( 'Connector/Files/File' ) ; for ( var j = 0 ; j < oNodes.length ; j++ ) { @@ -141,12 +144,12 @@ function GetFoldersAndFilesCallBack( fckXml ) // Get the optional "url" attribute. If not available, build the url. var oFileUrlAtt = oNodes[j].attributes.getNamedItem('url') ; var sFileUrl = oFileUrlAtt != null ? oFileUrlAtt.value : sCurrentFolderUrl + sFileName ; - + oHtml.Append( oListManager.GetFileRowHtml( sFileName, sFileUrl, sFileSize ) ) ; } oHtml.Append( '<\/table>' ) ; - + document.body.innerHTML = oHtml.ToString() ; // window.top.document.title = 'Finished processing in ' + ( ( ( new Date() ) - dTimer ) / 1000 ) + ' seconds' ; @@ -159,6 +162,6 @@ window.onload = function() } </script> </head> -<body class="FileArea" bottommargin="10" leftmargin="10" topmargin="10" rightmargin="10"> +<body class="FileArea"> </body> </html> diff --git a/editor/editor/filemanager/browser/default/frmresourcetype.html b/editor/editor/filemanager/browser/default/frmresourcetype.html @@ -1,30 +1,26 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: frmresourcetype.html - * This page shows the list of available resource types. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * This page shows the list of available resource types. --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> diff --git a/editor/editor/filemanager/browser/default/frmupload.html b/editor/editor/filemanager/browser/default/frmupload.html @@ -2,31 +2,28 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: frmupload.html - * Page used to upload new files in the current folder. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Page used to upload new files in the current folder. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> + <title>File Upload</title> <link href="browser.css" type="text/css" rel="stylesheet" /> <script type="text/javascript" src="js/common.js"></script> <script type="text/javascript"> @@ -36,7 +33,7 @@ function SetCurrentFolder( resourceType, folderPath ) var sUrl = oConnector.ConnectorUrl + 'Command=FileUpload' ; sUrl += '&Type=' + resourceType ; sUrl += '&CurrentFolder=' + encodeURIComponent( folderPath ) ; - + document.getElementById('frmUpload').action = sUrl ; } @@ -51,7 +48,7 @@ function OnSubmit() // Set the interface elements. document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder (Upload in progress, please wait...)' ; document.getElementById('btnUpload').disabled = true ; - + return true ; } @@ -59,17 +56,17 @@ function OnUploadCompleted( errorNumber, data ) { // Reset the Upload Worker Frame. window.parent.frames['frmUploadWorker'].location = 'javascript:void(0)' ; - - // Reset the upload form (On IE we must do a little trick to avout problems). + + // Reset the upload form (On IE we must do a little trick to avoid problems). if ( document.all ) document.getElementById('NewFile').outerHTML = '<input id="NewFile" name="NewFile" style="WIDTH: 100%" type="file">' ; else document.getElementById('frmUpload').reset() ; - + // Reset the interface elements. document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder' ; document.getElementById('btnUpload').disabled = false ; - + switch ( errorNumber ) { case 0 : diff --git a/editor/editor/filemanager/browser/default/images/icons/32/png.gif b/editor/editor/filemanager/browser/default/images/icons/32/png.gif Binary files differ. diff --git a/editor/editor/filemanager/browser/default/images/icons/png.gif b/editor/editor/filemanager/browser/default/images/icons/png.gif Binary files differ. diff --git a/editor/editor/filemanager/browser/default/js/common.js b/editor/editor/filemanager/browser/default/js/common.js @@ -1,29 +1,25 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: common.js - * Common objects and functions shared by all pages that compose the - * File Browser dialog window. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Common objects and functions shared by all pages that compose the + * File Browser dialog window. */ function AddSelectOption( selectElement, optionText, optionValue ) @@ -31,7 +27,7 @@ function AddSelectOption( selectElement, optionText, optionValue ) var oOption = document.createElement("OPTION") ; oOption.text = optionText ; - oOption.value = optionValue ; + oOption.value = optionValue ; selectElement.options.add(oOption) ; diff --git a/editor/editor/filemanager/browser/default/js/fckxml.js b/editor/editor/filemanager/browser/default/js/fckxml.js @@ -1,31 +1,28 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fckxml.js - * Defines the FCKXml object that is used for XML data calls - * and XML processing. - * This script is shared by almost all pages that compose the - * File Browser frameset. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Defines the FCKXml object that is used for XML data calls + * and XML processing. + * + * This script is shared by almost all pages that compose the + * File Browser frameset. */ var FCKXml = function() @@ -38,7 +35,7 @@ FCKXml.prototype.GetHttpRequest = function() return new XMLHttpRequest() ; // IE6 - try { return new ActiveXObject( 'Msxml2.XMLHTTP' ) ; } + try { return new ActiveXObject( 'Msxml2.XMLHTTP' ) ; } catch(e) {} // IE5 @@ -55,33 +52,32 @@ FCKXml.prototype.LoadUrl = function( urlToCall, asyncFunctionPointer ) var bAsync = ( typeof(asyncFunctionPointer) == 'function' ) ; var oXmlHttp = this.GetHttpRequest() ; - + oXmlHttp.open( "GET", urlToCall, bAsync ) ; if ( bAsync ) - { - oXmlHttp.onreadystatechange = function() + { + oXmlHttp.onreadystatechange = function() { if ( oXmlHttp.readyState == 4 ) { - if ( oXmlHttp.responseXML == null || oXmlHttp.responseXML.firstChild == null) + if ( ( oXmlHttp.status != 200 && oXmlHttp.status != 304 ) || oXmlHttp.responseXML == null || oXmlHttp.responseXML.firstChild == null ) { - alert( 'The server didn\'t send back a proper XML response.\r\n\r\n' + - 'Requested URL: ' + urlToCall + '\r\n' + - 'Response text:\r\n' + oXmlHttp.responseText ) ; + alert( 'The server didn\'t send back a proper XML response. Please contact your system administrator.\n\n' + + 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')\n\n' + + 'Requested URL:\n' + urlToCall + '\n\n' + + 'Response text:\n' + oXmlHttp.responseText ) ; return ; } + oFCKXml.DOMDocument = oXmlHttp.responseXML ; - if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 ) - asyncFunctionPointer( oFCKXml ) ; - else - alert( 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')' ) ; + asyncFunctionPointer( oFCKXml ) ; } } } - + oXmlHttp.send( null ) ; - + if ( ! bAsync ) { if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 ) @@ -101,9 +97,9 @@ FCKXml.prototype.SelectNodes = function( xpath ) { var aNodeArray = new Array(); - var xPathResult = this.DOMDocument.evaluate( xpath, this.DOMDocument, + var xPathResult = this.DOMDocument.evaluate( xpath, this.DOMDocument, this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), XPathResult.ORDERED_NODE_ITERATOR_TYPE, null) ; - if ( xPathResult ) + if ( xPathResult ) { var oNode = xPathResult.iterateNext() ; while( oNode ) @@ -111,12 +107,12 @@ FCKXml.prototype.SelectNodes = function( xpath ) aNodeArray[aNodeArray.length] = oNode ; oNode = xPathResult.iterateNext(); } - } + } return aNodeArray ; } } -FCKXml.prototype.SelectSingleNode = function( xpath ) +FCKXml.prototype.SelectSingleNode = function( xpath ) { if ( navigator.userAgent.indexOf('MSIE') >= 0 ) // IE return this.DOMDocument.selectSingleNode( xpath ) ; @@ -127,7 +123,7 @@ FCKXml.prototype.SelectSingleNode = function( xpath ) if ( xPathResult && xPathResult.singleNodeValue ) return xPathResult.singleNodeValue ; - else + else return null ; } } diff --git a/editor/editor/filemanager/upload/php/config.php b/editor/editor/filemanager/upload/php/config.php @@ -1,60 +0,0 @@ -<?php -/* - * FCKeditor - The text editor for Internet - http://www.fckeditor.net - * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * - * == BEGIN LICENSE == - * - * Licensed under the terms of any of the following licenses at your - * choice: - * - * - GNU General Public License Version 2 or later (the "GPL") - * http://www.gnu.org/licenses/gpl.html - * - * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") - * http://www.gnu.org/licenses/lgpl.html - * - * - Mozilla Public License Version 1.1 or later (the "MPL") - * http://www.mozilla.org/MPL/MPL-1.1.html - * - * == END LICENSE == - * - * File Name: config.php - * Configuration file for the PHP File Uploader. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - */ - -global $Config ; - -// SECURITY: You must explicitelly enable this "uploader". -$Config['Enabled'] = false ; - -// Set if the file type must be considere in the target path. -// Ex: /userfiles/image/ or /userfiles/file/ -$Config['UseFileType'] = false ; - -// Path to uploaded files relative to the document root. -$Config['UserFilesPath'] = '/userfiles/' ; - -// Fill the following value it you prefer to specify the absolute path for the -// user files directory. Usefull if you are using a virtual directory, symbolic -// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'. -// Attention: The above 'UserFilesPath' must point to the same directory. -$Config['UserFilesAbsolutePath'] = '' ; - -// Due to security issues with Apache modules, it is reccomended to leave the -// following setting enabled. -$Config['ForceSingleExtension'] = true ; - -$Config['AllowedExtensions']['File'] = array() ; -$Config['DeniedExtensions']['File'] = array('html','htm','php','php2','php3','php4','php5','phtml','pwml','inc','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','com','dll','vbs','js','reg','cgi','htaccess','asis') ; - -$Config['AllowedExtensions']['Image'] = array('jpg','gif','jpeg','png') ; -$Config['DeniedExtensions']['Image'] = array() ; - -$Config['AllowedExtensions']['Flash'] = array('swf','fla') ; -$Config['DeniedExtensions']['Flash'] = array() ; - -?>- \ No newline at end of file diff --git a/editor/editor/filemanager/upload/php/upload.php b/editor/editor/filemanager/upload/php/upload.php @@ -1,128 +0,0 @@ -<?php -/* - * FCKeditor - The text editor for Internet - http://www.fckeditor.net - * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * - * == BEGIN LICENSE == - * - * Licensed under the terms of any of the following licenses at your - * choice: - * - * - GNU General Public License Version 2 or later (the "GPL") - * http://www.gnu.org/licenses/gpl.html - * - * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") - * http://www.gnu.org/licenses/lgpl.html - * - * - Mozilla Public License Version 1.1 or later (the "MPL") - * http://www.mozilla.org/MPL/MPL-1.1.html - * - * == END LICENSE == - * - * File Name: upload.php - * This is the "File Uploader" for PHP. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - */ - -require('config.php') ; -require('util.php') ; - -// This is the function that sends the results of the uploading process. -function SendResults( $errorNumber, $fileUrl = '', $fileName = '', $customMsg = '' ) -{ - echo '<script type="text/javascript">' ; - echo 'window.parent.OnUploadCompleted(' . $errorNumber . ',"' . str_replace( '"', '\\"', $fileUrl ) . '","' . str_replace( '"', '\\"', $fileName ) . '", "' . str_replace( '"', '\\"', $customMsg ) . '") ;' ; - echo '</script>' ; - exit ; -} - -// Check if this uploader has been enabled. -if ( !$Config['Enabled'] ) - SendResults( '1', '', '', 'This file uploader is disabled. Please check the "editor/filemanager/upload/php/config.php" file' ) ; - -// Check if the file has been correctly uploaded. -if ( !isset( $_FILES['NewFile'] ) || is_null( $_FILES['NewFile']['tmp_name'] ) || $_FILES['NewFile']['name'] == '' ) - SendResults( '202' ) ; - -// Get the posted file. -$oFile = $_FILES['NewFile'] ; - -// Get the uploaded file name extension. -$sFileName = $oFile['name'] ; - -// Replace dots in the name with underscores (only one dot can be there... security issue). -if ( $Config['ForceSingleExtension'] ) - $sFileName = preg_replace( '/\\.(?![^.]*$)/', '_', $sFileName ) ; - -$sOriginalFileName = $sFileName ; - -// Get the extension. -$sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ; -$sExtension = strtolower( $sExtension ) ; - -// The the file type (from the QueryString, by default 'File'). -$sType = isset( $_GET['Type'] ) ? $_GET['Type'] : 'File' ; - -// Check if it is an allowed type. -if ( !in_array( $sType, array('File','Image','Flash','Media') ) ) - SendResults( 1, '', '', 'Invalid type specified' ) ; - -// Get the allowed and denied extensions arrays. -$arAllowed = $Config['AllowedExtensions'][$sType] ; -$arDenied = $Config['DeniedExtensions'][$sType] ; - -// Check if it is an allowed extension. -if ( ( count($arAllowed) > 0 && !in_array( $sExtension, $arAllowed ) ) || ( count($arDenied) > 0 && in_array( $sExtension, $arDenied ) ) ) - SendResults( '202' ) ; - -$sErrorNumber = '0' ; -$sFileUrl = '' ; - -// Initializes the counter used to rename the file, if another one with the same name already exists. -$iCounter = 0 ; - -// Get the target directory. -if ( isset( $Config['UserFilesAbsolutePath'] ) && strlen( $Config['UserFilesAbsolutePath'] ) > 0 ) - $sServerDir = $Config['UserFilesAbsolutePath'] ; -else - $sServerDir = GetRootPath() . $Config["UserFilesPath"] ; - -if ( $Config['UseFileType'] ) - $sServerDir .= $sType . '/' ; - -while ( true ) -{ - // Compose the file path. - $sFilePath = $sServerDir . $sFileName ; - - // If a file with that name already exists. - if ( is_file( $sFilePath ) ) - { - $iCounter++ ; - $sFileName = RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ; - $sErrorNumber = '201' ; - } - else - { - move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ; - - if ( is_file( $sFilePath ) ) - { - $oldumask = umask(0) ; - chmod( $sFilePath, 0777 ) ; - umask( $oldumask ) ; - } - - if ( $Config['UseFileType'] ) - $sFileUrl = $Config["UserFilesPath"] . $sType . '/' . $sFileName ; - else - $sFileUrl = $Config["UserFilesPath"] . $sFileName ; - - break ; - } -} - -SendResults( $sErrorNumber, $sFileUrl, $sFileName ) ; -?>- \ No newline at end of file diff --git a/editor/editor/filemanager/upload/php/util.php b/editor/editor/filemanager/upload/php/util.php @@ -1,44 +0,0 @@ -<?php -/* - * FCKeditor - The text editor for Internet - http://www.fckeditor.net - * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * - * == BEGIN LICENSE == - * - * Licensed under the terms of any of the following licenses at your - * choice: - * - * - GNU General Public License Version 2 or later (the "GPL") - * http://www.gnu.org/licenses/gpl.html - * - * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") - * http://www.gnu.org/licenses/lgpl.html - * - * - Mozilla Public License Version 1.1 or later (the "MPL") - * http://www.mozilla.org/MPL/MPL-1.1.html - * - * == END LICENSE == - * - * File Name: util.php - * This is the File Manager Connector for ASP. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - */ - -function RemoveExtension( $fileName ) -{ - return substr( $fileName, 0, strrpos( $fileName, '.' ) ) ; -} - -function GetRootPath() -{ - $sRealPath = realpath( './' ) ; - - $sSelfPath = $_SERVER['PHP_SELF'] ; - $sSelfPath = substr( $sSelfPath, 0, strrpos( $sSelfPath, '/' ) ) ; - - return substr( $sRealPath, 0, strlen( $sRealPath ) - strlen( $sSelfPath ) ) ; -} - -?>- \ No newline at end of file diff --git a/editor/editor/filemanager/upload/test.html b/editor/editor/filemanager/upload/test.html @@ -1,137 +0,0 @@ -<!-- - * FCKeditor - The text editor for Internet - http://www.fckeditor.net - * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * - * == BEGIN LICENSE == - * - * Licensed under the terms of any of the following licenses at your - * choice: - * - * - GNU General Public License Version 2 or later (the "GPL") - * http://www.gnu.org/licenses/gpl.html - * - * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") - * http://www.gnu.org/licenses/lgpl.html - * - * - Mozilla Public License Version 1.1 or later (the "MPL") - * http://www.mozilla.org/MPL/MPL-1.1.html - * - * == END LICENSE == - * - * File Name: test.html - * Test page for the "File Uploaders". - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) ---> -<html> - <head> - <title>FCKeditor - Uploaders Tests</title> - <script language="javascript"> - -function SendFile() -{ - var sUploaderUrl = cmbUploaderUrl.value ; - - if ( sUploaderUrl.length == 0 ) - sUploaderUrl = txtCustomUrl.value ; - - if ( sUploaderUrl.length == 0 ) - { - alert( 'Please provide your custom URL or select a default one' ) ; - return ; - } - - eURL.innerHTML = sUploaderUrl ; - txtUrl.value = '' ; - - frmUpload.action = sUploaderUrl ; - frmUpload.submit() ; -} - -function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg ) -{ - switch ( errorNumber ) - { - case 0 : // No errors - txtUrl.value = fileUrl ; - alert( 'File uploaded with no errors' ) ; - break ; - case 1 : // Custom error - alert( customMsg ) ; - break ; - case 10 : // Custom warning - txtUrl.value = fileUrl ; - alert( customMsg ) ; - break ; - case 201 : - txtUrl.value = fileUrl ; - alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ; - break ; - case 202 : - alert( 'Invalid file' ) ; - break ; - case 203 : - alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ; - break ; - default : - alert( 'Error on file upload. Error number: ' + errorNumber ) ; - break ; - } -} - - </script> - </head> - <body> - <table cellSpacing="0" cellPadding="0" width="100%" border="0" height="100%"> - <tr> - <td> - <table cellSpacing="0" cellPadding="0" width="100%" border="0"> - <tr> - <td nowrap> - Select the "File Uploader" to use:<br> - <select id="cmbUploaderUrl"> - <option selected value="asp/upload.asp">ASP</option> - <option value="aspx/upload.aspx">ASP.Net</option> - <option value="cfm/upload.cfm">ColdFusion</option> - <option value="lasso/upload.lasso">Lasso</option> - <option value="php/upload.php">PHP</option> - <option value="">(Custom)</option> - </select> - </td> - <td nowrap>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td> - <td width="100%"> - Custom Uploader URL:<BR> - <input id="txtCustomUrl" style="WIDTH: 100%; BACKGROUND-COLOR: #dcdcdc" disabled type="text"> - </td> - </tr> - </table> - <br> - <table cellSpacing="0" cellPadding="0" width="100%" border="0"> - <tr> - <td noWrap> - <form id="frmUpload" target="UploadWindow" enctype="multipart/form-data" action="" method="post"> - Upload a new file:<br> - <input type="file" name="NewFile"><br> - <input type="button" value="Send it to the Server" onclick="SendFile();"> - </form> - </td> - <td style="WIDTH: 16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td> - <td vAlign="top" width="100%"> - Uploaded File URL:<br> - <INPUT id="txtUrl" style="WIDTH: 100%" readonly type="text"> - </td> - </tr> - </table> - <br> - Post URL: <span id="eURL">&nbsp;</span> - </td> - </tr> - <tr> - <td height="100%"> - <iframe name="UploadWindow" width="100%" height="100%" src="javascript:void(0)"></iframe> - </td> - </tr> - </table> - </body> -</html> diff --git a/editor/editor/js/fckeditorcode_gecko.js b/editor/editor/js/fckeditorcode_gecko.js @@ -17,80 +17,92 @@ * http://www.mozilla.org/MPL/MPL-1.1.html * * == END LICENSE == - * - * This file has been compacted for better loading performance. + * + * This file has been compressed for better performance. The original source + * can be found at "editor/_source". */ - -var FCK_STATUS_NOTLOADED=window.parent.FCK_STATUS_NOTLOADED=0;var FCK_STATUS_ACTIVE=window.parent.FCK_STATUS_ACTIVE=1;var FCK_STATUS_COMPLETE=window.parent.FCK_STATUS_COMPLETE=2;var FCK_TRISTATE_OFF=window.parent.FCK_TRISTATE_OFF=0;var FCK_TRISTATE_ON=window.parent.FCK_TRISTATE_ON=1;var FCK_TRISTATE_DISABLED=window.parent.FCK_TRISTATE_DISABLED=-1;var FCK_UNKNOWN=window.parent.FCK_UNKNOWN=-9;var FCK_TOOLBARITEM_ONLYICON=window.parent.FCK_TOOLBARITEM_ONLYICON=0;var FCK_TOOLBARITEM_ONLYTEXT=window.parent.FCK_TOOLBARITEM_ONLYTEXT=1;var FCK_TOOLBARITEM_ICONTEXT=window.parent.FCK_TOOLBARITEM_ICONTEXT=2;var FCK_EDITMODE_WYSIWYG=window.parent.FCK_EDITMODE_WYSIWYG=0;var FCK_EDITMODE_SOURCE=window.parent.FCK_EDITMODE_SOURCE=1;var FCK_IMAGES_PATH='images/';var FCK_SPACER_PATH='images/spacer.gif';var CTRL=1000;var SHIFT=2000;var ALT=4000; -String.prototype.Contains=function(A){return (this.indexOf(A)>-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&&A[0].pop) A=A[0];for (var i=0;i<A.length;i++){if (this==A[i]) return true;};return false;};String.prototype.IEquals=function(){var A=this.toUpperCase();var B=arguments;if (B.length==1&&B[0].pop) B=B[0];for (var i=0;i<B.length;i++){if (A==B[i].toUpperCase()) return true;};return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i<A.length;i++){C=C.replace(A[i],B[i]);};return C;};Array.prototype.AddItem=function(A){var i=this.length;this[i]=A;return i;};Array.prototype.IndexOf=function(A){for (var i=0;i<this.length;i++){if (this[i]==A) return i;};return-1;};String.prototype.StartsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.EndsWith=function(A,B){var C=this.length;var D=A.length;if (D>C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A>0) s=this.substring(0,A);if (A+B<this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.Trim=function(){return this.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,'');};String.prototype.LTrim=function(){return this.replace(/^[ \t\n\r]*/g,'');};String.prototype.RTrim=function(){return this.replace(/[ \t\n\r]*$/g,'');};String.prototype.ReplaceNewLineChars=function(A){return this.replace(/\n/g,A);} -var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:s.Contains('msie'),IsIE7:s.Contains('msie 7'),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains('safari'),IsOpera:s.Contains('opera'),IsMac:s.Contains('macintosh')};(function(A){A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/gecko\/(\d+)/)[1];A.IsGecko10=B<20051111;}else A.IsGecko10=false;})(FCKBrowserInfo); + +var FCK_STATUS_NOTLOADED=window.parent.FCK_STATUS_NOTLOADED=0;var FCK_STATUS_ACTIVE=window.parent.FCK_STATUS_ACTIVE=1;var FCK_STATUS_COMPLETE=window.parent.FCK_STATUS_COMPLETE=2;var FCK_TRISTATE_OFF=window.parent.FCK_TRISTATE_OFF=0;var FCK_TRISTATE_ON=window.parent.FCK_TRISTATE_ON=1;var FCK_TRISTATE_DISABLED=window.parent.FCK_TRISTATE_DISABLED=-1;var FCK_UNKNOWN=window.parent.FCK_UNKNOWN=-9;var FCK_TOOLBARITEM_ONLYICON=window.parent.FCK_TOOLBARITEM_ONLYICON=0;var FCK_TOOLBARITEM_ONLYTEXT=window.parent.FCK_TOOLBARITEM_ONLYTEXT=1;var FCK_TOOLBARITEM_ICONTEXT=window.parent.FCK_TOOLBARITEM_ICONTEXT=2;var FCK_EDITMODE_WYSIWYG=window.parent.FCK_EDITMODE_WYSIWYG=0;var FCK_EDITMODE_SOURCE=window.parent.FCK_EDITMODE_SOURCE=1;var FCK_IMAGES_PATH='images/';var FCK_SPACER_PATH='images/spacer.gif';var CTRL=1000;var SHIFT=2000;var ALT=4000;var FCK_STYLE_BLOCK=0;var FCK_STYLE_INLINE=1;var FCK_STYLE_OBJECT=2; +String.prototype.Contains=function(A){return (this.indexOf(A)>-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&&A[0].pop) A=A[0];for (var i=0;i<A.length;i++){if (this==A[i]) return true;};return false;};String.prototype.IEquals=function(){var A=this.toUpperCase();var B=arguments;if (B.length==1&&B[0].pop) B=B[0];for (var i=0;i<B.length;i++){if (A==B[i].toUpperCase()) return true;};return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i<A.length;i++){C=C.replace(A[i],B[i]);};return C;};String.prototype.StartsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.EndsWith=function(A,B){var C=this.length;var D=A.length;if (D>C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A>0) s=this.substring(0,A);if (A+B<this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.Trim=function(){return this.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,'');};String.prototype.LTrim=function(){return this.replace(/^[ \t\n\r]*/g,'');};String.prototype.RTrim=function(){return this.replace(/[ \t\n\r]*$/g,'');};String.prototype.ReplaceNewLineChars=function(A){return this.replace(/\n/g,A);};String.prototype.Replace=function(A,B,C){if (typeof B=='function'){return this.replace(A,function(){return B.apply(C||this,arguments);});}else return this.replace(A,B);};Array.prototype.AddItem=function(A){var i=this.length;this[i]=A;return i;};Array.prototype.IndexOf=function(A){for (var i=0;i<this.length;i++){if (this[i]==A) return i;};return-1;}; +var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:/*@cc_on!@*/false,IsIE7:/*@cc_on!@*/false&&s.Contains('msie 7'),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains(' applewebkit/'),IsOpera:!!window.opera,IsMac:s.Contains('macintosh')};(function(A){A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/gecko\/(\d+)/)[1];A.IsGecko10=((B<20051111)||(/rv:1\.7/.test(s)));A.IsGecko19=/rv:1\.9/.test(s);}else A.IsGecko10=false;})(FCKBrowserInfo); var FCKURLParams={};(function(){var A=document.location.search.substr(1).split('&');for (var i=0;i<A.length;i++){var B=A[i].split('=');var C=decodeURIComponent(B[0]);var D=decodeURIComponent(B[1]);FCKURLParams[C]=D;}})(); -var FCKEvents=function(A){this.Owner=A;this._RegisteredEvents={};};FCKEvents.prototype.AttachEvent=function(A,B){var C;if (!(C=this._RegisteredEvents[A])) this._RegisteredEvents[A]=[B];else C.push(B);};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this._RegisteredEvents[A];if (D){for (var i=0;i<D.length;i++) C=(D[i](this.Owner,B)&&C);};return C;}; -var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){return (this.StartupValue!=this.EditorDocument.body.innerHTML);},ResetIsDirty:function(){if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length>0?'<base href="'+FCKConfig.BaseHref+'" _fcktemp="true"></base>':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86/*V*/) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45/*INS*/) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=false;this.SetHTML(this.GetLinkedFieldValue());},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&&A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:if (!FCKListsLib.BlockElements[D.nodeName.toLowerCase()]) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;};if (F){var G=D.parentNode;if (!E) E=G.insertBefore(B.createElement(A),D);E.appendChild(G.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetXHTML:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B;var C=FCK.EditorDocument;if (!C) return null;if (FCKConfig.FullPage) B=FCKXHtml.GetXHTML(C.getElementsByTagName('html')[0],true,A);else{if (FCKConfig.IgnoreEmptyParagraphValue&&C.body.innerHTML=='<P>&nbsp;</P>') B='';else B=FCKXHtml.GetXHTML(C.body,false,A);};B=FCK.ProtectEventsRestore(B);if (FCKBrowserInfo.IsIE) B=B.replace(FCKRegexLib.ToReplace,'$1');if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) B=FCK.DocTypeDeclaration+'\n'+B;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) B=FCK.XmlDeclaration+'\n'+B;return FCKConfig.ProtectedSource.Revert(B);},UpdateLinkedField:function(){FCK.LinkedField.value=FCK.GetXHTML(FCKConfig.FormatOutput);FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);},RegisterDoubleClickHandler:function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;},OnAfterSetHTML:function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');},ProtectUrls:function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$1$4$2$3$5$2 _fcksavedurl=$2$3$5$2');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$1$4$2$3$5$2 _fcksavedurl=$2$3$5$2');return A;},ProtectEvents:function(A){return A.replace(FCKRegexLib.TagsWithEvent,_FCK_ProtectEvents_ReplaceTags);},ProtectEventsRestore:function(A){return A.replace(FCKRegexLib.ProtectedEvents,_FCK_ProtectEvents_RestoreEvents);},ProtectTags:function(A){var B='META';if (FCKConfig.ProtectedTags.length>0) B+='|'+FCKConfig.ProtectedTags;if (FCKBrowserInfo.IsIE) B+='|ABBR';var C=new RegExp('<('+B+')([ \>])','gi');A=A.replace(C,'<FCK:$1$2');C=new RegExp('<\/('+B+')>','gi');A=A.replace(C,'<\/FCK:$1>');return A;},SetHTML:function(A){this.EditingArea.Mode=FCK.EditMode;if (FCK.EditMode==0){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCKBrowserInfo.IsGecko){A=A.replace(FCKRegexLib.StrongOpener,'<b$1');A=A.replace(FCKRegexLib.StrongCloser,'<\/b>');A=A.replace(FCKRegexLib.EmOpener,'<i$1');A=A.replace(FCKRegexLib.EmCloser,'<\/i>');};var B='';if (FCKConfig.FullPage){if (!FCKRegexLib.HeadOpener.test(A)){if (!FCKRegexLib.HtmlOpener.test(A)) A='<html dir="'+FCKConfig.ContentLangDirection+'">'+A+'</html>';A=A.replace(FCKRegexLib.HtmlOpener,'$&<head></head>');};FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (FCKBrowserInfo.IsIE) B=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) B='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';B+='<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';B=A.replace(FCKRegexLib.HeadCloser,B+'$&');if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) B=B.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);}else{B=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"';if (FCKBrowserInfo.IsIE&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) B+=' style="overflow-y: scroll"';B+='><head><title></title>'+_FCK_GetEditorAreaStyleTags()+'<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';if (FCKBrowserInfo.IsIE) B+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) B+='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';B+=FCK.TempBaseTag;var C='<body';if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) C+=' id="'+FCKConfig.BodyId+'"';if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) C+=' class="'+FCKConfig.BodyClass+'"';B+='</head>'+C+'>';if (FCKBrowserInfo.IsGecko&&(A.length==0||FCKRegexLib.EmptyParagraph.test(A))) B+=GECKO_BOGUS;else B+=A;B+='</body></html>';};this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(B);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},HasFocus:false,RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C){FCKUndo.SaveUndoStep();if (!C&&FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else return FCK.EditorDocument.queryCommandState(A)?1:0;}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A=FCKConfig.ScreenWidth*0.8;var B=FCKConfig.ScreenHeight*0.7;var C=(FCKConfig.ScreenWidth-A)/2;var D=window.open('',null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+A+',height='+B+',left='+C);var E;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) E=FCK.TempBaseTag+FCK.GetXHTML();else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body>'+FCK.GetXHTML()+'</body></html>';};D.document.write(E);D.document.close();},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C;if (B){if (!A&&FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();C=FCK.GetXHTML(FCKConfig.FormatSource);if (C==null) return false;}else C=this.EditingArea.Textarea.value;FCK.EditMode=B?1:0;FCK.SetHTML(C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},CreateElement:function(A){var e=FCK.EditorDocument.createElement(A);return FCK.InsertElementAndGetIt(e);},InsertElementAndGetIt:function(e){e.setAttribute('FCKTempLabel','true');this.InsertElement(e);var A=FCK.EditorDocument.getElementsByTagName(e.tagName);for (var i=0;i<A.length;i++){if (A[i].getAttribute('FCKTempLabel')){A[i].removeAttribute('FCKTempLabel');return A[i];}};return null;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt="'+A.ReplaceAll([/&/g,/'/g,/"/g,/=/g,/</g,/>/g,/\r/g,/\n/g],['&apos;','&#39;','&quot;','&#61;','&lt;','&gt;','&#10;','&#13;'])+'"';};function _FCK_ProtectEvents_RestoreEvents(A,B){return B.ReplaceAll([/&#39;/g,/&quot;/g,/&#61;/g,/&lt;/g,/&gt;/g,/&#10;/g,/&#13;/g,/&apos;/g],["'",'"','=','<','>','\r','\n','&']);};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();if (!FCKConfig.DisableEnterKeyHandler) FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);FCK.OnAfterSetHTML();if (FCK.Status!=0) return;FCK.ResetIsDirty();FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){var A='';var B=FCKConfig.EditorAreaCSS;for (var i=0;i<B.length;i++) A+='<link href="'+B[i]+'" rel="stylesheet" type="text/css" />';return A;};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){if (B=='Paste') return!FCK.Events.FireEvent('OnPaste');}else{if (B.Equals('Paste','Undo','Redo','SelectAll')) return false;};var C=FCK.Commands.GetCommand(B);return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&&B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i<this.Elements.length) this.Elements[i++]==null;this.Elements.length=0;}};var FCKFocusManager=FCK.FocusManager={IsLocked:false,AddWindow:function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);},RemoveWindow:function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);},Lock:function(){this.IsLocked=true;},Unlock:function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;},_ResetTimer:function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&&FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent("OnBlur");}};function FCKFocusManager_Win_OnFocus_Area(){FCK.Focus();FCKFocusManager_Win_OnFocus();};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}}; -FCK.Description="FCKeditor for Gecko Browsers";FCK.InitializeBehaviors=function(){if (FCKBrowserInfo.IsGecko) Window_OnResize();FCKFocusManager.AddWindow(this.EditorWindow);this.ExecOnSelectionChange=function(){FCK.Events.FireEvent("OnSelectionChange");};this.ExecOnSelectionChangeTimer=function(){if (FCK.LastOnChangeTimer) window.clearTimeout(FCK.LastOnChangeTimer);FCK.LastOnChangeTimer=window.setTimeout(FCK.ExecOnSelectionChange,100);};this.EditorDocument.addEventListener('mouseup',this.ExecOnSelectionChange,false);this.EditorDocument.addEventListener('keyup',this.ExecOnSelectionChangeTimer,false);this._DblClickListener=function(e){FCK.OnDoubleClick(e.target);e.stopPropagation();};this.EditorDocument.addEventListener('dblclick',this._DblClickListener,true);FCK.ContextMenu._InnerContextMenu.SetMouseClickWindow(FCK.EditorWindow);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument);};FCK.MakeEditable=function(){this.EditingArea.MakeEditable();};function Document_OnContextMenu(e){if (!e.target._FCKShowContextMenu) e.preventDefault();};document.oncontextmenu=Document_OnContextMenu;FCK._BaseGetNamedCommandState=FCK.GetNamedCommandState;FCK.GetNamedCommandState=function(A){switch (A){case 'Unlink':return FCKSelection.HasAncestorNode('A')?0:-1;default:return FCK._BaseGetNamedCommandState(A);}};FCK.RedirectNamedCommands={Print:true,Paste:true,Cut:true,Copy:true};FCK.ExecuteRedirectedNamedCommand=function(A,B){switch (A){case 'Print':FCK.EditorWindow.print();break;case 'Paste':try { if (FCK.Paste()) FCK.ExecuteNamedCommand('Paste',null,true);}catch (e) { alert(FCKLang.PasteErrorPaste);};break;case 'Cut':try { FCK.ExecuteNamedCommand('Cut',null,true);}catch (e) { alert(FCKLang.PasteErrorCut);};break;case 'Copy':try { FCK.ExecuteNamedCommand('Copy',null,true);}catch (e) { alert(FCKLang.PasteErrorCopy);};break;default:FCK.ExecuteNamedCommand(A,B);}};FCK.AttachToOnSelectionChange=function(A){this.Events.AttachEvent('OnSelectionChange',A);};FCK.Paste=function(){if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};return true;};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectUrls(A);var B=FCKSelection.Delete();var C=B.getRangeAt(0);var D=C.createContextualFragment(A);var E=D.lastChild;C.insertNode(D);FCKSelection.SelectNode(E);FCKSelection.Collapse(false);this.Focus();};FCK.InsertElement=function(A){var B=FCKSelection.Delete();var C=B.getRangeAt(0);C.insertNode(A);FCKSelection.SelectNode(A);FCKSelection.Collapse(false);this.Focus();};FCK.PasteAsPlainText=function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText');};FCK.GetClipboardHTML=function(){return '';};FCK.CreateLink=function(A){FCK.ExecuteNamedCommand('Unlink');if (A.length>0){var B='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',B);var C=this.EditorDocument.evaluate("//a[@href='"+B+"']",this.EditorDocument.body,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;if (C){C.href=A;return C;}};return null;}; -var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi, '/');FCKConfig.BasePath='file://'+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;}else{FCKConfig.BasePath=document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=document.location.protocol+'//'+document.location.host+FCKConfig.BasePath;};FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig={};var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&');for (var i=0;i<B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=decodeURIComponent(C[0]);var E=decodeURIComponent(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()=="true") this.PageConfig[D]=true;else if (E.toLowerCase()=="false") this.PageConfig[D]=false;else if (E.length>0&&!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) {/*Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error).*/}};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';if (typeof(A.EditorAreaCSS)=='string') A.EditorAreaCSS=[A.EditorAreaCSS];var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;else if (typeof(B)=='string') A.ToolbarComboPreviewCSS=[B];};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource.RegexEntries=[/<!--[\s\S]*?-->/g,/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){function _Replace(protectedSource){var B=FCKTempBin.AddElement(protectedSource);return '<!--{PS..'+B+'}-->';};for (var i=0;i<this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};return A.replace(/(<|&lt;)!--\{PS..(\d+)\}--(>|&gt;)/g,_Replace);} +var FCKEvents=function(A){this.Owner=A;this._RegisteredEvents={};};FCKEvents.prototype.AttachEvent=function(A,B){var C;if (!(C=this._RegisteredEvents[A])) this._RegisteredEvents[A]=[B];else{if (C.IndexOf(B)==-1) C.push(B);}};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this._RegisteredEvents[A];if (D){for (var i=0;i<D.length;i++){try{C=(D[i](this.Owner,B)&&C);}catch(e){if (e.number!=-2146823277) throw e;}}};return C;}; +var FCKDataProcessor=function(){};FCKDataProcessor.prototype={ConvertToHtml:function(A){if (FCKConfig.FullPage){FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (!FCKRegexLib.HasBodyTag.test(A)) A='<body>'+A+'</body>';if (!FCKRegexLib.HtmlOpener.test(A)) A='<html dir="'+FCKConfig.ContentLangDirection+'">'+A+'</html>';if (!FCKRegexLib.HeadOpener.test(A)) A=A.replace(FCKRegexLib.HtmlOpener,'$&<head><title></title></head>');return A;}else{var B=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"';if (FCKBrowserInfo.IsIE&&FCKConfig.DocType.length>0&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) B+=' style="overflow-y: scroll"';B+='><head><title></title></head><body'+FCKConfig.GetBodyAttributes()+'>'+A+'</body></html>';return B;}},ConvertToDataFormat:function(A,B,C,D){var E=FCKXHtml.GetXHTML(A,!B,D);if (C&&FCKRegexLib.EmptyOutParagraph.test(E)) return '';return E;},FixHtml:function(A){return A;}}; +var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,DataProcessor:new FCKDataProcessor(),AttachToOnSelectionChange:function(A){this.Events.AttachEvent('OnSelectionChange',A);},GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){if (this.EditMode==1) return (this.StartupValue!=this.EditingArea.Textarea.value);else{if (!this.EditorDocument) return false;return (this.StartupValue!=this.EditorDocument.body.innerHTML);}},ResetIsDirty:function(){if (this.EditMode==1) this.StartupValue=this.EditingArea.Textarea.value;else if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length>0?'<base href="'+FCKConfig.BaseHref+'" _fcktemp="true"></base>':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86/*V*/) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45/*INS*/) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};A.SetKeystrokes([CTRL+8,true]);this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=FCKConfig.FirefoxSpellChecker;this.SetData(this.GetLinkedFieldValue(),true);FCKTools.AddEventListener(document,"keydown",this._TabKeyHandler);this.AttachToOnSelectionChange(_FCK_PaddingNodeListener);if (FCKBrowserInfo.IsGecko) this.AttachToOnSelectionChange(this._ExecCheckEmptyBlock);},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&&A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:if (!FCKListsLib.BlockElements[D.nodeName.toLowerCase()]&&!D.getAttribute('_fckfakelement')&&D.getAttribute('_moz_dirty')==null) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;};if (F){var G=D.parentNode;if (!E) E=G.insertBefore(B.createElement(A),D);E.appendChild(G.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetData:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B=FCK.EditorDocument;if (!B) return null;var C=FCKConfig.FullPage;var D=FCK.DataProcessor.ConvertToDataFormat(C?B.documentElement:B.body,!C,FCKConfig.IgnoreEmptyParagraphValue,A);D=FCK.ProtectEventsRestore(D);if (FCKBrowserInfo.IsIE) D=D.replace(FCKRegexLib.ToReplace,'$1');if (C){if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) D=FCK.DocTypeDeclaration+'\n'+D;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) D=FCK.XmlDeclaration+'\n'+D;};return FCKConfig.ProtectedSource.Revert(D);},UpdateLinkedField:function(){var A=FCK.GetXHTML(FCKConfig.FormatOutput);if (FCKConfig.HtmlEncodeOutput) A=FCKTools.HTMLEncode(A);FCK.LinkedField.value=A;FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);},RegisterDoubleClickHandler:function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;},OnAfterSetHTML:function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');},ProtectUrls:function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$& _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$& _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsArea,'$& _fcksavedurl=$1');return A;},ProtectEvents:function(A){return A.replace(FCKRegexLib.TagsWithEvent,_FCK_ProtectEvents_ReplaceTags);},ProtectEventsRestore:function(A){return A.replace(FCKRegexLib.ProtectedEvents,_FCK_ProtectEvents_RestoreEvents);},ProtectTags:function(A){var B=FCKConfig.ProtectedTags;if (FCKBrowserInfo.IsIE) B+=B.length>0?'|ABBR|XML|EMBED':'ABBR|XML|EMBED';var C;if (B.length>0){C=new RegExp('<('+B+')(?!\w|:)','gi');A=A.replace(C,'<FCK:$1');C=new RegExp('<\/('+B+')>','gi');A=A.replace(C,'<\/FCK:$1>');};B='META';if (FCKBrowserInfo.IsIE) B+='|HR';C=new RegExp('<(('+B+')(?=\\s|>|/)[\\s\\S]*?)/?>','gi');A=A.replace(C,'<FCK:$1 />');return A;},SetData:function(A,B){this.EditingArea.Mode=FCK.EditMode;if (FCKBrowserInfo.IsIE&&FCK.EditorDocument){FCK.EditorDocument.detachEvent("onselectionchange",Doc_OnSelectionChange);};if (FCK.EditMode==0){this._ForceResetIsDirty=(B===true);A=FCKConfig.ProtectedSource.Protect(A);A=FCK.DataProcessor.ConvertToHtml(A);A=A.replace(FCKRegexLib.InvalidSelfCloseTags,'$1></$2>');A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) A=A.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);var C='';if (!FCKConfig.FullPage) C+=_FCK_GetEditorAreaStyleTags();if (FCKBrowserInfo.IsIE) C+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C+='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';C+='<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';A=A.replace(FCKRegexLib.HeadCloser,C+'$&');this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(A);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;FCKDomTools.PaddingNode=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;if (B) this.ResetIsDirty();FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},HasFocus:false,RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C,D){if (!D) FCKUndo.SaveUndoStep();if (!C&&FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};if (!D) FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (FCKBrowserInfo.IsSafari&&FCK.EditorWindow&&A.IEquals('Paste')) return 0;if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else{return FCK.EditorDocument.queryCommandState(A)?1:0;}}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},Paste:function(A){if (FCK.Status!=2||!FCK.Events.FireEvent('OnPaste')) return false;return A||FCK._ExecPaste();},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A=FCKConfig.ScreenWidth*0.8;var B=FCKConfig.ScreenHeight*0.7;var C=(FCKConfig.ScreenWidth-A)/2;var D=window.open('',null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+A+',height='+B+',left='+C);var E;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) E=FCK.TempBaseTag+FCK.GetXHTML();else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body'+FCKConfig.GetBodyAttributes()+'>'+FCK.GetXHTML()+'</body></html>';};D.document.write(E);D.document.close();},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C=FCK.IsDirty();var D;if (B){FCKCommands.GetCommand('ShowBlocks').SaveState();if (!A&&FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();D=FCK.GetXHTML(FCKConfig.FormatSource);if (D==null) return false;}else D=this.EditingArea.Textarea.value;FCK.EditMode=B?1:0;FCK.SetData(D,!C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},InsertElement:function(A){if (typeof A=='string') A=this.EditorDocument.createElement(A);var B=A.nodeName.toLowerCase();var C=new FCKDomRange(this.EditorWindow);if (FCKListsLib.BlockElements[B]!=null){C.SplitBlock();C.InsertNode(A);var D=FCKDomTools.GetNextSourceElement(A,false,null,['hr','br','param','img','area','input']);if (!D&&FCKConfig.EnterMode!='br'){D=this.EditorDocument.body.appendChild(this.EditorDocument.createElement(FCKConfig.EnterMode));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);};if (FCKListsLib.EmptyElements[B]==null) C.MoveToElementEditStart(A);else if (D) C.MoveToElementEditStart(D);else C.MoveToPosition(A,4);if (FCKBrowserInfo.IsGecko){if (D) D.scrollIntoView(false);A.scrollIntoView(false);}}else{C.MoveToSelection();C.DeleteContents();C.InsertNode(A);C.SetStart(A,4);C.SetEnd(A,4);};C.Select();C.Release();this.Focus();return A;},_InsertBlockElement:function(A){},_IsFunctionKey:function(A){if (A>=16&&A<=20) return true;if (A==27||(A>=33&&A<=40)) return true;if (A==45) return true;return false;},_KeyDownListener:function(A){if (!A) A=FCK.EditorWindow.event;if (FCK.EditorWindow){if (!FCK._IsFunctionKey(A.keyCode)&&!(A.ctrlKey||A.metaKey)&&!(A.keyCode==46)) FCK._KeyDownUndo();};return true;},_KeyDownUndo:function(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.TypesCount++;FCKUndo.Changed=1;if (FCKUndo.TypesCount>FCKUndo.MaxTypes){FCKUndo.TypesCount=0;FCKUndo.SaveUndoStep();}},_TabKeyHandler:function(A){if (!A) A=window.event;var B=A.keyCode;if (B==9&&FCK.EditMode!=0){if (FCKBrowserInfo.IsIE){var C=document.selection.createRange();if (C.parentElement()!=FCK.EditingArea.Textarea) return true;C.text='\t';C.select();}else{var a=[];var D=FCK.EditingArea.Textarea;var E=D.selectionStart;var F=D.selectionEnd;a.push(D.value.substr(0,E));a.push('\t');a.push(D.value.substr(F));D.value=a.join('');D.setSelectionRange(E+1,E+1);};if (A.preventDefault) return A.preventDefault();return A.returnValue=false;};return true;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML=FCK.GetData;FCK.SetHTML=FCK.SetData;FCK.InsertElementAndGetIt=FCK.CreateElement=FCK.InsertElement;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt="'+encodeURIComponent(A)+'"';};function _FCK_ProtectEvents_RestoreEvents(A,B){return decodeURIComponent(B);};function _FCK_MouseEventsListener(A){if (!A) A=window.event;if (A.type=='mousedown') FCK.MouseDownFlag=true;else if (A.type=='mouseup') FCK.MouseDownFlag=false;else if (A.type=='mousemove') FCK.Events.FireEvent('OnMouseMove',A);};function _FCK_PaddingNodeListener(){if (FCKConfig.EnterMode.IEquals('br')) return;FCKDomTools.EnforcePaddingNode(FCK.EditorDocument,FCKConfig.EnterMode);if (!FCKBrowserInfo.IsIE&&FCKDomTools.PaddingNode){var A=FCK.EditorWindow.getSelection();if (A&&A.rangeCount==1){var B=A.getRangeAt(0);if (B.collapsed&&B.startContainer==FCK.EditorDocument.body&&B.startOffset==0){B.selectNodeContents(FCKDomTools.PaddingNode);B.collapse(true);A.removeAllRanges();A.addRange(B);}}}else if (FCKDomTools.PaddingNode){var C=FCKSelection.GetParentElement();var D=FCKDomTools.PaddingNode;if (C&&C.nodeName.IEquals('body')){if (FCK.EditorDocument.body.childNodes.length==1&&FCK.EditorDocument.body.firstChild==D){var B=FCK.EditorDocument.body.createTextRange();var F=false;if (!D.childNodes.firstChild){D.appendChild(D.ownerDocument.createTextNode('\ufeff'));F=true;};B.moveToElementText(D);B.select();if (F) B.pasteHTML('');}}}};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();FCK.MouseDownFlag=false;FCKTools.AddEventListener(FCK.EditorDocument,'mousemove',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mouseup',_FCK_MouseEventsListener);if (FCKBrowserInfo.IsSafari){var A=function(evt){if (!(evt.ctrlKey||evt.metaKey)) return;if (FCK.EditMode!=0) return;switch (evt.keyCode){case 89:FCKUndo.Redo();break;case 90:FCKUndo.Undo();break;}};FCKTools.AddEventListener(FCK.EditorDocument,'keyup',A);};FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode,FCKConfig.TabSpaces);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);if (FCK._ForceResetIsDirty) FCK.ResetIsDirty();if (FCKBrowserInfo.IsIE&&FCK.HasFocus) FCK.EditorDocument.body.setActive();FCK.OnAfterSetHTML();FCKCommands.GetCommand('ShowBlocks').RestoreState();if (FCK.Status!=0) return;if (FCKConfig.Debug) FCKDebug._GetWindow();FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){var A='';var B=FCKConfig.EditorAreaCSS;var C=FCKConfig.EditorAreaStyles;for (var i=0;i<B.length;i++) A+='<link href="'+B[i]+'" rel="stylesheet" type="text/css" />';if (C&&C.length>0) A+="<style>"+C+"</style>";return A;};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){switch (B){case 'Paste':return!FCK.Paste();case 'Cut':FCKUndo.SaveUndoStep();return false;}}else{if (B.Equals('Paste','Undo','Redo','SelectAll','Cut')) return false;};var C=FCK.Commands.GetCommand(B);return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&&B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i<this.Elements.length) this.Elements[i++]=null;this.Elements.length=0;}};var FCKFocusManager=FCK.FocusManager={IsLocked:false,AddWindow:function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else if (FCKBrowserInfo.IsSafari) C=A;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);},RemoveWindow:function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);},Lock:function(){this.IsLocked=true;},Unlock:function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;},_ResetTimer:function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&&FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent("OnBlur");}};function FCKFocusManager_Win_OnFocus_Area(){FCK.Focus();FCKFocusManager_Win_OnFocus();};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}}; +FCK.Description="FCKeditor for Gecko Browsers";FCK.InitializeBehaviors=function(){if (FCKBrowserInfo.IsGecko) Window_OnResize();FCKFocusManager.AddWindow(this.EditorWindow);this.ExecOnSelectionChange=function(){FCK.Events.FireEvent("OnSelectionChange");};this._ExecDrop=function(evt){if (FCK.MouseDownFlag){FCK.MouseDownFlag=false;return;};if (FCKConfig.ForcePasteAsPlainText){if (evt.dataTransfer){var A=evt.dataTransfer.getData('Text');A=FCKTools.HTMLEncode(A);A=FCKTools.ProcessLineBreaks(window,FCKConfig,A);FCK.InsertHtml(A);}else if (FCKConfig.ShowDropDialog) FCK.PasteAsPlainText();}else if (FCKConfig.ShowDropDialog) FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security');evt.preventDefault();evt.stopPropagation();};this._ExecCheckCaret=function(evt){if (FCK.EditMode!=0) return;if (evt.type=='keypress'){var B=evt.keyCode;if (B<33||B>40) return;};var C=function(H){if (H.nodeType!=1) return false;var D=H.tagName.toLowerCase();return (FCKListsLib.BlockElements[D]||FCKListsLib.EmptyElements[D]);};var E=function(){var F=FCK.EditorWindow.getSelection();var G=F.getRangeAt(0);if (!G||!G.collapsed) return;var H=G.endContainer;if (H.nodeType!=3) return;if (H.nodeValue.length!=G.endOffset) return;var I=H.parentNode.tagName.toLowerCase();if (!(I=='a'||(!(FCKListsLib.BlockElements[I]||FCKListsLib.NonEmptyBlockElements[I])&&B==35))) return;var J=FCKTools.GetNextTextNode(H,H.parentNode,C);if (J) return;G=FCK.EditorDocument.createRange();J=FCKTools.GetNextTextNode(H,H.parentNode.parentNode,C);if (J){if (FCKBrowserInfo.IsOpera&&B==37) return;G.setStart(J,0);G.setEnd(J,0);}else{while (H.parentNode&&H.parentNode!=FCK.EditorDocument.body&&H.parentNode!=FCK.EditorDocument.documentElement&&H==H.parentNode.lastChild&&(!FCKListsLib.BlockElements[H.parentNode.tagName.toLowerCase()]&&!FCKListsLib.NonEmptyBlockElements[H.parentNode.tagName.toLowerCase()])) H=H.parentNode;if (FCKListsLib.BlockElements[I]||FCKListsLib.EmptyElements[I]||H==FCK.EditorDocument.body){G.setStart(H,H.childNodes.length);G.setEnd(H,H.childNodes.length);}else{var K=H.nextSibling;while (K){if (K.nodeType!=1){K=K.nextSibling;continue;};var L=K.tagName.toLowerCase();if (FCKListsLib.BlockElements[L]||FCKListsLib.EmptyElements[L]||FCKListsLib.NonEmptyBlockElements[L]) break;K=K.nextSibling;};var M=FCK.EditorDocument.createTextNode('');if (K) H.parentNode.insertBefore(M,K);else H.parentNode.appendChild(M);G.setStart(M,0);G.setEnd(M,0);}};F.removeAllRanges();F.addRange(G);FCK.Events.FireEvent("OnSelectionChange");};setTimeout(E,1);};this.ExecOnSelectionChangeTimer=function(){if (FCK.LastOnChangeTimer) window.clearTimeout(FCK.LastOnChangeTimer);FCK.LastOnChangeTimer=window.setTimeout(FCK.ExecOnSelectionChange,100);};this.EditorDocument.addEventListener('mouseup',this.ExecOnSelectionChange,false);this.EditorDocument.addEventListener('keyup',this.ExecOnSelectionChangeTimer,false);this._DblClickListener=function(e){FCK.OnDoubleClick(e.target);e.stopPropagation();};this.EditorDocument.addEventListener('dblclick',this._DblClickListener,true);this.EditorDocument.addEventListener('keydown',this._KeyDownListener,false);if (FCKBrowserInfo.IsGecko){this.EditorWindow.addEventListener('dragdrop',this._ExecDrop,true);}else if (FCKBrowserInfo.IsSafari){var N=function(evt){ if (!FCK.MouseDownFlag) evt.returnValue=false;};this.EditorDocument.addEventListener('dragenter',N,true);this.EditorDocument.addEventListener('dragover',N,true);this.EditorDocument.addEventListener('drop',this._ExecDrop,true);this.EditorDocument.addEventListener('mousedown',function(ev){var O=ev.srcElement;if (O.nodeName.IEquals('IMG','HR','INPUT','TEXTAREA','SELECT')){FCKSelection.SelectNode(O);}},true);this.EditorDocument.addEventListener('mouseup',function(ev){if (ev.srcElement.nodeName.IEquals('INPUT','TEXTAREA','SELECT')) ev.preventDefault()},true);this.EditorDocument.addEventListener('click',function(ev){if (ev.srcElement.nodeName.IEquals('INPUT','TEXTAREA','SELECT')) ev.preventDefault()},true);};if (FCKBrowserInfo.IsGecko||FCKBrowserInfo.IsOpera){this.EditorDocument.addEventListener('keypress',this._ExecCheckCaret,false);this.EditorDocument.addEventListener('click',this._ExecCheckCaret,false);};FCK.ContextMenu._InnerContextMenu.SetMouseClickWindow(FCK.EditorWindow);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument);};FCK.MakeEditable=function(){this.EditingArea.MakeEditable();};function Document_OnContextMenu(e){if (!e.target._FCKShowContextMenu) e.preventDefault();};document.oncontextmenu=Document_OnContextMenu;FCK._BaseGetNamedCommandState=FCK.GetNamedCommandState;FCK.GetNamedCommandState=function(A){switch (A){case 'Unlink':return FCKSelection.HasAncestorNode('A')?0:-1;default:return FCK._BaseGetNamedCommandState(A);}};FCK.RedirectNamedCommands={Print:true,Paste:true,Cut:true,Copy:true};FCK.ExecuteRedirectedNamedCommand=function(A,B){switch (A){case 'Print':FCK.EditorWindow.print();break;case 'Paste':try{if (FCKBrowserInfo.IsSafari) throw '';if (FCK.Paste()) FCK.ExecuteNamedCommand('Paste',null,true);}catch (e) { FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security');};break;case 'Cut':try { FCK.ExecuteNamedCommand('Cut',null,true);}catch (e) { alert(FCKLang.PasteErrorCut);};break;case 'Copy':try { FCK.ExecuteNamedCommand('Copy',null,true);}catch (e) { alert(FCKLang.PasteErrorCopy);};break;default:FCK.ExecuteNamedCommand(A,B);}};FCK._ExecPaste=function(){FCKUndo.SaveUndoStep();if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};return true;};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);FCKUndo.SaveUndoStep();this.EditorDocument.execCommand('inserthtml',false,A);this.Focus();this.Events.FireEvent("OnSelectionChange");};FCK.PasteAsPlainText=function(){FCKTools.RunFunction(FCKDialog.OpenDialog,FCKDialog,['FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText']);};FCK.GetClipboardHTML=function(){return '';};FCK.CreateLink=function(A,B){var C=[];FCK.ExecuteNamedCommand('Unlink',null,false,!!B);if (A.length>0){var D='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',D,false,!!B);var E=this.EditorDocument.evaluate("//a[@href='"+D+"']",this.EditorDocument.body,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for (var i=0;i<E.snapshotLength;i++){var F=E.snapshotItem(i);F.href=A;if (D==F.innerHTML) F.innerHTML='';C.push(F);}};return C;};FCK._FillEmptyBlock=function(A){if (!A||A.nodeType!=1) return;var B=A.tagName.toLowerCase();if (B!='p'&&B!='div') return;if (A.firstChild) return;FCKTools.AppendBogusBr(A);};FCK._ExecCheckEmptyBlock=function(){FCK._FillEmptyBlock(FCK.EditorDocument.body.firstChild);var A=FCK.EditorWindow.getSelection();if (!A||A.rangeCount<1) return;var B=A.getRangeAt(0);FCK._FillEmptyBlock(B.startContainer);}; +var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi, '/');var sFullProtocol=document.location.href.match(/^(file\:\/{2,3})/)[1];if (FCKBrowserInfo.IsOpera) sFullProtocol+='localhost/';FCKConfig.BasePath=sFullProtocol+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;}else{FCKConfig.BasePath=document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=document.location.protocol+'//'+document.location.host+FCKConfig.BasePath;};FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig={};var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&');for (var i=0;i<B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=decodeURIComponent(C[0]);var E=decodeURIComponent(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()=="true") this.PageConfig[D]=true;else if (E.toLowerCase()=="false") this.PageConfig[D]=false;else if (E.length>0&&!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) {/*Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error).*/}};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';if (typeof(A.EditorAreaCSS)=='string') A.EditorAreaCSS=A.EditorAreaCSS.split(',');var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;else if (typeof(B)=='string') A.ToolbarComboPreviewCSS=[B];};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource._CodeTag=(new Date()).valueOf();FCKConfig.ProtectedSource.RegexEntries=[/<!--[\s\S]*?-->/g,/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi,/<object[\s\S]+?<\/object>/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){var B=this._CodeTag;function _Replace(protectedSource){var C=FCKTempBin.AddElement(protectedSource);return '<!--{'+B+C+'}-->';};for (var i=0;i<this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};var D=new RegExp("(<|&lt;)!--\\{"+this._CodeTag+"(\\d+)\\}--(>|&gt;)","g");return A.replace(D,_Replace);};FCKConfig.GetBodyAttributes=function(){var A='';if (this.BodyId&&this.BodyId.length>0) A+=' id="'+this.BodyId+'"';if (this.BodyClass&&this.BodyClass.length>0) A+=' class="'+this.BodyClass+'"';return A;};FCKConfig.ApplyBodyAttributes=function(A){if (this.BodyId&&this.BodyId.length>0) A.id=FCKConfig.BodyId;if (this.BodyClass&&this.BodyClass.length>0) A.className+=' '+FCKConfig.BodyClass;}; var FCKDebug={};FCKDebug._GetWindow=function(){if (!this.DebugWindow||this.DebugWindow.closed) this.DebugWindow=window.open(FCKConfig.BasePath+'fckdebug.html','FCKeditorDebug','menubar=no,scrollbars=yes,resizable=yes,location=no,toolbar=no,width=600,height=500',true);return this.DebugWindow;};FCKDebug.Output=function(A,B,C){if (!FCKConfig.Debug) return;try{this._GetWindow().Output(A,B);}catch (e) {}};FCKDebug.OutputObject=function(A,B){if (!FCKConfig.Debug) return;try{this._GetWindow().OutputObject(A,B);}catch (e) {}} -var FCKDomTools={MoveChildren:function(A,B){if (A==B) return;var C;while ((C=A.firstChild)) B.appendChild(A.removeChild(C));},TrimNode:function(A,B){this.LTrimNode(A);this.RTrimNode(A,B);},LTrimNode:function(A){var B;while ((B=A.firstChild)){if (B.nodeType==3){var C=B.nodeValue.LTrim();var D=B.nodeValue.length;if (C.length==0){A.removeChild(B);continue;}else if (C.length<D){B.splitText(D-C.length);A.removeChild(A.firstChild);}};break;}},RTrimNode:function(A,B){var C;while ((C=A.lastChild)){switch (C.nodeType){case 1:if (C.nodeName.toUpperCase()=='BR'&&(B||C.getAttribute('type',2)=='_moz')){A.removeChild(C);continue;};break;case 3:var D=C.nodeValue.RTrim();var E=C.nodeValue.length;if (D.length==0){A.removeChild(C);continue;}else if (D.length<E){C.splitText(D.length);A.removeChild(A.lastChild);}};break;}},RemoveNode:function(A,B){if (B){var C;while ((C=A.firstChild)) A.parentNode.insertBefore(A.removeChild(C),A);};return A.parentNode.removeChild(A);},GetFirstChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.firstChild;while(C){if (C.nodeType==1&&C.tagName.Equals.apply(C.tagName,B)) return C;C=C.nextSibling;};return null;},GetLastChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.lastChild;while(C){if (C.nodeType==1&&(!B||C.tagName.Equals(B))) return C;C=C.previousSibling;};return null;},GetPreviousSourceElement:function(A,B,C,D){if (!A) return null;if (C&&A.nodeType==1&&A.nodeName.IEquals(C)) return null;if (A.previousSibling) A=A.previousSibling;else return this.GetPreviousSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.lastChild) A=A.lastChild;else return this.GetPreviousSourceElement(A,B,C,D);};return null;},GetNextSourceElement:function(A,B,C,D){if (!A) return null;if (A.nextSibling) A=A.nextSibling;else return this.GetNextSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.firstChild) A=A.firstChild;else return this.GetNextSourceElement(A,B,C,D);};return null;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.splice(0,0,A);A=A.parentNode;};return B;},GetIndexOf:function(A){var B=A.parentNode?A.parentNode.firstChild:null;var C=-1;while (B){C++;if (B==A) return C;B=B.nextSibling;};return-1;}}; -var GECKO_BOGUS='<br type="_moz">';var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.AppendStyleSheet=function(A,B){if (typeof(B)=='string') return this._AppendStyleSheet(A,B);else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&&!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.FixDocumentParentWindow=function(A){A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&amp;');A=A.replace(/</g,'&lt;');A=A.replace(/>/g,'&gt;');return A;};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i<arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||'CSS1Compat'));};FCKTools.ArgumentsToArray=function(A,B,C){B=B||0;C=C||A.length;var D=[];for (var i=B;i<B+C&&i<A.length;i++) D.push(A[i]);return D;};FCKTools.CloneObject=function(A){var B=function() {};B.prototype=A;return new B;}; -FCKTools.CancelEvent=function(e){if (e) e.preventDefault();};FCKTools.DisableSelection=function(A){if (FCKBrowserInfo.IsGecko) A.style.MozUserSelect='none';else A.style.userSelect='none';};FCKTools._AppendStyleSheet=function(A,B){var e=A.createElement('LINK');e.rel='stylesheet';e.type='text/css';e.href=B;A.getElementsByTagName("HEAD")[0].appendChild(e);return e;};FCKTools.ClearElementAttributes=function(A){for (var i=0;i<A.attributes.length;i++){A.removeAttribute(A.attributes[i].name,0);}};FCKTools.GetAllChildrenIds=function(A){var B=[];var C=function(parent){for (var i=0;i<parent.childNodes.length;i++){var D=parent.childNodes[i].id;if (D&&D.length>0) B[B.length]=D;C(parent.childNodes[i]);}};C(A);return B;};FCKTools.RemoveOuterTags=function(e){var A=e.ownerDocument.createDocumentFragment();for (var i=0;i<e.childNodes.length;i++) A.appendChild(e.childNodes[i].cloneNode(true));e.parentNode.replaceChild(A,e);};FCKTools.CreateXmlObject=function(A){switch (A){case 'XmlHttp':return new XMLHttpRequest();case 'DOMDocument':return document.implementation.createDocument('','',null);};return null;};FCKTools.GetScrollPosition=function(A){return { X:A.pageXOffset,Y:A.pageYOffset };};FCKTools.AddEventListener=function(A,B,C){A.addEventListener(B,C,false);};FCKTools.RemoveEventListener=function(A,B,C){A.removeEventListener(B,C,false);};FCKTools.AddEventListenerEx=function(A,B,C,D){A.addEventListener(B,function(e){C.apply(A,[e].concat(D||[]));},false);};FCKTools.GetViewPaneSize=function(A){return { Width:A.innerWidth,Height:A.innerHeight };};FCKTools.SaveStyles=function(A){var B={};if (A.className.length>0){B.Class=A.className;A.className='';};var C=A.getAttribute('style');if (C&&C.length>0){B.Inline=C;A.setAttribute('style','',0);};return B;};FCKTools.RestoreStyles=function(A,B){A.className=B.Class||'';if (B.Inline) A.setAttribute('style',B.Inline,0);else A.removeAttribute('style',0);};FCKTools.RegisterDollarFunction=function(A){A.$=function(id){return this.document.getElementById(id);};};FCKTools.AppendElement=function(A,B){return A.appendChild(A.ownerDocument.createElement(B));};FCKTools.GetElementPosition=function(A,B){var c={ X:0,Y:0 };var C=B||window;var D=FCKTools.GetElementWindow(A);while (A){var E=D.getComputedStyle(A,'').position;if (E&&E!='static'&&A.style.zIndex!=FCKConfig.FloatingPanelsZIndex) break;c.X+=A.offsetLeft-A.scrollLeft;c.Y+=A.offsetTop-A.scrollTop;if (A.offsetParent) A=A.offsetParent;else{if (D!=C){A=D.frameElement;if (A) D=FCKTools.GetElementWindow(A);}else{c.X+=A.scrollLeft;c.Y+=A.scrollTop;break;}}};return c;} -var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='var FCKeditorAPI = {Version : "2.4",VersionBuild : "1148",__Instances : new Object(),GetInstance : function( name ){return this.__Instances[ name ];},_FormSubmit : function(){for ( var name in FCKeditorAPI.__Instances ){var oEditor = FCKeditorAPI.__Instances[ name ] ;if ( oEditor.GetParentForm() == this )oEditor.UpdateLinkedField() ;}this._FCKOriginalSubmit() ;},_FunctionQueue : {Functions : new Array(),IsRunning : false,Add : function( f ){this.Functions.push( f );if ( !this.IsRunning )this.StartNext();},StartNext : function(){var aQueue = this.Functions ;if ( aQueue.length > 0 ){this.IsRunning = true;aQueue[0].call();}else this.IsRunning = false;},Remove : function( f ){var aQueue = this.Functions;var i = 0, fFunc;while( (fFunc = aQueue[ i ]) ){if ( fFunc == f )aQueue.splice( i,1 );i++ ;}this.StartNext();}}}';if (A.execScript) A.execScript(B,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if (FCKBrowserInfo.IsSafari){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;};FCKeditorAPI.__Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&&(typeof(A.submit)=='function'||(!A.submit.tagName&&!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){delete FCKeditorAPI.__Instances[FCK.Name];};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup); -var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i<A.length;i++){var B=document.createElement('img');B.onload=B.onerror=_FCKImagePreloader_OnImage;B._FCKImagePreloader=this;B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(){var A=this._FCKImagePreloader;if ((--A._PreloadCount)==0&&A.OnComplete) A.OnComplete();this._FCKImagePreloader=null;} -var FCKRegexLib={AposEntity:/&apos;/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BodyContents:/([\s\S]*\<body[^\>]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/(\s*FCK__[A-Za-z]*\s*)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div)>\s*<\/\1>$/i,TagBody:/></,StrongOpener:/<STRONG([ \>])/gi,StrongCloser:/<\/STRONG>/gi,EmOpener:/<EM([ \>])/gi,EmCloser:/<\/EM>/gi,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/(?:(<img(?=\s).*?\ssrc=)("|')(.*?)\2)|(?:(<img\s.*?src=)([^"'][^ >]+))/gi,ProtectUrlsA:/(?:(<a(?=\s).*?\shref=)("|')(.*?)\2)|(?:(<a\s.*?href=)([^"'][^ >]+))/gi,Html4DocType:/HTML 4\.0 Transitional/i,DocTypeTag:/<!DOCTYPE[^>]*>/i,TagsWithEvent:/<[^\>]+ on\w+[\s\r\n]*=[\s\r\n]*?('|")[\s\S]+?\>/g,EventAttributes:/\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|")([\s\S]*?)\2/g,ProtectedEvents:/\s\w+_fckprotectedatt="([^"]+)"/g,StyleProperties:/\S+\s*:/g};var FCKListsLib={BlockElements:{ address:1,blockquote:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 },NonEmptyBlockElements:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,address:1,pre:1,ol:1,ul:1,li:1,td:1,th:1 },PathBlockElements:{ address:1,blockquote:1,div:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1 },InlineChildReqElements:{ abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strong:1,sub:1,sup:1,tt:1,'var':1 },EmptyElements:{ base:1,meta:1,link:1,hr:1,br:1,param:1,img:1,area:1,input:1 }}; -var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French',gl:'Galician',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',it:'Italian',ja:'Japanese',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},GetActiveLanguage:function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length>=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length>=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;},TranslateElements:function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i<e.length;i++){if ((E=e[i].getAttribute('fckLang'))){if ((s=FCKLang[E])){if (D) s=FCKTools.HTMLEncode(s);eval('e[i].'+C+' = s');}}}},TranslatePage:function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);},Initialize:function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage={};this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}}; -var FCKXHtmlEntities={};FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';var B,e;if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.Entities={' ':'nbsp','¡':'iexcl','¢':'cent','£':'pound','¤':'curren','Â¥':'yen','¦':'brvbar','§':'sect','¨':'uml','©':'copy','ª':'ordf','«':'laquo','¬':'not','­':'shy','®':'reg','¯':'macr','°':'deg','±':'plusmn','²':'sup2','³':'sup3','´':'acute','µ':'micro','¶':'para','·':'middot','¸':'cedil','¹':'sup1','º':'ordm','»':'raquo','¼':'frac14','½':'frac12','¾':'frac34','¿':'iquest','×':'times','÷':'divide','Æ’':'fnof','•':'bull','…':'hellip','′':'prime','″':'Prime','‾':'oline','â„':'frasl','℘':'weierp','â„‘':'image','â„œ':'real','â„¢':'trade','ℵ':'alefsym','â†':'larr','↑':'uarr','→':'rarr','↓':'darr','↔':'harr','↵':'crarr','â‡':'lArr','⇑':'uArr','⇒':'rArr','⇓':'dArr','⇔':'hArr','∀':'forall','∂':'part','∃':'exist','∅':'empty','∇':'nabla','∈':'isin','∉':'notin','∋':'ni','âˆ':'prod','∑':'sum','−':'minus','∗':'lowast','√':'radic','âˆ':'prop','∞':'infin','∠':'ang','∧':'and','∨':'or','∩':'cap','∪':'cup','∫':'int','∴':'there4','∼':'sim','≅':'cong','≈':'asymp','≠':'ne','≡':'equiv','≤':'le','≥':'ge','⊂':'sub','⊃':'sup','⊄':'nsub','⊆':'sube','⊇':'supe','⊕':'oplus','⊗':'otimes','⊥':'perp','â‹…':'sdot','â—Š':'loz','â™ ':'spades','♣':'clubs','♥':'hearts','♦':'diams','"':'quot','ˆ':'circ','Ëœ':'tilde',' ':'ensp',' ':'emsp',' ':'thinsp','‌':'zwnj','â€':'zwj','‎':'lrm','â€':'rlm','–':'ndash','—':'mdash','‘':'lsquo','’':'rsquo','‚':'sbquo','“':'ldquo','â€':'rdquo','„':'bdquo','†':'dagger','‡':'Dagger','‰':'permil','‹':'lsaquo','›':'rsaquo','€':'euro'};for (e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){B={'À':'Agrave','Ã':'Aacute','Â':'Acirc','Ã':'Atilde','Ä':'Auml','Ã…':'Aring','Æ':'AElig','Ç':'Ccedil','È':'Egrave','É':'Eacute','Ê':'Ecirc','Ë':'Euml','ÃŒ':'Igrave','Ã':'Iacute','ÃŽ':'Icirc','Ã':'Iuml','Ã':'ETH','Ñ':'Ntilde','Ã’':'Ograve','Ó':'Oacute','Ô':'Ocirc','Õ':'Otilde','Ö':'Ouml','Ø':'Oslash','Ù':'Ugrave','Ú':'Uacute','Û':'Ucirc','Ãœ':'Uuml','Ã':'Yacute','Þ':'THORN','ß':'szlig','à':'agrave','á':'aacute','â':'acirc','ã':'atilde','ä':'auml','Ã¥':'aring','æ':'aelig','ç':'ccedil','è':'egrave','é':'eacute','ê':'ecirc','ë':'euml','ì':'igrave','í':'iacute','î':'icirc','ï':'iuml','ð':'eth','ñ':'ntilde','ò':'ograve','ó':'oacute','ô':'ocirc','õ':'otilde','ö':'ouml','ø':'oslash','ù':'ugrave','ú':'uacute','û':'ucirc','ü':'uuml','ý':'yacute','þ':'thorn','ÿ':'yuml','Å’':'OElig','Å“':'oelig','Å ':'Scaron','Å¡':'scaron','Ÿ':'Yuml'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){B={'Α':'Alpha','Î’':'Beta','Γ':'Gamma','Δ':'Delta','Ε':'Epsilon','Ζ':'Zeta','Η':'Eta','Θ':'Theta','Ι':'Iota','Κ':'Kappa','Λ':'Lambda','Îœ':'Mu','Î':'Nu','Ξ':'Xi','Ο':'Omicron','Π':'Pi','Ρ':'Rho','Σ':'Sigma','Τ':'Tau','Î¥':'Upsilon','Φ':'Phi','Χ':'Chi','Ψ':'Psi','Ω':'Omega','α':'alpha','β':'beta','γ':'gamma','δ':'delta','ε':'epsilon','ζ':'zeta','η':'eta','θ':'theta','ι':'iota','κ':'kappa','λ':'lambda','μ':'mu','ν':'nu','ξ':'xi','ο':'omicron','Ï€':'pi','Ï':'rho','Ï‚':'sigmaf','σ':'sigma','Ï„':'tau','Ï…':'upsilon','φ':'phi','χ':'chi','ψ':'psi','ω':'omega'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={};A=' ';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&&D.length>0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');} -var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKXHtmlEntities.Initialize();var D=FCK.IsDirty();this._CreateNode=FCKConfig.ForceStrongEm?FCKXHtml_CreateNode_StrongEm:FCKXHtml_CreateNode_Normal;FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;E=E.substr(7,E.length-15).Trim();if (FCKBrowserInfo.IsGecko) E=E.replace(/<br\/>$/,'');E=E.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i<FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&');if (!D) FCK.ResetIsDirty();return E;};FCKXHtml._AppendAttribute=function(A,B,C){try{if (C==undefined||C==null) C='';else if (C.replace){if (FCKConfig.ForceSimpleAmpersand) C=C.replace(/&/g,'___FCKAmp___');C=C.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity);};var D=this.XML.createAttribute(B);D.value=C;A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){if (C) FCKDomTools.TrimNode(B);var D=0;var E=B.firstChild;while (E){if (this._AppendNode(A,E)) D++;E=E.nextSibling;};if (D==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,'nbsp');return A;};var F=A.nodeName;if (FCKListsLib.InlineChildReqElements[F]) return null;if (!FCKListsLib.EmptyElements[F]) A.appendChild(this.XML.createTextNode(''));};return A;};FCKXHtml._AppendNode=function(A,B){if (!B) return false;switch (B.nodeType){case 1:if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.hasAttribute('_moz_editor_bogus_node')) return false;if (B.getAttribute('_fcktemp')) return false;var C=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&&B.scopeName!='HTML'&&B.scopeName!='FCK') C=B.scopeName.toLowerCase()+':'+C;}else{if (C.StartsWith('fck:')) C=C.Remove(0,4);};if (!FCKRegexLib.ElementName.test(C)) return false;if (C=='br'&&(B.getAttribute('type',2)=='_moz'||!B.nextSibling)) return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var D=this._CreateNode(C);FCKXHtml._AppendAttributes(A,B,D,C);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var E=FCKXHtml.TagProcessors[C];if (E) D=E(D,B,A);else D=this._AppendChildNodes(D,B,Boolean(FCKListsLib.NonEmptyBlockElements[C]));if (!D) break;A.appendChild(D);break;case 3:return this._AppendTextNode(A,B.nodeValue.ReplaceNewLineChars(' '));case 8:if (FCKBrowserInfo.IsIE&&!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) {/*Do nothing... probably this is a wrong format comment.*/};break;default:A.appendChild(this.XML.createComment("Element not supported - Type: "+B.nodeType+" Name: "+B.nodeName));break;};return true;};function FCKXHtml_CreateNode_StrongEm(A){switch (A){case 'b':A='strong';break;case 'i':A='em';break;};return this.XML.createElement(A);};function FCKXHtml_CreateNode_Normal(A){return this.XML.createElement(A);};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.AddItem(A);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){var C=B.length>0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml._RemoveAttribute=function(A,B,C){var D=A.attributes.getNamedItem(C);if (D&&B.test(D.nodeValue)){var E=D.nodeValue.replace(B,'');if (E.length==0) A.attributes.removeNamedItem(C);else D.nodeValue=E;}};FCKXHtml.TagProcessors={img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);return A;},a:function(A,B){if (B.innerHTML.Trim().length==0&&!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){FCKXHtml._RemoveAttribute(A,FCKRegexLib.FCK_Class,'class');if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};FCKXHtml._AppendChildNodes(A,B,false);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.innerHTML)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;},table:function(A,B){if (FCKBrowserInfo.IsIE) FCKXHtml._RemoveAttribute(A,FCKRegexLib.FCK_Class,'class');FCKXHtml._AppendChildNodes(A,B,false);return A;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&&D.nodeType==3) D=D.previousSibling;if (D&&D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};FCKXHtml._AppendChildNodes(A,B);return A;},span:function(A,B){if (B.innerHTML.length==0) return false;FCKXHtml._AppendChildNodes(A,B,false);return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol; -FCKXHtml._GetMainXmlString=function(){var A=new XMLSerializer();return A.serializeToString(this.MainNode);};FCKXHtml._AppendAttributes=function(A,B,C){var D=B.attributes;for (var n=0;n<D.length;n++){var E=D[n];if (E.specified){var F=E.nodeName.toLowerCase();var G;if (F.StartsWith('_fck')) continue;else if (F.indexOf('_moz')==0) continue;else if (F=='class') G=E.nodeValue;else if (E.nodeValue===true) G=F;else G=B.getAttribute(F,2);this._AppendAttribute(C,F,G);}}} +var FCKDomTools={MoveChildren:function(A,B,C){if (A==B) return;var D;if (C){while ((D=A.lastChild)) B.insertBefore(A.removeChild(D),B.firstChild);}else{while ((D=A.firstChild)) B.appendChild(A.removeChild(D));}},MoveNode:function(A,B,C){if (C) B.insertBefore(FCKDomTools.RemoveNode(A),B.firstChild);else B.appendChild(FCKDomTools.RemoveNode(A));},TrimNode:function(A){this.LTrimNode(A);this.RTrimNode(A);},LTrimNode:function(A){var B;while ((B=A.firstChild)){if (B.nodeType==3){var C=B.nodeValue.LTrim();var D=B.nodeValue.length;if (C.length==0){A.removeChild(B);continue;}else if (C.length<D){B.splitText(D-C.length);A.removeChild(A.firstChild);}};break;}},RTrimNode:function(A){var B;while ((B=A.lastChild)){if (B.nodeType==3){var C=B.nodeValue.RTrim();var D=B.nodeValue.length;if (C.length==0){B.parentNode.removeChild(B);continue;}else if (C.length<D){B.splitText(C.length);A.lastChild.parentNode.removeChild(A.lastChild);}};break;};if (!FCKBrowserInfo.IsIE&&!FCKBrowserInfo.IsOpera){B=A.lastChild;if (B&&B.nodeType==1&&B.nodeName.toLowerCase()=='br'){B.parentNode.removeChild(B);}}},RemoveNode:function(A,B){if (B){var C;while ((C=A.firstChild)) A.parentNode.insertBefore(A.removeChild(C),A);};return A.parentNode.removeChild(A);},GetFirstChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.firstChild;while(C){if (C.nodeType==1&&C.tagName.Equals.apply(C.tagName,B)) return C;C=C.nextSibling;};return null;},GetLastChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.lastChild;while(C){if (C.nodeType==1&&(!B||C.tagName.Equals(B))) return C;C=C.previousSibling;};return null;},GetPreviousSourceElement:function(A,B,C,D){if (!A) return null;if (C&&A.nodeType==1&&A.nodeName.IEquals(C)) return null;if (A.previousSibling) A=A.previousSibling;else return this.GetPreviousSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.lastChild) A=A.lastChild;else return this.GetPreviousSourceElement(A,B,C,D);};return null;},GetNextSourceElement:function(A,B,C,D,E){while((A=this.GetNextSourceNode(A,E))){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (D&&A.nodeName.IEquals(D)) return this.GetNextSourceElement(A,B,C,D);return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;};return null;},GetNextSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&&A.firstChild) E=A.firstChild;else{if (D&&A==D) return null;E=A.nextSibling;if (!E&&(!D||D!=A.parentNode)) return this.GetNextSourceNode(A.parentNode,true,C,D);};if (C&&E&&E.nodeType!=C) return this.GetNextSourceNode(E,false,C,D);return E;},GetPreviousSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&&A.lastChild) E=A.lastChild;else{if (D&&A==D) return null;E=A.previousSibling;if (!E&&(!D||D!=A.parentNode)) return this.GetPreviousSourceNode(A.parentNode,true,C,D);};if (C&&E&&E.nodeType!=C) return this.GetPreviousSourceNode(E,false,C,D);return E;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.unshift(A);A=A.parentNode;};return B;},GetCommonParents:function(A,B){var C=this.GetParents(A);var D=this.GetParents(B);var E=[];for (var i=0;i<C.length;i++){if (C[i]==D[i]) E.push(C[i]);};return E;},GetCommonParentNode:function(A,B,C){var D={};if (!C.pop) C=[C];while (C.length>0) D[C.pop().toLowerCase()]=1;var E=this.GetCommonParents(A,B);var F=null;while ((F=E.pop())){if (D[F.nodeName.toLowerCase()]) return F;};return null;},GetIndexOf:function(A){var B=A.parentNode?A.parentNode.firstChild:null;var C=-1;while (B){C++;if (B==A) return C;B=B.nextSibling;};return-1;},PaddingNode:null,EnforcePaddingNode:function(A,B){try{if (!A||!A.body) return;}catch (e){return;};this.CheckAndRemovePaddingNode(A,B,true);try{if (A.body.lastChild&&(A.body.lastChild.nodeType!=1||A.body.lastChild.tagName.toLowerCase()==B.toLowerCase())) return;}catch (e){return;};var C=A.createElement(B);if (FCKBrowserInfo.IsGecko&&FCKListsLib.NonEmptyBlockElements[B]) FCKTools.AppendBogusBr(C);this.PaddingNode=C;if (A.body.childNodes.length==1&&A.body.firstChild.nodeType==1&&A.body.firstChild.tagName.toLowerCase()=='br'&&(A.body.firstChild.getAttribute('_moz_dirty')!=null||A.body.firstChild.getAttribute('type')=='_moz')) A.body.replaceChild(C,A.body.firstChild);else A.body.appendChild(C);},CheckAndRemovePaddingNode:function(A,B,C){var D=this.PaddingNode;if (!D) return;try{if (D.parentNode!=A.body||D.tagName.toLowerCase()!=B||(D.childNodes.length>1)||(D.firstChild&&D.firstChild.nodeValue!='\xa0'&&String(D.firstChild.tagName).toLowerCase()!='br')){this.PaddingNode=null;return;}}catch (e){this.PaddingNode=null;return;};if (!C){if (D.parentNode.childNodes.length>1) D.parentNode.removeChild(D);this.PaddingNode=null;}},HasAttribute:function(A,B){if (A.hasAttribute) return A.hasAttribute(B);else{var C=A.attributes[B];return (C!=undefined&&C.specified);}},HasAttributes:function(A){var B=A.attributes;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsIE&&B[i].nodeName=='class'){if (A.className.length>0) return true;}else if (B[i].specified) return true;};return false;},RemoveAttribute:function(A,B){if (FCKBrowserInfo.IsIE&&B.toLowerCase()=='class') B='className';return A.removeAttribute(B,0);},GetAttributeValue:function(A,B){var C=B;if (typeof B=='string') B=A.attributes[B];else C=B.nodeName;if (B&&B.specified){if (C=='style') return A.style.cssText;else if (C=='class'||C.indexOf('on')==0) return B.nodeValue;else{return A.getAttribute(C,2);}};return null;},Contains:function(A,B){if (A.contains&&B.nodeType==1) return A.contains(B);while ((B=B.parentNode)){if (B==A) return true;};return false;},BreakParent:function(A,B,C){var D=C||new FCKDomRange(FCKTools.GetElementWindow(A));D.SetStart(A,4);D.SetEnd(B,4);var E=D.ExtractContents();D.InsertNode(A.parentNode.removeChild(A));E.InsertAfterNode(A);D.Release(!!C);},GetNodeAddress:function(A,B){var C=[];while (A&&A!=A.ownerDocument.documentElement){var D=A.parentNode;var E=-1;for(var i=0;i<D.childNodes.length;i++){var F=D.childNodes[i];if (B===true&&F.nodeType==3&&F.previousSibling&&F.previousSibling.nodeType==3) continue;E++;if (D.childNodes[i]==A) break;};C.unshift(E);A=A.parentNode;};return C;},GetNodeFromAddress:function(A,B,C){var D=A.documentElement;for (var i=0;i<B.length;i++){var E=B[i];if (!C){D=D.childNodes[E];continue;};var F=-1;for (var j=0;j<D.childNodes.length;j++){var G=D.childNodes[j];if (C===true&&G.nodeType==3&&G.previousSibling&&G.previousSibling.nodeType==3) continue;F++;if (F==E){D=G;break;}}};return D;},CloneElement:function(A){A=A.cloneNode(false);A.removeAttribute('id',false);return A;},ClearElementJSProperty:function(A,B){if (FCKBrowserInfo.IsIE) A.removeAttribute(B);else delete A[B];},SetElementMarker:function (A,B,C,D){var E=String(parseInt(Math.random()*0xfffffff,10));B._FCKMarkerId=E;B[C]=D;if (!A[E]) A[E]={ 'element':B,'markers':{} };A[E]['markers'][C]=D;},ClearElementMarkers:function(A,B,C){var D=B._FCKMarkerId;if (!D) return;this.ClearElementJSProperty(B,'_FCKMarkerId');for (var j in A[D]['markers']) this.ClearElementJSProperty(B,j);if (C) delete A[D];},ClearAllMarkers:function(A){for (var i in A) this.ClearElementMarkers(A,A[i]['element'],true);},ListToArray:function(A,B,C,D,E){if (!A.nodeName.IEquals(['ul','ol'])) return [];if (!D) D=0;if (!C) C=[];for (var i=0;i<A.childNodes.length;i++){var F=A.childNodes[i];if (!F.nodeName.IEquals('li')) continue;var G={ 'parent':A,'indent':D,'contents':[] };if (!E){G.grandparent=A.parentNode;if (G.grandparent&&G.grandparent.nodeName.IEquals('li')) G.grandparent=G.grandparent.parentNode;}else G.grandparent=E;if (B) this.SetElementMarker(B,F,'_FCK_ListArray_Index',C.length);C.push(G);for (var j=0;j<F.childNodes.length;j++){var H=F.childNodes[j];if (H.nodeName.IEquals(['ul','ol'])) this.ListToArray(H,B,C,D+1,G.grandparent);else G.contents.push(H);}};return C;},ArrayToList:function(A,B,C){if (C==undefined) C=0;if (!A||A.length<C+1) return null;var D=A[C].parent.ownerDocument;var E=D.createDocumentFragment();var F=null;var G=C;var H=Math.max(A[C].indent,0);var I=null;while (true){var J=A[G];if (J.indent==H){if (!F||A[G].parent.nodeName!=F.nodeName){F=A[G].parent.cloneNode(false);E.appendChild(F);};I=D.createElement('li');F.appendChild(I);for (var i=0;i<J.contents.length;i++) I.appendChild(J.contents[i].cloneNode(true));G++;}else if (J.indent==Math.max(H,0)+1){var K=this.ArrayToList(A,null,G);I.appendChild(K.listNode);G=K.nextIndex;}else if (J.indent==-1&&C==0&&J.grandparent){var I;if (J.grandparent.nodeName.IEquals(['ul','ol'])) I=D.createElement('li');else{if (FCKConfig.EnterMode.IEquals(['div','p'])&&!J.grandparent.nodeName.IEquals('td')) I=D.createElement(FCKConfig.EnterMode);else I=D.createDocumentFragment();};for (var i=0;i<J.contents.length;i++) I.appendChild(J.contents[i].cloneNode(true));if (I.nodeType==11){if (I.lastChild&&I.lastChild.getAttribute&&I.lastChild.getAttribute('type')=='_moz') I.removeChild(I.lastChild);I.appendChild(D.createElement('br'));};if (I.nodeName.IEquals(FCKConfig.EnterMode)&&I.firstChild){this.TrimNode(I);if (FCKListsLib.BlockBoundaries[I.firstChild.nodeName.toLowerCase()]){var M=D.createDocumentFragment();while (I.firstChild) M.appendChild(I.removeChild(I.firstChild));I=M;}};if (FCKBrowserInfo.IsGeckoLike&&I.nodeName.IEquals(['div','p'])) FCKTools.AppendBogusBr(I);E.appendChild(I);F=null;G++;}else return null;if (A.length<=G||Math.max(A[G].indent,0)<H){break;}};if (B){var N=E.firstChild;while (N){if (N.nodeType==1) this.ClearElementMarkers(B,N);N=this.GetNextSourceNode(N);}};return { 'listNode':E,'nextIndex':G };},GetNextSibling:function(A,B){A=A.nextSibling;while (A&&!B&&A.nodeType!=1&&(A.nodeType!=3||A.nodeValue.length==0)) A=A.nextSibling;return A;},GetPreviousSibling:function(A,B){A=A.previousSibling;while (A&&!B&&A.nodeType!=1&&(A.nodeType!=3||A.nodeValue.length==0)) A=A.previousSibling;return A;},CheckIsEmptyElement:function(A,B){var C=A.firstChild;var D;while (C){if (C.nodeType==1){if (D||!FCKListsLib.InlineNonEmptyElements[C.nodeName.toLowerCase()]) return false;if (!B||B(C)===true) D=C;}else if (C.nodeType==3&&C.nodeValue.length>0) return false;C=C.nextSibling;};return D?this.CheckIsEmptyElement(D,B):true;},SetElementStyles:function(A,B){var C=A.style;for (var D in B) C[D]=B[D];},GetCurrentElementStyle:function(w,A,B){if (FCKBrowserInfo.IsIE) return A.currentStyle[B];else return w.getComputedStyle(A,'')[B];},GetPositionedAncestor:function(w,A){var B=A;while (B!=B.ownerDocument.documentElement){if (this.GetCurrentElementStyle(w,B,'position')!='static') return B;B=B.parentNode;};return null;},ScrollIntoView:function(A,B){var C=FCKTools.GetElementWindow(A);var D=FCKTools.GetViewPaneSize(C).Height;var E=D*-1;if (B===false){E+=A.offsetHeight;E+=parseInt(this.GetCurrentElementStyle(C,A,'marginBottom')||0,10);};E+=A.offsetTop;while ((A=A.offsetParent)) E+=A.offsetTop||0;var F=FCKTools.GetScrollPosition(C).Y;if (E>0&&E>F) C.scrollTo(0,E);}}; +var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.AppendStyleSheet=function(A,B){if (typeof(B)=='string') return this._AppendStyleSheet(A,B);else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.AppendStyleString=function (A,B){this._AppendStyleString(A,B);};FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&&!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.FixDocumentParentWindow=function(A){if (A.document) A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&amp;');A=A.replace(/</g,'&lt;');A=A.replace(/>/g,'&gt;');return A;};FCKTools.HTMLDecode=function(A){if (!A) return '';A=A.replace(/&gt;/g,'>');A=A.replace(/&lt;/g,'<');A=A.replace(/&amp;/g,'&');return A;};FCKTools._ProcessLineBreaksForPMode=function(A,B,C,D,E){var F=0;var G="<p>";var H="</p>";var I="<br />";if (C){G="<li>";H="</li>";F=1;};while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='p'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};var n=B.charAt(i+1);if (n=='\r'){i++;n=B.charAt(i+1);};if (n=='\n'){i++;if (F) E.push(H);E.push(G);F=1;}else E.push(I);}};FCKTools._ProcessLineBreaksForDivMode=function(A,B,C,D,E){var F=0;var G="<div>";var H="</div>";if (C){G="<li>";H="</li>";F=1;};while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='div'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F){if (E[E.length-1]==G){E.push("&nbsp;");};E.push(H);};E.push(G);F=1;};if (F) E.push(H);};FCKTools._ProcessLineBreaksForBrMode=function(A,B,C,D,E){var F=0;var G="<br />";var H="";if (C){G="<li>";H="</li>";F=1;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F&&H.length) E.push (H);E.push(G);F=1;}};FCKTools.ProcessLineBreaks=function(A,B,C){var D=B.EnterMode.toLowerCase();var E=[];var F=0;var G=new A.FCKDomRange(A.FCK.EditorWindow);G.MoveToSelection();var H=G._Range.startContainer;while (H&&H.nodeType!=1) H=H.parentNode;if (H&&H.tagName.toLowerCase()=='li') F=1;if (D=='p') this._ProcessLineBreaksForPMode(A,C,F,H,E);else if (D=='div') this._ProcessLineBreaksForDivMode(A,C,F,H,E);else if (D=='br') this._ProcessLineBreaksForBrMode(A,C,F,H,E);return E.join("");};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i<arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||'CSS1Compat'));};FCKTools.ArgumentsToArray=function(A,B,C){B=B||0;C=C||A.length;var D=[];for (var i=B;i<B+C&&i<A.length;i++) D.push(A[i]);return D;};FCKTools.CloneObject=function(A){var B=function() {};B.prototype=A;return new B;};FCKTools.AppendBogusBr=function(A){if (!A) return;var B=this.GetLastItem(A.getElementsByTagName('br'));if (!B||(B.getAttribute('type',2)!='_moz'&&B.getAttribute('_moz_dirty')==null)){var C=this.GetElementDocument(A);if (FCKBrowserInfo.IsOpera) A.appendChild(C.createTextNode(''));else A.appendChild(this.CreateBogusBR(C));}};FCKTools.GetLastItem=function(A){if (A.length>0) return A[A.length-1];return null;};FCKTools.GetDocumentPosition=function(w,A){var x=0;var y=0;var B=A;var C=null;var D=FCKTools.GetElementWindow(B);while (B&&!(D==w&&(B==w.document.body||B==w.document.documentElement))){x+=B.offsetLeft-B.scrollLeft;y+=B.offsetTop-B.scrollTop;if (!FCKBrowserInfo.IsOpera){var E=C;while (E&&E!=B){x-=E.scrollLeft;y-=E.scrollTop;E=E.parentNode;}};C=B;if (B.offsetParent) B=B.offsetParent;else{if (D!=w){B=D.frameElement;C=null;if (B) D=FCKTools.GetElementWindow(B);}else B=null;}};if (FCKDomTools.GetCurrentElementStyle(w,w.document.body,'position')!='static'||(FCKBrowserInfo.IsIE&&FCKDomTools.GetPositionedAncestor(w,A)==null)){x+=w.document.body.offsetLeft;y+=w.document.body.offsetTop;};return { "x":x,"y":y };};FCKTools.GetWindowPosition=function(w,A){var B=this.GetDocumentPosition(w,A);var C=FCKTools.GetScrollPosition(w);B.x-=C.X;B.y-=C.Y;return B;};FCKTools.ProtectFormStyles=function(A){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return [];var B=[];var C=['style','className'];for (var i=0;i<C.length;i++){var D=C[i];if (A.elements.namedItem(D)){var E=A.elements.namedItem(D);B.push([E,E.nextSibling]);A.removeChild(E);}};return B;};FCKTools.RestoreFormStyles=function(A,B){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return;if (B.length>0){for (var i=B.length-1;i>=0;i--){var C=B[i][0];var D=B[i][1];if (D) A.insertBefore(C,D);else A.appendChild(C);}}};FCKTools.GetNextNode=function(A,B){if (A.firstChild) return A.firstChild;else if (A.nextSibling) return A.nextSibling;else{var C=A.parentNode;while (C){if (C==B) return null;if (C.nextSibling) return C.nextSibling;else C=C.parentNode;}};return null;};FCKTools.GetNextTextNode=function(A,B,C){node=this.GetNextNode(A,B);if (C&&node&&C(node)) return null;while (node&&node.nodeType!=3){node=this.GetNextNode(node,B);if (C&&node&&C(node)) return null;};return node;};FCKTools.Merge=function(){var A=arguments;var o=A[0];for (var i=1;i<A.length;i++){var B=A[i];for (var p in B) o[p]=B[p];};return o;};FCKTools.IsArray=function(A){return (A instanceof Array);};FCKTools.AppendLengthProperty=function(A,B){var C=0;for (var n in A) C++;return A[B||'length']=C;};FCKTools.NormalizeCssText=function(A){var B=document.createElement('span');B.style.cssText=A;return B.style.cssText;};FCKTools.Hitch=function(A,B){return function() { A[B].apply(A,arguments);};}; +FCKTools.CancelEvent=function(e){if (e) e.preventDefault();};FCKTools.DisableSelection=function(A){if (FCKBrowserInfo.IsGecko) A.style.MozUserSelect='none';else A.style.userSelect='none';};FCKTools._AppendStyleSheet=function(A,B){var e=A.createElement('LINK');e.rel='stylesheet';e.type='text/css';e.href=B;A.getElementsByTagName("HEAD")[0].appendChild(e);return e;};FCKTools._AppendStyleString=function(A,B){var e=A.createElement("STYLE");e.appendChild(A.createTextNode(B));A.getElementsByTagName("HEAD")[0].appendChild(e);return e;};FCKTools.ClearElementAttributes=function(A){for (var i=0;i<A.attributes.length;i++){A.removeAttribute(A.attributes[i].name,0);}};FCKTools.GetAllChildrenIds=function(A){var B=[];var C=function(parent){for (var i=0;i<parent.childNodes.length;i++){var D=parent.childNodes[i].id;if (D&&D.length>0) B[B.length]=D;C(parent.childNodes[i]);}};C(A);return B;};FCKTools.RemoveOuterTags=function(e){var A=e.ownerDocument.createDocumentFragment();for (var i=0;i<e.childNodes.length;i++) A.appendChild(e.childNodes[i].cloneNode(true));e.parentNode.replaceChild(A,e);};FCKTools.CreateXmlObject=function(A){switch (A){case 'XmlHttp':return new XMLHttpRequest();case 'DOMDocument':return document.implementation.createDocument('','',null);};return null;};FCKTools.GetScrollPosition=function(A){return { X:A.pageXOffset,Y:A.pageYOffset };};FCKTools.AddEventListener=function(A,B,C){A.addEventListener(B,C,false);};FCKTools.RemoveEventListener=function(A,B,C){A.removeEventListener(B,C,false);};FCKTools.AddEventListenerEx=function(A,B,C,D){A.addEventListener(B,function(e){C.apply(A,[e].concat(D||[]));},false);};FCKTools.GetViewPaneSize=function(A){return { Width:A.innerWidth,Height:A.innerHeight };};FCKTools.SaveStyles=function(A){var B=FCKTools.ProtectFormStyles(A);var C={};if (A.className.length>0){C.Class=A.className;A.className='';};var D=A.getAttribute('style');if (D&&D.length>0){C.Inline=D;A.setAttribute('style','',0);};FCKTools.RestoreFormStyles(A,B);return C;};FCKTools.RestoreStyles=function(A,B){var C=FCKTools.ProtectFormStyles(A);A.className=B.Class||'';if (B.Inline) A.setAttribute('style',B.Inline,0);else A.removeAttribute('style',0);FCKTools.RestoreFormStyles(A,C);};FCKTools.RegisterDollarFunction=function(A){A.$=function(id){return this.document.getElementById(id);};};FCKTools.AppendElement=function(A,B){return A.appendChild(A.ownerDocument.createElement(B));};FCKTools.GetElementPosition=function(A,B){var c={ X:0,Y:0 };var C=B||window;var D=FCKTools.GetElementWindow(A);var E=null;while (A){var F=D.getComputedStyle(A,'').position;if (F&&F!='static'&&A.style.zIndex!=FCKConfig.FloatingPanelsZIndex) break;c.X+=A.offsetLeft-A.scrollLeft;c.Y+=A.offsetTop-A.scrollTop;if (!FCKBrowserInfo.IsOpera){var G=E;while (G&&G!=A){c.X-=G.scrollLeft;c.Y-=G.scrollTop;G=G.parentNode;}};E=A;if (A.offsetParent) A=A.offsetParent;else{if (D!=C){A=D.frameElement;E=null;if (A) D=FCKTools.GetElementWindow(A);}else{c.X+=A.scrollLeft;c.Y+=A.scrollTop;break;}}};return c;}; +var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='var FCKeditorAPI = {Version : "2.5",VersionBuild : "17352",__Instances : new Object(),GetInstance : function( name ){return this.__Instances[ name ];},_FormSubmit : function(){for ( var name in FCKeditorAPI.__Instances ){var oEditor = FCKeditorAPI.__Instances[ name ] ;if ( oEditor.GetParentForm && oEditor.GetParentForm() == this )oEditor.UpdateLinkedField() ;}this._FCKOriginalSubmit() ;},_FunctionQueue : {Functions : new Array(),IsRunning : false,Add : function( f ){this.Functions.push( f );if ( !this.IsRunning )this.StartNext();},StartNext : function(){var aQueue = this.Functions ;if ( aQueue.length > 0 ){this.IsRunning = true;aQueue[0].call();}else this.IsRunning = false;},Remove : function( f ){var aQueue = this.Functions;var i = 0, fFunc;while( (fFunc = aQueue[ i ]) ){if ( fFunc == f )aQueue.splice( i,1 );i++ ;}this.StartNext();}}}';if (A.execScript) A.execScript(B,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if (FCKBrowserInfo.IsSafari||FCKBrowserInfo.IsGecko19){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;};FCKeditorAPI.__Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&&(typeof(A.submit)=='function'||(!A.submit.tagName&&!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){if (!window.FCKUnloadFlag) return;delete FCKeditorAPI.__Instances[FCK.Name];};function FCKeditorAPI_ConfirmCleanup(){window.FCKUnloadFlag=true;};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);FCKTools.AddEventListener(window,'beforeunload',FCKeditorAPI_ConfirmCleanup); +var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i<A.length;i++){var B=document.createElement('img');FCKTools.AddEventListenerEx(B,'load',_FCKImagePreloader_OnImage,this);FCKTools.AddEventListenerEx(B,'error',_FCKImagePreloader_OnImage,this);B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(A,B){if ((--B._PreloadCount)==0&&B.OnComplete) B.OnComplete();} +var FCKRegexLib={AposEntity:/&apos;/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BeforeBody:/(^[\s\S]*\<body[^\>]*\>)/i,AfterBody:/(\<\/body\>[\s\S]*$)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HasBodyTag:/<body[\s|>]/i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/\s*FCK__[^ ]*(?=\s+|$)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>\s*(<\/\1>)?$/,EmptyOutParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>(?:\s*|&nbsp;)(<\/\1>)?$/,TagBody:/></,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/<img(?=\s).*?\ssrc=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,ProtectUrlsA:/<a(?=\s).*?\shref=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,ProtectUrlsArea:/<area(?=\s).*?\shref=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,Html4DocType:/HTML 4\.0 Transitional/i,DocTypeTag:/<!DOCTYPE[^>]*>/i,TagsWithEvent:/<[^\>]+ on\w+[\s\r\n]*=[\s\r\n]*?('|")[\s\S]+?\>/g,EventAttributes:/\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|")([\s\S]*?)\2/g,ProtectedEvents:/\s\w+_fckprotectedatt="([^"]+)"/g,StyleProperties:/\S+\s*:/g,InvalidSelfCloseTags:/(<(?!base|meta|link|hr|br|param|img|area|input)([a-zA-Z0-9:]+)[^>]*)\/>/gi,StyleVariableAttName:/#\(\s*("|')(.+?)\1[^\)]*\s*\)/g,RegExp:/^\/(.*)\/([gim]*)$/}; +var FCKListsLib={BlockElements:{ address:1,blockquote:1,center:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,marquee:1,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 },NonEmptyBlockElements:{ p:1,div:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,address:1,pre:1,ol:1,ul:1,li:1,td:1,th:1 },InlineChildReqElements:{ abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },InlineNonEmptyElements:{ a:1,abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },EmptyElements:{ base:1,col:1,meta:1,link:1,hr:1,br:1,param:1,img:1,area:1,input:1 },PathBlockElements:{ address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,de:1 },PathBlockLimitElements:{ body:1,div:1,td:1,th:1,caption:1,form:1 },StyleBlockElements:{ address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1 },StyleObjectElements:{ img:1,hr:1,li:1,table:1,tr:1,td:1,embed:1,object:1,ol:1,ul:1 },BlockBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1 },ListBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1,br:1 }}; +var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French',gl:'Galician',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',it:'Italian',ja:'Japanese',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},GetActiveLanguage:function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length>=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length>=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;},TranslateElements:function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i<e.length;i++){if ((E=e[i].getAttribute('fckLang'))){if ((s=FCKLang[E])){if (D) s=FCKTools.HTMLEncode(s);e[i][C]=s;}}}},TranslatePage:function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);this.TranslateElements(A,'LEGEND','innerHTML');},Initialize:function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage={};this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}}; +var FCKXHtmlEntities={};FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';var B,e;if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.Entities={' ':'nbsp','¡':'iexcl','¢':'cent','£':'pound','¤':'curren','Â¥':'yen','¦':'brvbar','§':'sect','¨':'uml','©':'copy','ª':'ordf','«':'laquo','¬':'not','­':'shy','®':'reg','¯':'macr','°':'deg','±':'plusmn','²':'sup2','³':'sup3','´':'acute','µ':'micro','¶':'para','·':'middot','¸':'cedil','¹':'sup1','º':'ordm','»':'raquo','¼':'frac14','½':'frac12','¾':'frac34','¿':'iquest','×':'times','÷':'divide','Æ’':'fnof','•':'bull','…':'hellip','′':'prime','″':'Prime','‾':'oline','â„':'frasl','℘':'weierp','â„‘':'image','â„œ':'real','â„¢':'trade','ℵ':'alefsym','â†':'larr','↑':'uarr','→':'rarr','↓':'darr','↔':'harr','↵':'crarr','â‡':'lArr','⇑':'uArr','⇒':'rArr','⇓':'dArr','⇔':'hArr','∀':'forall','∂':'part','∃':'exist','∅':'empty','∇':'nabla','∈':'isin','∉':'notin','∋':'ni','âˆ':'prod','∑':'sum','−':'minus','∗':'lowast','√':'radic','âˆ':'prop','∞':'infin','∠':'ang','∧':'and','∨':'or','∩':'cap','∪':'cup','∫':'int','∴':'there4','∼':'sim','≅':'cong','≈':'asymp','≠':'ne','≡':'equiv','≤':'le','≥':'ge','⊂':'sub','⊃':'sup','⊄':'nsub','⊆':'sube','⊇':'supe','⊕':'oplus','⊗':'otimes','⊥':'perp','â‹…':'sdot','\u2308':'lceil','\u2309':'rceil','\u230a':'lfloor','\u230b':'rfloor','\u2329':'lang','\u232a':'rang','â—Š':'loz','â™ ':'spades','♣':'clubs','♥':'hearts','♦':'diams','"':'quot','ˆ':'circ','Ëœ':'tilde',' ':'ensp',' ':'emsp',' ':'thinsp','‌':'zwnj','â€':'zwj','‎':'lrm','â€':'rlm','–':'ndash','—':'mdash','‘':'lsquo','’':'rsquo','‚':'sbquo','“':'ldquo','â€':'rdquo','„':'bdquo','†':'dagger','‡':'Dagger','‰':'permil','‹':'lsaquo','›':'rsaquo','€':'euro'};for (e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){B={'À':'Agrave','Ã':'Aacute','Â':'Acirc','Ã':'Atilde','Ä':'Auml','Ã…':'Aring','Æ':'AElig','Ç':'Ccedil','È':'Egrave','É':'Eacute','Ê':'Ecirc','Ë':'Euml','ÃŒ':'Igrave','Ã':'Iacute','ÃŽ':'Icirc','Ã':'Iuml','Ã':'ETH','Ñ':'Ntilde','Ã’':'Ograve','Ó':'Oacute','Ô':'Ocirc','Õ':'Otilde','Ö':'Ouml','Ø':'Oslash','Ù':'Ugrave','Ú':'Uacute','Û':'Ucirc','Ãœ':'Uuml','Ã':'Yacute','Þ':'THORN','ß':'szlig','à':'agrave','á':'aacute','â':'acirc','ã':'atilde','ä':'auml','Ã¥':'aring','æ':'aelig','ç':'ccedil','è':'egrave','é':'eacute','ê':'ecirc','ë':'euml','ì':'igrave','í':'iacute','î':'icirc','ï':'iuml','ð':'eth','ñ':'ntilde','ò':'ograve','ó':'oacute','ô':'ocirc','õ':'otilde','ö':'ouml','ø':'oslash','ù':'ugrave','ú':'uacute','û':'ucirc','ü':'uuml','ý':'yacute','þ':'thorn','ÿ':'yuml','Å’':'OElig','Å“':'oelig','Å ':'Scaron','Å¡':'scaron','Ÿ':'Yuml'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){B={'Α':'Alpha','Î’':'Beta','Γ':'Gamma','Δ':'Delta','Ε':'Epsilon','Ζ':'Zeta','Η':'Eta','Θ':'Theta','Ι':'Iota','Κ':'Kappa','Λ':'Lambda','Îœ':'Mu','Î':'Nu','Ξ':'Xi','Ο':'Omicron','Π':'Pi','Ρ':'Rho','Σ':'Sigma','Τ':'Tau','Î¥':'Upsilon','Φ':'Phi','Χ':'Chi','Ψ':'Psi','Ω':'Omega','α':'alpha','β':'beta','γ':'gamma','δ':'delta','ε':'epsilon','ζ':'zeta','η':'eta','θ':'theta','ι':'iota','κ':'kappa','λ':'lambda','μ':'mu','ν':'nu','ξ':'xi','ο':'omicron','Ï€':'pi','Ï':'rho','Ï‚':'sigmaf','σ':'sigma','Ï„':'tau','Ï…':'upsilon','φ':'phi','χ':'chi','ψ':'psi','ω':'omega','\u03d1':'thetasym','\u03d2':'upsih','\u03d6':'piv'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={};A=' ';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&&D.length>0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');}; +var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKDomTools.CheckAndRemovePaddingNode(A.ownerDocument,FCKConfig.EnterMode);FCKXHtmlEntities.Initialize();this._NbspEntity=(FCKConfig.ProcessHTMLEntities?'nbsp':'#160');var D=FCK.IsDirty();FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;if (FCKBrowserInfo.IsSafari) E=E.replace(/^<xhtml.*?>/,'<xhtml>');E=E.substr(7,E.length-15).Trim();E=E.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i<FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&');if (!D) FCK.ResetIsDirty();FCKDomTools.EnforcePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);return E;};FCKXHtml._AppendAttribute=function(A,B,C){try{if (C==undefined||C==null) C='';else if (C.replace){if (FCKConfig.ForceSimpleAmpersand) C=C.replace(/&/g,'___FCKAmp___');C=C.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity);};var D=this.XML.createAttribute(B);D.value=C;A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){var D=B.firstChild;while (D){this._AppendNode(A,D);D=D.nextSibling;};if (C&&B.tagName&&B.tagName.toLowerCase()!='pre'){FCKDomTools.TrimNode(A);if (FCKConfig.FillEmptyBlocks){var E=A.lastChild;if (E&&E.nodeType==1&&E.nodeName=='br') this._AppendEntity(A,this._NbspEntity);}};if (A.childNodes.length==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,this._NbspEntity);return A;};var F=A.nodeName;if (FCKListsLib.InlineChildReqElements[F]) return null;if (!FCKListsLib.EmptyElements[F]) A.appendChild(this.XML.createTextNode(''));};return A;};FCKXHtml._AppendNode=function(A,B){if (!B) return false;switch (B.nodeType){case 1:if (FCKBrowserInfo.IsGecko&&B.tagName.toLowerCase()=='br'&&B.parentNode.tagName.toLowerCase()=='pre'){var C='\r';if (B==B.parentNode.firstChild) C+='\r';return FCKXHtml._AppendNode(A,this.XML.createTextNode(C));};if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.nextSibling&&(B.hasAttribute('_moz_editor_bogus_node')||B.getAttribute('type')=='_moz')) return false;if (B.getAttribute('_fcktemp')) return false;var D=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&&B.scopeName!='HTML'&&B.scopeName!='FCK') D=B.scopeName.toLowerCase()+':'+D;}else{if (D.StartsWith('fck:')) D=D.Remove(0,4);};if (!FCKRegexLib.ElementName.test(D)) return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var E=this.XML.createElement(D);FCKXHtml._AppendAttributes(A,B,E,D);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var F=FCKXHtml.TagProcessors[D];if (F) E=F(E,B,A);else E=this._AppendChildNodes(E,B,Boolean(FCKListsLib.NonEmptyBlockElements[D]));if (!E) return false;A.appendChild(E);break;case 3:if (B.parentNode&&B.parentNode.nodeName.IEquals('pre')) return this._AppendTextNode(A,B.nodeValue);return this._AppendTextNode(A,B.nodeValue.ReplaceNewLineChars(' '));case 8:if (FCKBrowserInfo.IsIE&&!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) {/*Do nothing... probably this is a wrong format comment.*/};break;default:A.appendChild(this.XML.createComment("Element not supported - Type: "+B.nodeType+" Name: "+B.nodeName));break;};return true;};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.AddItem(A);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){var C=B.length>0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml.TagProcessors={a:function(A,B){if (B.innerHTML.Trim().length==0&&!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};A=FCKXHtml._AppendChildNodes(A,B,false);return A;},area:function(A,B){var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (!A.attributes.getNamedItem('coords')){var D=B.getAttribute('coords',2);if (D&&D!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',D);};if (!A.attributes.getNamedItem('shape')){var E=B.getAttribute('shape',2);if (E&&E.length>0) FCKXHtml._AppendAttribute(A,'shape',E.toLowerCase());}};return A;},body:function(A,B){A=FCKXHtml._AppendChildNodes(A,B,false);A.removeAttribute('spellcheck');return A;},iframe:function(A,B){var C=B.innerHTML;if (FCKBrowserInfo.IsGecko) C=FCKTools.HTMLDecode(C);C=C.replace(/\s_fcksavedurl="[^"]*"/g,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);return A;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&&D.nodeType==3) D=D.previousSibling;if (D&&D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};A=FCKXHtml._AppendChildNodes(A,B);return A;},pre:function (A,B){var C=B.firstChild;if (C&&C.nodeType==3) A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem('\r\n')));FCKXHtml._AppendChildNodes(A,B,true);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},span:function(A,B){if (B.innerHTML.length==0) return false;A=FCKXHtml._AppendChildNodes(A,B,false);return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');var C=B.innerHTML;if (FCKBrowserInfo.IsIE) C=C.replace(/^(\r\n|\n|\r)/,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol; +FCKXHtml._GetMainXmlString=function(){var A=new XMLSerializer();return A.serializeToString(this.MainNode);};FCKXHtml._AppendAttributes=function(A,B,C){var D=B.attributes;for (var n=0;n<D.length;n++){var E=D[n];if (E.specified){var F=E.nodeName.toLowerCase();var G;if (F.StartsWith('_fck')) continue;else if (F.indexOf('_moz')==0) continue;else if (F=='class'){G=E.nodeValue.replace(FCKRegexLib.FCK_Class,'');if (G.length==0) continue;}else if (E.nodeValue===true) G=F;else G=B.getAttribute(F,2);this._AppendAttribute(C,F,G);}}};if (FCKBrowserInfo.IsOpera){FCKXHtml.TagProcessors['head']=function(A,B){FCKXHtml.XML._HeadElement=A;A=FCKXHtml._AppendChildNodes(A,B,true);return A;};FCKXHtml.TagProcessors['meta']=function(A,B,C){if (B.parentNode.nodeName.toLowerCase()!='head'){var D=FCKXHtml.XML._HeadElement;if (D&&C!=D){delete B._fckxhtmljob;FCKXHtml._AppendNode(D,B);return null;}};return A;}} var FCKCodeFormatter={};FCKCodeFormatter.Init=function(){var A=this.Regex={};A.BlocksOpener=/\<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.BlocksCloser=/\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.NewLineTags=/\<(BR|HR)[^\>]*\>/gi;A.MainTags=/\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi;A.LineSplitter=/\s*\n+\s*/g;A.IncreaseIndent=/^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i;A.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i;A.FormatIndentatorRemove=new RegExp('^'+FCKConfig.FormatIndentator);A.ProtectedTags=/(<PRE[^>]*>)([\s\S]*?)(<\/PRE>)/gi;};FCKCodeFormatter._ProtectData=function(A,B,C,D){return B+'___FCKpd___'+FCKCodeFormatter.ProtectedData.AddItem(C)+D;};FCKCodeFormatter.Format=function(A){if (!this.Regex) this.Init();FCKCodeFormatter.ProtectedData=[];var B=A.replace(this.Regex.ProtectedTags,FCKCodeFormatter._ProtectData);B=B.replace(this.Regex.BlocksOpener,'\n$&');B=B.replace(this.Regex.BlocksCloser,'$&\n');B=B.replace(this.Regex.NewLineTags,'$&\n');B=B.replace(this.Regex.MainTags,'\n$&\n');var C='';var D=B.split(this.Regex.LineSplitter);B='';for (var i=0;i<D.length;i++){var E=D[i];if (E.length==0) continue;if (this.Regex.DecreaseIndent.test(E)) C=C.replace(this.Regex.FormatIndentatorRemove,'');B+=C+E+'\n';if (this.Regex.IncreaseIndent.test(E)) C+=FCKConfig.FormatIndentator;};for (var j=0;j<FCKCodeFormatter.ProtectedData.length;j++){var F=new RegExp('___FCKpd___'+j);B=B.replace(F,FCKCodeFormatter.ProtectedData[j].replace(/\$/g,'$$$$'));};return B.Trim();} -var FCKUndo={};FCKUndo.SaveUndoStep=function(){} -var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=0;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);while(C.childNodes.length>0) C.removeChild(C.childNodes[0]);if (this.Mode==0){var E=this.IFrame=D.createElement('iframe');E.src='javascript:void(0)';E.frameBorder=0;E.width=E.height='100%';C.appendChild(E);if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){if (FCKBrowserInfo.IsGecko) A=A.replace(/(<body[^>]*>)\s*(<\/body>)/i,'$1'+GECKO_BOGUS+'$2');var F=A.match(FCKRegexLib.BodyContents);if (F){A=F[1]+'&nbsp;'+F[3];this._BodyHTML=F[2];}else this._BodyHTML=A;};this.Window=E.contentWindow;var G=this.Document=this.Window.document;G.open();G.write(A);G.close();if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}else{var H=this.Textarea=D.createElement('textarea');H.className='SourceField';H.dir='ltr';H.style.width=H.style.height='100%';H.style.border='none';C.appendChild(H);H.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.contentEditable=true;}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;this._BodyHTML=null;};A.designMode='on';try{A.execCommand('styleWithCSS',false,FCKConfig.GeckoUseSPAN);}catch (e){A.execCommand('useCSS',false,!FCKConfig.GeckoUseSPAN);};A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e) {}}};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE&&this.Document.hasFocus()) return;if (FCKBrowserInfo.IsSafari) this.IFrame.focus();else{this.Window.focus();}}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&&A.activeElement==this.Textarea) return;this.Textarea.focus();}}catch(e) {}};function FCKEditingArea_Cleanup(){this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}} -var FCKKeystrokeHandler=function(A){this.Keystrokes={};this.CancelCtrlDefaults=(A!==false);};FCKKeystrokeHandler.prototype.AttachToElement=function(A){FCKTools.AddEventListenerEx(A,'keydown',_FCKKeystrokeHandler_OnKeyDown,this);if (FCKBrowserInfo.IsGecko10||FCKBrowserInfo.IsOpera||(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac)) FCKTools.AddEventListenerEx(A,'keypress',_FCKKeystrokeHandler_OnKeyPress,this);};FCKKeystrokeHandler.prototype.SetKeystrokes=function(){for (var i=0;i<arguments.length;i++){var A=arguments[i];if (typeof(A[0])=='object') this.SetKeystrokes.apply(this,A);else{if (A.length==1) delete this.Keystrokes[A[0]];else this.Keystrokes[A[0]]=A[1]===true?true:A;}}};function _FCKKeystrokeHandler_OnKeyDown(A,B){var C=A.keyCode||A.which;var D=0;if (A.ctrlKey||A.metaKey) D+=CTRL;if (A.shiftKey) D+=SHIFT;if (A.altKey) D+=ALT;var E=C+D;var F=B._CancelIt=false;var G=B.Keystrokes[E];if (G){if (G===true||!(B.OnKeystroke&&B.OnKeystroke.apply(B,G))) return true;F=true;};if (F||(B.CancelCtrlDefaults&&D==CTRL&&(C<33||C>40))){B._CancelIt=true;if (A.preventDefault) return A.preventDefault();A.returnValue=false;A.cancelBubble=true;return false;};return true;};function _FCKKeystrokeHandler_OnKeyPress(A,B){if (B._CancelIt){if (A.preventDefault) return A.preventDefault();return false;};return true;} -var FCKListHandler={OutdentListItem:function(A){var B=A.parentNode;if (B.tagName.toUpperCase().Equals('UL','OL')){var C=FCKTools.GetElementDocument(A);var D=new FCKDocumentFragment(C);var E=D.RootNode;var F=false;var G=FCKDomTools.GetFirstChild(A,['UL','OL']);if (G){F=true;var H;while ((H=G.firstChild)) E.appendChild(G.removeChild(H));FCKDomTools.RemoveNode(G);};var I;var J=false;while ((I=A.nextSibling)){if (!F&&I.nodeType==1&&I.nodeName.toUpperCase()=='LI') J=F=true;E.appendChild(I.parentNode.removeChild(I));if (!J&&I.nodeType==1&&I.nodeName.toUpperCase().Equals('UL','OL')) FCKDomTools.RemoveNode(I,true);};var K=B.parentNode.tagName.toUpperCase();var L=(K=='LI');if (L||K.Equals('UL','OL')){if (F){var G=B.cloneNode(false);D.AppendTo(G);A.appendChild(G);}else if (L) D.InsertAfterNode(B.parentNode);else D.InsertAfterNode(B);if (L) FCKDomTools.InsertAfterNode(B.parentNode,B.removeChild(A));else FCKDomTools.InsertAfterNode(B,B.removeChild(A));}else{if (F){var N=B.cloneNode(false);D.AppendTo(N);FCKDomTools.InsertAfterNode(B,N);};var O=C.createElement('p');FCKDomTools.MoveChildren(B.removeChild(A),O);FCKDomTools.InsertAfterNode(B,O);A=O;};if (this.CheckEmptyList(B)) FCKDomTools.RemoveNode(B,true);};return A;},CheckEmptyList:function(A){return (FCKDomTools.GetFirstChild(A,'LI')==null);},CheckListHasContents:function(A){var B=A.firstChild;while (B){switch (B.nodeType){case 1:if (!B.nodeName.IEquals('UL','LI')) return true;break;case 3:if (B.nodeValue.Trim().length>0) return true;};B=B.nextSibling;};return false;}}; -var FCKElementPath=function(A){var B=null;var C=null;var D=[];var e=A;while (e){if (e.nodeType==1){if (!this.LastElement) this.LastElement=e;var E=e.nodeName.toLowerCase();if (!C&&!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (!C&&(/^(?:body|td|th|caption|form)$/).test(E)) C=e;D.push(e);if (E=='BODY') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;}; -var FCKDomRange=function(A){this.Window=A;};FCKDomRange.prototype={_UpdateElementInfo:function(){if (!this._Range) this.Release(true);else{var A=this._Range.startContainer;var B=this._Range.endContainer;var C=new FCKElementPath(A);this.StartContainer=C.LastElement;this.StartBlock=C.Block;this.StartBlockLimit=C.BlockLimit;if (A!=B) C=new FCKElementPath(B);this.EndContainer=C.LastElement;this.EndBlock=C.Block;this.EndBlockLimit=C.BlockLimit;}},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateElementInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;}},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;},Collapse:function(A){if (this._Range) this._Range.collapse(A);this._UpdateElementInfo();},Clone:function(){var A=FCKTools.CloneObject(this);if (this._Range) A._Range=this._Range.cloneRange();return A;},MoveToNodeContents:function(A){if (!this._Range) this._Range=this.CreateRange();this._Range.selectNodeContents(A);this._UpdateElementInfo();},MoveToElementStart:function(A){this.SetStart(A,1);this.SetEnd(A,1);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(A){if (this.CheckIsCollapsed()) return true;var B=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(B);FCKDomTools.TrimNode(B,A);return (B.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this.Clone();A.Collapse(true);A.SetStart(A.StartBlock||A.StartBlockLimit,1);var B=A.CheckIsEmpty();A.Release();return B;},CheckEndOfBlock:function(A){var B=this.Clone();B.Collapse(false);B.SetEnd(B.EndBlock||B.EndBlockLimit,2);var C=B.CheckIsEmpty(true);B.Release();if (A) this.Select();return C;},CreateBookmark:function(){var A={StartId:'fck_dom_range_start_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000),EndId:'fck_dom_range_end_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000)};var B=this.Window.document;var C;var D;if (!this.CheckIsCollapsed()){C=B.createElement('span');C.id=A.EndId;C.innerHTML='&nbsp;';D=this.Clone();D.Collapse(false);D.InsertNode(C);};C=B.createElement('span');C.id=A.StartId;C.innerHTML='&nbsp;';D=this.Clone();D.Collapse(true);D.InsertNode(C);return A;},MoveToBookmark:function(A,B){var C=this.Window.document;var D=C.getElementById(A.StartId);var E=C.getElementById(A.EndId);this.SetStart(D,3);if (!B) FCKDomTools.RemoveNode(D);if (E){this.SetEnd(E,3);if (!B) FCKDomTools.RemoveNode(E);}else this.Collapse(true);},SetStart:function(A,B){var C=this._Range;if (!C) C=this._Range=this.CreateRange();switch(B){case 1:C.setStart(A,0);break;case 2:C.setStart(A,A.childNodes.length);break;case 3:C.setStartBefore(A);break;case 4:C.setStartAfter(A);};this._UpdateElementInfo();},SetEnd:function(A,B){var C=this._Range;if (!C) C=this._Range=this.CreateRange();switch(B){case 1:C.setEnd(A,0);break;case 2:C.setEnd(A,A.childNodes.length);break;case 3:C.setEndBefore(A);break;case 4:C.setEndAfter(A);};this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'block_contents':if (this.StartBlock) this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){if (!(B=B.childNodes[this._Range.startOffset])) B=B.firstChild;};if (!B) return;while (true){oSibling=B.previousSibling;if (!oSibling){if (B.parentNode!=this.StartBlockLimit) B=B.parentNode;else break;}else if (oSibling.nodeType!=1||!(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test(oSibling.nodeName.toUpperCase())){B=oSibling;}else break;};this._Range.setStartBefore(B);};if (this.EndBlock) this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;if (!B) return;while (true){oSibling=B.nextSibling;if (!oSibling){if (B.parentNode!=this.EndBlockLimit) B=B.parentNode;else break;}else if (oSibling.nodeType!=1||!(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test(oSibling.nodeName.toUpperCase())){B=oSibling;}else break;};this._Range.setEndAfter(B);};this._UpdateElementInfo();}},Release:function(A){if (!A) this.Window=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;}}; -FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);var A=this.Window.getSelection();if (A.rangeCount==1){this._Range=FCKW3CRange.CreateFromRange(this.Window.document,A.getRangeAt(0));this._UpdateElementInfo();}};FCKDomRange.prototype.Select=function(){var A=this._Range;if (A){var B=this.Window.document.createRange();B.setStart(A.startContainer,A.startOffset);try{B.setEnd(A.endContainer,A.endOffset);}catch (e){if (e.toString().Contains('NS_ERROR_ILLEGAL_VALUE')){A.collapse(true);B.setEnd(A.endContainer,A.endOffset);}else throw(e);};var C=this.Window.getSelection();C.removeAllRanges();C.addRange(B);}}; +var FCKUndo={};FCKUndo.SavedData=[];FCKUndo.CurrentIndex=-1;FCKUndo.TypesCount=0;FCKUndo.Changed=false;FCKUndo.MaxTypes=25;FCKUndo.Typing=false;FCKUndo.SaveLocked=false;FCKUndo._GetBookmark=function(){var A=new FCKDomRange(FCK.EditorWindow);try{A.MoveToSelection();}catch (e){return null;};if (FCKBrowserInfo.IsIE){var B=A.CreateBookmark();var C=FCK.EditorDocument.body.innerHTML;A.MoveToBookmark(B);return [B,C];};return A.CreateBookmark2();};FCKUndo._SelectBookmark=function(A){if (!A) return;var B=new FCKDomRange(FCK.EditorWindow);if (A instanceof Object){if (FCKBrowserInfo.IsIE) B.MoveToBookmark(A[0]);else B.MoveToBookmark2(A);try{B.Select();}catch (e){B.MoveToPosition(FCK.EditorDocument.body,4);B.Select();}}};FCKUndo._CompareCursors=function(A,B){for (var i=0;i<Math.min(A.length,B.length);i++){if (A[i]<B[i]) return-1;else if (A[i]>B[i]) return 1;};if (A.length<B.length) return-1;else if (A.length>B.length) return 1;return 0;};FCKUndo._CheckIsBookmarksEqual=function(A,B){if (!(A&&B)) return false;if (FCKBrowserInfo.IsIE){var C=A[1].search(A[0].StartId);var D=B[1].search(B[0].StartId);var E=A[1].search(A[0].EndId);var F=B[1].search(B[0].EndId);return C==D&&E==F;}else{return this._CompareCursors(A.Start,B.Start)==0&&this._CompareCursors(A.End,B.End)==0;}};FCKUndo.SaveUndoStep=function(){if (FCK.EditMode!=0||this.SaveLocked) return;if (this.SavedData.length) this.Changed=true;var A=FCK.EditorDocument.body.innerHTML;var B=this._GetBookmark();this.SavedData=this.SavedData.slice(0,this.CurrentIndex+1);if (this.CurrentIndex>0&&A==this.SavedData[this.CurrentIndex][0]&&this._CheckIsBookmarksEqual(B,this.SavedData[this.CurrentIndex][1])) return;else if (this.CurrentIndex==0&&this.SavedData.length&&A==this.SavedData[0][0]){this.SavedData[0][1]=B;return;};if (this.CurrentIndex+1>=FCKConfig.MaxUndoLevels) this.SavedData.shift();else this.CurrentIndex++;this.SavedData[this.CurrentIndex]=[A,B];FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.CheckUndoState=function(){return (this.Changed||this.CurrentIndex>0);};FCKUndo.CheckRedoState=function(){return (this.CurrentIndex<(this.SavedData.length-1));};FCKUndo.Undo=function(){if (this.CheckUndoState()){if (this.CurrentIndex==(this.SavedData.length-1)){this.SaveUndoStep();};this._ApplyUndoLevel(--this.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo.Redo=function(){if (this.CheckRedoState()){this._ApplyUndoLevel(++this.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo._ApplyUndoLevel=function(A){var B=this.SavedData[A];if (!B) return;if (FCKBrowserInfo.IsIE){if (B[1]&&B[1][1]) FCK.SetInnerHtml(B[1][1]);else FCK.SetInnerHtml(B[0]);}else FCK.EditorDocument.body.innerHTML=B[0];this._SelectBookmark(B[1]);this.TypesCount=0;this.Changed=false;this.Typing=false;}; +var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=0;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);var E;while((E=C.firstChild)){if (E.contentWindow) E.contentWindow.document.body.innerHTML='';C.removeChild(E);};if (this.Mode==0){var F=this.IFrame=D.createElement('iframe');if (!FCKBrowserInfo.IsGecko) F.src='javascript:void(0)';F.frameBorder=0;F.width=F.height='100%';C.appendChild(F);if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){var G=A.match(FCKRegexLib.BeforeBody);var H=A.match(FCKRegexLib.AfterBody);if (G&&H){var I=A.substr(G[1].length,A.length-G[1].length-H[1].length);A=G[1]+'&nbsp;'+H[1];if (FCKBrowserInfo.IsGecko&&(I.length==0||FCKRegexLib.EmptyParagraph.test(I))) I='<br type="_moz">';this._BodyHTML=I;}else this._BodyHTML=A;};this.Window=F.contentWindow;var J=this.Document=this.Window.document;J.open();J.write(A);J.close();if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}else{var K=this.Textarea=D.createElement('textarea');K.className='SourceField';K.dir='ltr';FCKDomTools.SetElementStyles(K,{width:'100%',height:'100%',border:'none',resize:'none',outline:'none'});C.appendChild(K);K.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.disabled=true;A.body.contentEditable=true;A.body.removeAttribute("disabled");}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;this._BodyHTML=null;};A.designMode='on';try{A.execCommand('styleWithCSS',false,FCKConfig.GeckoUseSPAN);}catch (e){A.execCommand('useCSS',false,!FCKConfig.GeckoUseSPAN);};A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e){FCKTools.AddEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);}}};function FCKEditingArea_Document_AttributeNodeModified(A){var B=A.currentTarget.contentWindow._FCKEditingArea;if (B._timer) window.clearTimeout(B._timer);B._timer=FCKTools.SetTimeout(FCKEditingArea_MakeEditableByMutation,1000,B);};function FCKEditingArea_MakeEditableByMutation(){delete this._timer;FCKTools.RemoveEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);this.MakeEditable();};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE&&this.Document.hasFocus()) this._EnsureFocusIE();this.Window.focus();if (FCKBrowserInfo.IsIE) this._EnsureFocusIE();}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&&A.activeElement==this.Textarea) return;this.Textarea.focus();}}catch(e) {}};FCKEditingArea.prototype._EnsureFocusIE=function(){this.Document.body.setActive();var A=this.Document.selection.createRange();var B=A.parentElement();var C=B.nodeName.toLowerCase();if (B.childNodes.length>0||!(FCKListsLib.BlockElements[C]||FCKListsLib.NonEmptyBlockElements[C])){return;};A.moveEnd("character",1);A.select();if (A.boundingWidth>0){A.moveEnd("character",-1);A.select();}};function FCKEditingArea_Cleanup(){if (this.Document) this.Document.body.innerHTML="";this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}}; +var FCKKeystrokeHandler=function(A){this.Keystrokes={};this.CancelCtrlDefaults=(A!==false);};FCKKeystrokeHandler.prototype.AttachToElement=function(A){FCKTools.AddEventListenerEx(A,'keydown',_FCKKeystrokeHandler_OnKeyDown,this);if (FCKBrowserInfo.IsGecko10||FCKBrowserInfo.IsOpera||(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac)) FCKTools.AddEventListenerEx(A,'keypress',_FCKKeystrokeHandler_OnKeyPress,this);};FCKKeystrokeHandler.prototype.SetKeystrokes=function(){for (var i=0;i<arguments.length;i++){var A=arguments[i];if (!A) continue;if (typeof(A[0])=='object') this.SetKeystrokes.apply(this,A);else{if (A.length==1) delete this.Keystrokes[A[0]];else this.Keystrokes[A[0]]=A[1]===true?true:A;}}};function _FCKKeystrokeHandler_OnKeyDown(A,B){var C=A.keyCode||A.which;var D=0;if (A.ctrlKey||A.metaKey) D+=CTRL;if (A.shiftKey) D+=SHIFT;if (A.altKey) D+=ALT;var E=C+D;var F=B._CancelIt=false;var G=B.Keystrokes[E];if (G){if (G===true||!(B.OnKeystroke&&B.OnKeystroke.apply(B,G))) return true;F=true;};if (F||(B.CancelCtrlDefaults&&D==CTRL&&(C<33||C>40))){B._CancelIt=true;if (A.preventDefault) return A.preventDefault();A.returnValue=false;A.cancelBubble=true;return false;};return true;};function _FCKKeystrokeHandler_OnKeyPress(A,B){if (B._CancelIt){if (A.preventDefault) return A.preventDefault();return false;};return true;}; +FCK.DTD=(function(){X=FCKTools.Merge;var A,L,J,M,N,O,D,H,P,K,Q,F,G,C,B,E,I;A={isindex:1,fieldset:1};B={input:1,button:1,select:1,textarea:1,label:1};C=X({a:1},B);D=X({iframe:1},C);E={hr:1,ul:1,menu:1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1};F={ins:1,del:1,script:1};G=X({b:1,acronym:1,bdo:1,'var':1,'#':1,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1},F);H=X({sub:1,img:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1},G);I=X({p:1},H);J=X({iframe:1},H,B);K={img:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1};L=X({a:1},J);M={tr:1};N={'#':1};O=X({param:1},K);P=X({form:1},A,D,E,I);Q={li:1};return {col:{},tr:{td:1,th:1},img:{},colgroup:{col:1},noscript:P,td:P,br:{},th:P,center:P,kbd:L,button:X(I,E),basefont:{},h5:L,h4:L,samp:L,h6:L,ol:Q,h1:L,h3:L,option:N,h2:L,form:X(A,D,E,I),select:{optgroup:1,option:1},font:J,ins:P,menu:Q,abbr:L,label:L,table:{thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1},code:L,script:N,tfoot:M,cite:L,li:P,input:{},iframe:P,strong:J,textarea:N,noframes:P,big:J,small:J,span:J,hr:{},dt:L,sub:J,optgroup:{option:1},param:{},bdo:L,'var':J,div:P,object:O,sup:J,dd:P,strike:J,area:{},dir:Q,map:X({area:1,form:1,p:1},A,F,E),applet:O,dl:{dt:1,dd:1},del:P,isindex:{},fieldset:X({legend:1},K),thead:M,ul:Q,acronym:L,b:J,a:J,blockquote:P,caption:L,i:J,u:J,tbody:M,s:L,address:X(D,I),tt:J,legend:L,q:L,pre:X(G,C),p:L,em:J,dfn:L};})(); +var FCKStyle=function(A){this.Element=(A.Element||'span').toLowerCase();this._StyleDesc=A;};FCKStyle.prototype={GetType:function(){var A=this.GetType_$;if (A!=undefined) return A;var B=this.Element;if (B=='#'||FCKListsLib.StyleBlockElements[B]) A=0;else if (FCKListsLib.StyleObjectElements[B]) A=2;else A=1;return (this.GetType_$=A);},ApplyToSelection:function(A){var B=new FCKDomRange(A);B.MoveToSelection();this.ApplyToRange(B,true);},ApplyToRange:function(A,B){switch (this.GetType()){case 0:this.ApplyToRange=this._ApplyBlockStyle;break;case 1:this.ApplyToRange=this._ApplyInlineStyle;break;default:return;};this.ApplyToRange(A,B);},ApplyToObject:function(A){if (!A) return;this.BuildElement(null,A);},RemoveFromSelection:function(A){var B=new FCKDomRange(A);B.MoveToSelection();this.RemoveFromRange(B,true);},RemoveFromRange:function(A,B){var C;var D=this._GetAttribsForComparison();var E=this._GetOverridesForComparison();if (A.CheckIsCollapsed()){var C=A.CreateBookmark(true);var G=A.GetBookmarkNode(C,true);var H=new FCKElementPath(G.parentNode);var I=[];var J=!FCKDomTools.GetNextSibling(G);var K=J||!FCKDomTools.GetPreviousSibling(G);var L;var M=-1;for (var i=0;i<H.Elements.length;i++){var N=H.Elements[i];if (this.CheckElementRemovable(N)){if (K&&!FCKDomTools.CheckIsEmptyElement(N,function(el){return (el!=G);})){L=N;M=I.length-1;}else{var O=N.nodeName.toLowerCase();if (O==this.Element){for (var P in D){if (FCKDomTools.HasAttribute(N,P)){switch (P){case 'style':this._RemoveStylesFromElement(N);break;case 'class':if (FCKDomTools.GetAttributeValue(N,P)!=this.GetFinalAttributeValue(P)) continue;default:FCKDomTools.RemoveAttribute(N,P);}}}};this._RemoveOverrides(N,E[O]);this._RemoveNoAttribElement(N);}}else if (K) I.push(N);K=K&&((J&&!FCKDomTools.GetNextSibling(N))||(!J&&!FCKDomTools.GetPreviousSibling(N)));if (L&&(!K||(i==H.Elements.length-1))){var Q=FCKDomTools.RemoveNode(G);for (var j=0;j<=M;j++){var R=FCKDomTools.CloneElement(I[j]);R.appendChild(Q);Q=R;};if (J) FCKDomTools.InsertAfterNode(L,Q);else L.parentNode.insertBefore(Q,L);K=false;L=null;}};if (B) A.SelectBookmark(C);return;};A.Expand('inline_elements');var C=A.CreateBookmark(true);var T=A.GetBookmarkNode(C,true);var U=A.GetBookmarkNode(C,false);A.Release(true);var H=new FCKElementPath(T);var X=H.Elements;var N;for (var i=1;i<X.length;i++){N=X[i];if (N==H.Block||N==H.BlockLimit) break;if (this.CheckElementRemovable(N)) FCKDomTools.BreakParent(T,N,A);};H=new FCKElementPath(U);X=H.Elements;for (var i=1;i<X.length;i++){N=X[i];if (N==H.Block||N==H.BlockLimit) break;b=N.nodeName.toLowerCase();if (this.CheckElementRemovable(N)) FCKDomTools.BreakParent(U,N,A);};var Z=FCKDomTools.GetNextSourceNode(T,true);while (Z){var a=FCKDomTools.GetNextSourceNode(Z);if (Z.nodeType==1){var b=Z.nodeName.toLowerCase();var c=(b==this.Element);if (c){for (var P in D){if (FCKDomTools.HasAttribute(Z,P)){switch (P){case 'style':this._RemoveStylesFromElement(Z);break;case 'class':if (FCKDomTools.GetAttributeValue(Z,P)!=this.GetFinalAttributeValue(P)) continue;default:FCKDomTools.RemoveAttribute(Z,P);}}}}else c=!!E[b];if (c){this._RemoveOverrides(Z,E[b]);this._RemoveNoAttribElement(Z);}};if (a==U) break;Z=a;};this._FixBookmarkStart(T);if (B) A.SelectBookmark(C);},CheckElementRemovable:function(A,B){if (!A) return false;var C=A.nodeName.toLowerCase();if (C==this.Element){if (!B&&!FCKDomTools.HasAttributes(A)) return true;var D=this._GetAttribsForComparison();var E=(D._length==0);for (var F in D){if (F=='_length') continue;if (this._CompareAttributeValues(F,FCKDomTools.GetAttributeValue(A,F),(this.GetFinalAttributeValue(F)||''))){E=true;if (!B) break;}else{E=false;if (B) return false;}};if (E) return true;};var G=this._GetOverridesForComparison()[C];if (G){if (!(D=G.Attributes)) return true;for (var i=0;i<D.length;i++){var H=D[i][0];if (FCKDomTools.HasAttribute(A,H)){var I=D[i][1];if (I==null||(typeof I=='string'&&FCKDomTools.GetAttributeValue(A,H)==I)||I.test(FCKDomTools.GetAttributeValue(A,H))) return true;}}};return false;},CheckActive:function(A){switch (this.GetType()){case 0:return this.CheckElementRemovable(A.Block||A.BlockLimit);case 1:var B=A.Elements;for (var i=0;i<B.length;i++){var C=B[i];if (C==A.Block||C==A.BlockLimit) continue;if (this.CheckElementRemovable(C,true)) return true;}};return false;},RemoveFromElement:function(A){var B=this._GetAttribsForComparison();var C=this._GetOverridesForComparison();var D=A.getElementsByTagName(this.Element);for (var i=D.length-1;i>=0;i--){var E=D[i];for (var F in B){if (FCKDomTools.HasAttribute(E,F)){switch (F){case 'style':this._RemoveStylesFromElement(E);break;case 'class':if (FCKDomTools.GetAttributeValue(E,F)!=this.GetFinalAttributeValue(F)) continue;default:FCKDomTools.RemoveAttribute(E,F);}}};this._RemoveOverrides(E,C[this.Element]);this._RemoveNoAttribElement(E);};for (var G in C){if (G!=this.Element){D=A.getElementsByTagName(G);for (var i=D.length-1;i>=0;i--){var E=D[i];this._RemoveOverrides(E,C[G]);this._RemoveNoAttribElement(E);}}}},_RemoveStylesFromElement:function(A){var B=A.style.cssText;var C=this.GetFinalStyleValue();if (B.length>0&&C.length==0) return;C='(^|;)\\s*('+C.replace(/\s*([^ ]+):.*?(;|$)/g,'$1|').replace(/\|$/,'')+'):[^;]+';var D=new RegExp(C,'gi');B=B.replace(D,'').Trim();if (B.length==0||B==';') FCKDomTools.RemoveAttribute(A,'style');else A.style.cssText=B.replace(D,'');},_RemoveOverrides:function(A,B){var C=B&&B.Attributes;if (C){for (var i=0;i<C.length;i++){var D=C[i][0];if (FCKDomTools.HasAttribute(A,D)){var E=C[i][1];if (E==null||(E.test&&E.test(FCKDomTools.GetAttributeValue(A,D)))||(typeof E=='string'&&FCKDomTools.GetAttributeValue(A,D)==E)) FCKDomTools.RemoveAttribute(A,D);}}}},_RemoveNoAttribElement:function(A){if (!FCKDomTools.HasAttributes(A)){var B=A.firstChild;var C=A.lastChild;FCKDomTools.RemoveNode(A,true);this._MergeSiblings(B);if (B!=C) this._MergeSiblings(C);}},BuildElement:function(A,B){var C=B||A.createElement(this.Element);var D=this._StyleDesc.Attributes;var E;if (D){for (var F in D){E=this.GetFinalAttributeValue(F);if (F.toLowerCase()=='class') C.className=E;else C.setAttribute(F,E);}};if (this._GetStyleText().length>0) C.style.cssText=this.GetFinalStyleValue();return C;},_CompareAttributeValues:function(A,B,C){if (A=='style'&&B&&C){B=B.replace(/;$/,'').toLowerCase();C=C.replace(/;$/,'').toLowerCase();};return (B==C)},GetFinalAttributeValue:function(A){var B=this._StyleDesc.Attributes;var B=B?B[A]:null;if (!B&&A=='style') return this.GetFinalStyleValue();if (B&&this._Variables) B=B.Replace(FCKRegexLib.StyleVariableAttName,this._GetVariableReplace,this);return B;},GetFinalStyleValue:function(){var A=this._GetStyleText();if (A.length>0&&this._Variables){A=A.Replace(FCKRegexLib.StyleVariableAttName,this._GetVariableReplace,this);A=FCKTools.NormalizeCssText(A);};return A;},_GetVariableReplace:function(){return this._Variables[arguments[2]]||arguments[0];},SetVariable:function(A,B){var C=this._Variables;if (!C) C=this._Variables={};this._Variables[A]=B;},_ApplyBlockStyle:function(A,B){var C;if (B) C=A.CreateBookmark(true);var D=new FCKDomRangeIterator(A);D.EnforceRealBlocks=true;var E;while((E=D.GetNextParagraph())){var F=E.parentNode.insertBefore(this.BuildElement(A.Window.document),E);FCKDomTools.MoveChildren(E,F);FCKDomTools.RemoveNode(E);};if (B) A.SelectBookmark(C);},_ApplyInlineStyle:function(A,B){var C=A.Window.document;if (A.CheckIsCollapsed()){var D=this.BuildElement(C);A.InsertNode(D);A.MoveToPosition(D,2);A.Select();return;};var E=this.Element;var F=FCK.DTD[E]||FCK.DTD.span;var G=this._GetAttribsForComparison();var H;A.Expand('inline_elements');var I=A.CreateBookmark(true);var J=A.GetBookmarkNode(I,true);var K=A.GetBookmarkNode(I,false);A.Release(true);var L=FCKDomTools.GetNextSourceNode(J,true);while (L){var M=false;var N=L.nodeType;var O=N==1?L.nodeName.toLowerCase():null;if (!O||F[O]){if ((FCK.DTD[L.parentNode.nodeName.toLowerCase()]||FCK.DTD.span)[E]||!FCK.DTD[E]){if (!A.CheckHasRange()) A.SetStart(L,3);if (N!=1||L.childNodes.length==0){var P=L;var Q=P.parentNode;while (P==Q.lastChild&&F[Q.nodeName.toLowerCase()]){P=Q;};A.SetEnd(P,4);if (P==P.parentNode.lastChild&&!F[P.parentNode.nodeName.toLowerCase()]) M=true;}else{A.SetEnd(L,3);}}else M=true;}else M=true;L=FCKDomTools.GetNextSourceNode(L);if (L==K){L=null;M=true;};if (M&&A.CheckHasRange()&&!A.CheckIsCollapsed()){H=this.BuildElement(C);A.ExtractContents().AppendTo(H);if (H.innerHTML.RTrim().length>0){A.InsertNode(H);this.RemoveFromElement(H);this._MergeSiblings(H,this._GetAttribsForComparison());if (!FCKBrowserInfo.IsIE) H.normalize();};A.Release(true);}};this._FixBookmarkStart(J);if (B) A.SelectBookmark(I);},_FixBookmarkStart:function(A){var B;while ((B=A.nextSibling)){if (B.nodeType==1&&FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){if (!B.firstChild) FCKDomTools.RemoveNode(B);else FCKDomTools.MoveNode(A,B,true);continue;};if (B.nodeType==3&&B.length==0){FCKDomTools.RemoveNode(B);continue;};break;}},_MergeSiblings:function(A,B){if (!A||A.nodeType!=1||!FCKListsLib.InlineNonEmptyElements[A.nodeName.toLowerCase()]) return;this._MergeNextSibling(A,B);this._MergePreviousSibling(A,B);},_MergeNextSibling:function(A,B){var C=A.nextSibling;var D=(C&&C.nodeType==1&&C.getAttribute('_fck_bookmark'));if (D) C=C.nextSibling;if (C&&C.nodeType==1&&C.nodeName==A.nodeName){if (!B) B=this._CreateElementAttribsForComparison(A);if (this._CheckAttributesMatch(C,B)){var E=A.lastChild;if (D) FCKDomTools.MoveNode(A.nextSibling,A);FCKDomTools.MoveChildren(C,A);FCKDomTools.RemoveNode(C);if (E) this._MergeNextSibling(E);}}},_MergePreviousSibling:function(A,B){var C=A.previousSibling;var D=(C&&C.nodeType==1&&C.getAttribute('_fck_bookmark'));if (D) C=C.previousSibling;if (C&&C.nodeType==1&&C.nodeName==A.nodeName){if (!B) B=this._CreateElementAttribsForComparison(A);if (this._CheckAttributesMatch(C,B)){var E=A.firstChild;if (D) FCKDomTools.MoveNode(A.previousSibling,A,true);FCKDomTools.MoveChildren(C,A,true);FCKDomTools.RemoveNode(C);if (E) this._MergePreviousSibling(E);}}},_GetStyleText:function(){var A=this._StyleDesc.Styles;var B=(this._StyleDesc.Attributes?this._StyleDesc.Attributes['style']||'':'');if (B.length>0) B+=';';for (var C in A) B+=C+':'+A[C]+';';if (B.length>0&&!(/#\(/.test(B))){B=FCKTools.NormalizeCssText(B);};return (this._GetStyleText=function() { return B;})();},_GetAttribsForComparison:function(){var A=this._GetAttribsForComparison_$;if (A) return A;A={};var B=this._StyleDesc.Attributes;if (B){for (var C in B){A[C.toLowerCase()]=B[C].toLowerCase();}};if (this._GetStyleText().length>0){A['style']=this._GetStyleText().toLowerCase();};FCKTools.AppendLengthProperty(A,'_length');return (this._GetAttribsForComparison_$=A);},_GetOverridesForComparison:function(){var A=this._GetOverridesForComparison_$;if (A) return A;A={};var B=this._StyleDesc.Overrides;if (B){if (!FCKTools.IsArray(B)) B=[B];for (var i=0;i<B.length;i++){var C=B[i];var D;var E;var F;if (typeof C=='string') D=C.toLowerCase();else{D=C.Element?C.Element.toLowerCase():this.Element;F=C.Attributes;};E=A[D]||(A[D]={});if (F){var G=(E.Attributes=E.Attributes||[]);for (var H in F){G.push([H.toLowerCase(),F[H]]);}}}};return (this._GetOverridesForComparison_$=A);},_CreateElementAttribsForComparison:function(A){var B={};var C=0;for (var i=0;i<A.attributes.length;i++){var D=A.attributes[i];if (D.specified){B[D.nodeName.toLowerCase()]=FCKDomTools.GetAttributeValue(A,D).toLowerCase();C++;}};B._length=C;return B;},_CheckAttributesMatch:function(A,B){var C=A.attributes;var D=0;for (var i=0;i<C.length;i++){var E=C[i];if (E.specified){var F=E.nodeName.toLowerCase();var G=B[F];if (!G) break;if (G!=FCKDomTools.GetAttributeValue(A,E).toLowerCase()) break;D++;}};return (D==B._length);}}; +var FCKStyles=FCK.Styles={_Callbacks:{},_ObjectStyles:{},ApplyStyle:function(A){if (typeof A=='string') A=this.GetStyles()[A];if (A){if (A.GetType()==2) A.ApplyToObject(FCKSelection.GetSelectedElement());else A.ApplyToSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},RemoveStyle:function(A){if (typeof A=='string') A=this.GetStyles()[A];if (A){A.RemoveFromSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},AttachStyleStateChange:function(A,B,C){var D=this._Callbacks[A];if (!D) D=this._Callbacks[A]=[];D.push([B,C]);},CheckSelectionChanges:function(){var A=FCKSelection.GetBoundaryParentElement(true);if (!A) return;var B=new FCKElementPath(A);var C=this.GetStyles();for (var D in C){var E=this._Callbacks[D];if (E){var F=C[D];var G=F.CheckActive(B);if (F._LastState!=G){F._LastState=G;for (var i=0;i<E.length;i++){var H=E[i][0];var I=E[i][1];H.call(I||window,D,G);}}}}},CheckStyleInSelection:function(A){return false;},_GetRemoveFormatTagsRegex:function (){var A=new RegExp('^(?:'+FCKConfig.RemoveFormatTags.replace(/,/g,'|')+')$','i');return (this._GetRemoveFormatTagsRegex=function(){return A;})&&A;},RemoveAll:function(){var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();if (A.CheckIsCollapsed()) return;A.Expand('inline_elements');var B=A.CreateBookmark(true);var C=A.GetBookmarkNode(B,true);var D=A.GetBookmarkNode(B,false);A.Release(true);var E=this._GetRemoveFormatTagsRegex();var F=new FCKElementPath(C);var G=F.Elements;var H;for (var i=1;i<G.length;i++){H=G[i];if (H==F.Block||H==F.BlockLimit) break;if (E.test(H.nodeName)) FCKDomTools.BreakParent(C,H,A);};F=new FCKElementPath(D);G=F.Elements;for (var i=1;i<G.length;i++){H=G[i];if (H==F.Block||H==F.BlockLimit) break;elementName=H.nodeName.toLowerCase();if (E.test(H.nodeName)) FCKDomTools.BreakParent(D,H,A);};var I=FCKDomTools.GetNextSourceNode(C,true,1);while (I){if (I==D) break;var J=FCKDomTools.GetNextSourceNode(I,false,1);if (E.test(I.nodeName)) FCKDomTools.RemoveNode(I,true);I=J;};A.SelectBookmark(B);FCK.Events.FireEvent('OnSelectionChange');},GetStyle:function(A){return this.GetStyles()[A];},GetStyles:function(){var A=this._GetStyles;if (!A){A=this._GetStyles=FCKTools.Merge(this._LoadStylesCore(),this._LoadStylesCustom(),this._LoadStylesXml());};return A;},CheckHasObjectStyle:function(A){return!!this._ObjectStyles[A];},_LoadStylesCore:function(){var A={};var B=FCKConfig.CoreStyles;for (var C in B){var D=A['_FCK_'+C]=new FCKStyle(B[C]);D.IsCore=true;};return A;},_LoadStylesCustom:function(){var A={};var B=FCKConfig.CustomStyles;if (B){for (var C in B){var D=A[C]=new FCKStyle(B[C]);D.Name=C;}};return A;},_LoadStylesXml:function(){var A={};var B=FCKConfig.StylesXmlPath;if (!B||B.length==0) return A;var C=new FCKXml();C.LoadUrl(B);var D=FCKXml.TransformToObject(C.SelectSingleNode('Styles'));var E=D.$Style;if (!E) return A;for (var i=0;i<E.length;i++){var F=E[i];var G=(F.element||'').toLowerCase();if (G.length==0) throw('The element name is required. Error loading "'+B+'"');var H={Element:G,Attributes:{},Styles:{},Overrides:[]};var I=F.$Attribute||[];for (var j=0;j<I.length;j++){H.Attributes[I[j].name]=I[j].value;};var J=F.$Style||[];for (j=0;j<J.length;j++){H.Styles[J[j].name]=J[j].value;};var K=F.$Override;if (K){for (j=0;j<K.length;j++){var L=K[j];var M={Element:L.element};var N=L.$Attribute;if (N){M.Attributes={};for (var k=0;k<N.length;k++){var O=N[k].value||null;if (O){var P=O&&FCKRegexLib.RegExp.exec(O);if (P) O=new RegExp(P[1],P[2]||'');};M.Attributes[N[k].name]=O;}};H.Overrides.push(M);}};var Q=new FCKStyle(H);Q.Name=F.name||G;if (Q.GetType()==2) this._ObjectStyles[G]=true;A[Q.Name]=Q;};return A;}}; +var FCKListHandler={OutdentListItem:function(A){var B=A.parentNode;if (B.tagName.toUpperCase().Equals('UL','OL')){var C=FCKTools.GetElementDocument(A);var D=new FCKDocumentFragment(C);var E=D.RootNode;var F=false;var G=FCKDomTools.GetFirstChild(A,['UL','OL']);if (G){F=true;var H;while ((H=G.firstChild)) E.appendChild(G.removeChild(H));FCKDomTools.RemoveNode(G);};var I;var J=false;while ((I=A.nextSibling)){if (!F&&I.nodeType==1&&I.nodeName.toUpperCase()=='LI') J=F=true;E.appendChild(I.parentNode.removeChild(I));if (!J&&I.nodeType==1&&I.nodeName.toUpperCase().Equals('UL','OL')) FCKDomTools.RemoveNode(I,true);};var K=B.parentNode.tagName.toUpperCase();var L=(K=='LI');if (L||K.Equals('UL','OL')){if (F){var G=B.cloneNode(false);D.AppendTo(G);A.appendChild(G);}else if (L) D.InsertAfterNode(B.parentNode);else D.InsertAfterNode(B);if (L) FCKDomTools.InsertAfterNode(B.parentNode,B.removeChild(A));else FCKDomTools.InsertAfterNode(B,B.removeChild(A));}else{if (F){var N=B.cloneNode(false);D.AppendTo(N);FCKDomTools.InsertAfterNode(B,N);};var O=C.createElement(FCKConfig.EnterMode=='p'?'p':'div');FCKDomTools.MoveChildren(B.removeChild(A),O);FCKDomTools.InsertAfterNode(B,O);if (FCKConfig.EnterMode=='br'){if (FCKBrowserInfo.IsGecko) O.parentNode.insertBefore(FCKTools.CreateBogusBR(C),O);else FCKDomTools.InsertAfterNode(O,FCKTools.CreateBogusBR(C));FCKDomTools.RemoveNode(O,true);}};if (this.CheckEmptyList(B)) FCKDomTools.RemoveNode(B,true);}},CheckEmptyList:function(A){return (FCKDomTools.GetFirstChild(A,'LI')==null);},CheckListHasContents:function(A){var B=A.firstChild;while (B){switch (B.nodeType){case 1:if (!B.nodeName.IEquals('UL','LI')) return true;break;case 3:if (B.nodeValue.Trim().length>0) return true;};B=B.nextSibling;};return false;}}; +var FCKElementPath=function(A){var B=null;var C=null;var D=[];var e=A;while (e){if (e.nodeType==1){if (!this.LastElement) this.LastElement=e;var E=e.nodeName.toLowerCase();if (!C){if (!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (FCKListsLib.PathBlockLimitElements[E]!=null){if (!B&&E=='div') B=e;else C=e;}};D.push(e);if (E=='body') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;}; +var FCKDomRange=function(A){this.Window=A;this._Cache={};};FCKDomRange.prototype={_UpdateElementInfo:function(){var A=this._Range;if (!A) this.Release(true);else{var B=A.startContainer;var C=A.endContainer;var D=new FCKElementPath(B);this.StartNode=B.nodeType==3?B:B.childNodes[A.startOffset];this.StartContainer=B;this.StartBlock=D.Block;this.StartBlockLimit=D.BlockLimit;if (B!=C) D=new FCKElementPath(C);var E=C;if (A.endOffset==0){while (E&&!E.previousSibling) E=E.parentNode;if (E) E=E.previousSibling;}else if (E.nodeType==1) E=E.childNodes[A.endOffset-1];this.EndNode=E;this.EndContainer=C;this.EndBlock=D.Block;this.EndBlockLimit=D.BlockLimit;};this._Cache={};},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateElementInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;}},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;},Collapse:function(A){if (this._Range) this._Range.collapse(A);this._UpdateElementInfo();},Clone:function(){var A=FCKTools.CloneObject(this);if (this._Range) A._Range=this._Range.cloneRange();return A;},MoveToNodeContents:function(A){if (!this._Range) this._Range=this.CreateRange();this._Range.selectNodeContents(A);this._UpdateElementInfo();},MoveToElementStart:function(A){this.SetStart(A,1);this.SetEnd(A,1);},MoveToElementEditStart:function(A){var B;while ((B=A.firstChild)&&B.nodeType==1&&FCKListsLib.EmptyElements[B.nodeName.toLowerCase()]==null) A=B;this.MoveToElementStart(A);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(){if (this.CheckIsCollapsed()) return true;var A=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(A);FCKDomTools.TrimNode(A);return (A.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this._Cache;var B=A.IsStartOfBlock;if (B!=undefined) return B;var C=this.StartBlock||this.StartBlockLimit;var D=this._Range.startContainer;var E=this._Range.startOffset;var F;if (E>0){if (D.nodeType==3){var G=D.nodeValue.substr(0,E).Trim();if (G.length!=0) return A.IsStartOfBlock=false;}else F=D.childNodes[E-1];};if (!F) F=FCKDomTools.GetPreviousSourceNode(D,true,null,C);while (F){switch (F.nodeType){case 1:if (!FCKListsLib.InlineChildReqElements[F.nodeName.toLowerCase()]) return A.IsStartOfBlock=false;break;case 3:if (F.nodeValue.Trim().length>0) return A.IsStartOfBlock=false;};F=FCKDomTools.GetPreviousSourceNode(F,false,null,C);};return A.IsStartOfBlock=true;},CheckEndOfBlock:function(A){var B=this._Cache.IsEndOfBlock;if (B!=undefined) return B;var C=this.EndBlock||this.EndBlockLimit;var D=this._Range.endContainer;var E=this._Range.endOffset;var F;if (D.nodeType==3){var G=D.nodeValue;if (E<G.length){G=G.substr(E);if (G.Trim().length!=0) return this._Cache.IsEndOfBlock=false;}}else F=D.childNodes[E];if (!F) F=FCKDomTools.GetNextSourceNode(D,true,null,C);var H=false;while (F){switch (F.nodeType){case 1:var I=F.nodeName.toLowerCase();if (FCKListsLib.InlineChildReqElements[I]) break;if (I=='br'&&!H){H=true;break;};return this._Cache.IsEndOfBlock=false;case 3:if (F.nodeValue.Trim().length>0) return this._Cache.IsEndOfBlock=false;};F=FCKDomTools.GetNextSourceNode(F,false,null,C);};if (A) this.Select();return this._Cache.IsEndOfBlock=true;},CreateBookmark:function(A){var B={StartId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'S',EndId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'E'};var C=this.Window.document;var D;var E;var F;if (!this.CheckIsCollapsed()){E=C.createElement('span');E.style.display='none';E.id=B.EndId;E.setAttribute('_fck_bookmark',true);E.innerHTML='&nbsp;';F=this.Clone();F.Collapse(false);F.InsertNode(E);};D=C.createElement('span');D.style.display='none';D.id=B.StartId;D.setAttribute('_fck_bookmark',true);D.innerHTML='&nbsp;';F=this.Clone();F.Collapse(true);F.InsertNode(D);if (A){B.StartNode=D;B.EndNode=E;};if (E){this.SetStart(D,4);this.SetEnd(E,3);}else this.MoveToPosition(D,4);return B;},GetBookmarkNode:function(A,B){var C=this.Window.document;if (B) return A.StartNode||C.getElementById(A.StartId);else return A.EndNode||C.getElementById(A.EndId);},MoveToBookmark:function(A,B){var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);this.SetStart(C,3);if (!B) FCKDomTools.RemoveNode(C);if (D){this.SetEnd(D,3);if (!B) FCKDomTools.RemoveNode(D);}else this.Collapse(true);this._UpdateElementInfo();},CreateBookmark2:function(){if (!this._Range) return { "Start":0,"End":0 };var A={"Start":[this._Range.startOffset],"End":[this._Range.endOffset]};var B=this._Range.startContainer.previousSibling;var C=this._Range.endContainer.previousSibling;var D=this._Range.startContainer;var E=this._Range.endContainer;while (B&&B.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;};while (C&&C.nodeType==3){A.End[0]+=C.length;E=C;C=C.previousSibling;};if (D.nodeType==1&&D.childNodes[A.Start[0]]&&D.childNodes[A.Start[0]].nodeType==3){var F=D.childNodes[A.Start[0]];var G=0;while (F.previousSibling&&F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};D=F;A.Start[0]=G;};if (E.nodeType==1&&E.childNodes[A.End[0]]&&E.childNodes[A.End[0]].nodeType==3){var F=E.childNodes[A.End[0]];var G=0;while (F.previousSibling&&F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};E=F;A.End[0]=G;};A.Start=FCKDomTools.GetNodeAddress(D,true).concat(A.Start);A.End=FCKDomTools.GetNodeAddress(E,true).concat(A.End);return A;},MoveToBookmark2:function(A){var B=FCKDomTools.GetNodeFromAddress(this.Window.document,A.Start.slice(0,-1),true);var C=FCKDomTools.GetNodeFromAddress(this.Window.document,A.End.slice(0,-1),true);this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var D=A.Start[A.Start.length-1];var E=A.End[A.End.length-1];while (B.nodeType==3&&D>B.length){if (!B.nextSibling||B.nextSibling.nodeType!=3) break;D-=B.length;B=B.nextSibling;};while (C.nodeType==3&&E>C.length){if (!C.nextSibling||C.nextSibling.nodeType!=3) break;E-=C.length;C=C.nextSibling;};this._Range.setStart(B,D);this._Range.setEnd(C,E);this._UpdateElementInfo();},MoveToPosition:function(A,B){this.SetStart(A,B);this.Collapse(true);},SetStart:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setStart(A,0);break;case 2:D.setStart(A,A.childNodes.length);break;case 3:D.setStartBefore(A);break;case 4:D.setStartAfter(A);};if (!C) this._UpdateElementInfo();},SetEnd:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setEnd(A,0);break;case 2:D.setEnd(A,A.childNodes.length);break;case 3:D.setEndBefore(A);break;case 4:D.setEndAfter(A);};if (!C) this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'inline_elements':if (this._Range.startOffset==0){B=this._Range.startContainer;if (B.nodeType!=1) B=B.previousSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setStartBefore(B);if (B!=B.parentNode.firstChild) break;B=B.parentNode;}}};B=this._Range.endContainer;var C=this._Range.endOffset;if ((B.nodeType==3&&C>=B.nodeValue.length)||(B.nodeType==1&&C>=B.childNodes.length)||(B.nodeType!=1&&B.nodeType!=3)){if (B.nodeType!=1) B=B.nextSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setEndAfter(B);if (B!=B.parentNode.lastChild) break;B=B.parentNode;}}};break;case 'block_contents':case 'list_contents':var D=FCKListsLib.BlockBoundaries;if (A=='list_contents'||FCKConfig.EnterMode=='br') D=FCKListsLib.ListBoundaries;if (this.StartBlock&&FCKConfig.EnterMode!='br'&&A=='block_contents') this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){var E=B.childNodes[this._Range.startOffset];if (E) B=FCKDomTools.GetPreviousSourceNode(E,true);else B=B.lastChild||B;};while (B&&(B.nodeType!=1||(B!=this.StartBlockLimit&&!D[B.nodeName.toLowerCase()]))){this._Range.setStartBefore(B);B=B.previousSibling||B.parentNode;}};if (this.EndBlock&&FCKConfig.EnterMode!='br'&&A=='block_contents'&&this.EndBlock.nodeName.toLowerCase()!='li') this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;while (B&&(B.nodeType!=1||(B!=this.StartBlockLimit&&!D[B.nodeName.toLowerCase()]))){this._Range.setEndAfter(B);B=B.nextSibling||B.parentNode;};if (B&&B.nodeName.toLowerCase()=='br') this._Range.setEndAfter(B);};this._UpdateElementInfo();}},SplitBlock:function(){if (!this._Range) this.MoveToSelection();if (this.StartBlockLimit==this.EndBlockLimit){var A=this.StartBlock;var B=this.EndBlock;var C=null;if (FCKConfig.EnterMode!='br'){if (!A){A=this.FixBlock(true);B=this.EndBlock;};if (!B) B=this.FixBlock(false);};var D=(A!=null&&this.CheckStartOfBlock());var E=(B!=null&&this.CheckEndOfBlock());if (!this.CheckIsEmpty()) this.DeleteContents();if (A&&B&&A==B){if (E){C=new FCKElementPath(this.StartContainer);this.MoveToPosition(B,4);B=null;}else if (D){C=new FCKElementPath(this.StartContainer);this.MoveToPosition(A,3);A=null;}else{this.SetEnd(A,2);var F=this.ExtractContents();B=A.cloneNode(false);B.removeAttribute('id',false);F.AppendTo(B);FCKDomTools.InsertAfterNode(A,B);this.MoveToPosition(A,4);if (FCKBrowserInfo.IsGecko&&!A.nodeName.IEquals(['ul','ol'])) FCKTools.AppendBogusBr(A);}};return {PreviousBlock:A,NextBlock:B,WasStartOfBlock:D,WasEndOfBlock:E,ElementPath:C};};return null;},FixBlock:function(A){var B=this.CreateBookmark();this.Collapse(A);this.Expand('block_contents');var C=this.Window.document.createElement(FCKConfig.EnterMode);this.ExtractContents().AppendTo(C);FCKDomTools.TrimNode(C);this.InsertNode(C);this.MoveToBookmark(B);return C;},Release:function(A){if (!A) this.Window=null;this.StartNode=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndNode=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;this._Cache=null;},CheckHasRange:function(){return!!this._Range;},GetTouchedStartNode:function(){var A=this._Range;var B=A.startContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.startOffset]||B;},GetTouchedEndNode:function(){var A=this._Range;var B=A.endContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.endOffset-1]||B;}}; +FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);var A=this.Window.getSelection();if (A&&A.rangeCount>0){this._Range=FCKW3CRange.CreateFromRange(this.Window.document,A.getRangeAt(0));this._UpdateElementInfo();}else if (this.Window.document) this.MoveToElementStart(this.Window.document.body);};FCKDomRange.prototype.Select=function(){var A=this._Range;if (A){var B=A.startContainer;if (A.collapsed&&B.nodeType==1&&B.childNodes.length==0) B.appendChild(A._Document.createTextNode(''));var C=this.Window.document.createRange();C.setStart(B,A.startOffset);try{C.setEnd(A.endContainer,A.endOffset);}catch (e){if (e.toString().Contains('NS_ERROR_ILLEGAL_VALUE')){A.collapse(true);C.setEnd(A.endContainer,A.endOffset);}else throw(e);};var D=this.Window.getSelection();D.removeAllRanges();D.addRange(C);}};FCKDomRange.prototype.SelectBookmark=function(A){var B=this.Window.document.createRange();var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);B.setStart(C.parentNode,FCKDomTools.GetIndexOf(C));FCKDomTools.RemoveNode(C);if (D){B.setEnd(D.parentNode,FCKDomTools.GetIndexOf(D));FCKDomTools.RemoveNode(D);};var E=this.Window.getSelection();E.removeAllRanges();E.addRange(B);} +var FCKDomRangeIterator=function(A){this.Range=A;this.ForceBrBreak=false;this.EnforceRealBlocks=false;};FCKDomRangeIterator.CreateFromSelection=function(A){var B=new FCKDomRange(A);B.MoveToSelection();return new FCKDomRangeIterator(B);};FCKDomRangeIterator.prototype={GetNextParagraph:function(){var A;var B;var C;var D;var E;var F=this.ForceBrBreak?FCKListsLib.ListBoundaries:FCKListsLib.BlockBoundaries;if (!this._LastNode){var B=this.Range.Clone();B.Expand(this.ForceBrBreak?'list_contents':'block_contents');this._NextNode=B.GetTouchedStartNode();this._LastNode=B.GetTouchedEndNode();B=null;};var H=this._NextNode;var I=this._LastNode;while (H){var J=false;var K=(H.nodeType!=1);var L=false;if (!K){var M=H.nodeName.toLowerCase();if (F[M]){if (M=='br') K=true;else if (!B&&H.childNodes.length==0&&M!='hr'){A=H;C=H==I;break;};J=true;}else{if (H.firstChild){if (!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};H=H.firstChild;continue;};K=true;}}else if (H.nodeType==3){if (/^[\r\n\t ]+$/.test(H.nodeValue)) K=false;};if (K&&!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};C=((!J||K)&&H==I);if (B&&!J){while (!H.nextSibling&&!C){var N=H.parentNode;if (F[N.nodeName.toLowerCase()]){J=true;C=C||(N==I);break;};H=N;C=(H==I);L=true;}};if (K) B.SetEnd(H,4,true);if ((J||C)&&B){B._UpdateElementInfo();if (B.StartNode==B.EndNode&&B.StartNode.parentNode==B.StartBlockLimit&&B.StartNode.getAttribute&&B.StartNode.getAttribute('_fck_bookmark')) B=null;else break;};if (C) break;H=FCKDomTools.GetNextSourceNode(H,L,null,I);};if (!A){if (!B){this._NextNode=null;return null;};A=B.StartBlock;if (!A&&!this.EnforceRealBlocks&&B.StartBlockLimit.nodeName.IEquals('DIV','TH','TD')&&B.CheckStartOfBlock()&&B.CheckEndOfBlock()){A=B.StartBlockLimit;}else if (!A||(this.EnforceRealBlocks&&A.nodeName.toLowerCase()=='li')){A=this.Range.Window.document.createElement(FCKConfig.EnterMode=='p'?'p':'div');B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);B.InsertNode(A);D=true;E=true;}else if (A.nodeName.toLowerCase()!='li'){if (!B.CheckStartOfBlock()||!B.CheckEndOfBlock()){A=A.cloneNode(false);B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);var O=B.SplitBlock();D=!O.WasStartOfBlock;E=!O.WasEndOfBlock;FCKDebug.Output('removePreviousBr='+D+',removeLastBr='+E);B.InsertNode(A);}}else if (!C){this._NextNode=A==I?null:FCKDomTools.GetNextSourceNode(B.EndNode,true,null,I);return A;}};if (D){var P=A.previousSibling;if (P&&P.nodeType==1){if (P.nodeName.toLowerCase()=='br') P.parentNode.removeChild(P);else if (P.lastChild&&P.lastChild.nodeName.IEquals('br')) P.removeChild(P.lastChild);}};if (E){var Q=A.lastChild;if (Q&&Q.nodeType==1&&Q.nodeName.toLowerCase()=='br') A.removeChild(Q);};this._NextNode=(C||A==I)?null:FCKDomTools.GetNextSourceNode(A,true,null,I);return A;}}; var FCKDocumentFragment=function(A,B){this.RootNode=B||A.createDocumentFragment();};FCKDocumentFragment.prototype={AppendTo:function(A){A.appendChild(this.RootNode);},InsertAfterNode:function(A){FCKDomTools.InsertAfterNode(A,this.RootNode);}} -var FCKW3CRange=function(A){this._Document=A;this.startContainer=null;this.startOffset=null;this.endContainer=null;this.endOffset=null;this.collapsed=true;};FCKW3CRange.CreateRange=function(A){return new FCKW3CRange(A);};FCKW3CRange.CreateFromRange=function(A,B){var C=FCKW3CRange.CreateRange(A);C.setStart(B.startContainer,B.startOffset);C.setEnd(B.endContainer,B.endOffset);return C;};FCKW3CRange.prototype={_UpdateCollapsed:function(){this.collapsed=(this.startContainer==this.endContainer&&this.startOffset==this.endOffset);},setStart:function(A,B){this.startContainer=A;this.startOffset=B;if (!this.endContainer){this.endContainer=A;this.endOffset=B;};this._UpdateCollapsed();},setEnd:function(A,B){this.endContainer=A;this.endOffset=B;if (!this.startContainer){this.startContainer=A;this.startOffset=B;};this._UpdateCollapsed();},setStartAfter:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setStartBefore:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A));},setEndAfter:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setEndBefore:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A));},collapse:function(A){if (A){this.endContainer=this.startContainer;this.endOffset=this.startOffset;}else{this.startContainer=this.endContainer;this.startOffset=this.endOffset;};this.collapsed=true;},selectNodeContents:function(A){this.setStart(A,0);this.setEnd(A,A.nodeType==3?A.data.length:A.childNodes.length);},insertNode:function(A){var B=this.startContainer;var C=this.startOffset;if (B.nodeType==3){B.splitText(C);if (B==this.endContainer) this.setEnd(B.nextSibling,this.endOffset-this.startOffset);FCKDomTools.InsertAfterNode(B,A);return;}else{B.insertBefore(A,B.childNodes[C]||null);if (B==this.endContainer){this.endOffset++;this.collapsed=false;}}},deleteContents:function(){if (this.collapsed) return;this._ExecContentsAction(0);},extractContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(1,A);return A;},cloneContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(2,A);return A;},_ExecContentsAction:function(A,B){var C=this.startContainer;var D=this.endContainer;var E=this.startOffset;var F=this.endOffset;var G=false;var H=false;if (D.nodeType==3) D=D.splitText(F);else{if (D.childNodes.length>0){if (F>D.childNodes.length-1){D=FCKDomTools.InsertAfterNode(D.lastChild,this._Document.createTextNode(''));H=true;}else D=D.childNodes[F];}};if (C.nodeType==3){C.splitText(E);if (C==D) D=C.nextSibling;}else{if (C.childNodes.length>0&&E<=C.childNodes.length-1){if (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else C=C.childNodes[E].previousSibling;}};var I=FCKDomTools.GetParents(C);var J=FCKDomTools.GetParents(D);var i,topStart,topEnd;for (i=0;i<I.length;i++){topStart=I[i];topEnd=J[i];if (topStart!=topEnd) break;};var K,levelStartNode,levelClone,currentNode,currentSibling;if (B) K=B.RootNode;for (var j=i;j<I.length;j++){levelStartNode=I[j];if (K&&levelStartNode!=C) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==C));currentNode=levelStartNode.nextSibling;while(currentNode){if (currentNode==J[j]||currentNode==D) break;currentSibling=currentNode.nextSibling;if (A==2) K.appendChild(currentNode.cloneNode(true));else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.appendChild(currentNode);};currentNode=currentSibling;};if (K) K=levelClone;};if (B) K=B.RootNode;for (var k=i;k<J.length;k++){levelStartNode=J[k];if (A>0&&levelStartNode!=D) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==D));if (!I[k]||levelStartNode.parentNode!=I[k].parentNode){currentNode=levelStartNode.previousSibling;while(currentNode){if (currentNode==I[k]||currentNode==C) break;currentSibling=currentNode.previousSibling;if (A==2) K.insertBefore(currentNode.cloneNode(true),K.firstChild);else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.insertBefore(currentNode,K.firstChild);};currentNode=currentSibling;}};if (K) K=levelClone;};if (A==2){var L=this.startContainer;if (L.nodeType==3){L.data+=L.nextSibling.data;L.parentNode.removeChild(L.nextSibling);};var M=this.endContainer;if (M.nodeType==3&&M.nextSibling){M.data+=M.nextSibling.data;M.parentNode.removeChild(M.nextSibling);}}else{if (topStart&&topEnd&&(C.parentNode!=topStart.parentNode||D.parentNode!=topEnd.parentNode)) this.setStart(topEnd.parentNode,FCKDomTools.GetIndexOf(topEnd));this.collapse(true);};if(G) C.parentNode.removeChild(C);if(H&&D.parentNode) D.parentNode.removeChild(D);},cloneRange:function(){return FCKW3CRange.CreateFromRange(this._Document,this);},toString:function(){var A=this.cloneContents();var B=this._Document.createElement('div');A.AppendTo(B);return B.textContent||B.innerText;}}; -var FCKEnterKey=function(A,B,C){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var D=new FCKKeystrokeHandler(false);D._EnterKey=this;D.OnKeystroke=FCKEnterKey_OnKeystroke;D.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[8,'Backspace'],[46,'Delete']]);D.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){this._HasShift=(B===true);var C=A||this.EnterMode;if (C=='br') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(C);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (!B.CheckIsCollapsed()) return false;var C=B.StartBlock;var D=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&C&&D){if (!B.CheckIsCollapsed()){var E=B.CheckEndOfBlock();B.DeleteContents();if (C!=D){B.SetStart(D,1);B.SetEnd(D,1);};B.Select();A=(C==D);};if (B.CheckStartOfBlock()){var F=B.StartBlock;var G=FCKDomTools.GetPreviousSourceElement(F,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,G,F);}else if (FCKBrowserInfo.IsGecko){B.Select();}};B.Release();return A;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&&C.nodeName.IEquals('LI')&&C.parentNode.parentNode.nodeName.IEquals('LI')){B=C.parentNode.parentNode;C=FCKListHandler.OutdentListItem(C);};if (B&&B.nodeName.IEquals('LI')){var E=FCKDomTools.GetLastChild(B,['UL','OL']);while (E){B=FCKDomTools.GetLastChild(E,'LI');E=FCKDomTools.GetLastChild(B,['UL','OL']);}};if (B&&C){if (C.nodeName.IEquals('LI')&&!B.nodeName.IEquals('LI')) C=FCKListHandler.OutdentListItem(C);var F=C.parentNode;if (B.nodeName.IEquals('TABLE','HR')){FCKDomTools.RemoveNode(B);D=true;}else{FCKDomTools.RemoveNode(C);while (F.innerHTML.Trim().length==0){var G=F.parentNode;G.removeChild(F);F=G;};FCKDomTools.TrimNode(C);FCKDomTools.TrimNode(B);A.SetStart(B,2);A.Collapse(true);var H=A.CreateBookmark();FCKDomTools.MoveChildren(C,B);A.MoveToBookmark(H);A.Select();D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.CheckIsCollapsed()&&B.CheckEndOfBlock(FCKBrowserInfo.IsGecko)){var C=B.StartBlock;var D=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,C,D);};B.Release();return A;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){if (!B.StartBlock) this._FixBlock(B,true,A);if (!B.EndBlock) this._FixBlock(B,false,A);var C=B.StartBlock;var D=B.EndBlock;if (!B.CheckIsEmpty()) B.DeleteContents();if (C==D){var E;var F=B.CheckStartOfBlock();var G=B.CheckEndOfBlock();if (F&&!G){E=C.cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) E.innerHTML=GECKO_BOGUS;C.parentNode.insertBefore(E,C);if (FCKBrowserInfo.IsIE){B.MoveToNodeContents(E);B.Select();};B.MoveToElementStart(C);}else{if (G){var H=C.tagName.toUpperCase();if (F&&H=='LI'){var I=FCKListHandler.OutdentListItem(C);B.MoveToElementStart(I);}else{if ((/^H[1-6]$/).test(H)) E=this.Window.document.createElement(A);else E=C.cloneNode(false);if (FCKBrowserInfo.IsGeckoLike){E.innerHTML=GECKO_BOGUS;if (F) C.innerHTML=GECKO_BOGUS;}}}else{B.SetEnd(C,2);var J=B.ExtractContents();E=C.cloneNode(false);FCKDomTools.TrimNode(J.RootNode);if (J.RootNode.firstChild.nodeType==1&&J.RootNode.firstChild.tagName.toUpperCase().Equals('UL','OL')) E.innerHTML=GECKO_BOGUS;J.AppendTo(E);if (FCKBrowserInfo.IsGecko){var K=FCKDomTools.GetLastChild(E);if (!K||K.nodeName.toLowerCase()!='br'||K.getAttribute('type',2)!='_moz') E.appendChild(FCKTools.CreateBogusBR(this.Window.document));}};if (E){FCKDomTools.InsertAfterNode(C,E);B.MoveToElementStart(E);if (FCKBrowserInfo.IsGecko) E.scrollIntoView(false);}}}else{B.MoveToElementStart(D);};B.Select();};B.Release();return true;};FCKEnterKey.prototype._ExecuteEnterBr=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){B.DeleteContents();B.MoveToSelection();var C=B.CheckStartOfBlock();var D=B.CheckEndOfBlock();var E=B.StartBlock?B.StartBlock.tagName.toUpperCase():'';var F=this._HasShift;if (!F&&E=='LI') return this._ExecuteEnterBlock(null);if (!F&&D&&(/^H[1-6]$/).test(E)){FCKDebug.Output('BR - Header');FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createElement('br'));if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createTextNode(''));B.SetStart(B.StartBlock.nextSibling,FCKBrowserInfo.IsIE?3:1);}else{FCKDebug.Output('BR - No Header');var G=this.Window.document.createElement('br');B.InsertNode(G);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(G,this.Window.document.createTextNode(''));if (D&&FCKBrowserInfo.IsGecko){var H=FCKDomTools.GetLastChild(G.parentNode,'BR');if (H&&H.getAttribute('type',2)!='_moz') G.parentNode.appendChild(FCKTools.CreateBogusBR(this.Window.document));};if (FCKBrowserInfo.IsIE) B.SetStart(G,4);else B.SetStart(G.nextSibling,1);};B.Collapse(true);B.Select();};B.Release();return true;};FCKEnterKey.prototype._FixBlock=function(A,B,C){var D=A.CreateBookmark();A.Collapse(B);A.Expand('block_contents');var E=this.Window.document.createElement(C);A.ExtractContents().AppendTo(E);FCKDomTools.TrimNode(E);A.InsertNode(E);A.MoveToBookmark(D);} -var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B,i=0;while((B=this._Items[i++])) B.ProcessDocument(A);};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCK.EditorDocument.createElement('IMG');C.className=A;C.src=FCKConfig.FullBasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0){if (C.innerHTML!=''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.childNodes.length==1&&C.childNodes[0].style&&C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKFlashProcessor=FCKDocumentProcessor.AppendNew();FCKFlashProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('EMBED');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.src.EndsWith('.swf',true)){var D=C.cloneNode(true);if (FCKBrowserInfo.IsIE){var E=['scale','play','loop','menu','wmode','quality'];for (var F=0;i<E.length;i++){var G=C.getAttribute(E[F]);if (G) D.setAttribute(E[F],G);}};var H=FCKDocumentProcessor_CreateFakeImage('FCK__Flash',D);H.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(H,C);C.parentNode.insertBefore(H,C);C.parentNode.removeChild(C);}}};FCKFlashProcessor.RefreshView=function(A,B){if (B.width>0) A.style.width=FCKTools.ConvertHtmlSizeToStyle(B.width);if (B.height>0) A.style.height=FCKTools.ConvertHtmlSizeToStyle(B.height);};FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length>0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length>0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;}; -var FCKSelection=FCK.Selection={}; -FCKSelection.GetType=function(){this._Type='Text';var A;try { A=FCK.EditorWindow.getSelection();}catch (e) {};if (A&&A.rangeCount==1){var B=A.getRangeAt(0);if (B.startContainer==B.endContainer&&(B.endOffset-B.startOffset)==1&&B.startContainer.nodeType!=Node.TEXT_NODE) this._Type='Control';};return this._Type;};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=FCK.EditorWindow.getSelection();return A.anchorNode.childNodes[A.anchorOffset];};return null;};FCKSelection.GetParentElement=function(){if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentNode;else{var A=FCK.EditorWindow.getSelection();if (A){var B=A.anchorNode;while (B&&B.nodeType!=1) B=B.parentNode;return B;}};return null;};FCKSelection.SelectNode=function(A){var B=FCK.EditorDocument.createRange();B.selectNode(A);var C=FCK.EditorWindow.getSelection();C.removeAllRanges();C.addRange(B);};FCKSelection.Collapse=function(A){var B=FCK.EditorWindow.getSelection();if (A==null||A===true) B.collapseToStart();else B.collapseToEnd();};FCKSelection.HasAncestorNode=function(A){var B=this.GetSelectedElement();if (!B&&FCK.EditorWindow){try { B=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;}catch(e){}};while (B){if (B.nodeType==1&&B.tagName==A) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B;var C=this.GetSelectedElement();if (!C) C=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;while (C){if (C.nodeName==A) return C;C=C.parentNode;};return null;};FCKSelection.Delete=function(){var A=FCK.EditorWindow.getSelection();for (var i=0;i<A.rangeCount;i++){A.getRangeAt(i).deleteContents();};return A;}; -var FCKTableHandler={};FCKTableHandler.InsertRow=function(){var A=FCKSelection.MoveToAncestorNode('TR');if (!A) return;var B=A.cloneNode(true);A.parentNode.insertBefore(B,A);FCKTableHandler.ClearRow(A);};FCKTableHandler.DeleteRows=function(A){if (!A) A=FCKSelection.MoveToAncestorNode('TR');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');if (B.rows.length==1){FCKTableHandler.DeleteTable(B);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex+1;for (var i=0;i<B.rows.length;i++){var D=B.rows[i];if (D.cells.length<C) continue;A=D.cells[C-1].cloneNode(false);if (FCKBrowserInfo.IsGecko) A.innerHTML=GECKO_BOGUS;var E=D.cells[C];if (E) D.insertBefore(A,E);else D.appendChild(A);}};FCKTableHandler.DeleteColumns=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex;for (var i=B.rows.length-1;i>=0;i--){var D=B.rows[i];if (C==0&&D.cells.length==1){FCKTableHandler.DeleteRows(D);continue;};if (D.cells[C]) D.removeChild(D.cells[C]);}};FCKTableHandler.InsertCell=function(A){var B=A?A:FCKSelection.MoveToAncestorNode('TD');if (!B) return null;var C=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGecko) C.innerHTML=GECKO_BOGUS;if (B.cellIndex==B.parentNode.cells.length-1){B.parentNode.appendChild(C);}else{B.parentNode.insertBefore(C,B.nextSibling);};return C;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler.MergeCells=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<2) return;if (A[0].parentNode!=A[A.length-1].parentNode) return;var B=isNaN(A[0].colSpan)?1:A[0].colSpan;var C='';var D=FCK.EditorDocument.createDocumentFragment();for (var i=A.length-1;i>=0;i--){var E=A[i];for (var c=E.childNodes.length-1;c>=0;c--){var F=E.removeChild(E.childNodes[c]);if ((F.hasAttribute&&F.hasAttribute('_moz_editor_bogus_node'))||(F.getAttribute&&F.getAttribute('type',2)=='_moz')) continue;D.insertBefore(F,D.firstChild);};if (i>0){B+=isNaN(E.colSpan)?1:E.colSpan;FCKTableHandler.DeleteCell(E);}};A[0].colSpan=B;if (FCKBrowserInfo.IsGecko&&D.childNodes.length==0) A[0].innerHTML=GECKO_BOGUS;else A[0].appendChild(D);};FCKTableHandler.SplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=FCKTableHandler._GetCellIndexSpan(B,A[0].parentNode.rowIndex,A[0]);var D=this._GetCollumnCells(B,C);for (var i=0;i<D.length;i++){if (D[i]==A[0]){var E=this.InsertCell(A[0]);if (!isNaN(A[0].rowSpan)&&A[0].rowSpan>1) E.rowSpan=A[0].rowSpan;}else{if (isNaN(D[i].colSpan)) D[i].colSpan=2;else D[i].colSpan+=1;}}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length<B+1) return null;var D=A[B];for (var c=0;c<D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCollumnCells=function(A,B){var C=[];for (var r=0;r<A.length;r++){var D=A[r][B];if (D&&(C.length==0||C[C.length-1]!=D)) C[C.length]=D;};return C;};FCKTableHandler._CreateTableMap=function(A){var B=A.rows;var r=-1;var C=[];for (var i=0;i<B.length;i++){r++;if (!C[r]) C[r]=[];var c=-1;for (var j=0;j<B[i].cells.length;j++){var D=B[i].cells[j];c++;while (C[r][c]) c++;var E=isNaN(D.colSpan)?1:D.colSpan;var F=isNaN(D.rowSpan)?1:D.rowSpan;for (var G=0;G<F;G++){if (!C[r+G]) C[r+G]=[];for (var H=0;H<E;H++){C[r+G][c+H]=B[i].cells[j];}};c+=E-1;}};return C;};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsGecko) B[i].innerHTML=GECKO_BOGUS;else B[i].innerHTML='';}}; -FCKTableHandler.GetSelectedCells=function(){var A=[];var B=FCK.EditorWindow.getSelection();if (B.rangeCount==1&&B.anchorNode.nodeType==3){var C=FCKTools.GetElementAscensor(B.anchorNode,'TD,TH');if (C){A[0]=C;return A;}};for (var i=0;i<B.rangeCount;i++){var D=B.getRangeAt(i);var E;if (D.startContainer.tagName.Equals('TD','TH')) E=D.startContainer;else E=D.startContainer.childNodes[D.startOffset];if (E.tagName.Equals('TD','TH')) A[A.length]=E;};return A;}; -var FCKXml=function(){};FCKXml.prototype.LoadUrl=function(A){this.Error=false;var B=this;var C=FCKTools.CreateXmlObject('XmlHttp');C.open("GET",A,false);C.send(null);if (C.status==200||C.status==304) this.DOMDocument=C.responseXML;else if (C.status==0&&C.readyState==4) this.DOMDocument=C.responseXML;else this.DOMDocument=null;if (this.DOMDocument==null||this.DOMDocument.firstChild==null){this.Error=true;if (window.confirm('Error loading "'+A+'"\r\nDo you want to see more info?')) alert('URL requested: "'+A+'"\r\nServer response:\r\nStatus: '+C.status+'\r\nResponse text:\r\n'+C.responseText);}};FCKXml.prototype.SelectNodes=function(A,B){if (this.Error) return [];var C=[];var D=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);if (D){var E=D.iterateNext();while(E){C[C.length]=E;E=D.iterateNext();}};return C;};FCKXml.prototype.SelectSingleNode=function(A,B){if (this.Error) return null;var C=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),9,null);if (C&&C.singleNodeValue) return C.singleNodeValue;else return null;} -var FCKStyleDef=function(A,B){this.Name=A;this.Element=B.toUpperCase();this.IsObjectElement=FCKRegexLib.ObjectElements.test(this.Element);this.Attributes={};};FCKStyleDef.prototype.AddAttribute=function(A,B){this.Attributes[A]=B;};FCKStyleDef.prototype.GetOpenerTag=function(){var s='<'+this.Element;for (var a in this.Attributes) s+=' '+a+'="'+this.Attributes[a]+'"';return s+'>';};FCKStyleDef.prototype.GetCloserTag=function(){return '</'+this.Element+'>';};FCKStyleDef.prototype.RemoveFromSelection=function(){if (FCKSelection.GetType()=='Control') this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement());else this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetParentElement());} -FCKStyleDef.prototype.ApplyToSelection=function(){if (FCKSelection.GetType()=='Text'&&!this.IsObjectElement){var A=FCK.ToolbarSet.CurrentInstance.EditorWindow.getSelection();var e=FCK.ToolbarSet.CurrentInstance.EditorDocument.createElement(this.Element);for (var i=0;i<A.rangeCount;i++){e.appendChild(A.getRangeAt(i).extractContents());};this._AddAttributes(e);this._RemoveDuplicates(e);var B=A.getRangeAt(0);B.insertNode(e);}else{var C=FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement();if (C.tagName==this.Element) this._AddAttributes(C);}};FCKStyleDef.prototype._AddAttributes=function(A){for (var a in this.Attributes){switch (a.toLowerCase()){case 'src':A.setAttribute('_fcksavedurl',this.Attributes[a],0);default:A.setAttribute(a,this.Attributes[a],0);}}};FCKStyleDef.prototype._RemoveDuplicates=function(A){for (var i=0;i<A.childNodes.length;i++){var B=A.childNodes[i];if (B.nodeType!=1) continue;this._RemoveDuplicates(B);if (this.IsEqual(B)) FCKTools.RemoveOuterTags(B);}};FCKStyleDef.prototype.IsEqual=function(e){if (e.tagName!=this.Element) return false;for (var a in this.Attributes){if (e.getAttribute(a)!=this.Attributes[a]) return false;};return true;};FCKStyleDef.prototype._RemoveMe=function(A){if (!A) return;var B=A.parentNode;if (A.nodeType==1&&this.IsEqual(A)){if (this.IsObjectElement){for (var a in this.Attributes) A.removeAttribute(a,0);return;}else FCKTools.RemoveOuterTags(A);};this._RemoveMe(B);} -var FCKStylesLoader=function(){this.Styles={};this.StyleGroups={};this.Loaded=false;this.HasObjectElements=false;};FCKStylesLoader.prototype.Load=function(A){var B=new FCKXml();B.LoadUrl(A);var C=B.SelectNodes('Styles/Style');for (var i=0;i<C.length;i++){var D=C[i].attributes.getNamedItem('element').value.toUpperCase();var E=new FCKStyleDef(C[i].attributes.getNamedItem('name').value,D);if (E.IsObjectElement) this.HasObjectElements=true;var F=B.SelectNodes('Attribute',C[i]);for (var j=0;j<F.length;j++){var G=F[j].attributes.getNamedItem('name').value;var H=F[j].attributes.getNamedItem('value').value;if (G.toLowerCase()=='style'){var I=document.createElement('SPAN');I.style.cssText=H;H=I.style.cssText;};E.AddAttribute(G,H);};this.Styles[E.Name]=E;var J=this.StyleGroups[D];if (J==null){this.StyleGroups[D]=[];J=this.StyleGroups[D];};J[J.length]=E;};this.Loaded=true;} +var FCKW3CRange=function(A){this._Document=A;this.startContainer=null;this.startOffset=null;this.endContainer=null;this.endOffset=null;this.collapsed=true;};FCKW3CRange.CreateRange=function(A){return new FCKW3CRange(A);};FCKW3CRange.CreateFromRange=function(A,B){var C=FCKW3CRange.CreateRange(A);C.setStart(B.startContainer,B.startOffset);C.setEnd(B.endContainer,B.endOffset);return C;};FCKW3CRange.prototype={_UpdateCollapsed:function(){this.collapsed=(this.startContainer==this.endContainer&&this.startOffset==this.endOffset);},setStart:function(A,B){this.startContainer=A;this.startOffset=B;if (!this.endContainer){this.endContainer=A;this.endOffset=B;};this._UpdateCollapsed();},setEnd:function(A,B){this.endContainer=A;this.endOffset=B;if (!this.startContainer){this.startContainer=A;this.startOffset=B;};this._UpdateCollapsed();},setStartAfter:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setStartBefore:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A));},setEndAfter:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setEndBefore:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A));},collapse:function(A){if (A){this.endContainer=this.startContainer;this.endOffset=this.startOffset;}else{this.startContainer=this.endContainer;this.startOffset=this.endOffset;};this.collapsed=true;},selectNodeContents:function(A){this.setStart(A,0);this.setEnd(A,A.nodeType==3?A.data.length:A.childNodes.length);},insertNode:function(A){var B=this.startContainer;var C=this.startOffset;if (B.nodeType==3){B.splitText(C);if (B==this.endContainer) this.setEnd(B.nextSibling,this.endOffset-this.startOffset);FCKDomTools.InsertAfterNode(B,A);return;}else{B.insertBefore(A,B.childNodes[C]||null);if (B==this.endContainer){this.endOffset++;this.collapsed=false;}}},deleteContents:function(){if (this.collapsed) return;this._ExecContentsAction(0);},extractContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(1,A);return A;},cloneContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(2,A);return A;},_ExecContentsAction:function(A,B){var C=this.startContainer;var D=this.endContainer;var E=this.startOffset;var F=this.endOffset;var G=false;var H=false;if (D.nodeType==3) D=D.splitText(F);else{if (D.childNodes.length>0){if (F>D.childNodes.length-1){D=FCKDomTools.InsertAfterNode(D.lastChild,this._Document.createTextNode(''));H=true;}else D=D.childNodes[F];}};if (C.nodeType==3){C.splitText(E);if (C==D) D=C.nextSibling;}else{if (C.childNodes.length>0&&E<=C.childNodes.length-1){if (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else C=C.childNodes[E].previousSibling;}};var I=FCKDomTools.GetParents(C);var J=FCKDomTools.GetParents(D);var i,topStart,topEnd;for (i=0;i<I.length;i++){topStart=I[i];topEnd=J[i];if (topStart!=topEnd) break;};var K,levelStartNode,levelClone,currentNode,currentSibling;if (B) K=B.RootNode;for (var j=i;j<I.length;j++){levelStartNode=I[j];if (K&&levelStartNode!=C) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==C));currentNode=levelStartNode.nextSibling;while(currentNode){if (currentNode==J[j]||currentNode==D) break;currentSibling=currentNode.nextSibling;if (A==2) K.appendChild(currentNode.cloneNode(true));else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.appendChild(currentNode);};currentNode=currentSibling;};if (K) K=levelClone;};if (B) K=B.RootNode;for (var k=i;k<J.length;k++){levelStartNode=J[k];if (A>0&&levelStartNode!=D) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==D));if (!I[k]||levelStartNode.parentNode!=I[k].parentNode){currentNode=levelStartNode.previousSibling;while(currentNode){if (currentNode==I[k]||currentNode==C) break;currentSibling=currentNode.previousSibling;if (A==2) K.insertBefore(currentNode.cloneNode(true),K.firstChild);else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.insertBefore(currentNode,K.firstChild);};currentNode=currentSibling;}};if (K) K=levelClone;};if (A==2){var L=this.startContainer;if (L.nodeType==3){L.data+=L.nextSibling.data;L.parentNode.removeChild(L.nextSibling);};var M=this.endContainer;if (M.nodeType==3&&M.nextSibling){M.data+=M.nextSibling.data;M.parentNode.removeChild(M.nextSibling);}}else{if (topStart&&topEnd&&(C.parentNode!=topStart.parentNode||D.parentNode!=topEnd.parentNode)){var N=FCKDomTools.GetIndexOf(topEnd);if (G&&topEnd.parentNode==C.parentNode) N--;this.setStart(topEnd.parentNode,N);};this.collapse(true);};if(G) C.parentNode.removeChild(C);if(H&&D.parentNode) D.parentNode.removeChild(D);},cloneRange:function(){return FCKW3CRange.CreateFromRange(this._Document,this);}}; +var FCKEnterKey=function(A,B,C,D){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var E=new FCKKeystrokeHandler(false);E._EnterKey=this;E.OnKeystroke=FCKEnterKey_OnKeystroke;E.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[9,'Tab'],[8,'Backspace'],[CTRL+8,'CtrlBackspace'],[46,'Delete']]);if (D>0){this.TabText='';while (D-->0) this.TabText+='\xa0';};E.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();break;case 'Tab':return C.DoTab();break;case 'CtrlBackspace':return C.DoCtrlBackspace();break;}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){FCKUndo.SaveUndoStep();this._HasShift=(B===true);var C=FCKSelection.GetParentElement();var D=new FCKElementPath(C);var E=A||this.EnterMode;if (E=='br'||D.Block&&D.Block.tagName.toLowerCase()=='pre') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(E);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};var C=B.CheckIsCollapsed();if (!C){if (FCKBrowserInfo.IsIE&&this.Window.document.selection.type.toLowerCase()=="control"){var D=this.Window.document.selection.createRange();for (var i=D.length-1;i>=0;i--){var E=D.item(i);E.parentNode.removeChild(E);};return true;};return false;};var F=B.StartBlock;var G=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&F&&G){if (!C){var H=B.CheckEndOfBlock();B.DeleteContents();if (F!=G){B.SetStart(G,1);B.SetEnd(G,1);};B.Select();A=(F==G);};if (B.CheckStartOfBlock()){var I=B.StartBlock;var J=FCKDomTools.GetPreviousSourceElement(I,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,J,I);}else if (FCKBrowserInfo.IsGeckoLike){B.Select();}};B.Release();return A;};FCKEnterKey.prototype.DoCtrlBackspace=function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(this.Window);A.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(A,this.Window.document.body)){this._FixIESelectAllBug(A);return true;};return false;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&&C&&C.nodeName.IEquals('LI')&&C.parentNode.parentNode.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};if (B&&B.nodeName.IEquals('LI')){var E=FCKDomTools.GetLastChild(B,['UL','OL']);while (E){B=FCKDomTools.GetLastChild(E,'LI');E=FCKDomTools.GetLastChild(B,['UL','OL']);}};if (B&&C){if (C.nodeName.IEquals('LI')&&!B.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};var F=C.parentNode;var G=B.nodeName.toLowerCase();if (FCKListsLib.EmptyElements[G]!=null||G=='table'){FCKDomTools.RemoveNode(B);D=true;}else{FCKDomTools.RemoveNode(C);while (F.innerHTML.Trim().length==0){var H=F.parentNode;H.removeChild(F);F=H;};FCKDomTools.LTrimNode(C);FCKDomTools.RTrimNode(B);A.SetStart(B,2,true);A.Collapse(true);var I=A.CreateBookmark(true);if (!C.tagName.IEquals(['TABLE'])) FCKDomTools.MoveChildren(C,B);A.SelectBookmark(I);D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){FCKUndo.SaveUndoStep();var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};if (B.CheckIsCollapsed()&&B.CheckEndOfBlock(FCKBrowserInfo.IsGeckoLike)){var C=B.StartBlock;var D=FCKTools.GetElementAscensor(C,'td');var E=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL','TR'],true);if (D){var F=FCKTools.GetElementAscensor(E,'td');if (F!=D) return true;};A=this._ExecuteBackspace(B,C,E);};B.Release();return A;};FCKEnterKey.prototype.DoTab=function(){var A=new FCKDomRange(this.Window);A.MoveToSelection();var B=A._Range.startContainer;while (B){if (B.nodeType==1){var C=B.tagName.toLowerCase();if (C=="tr"||C=="td"||C=="th"||C=="tbody"||C=="table") return false;else break;};B=B.parentNode;};if (this.TabText){A.DeleteContents();A.InsertNode(this.Window.document.createTextNode(this.TabText));A.Collapse(false);A.Select();};return true;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A,B){var C=B||new FCKDomRange(this.Window);var D=C.SplitBlock();if (D){var E=D.PreviousBlock;var F=D.NextBlock;var G=D.WasStartOfBlock;var H=D.WasEndOfBlock;if (!D.WasStartOfBlock&&!D.WasEndOfBlock){if (F.nodeName.IEquals('li')&&F.firstChild&&F.firstChild.nodeName.IEquals(['ul','ol'])) F.insertBefore(F.ownerDocument.createTextNode('\xa0'),F.firstChild);if (F) C.MoveToElementEditStart(F);}else{if (G&&H&&E.tagName.toUpperCase()=='LI'){C.MoveToElementStart(E);this._OutdentWithSelection(E,C);C.Release();return true;};var I;if (E){var J=E.tagName.toUpperCase();if (!this._HasShift&&!(/^H[1-6]$/).test(J)){I=FCKDomTools.CloneElement(E);}}else if (F) I=FCKDomTools.CloneElement(F);if (!I) I=this.Window.document.createElement(A);var K=D.ElementPath;if (K){var L=I;for (var i=0,len=K.Elements.length;i<len;i++){var M=K.Elements[i];if (M==K.Block||M==K.BlockLimit) break;if (FCKListsLib.InlineChildReqElements[M.nodeName.toLowerCase()]) L=L.appendChild(FCKDomTools.CloneElement(M));}};if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);C.InsertNode(I);if (FCKBrowserInfo.IsIE){C.MoveToNodeContents(I);C.Select();};C.MoveToElementEditStart(G&&!H?F:I);};if (FCKBrowserInfo.IsSafari) FCKDomTools.ScrollIntoView(F||I,false);else if (FCKBrowserInfo.IsGeckoLike) (F||I).scrollIntoView(false);C.Select();};C.Release();return true;};FCKEnterKey.prototype._ExecuteEnterBr=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){B.DeleteContents();B.MoveToSelection();var C=B.CheckStartOfBlock();var D=B.CheckEndOfBlock();var E=B.StartBlock?B.StartBlock.tagName.toUpperCase():'';var F=this._HasShift;var G=false;if (!F&&E=='LI') return this._ExecuteEnterBlock(null,B);if (!F&&D&&(/^H[1-6]$/).test(E)){FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createElement('br'));if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createTextNode(''));B.SetStart(B.StartBlock.nextSibling,FCKBrowserInfo.IsIE?3:1);}else{var H;G=E.IEquals('pre');if (G) H=this.Window.document.createTextNode(FCKBrowserInfo.IsIE?'\r':'\n');else H=this.Window.document.createElement('br');B.InsertNode(H);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(H,this.Window.document.createTextNode(''));if (D&&FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H.parentNode);if (FCKBrowserInfo.IsIE) B.SetStart(H,4);else B.SetStart(H.nextSibling,1);if (!FCKBrowserInfo.IsIE){var I=null;if (FCKBrowserInfo.IsOpera) I=this.Window.document.createElement('span');else I=this.Window.document.createElement('br');H.parentNode.insertBefore(I,H.nextSibling);if (FCKBrowserInfo.IsSafari) FCKDomTools.ScrollIntoView(I,false);else I.scrollIntoView(false);I.parentNode.removeChild(I);}};B.Collapse(true);B.Select(G);};B.Release();return true;};FCKEnterKey.prototype._OutdentWithSelection=function(A,B){var C=B.CreateBookmark();FCKListHandler.OutdentListItem(A);B.MoveToBookmark(C);B.Select();};FCKEnterKey.prototype._CheckIsAllContentsIncluded=function(A,B){var C=false;var D=false;if (A.StartContainer==B||A.StartContainer==B.firstChild) C=(A._Range.startOffset==0);if (A.EndContainer==B||A.EndContainer==B.lastChild){var E=A.EndContainer.nodeType==3?A.EndContainer.length:A.EndContainer.childNodes.length;D=(A._Range.endOffset==E);};return C&&D;};FCKEnterKey.prototype._FixIESelectAllBug=function(A){var B=this.Window.document;B.body.innerHTML='';var C;if (FCKConfig.EnterMode.IEquals(['div','p'])){C=B.createElement(FCKConfig.EnterMode);B.body.appendChild(C);}else C=B.body;A.MoveToNodeContents(C);A.Collapse(true);A.Select();A.Release();}; +var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B,i=0;while((B=this._Items[i++])) B.ProcessDocument(A);};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCK.EditorDocument.createElement('IMG');C.className=A;C.src=FCKConfig.FullBasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0){if (C.innerHTML!==''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.childNodes.length==1&&C.childNodes[0].style&&C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKFlashProcessor=FCKDocumentProcessor.AppendNew();FCKFlashProcessor.ProcessDocument=function(A){var B=FCK.IsDirty();var C=A.getElementsByTagName('EMBED');var D;var i=C.length-1;while (i>=0&&(D=C[i--])){var E=D.attributes['type'];if ((D.src&&D.src.EndsWith('.swf',true))||(E&&E.nodeValue=='application/x-shockwave-flash')){var F=D.cloneNode(true);var G=FCKDocumentProcessor_CreateFakeImage('FCK__Flash',F);G.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(G,D);D.parentNode.insertBefore(G,D);D.parentNode.removeChild(D);}};if (!B) FCK.ResetIsDirty();};FCKFlashProcessor.RefreshView=function(A,B){if (B.getAttribute('width')>0) A.style.width=FCKTools.ConvertHtmlSizeToStyle(B.getAttribute('width'));if (B.getAttribute('height')>0) A.style.height=FCKTools.ConvertHtmlSizeToStyle(B.getAttribute('height'));};FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length>0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length>0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};if (FCKBrowserInfo.IsIE){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('HR');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){var D=A.createElement('hr');D.mergeAttributes(C,true);FCKDomTools.InsertAfterNode(C,D);C.parentNode.removeChild(C);}}};FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('INPUT');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.type=='hidden'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__InputHidden',C.cloneNode(true));D.setAttribute('_fckinputhidden','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}} +var FCKSelection=FCK.Selection={GetParentBlock:function(){var A=this.GetParentElement();while (A){if (FCKListsLib.BlockBoundaries[A.nodeName.toLowerCase()]) break;A=A.parentNode;};return A;},ApplyStyle:function(A){FCKStyles.ApplyStyle(new FCKStyle(A));}}; +FCKSelection.GetType=function(){var A='Text';var B;try { B=FCK.EditorWindow.getSelection();} catch (e) {};if (B&&B.rangeCount==1){var C=B.getRangeAt(0);if (C.startContainer==C.endContainer&&(C.endOffset-C.startOffset)==1&&C.startContainer.nodeType==1&&FCKListsLib.StyleObjectElements[C.startContainer.childNodes[C.startOffset].nodeName.toLowerCase()]){A='Control';}};return A;};FCKSelection.GetSelectedElement=function(){var A=null;var B=!!FCK.EditorWindow&&FCK.EditorWindow.getSelection();if (B&&B.anchorNode&&B.anchorNode.nodeType==1){if (this.GetType()=='Control'){A=B.anchorNode.childNodes[B.anchorOffset];if (!A) A=B.anchorNode;else if (A.nodeType!=1) return null;}};return A;};FCKSelection.GetParentElement=function(){if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentNode;else{var A=FCK.EditorWindow.getSelection();if (A){if (A.anchorNode&&A.anchorNode==A.focusNode) return A.anchorNode.parentNode;var B=new FCKElementPath(A.anchorNode);var C=new FCKElementPath(A.focusNode);var D=null;var E=null;if (B.Elements.length>C.Elements.length){D=B.Elements;E=C.Elements;}else{D=C.Elements;E=B.Elements;};var F=D.length-E.length;for(var i=0;i<E.length;i++){if (D[F+i]==E[i]) return E[i];};return null;}};return null;};FCKSelection.GetBoundaryParentElement=function(A){if (!FCK.EditorWindow) return null;if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentNode;else{var B=FCK.EditorWindow.getSelection();if (B&&B.rangeCount>0){var C=B.getRangeAt(A?0:(B.rangeCount-1));var D=A?C.startContainer:C.endContainer;return (D.nodeType==1?D:D.parentNode);}};return null;};FCKSelection.SelectNode=function(A){var B=FCK.EditorDocument.createRange();B.selectNode(A);var C=FCK.EditorWindow.getSelection();C.removeAllRanges();C.addRange(B);};FCKSelection.Collapse=function(A){var B=FCK.EditorWindow.getSelection();if (A==null||A===true) B.collapseToStart();else B.collapseToEnd();};FCKSelection.HasAncestorNode=function(A){var B=this.GetSelectedElement();if (!B&&FCK.EditorWindow){try { B=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;}catch(e){}};while (B){if (B.nodeType==1&&B.tagName==A) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B;var C=this.GetSelectedElement();if (!C) C=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;while (C){if (C.nodeName==A) return C;C=C.parentNode;};return null;};FCKSelection.Delete=function(){var A=FCK.EditorWindow.getSelection();for (var i=0;i<A.rangeCount;i++){A.getRangeAt(i).deleteContents();};return A;}; +var FCKTableHandler={};FCKTableHandler.InsertRow=function(A){var B=FCKSelection.MoveToAncestorNode('TR');if (!B) return;var C=B.cloneNode(true);B.parentNode.insertBefore(C,B);FCKTableHandler.ClearRow(A?C:B);};FCKTableHandler.DeleteRows=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();var C=[];for (var i=0;i<B.length;i++){var D=FCKTools.GetElementAscensor(B[i],'TR');C[D.rowIndex]=D;};for (var i=C.length;i>=0;i--){if (C[i]) FCKTableHandler.DeleteRows(C[i]);};return;};var E=FCKTools.GetElementAscensor(A,'TABLE');if (E.rows.length==1){FCKTableHandler.DeleteTable(E);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();if (A.parentNode.childNodes.length==1) A.parentNode.parentNode.removeChild(A.parentNode);else A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(A){var B=null;var C=this.GetSelectedCells();if (C&&C.length) B=C[A?0:(C.length-1)];if (!B) return;var D=FCKTools.GetElementAscensor(B,'TABLE');var E=B.cellIndex;for (var i=0;i<D.rows.length;i++){var F=D.rows[i];if (F.cells.length<(E+1)) continue;B=F.cells[E].cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B);var G=F.cells[E];if (A) F.insertBefore(B,G);else if (G.nextSibling) F.insertBefore(B,G.nextSibling);else F.appendChild(B);}};FCKTableHandler.DeleteColumns=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();for (var i=B.length;i>=0;i--){if (B[i]) FCKTableHandler.DeleteColumns(B[i]);};return;};if (!A) return;var C=FCKTools.GetElementAscensor(A,'TABLE');var D=A.cellIndex;for (var i=C.rows.length-1;i>=0;i--){var E=C.rows[i];if (D==0&&E.cells.length==1){FCKTableHandler.DeleteRows(E);continue;};if (E.cells[D]) E.removeChild(E.cells[D]);}};FCKTableHandler.InsertCell=function(A,B){var C=null;var D=this.GetSelectedCells();if (D&&D.length) C=D[B?0:(D.length-1)];if (!C) return null;var E=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(E);if (!B&&C.cellIndex==C.parentNode.cells.length-1) C.parentNode.appendChild(E);else C.parentNode.insertBefore(E,B?C:C.nextSibling);return E;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler._MarkCells=function(A,B){for (var i=0;i<A.length;i++) A[i][B]=true;};FCKTableHandler._UnmarkCells=function(A,B){for (var i=0;i<A.length;i++){if (FCKBrowserInfo.IsIE) A[i].removeAttribute(B);else delete A[i][B];}};FCKTableHandler._ReplaceCellsByMarker=function(A,B,C){for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){if (A[i][j][B]) A[i][j]=C;}}};FCKTableHandler._GetMarkerGeometry=function(A,B,C,D){var E=0;var F=0;var G=0;var H=0;for (var i=C;A[B][i]&&A[B][i][D];i++) E++;for (var i=C-1;A[B][i]&&A[B][i][D];i--){E++;G++;};for (var i=B;A[i]&&A[i][C]&&A[i][C][D];i++) F++;for (var i=B-1;A[i]&&A[i][C]&&A[i][C][D];i--){F++;H++;};return { 'width':E,'height':F,'x':G,'y':H };};FCKTableHandler.CheckIsSelectionRectangular=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<1) return false;this._MarkCells(A,'_CellSelected');var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=A[0].parentNode.rowIndex;var D=this._GetCellIndexSpan(B,C,A[0]);var E=this._GetMarkerGeometry(B,C,D,'_CellSelected');var F=D-E.x;var G=C-E.y;if (E.width>=E.height){for (D=F;D<F+E.width;D++){C=G+(D-F) % E.height;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}}else{for (C=G;C<G+E.height;C++){D=F+(C-G) % E.width;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}};this._UnmarkCells(A,'_CellSelected');return true;};FCKTableHandler.MergeCells=function(){var A=this.GetSelectedCells();if (A.length<2) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);this._MarkCells(A,'_SelectedCells');var F=this._GetMarkerGeometry(C,D,E,'_SelectedCells');var G=E-F.x;var H=D-F.y;var I=B.ownerDocument.createDocumentFragment();for (var i=0;i<F.height;i++){var J=0;for (var j=0;j<F.width;j++){var K=C[H+i][G+j];while (K.childNodes.length>0){var L=K.removeChild(K.firstChild);if (L.nodeType!=1||(L.getAttribute('type',2)!='_moz'&&L.getAttribute('_moz_dirty')!=null)){I.appendChild(L);J++;}}};if (J>0) I.appendChild(B.ownerDocument.createElement('br'));};this._ReplaceCellsByMarker(C,'_SelectedCells',B);this._UnmarkCells(A,'_SelectedCells');this._InstallTableMap(C,B.parentNode.parentNode);B.appendChild(I);if (FCKBrowserInfo.IsGeckoLike&&(!B.firstChild)) FCKTools.AppendBogusBr(B);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeRight=function(){var A=this.GetMergeRightTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCK.EditorDocument.createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));D.parentNode.removeChild(D);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeDown=function(){var A=this.GetMergeDownTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=B.ownerDocument.createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));if (E.firstChild) E.insertBefore(D.ownerDocument.createElement('br'),E.firstChild);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.HorizontalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;if (F>1){var G=Math.ceil(F/2);var H=B.ownerDocument.createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H);var I=E+G;var J=E+F;var K=isNaN(B.rowSpan)?1:B.rowSpan;for (var r=D;r<D+K;r++){for (var i=I;i<J;i++) C[r][i]=H;}}else{var L=[];for (var i=0;i<C.length;i++){var M=C[i].slice(0,E);if (C[i].length<=E){L.push(M);continue;};if (C[i][E]==B){M.push(B);M.push(B.ownerDocument.createElement('td'));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(M[M.length-1]);}else{M.push(C[i][E]);M.push(C[i][E]);};for (var j=E+1;j<C[i].length;j++) M.push(C[i][j]);L.push(M);};C=L;};this._InstallTableMap(C,B.parentNode.parentNode);};FCKTableHandler.VerticalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=FCKTableHandler._GetCellIndexSpan(C,B.parentNode.rowIndex,B);var E=B.rowSpan;var F=B.parentNode.rowIndex;if (isNaN(E)) E=1;if (E>1){B.rowSpan=Math.ceil(E/2);var G=F+Math.ceil(E/2);var H=null;for (var i=D+1;i<C[G].length;i++){if (C[G][i].parentNode.rowIndex==G){H=C[G][i];break;}};var I=FCK.EditorDocument.createElement('td');I.rowSpan=Math.floor(E/2);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);B.parentNode.parentNode.rows[G].insertBefore(I,H);}else{var G=F+1;var K=FCK.EditorDocument.createElement('tr');B.parentNode.parentNode.insertBefore(K,B.parentNode.parentNode.rows[G]);for (var i=0;i<C[F].length;){var L=C[F][i].colSpan;if (isNaN(L)||L<1) L=1;if (i==D){i+=L;continue;};var M=C[F][i].rowSpan;if (isNaN(M)) M=1;C[F][i].rowSpan=M+1;i+=L;};var I=FCK.EditorDocument.createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);K.appendChild(I);}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length<B+1) return null;var D=A[B];for (var c=0;c<D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCellLocation=function(A,B){for (var i=0;i<A.length;i++){for (var c=0;c<A[i].length;c++){if (A[i][c]==B) return [i,c];}};return null;};FCKTableHandler._GetColumnCells=function(A,B){var C=[];for (var r=0;r<A.length;r++){var D=A[r][B];if (D&&(C.length==0||C[C.length-1]!=D)) C[C.length]=D;};return C;};FCKTableHandler._CreateTableMap=function(A){var B=A.rows;var r=-1;var C=[];for (var i=0;i<B.length;i++){r++;if (!C[r]) C[r]=[];var c=-1;for (var j=0;j<B[i].cells.length;j++){var D=B[i].cells[j];c++;while (C[r][c]) c++;var E=isNaN(D.colSpan)?1:D.colSpan;var F=isNaN(D.rowSpan)?1:D.rowSpan;for (var G=0;G<F;G++){if (!C[r+G]) C[r+G]=[];for (var H=0;H<E;H++){C[r+G][c+H]=B[i].cells[j];}};c+=E-1;}};return C;};FCKTableHandler._InstallTableMap=function(A,B){while (B.rows.length>0){var C=B.rows[0];C.parentNode.removeChild(C);};for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (D.parentNode) D.parentNode.removeChild(D);D.colSpan=D.rowSpan=1;}};var E=0;for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (!D) continue;if (j>E) E=j;if (D._colScanned===true) continue;if (A[i][j-1]==D) D.colSpan++;if (A[i][j+1]!=D) D._colScanned=true;}};for (var i=0;i<=E;i++){for (var j=0;j<A.length;j++){if (!A[j]) continue;var D=A[j][i];if (!D||D._rowScanned===true) continue;if (A[j-1]&&A[j-1][i]==D) D.rowSpan++;if (!A[j+1]||A[j+1][i]!=D) D._rowScanned=true;}};for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (FCKBrowserInfo.IsIE){D.removeAttribute('_colScanned');D.removeAttribute('_rowScanned');}else{delete D._colScanned;delete D._rowScanned;}}};for (var i=0;i<A.length;i++){var I=B.ownerDocument.createElement('tr');for (var j=0;j<A[i].length;){var D=A[i][j];if (A[i-1]&&A[i-1][j]==D){j+=D.colSpan;continue;};I.appendChild(D);j+=D.colSpan;if (D.colSpan==1) D.removeAttribute('colspan');if (D.rowSpan==1) D.removeAttribute('rowspan');};B.appendChild(I);}};FCKTableHandler._MoveCaretToCell=function (A,B){var C=new FCKDomRange(FCK.EditorWindow);C.MoveToNodeContents(A);C.Collapse(B);C.Select();};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){B[i].innerHTML='';if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B[i]);}};FCKTableHandler.GetMergeRightTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=E+(isNaN(B.colSpan)?1:B.colSpan);var G=C[D][F];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,D,F,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.height!=I.height||H.y!=I.y) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};FCKTableHandler.GetMergeDownTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=D+(isNaN(B.rowSpan)?1:B.rowSpan);if (!C[F]) return null;var G=C[F][E];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,F,E,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.width!=I.width||H.x!=I.x) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };}; +FCKTableHandler.GetSelectedCells=function(){var A=[];var B=FCK.EditorWindow.getSelection();if (B.rangeCount==1&&B.anchorNode.nodeType==3){var C=FCKTools.GetElementAscensor(B.anchorNode,'TD,TH');if (C) A[0]=C;return A;};for (var i=0;i<B.rangeCount;i++){var D=B.getRangeAt(i);var E;if (D.startContainer.tagName.Equals('TD','TH')) E=D.startContainer;else E=D.startContainer.childNodes[D.startOffset];if (E.tagName.Equals('TD','TH')) A[A.length]=E;};return A;}; +var FCKXml=function(){this.Error=false;};FCKXml.GetAttribute=function(A,B,C){var D=A.attributes.getNamedItem(B);return D?D.value:C;};FCKXml.TransformToObject=function(A){if (!A) return null;var B={};var C=A.attributes;for (var i=0;i<C.length;i++){var D=C[i];B[D.name]=D.value;};var E=A.childNodes;for (i=0;i<E.length;i++){var F=E[i];if (F.nodeType==1){var G='$'+F.nodeName;var H=B[G];if (!H) H=B[G]=[];H.push(this.TransformToObject(F));}};return B;} +FCKXml.prototype={LoadUrl:function(A){this.Error=false;var B=this;var C=FCKTools.CreateXmlObject('XmlHttp');C.open("GET",A,false);C.send(null);if (C.status==200||C.status==304) this.DOMDocument=C.responseXML;else if (C.status==0&&C.readyState==4) this.DOMDocument=C.responseXML;else this.DOMDocument=null;if (this.DOMDocument==null||this.DOMDocument.firstChild==null){this.Error=true;if (window.confirm('Error loading "'+A+'"\r\nDo you want to see more info?')) alert('URL requested: "'+A+'"\r\nServer response:\r\nStatus: '+C.status+'\r\nResponse text:\r\n'+C.responseText);}},SelectNodes:function(A,B){if (this.Error) return [];var C=[];var D=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);if (D){var E=D.iterateNext();while(E){C[C.length]=E;E=D.iterateNext();}};return C;},SelectSingleNode:function(A,B){if (this.Error) return null;var C=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),9,null);if (C&&C.singleNodeValue) return C.singleNodeValue;else return null;}}; var FCKNamedCommand=function(A){this.Name=A;};FCKNamedCommand.prototype.Execute=function(){FCK.ExecuteNamedCommand(this.Name);};FCKNamedCommand.prototype.GetState=function(){return FCK.GetNamedCommandState(this.Name);}; -var FCKDialogCommand=function(A,B,C,D,E,F,G){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.GetStateFunction=F;this.GetStateParam=G;this.Resizable=false;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height,null,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return 0;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFontNameCommand=function(){this.Name='FontName';};FCKFontNameCommand.prototype.Execute=function(A){if (A==null||A==""){}else FCK.ExecuteNamedCommand('FontName',A);};FCKFontNameCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontName');};var FCKFontSizeCommand=function(){this.Name='FontSize';};FCKFontSizeCommand.prototype.Execute=function(A){if (typeof(A)=='string') A=parseInt(A,10);if (A==null||A==''){FCK.ExecuteNamedCommand('FontSize',3);}else FCK.ExecuteNamedCommand('FontSize',A);};FCKFontSizeCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontSize');};var FCKFormatBlockCommand=function(){this.Name='FormatBlock';};FCKFormatBlockCommand.prototype.Execute=function(A){if (A==null||A=='') FCK.ExecuteNamedCommand('FormatBlock','<P>');else if (A=='div'&&FCKBrowserInfo.IsGecko) FCK.ExecuteNamedCommand('FormatBlock','div');else FCK.ExecuteNamedCommand('FormatBlock','<'+A+'>');};FCKFormatBlockCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FormatBlock');};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return 0;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.GetParentForm();if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};A.submit();};FCKSaveCommand.prototype.GetState=function(){return 0;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};FCKNewPageCommand.prototype.GetState=function(){return 0;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==0?0:1);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Undo();else FCK.ExecuteNamedCommand('Undo');};FCKUndoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckUndoState()?0:-1);else return FCK.GetNamedCommandState('Undo');};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Redo();else FCK.ExecuteNamedCommand('Redo');};FCKRedoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckRedoState()?0:-1);else return FCK.GetNamedCommandState('Redo');};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none">&nbsp;</span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);A=FCK.InsertElement(A);};FCKPageBreakCommand.prototype.GetState=function(){return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsGecko){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCK.Selection.SelectNode(A);};FCK.ExecuteNamedCommand(this.Name);if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);};FCKUnlinkCommand.prototype.GetState=function(){var A=FCK.GetNamedCommandState(this.Name);if (A==0&&FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&&B.name.length>0&&B.href.length==0);if (C) A=-1;};return A;};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype=new FCKNamedCommand('SelectAll');FCKSelectAllCommand.prototype.GetState=function(){return 0;} +var FCKStyleCommand=function(){};FCKStyleCommand.prototype={Name:'Style',Execute:function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) FCK.Styles.RemoveStyle(B.Style);else FCK.Styles.ApplyStyle(B.Style);FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (!FCK.EditorDocument) return -1;if (FCKSelection.GetType()=='Control'){var A=FCKSelection.GetSelectedElement();if (!A||!FCKStyles.CheckHasObjectStyle(A.nodeName.toLowerCase())) return -1;};return 0;}}; +var FCKDialogCommand=function(A,B,C,D,E,F,G){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.GetStateFunction=F;this.GetStateParam=G;this.Resizable=false;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height,null,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return 0;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFormatBlockCommand=function(){};FCKFormatBlockCommand.prototype={Name:'FormatBlock',Execute:FCKStyleCommand.prototype.Execute,GetState:function(){return FCK.EditorDocument?0:-1;}};var FCKFontNameCommand=function(){};FCKFontNameCommand.prototype={Name:'FontName',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKFontSizeCommand=function(){};FCKFontSizeCommand.prototype={Name:'FontSize',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return 0;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.GetParentForm();if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};if (typeof(A.submit)=='function') A.submit();else A.submit.click();};FCKSaveCommand.prototype.GetState=function(){return 0;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetData('');FCKUndo.Typing=true;FCK.Focus();};FCKNewPageCommand.prototype.GetState=function(){return 0;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==0?0:1);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){FCKUndo.Undo();};FCKUndoCommand.prototype.GetState=function(){return (FCKUndo.CheckUndoState()?0:-1);};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){FCKUndo.Redo();};FCKRedoCommand.prototype.GetState=function(){return (FCKUndo.CheckRedoState()?0:-1);};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none">&nbsp;</span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.SplitBlock();if (C.NextBlock) C.NextBlock.parentNode.insertBefore(A,C.NextBlock);else C.PreviousBlock.parentNode.insertBefore(A,C.PreviousBlock.nextSibling);FCK.Events.FireEvent('OnSelectionChange');};FCKPageBreakCommand.prototype.GetState=function(){return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (FCKBrowserInfo.IsGeckoLike){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCKTools.RemoveOuterTags(A);return;};FCK.ExecuteNamedCommand(this.Name);};FCKUnlinkCommand.prototype.GetState=function(){var A=FCK.GetNamedCommandState(this.Name);if (A==0&&FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&&B.name.length>0&&B.href.length==0);if (C) A=-1;};return A;};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype.Execute=function(){if (FCK.EditMode==0){FCK.ExecuteNamedCommand('SelectAll');}else{var A=FCK.EditingArea.Textarea;if (FCKBrowserInfo.IsIE){A.createTextRange().execCommand('SelectAll');}else{A.selectionStart=0;A.selectionEnd=A.value.length;};A.focus();}};FCKSelectAllCommand.prototype.GetState=function(){return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){return FCK.GetNamedCommandState('Paste');}};var FCKRuleCommand=function(){this.Name='Rule';};FCKRuleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();FCK.InsertElement('hr');},GetState:function(){return FCK.GetNamedCommandState('InsertHorizontalRule');}};var FCKCopyCommand=function(){this.Name='Copy';};FCKCopyCommand.prototype={Execute:function(){FCK.ExecuteNamedCommand(this.Name);},GetState:function(){return FCK.GetNamedCommandState('Cut');}};var FCKAnchorDeleteCommand=function(){this.Name='AnchorDelete';};FCKAnchorDeleteCommand.prototype={Execute:function(){if (FCK.Selection.GetType()=='Control'){FCK.Selection.Delete();}else{var A=FCK.Selection.GetSelectedElement();if (A){if (A.tagName=='IMG'&&A.getAttribute('_fckanchor')) oAnchor=FCK.GetRealElement(A);else A=null;};if (!A){oAnchor=FCK.Selection.MoveToAncestorNode('A');if (oAnchor) FCK.Selection.SelectNode(oAnchor);};if (oAnchor.href.length!=0){oAnchor.removeAttribute('name');if (FCKBrowserInfo.IsIE) oAnchor.className=oAnchor.className.replace(FCKRegexLib.FCK_Class,'');return;};if (A){A.parentNode.removeChild(A);return;};if (oAnchor.innerHTML.length==0){oAnchor.parentNode.removeChild(oAnchor);return;};FCKTools.RemoveOuterTags(oAnchor);};if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);},GetState:function(){return FCK.GetNamedCommandState('Unlink');}}; +var FCKShowBlockCommand=function(A,B){this.Name=A;if (B!=undefined) this._SavedState=B;else this._SavedState=null;};FCKShowBlockCommand.prototype.Execute=function(){var A=this.GetState();if (A==-1) return;var B=FCK.EditorDocument.body;if (A==1) B.className=B.className.replace(/(^| )FCK__ShowBlocks/g,'');else B.className+=' FCK__ShowBlocks';FCK.Events.FireEvent('OnSelectionChange');};FCKShowBlockCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;if (!FCK.EditorDocument) return 0;if (/FCK__ShowBlocks(?:\s|$)/.test(FCK.EditorDocument.body.className)) return 1;return 0;};FCKShowBlockCommand.prototype.SaveState=function(){this._SavedState=this.GetState();};FCKShowBlockCommand.prototype.RestoreState=function(){if (this._SavedState!=null&&this.GetState()!=this._SavedState) this.Execute();}; var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=(FCKConfig.SpellChecker=='SpellerPages');};FCKSpellCheckCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);};FCKSpellCheckCommand.prototype.GetState=function(){return this.IsEnabled?0:-1;} -var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;var B;if (FCKBrowserInfo.IsIE) B=window;else if (FCK.ToolbarSet._IFrame) B=FCKTools.GetElementWindow(FCK.ToolbarSet._IFrame);else B=window.parent;this._Panel=new FCKPanel(B,true);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){FCK._ActiveColorPanelType=this.Type;this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){if (FCK._ActiveColorPanelType=='ForeColor') FCK.ExecuteNamedCommand('ForeColor',A);else if (FCKBrowserInfo.IsGeckoLike){if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,false);FCK.ExecuteNamedCommand('hilitecolor',A);if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,true);}else FCK.ExecuteNamedCommand('BackColor',A);delete FCK._ActiveColorPanelType;};FCKTextColorCommand.prototype.GetState=function(){return 0;};function FCKTextColorCommand_OnMouseOver() { this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut() { this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(){this.className='ColorDeselected';this.Command.SetColor('#'+this.Color);this.Command._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(){this.className='ColorDeselected';this.Command.SetColor('');this.Command._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(){this.className='ColorDeselected';this.Command._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',400,330,this.Command.SetColor);};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';C.onmouseover=FCKTextColorCommand_OnMouseOver;C.onmouseout=FCKTextColorCommand_OnMouseOut;return C;};var D=B.appendChild(A.createElement("TABLE"));D.className='ForceBaseFont';D.style.tableLayout='fixed';D.cellPadding=0;D.cellSpacing=0;D.border=0;D.width=150;var E=D.insertRow(-1).insertCell(-1);E.colSpan=8;var C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table cellspacing="0" cellpadding="0" width="100%" border="0">\n <tr>\n <td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\n <td nowrap width="100%" align="center">'+FCKLang.ColorAutomatic+'</td>\n </tr>\n </table>';C.Command=this;C.onclick=FCKTextColorCommand_AutoOnClick;var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8&&H<G.length;i++,H++){C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.Color=G[H];C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #'+G[H]+'"></div></div>';C.Command=this;C.onclick=FCKTextColorCommand_OnClick;}};E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">'+FCKLang.ColorMoreColors+'</td></tr></table>';C.Command=this;C.onclick=FCKTextColorCommand_MoreOnClick;} +var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;var B;if (FCKBrowserInfo.IsIE) B=window;else if (FCK.ToolbarSet._IFrame) B=FCKTools.GetElementWindow(FCK.ToolbarSet._IFrame);else B=window.parent;this._Panel=new FCKPanel(B);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){FCKUndo.SaveUndoStep();var B=FCKStyles.GetStyle('_FCK_'+(this.Type=='ForeColor'?'Color':'BackColor'));if (!A||A.length==0) FCK.Styles.RemoveStyle(B);else{B.SetVariable('Color',A);FCKStyles.ApplyStyle(B);};FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');};FCKTextColorCommand.prototype.GetState=function(){return 0;};function FCKTextColorCommand_OnMouseOver(){this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut(){this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(A,B,C){this.className='ColorDeselected';B.SetColor(C);B._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(A,B){this.className='ColorDeselected';B.SetColor('');B._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(A,B){this.className='ColorDeselected';B._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',400,330,FCKTools.Hitch(B,'SetColor'));};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';FCKTools.AddEventListenerEx(C,'mouseover',FCKTextColorCommand_OnMouseOver);FCKTools.AddEventListenerEx(C,'mouseout',FCKTextColorCommand_OnMouseOut);return C;};var D=B.appendChild(A.createElement("TABLE"));D.className='ForceBaseFont';D.style.tableLayout='fixed';D.cellPadding=0;D.cellSpacing=0;D.border=0;D.width=150;var E=D.insertRow(-1).insertCell(-1);E.colSpan=8;var C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table cellspacing="0" cellpadding="0" width="100%" border="0">\n <tr>\n <td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\n <td nowrap width="100%" align="center">'+FCKLang.ColorAutomatic+'</td>\n </tr>\n </table>';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_AutoOnClick,this);if (!FCKBrowserInfo.IsIE) C.style.width='96%';var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8;i++,H++){if (H<G.length){var J=G[H].split('/');var K='#'+J[0];var L=J[1]||K;};C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: '+K+'"></div></div>';if (H>=G.length) C.style.visibility='hidden';else FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_OnClick,[this,L]);}};if (FCKConfig.EnableMoreFontColors){E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">'+FCKLang.ColorMoreColors+'</td></tr></table>';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_MoreOnClick,this);};if (!FCKBrowserInfo.IsIE) C.style.width='96%';}; var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){return FCK.GetNamedCommandState('Paste');}; var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCKConfig.ForcePasteAsPlainText) return -1;else return FCK.GetNamedCommandState('Paste');}; -var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();switch (this.Name){case 'TableInsertRow':FCKTableHandler.InsertRow();break;case 'TableDeleteRows':FCKTableHandler.DeleteRows();break;case 'TableInsertColumn':FCKTableHandler.InsertColumn();break;case 'TableDeleteColumns':FCKTableHandler.DeleteColumns();break;case 'TableInsertCell':FCKTableHandler.InsertCell();break;case 'TableDeleteCells':FCKTableHandler.DeleteCells();break;case 'TableMergeCells':FCKTableHandler.MergeCells();break;case 'TableSplitCell':FCKTableHandler.SplitCell();break;case 'TableDelete':FCKTableHandler.DeleteTable();break;default:alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){return 0;} -var FCKStyleCommand=function(){this.Name='Style';this.StylesLoader=new FCKStylesLoader();this.StylesLoader.Load(FCKConfig.StylesXmlPath);this.Styles=this.StylesLoader.Styles;};FCKStyleCommand.prototype.Execute=function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) B.Style.RemoveFromSelection();else B.Style.ApplyToSelection();FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent("OnSelectionChange");};FCKStyleCommand.prototype.GetState=function(){if (!FCK.EditorDocument) return -1;var A=FCK.EditorDocument.selection;if (FCKSelection.GetType()=='Control'){var e=FCKSelection.GetSelectedElement();if (e) return this.StylesLoader.StyleGroups[e.tagName]?0:-1;};return 0;};FCKStyleCommand.prototype.GetActiveStyles=function(){var A=[];if (FCKSelection.GetType()=='Control') this._CheckStyle(FCKSelection.GetSelectedElement(),A,false);else this._CheckStyle(FCKSelection.GetParentElement(),A,true);return A;};FCKStyleCommand.prototype._CheckStyle=function(A,B,C){if (!A) return;if (A.nodeType==1){var D=this.StylesLoader.StyleGroups[A.tagName];if (D){for (var i=0;i<D.length;i++){if (D[i].IsEqual(A)) B[B.length]=D[i];}}};if (C) this._CheckStyle(A.parentNode,B,C);} -var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1) G._fckSavedStyles=FCKTools.SaveStyles(G);};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var H=FCKTools.GetViewPaneSize(C);B.position="absolute";B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=H.Width+"px";B.height=H.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent("onresize",FCKFitWindow_Resize);else C.removeEventListener("resize",FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();FCK.EditingArea.MakeEditable();FCK.Focus();};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';}; -var FCKCommands=FCK.Commands={};FCKCommands.LoadedCommands={};FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,390,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,170);break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,170);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,170);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',400,330);break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindTitle,'dialog/fck_find.html',340,170);break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgReplaceTitle,'dialog/fck_replace.html',340,200);break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,400);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,320);break;case 'Smiley':B=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight);break;case 'Table':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html',450,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',400,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,250);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'TableInsertRow':B=new FCKTableCommand('TableInsertRow');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumn':B=new FCKTableCommand('TableInsertColumn');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCell':B=new FCKTableCommand('TableInsertCell');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableSplitCell':B=new FCKTableCommand('TableSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,230);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,230);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,230);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,230);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,230);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,230);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,230);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,380);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,400);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();break;case 'SelectAll':B=new FCKSelectAllCommand();break;case 'Undefined':B=new FCKUndefinedCommand();break;default:if (FCKRegexLib.NamedCommands.test(A)) B=new FCKNamedCommand(A);else{alert(FCKLang.UnknownCommand.replace(/%1/g,A));return null;}};FCKCommands.LoadedCommands[A]=B;return B;};FCKCommands.GetFullPageState=function(){return FCKConfig.FullPage?0:-1;}; -var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();B=this.Document=this._Popup.document;FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var C=this._IFrame=this._Window.document.createElement('iframe');C.src='javascript:void(0)';C.allowTransparency=true;C.frameBorder='0';C.scrolling='no';C.style.position='absolute';C.style.zIndex=FCKConfig.FloatingPanelsZIndex;C.width=C.height=0;if (this._Window==window.parent&&window.frameElement) window.frameElement.parentNode.insertBefore(C,window.frameElement);else this._Window.document.body.appendChild(C);var D=C.contentWindow;B=this.Document=D.document;B.open();B.write('<html><head></head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();FCKTools.AddEventListenerEx(D,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(D,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;B.oncontextmenu=FCKTools.CancelEvent;this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;if (this._Popup){this._Popup.show(x,y,0,0,A);this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';D=this.MainNode.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,this.MainNode.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Lock();if (this.ParentPanel) this.ParentPanel.Lock();this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';D=this.MainNode.offsetWidth;if (!B) this._IFrame.width=1;if (!C) this._IFrame.height=1;D=this.MainNode.offsetWidth;var E=FCKTools.GetElementPosition(A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A,this._Window);if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=E.X;y+=E.Y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var F=FCKTools.GetViewPaneSize(this._Window);var G=FCKTools.GetScrollPosition(this._Window);var H=F.Height+G.Y;var I=F.Width+G.X;if ((x+D)>I) x-=x+D-I;if ((y+this.MainNode.offsetHeight)>H) y-=y+this.MainNode.offsetHeight-H;};if (x<0) x=0;this._IFrame.style.left=x+'px';this._IFrame.style.top=y+'px';var J=D;var K=this.MainNode.offsetHeight;this._IFrame.width=J;this._IFrame.height=K;this._IFrame.contentWindow.focus();};this._IsOpened=true;FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened) return;if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A,true);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&&!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;} -var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B,eIconImage;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path;eIconImage.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url('+this.Path+')';}}else{B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path?this.Path:FCK_SPACER_PATH;};B.className='TB_Button_Image';return B;} -var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||0;this.State=F||0;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=this.MainElement;if (B){FCKToolbarButtonUI_Cleanup.call(this);if (B.parentNode) B.parentNode.removeChild(B);B=this.MainElement=null;};var C=FCKTools.GetElementDocument(A);B=this.MainElement=C.createElement('DIV');B._FCKButton=this;B.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) B.onmousedown=FCKTools.CancelEvent;this.ChangeState(this.State,true);if (this.Style==0&&!this.ShowArrow){B.appendChild(this.Icon.CreateIconElement(C));}else{var D=B.appendChild(C.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==0||this.Style==2) F.appendChild(this.Icon.CreateIconElement(C));else F.appendChild(this._CreatePaddingElement(C));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(C.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(C));};F=E.insertCell(-1);var G=F.appendChild(C.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(C));};A.appendChild(B);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';e.onmouseover=FCKToolbarButton_OnMouseOverOff;e.onmouseout=FCKToolbarButton_OnMouseOutOff;e.onclick=FCKToolbarButton_OnClick;break;case 1:e.className='TB_Button_On';e.onmouseover=FCKToolbarButton_OnMouseOverOn;e.onmouseout=FCKToolbarButton_OnMouseOutOn;e.onclick=FCKToolbarButton_OnClick;break;case -1:e.className='TB_Button_Disabled';e.onmouseover=null;e.onmouseout=null;e.onclick=null;break;};this.State=A;};function FCKToolbarButtonUI_Cleanup(){if (this.MainElement){this.MainElement._FCKButton=null;this.MainElement=null;}};function FCKToolbarButton_OnMouseOverOn(){this.className='TB_Button_On_Over';};function FCKToolbarButton_OnMouseOutOn(){this.className='TB_Button_On';};function FCKToolbarButton_OnMouseOverOff(){this.className='TB_Button_Off_Over';};function FCKToolbarButton_OnMouseOutOff(){this.className='TB_Button_Off';};function FCKToolbarButton_OnClick(e){if (this._FCKButton.OnClick) this._FCKButton.OnClick(this._FCKButton);}; -var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (A==this._UIButton.State) return;this._UIButton.ChangeState(A);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);} -var FCKSpecialCombo=function(A,B,C,D,E){this.FieldWidth=B||100;this.PanelWidth=C||150;this.PanelMaxHeight=D||150;this.Label='&nbsp;';this.Caption=A;this.Tooltip=A;this.Style=2;this.Enabled=true;this.Items={};this._Panel=new FCKPanel(E||window,true);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._PanelBox=this._Panel.MainNode.appendChild(this._Panel.Document.createElement('DIV'));this._PanelBox.className='SC_Panel';this._PanelBox.style.width=this.PanelWidth+'px';this._PanelBox.innerHTML='<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>';this._ItemsHolderEl=this._PanelBox.getElementsByTagName('TD')[0];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKSpecialCombo_Cleanup);};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(){this.className=this.originalClass;this.FCKSpecialCombo._Panel.Hide();this.FCKSpecialCombo.SetLabel(this.FCKItemLabel);if (typeof(this.FCKSpecialCombo.OnSelect)=='function') this.FCKSpecialCombo.OnSelect(this.FCKItemID,this);};FCKSpecialCombo.prototype.AddItem=function(A,B,C,D){var E=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));E.className=E.originalClass='SC_Item';E.innerHTML=B;E.FCKItemID=A;E.FCKItemLabel=C||A;E.FCKSpecialCombo=this;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;E.onmouseover=FCKSpecialCombo_ItemOnMouseOver;E.onmouseout=FCKSpecialCombo_ItemOnMouseOut;E.onclick=FCKSpecialCombo_ItemOnClick;this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];if (B){B.className=B.originalClass='SC_ItemSelected';B.Selected=true;}};FCKSpecialCombo.prototype.SelectItemByLabel=function(A,B){for (var C in this.Items){var D=this.Items[C];if (D.FCKItemLabel==A){D.className=D.originalClass='SC_ItemSelected';D.Selected=true;if (B) this.SetLabel(A);}}};FCKSpecialCombo.prototype.DeselectAll=function(A){for (var i in this.Items){this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};if (A) this.SetLabel('');};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){this.Label=A.length==0?'&nbsp;':A;if (this._LabelEl){this._LabelEl.innerHTML=this.Label;FCKTools.DisableSelection(this._LabelEl);}};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this._OuterTable=A.appendChild(B.createElement('TABLE'));C.cellPadding=0;C.cellSpacing=0;C.insertRow(-1);var D;var E;switch (this.Style){case 0:D='TB_ButtonType_Icon';E=false;break;case 1:D='TB_ButtonType_Text';E=false;break;case 2:E=true;break;};if (this.Caption&&this.Caption.length>0&&E){var F=C.rows[0].insertCell(-1);F.innerHTML=this.Caption;F.className='SC_FieldCaption';};var G=FCKTools.AppendElement(C.rows[0].insertCell(-1),'div');if (E){G.className='SC_Field';G.style.width=this.FieldWidth+'px';G.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldLabel"><label>&nbsp;</label></td><td class="SC_FieldButton">&nbsp;</td></tr></tbody></table>';this._LabelEl=G.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{G.className='TB_Button_Off';G.innerHTML='<table title="'+this.Tooltip+'" class="'+D+'" cellspacing="0" cellpadding="0" border="0"><tr><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_Text">'+this.Caption+'</td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_ButtonArrow"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td></tr></table>';};G.SpecialCombo=this;G.onmouseover=FCKSpecialCombo_OnMouseOver;G.onmouseout=FCKSpecialCombo_OnMouseOut;G.onclick=FCKSpecialCombo_OnClick;FCKTools.DisableSelection(this._Panel.Document.body);};function FCKSpecialCombo_Cleanup(){this._LabelEl=null;this._OuterTable=null;this._ItemsHolderEl=null;this._PanelBox=null;if (this.Items){for (var A in this.Items) this.Items[A]=null;}};function FCKSpecialCombo_OnMouseOver(){if (this.SpecialCombo.Enabled){switch (this.SpecialCombo.Style){case 0:this.className='TB_Button_On_Over';break;case 1:this.className='TB_Button_On_Over';break;case 2:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(){switch (this.SpecialCombo.Style){case 0:this.className='TB_Button_Off';break;case 1:this.className='TB_Button_Off';break;case 2:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e){var A=this.SpecialCombo;if (A.Enabled){var B=A._Panel;var C=A._PanelBox;var D=A._ItemsHolderEl;var E=A.PanelMaxHeight;if (A.OnBeforeClick) A.OnBeforeClick(A);if (FCKBrowserInfo.IsIE) B.Preload(0,this.offsetHeight,this);if (D.offsetHeight>E) C.style.height=E+'px';else C.style.height='';B.Show(0,this.offsetHeight,this);}}; -var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;this._LastValue=null;};function FCKToolbarSpecialCombo_OnSelect(A,B){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(A,B);};FCKToolbarSpecialCombo.prototype.Create=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel(),this.FieldWidth,this.PanelWidth,this.PanelMaxHeight,FCKBrowserInfo.IsIE?window:FCKTools.GetElementWindow(A).parent);this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A);this._Combo.CommandName=this.CommandName;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(A,B){A.DeselectAll();A.SelectItem(B);A.SetLabelById(B);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=-1){A=1;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!=B){this._LastValue=B;FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=-1;if (A==this.State) return;if (A==-1){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=-1);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=-1;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);}; -var FCKToolbarFontsCombo=function(A,B){this.CommandName='FontName';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarFontsCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.CreateItems=function(A){var B=FCKConfig.FontNames.split(';');for (var i=0;i<B.length;i++) this._Combo.AddItem(B[i],'<font face="'+B[i]+'" style="font-size: 12px">'+B[i]+'</font>');} -var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.CreateItems=function(A){A.FieldWidth=70;var B=FCKConfig.FontSizes.split(';');for (var i=0;i<B.length;i++){var C=B[i].split('/');this._Combo.AddItem(C[0],'<font size="'+C[0]+'">'+C[1]+'</font>',C[1]);}} -var FCKToolbarFontFormatCombo=function(A,B){this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.NormalLabel='Normal';this.PanelWidth=190;};FCKToolbarFontFormatCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) B.body.id=FCKConfig.BodyId;if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) B.body.className+=' '+FCKConfig.BodyClass;var C=FCKLang['FontFormats'].split(';');var D={p:C[0],pre:C[1],address:C[2],h1:C[3],h2:C[4],h3:C[5],h4:C[6],h5:C[7],h6:C[8],div:C[9]};var E=FCKConfig.FontFormats.split(';');for (var i=0;i<E.length;i++){var F=E[i];var G=D[F];if (F=='p') this.NormalLabel=G;this._Combo.AddItem(F,'<div class="BaseFont"><'+F+'>'+G+'</'+F+'></div>',G);}};if (FCKBrowserInfo.IsIE){FCKToolbarFontFormatCombo.prototype.RefreshActiveItems=function(A,B){if (B==this.NormalLabel){if (A.Label!='&nbsp;') A.DeselectAll(true);}else{if (this._LastValue==B) return;A.SelectItemByLabel(B,true);};this._LastValue=B;}} -var FCKToolbarStyleCombo=function(A,B){this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);B.body.className+=' ForceBaseFont';if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) B.body.id=FCKConfig.BodyId;if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) B.body.className+=' '+FCKConfig.BodyClass;if (!(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsGecko10)) A.OnBeforeClick=this.RefreshVisibleItems;var C=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Styles;for (var s in C){var D=C[s];var E;if (D.IsObjectElement) E=A.AddItem(s,s);else E=A.AddItem(s,D.GetOpenerTag()+s+D.GetCloserTag());E.Style=D;}};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){A.DeselectAll();var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetActiveStyles();if (B.length>0){for (var i=0;i<B.length;i++) A.SelectItem(B[i].Name);A.SetLabelById(B[0].Name);}else A.SetLabel('');};FCKToolbarStyleCombo.prototype.RefreshVisibleItems=function(A){if (FCKSelection.GetType()=='Control') var B=FCKSelection.GetSelectedElement().tagName;for (var i in A.Items){var C=A.Items[i];if ((B&&C.Style.Element==B)||(!B&&!C.Style.IsObjectElement)) C.style.display='';else C.style.display='none';}} -var FCKToolbarPanelButton=function(A,B,C,D,E){this.CommandName=A;var F;if (E==null) F=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(E)=='number') F=[FCKConfig.SkinPath+'fck_strip.gif',16,E];var G=this._UIButton=new FCKToolbarButtonUI(A,B,C,F,D);G._FCKToolbarPanelButton=this;G.ShowArrow=true;G.OnClick=FCKToolbarPanelButton_OnButtonClick;};FCKToolbarPanelButton.prototype.TypeName='FCKToolbarPanelButton';FCKToolbarPanelButton.prototype.Create=function(A){A.className+='Menu';this._UIButton.Create(A);var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName)._Panel;B._FCKToolbarPanelButton=this;var C=B.Document.body.appendChild(B.Document.createElement('div'));C.style.position='absolute';C.style.top='0px';var D=this.LineImg=C.appendChild(B.Document.createElement('IMG'));D.className='TB_ConnectionLine';D.src=FCK_SPACER_PATH;B.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(A){var B=this._FCKToolbarPanelButton;var e=B._UIButton.MainElement;B._UIButton.ChangeState(1);B.LineImg.style.width=(e.offsetWidth-2)+'px';FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(B.CommandName).Execute(0,e.offsetHeight-1,e);};function FCKToolbarPanelButton_OnPanelHide(){var A=this._FCKToolbarPanelButton;A._UIButton.ChangeState(0);};FCKToolbarPanelButton.prototype.RefreshState=FCKToolbarButton.prototype.RefreshState;FCKToolbarPanelButton.prototype.Enable=FCKToolbarButton.prototype.Enable;FCKToolbarPanelButton.prototype.Disable=FCKToolbarButton.prototype.Disable; -var FCKToolbarItems={};FCKToolbarItems.LoadedItems={};FCKToolbarItems.RegisterItem=function(A,B){this.LoadedItems[A]=B;};FCKToolbarItems.GetItem=function(A){var B=FCKToolbarItems.LoadedItems[A];if (B) return B;switch (A){case 'Source':B=new FCKToolbarButton('Source',FCKLang.Source,null,2,true,true,1);break;case 'DocProps':B=new FCKToolbarButton('DocProps',FCKLang.DocProps,null,null,null,null,2);break;case 'Save':B=new FCKToolbarButton('Save',FCKLang.Save,null,null,true,null,3);break;case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;case 'Preview':B=new FCKToolbarButton('Preview',FCKLang.Preview,null,null,true,null,5);break;case 'Templates':B=new FCKToolbarButton('Templates',FCKLang.Templates,null,null,null,null,6);break;case 'About':B=new FCKToolbarButton('About',FCKLang.About,null,null,true,null,47);break;case 'Cut':B=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,false,true,7);break;case 'Copy':B=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,false,true,8);break;case 'Paste':B=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,false,true,9);break;case 'PasteText':B=new FCKToolbarButton('PasteText',FCKLang.PasteText,null,null,false,true,10);break;case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true,11);break;case 'Print':B=new FCKToolbarButton('Print',FCKLang.Print,null,null,false,true,12);break;case 'SpellCheck':B=new FCKToolbarButton('SpellCheck',FCKLang.SpellCheck,null,null,null,null,13);break;case 'Undo':B=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,false,true,14);break;case 'Redo':B=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,false,true,15);break;case 'SelectAll':B=new FCKToolbarButton('SelectAll',FCKLang.SelectAll,null,null,null,null,18);break;case 'RemoveFormat':B=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat,null,null,false,true,19);break;case 'FitWindow':B=new FCKToolbarButton('FitWindow',FCKLang.FitWindow,null,null,true,true,66);break;case 'Bold':B=new FCKToolbarButton('Bold',FCKLang.Bold,null,null,false,true,20);break;case 'Italic':B=new FCKToolbarButton('Italic',FCKLang.Italic,null,null,false,true,21);break;case 'Underline':B=new FCKToolbarButton('Underline',FCKLang.Underline,null,null,false,true,22);break;case 'StrikeThrough':B=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough,null,null,false,true,23);break;case 'Subscript':B=new FCKToolbarButton('Subscript',FCKLang.Subscript,null,null,false,true,24);break;case 'Superscript':B=new FCKToolbarButton('Superscript',FCKLang.Superscript,null,null,false,true,25);break;case 'OrderedList':B=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList,null,false,true,26);break;case 'UnorderedList':B=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList,null,false,true,27);break;case 'Outdent':B=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent,null,null,false,true,28);break;case 'Indent':B=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent,null,null,false,true,29);break;case 'Link':B=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink,null,false,true,34);break;case 'Unlink':B=new FCKToolbarButton('Unlink',FCKLang.RemoveLink,null,null,false,true,35);break;case 'Anchor':B=new FCKToolbarButton('Anchor',FCKLang.Anchor,null,null,null,null,36);break;case 'Image':B=new FCKToolbarButton('Image',FCKLang.InsertImageLbl,FCKLang.InsertImage,null,false,true,37);break;case 'Flash':B=new FCKToolbarButton('Flash',FCKLang.InsertFlashLbl,FCKLang.InsertFlash,null,false,true,38);break;case 'Table':B=new FCKToolbarButton('Table',FCKLang.InsertTableLbl,FCKLang.InsertTable,null,false,true,39);break;case 'SpecialChar':B=new FCKToolbarButton('SpecialChar',FCKLang.InsertSpecialCharLbl,FCKLang.InsertSpecialChar,null,false,true,42);break;case 'Smiley':B=new FCKToolbarButton('Smiley',FCKLang.InsertSmileyLbl,FCKLang.InsertSmiley,null,false,true,41);break;case 'PageBreak':B=new FCKToolbarButton('PageBreak',FCKLang.PageBreakLbl,FCKLang.PageBreak,null,false,true,43);break;case 'Rule':B=new FCKToolbarButton('InsertHorizontalRule',FCKLang.InsertLineLbl,FCKLang.InsertLine,null,false,true,40);break;case 'JustifyLeft':B=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify,null,null,false,true,30);break;case 'JustifyCenter':B=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify,null,null,false,true,31);break;case 'JustifyRight':B=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify,null,null,false,true,32);break;case 'JustifyFull':B=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify,null,null,false,true,33);break;case 'Style':B=new FCKToolbarStyleCombo();break;case 'FontName':B=new FCKToolbarFontsCombo();break;case 'FontSize':B=new FCKToolbarFontSizeCombo();break;case 'FontFormat':B=new FCKToolbarFontFormatCombo();break;case 'TextColor':B=new FCKToolbarPanelButton('TextColor',FCKLang.TextColor,null,null,45);break;case 'BGColor':B=new FCKToolbarPanelButton('BGColor',FCKLang.BGColor,null,null,46);break;case 'Find':B=new FCKToolbarButton('Find',FCKLang.Find,null,null,null,null,16);break;case 'Replace':B=new FCKToolbarButton('Replace',FCKLang.Replace,null,null,null,null,17);break;case 'Form':B=new FCKToolbarButton('Form',FCKLang.Form,null,null,null,null,48);break;case 'Checkbox':B=new FCKToolbarButton('Checkbox',FCKLang.Checkbox,null,null,null,null,49);break;case 'Radio':B=new FCKToolbarButton('Radio',FCKLang.RadioButton,null,null,null,null,50);break;case 'TextField':B=new FCKToolbarButton('TextField',FCKLang.TextField,null,null,null,null,51);break;case 'Textarea':B=new FCKToolbarButton('Textarea',FCKLang.Textarea,null,null,null,null,52);break;case 'HiddenField':B=new FCKToolbarButton('HiddenField',FCKLang.HiddenField,null,null,null,null,56);break;case 'Button':B=new FCKToolbarButton('Button',FCKLang.Button,null,null,null,null,54);break;case 'Select':B=new FCKToolbarButton('Select',FCKLang.SelectionField,null,null,null,null,53);break;case 'ImageButton':B=new FCKToolbarButton('ImageButton',FCKLang.ImageButton,null,null,null,null,55);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;} -var FCKToolbar=function(){this.Items=[];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbar_Cleanup);};FCKToolbar.prototype.AddItem=function(A){return this.Items[this.Items.length]=A;};FCKToolbar.prototype.AddButton=function(A,B,C,D,E,F){if (typeof(D)=='number') D=[this.DefaultIconsStrip,this.DefaultIconSize,D];var G=new FCKToolbarButtonUI(A,B,C,D,E,F);G._FCKToolbar=this;G.OnClick=FCKToolbar_OnItemClick;return this.AddItem(G);};function FCKToolbar_OnItemClick(A){var B=A._FCKToolbar;if (B.OnItemClick) B.OnItemClick(B,A);};FCKToolbar.prototype.AddSeparator=function(){this.AddItem(new FCKToolbarSeparator());};FCKToolbar.prototype.Create=function(A){if (this.MainElement){if (this.MainElement.parentNode) this.MainElement.parentNode.removeChild(this.MainElement);this.MainElement=null;};var B=FCKTools.GetElementDocument(A);var e=this.MainElement=B.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=(FCKLang.Dir=='ltr'?'left':'right');e.dir=FCKLang.Dir;e.cellPadding=0;e.cellSpacing=0;this.RowElement=e.insertRow(-1);var C;if (!this.HideStart){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i<this.Items.length;i++){this.Items[i].Create(this.RowElement.insertCell(-1));};if (!this.HideEnd){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};function FCKToolbar_Cleanup(){this.MainElement=null;this.RowElement=null;};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';} +var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (!FCKBrowserInfo.IsGecko){switch (this.Name){case 'TableMergeRight':return FCKTableHandler.MergeRight();case 'TableMergeDown':return FCKTableHandler.MergeDown();}};switch (this.Name){case 'TableInsertRowAfter':return FCKTableHandler.InsertRow(false);case 'TableInsertRowBefore':return FCKTableHandler.InsertRow(true);case 'TableDeleteRows':return FCKTableHandler.DeleteRows();case 'TableInsertColumnAfter':return FCKTableHandler.InsertColumn(false);case 'TableInsertColumnBefore':return FCKTableHandler.InsertColumn(true);case 'TableDeleteColumns':return FCKTableHandler.DeleteColumns();case 'TableInsertCellAfter':return FCKTableHandler.InsertCell(null,false);case 'TableInsertCellBefore':return FCKTableHandler.InsertCell(null,true);case 'TableDeleteCells':return FCKTableHandler.DeleteCells();case 'TableMergeCells':return FCKTableHandler.MergeCells();case 'TableHorizontalSplitCell':return FCKTableHandler.HorizontalSplitCell();case 'TableVerticalSplitCell':return FCKTableHandler.VerticalSplitCell();case 'TableDelete':return FCKTableHandler.DeleteTable();default:return alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){if (FCK.EditorDocument!=null&&FCKSelection.HasAncestorNode('TABLE')){switch (this.Name){case 'TableHorizontalSplitCell':case 'TableVerticalSplitCell':if (FCKTableHandler.GetSelectedCells().length==1) return 0;else return -1;case 'TableMergeCells':if (FCKTableHandler.CheckIsSelectionRectangular()&&FCKTableHandler.GetSelectedCells().length>1) return 0;else return -1;case 'TableMergeRight':return FCKTableHandler.GetMergeRightTarget()?0:-1;case 'TableMergeDown':return FCKTableHandler.GetMergeDownTarget()?0:-1;default:return 0;}}else return -1;}; +var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1){G._fckSavedStyles=FCKTools.SaveStyles(G);G.style.zIndex=FCKConfig.FloatingPanelsZIndex-1;}};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var H=FCKTools.GetViewPaneSize(C);B.position="absolute";B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=H.Width+"px";B.height=H.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);var I=FCKTools.GetWindowPosition(C,A);if (I.x!=0) B.left=(-1*I.x)+"px";if (I.y!=0) B.top=(-1*I.y)+"px";this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent("onresize",FCKFitWindow_Resize);else C.removeEventListener("resize",FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();if (FCK.EditMode==0) FCK.EditingArea.MakeEditable();FCK.Focus();};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';}; +var FCKListCommand=function(A,B){this.Name=A;this.TagName=B;};FCKListCommand.prototype={GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=FCKSelection.GetBoundaryParentElement(true);var B=A;while (B){if (B.nodeName.IEquals(['ul','ol'])) break;B=B.parentNode;};if (B&&B.nodeName.IEquals(this.TagName)) return 1;else return 0;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCK.EditorDocument;var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=this.GetState();if (C==0){FCKDomTools.TrimNode(A.body);if (!A.body.firstChild){var D=A.createElement('p');A.body.appendChild(D);B.MoveToNodeContents(D);}};var E=B.CreateBookmark();var F=[];var G={};var H=new FCKDomRangeIterator(B);var I;H.ForceBrBreak=(C==0);var J=true;var K=null;while (J){while ((I=H.GetNextParagraph())){var L=new FCKElementPath(I);var M=null;var N=false;var O=L.BlockLimit;for (var i=L.Elements.length-1;i>=0;i--){var P=L.Elements[i];if (P.nodeName.IEquals(['ol','ul'])){if (O._FCK_ListGroupObject) O._FCK_ListGroupObject=null;var Q=P._FCK_ListGroupObject;if (Q) Q.contents.push(I);else{Q={ 'root':P,'contents':[I] };F.push(Q);FCKDomTools.SetElementMarker(G,P,'_FCK_ListGroupObject',Q);};N=true;break;}};if (N) continue;var R=O;if (R._FCK_ListGroupObject) R._FCK_ListGroupObject.contents.push(I);else{var Q={ 'root':R,'contents':[I] };FCKDomTools.SetElementMarker(G,R,'_FCK_ListGroupObject',Q);F.push(Q);}};if (FCKBrowserInfo.IsIE) J=false;else{if (K==null){K=[];var T=FCK.EditorWindow.getSelection();if (T&&F.length==0) K.push(T.getRangeAt(0));for (var i=1;T&&i<T.rangeCount;i++) K.push(T.getRangeAt(i));};if (K.length<1) J=false;else{var U=FCKW3CRange.CreateFromRange(A,K.shift());B._Range=U;B._UpdateElementInfo();if (B.StartNode.nodeName.IEquals('td')) B.SetStart(B.StartNode,1);if (B.EndNode.nodeName.IEquals('td')) B.SetEnd(B.EndNode,2);H=new FCKDomRangeIterator(B);H.ForceBrBreak=(C==0);}}};var W=[];while (F.length>0){var Q=F.shift();if (C==0){if (Q.root.nodeName.IEquals(['ul','ol'])) this._ChangeListType(Q,G,W);else this._CreateList(Q,W);}else if (C==1&&Q.root.nodeName.IEquals(['ul','ol'])) this._RemoveList(Q,G);};for (var i=0;i<W.length;i++){var M=W[i];var Z=false;var a=M;while (!Z){a=a.nextSibling;if (a&&a.nodeType==3&&a.nodeValue.search(/^[\n\r\t ]*$/)==0) continue;Z=true;};if (a&&a.nodeName.IEquals(this.TagName)){a.parentNode.removeChild(a);while (a.firstChild) M.appendChild(a.removeChild(a.firstChild));};Z=false;a=M;while (!Z){a=a.previousSibling;if (a&&a.nodeType==3&&a.nodeValue.search(/^[\n\r\t ]*$/)==0) continue;Z=true;};if (a&&a.nodeName.IEquals(this.TagName)){a.parentNode.removeChild(a);while (a.lastChild) M.insertBefore(a.removeChild(a.lastChild),M.firstChild);}};FCKDomTools.ClearAllMarkers(G);B.MoveToBookmark(E);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},_ChangeListType:function(A,B,C){var D=FCKDomTools.ListToArray(A.root,B);var E=[];for (var i=0;i<A.contents.length;i++){var F=A.contents[i];F=FCKTools.GetElementAscensor(F,'li');if (!F||F._FCK_ListItem_Processed) continue;E.push(F);FCKDomTools.SetElementMarker(B,F,'_FCK_ListItem_Processed',true);};var G=A.root.ownerDocument.createElement(this.TagName);for (var i=0;i<E.length;i++){var H=E[i]._FCK_ListArray_Index;D[H].parent=G;};var I=FCKDomTools.ArrayToList(D,B);for (var i=0;i<I.listNode.childNodes.length;i++){if (I.listNode.childNodes[i].nodeName.IEquals(this.TagName)) C.push(I.listNode.childNodes[i]);};A.root.parentNode.replaceChild(I.listNode,A.root);},_CreateList:function(A,B){var C=A.contents;var D=A.root.ownerDocument;var E=[];if (C.length==1&&C[0]==A.root){var F=D.createElement('div');while (C[0].firstChild) F.appendChild(C[0].removeChild(C[0].firstChild));C[0].appendChild(F);C[0]=F;};var G=A.contents[0].parentNode;for (var i=0;i<C.length;i++) G=FCKDomTools.GetCommonParents(G,C[i].parentNode).pop();for (var i=0;i<C.length;i++){var H=C[i];while (H.parentNode){if (H.parentNode==G){E.push(H);break;};H=H.parentNode;}};if (E.length<1) return;var I=E[E.length-1].nextSibling;var J=D.createElement(this.TagName);B.push(J);while (E.length){var K=E.shift();var L=D.createDocumentFragment();while (K.firstChild) L.appendChild(K.removeChild(K.firstChild));K.parentNode.removeChild(K);var M=D.createElement('li');M.appendChild(L);J.appendChild(M);};G.insertBefore(J,I);},_RemoveList:function(A,B){var C=FCKDomTools.ListToArray(A.root,B);var D=[];for (var i=0;i<A.contents.length;i++){var E=A.contents[i];E=FCKTools.GetElementAscensor(E,'li');if (!E||E._FCK_ListItem_Processed) continue;D.push(E);FCKDomTools.SetElementMarker(B,E,'_FCK_ListItem_Processed',true);};var F=null;for (var i=0;i<D.length;i++){var G=D[i]._FCK_ListArray_Index;C[G].indent=-1;F=G;};for (var i=F+1;i<C.length;i++){if (C[i].indent>C[i-1].indent+1){var H=C[i-1].indent+1-C[i].indent;var I=C[i].indent;while (C[i]&&C[i].indent>=I){C[i].indent+=H;i++;};i--;}};var J=FCKDomTools.ArrayToList(C,B);if (A.root.nextSibling==null||A.root.nextSibling.nodeName.IEquals('br')){if (J.listNode.lastChild.nodeName.IEquals('br')) J.listNode.removeChild(J.listNode.lastChild);};A.root.parentNode.replaceChild(J.listNode,A.root);}}; +var FCKJustifyCommand=function(A){this.AlignValue=A;var B=FCKConfig.ContentLangDirection.toLowerCase();this.IsDefaultAlign=(A=='left'&&B=='ltr')||(A=='right'&&B=='rtl');var C=this._CssClassName=(function(){var D=FCKConfig.JustifyClasses;if (D){switch (A){case 'left':return D[0];case 'center':return D[1];case 'right':return D[2];case 'justify':return D[3];}};return null;})();if (C&&C.length>0) this._CssClassRegex=new RegExp('(?:^|\\s+)'+C+'(?=$|\\s)');};FCKJustifyCommand._GetClassNameRegex=function(){var A=FCKJustifyCommand._ClassRegex;if (A!=undefined) return A;var B=[];var C=FCKConfig.JustifyClasses;if (C){for (var i=0;i<4;i++){var D=C[i];if (D&&D.length>0) B.push(D);}};if (B.length>0) A=new RegExp('(?:^|\\s+)(?:'+B.join('|')+')(?=$|\\s)');else A=null;return FCKJustifyCommand._ClassRegex=A;};FCKJustifyCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=this.GetState();if (B==-1) return;var C=A.CreateBookmark();var D=this._CssClassName;var E=new FCKDomRangeIterator(A);var F;while ((F=E.GetNextParagraph())){F.removeAttribute('align');if (D){var G=F.className.replace(FCKJustifyCommand._GetClassNameRegex(),'');if (B==0){if (G.length>0) G+=' ';F.className=G+D;}else if (G.length==0) FCKDomTools.RemoveAttribute(F,'class');}else{var H=F.style;if (B==0) H.textAlign=this.AlignValue;else{H.textAlign='';if (H.cssText.length==0) F.removeAttribute('style');}}};A.MoveToBookmark(C);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;var C;if (FCKBrowserInfo.IsIE) C=B.currentStyle.textAlign;else C=FCK.EditorWindow.getComputedStyle(B,'').getPropertyValue('text-align');C=C.replace(/(-moz-|-webkit-|start|auto)/i,'');if ((!C&&this.IsDefaultAlign)||C==this.AlignValue) return 1;return 0;}}; +var FCKIndentCommand=function(A,B){this.Name=A;this.Offset=B;this.IndentCSSProperty=FCKConfig.ContentLangDirection.IEquals('ltr')?'marginLeft':'marginRight';};FCKIndentCommand._InitIndentModeParameters=function(){if (FCKConfig.IndentClasses&&FCKConfig.IndentClasses.length>0){this._UseIndentClasses=true;this._IndentClassMap={};for (var i=0;i<FCKConfig.IndentClasses.length;i++) this._IndentClassMap[FCKConfig.IndentClasses[i]]=i+1;this._ClassNameRegex=new RegExp('(?:^|\\s+)('+FCKConfig.IndentClasses.join('|')+')(?=$|\\s)');}else this._UseIndentClasses=false;};FCKIndentCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=A.CreateBookmark();var C=FCKDomTools.GetCommonParentNode(A.StartNode||A.StartContainer,A.EndNode||A.EndContainer,['ul','ol']);if (C) this._IndentList(A,C);else this._IndentBlock(A);A.MoveToBookmark(B);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;if (FCKIndentCommand._UseIndentClasses==undefined) FCKIndentCommand._InitIndentModeParameters();var A=FCKSelection.GetBoundaryParentElement(true);var B=FCKSelection.GetBoundaryParentElement(false);var C=FCKDomTools.GetCommonParentNode(A,B,['ul','ol']);if (C){if (this.Name.IEquals('outdent')) return 0;var D=FCKTools.GetElementAscensor(A,'li');if (!D||!D.previousSibling) return -1;return 0;};if (!FCKIndentCommand._UseIndentClasses&&this.Name.IEquals('indent')) return 0;var E=new FCKElementPath(A);var F=E.Block||E.BlockLimit;if (!F) return -1;if (FCKIndentCommand._UseIndentClasses){var G=F.className.match(FCKIndentCommand._ClassNameRegex);var H=0;if (G!=null){G=G[1];H=FCKIndentCommand._IndentClassMap[G];};if ((this.Name=='outdent'&&H==0)||(this.Name=='indent'&&H==FCKConfig.IndentClasses.length)) return -1;return 0;}else{var I=parseInt(F.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;if (I<=0) return -1;return 0;}},_IndentBlock:function(A){var B=new FCKDomRangeIterator(A);A.Expand('block_contents');var C=FCKDomTools.GetCommonParents(A.StartContainer,A.EndContainer);var D=C[C.length-1];var E;while ((E=B.GetNextParagraph())){if (!(E==D||E.parentNode==D)) continue;if (FCKIndentCommand._UseIndentClasses){var F=E.className.match(FCKIndentCommand._ClassNameRegex);var G=0;if (F!=null){F=F[1];G=FCKIndentCommand._IndentClassMap[F];};if (this.Name.IEquals('outdent')) G--;else if (this.Name.IEquals('indent')) G++;G=Math.min(G,FCKConfig.IndentClasses.length);G=Math.max(G,0);var H=E.className.replace(FCKIndentCommand._ClassNameRegex,'');if (G<1) E.className=H;else E.className=(H.length>0?H+' ':'')+FCKConfig.IndentClasses[G-1];}else{var I=parseInt(E.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;I+=this.Offset;I=Math.max(I,0);I=Math.ceil(I/this.Offset)*this.Offset;E.style[this.IndentCSSProperty]=I?I+FCKConfig.IndentUnit:'';if (E.getAttribute('style')=='') E.removeAttribute('style');}}},_IndentList:function(A,B){var C=A.StartContainer;var D=A.EndContainer;while (C&&C.parentNode!=B) C=C.parentNode;while (D&&D.parentNode!=B) D=D.parentNode;if (!C||!D) return;var E=C;var F=[];var G=false;while (G==false){if (E==D) G=true;F.push(E);E=E.nextSibling;};if (F.length<1) return;var H=FCKDomTools.GetParents(B);for (var i=0;i<H.length;i++){if (H[i].nodeName.IEquals(['ul','ol'])){B=H[i];break;}};var I=this.Name.IEquals('indent')?1:-1;var J=F[0];var K=F[F.length-1];var L={};var M=FCKDomTools.ListToArray(B,L);var N=M[K._FCK_ListArray_Index].indent;for (var i=J._FCK_ListArray_Index;i<=K._FCK_ListArray_Index;i++) M[i].indent+=I;for (var i=K._FCK_ListArray_Index+1;i<M.length&&M[i].indent>N;i++) M[i].indent+=I;var O=FCKDomTools.ArrayToList(M);if (O) B.parentNode.replaceChild(O.listNode,B);FCKDomTools.ClearAllMarkers(L);}}; +var FCKBlockQuoteCommand=function(){};FCKBlockQuoteCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=this.GetState();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();if (FCKBrowserInfo.IsIE){var D=B.GetBookmarkNode(C,true);var E=B.GetBookmarkNode(C,false);var F;if (D&&D.parentNode.nodeName.IEquals('blockquote')&&!D.previousSibling){F=D;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]) FCKDomTools.MoveNode(D,F,true);}};if (E&&E.parentNode.nodeName.IEquals('blockquote')&&!E.previousSibling){F=E;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]){if (F.firstChild==D) FCKDomTools.InsertAfterNode(D,E);else FCKDomTools.MoveNode(E,F,true);}}}};var G=new FCKDomRangeIterator(B);var H;if (A==0){G.EnforceRealBlocks=true;var I=[];while ((H=G.GetNextParagraph())) I.push(H);if (I.length<1){para=B.Window.document.createElement(FCKConfig.EnterMode.IEquals('p')?'p':'div');B.InsertNode(para);para.appendChild(B.Window.document.createTextNode('\ufeff'));B.MoveToBookmark(C);B.MoveToNodeContents(para);B.Collapse(true);C=B.CreateBookmark();I.push(para);};var J=I[0].parentNode;var K=[];for (var i=0;i<I.length;i++){H=I[i];J=FCKDomTools.GetCommonParents(H.parentNode,J).pop();};var L=null;while (I.length>0){H=I.shift();while (H.parentNode!=J) H=H.parentNode;if (H!=L) K.push(H);L=H;};while (K.length>0){H=K.shift();if (H.nodeName.IEquals('blockquote')){var M=H.ownerDocument.createDocumentFragment();while (H.firstChild){M.appendChild(H.removeChild(H.firstChild));I.push(M.lastChild);};H.parentNode.replaceChild(M,H);}else I.push(H);};var N=B.Window.document.createElement('blockquote');J.insertBefore(N,I[0]);while (I.length>0){H=I.shift();N.appendChild(H);}}else if (A==1){var O=[];while ((H=G.GetNextParagraph())){var P=null;var Q=null;while (H.parentNode){if (H.parentNode.nodeName.IEquals('blockquote')){P=H.parentNode;Q=H;break;};H=H.parentNode;};if (P&&Q) O.push(Q);};var R=[];while (O.length>0){var S=O.shift();var N=S.parentNode;if (S==S.parentNode.firstChild){N.parentNode.insertBefore(N.removeChild(S),N);if (!N.firstChild) N.parentNode.removeChild(N);}else if (S==S.parentNode.lastChild){N.parentNode.insertBefore(N.removeChild(S),N.nextSibling);if (!N.firstChild) N.parentNode.removeChild(N);}else FCKDomTools.BreakParent(S,S.parentNode,B);R.push(S);};if (FCKConfig.EnterMode.IEquals('br')){while (R.length){var S=R.shift();var W=true;if (S.nodeName.IEquals('div')){var M=S.ownerDocument.createDocumentFragment();var Y=W&&S.previousSibling&&!FCKListsLib.BlockBoundaries[S.previousSibling.nodeName.toLowerCase()];if (W&&Y) M.appendChild(S.ownerDocument.createElement('br'));var Z=S.nextSibling&&!FCKListsLib.BlockBoundaries[S.nextSibling.nodeName.toLowerCase()];while (S.firstChild) M.appendChild(S.removeChild(S.firstChild));if (Z) M.appendChild(S.ownerDocument.createElement('br'));S.parentNode.replaceChild(M,S);W=false;}}}};B.MoveToBookmark(C);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;for (var i=0;i<A.Elements.length;i++){if (A.Elements[i].nodeName.IEquals('blockquote')) return 1;};return 0;}}; +var FCKCoreStyleCommand=function(A){this.Name='CoreStyle';this.StyleName='_FCK_'+A;this.IsActive=false;FCKStyles.AttachStyleStateChange(this.StyleName,this._OnStyleStateChange,this);};FCKCoreStyleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();if (this.IsActive) FCKStyles.RemoveStyle(this.StyleName);else FCKStyles.ApplyStyle(this.StyleName);FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){return this.IsActive?1:0;},_OnStyleStateChange:function(A,B){this.IsActive=B;}}; +var FCKRemoveFormatCommand=function(){this.Name='RemoveFormat';};FCKRemoveFormatCommand.prototype={Execute:function(){FCKStyles.RemoveAll();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){return FCK.EditorWindow?0:-1;}}; +var FCKCommands=FCK.Commands={};FCKCommands.LoadedCommands={};FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'Bold':case 'Italic':case 'Underline':case 'StrikeThrough':case 'Subscript':case 'Superscript':B=new FCKCoreStyleCommand(A);break;case 'RemoveFormat':B=new FCKRemoveFormatCommand();break;case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,390,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,170);break;case 'AnchorDelete':B=new FCKAnchorDeleteCommand();break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,170);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,170);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',400,330);break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,250);break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,250);break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,400);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,320);break;case 'Smiley':B=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight);break;case 'Table':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html',480,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',480,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,250);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'Rule':B=new FCKRuleCommand();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'Paste':B=new FCKPasteCommand();break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'JustifyLeft':B=new FCKJustifyCommand('left');break;case 'JustifyCenter':B=new FCKJustifyCommand('center');break;case 'JustifyRight':B=new FCKJustifyCommand('right');break;case 'JustifyFull':B=new FCKJustifyCommand('justify');break;case 'Indent':B=new FCKIndentCommand('indent',FCKConfig.IndentLength);break;case 'Outdent':B=new FCKIndentCommand('outdent',FCKConfig.IndentLength*-1);break;case 'Blockquote':B=new FCKBlockQuoteCommand();break;case 'TableInsertRowAfter':B=new FCKTableCommand('TableInsertRowAfter');break;case 'TableInsertRowBefore':B=new FCKTableCommand('TableInsertRowBefore');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumnAfter':B=new FCKTableCommand('TableInsertColumnAfter');break;case 'TableInsertColumnBefore':B=new FCKTableCommand('TableInsertColumnBefore');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCellAfter':B=new FCKTableCommand('TableInsertCellAfter');break;case 'TableInsertCellBefore':B=new FCKTableCommand('TableInsertCellBefore');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableMergeRight':B=new FCKTableCommand('TableMergeRight');break;case 'TableMergeDown':B=new FCKTableCommand('TableMergeDown');break;case 'TableHorizontalSplitCell':B=new FCKTableCommand('TableHorizontalSplitCell');break;case 'TableVerticalSplitCell':B=new FCKTableCommand('TableVerticalSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,230);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,230);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,230);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,230);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,230);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,230);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,230);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,380);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,400);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();break;case 'Copy':B=new FCKCopyCommand();break;case 'SelectAll':B=new FCKSelectAllCommand();break;case 'InsertOrderedList':B=new FCKListCommand('insertorderedlist','ol');break;case 'InsertUnorderedList':B=new FCKListCommand('insertunorderedlist','ul');break;case 'ShowBlocks':B=new FCKShowBlockCommand('ShowBlocks',FCKConfig.StartupShowBlocks?1:0);break;case 'Undefined':B=new FCKUndefinedCommand();break;default:if (FCKRegexLib.NamedCommands.test(A)) B=new FCKNamedCommand(A);else{alert(FCKLang.UnknownCommand.replace(/%1/g,A));return null;}};FCKCommands.LoadedCommands[A]=B;return B;};FCKCommands.GetFullPageState=function(){return FCKConfig.FullPage?0:-1;};FCKCommands.GetBooleanState=function(A){return A?-1:0;}; +var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();B=this.Document=this._Popup.document;FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var C=this._IFrame=this._Window.document.createElement('iframe');C.src='javascript:void(0)';C.allowTransparency=true;C.frameBorder='0';C.scrolling='no';C.width=C.height=0;FCKDomTools.SetElementStyles(C,{position:'absolute',zIndex:FCKConfig.FloatingPanelsZIndex});if (this._Window==window.parent&&window.frameElement){var D=null;if (FCKBrowserInfo.IsGecko&&FCK&&FCK.EditorDocument) D=[FCK.EditorDocument.body.scrollLeft,FCK.EditorDocument.body.scrollTop];window.frameElement.parentNode.insertBefore(C,window.frameElement);if (D){var E=function(){FCK.EditorDocument.body.scrollLeft=D[0];FCK.EditorDocument.body.scrollTop=D[1];};setTimeout(E,500);}}else this._Window.document.body.appendChild(C);var F=C.contentWindow;B=this.Document=F.document;var G='';if (FCKBrowserInfo.IsSafari) G='<base href="'+window.document.location+'">';B.open();B.write('<html><head>'+G+'<\/head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();FCKTools.AddEventListenerEx(F,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(F,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;FCKTools.AddEventListener(B,'contextmenu',FCKTools.CancelEvent);this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;var E=this.MainNode;if (this._Popup){this._Popup.show(x,y,0,0,A);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,E.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCK.ToolbarSet.CurrentInstance.FocusManager)!='undefined') FCK.ToolbarSet.CurrentInstance.FocusManager.Lock();if (this.ParentPanel){this.ParentPanel.Lock();FCKPanel_Window_OnBlur(null,this.ParentPanel);};if (FCKPanel._OpenedPanel) FCKPanel._OpenedPanel.Hide();FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (!B) this._IFrame.width=1;if (!C) this._IFrame.height=1;D=E.offsetWidth||E.firstChild.offsetWidth;var F=FCKTools.GetDocumentPosition(this._Window,A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A);var G=FCKDomTools.GetPositionedAncestor(FCKTools.GetElementWindow(this._IFrame),this._IFrame.parentNode);if (G){var H=FCKTools.GetDocumentPosition(FCKTools.GetElementWindow(G),G);F.x-=H.x;F.y-=H.y;};if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=F.x;y+=F.y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var I=FCKTools.GetViewPaneSize(this._Window);var J=FCKTools.GetScrollPosition(this._Window);var K=I.Height+J.Y;var L=I.Width+J.X;if ((x+D)>L) x-=x+D-L;if ((y+E.offsetHeight)>K) y-=y+E.offsetHeight-K;};if (x<0) x=0;FCKDomTools.SetElementStyles(this._IFrame,{left:x+'px',top:y+'px'});var M=D;var N=E.offsetHeight;this._IFrame.width=M;this._IFrame.height=N;this._IFrame.contentWindow.focus();FCKPanel._OpenedPanel=this;};this._IsOpened=true;FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened||this._LockCounter>0) return;if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&&!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;}; +var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B,eIconImage;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path;eIconImage.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url("'+this.Path+'")';}}else{if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path?this.Path:FCK_SPACER_PATH;}else{B=A.createElement('IMG');B.src=this.Path?this.Path:FCK_SPACER_PATH;}};B.className='TB_Button_Image';return B;} +var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||0;this.State=F||0;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this.MainElement=B.createElement('DIV');C.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) C.onmousedown=FCKTools.CancelEvent;FCKTools.AddEventListenerEx(C,'mouseover',FCKToolbarButtonUI_OnMouseOver,this);FCKTools.AddEventListenerEx(C,'mouseout',FCKToolbarButtonUI_OnMouseOut,this);FCKTools.AddEventListenerEx(C,'click',FCKToolbarButtonUI_OnClick,this);this.ChangeState(this.State,true);if (this.Style==0&&!this.ShowArrow){C.appendChild(this.Icon.CreateIconElement(B));}else{var D=C.appendChild(B.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==0||this.Style==2) F.appendChild(this.Icon.CreateIconElement(B));else F.appendChild(this._CreatePaddingElement(B));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(B.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(B));};F=E.insertCell(-1);var G=F.appendChild(B.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(B));};A.appendChild(C);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;if (!e) return;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';break;case 1:e.className='TB_Button_On';break;case -1:e.className='TB_Button_Disabled';break;};this.State=A;};function FCKToolbarButtonUI_OnMouseOver(A,B){if (B.State==0) this.className='TB_Button_Off_Over';else if (B.State==1) this.className='TB_Button_On_Over';};function FCKToolbarButtonUI_OnMouseOut(A,B){if (B.State==0) this.className='TB_Button_Off';else if (B.State==1) this.className='TB_Button_On';};function FCKToolbarButtonUI_OnClick(A,B){if (B.OnClick&&B.State!=-1) B.OnClick(B);};function FCKToolbarButtonUI_Cleanup(){this.MainElement=null;}; +var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];else this.IconPath=G;};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (A==this._UIButton.State) return;this._UIButton.ChangeState(A);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);} +var FCKSpecialCombo=function(A,B,C,D,E){this.FieldWidth=B||100;this.PanelWidth=C||150;this.PanelMaxHeight=D||150;this.Label='&nbsp;';this.Caption=A;this.Tooltip=A;this.Style=2;this.Enabled=true;this.Items={};this._Panel=new FCKPanel(E||window);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._PanelBox=this._Panel.MainNode.appendChild(this._Panel.Document.createElement('DIV'));this._PanelBox.className='SC_Panel';this._PanelBox.style.width=this.PanelWidth+'px';this._PanelBox.innerHTML='<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>';this._ItemsHolderEl=this._PanelBox.getElementsByTagName('TD')[0];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKSpecialCombo_Cleanup);};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(A,B,C){this.className=this.originalClass;B._Panel.Hide();B.SetLabel(this.FCKItemLabel);if (typeof(B.OnSelect)=='function') B.OnSelect(C,this);};FCKSpecialCombo.prototype.ClearItems=function (){if (this.Items) this.Items={};var A=this._ItemsHolderEl;while (A.firstChild) A.removeChild(A.firstChild);};FCKSpecialCombo.prototype.AddItem=function(A,B,C,D){var E=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));E.className=E.originalClass='SC_Item';E.innerHTML=B;E.FCKItemLabel=C||A;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;FCKTools.AddEventListenerEx(E,'mouseover',FCKSpecialCombo_ItemOnMouseOver);FCKTools.AddEventListenerEx(E,'mouseout',FCKSpecialCombo_ItemOnMouseOut);FCKTools.AddEventListenerEx(E,'click',FCKSpecialCombo_ItemOnClick,[this,A]);this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){if (typeof A=='string') A=this.Items[A.toString().toLowerCase()];if (A){A.className=A.originalClass='SC_ItemSelected';A.Selected=true;}};FCKSpecialCombo.prototype.SelectItemByLabel=function(A,B){for (var C in this.Items){var D=this.Items[C];if (D.FCKItemLabel==A){D.className=D.originalClass='SC_ItemSelected';D.Selected=true;if (B) this.SetLabel(A);}}};FCKSpecialCombo.prototype.DeselectAll=function(A){for (var i in this.Items){if (!this.Items[i]) continue;this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};if (A) this.SetLabel('');};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){A=(!A||A.length==0)?'&nbsp;':A;if (A==this.Label) return;this.Label=A;var B=this._LabelEl;if (B){B.innerHTML=A;FCKTools.DisableSelection(B);}};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;if (this._OuterTable) this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this._OuterTable=A.appendChild(B.createElement('TABLE'));C.cellPadding=0;C.cellSpacing=0;C.insertRow(-1);var D;var E;switch (this.Style){case 0:D='TB_ButtonType_Icon';E=false;break;case 1:D='TB_ButtonType_Text';E=false;break;case 2:E=true;break;};if (this.Caption&&this.Caption.length>0&&E){var F=C.rows[0].insertCell(-1);F.innerHTML=this.Caption;F.className='SC_FieldCaption';};var G=FCKTools.AppendElement(C.rows[0].insertCell(-1),'div');if (E){G.className='SC_Field';G.style.width=this.FieldWidth+'px';G.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldLabel"><label>&nbsp;</label></td><td class="SC_FieldButton">&nbsp;</td></tr></tbody></table>';this._LabelEl=G.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{G.className='TB_Button_Off';G.innerHTML='<table title="'+this.Tooltip+'" class="'+D+'" cellspacing="0" cellpadding="0" border="0"><tr><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_Text">'+this.Caption+'</td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_ButtonArrow"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td></tr></table>';};FCKTools.AddEventListenerEx(G,'mouseover',FCKSpecialCombo_OnMouseOver,this);FCKTools.AddEventListenerEx(G,'mouseout',FCKSpecialCombo_OnMouseOut,this);FCKTools.AddEventListenerEx(G,'click',FCKSpecialCombo_OnClick,this);FCKTools.DisableSelection(this._Panel.Document.body);};function FCKSpecialCombo_Cleanup(){this._LabelEl=null;this._OuterTable=null;this._ItemsHolderEl=null;this._PanelBox=null;if (this.Items){for (var A in this.Items) this.Items[A]=null;}};function FCKSpecialCombo_OnMouseOver(A,B){if (B.Enabled){switch (B.Style){case 0:this.className='TB_Button_On_Over';break;case 1:this.className='TB_Button_On_Over';break;case 2:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(A,B){switch (B.Style){case 0:this.className='TB_Button_Off';break;case 1:this.className='TB_Button_Off';break;case 2:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e,A){if (A.Enabled){var B=A._Panel;var C=A._PanelBox;var D=A._ItemsHolderEl;var E=A.PanelMaxHeight;if (A.OnBeforeClick) A.OnBeforeClick(A);if (FCKBrowserInfo.IsIE) B.Preload(0,this.offsetHeight,this);if (D.offsetHeight>E) C.style.height=E+'px';else C.style.height='';B.Show(0,this.offsetHeight,this);}}; +var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;};FCKToolbarSpecialCombo.prototype.DefaultLabel='';function FCKToolbarSpecialCombo_OnSelect(A,B){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(A,B);};FCKToolbarSpecialCombo.prototype.Create=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel(),this.FieldWidth,this.PanelWidth,this.PanelMaxHeight,FCKBrowserInfo.IsIE?window:FCKTools.GetElementWindow(A).parent);this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A);this._Combo.CommandName=this.CommandName;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(A,B){A.DeselectAll();A.SelectItem(B);A.SetLabelById(B);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=-1){A=1;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!==B){this._LastValue=B;if (!B||B.length==0){this._Combo.DeselectAll();this._Combo.SetLabel(this.DefaultLabel);}else FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=-1;if (A==this.State) return;if (A==-1){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=-1);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=-1;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);}; +var FCKToolbarStyleCombo=function(A,B){if (A===false) return;this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultStyleLabel||'';};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.GetStyles=function(){var A={};var B=FCK.ToolbarSet.CurrentInstance.Styles.GetStyles();for (var C in B){var D=B[C];if (!D.IsCore) A[C]=D;};return A;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);FCKTools.AppendStyleString(B,FCKConfig.EditorAreaStyles);B.body.className+=' ForceBaseFont';FCKConfig.ApplyBodyAttributes(B.body);var C=this.GetStyles();for (var D in C){var E=C[D];var F=E.GetType()==2?D:FCKToolbarStyleCombo_BuildPreview(E,E.Label||D);var G=A.AddItem(D,F);G.Style=E;};A.OnBeforeClick=this.StyleCombo_OnBeforeClick;};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Elements;for (var e=0;e<D.length;e++){for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D[e],true)){A.SetLabel(F.Label||F.Name);return;}}}};A.SetLabel(this.DefaultLabel);};FCKToolbarStyleCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B;var C;var D;var E=FCK.ToolbarSet.CurrentInstance.Selection;if (E.GetType()=='Control'){B=E.GetSelectedElement();D=B.nodeName.toLowerCase();}else{B=E.GetBoundaryParentElement(true);C=new FCKElementPath(B);};for (var i in A.Items){var F=A.Items[i];var G=F.Style;if ((D&&G.Element==D)||(!D&&G.GetType()!=2)){F.style.display='';if ((C&&G.CheckActive(C))||(!C&&G.CheckElementRemovable(B,true))) A.SelectItem(G.Name);}else F.style.display='none';}};function FCKToolbarStyleCombo_BuildPreview(A,B){var C=A.GetType();var D=[];if (C==0) D.push('<div class="BaseFont">');var E=A.Element;if (E=='bdo') E='span';D=['<',E];var F=A._StyleDesc.Attributes;if (F){for (var G in F){D.push(' ',G,'="',A.GetFinalAttributeValue(G),'"');}};if (A._GetStyleText().length>0) D.push(' style="',A.GetFinalStyleValue(),'"');D.push('>',B,'</',E,'>');if (C==0) D.push('</div>');return D.join('');} +var FCKToolbarFontFormatCombo=function(A,B){if (A===false) return;this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.NormalLabel='Normal';this.PanelWidth=190;this.DefaultLabel=FCKConfig.DefaultFontFormatLabel||'';};FCKToolbarFontFormatCombo.prototype=new FCKToolbarStyleCombo(false);FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.GetStyles=function(){var A={};var B=FCKLang['FontFormats'].split(';');var C={p:B[0],pre:B[1],address:B[2],h1:B[3],h2:B[4],h3:B[5],h4:B[6],h5:B[7],h6:B[8],div:B[9]||(B[0]+' (DIV)')};var D=FCKConfig.FontFormats.split(';');for (var i=0;i<D.length;i++){var E=D[i];var F=FCKStyles.GetStyle('_FCK_'+E);if (F){F.Label=C[E];A['_FCK_'+E]=F;}else alert("The FCKConfig.CoreStyles['"+E+"'] setting was not found. Please check the fckconfig.js file");};return A;};FCKToolbarFontFormatCombo.prototype.RefreshActiveItems=function(A){var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Block;if (D){for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D)){A.SetLabel(F.Label);return;}}}};A.SetLabel(this.DefaultLabel);};FCKToolbarFontFormatCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Block;for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D)){A.SelectItem(E);return;}}}}; +var FCKToolbarFontsCombo=function(A,B){this.CommandName='FontName';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultFontLabel||'';};FCKToolbarFontsCombo.prototype=new FCKToolbarFontFormatCombo(false);FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.GetStyles=function(){var A=FCKStyles.GetStyle('_FCK_FontFace');if (!A){alert("The FCKConfig.CoreStyles['Size'] setting was not found. Please check the fckconfig.js file");return {};};var B={};var C=FCKConfig.FontNames.split(';');for (var i=0;i<C.length;i++){var D=C[i].split('/');var E=D[0];var F=D[1]||E;var G=FCKTools.CloneObject(A);G.SetVariable('Font',E);G.Label=F;B[F]=G;};return B;};FCKToolbarFontsCombo.prototype.RefreshActiveItems=FCKToolbarStyleCombo.prototype.RefreshActiveItems;FCKToolbarFontsCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B=FCKSelection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);for (var i in A.Items){var D=A.Items[i];var E=D.Style;if (E.CheckActive(C)){A.SelectItem(D);return;}}}}; +var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultFontSizeLabel||'';this.FieldWidth=70;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarFontFormatCombo(false);FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.GetStyles=function(){var A=FCKStyles.GetStyle('_FCK_Size');if (!A){alert("The FCKConfig.CoreStyles['FontFace'] setting was not found. Please check the fckconfig.js file");return {};};var B={};var C=FCKConfig.FontSizes.split(';');for (var i=0;i<C.length;i++){var D=C[i].split('/');var E=D[0];var F=D[1]||E;var G=FCKTools.CloneObject(A);G.SetVariable('Size',E);G.Label=F;B[F]=G;};return B;};FCKToolbarFontSizeCombo.prototype.RefreshActiveItems=FCKToolbarStyleCombo.prototype.RefreshActiveItems;FCKToolbarFontSizeCombo.prototype.StyleCombo_OnBeforeClick=FCKToolbarFontsCombo.prototype.StyleCombo_OnBeforeClick; +var FCKToolbarPanelButton=function(A,B,C,D,E){this.CommandName=A;var F;if (E==null) F=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(E)=='number') F=[FCKConfig.SkinPath+'fck_strip.gif',16,E];var G=this._UIButton=new FCKToolbarButtonUI(A,B,C,F,D);G._FCKToolbarPanelButton=this;G.ShowArrow=true;G.OnClick=FCKToolbarPanelButton_OnButtonClick;};FCKToolbarPanelButton.prototype.TypeName='FCKToolbarPanelButton';FCKToolbarPanelButton.prototype.Create=function(A){A.className+='Menu';this._UIButton.Create(A);var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName)._Panel;B._FCKToolbarPanelButton=this;var C=B.Document.body.appendChild(B.Document.createElement('div'));C.style.position='absolute';C.style.top='0px';var D=this.LineImg=C.appendChild(B.Document.createElement('IMG'));D.className='TB_ConnectionLine';D.style.position='absolute';D.src=FCK_SPACER_PATH;B.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(A){var B=this._FCKToolbarPanelButton;var e=B._UIButton.MainElement;B._UIButton.ChangeState(1);B.LineImg.style.width=(e.offsetWidth-2)+'px';FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(B.CommandName).Execute(0,e.offsetHeight-1,e);};function FCKToolbarPanelButton_OnPanelHide(){var A=this._FCKToolbarPanelButton;A._UIButton.ChangeState(0);};FCKToolbarPanelButton.prototype.RefreshState=FCKToolbarButton.prototype.RefreshState;FCKToolbarPanelButton.prototype.Enable=FCKToolbarButton.prototype.Enable;FCKToolbarPanelButton.prototype.Disable=FCKToolbarButton.prototype.Disable; +var FCKToolbarItems={};FCKToolbarItems.LoadedItems={};FCKToolbarItems.RegisterItem=function(A,B){this.LoadedItems[A]=B;};FCKToolbarItems.GetItem=function(A){var B=FCKToolbarItems.LoadedItems[A];if (B) return B;switch (A){case 'Source':B=new FCKToolbarButton('Source',FCKLang.Source,null,2,true,true,1);break;case 'DocProps':B=new FCKToolbarButton('DocProps',FCKLang.DocProps,null,null,null,null,2);break;case 'Save':B=new FCKToolbarButton('Save',FCKLang.Save,null,null,true,null,3);break;case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;case 'Preview':B=new FCKToolbarButton('Preview',FCKLang.Preview,null,null,true,null,5);break;case 'Templates':B=new FCKToolbarButton('Templates',FCKLang.Templates,null,null,null,null,6);break;case 'About':B=new FCKToolbarButton('About',FCKLang.About,null,null,true,null,47);break;case 'Cut':B=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,false,true,7);break;case 'Copy':B=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,false,true,8);break;case 'Paste':B=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,false,true,9);break;case 'PasteText':B=new FCKToolbarButton('PasteText',FCKLang.PasteText,null,null,false,true,10);break;case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true,11);break;case 'Print':B=new FCKToolbarButton('Print',FCKLang.Print,null,null,false,true,12);break;case 'SpellCheck':B=new FCKToolbarButton('SpellCheck',FCKLang.SpellCheck,null,null,null,null,13);break;case 'Undo':B=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,false,true,14);break;case 'Redo':B=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,false,true,15);break;case 'SelectAll':B=new FCKToolbarButton('SelectAll',FCKLang.SelectAll,null,null,true,null,18);break;case 'RemoveFormat':B=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat,null,null,false,true,19);break;case 'FitWindow':B=new FCKToolbarButton('FitWindow',FCKLang.FitWindow,null,null,true,true,66);break;case 'Bold':B=new FCKToolbarButton('Bold',FCKLang.Bold,null,null,false,true,20);break;case 'Italic':B=new FCKToolbarButton('Italic',FCKLang.Italic,null,null,false,true,21);break;case 'Underline':B=new FCKToolbarButton('Underline',FCKLang.Underline,null,null,false,true,22);break;case 'StrikeThrough':B=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough,null,null,false,true,23);break;case 'Subscript':B=new FCKToolbarButton('Subscript',FCKLang.Subscript,null,null,false,true,24);break;case 'Superscript':B=new FCKToolbarButton('Superscript',FCKLang.Superscript,null,null,false,true,25);break;case 'OrderedList':B=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList,null,false,true,26);break;case 'UnorderedList':B=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList,null,false,true,27);break;case 'Outdent':B=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent,null,null,false,true,28);break;case 'Indent':B=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent,null,null,false,true,29);break;case 'Blockquote':B=new FCKToolbarButton('Blockquote',FCKLang.Blockquote,null,null,false,true,73);break;case 'Link':B=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink,null,false,true,34);break;case 'Unlink':B=new FCKToolbarButton('Unlink',FCKLang.RemoveLink,null,null,false,true,35);break;case 'Anchor':B=new FCKToolbarButton('Anchor',FCKLang.Anchor,null,null,null,null,36);break;case 'Image':B=new FCKToolbarButton('Image',FCKLang.InsertImageLbl,FCKLang.InsertImage,null,false,true,37);break;case 'Flash':B=new FCKToolbarButton('Flash',FCKLang.InsertFlashLbl,FCKLang.InsertFlash,null,false,true,38);break;case 'Table':B=new FCKToolbarButton('Table',FCKLang.InsertTableLbl,FCKLang.InsertTable,null,false,true,39);break;case 'SpecialChar':B=new FCKToolbarButton('SpecialChar',FCKLang.InsertSpecialCharLbl,FCKLang.InsertSpecialChar,null,false,true,42);break;case 'Smiley':B=new FCKToolbarButton('Smiley',FCKLang.InsertSmileyLbl,FCKLang.InsertSmiley,null,false,true,41);break;case 'PageBreak':B=new FCKToolbarButton('PageBreak',FCKLang.PageBreakLbl,FCKLang.PageBreak,null,false,true,43);break;case 'Rule':B=new FCKToolbarButton('Rule',FCKLang.InsertLineLbl,FCKLang.InsertLine,null,false,true,40);break;case 'JustifyLeft':B=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify,null,null,false,true,30);break;case 'JustifyCenter':B=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify,null,null,false,true,31);break;case 'JustifyRight':B=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify,null,null,false,true,32);break;case 'JustifyFull':B=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify,null,null,false,true,33);break;case 'Style':B=new FCKToolbarStyleCombo();break;case 'FontName':B=new FCKToolbarFontsCombo();break;case 'FontSize':B=new FCKToolbarFontSizeCombo();break;case 'FontFormat':B=new FCKToolbarFontFormatCombo();break;case 'TextColor':B=new FCKToolbarPanelButton('TextColor',FCKLang.TextColor,null,null,45);break;case 'BGColor':B=new FCKToolbarPanelButton('BGColor',FCKLang.BGColor,null,null,46);break;case 'Find':B=new FCKToolbarButton('Find',FCKLang.Find,null,null,null,null,16);break;case 'Replace':B=new FCKToolbarButton('Replace',FCKLang.Replace,null,null,null,null,17);break;case 'Form':B=new FCKToolbarButton('Form',FCKLang.Form,null,null,null,null,48);break;case 'Checkbox':B=new FCKToolbarButton('Checkbox',FCKLang.Checkbox,null,null,null,null,49);break;case 'Radio':B=new FCKToolbarButton('Radio',FCKLang.RadioButton,null,null,null,null,50);break;case 'TextField':B=new FCKToolbarButton('TextField',FCKLang.TextField,null,null,null,null,51);break;case 'Textarea':B=new FCKToolbarButton('Textarea',FCKLang.Textarea,null,null,null,null,52);break;case 'HiddenField':B=new FCKToolbarButton('HiddenField',FCKLang.HiddenField,null,null,null,null,56);break;case 'Button':B=new FCKToolbarButton('Button',FCKLang.Button,null,null,null,null,54);break;case 'Select':B=new FCKToolbarButton('Select',FCKLang.SelectionField,null,null,null,null,53);break;case 'ImageButton':B=new FCKToolbarButton('ImageButton',FCKLang.ImageButton,null,null,null,null,55);break;case 'ShowBlocks':B=new FCKToolbarButton('ShowBlocks',FCKLang.ShowBlocks,null,null,null,true,72);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;}; +var FCKToolbar=function(){this.Items=[];};FCKToolbar.prototype.AddItem=function(A){return this.Items[this.Items.length]=A;};FCKToolbar.prototype.AddButton=function(A,B,C,D,E,F){if (typeof(D)=='number') D=[this.DefaultIconsStrip,this.DefaultIconSize,D];var G=new FCKToolbarButtonUI(A,B,C,D,E,F);G._FCKToolbar=this;G.OnClick=FCKToolbar_OnItemClick;return this.AddItem(G);};function FCKToolbar_OnItemClick(A){var B=A._FCKToolbar;if (B.OnItemClick) B.OnItemClick(B,A);};FCKToolbar.prototype.AddSeparator=function(){this.AddItem(new FCKToolbarSeparator());};FCKToolbar.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var e=B.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=(FCKLang.Dir=='ltr'?'left':'right');e.dir=FCKLang.Dir;e.cellPadding=0;e.cellSpacing=0;var C=e.insertRow(-1);var D;if (!this.HideStart){D=C.insertCell(-1);D.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i<this.Items.length;i++){this.Items[i].Create(C.insertCell(-1));};if (!this.HideEnd){D=C.insertCell(-1);D.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';} var FCKToolbarBreak=function(){};FCKToolbarBreak.prototype.Create=function(A){var B=A.ownerDocument.createElement('div');B.style.clear=B.style.cssFloat=FCKLang.Dir=='rtl'?'right':'left';A.appendChild(B);} -function FCKToolbarSet_Create(A){var B;var C=A||FCKConfig.ToolbarLocation;switch (C){case 'In':document.getElementById('xToolbarRow').style.display='';B=new FCKToolbarSet(document);break;default:FCK.Events.AttachEvent('OnBlur',FCK_OnBlur);FCK.Events.AttachEvent('OnFocus',FCK_OnFocus);var D;var E=C.match(/^Out:(.+)\((\w+)\)$/);if (E){D=eval('parent.'+E[1]).document.getElementById(E[2]);}else{E=C.match(/^Out:(\w+)$/);if (E) D=parent.document.getElementById(E[1]);};if (!D){alert('Invalid value for "ToolbarLocation"');return this._Init('In');};B=D.__FCKToolbarSet;if (B) break;var F=FCKTools.GetElementDocument(D).createElement('iframe');F.frameBorder=0;F.width='100%';F.height='10';D.appendChild(F);F.unselectable='on';var G=F.contentWindow.document;G.open();G.write('<html><head><script type="text/javascript"> window.onload = window.onresize = function() { window.frameElement.height = document.body.scrollHeight ; } </script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');G.close();G.oncontextmenu=FCKTools.CancelEvent;FCKTools.AppendStyleSheet(G,FCKConfig.SkinPath+'fck_editor.css');B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;FCK.AttachToOnSelectionChange(B.RefreshItemsState);return B;};function FCK_OnBlur(A){var B=A.ToolbarSet;if (B.CurrentInstance==A) B.Disable();};function FCK_OnFocus(A){var B=A.ToolbarSet;var C=A||FCK;B.CurrentInstance.FocusManager.RemoveWindow(B._IFrame.contentWindow);B.CurrentInstance=C;C.FocusManager.AddWindow(B._IFrame.contentWindow,true);B.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;B.onclick=FCKToolbarSet_Expand_OnClick;C.title=FCKLang.ToolbarCollapse;C.onclick=FCKToolbarSet_Collapse_OnClick;if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();C.style.display=FCKConfig.ToolbarCanCollapse?'':'none';if (FCKConfig.ToolbarCanCollapse) C.style.display='';else A.getElementById('xTBLeftBorder').style.display='';this.Toolbars=[];this.IsLoaded=false;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarSet_Cleanup);};function FCKToolbarSet_Expand_OnClick(){FCK.ToolbarSet.Expand();};function FCKToolbarSet_Collapse_OnClick(){FCK.ToolbarSet.Collapse();};FCKToolbarSet.prototype.Expand=function(){this._ChangeVisibility(false);};FCKToolbarSet.prototype.Collapse=function(){this._ChangeVisibility(true);};FCKToolbarSet.prototype._ChangeVisibility=function(A){this._Document.getElementById('xCollapsed').style.display=A?'':'none';this._Document.getElementById('xExpanded').style.display=A?'none':'';if (FCKBrowserInfo.IsGecko){FCKTools.RunFunction(window.onresize);}};FCKToolbarSet.prototype.Load=function(A){this.Name=A;this.Items=[];this.ItemsWysiwygOnly=[];this.ItemsContextSensitive=[];this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=[];for (var x=0;x<B.length;x++){var C=B[x];var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j<C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);this.Items.push(F);if (!F.SourceView) this.ItemsWysiwygOnly.push(F);if (F.ContextSensitive) this.ItemsContextSensitive.push(F);}}}};D.Create(this._TargetElement);this.Toolbars[this.Toolbars.length]=D;};FCKTools.DisableSelection(this._Document.getElementById('xCollapseHandle').parentNode);if (FCK.Status!=2) FCK.Events.AttachEvent('OnStatusChange',this.RefreshModeState);else this.RefreshModeState();this.IsLoaded=true;this.IsEnabled=true;FCKTools.RunFunction(this.OnLoad);};FCKToolbarSet.prototype.Enable=function(){if (this.IsEnabled) return;this.IsEnabled=true;var A=this.Items;for (var i=0;i<A.length;i++) A[i].RefreshState();};FCKToolbarSet.prototype.Disable=function(){if (!this.IsEnabled) return;this.IsEnabled=false;var A=this.Items;for (var i=0;i<A.length;i++) A[i].Disable();};FCKToolbarSet.prototype.RefreshModeState=function(A){if (FCK.Status!=2) return;var B=A?A.ToolbarSet:this;var C=B.ItemsWysiwygOnly;if (FCK.EditMode==0){for (var i=0;i<C.length;i++) C[i].Enable();B.RefreshItemsState(A);}else{B.RefreshItemsState(A);for (var j=0;j<C.length;j++) C[j].Disable();}};FCKToolbarSet.prototype.RefreshItemsState=function(A){var B=(A?A.ToolbarSet:this).ItemsContextSensitive;for (var i=0;i<B.length;i++) B[i].RefreshState();}; +function FCKToolbarSet_Create(A){var B;var C=A||FCKConfig.ToolbarLocation;switch (C){case 'In':document.getElementById('xToolbarRow').style.display='';B=new FCKToolbarSet(document);break;case 'None':B=new FCKToolbarSet(document);break;default:FCK.Events.AttachEvent('OnBlur',FCK_OnBlur);FCK.Events.AttachEvent('OnFocus',FCK_OnFocus);var D;var E=C.match(/^Out:(.+)\((\w+)\)$/);if (E){D=eval('parent.'+E[1]).document.getElementById(E[2]);}else{E=C.match(/^Out:(\w+)$/);if (E) D=parent.document.getElementById(E[1]);};if (!D){alert('Invalid value for "ToolbarLocation"');return arguments.callee('In');};B=D.__FCKToolbarSet;if (B) break;var F=FCKTools.GetElementDocument(D).createElement('iframe');F.src='javascript:void(0)';F.frameBorder=0;F.width='100%';F.height='10';D.appendChild(F);F.unselectable='on';var G=F.contentWindow.document;var H='';if (FCKBrowserInfo.IsSafari) H='<base href="'+window.document.location+'">';G.open();G.write('<html><head>'+H+'<script type="text/javascript"> var adjust = function() { window.frameElement.height = document.body.scrollHeight ; }; window.onresize = adjust; window.onload = function () {window.setTimeout( adjust, 0 );}</script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');G.close();FCKTools.AddEventListener(G,'contextmenu',FCKTools.CancelEvent);FCKTools.AppendStyleSheet(G,FCKConfig.SkinPath+'fck_editor.css');B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;FCK.AttachToOnSelectionChange(B.RefreshItemsState);return B;};function FCK_OnBlur(A){var B=A.ToolbarSet;if (B.CurrentInstance==A) B.Disable();};function FCK_OnFocus(A){var B=A.ToolbarSet;var C=A||FCK;B.CurrentInstance.FocusManager.RemoveWindow(B._IFrame.contentWindow);B.CurrentInstance=C;C.FocusManager.AddWindow(B._IFrame.contentWindow,true);B.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;FCKTools.AddEventListener(B,'click',FCKToolbarSet_Expand_OnClick);C.title=FCKLang.ToolbarCollapse;FCKTools.AddEventListener(C,'click',FCKToolbarSet_Collapse_OnClick);if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();C.style.display=FCKConfig.ToolbarCanCollapse?'':'none';if (FCKConfig.ToolbarCanCollapse) C.style.display='';else A.getElementById('xTBLeftBorder').style.display='';this.Toolbars=[];this.IsLoaded=false;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarSet_Cleanup);};function FCKToolbarSet_Expand_OnClick(){FCK.ToolbarSet.Expand();};function FCKToolbarSet_Collapse_OnClick(){FCK.ToolbarSet.Collapse();};FCKToolbarSet.prototype.Expand=function(){this._ChangeVisibility(false);};FCKToolbarSet.prototype.Collapse=function(){this._ChangeVisibility(true);};FCKToolbarSet.prototype._ChangeVisibility=function(A){this._Document.getElementById('xCollapsed').style.display=A?'':'none';this._Document.getElementById('xExpanded').style.display=A?'none':'';if (FCKBrowserInfo.IsGecko){FCKTools.RunFunction(window.onresize);}};FCKToolbarSet.prototype.Load=function(A){this.Name=A;this.Items=[];this.ItemsWysiwygOnly=[];this.ItemsContextSensitive=[];this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=[];for (var x=0;x<B.length;x++){var C=B[x];if (!C) continue;var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j<C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);this.Items.push(F);if (!F.SourceView) this.ItemsWysiwygOnly.push(F);if (F.ContextSensitive) this.ItemsContextSensitive.push(F);}}}};D.Create(this._TargetElement);this.Toolbars[this.Toolbars.length]=D;};FCKTools.DisableSelection(this._Document.getElementById('xCollapseHandle').parentNode);if (FCK.Status!=2) FCK.Events.AttachEvent('OnStatusChange',this.RefreshModeState);else this.RefreshModeState();this.IsLoaded=true;this.IsEnabled=true;FCKTools.RunFunction(this.OnLoad);};FCKToolbarSet.prototype.Enable=function(){if (this.IsEnabled) return;this.IsEnabled=true;var A=this.Items;for (var i=0;i<A.length;i++) A[i].RefreshState();};FCKToolbarSet.prototype.Disable=function(){if (!this.IsEnabled) return;this.IsEnabled=false;var A=this.Items;for (var i=0;i<A.length;i++) A[i].Disable();};FCKToolbarSet.prototype.RefreshModeState=function(A){if (FCK.Status!=2) return;var B=A?A.ToolbarSet:this;var C=B.ItemsWysiwygOnly;if (FCK.EditMode==0){for (var i=0;i<C.length;i++) C[i].Enable();B.RefreshItemsState(A);}else{B.RefreshItemsState(A);for (var j=0;j<C.length;j++) C[j].Disable();}};FCKToolbarSet.prototype.RefreshItemsState=function(A){var B=(A?A.ToolbarSet:this).ItemsContextSensitive;for (var i=0;i<B.length;i++) B[i].RefreshState();}; var FCKDialog={};FCKDialog.OpenDialog=function(A,B,C,D,E,F,G,H){var I={};I.Title=B;I.Page=C;I.Editor=window;I.CustomValue=F;var J=FCKConfig.BasePath+'fckdialog.html';this.Show(I,A,J,D,E,G,H);}; -FCKDialog.Show=function(A,B,C,D,E,F,G){var H=(FCKConfig.ScreenHeight-E)/2;var I=(FCKConfig.ScreenWidth-D)/2;var J="location=no,menubar=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable="+(G?'yes':'no')+",width="+D+",height="+E+",top="+H+",left="+I;if (!F) F=window;FCKFocusManager.Lock();var K=F.open('','FCKeditorDialog_'+B,J,true);if (!K){alert(FCKLang.DialogBlocked);FCKFocusManager.Unlock();return;};K.moveTo(I,H);K.resizeTo(D,E);K.focus();K.location.href=C;K.dialogArguments=A;F.FCKLastDialogInfo=A;this.Window=K;try{window.top.parent.addEventListener('mousedown',this.CheckFocus,true);window.top.parent.addEventListener('mouseup',this.CheckFocus,true);window.top.parent.addEventListener('click',this.CheckFocus,true);window.top.parent.addEventListener('focus',this.CheckFocus,true);}catch (e){}};FCKDialog.CheckFocus=function(){if (typeof(FCKDialog)!="object") return false;if (FCKDialog.Window&&!FCKDialog.Window.closed) FCKDialog.Window.focus();else{try{window.top.parent.removeEventListener('onmousedown',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('mouseup',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('click',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('onfocus',FCKDialog.CheckFocus,true);}catch (e){}};return false;}; +FCKDialog.Show=function(A,B,C,D,E,F,G){var H=(FCKConfig.ScreenHeight-E)/2;var I=(FCKConfig.ScreenWidth-D)/2;var J="location=no,menubar=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,alwaysRaised=yes,resizable="+(G?'yes':'no')+",width="+D+",height="+E+",top="+H+",left="+I;if (!F) F=window;FCKFocusManager.Lock();var K=F.open('','FCKeditorDialog_'+B,J,true);if (!K){alert(FCKLang.DialogBlocked);FCKFocusManager.Unlock();return;};K.moveTo(I,H);K.resizeTo(D,E);K.focus();K.location.href=C;K.dialogArguments=A;F.FCKLastDialogInfo=A;this.Window=K;try{window.top.parent.addEventListener('mousedown',this.CheckFocus,true);window.top.parent.addEventListener('mouseup',this.CheckFocus,true);window.top.parent.addEventListener('click',this.CheckFocus,true);window.top.parent.addEventListener('focus',this.CheckFocus,true);}catch (e){}};FCKDialog.CheckFocus=function(){if (typeof(FCKDialog)!="object") return false;if (FCKDialog.Window&&!FCKDialog.Window.closed) FCKDialog.Window.focus();else{try{window.top.parent.removeEventListener('onmousedown',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('mouseup',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('click',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('onfocus',FCKDialog.CheckFocus,true);}catch (e){}};return false;}; var FCKMenuItem=function(A,B,C,D,E){this.Name=B;this.Label=C||B;this.IsDisabled=E;this.Icon=new FCKIcon(D);this.SubMenu=new FCKMenuBlockPanel();this.SubMenu.Parent=A;this.SubMenu.OnClick=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnClick,this);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D);};FCKMenuItem.prototype.AddSeparator=function(){this.SubMenu.AddSeparator();};FCKMenuItem.prototype.Create=function(A){var B=this.HasSubMenu;var C=FCKTools.GetElementDocument(A);var r=this.MainElement=A.insertRow(-1);r.className=this.IsDisabled?'MN_Item_Disabled':'MN_Item';if (!this.IsDisabled){FCKTools.AddEventListenerEx(r,'mouseover',FCKMenuItem_OnMouseOver,[this]);FCKTools.AddEventListenerEx(r,'click',FCKMenuItem_OnClick,[this]);if (!B) FCKTools.AddEventListenerEx(r,'mouseout',FCKMenuItem_OnMouseOut,[this]);};var D=r.insertCell(-1);D.className='MN_Icon';D.appendChild(this.Icon.CreateIconElement(C));D=r.insertCell(-1);D.className='MN_Label';D.noWrap=true;D.appendChild(C.createTextNode(this.Label));D=r.insertCell(-1);if (B){D.className='MN_Arrow';var E=D.appendChild(C.createElement('IMG'));E.src=FCK_IMAGES_PATH+'arrow_'+FCKLang.Dir+'.gif';E.width=4;E.height=7;this.SubMenu.Create();this.SubMenu.Panel.OnHide=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnHide,this);}};FCKMenuItem.prototype.Activate=function(){this.MainElement.className='MN_Item_Over';if (this.HasSubMenu){this.SubMenu.Show(this.MainElement.offsetWidth+2,-2,this.MainElement);};FCKTools.RunFunction(this.OnActivate,this);};FCKMenuItem.prototype.Deactivate=function(){this.MainElement.className='MN_Item';if (this.HasSubMenu) this.SubMenu.Hide();};function FCKMenuItem_SubMenu_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuItem_SubMenu_OnHide(A){A.Deactivate();};function FCKMenuItem_OnClick(A,B){if (B.HasSubMenu) B.Activate();else{B.Deactivate();FCKTools.RunFunction(B.OnClick,B,[B]);}};function FCKMenuItem_OnMouseOver(A,B){B.Activate();};function FCKMenuItem_OnMouseOut(A,B){B.Deactivate();};function FCKMenuItem_Cleanup(){this.MainElement=null;} -var FCKMenuBlock=function(){this._Items=[];};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D){var E=new FCKMenuItem(this,A,B,C,D);E.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);E.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(E);return E;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=[];var A=this._ItemsTable;if (A){while (A.rows.length>0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i<this._Items.length;i++) this._Items[i].Create(this._ItemsTable);};function FCKMenuBlock_Item_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuBlock_Item_OnActivate(A){var B=A._ActiveItem;if (B&&B!=this){if (!FCKBrowserInfo.IsIE&&B.HasSubMenu&&!this.HasSubMenu) A._Window.focus();B.Deactivate();};A._ActiveItem=this;};function FCKMenuBlock_Cleanup(){this._Window=null;this._ItemsTable=null;};var FCKMenuSeparator=function(){};FCKMenuSeparator.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var r=A.insertRow(-1);var C=r.insertCell(-1);C.className='MN_Separator MN_Icon';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';} +var FCKMenuBlock=function(){this._Items=[];};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D){var E=new FCKMenuItem(this,A,B,C,D);E.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);E.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(E);return E;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=[];var A=this._ItemsTable;if (A){while (A.rows.length>0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i<this._Items.length;i++) this._Items[i].Create(this._ItemsTable);};function FCKMenuBlock_Item_OnClick(A,B){if (B.Hide) B.Hide();FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuBlock_Item_OnActivate(A){var B=A._ActiveItem;if (B&&B!=this){if (!FCKBrowserInfo.IsIE&&B.HasSubMenu&&!this.HasSubMenu){A._Window.focus();A.Panel.HasFocus=true;};B.Deactivate();};A._ActiveItem=this;};function FCKMenuBlock_Cleanup(){this._Window=null;this._ItemsTable=null;};var FCKMenuSeparator=function(){};FCKMenuSeparator.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var r=A.insertRow(-1);var C=r.insertCell(-1);C.className='MN_Separator MN_Icon';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';} var FCKMenuBlockPanel=function(){FCKMenuBlock.call(this);};FCKMenuBlockPanel.prototype=new FCKMenuBlock();FCKMenuBlockPanel.prototype.Create=function(){var A=this.Panel=(this.Parent&&this.Parent.Panel?this.Parent.Panel.CreateChildPanel():new FCKPanel());A.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');FCKMenuBlock.prototype.Create.call(this,A.MainNode);};FCKMenuBlockPanel.prototype.Show=function(x,y,A){if (!this.Panel.CheckIsOpened()) this.Panel.Show(x,y,A);};FCKMenuBlockPanel.prototype.Hide=function(){if (this.Panel.CheckIsOpened()) this.Panel.Hide();} -var FCKContextMenu=function(A,B){var C=this._Panel=new FCKPanel(A,true);C.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');C.IsContextMenu=true;var D=this._MenuBlock=new FCKMenuBlock();D.Panel=C;D.OnClick=FCKTools.CreateEventListener(FCKContextMenu_MenuBlock_OnClick,this);this._Redraw=true;};FCKContextMenu.prototype.SetMouseClickWindow=function(A){if (!FCKBrowserInfo.IsIE){this._Document=A.document;this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D){var E=this._MenuBlock.AddItem(A,B,C,D);this._Redraw=true;return E;};FCKContextMenu.prototype.AddSeparator=function(){this._MenuBlock.AddSeparator();this._Redraw=true;};FCKContextMenu.prototype.RemoveAllItems=function(){this._MenuBlock.RemoveAllItems();this._Redraw=true;};FCKContextMenu.prototype.AttachToElement=function(A){if (FCKBrowserInfo.IsIE) FCKTools.AddEventListenerEx(A,'contextmenu',FCKContextMenu_AttachedElement_OnContextMenu,this);else A._FCKContextMenu=this;};function FCKContextMenu_Document_OnContextMenu(e){var A=e.target;while (A){if (A._FCKContextMenu){FCKTools.CancelEvent(e);FCKContextMenu_AttachedElement_OnContextMenu(e,A._FCKContextMenu,A);};A=A.parentNode;}};function FCKContextMenu_AttachedElement_OnContextMenu(A,B,C){var D=C||this;if (B.OnBeforeOpen) B.OnBeforeOpen.call(B,D);if (B._MenuBlock.Count()==0) return false;if (B._Redraw){B._MenuBlock.Create(B._Panel.MainNode);B._Redraw=false;};B._Panel.Show(A.pageX||A.screenX,A.pageY||A.screenY,A.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(A,B){B._Panel.Hide();FCKTools.RunFunction(B.OnItemClick,B,A);} -FCK.ContextMenu={};FCK.ContextMenu.Listeners=[];FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var A=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCKLang.Dir);A.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;A.OnItemClick=FCK_ContextMenu_OnItemClick;var B=FCK.ContextMenu;for (var i=0;i<FCKConfig.ContextMenu.length;i++) B.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(A){switch (A){case 'Generic':return {AddItems:function(menu,tag,tagName){menu.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==-1);menu.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==-1);menu.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==-1);}};case 'Table':return {AddItems:function(menu,tag,tagName){var B=(tagName=='TABLE');var C=(!B&&FCKSelection.HasAncestorNode('TABLE'));if (C){menu.AddSeparator();var D=menu.AddItem('Cell',FCKLang.CellCM);D.AddItem('TableInsertCell',FCKLang.InsertCell,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);D.AddItem('TableMergeCells',FCKLang.MergeCells,60);D.AddItem('TableSplitCell',FCKLang.SplitCell,61);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRow',FCKLang.InsertRow,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumn',FCKLang.InsertColumn,64);D.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (B||C){menu.AddSeparator();menu.AddItem('TableDelete',FCKLang.TableDelete);menu.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(menu,tag,tagName){var E=(tagName=='A'||FCKSelection.HasAncestorNode('A'));if (E||FCK.GetNamedCommandState('Unlink')!=-1){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0&&F.href.length==0);if (G) return;menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0);if (G||(tagName=='IMG'&&tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='hidden'){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i<C.length;i++) C[i].AddItems(B,A,sTagName);};function FCK_ContextMenu_OnItemClick(A){FCK.Focus();FCKCommands.GetCommand(A.Name).Execute();}; +var FCKContextMenu=function(A,B){this.CtrlDisable=false;var C=this._Panel=new FCKPanel(A);C.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');C.IsContextMenu=true;if (FCKBrowserInfo.IsGecko) C.Document.addEventListener('draggesture',function(e) {e.preventDefault();return false;},true);var D=this._MenuBlock=new FCKMenuBlock();D.Panel=C;D.OnClick=FCKTools.CreateEventListener(FCKContextMenu_MenuBlock_OnClick,this);this._Redraw=true;};FCKContextMenu.prototype.SetMouseClickWindow=function(A){if (!FCKBrowserInfo.IsIE){this._Document=A.document;if (FCKBrowserInfo.IsOpera&&!('oncontextmenu' in document.createElement('foo'))){this._Document.addEventListener('mousedown',FCKContextMenu_Document_OnMouseDown,false);this._Document.addEventListener('mouseup',FCKContextMenu_Document_OnMouseUp,false);};this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D){var E=this._MenuBlock.AddItem(A,B,C,D);this._Redraw=true;return E;};FCKContextMenu.prototype.AddSeparator=function(){this._MenuBlock.AddSeparator();this._Redraw=true;};FCKContextMenu.prototype.RemoveAllItems=function(){this._MenuBlock.RemoveAllItems();this._Redraw=true;};FCKContextMenu.prototype.AttachToElement=function(A){if (FCKBrowserInfo.IsIE) FCKTools.AddEventListenerEx(A,'contextmenu',FCKContextMenu_AttachedElement_OnContextMenu,this);else A._FCKContextMenu=this;};function FCKContextMenu_Document_OnContextMenu(e){var A=e.target;while (A){if (A._FCKContextMenu){if (A._FCKContextMenu.CtrlDisable&&(e.ctrlKey||e.metaKey)) return true;FCKTools.CancelEvent(e);FCKContextMenu_AttachedElement_OnContextMenu(e,A._FCKContextMenu,A);return false;};A=A.parentNode;};return true;};var FCKContextMenu_OverrideButton;function FCKContextMenu_Document_OnMouseDown(e){if(!e||e.button!=2) return false;var A=e.target;while (A){if (A._FCKContextMenu){if (A._FCKContextMenu.CtrlDisable&&(e.ctrlKey||e.metaKey)) return true;var B=FCKContextMenu_OverrideButton;if(!B){var C=e.target.ownerDocument;B=FCKContextMenu_OverrideButton=C.createElement('input');B.type='button';var D=C.createElement('p');C.body.appendChild(D);D.appendChild(B);};B.style.cssText='position:absolute;top:'+(e.clientY-2)+'px;left:'+(e.clientX-2)+'px;width:5px;height:5px;opacity:0.01';};A=A.parentNode;};return false;};function FCKContextMenu_Document_OnMouseUp(e){var A=FCKContextMenu_OverrideButton;if (A){var B=A.parentNode;B.parentNode.removeChild(B);FCKContextMenu_OverrideButton=undefined;if(e&&e.button==2){FCKContextMenu_Document_OnContextMenu(e);return false;}}};function FCKContextMenu_AttachedElement_OnContextMenu(A,B,C){if (B.CtrlDisable&&(A.ctrlKey||A.metaKey)) return true;var D=C||this;if (B.OnBeforeOpen) B.OnBeforeOpen.call(B,D);if (B._MenuBlock.Count()==0) return false;if (B._Redraw){B._MenuBlock.Create(B._Panel.MainNode);B._Redraw=false;};FCKTools.DisableSelection(B._Panel.Document.body);var x=0;var y=0;if (FCKBrowserInfo.IsIE){x=A.screenX;y=A.screenY;}else if (FCKBrowserInfo.IsSafari){x=A.clientX;y=A.clientY;}else{x=A.pageX;y=A.pageY;};B._Panel.Show(x,y,A.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(A,B){B._Panel.Hide();FCKTools.RunFunction(B.OnItemClick,B,A);}; +FCK.ContextMenu={};FCK.ContextMenu.Listeners=[];FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var A=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCKLang.Dir);A.CtrlDisable=FCKConfig.BrowserContextMenuOnCtrl;A.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;A.OnItemClick=FCK_ContextMenu_OnItemClick;var B=FCK.ContextMenu;for (var i=0;i<FCKConfig.ContextMenu.length;i++) B.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(A){switch (A){case 'Generic':return {AddItems:function(menu,tag,tagName){menu.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==-1);menu.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==-1);menu.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==-1);}};case 'Table':return {AddItems:function(menu,tag,tagName){var B=(tagName=='TABLE');var C=(!B&&FCKSelection.HasAncestorNode('TABLE'));if (C){menu.AddSeparator();var D=menu.AddItem('Cell',FCKLang.CellCM);D.AddItem('TableInsertCellBefore',FCKLang.InsertCellBefore,69);D.AddItem('TableInsertCellAfter',FCKLang.InsertCellAfter,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);if (FCKBrowserInfo.IsGecko) D.AddItem('TableMergeCells',FCKLang.MergeCells,60,FCKCommands.GetCommand('TableMergeCells').GetState()==-1);else{D.AddItem('TableMergeRight',FCKLang.MergeRight,60,FCKCommands.GetCommand('TableMergeRight').GetState()==-1);D.AddItem('TableMergeDown',FCKLang.MergeDown,60,FCKCommands.GetCommand('TableMergeDown').GetState()==-1);};D.AddItem('TableHorizontalSplitCell',FCKLang.HorizontalSplitCell,61,FCKCommands.GetCommand('TableHorizontalSplitCell').GetState()==-1);D.AddItem('TableVerticalSplitCell',FCKLang.VerticalSplitCell,61,FCKCommands.GetCommand('TableVerticalSplitCell').GetState()==-1);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57,FCKCommands.GetCommand('TableCellProp').GetState()==-1);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRowBefore',FCKLang.InsertRowBefore,70);D.AddItem('TableInsertRowAfter',FCKLang.InsertRowAfter,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumnBefore',FCKLang.InsertColumnBefore,71);D.AddItem('TableInsertColumnAfter',FCKLang.InsertColumnAfter,64);D.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (B||C){menu.AddSeparator();menu.AddItem('TableDelete',FCKLang.TableDelete);menu.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(menu,tag,tagName){var E=(tagName=='A'||FCKSelection.HasAncestorNode('A'));if (E||FCK.GetNamedCommandState('Unlink')!=-1){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0&&F.href.length==0);if (G) return;menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0);if (G||(tagName=='IMG'&&tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);menu.AddItem('AnchorDelete',FCKLang.AnchorDelete);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckinputhidden')){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i<C.length;i++) C[i].AddItems(B,A,sTagName);};function FCK_ContextMenu_OnItemClick(A){FCK.Focus();FCKCommands.GetCommand(A.Name).Execute();}; var FCKPlugin=function(A,B,C){this.Name=A;this.BasePath=C?C:FCKConfig.PluginsPath;this.Path=this.BasePath+A+'/';if (!B||B.length==0) this.AvailableLangs=[];else this.AvailableLangs=B.split(',');};FCKPlugin.prototype.Load=function(){if (this.AvailableLangs.length>0){var A;if (this.AvailableLangs.IndexOf(FCKLanguageManager.ActiveLanguage.Code)>=0) A=FCKLanguageManager.ActiveLanguage.Code;else A=this.AvailableLangs[0];LoadScript(this.Path+'lang/'+A+'.js');};LoadScript(this.Path+'fckplugin.js');} var FCKPlugins=FCK.Plugins={};FCKPlugins.ItemsCount=0;FCKPlugins.Items={};FCKPlugins.Load=function(){var A=FCKPlugins.Items;for (var i=0;i<FCKConfig.Plugins.Items.length;i++){var B=FCKConfig.Plugins.Items[i];var C=A[B[0]]=new FCKPlugin(B[0],B[1],B[2]);FCKPlugins.ItemsCount++;};for (var s in A) A[s].Load();FCKPlugins.Load=null;} diff --git a/editor/editor/js/fckeditorcode_ie.js b/editor/editor/js/fckeditorcode_ie.js @@ -17,81 +17,93 @@ * http://www.mozilla.org/MPL/MPL-1.1.html * * == END LICENSE == - * - * This file has been compacted for better loading performance. + * + * This file has been compressed for better performance. The original source + * can be found at "editor/_source". */ - -var FCK_STATUS_NOTLOADED=window.parent.FCK_STATUS_NOTLOADED=0;var FCK_STATUS_ACTIVE=window.parent.FCK_STATUS_ACTIVE=1;var FCK_STATUS_COMPLETE=window.parent.FCK_STATUS_COMPLETE=2;var FCK_TRISTATE_OFF=window.parent.FCK_TRISTATE_OFF=0;var FCK_TRISTATE_ON=window.parent.FCK_TRISTATE_ON=1;var FCK_TRISTATE_DISABLED=window.parent.FCK_TRISTATE_DISABLED=-1;var FCK_UNKNOWN=window.parent.FCK_UNKNOWN=-9;var FCK_TOOLBARITEM_ONLYICON=window.parent.FCK_TOOLBARITEM_ONLYICON=0;var FCK_TOOLBARITEM_ONLYTEXT=window.parent.FCK_TOOLBARITEM_ONLYTEXT=1;var FCK_TOOLBARITEM_ICONTEXT=window.parent.FCK_TOOLBARITEM_ICONTEXT=2;var FCK_EDITMODE_WYSIWYG=window.parent.FCK_EDITMODE_WYSIWYG=0;var FCK_EDITMODE_SOURCE=window.parent.FCK_EDITMODE_SOURCE=1;var FCK_IMAGES_PATH='images/';var FCK_SPACER_PATH='images/spacer.gif';var CTRL=1000;var SHIFT=2000;var ALT=4000; -String.prototype.Contains=function(A){return (this.indexOf(A)>-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&&A[0].pop) A=A[0];for (var i=0;i<A.length;i++){if (this==A[i]) return true;};return false;};String.prototype.IEquals=function(){var A=this.toUpperCase();var B=arguments;if (B.length==1&&B[0].pop) B=B[0];for (var i=0;i<B.length;i++){if (A==B[i].toUpperCase()) return true;};return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i<A.length;i++){C=C.replace(A[i],B[i]);};return C;};Array.prototype.AddItem=function(A){var i=this.length;this[i]=A;return i;};Array.prototype.IndexOf=function(A){for (var i=0;i<this.length;i++){if (this[i]==A) return i;};return-1;};String.prototype.StartsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.EndsWith=function(A,B){var C=this.length;var D=A.length;if (D>C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A>0) s=this.substring(0,A);if (A+B<this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.Trim=function(){return this.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,'');};String.prototype.LTrim=function(){return this.replace(/^[ \t\n\r]*/g,'');};String.prototype.RTrim=function(){return this.replace(/[ \t\n\r]*$/g,'');};String.prototype.ReplaceNewLineChars=function(A){return this.replace(/\n/g,A);} -var FCKIECleanup=function(A){if (A._FCKCleanupObj) this.Items=A._FCKCleanupObj.Items;else{this.Items=[];A._FCKCleanupObj=this;FCKTools.AddEventListenerEx(A,'unload',FCKIECleanup_Cleanup);}};FCKIECleanup.prototype.AddItem=function(A,B){this.Items.push([A,B]);};function FCKIECleanup_Cleanup(){if (!this._FCKCleanupObj) return;var A=this._FCKCleanupObj.Items;while (A.length>0){var B=A.pop();if (B) B[1].call(B[0]);};this._FCKCleanupObj=null;if (CollectGarbage) CollectGarbage();} -var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:s.Contains('msie'),IsIE7:s.Contains('msie 7'),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains('safari'),IsOpera:s.Contains('opera'),IsMac:s.Contains('macintosh')};(function(A){A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/gecko\/(\d+)/)[1];A.IsGecko10=B<20051111;}else A.IsGecko10=false;})(FCKBrowserInfo); + +var FCK_STATUS_NOTLOADED=window.parent.FCK_STATUS_NOTLOADED=0;var FCK_STATUS_ACTIVE=window.parent.FCK_STATUS_ACTIVE=1;var FCK_STATUS_COMPLETE=window.parent.FCK_STATUS_COMPLETE=2;var FCK_TRISTATE_OFF=window.parent.FCK_TRISTATE_OFF=0;var FCK_TRISTATE_ON=window.parent.FCK_TRISTATE_ON=1;var FCK_TRISTATE_DISABLED=window.parent.FCK_TRISTATE_DISABLED=-1;var FCK_UNKNOWN=window.parent.FCK_UNKNOWN=-9;var FCK_TOOLBARITEM_ONLYICON=window.parent.FCK_TOOLBARITEM_ONLYICON=0;var FCK_TOOLBARITEM_ONLYTEXT=window.parent.FCK_TOOLBARITEM_ONLYTEXT=1;var FCK_TOOLBARITEM_ICONTEXT=window.parent.FCK_TOOLBARITEM_ICONTEXT=2;var FCK_EDITMODE_WYSIWYG=window.parent.FCK_EDITMODE_WYSIWYG=0;var FCK_EDITMODE_SOURCE=window.parent.FCK_EDITMODE_SOURCE=1;var FCK_IMAGES_PATH='images/';var FCK_SPACER_PATH='images/spacer.gif';var CTRL=1000;var SHIFT=2000;var ALT=4000;var FCK_STYLE_BLOCK=0;var FCK_STYLE_INLINE=1;var FCK_STYLE_OBJECT=2; +String.prototype.Contains=function(A){return (this.indexOf(A)>-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&&A[0].pop) A=A[0];for (var i=0;i<A.length;i++){if (this==A[i]) return true;};return false;};String.prototype.IEquals=function(){var A=this.toUpperCase();var B=arguments;if (B.length==1&&B[0].pop) B=B[0];for (var i=0;i<B.length;i++){if (A==B[i].toUpperCase()) return true;};return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i<A.length;i++){C=C.replace(A[i],B[i]);};return C;};String.prototype.StartsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.EndsWith=function(A,B){var C=this.length;var D=A.length;if (D>C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A>0) s=this.substring(0,A);if (A+B<this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.Trim=function(){return this.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,'');};String.prototype.LTrim=function(){return this.replace(/^[ \t\n\r]*/g,'');};String.prototype.RTrim=function(){return this.replace(/[ \t\n\r]*$/g,'');};String.prototype.ReplaceNewLineChars=function(A){return this.replace(/\n/g,A);};String.prototype.Replace=function(A,B,C){if (typeof B=='function'){return this.replace(A,function(){return B.apply(C||this,arguments);});}else return this.replace(A,B);};Array.prototype.AddItem=function(A){var i=this.length;this[i]=A;return i;};Array.prototype.IndexOf=function(A){for (var i=0;i<this.length;i++){if (this[i]==A) return i;};return-1;}; +var FCKIECleanup=function(A){if (A._FCKCleanupObj) this.Items=A._FCKCleanupObj.Items;else{this.Items=[];A._FCKCleanupObj=this;FCKTools.AddEventListenerEx(A,'unload',FCKIECleanup_Cleanup);}};FCKIECleanup.prototype.AddItem=function(A,B){this.Items.push([A,B]);};function FCKIECleanup_Cleanup(){if (!this._FCKCleanupObj||!window.FCKUnloadFlag) return;var A=this._FCKCleanupObj.Items;while (A.length>0){var B=A.pop();if (B) B[1].call(B[0]);};this._FCKCleanupObj=null;if (CollectGarbage) CollectGarbage();}; +var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:/*@cc_on!@*/false,IsIE7:/*@cc_on!@*/false&&s.Contains('msie 7'),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains(' applewebkit/'),IsOpera:!!window.opera,IsMac:s.Contains('macintosh')};(function(A){A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/gecko\/(\d+)/)[1];A.IsGecko10=((B<20051111)||(/rv:1\.7/.test(s)));A.IsGecko19=/rv:1\.9/.test(s);}else A.IsGecko10=false;})(FCKBrowserInfo); var FCKURLParams={};(function(){var A=document.location.search.substr(1).split('&');for (var i=0;i<A.length;i++){var B=A[i].split('=');var C=decodeURIComponent(B[0]);var D=decodeURIComponent(B[1]);FCKURLParams[C]=D;}})(); -var FCKEvents=function(A){this.Owner=A;this._RegisteredEvents={};};FCKEvents.prototype.AttachEvent=function(A,B){var C;if (!(C=this._RegisteredEvents[A])) this._RegisteredEvents[A]=[B];else C.push(B);};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this._RegisteredEvents[A];if (D){for (var i=0;i<D.length;i++) C=(D[i](this.Owner,B)&&C);};return C;}; -var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){return (this.StartupValue!=this.EditorDocument.body.innerHTML);},ResetIsDirty:function(){if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length>0?'<base href="'+FCKConfig.BaseHref+'" _fcktemp="true"></base>':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86/*V*/) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45/*INS*/) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=false;this.SetHTML(this.GetLinkedFieldValue());},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&&A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:if (!FCKListsLib.BlockElements[D.nodeName.toLowerCase()]) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;};if (F){var G=D.parentNode;if (!E) E=G.insertBefore(B.createElement(A),D);E.appendChild(G.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetXHTML:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B;var C=FCK.EditorDocument;if (!C) return null;if (FCKConfig.FullPage) B=FCKXHtml.GetXHTML(C.getElementsByTagName('html')[0],true,A);else{if (FCKConfig.IgnoreEmptyParagraphValue&&C.body.innerHTML=='<P>&nbsp;</P>') B='';else B=FCKXHtml.GetXHTML(C.body,false,A);};B=FCK.ProtectEventsRestore(B);if (FCKBrowserInfo.IsIE) B=B.replace(FCKRegexLib.ToReplace,'$1');if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) B=FCK.DocTypeDeclaration+'\n'+B;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) B=FCK.XmlDeclaration+'\n'+B;return FCKConfig.ProtectedSource.Revert(B);},UpdateLinkedField:function(){FCK.LinkedField.value=FCK.GetXHTML(FCKConfig.FormatOutput);FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);},RegisterDoubleClickHandler:function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;},OnAfterSetHTML:function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');},ProtectUrls:function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$1$4$2$3$5$2 _fcksavedurl=$2$3$5$2');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$1$4$2$3$5$2 _fcksavedurl=$2$3$5$2');return A;},ProtectEvents:function(A){return A.replace(FCKRegexLib.TagsWithEvent,_FCK_ProtectEvents_ReplaceTags);},ProtectEventsRestore:function(A){return A.replace(FCKRegexLib.ProtectedEvents,_FCK_ProtectEvents_RestoreEvents);},ProtectTags:function(A){var B='META';if (FCKConfig.ProtectedTags.length>0) B+='|'+FCKConfig.ProtectedTags;if (FCKBrowserInfo.IsIE) B+='|ABBR';var C=new RegExp('<('+B+')([ \>])','gi');A=A.replace(C,'<FCK:$1$2');C=new RegExp('<\/('+B+')>','gi');A=A.replace(C,'<\/FCK:$1>');return A;},SetHTML:function(A){this.EditingArea.Mode=FCK.EditMode;if (FCK.EditMode==0){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCKBrowserInfo.IsGecko){A=A.replace(FCKRegexLib.StrongOpener,'<b$1');A=A.replace(FCKRegexLib.StrongCloser,'<\/b>');A=A.replace(FCKRegexLib.EmOpener,'<i$1');A=A.replace(FCKRegexLib.EmCloser,'<\/i>');};var B='';if (FCKConfig.FullPage){if (!FCKRegexLib.HeadOpener.test(A)){if (!FCKRegexLib.HtmlOpener.test(A)) A='<html dir="'+FCKConfig.ContentLangDirection+'">'+A+'</html>';A=A.replace(FCKRegexLib.HtmlOpener,'$&<head></head>');};FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (FCKBrowserInfo.IsIE) B=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) B='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';B+='<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';B=A.replace(FCKRegexLib.HeadCloser,B+'$&');if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) B=B.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);}else{B=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"';if (FCKBrowserInfo.IsIE&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) B+=' style="overflow-y: scroll"';B+='><head><title></title>'+_FCK_GetEditorAreaStyleTags()+'<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';if (FCKBrowserInfo.IsIE) B+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) B+='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';B+=FCK.TempBaseTag;var C='<body';if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) C+=' id="'+FCKConfig.BodyId+'"';if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) C+=' class="'+FCKConfig.BodyClass+'"';B+='</head>'+C+'>';if (FCKBrowserInfo.IsGecko&&(A.length==0||FCKRegexLib.EmptyParagraph.test(A))) B+=GECKO_BOGUS;else B+=A;B+='</body></html>';};this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(B);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},HasFocus:false,RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C){FCKUndo.SaveUndoStep();if (!C&&FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else return FCK.EditorDocument.queryCommandState(A)?1:0;}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A=FCKConfig.ScreenWidth*0.8;var B=FCKConfig.ScreenHeight*0.7;var C=(FCKConfig.ScreenWidth-A)/2;var D=window.open('',null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+A+',height='+B+',left='+C);var E;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) E=FCK.TempBaseTag+FCK.GetXHTML();else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body>'+FCK.GetXHTML()+'</body></html>';};D.document.write(E);D.document.close();},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C;if (B){if (!A&&FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();C=FCK.GetXHTML(FCKConfig.FormatSource);if (C==null) return false;}else C=this.EditingArea.Textarea.value;FCK.EditMode=B?1:0;FCK.SetHTML(C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},CreateElement:function(A){var e=FCK.EditorDocument.createElement(A);return FCK.InsertElementAndGetIt(e);},InsertElementAndGetIt:function(e){e.setAttribute('FCKTempLabel','true');this.InsertElement(e);var A=FCK.EditorDocument.getElementsByTagName(e.tagName);for (var i=0;i<A.length;i++){if (A[i].getAttribute('FCKTempLabel')){A[i].removeAttribute('FCKTempLabel');return A[i];}};return null;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt="'+A.ReplaceAll([/&/g,/'/g,/"/g,/=/g,/</g,/>/g,/\r/g,/\n/g],['&apos;','&#39;','&quot;','&#61;','&lt;','&gt;','&#10;','&#13;'])+'"';};function _FCK_ProtectEvents_RestoreEvents(A,B){return B.ReplaceAll([/&#39;/g,/&quot;/g,/&#61;/g,/&lt;/g,/&gt;/g,/&#10;/g,/&#13;/g,/&apos;/g],["'",'"','=','<','>','\r','\n','&']);};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();if (!FCKConfig.DisableEnterKeyHandler) FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);FCK.OnAfterSetHTML();if (FCK.Status!=0) return;FCK.ResetIsDirty();FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){var A='';var B=FCKConfig.EditorAreaCSS;for (var i=0;i<B.length;i++) A+='<link href="'+B[i]+'" rel="stylesheet" type="text/css" />';return A;};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){if (B=='Paste') return!FCK.Events.FireEvent('OnPaste');}else{if (B.Equals('Paste','Undo','Redo','SelectAll')) return false;};var C=FCK.Commands.GetCommand(B);return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&&B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i<this.Elements.length) this.Elements[i++]==null;this.Elements.length=0;}};var FCKFocusManager=FCK.FocusManager={IsLocked:false,AddWindow:function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);},RemoveWindow:function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);},Lock:function(){this.IsLocked=true;},Unlock:function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;},_ResetTimer:function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&&FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent("OnBlur");}};function FCKFocusManager_Win_OnFocus_Area(){FCK.Focus();FCKFocusManager_Win_OnFocus();};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}}; -FCK.Description="FCKeditor for Internet Explorer 5.5+";FCK._GetBehaviorsStyle=function(){if (!FCK._BehaviorsStyle){var A=FCKConfig.FullBasePath;var B='';var C;C='<style type="text/css" _fcktemp="true">INPUT { behavior: url('+A+'css/behaviors/hiddenfield.htc) ; }';if (FCKConfig.ShowBorders) B='url('+A+'css/behaviors/showtableborders.htc)';C+='INPUT,TEXTAREA,SELECT,.FCK__Anchor,.FCK__PageBreak';if (FCKConfig.DisableObjectResizing){C+=',IMG';B+=' url('+A+'css/behaviors/disablehandles.htc)';};C+=' { behavior: url('+A+'css/behaviors/disablehandles.htc) ; }';if (B.length>0) C+='TABLE { behavior: '+B+' ; }';C+='</style>';FCK._BehaviorsStyle=C;};return FCK._BehaviorsStyle;};function Doc_OnMouseUp(){if (FCK.EditorWindow.event.srcElement.tagName=='HTML'){FCK.Focus();FCK.EditorWindow.event.cancelBubble=true;FCK.EditorWindow.event.returnValue=false;}};function Doc_OnPaste(){return (FCK.Status==2&&FCK.Events.FireEvent("OnPaste"));};function Doc_OnKeyDown(){if (FCK.EditorWindow){var e=FCK.EditorWindow.event;if (!(e.keyCode>=16&&e.keyCode<=18)) Doc_OnKeyDownUndo();};return true;};function Doc_OnKeyDownUndo(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.TypesCount++;if (FCKUndo.TypesCount>FCKUndo.MaxTypes){FCKUndo.TypesCount=0;FCKUndo.SaveUndoStep();}};function Doc_OnDblClick(){FCK.OnDoubleClick(FCK.EditorWindow.event.srcElement);FCK.EditorWindow.event.cancelBubble=true;};function Doc_OnSelectionChange(){FCK.Events.FireEvent("OnSelectionChange");};FCK.InitializeBehaviors=function(A){this.EditorDocument.attachEvent('onmouseup',Doc_OnMouseUp);this.EditorDocument.body.attachEvent('onpaste',Doc_OnPaste);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument.body);if (FCKConfig.TabSpaces>0){window.FCKTabHTML='';for (i=0;i<FCKConfig.TabSpaces;i++) window.FCKTabHTML+="&nbsp;";};this.EditorDocument.attachEvent("onkeydown",Doc_OnKeyDown);this.EditorDocument.attachEvent("ondblclick",Doc_OnDblClick);this.EditorDocument.attachEvent("onselectionchange",Doc_OnSelectionChange);};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectUrls(A);FCK.EditorWindow.focus();FCKUndo.SaveUndoStep();var B=FCK.EditorDocument.selection;if (B.type.toLowerCase()=='control') B.clear();B.createRange().pasteHTML(A);FCKDocumentProcessor.Process(FCK.EditorDocument);};FCK.SetInnerHtml=function(A){var B=FCK.EditorDocument;B.body.innerHTML='<div id="__fakeFCKRemove__">&nbsp;</div>'+A;B.getElementById('__fakeFCKRemove__').removeNode(true);};function FCK_PreloadImages(){var A=new FCKImagePreloader();A.AddImages(FCKConfig.PreloadImages);A.AddImages(FCKConfig.SkinPath+'fck_strip.gif');A.OnComplete=LoadToolbarSetup;A.Start();};function Document_OnContextMenu(){return (event.srcElement._FCKShowContextMenu==true);};document.oncontextmenu=Document_OnContextMenu;function FCK_Cleanup(){this.EditorWindow=null;this.EditorDocument=null;};FCK.Paste=function(){if (FCK._PasteIsRunning) return true;if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};var A=FCK.GetClipboardHTML();if (FCKConfig.AutoDetectPasteFromWord&&A.length>0){var B=/<\w[^>]*(( class="?MsoNormal"?)|(="mso-))/gi;if (B.test(A)){if (confirm(FCKLang.PasteWordConfirm)){FCK.PasteFromWord();return false;}}};FCK._PasteIsRunning=true;FCK.ExecuteNamedCommand('Paste');delete FCK._PasteIsRunning;return false;};FCK.PasteAsPlainText=function(){var A=clipboardData.getData("Text");if (A&&A.length>0){A=FCKTools.HTMLEncode(A).replace(/\n/g,'<BR>');this.InsertHtml(A);}};FCK.InsertElement=function(A){FCK.InsertHtml(A.outerHTML);};FCK.GetClipboardHTML=function(){var A=document.getElementById('___FCKHiddenDiv');if (!A){A=document.createElement('DIV');A.id='___FCKHiddenDiv';var B=A.style;B.position='absolute';B.visibility=B.overflow='hidden';B.width=B.height=1;document.body.appendChild(A);};A.innerHTML='';var C=document.body.createTextRange();C.moveToElementText(A);C.execCommand('Paste');var D=A.innerHTML;A.innerHTML='';return D;};FCK.AttachToOnSelectionChange=function(A){this.Events.AttachEvent('OnSelectionChange',A);};FCK.CreateLink=function(A){FCK.ExecuteNamedCommand('Unlink');if (A.length>0){var B='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',B);var C=this.EditorDocument.links;for (i=0;i<C.length;i++){var D=C[i];if (D.href==B){var E=D.innerHTML;D.href=A;D.innerHTML=E;return D;}}};return null;}; -var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi, '/');FCKConfig.BasePath='file://'+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;}else{FCKConfig.BasePath=document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=document.location.protocol+'//'+document.location.host+FCKConfig.BasePath;};FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig={};var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&');for (var i=0;i<B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=decodeURIComponent(C[0]);var E=decodeURIComponent(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()=="true") this.PageConfig[D]=true;else if (E.toLowerCase()=="false") this.PageConfig[D]=false;else if (E.length>0&&!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) {/*Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error).*/}};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';if (typeof(A.EditorAreaCSS)=='string') A.EditorAreaCSS=[A.EditorAreaCSS];var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;else if (typeof(B)=='string') A.ToolbarComboPreviewCSS=[B];};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource.RegexEntries=[/<!--[\s\S]*?-->/g,/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){function _Replace(protectedSource){var B=FCKTempBin.AddElement(protectedSource);return '<!--{PS..'+B+'}-->';};for (var i=0;i<this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};return A.replace(/(<|&lt;)!--\{PS..(\d+)\}--(>|&gt;)/g,_Replace);} +var FCKEvents=function(A){this.Owner=A;this._RegisteredEvents={};};FCKEvents.prototype.AttachEvent=function(A,B){var C;if (!(C=this._RegisteredEvents[A])) this._RegisteredEvents[A]=[B];else{if (C.IndexOf(B)==-1) C.push(B);}};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this._RegisteredEvents[A];if (D){for (var i=0;i<D.length;i++){try{C=(D[i](this.Owner,B)&&C);}catch(e){if (e.number!=-2146823277) throw e;}}};return C;}; +var FCKDataProcessor=function(){};FCKDataProcessor.prototype={ConvertToHtml:function(A){if (FCKConfig.FullPage){FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (!FCKRegexLib.HasBodyTag.test(A)) A='<body>'+A+'</body>';if (!FCKRegexLib.HtmlOpener.test(A)) A='<html dir="'+FCKConfig.ContentLangDirection+'">'+A+'</html>';if (!FCKRegexLib.HeadOpener.test(A)) A=A.replace(FCKRegexLib.HtmlOpener,'$&<head><title></title></head>');return A;}else{var B=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"';if (FCKBrowserInfo.IsIE&&FCKConfig.DocType.length>0&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) B+=' style="overflow-y: scroll"';B+='><head><title></title></head><body'+FCKConfig.GetBodyAttributes()+'>'+A+'</body></html>';return B;}},ConvertToDataFormat:function(A,B,C,D){var E=FCKXHtml.GetXHTML(A,!B,D);if (C&&FCKRegexLib.EmptyOutParagraph.test(E)) return '';return E;},FixHtml:function(A){return A;}}; +var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,DataProcessor:new FCKDataProcessor(),AttachToOnSelectionChange:function(A){this.Events.AttachEvent('OnSelectionChange',A);},GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){if (this.EditMode==1) return (this.StartupValue!=this.EditingArea.Textarea.value);else{if (!this.EditorDocument) return false;return (this.StartupValue!=this.EditorDocument.body.innerHTML);}},ResetIsDirty:function(){if (this.EditMode==1) this.StartupValue=this.EditingArea.Textarea.value;else if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length>0?'<base href="'+FCKConfig.BaseHref+'" _fcktemp="true"></base>':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86/*V*/) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45/*INS*/) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};A.SetKeystrokes([CTRL+8,true]);this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=FCKConfig.FirefoxSpellChecker;this.SetData(this.GetLinkedFieldValue(),true);FCKTools.AddEventListener(document,"keydown",this._TabKeyHandler);this.AttachToOnSelectionChange(_FCK_PaddingNodeListener);if (FCKBrowserInfo.IsGecko) this.AttachToOnSelectionChange(this._ExecCheckEmptyBlock);},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&&A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:if (!FCKListsLib.BlockElements[D.nodeName.toLowerCase()]&&!D.getAttribute('_fckfakelement')&&D.getAttribute('_moz_dirty')==null) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;};if (F){var G=D.parentNode;if (!E) E=G.insertBefore(B.createElement(A),D);E.appendChild(G.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetData:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B=FCK.EditorDocument;if (!B) return null;var C=FCKConfig.FullPage;var D=FCK.DataProcessor.ConvertToDataFormat(C?B.documentElement:B.body,!C,FCKConfig.IgnoreEmptyParagraphValue,A);D=FCK.ProtectEventsRestore(D);if (FCKBrowserInfo.IsIE) D=D.replace(FCKRegexLib.ToReplace,'$1');if (C){if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) D=FCK.DocTypeDeclaration+'\n'+D;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) D=FCK.XmlDeclaration+'\n'+D;};return FCKConfig.ProtectedSource.Revert(D);},UpdateLinkedField:function(){var A=FCK.GetXHTML(FCKConfig.FormatOutput);if (FCKConfig.HtmlEncodeOutput) A=FCKTools.HTMLEncode(A);FCK.LinkedField.value=A;FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);},RegisterDoubleClickHandler:function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;},OnAfterSetHTML:function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');},ProtectUrls:function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$& _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$& _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsArea,'$& _fcksavedurl=$1');return A;},ProtectEvents:function(A){return A.replace(FCKRegexLib.TagsWithEvent,_FCK_ProtectEvents_ReplaceTags);},ProtectEventsRestore:function(A){return A.replace(FCKRegexLib.ProtectedEvents,_FCK_ProtectEvents_RestoreEvents);},ProtectTags:function(A){var B=FCKConfig.ProtectedTags;if (FCKBrowserInfo.IsIE) B+=B.length>0?'|ABBR|XML|EMBED':'ABBR|XML|EMBED';var C;if (B.length>0){C=new RegExp('<('+B+')(?!\w|:)','gi');A=A.replace(C,'<FCK:$1');C=new RegExp('<\/('+B+')>','gi');A=A.replace(C,'<\/FCK:$1>');};B='META';if (FCKBrowserInfo.IsIE) B+='|HR';C=new RegExp('<(('+B+')(?=\\s|>|/)[\\s\\S]*?)/?>','gi');A=A.replace(C,'<FCK:$1 />');return A;},SetData:function(A,B){this.EditingArea.Mode=FCK.EditMode;if (FCKBrowserInfo.IsIE&&FCK.EditorDocument){FCK.EditorDocument.detachEvent("onselectionchange",Doc_OnSelectionChange);};if (FCK.EditMode==0){this._ForceResetIsDirty=(B===true);A=FCKConfig.ProtectedSource.Protect(A);A=FCK.DataProcessor.ConvertToHtml(A);A=A.replace(FCKRegexLib.InvalidSelfCloseTags,'$1></$2>');A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) A=A.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);var C='';if (!FCKConfig.FullPage) C+=_FCK_GetEditorAreaStyleTags();if (FCKBrowserInfo.IsIE) C+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C+='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';C+='<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';A=A.replace(FCKRegexLib.HeadCloser,C+'$&');this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(A);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;FCKDomTools.PaddingNode=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;if (B) this.ResetIsDirty();FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},HasFocus:false,RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C,D){if (!D) FCKUndo.SaveUndoStep();if (!C&&FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};if (!D) FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (FCKBrowserInfo.IsSafari&&FCK.EditorWindow&&A.IEquals('Paste')) return 0;if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else{return FCK.EditorDocument.queryCommandState(A)?1:0;}}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},Paste:function(A){if (FCK.Status!=2||!FCK.Events.FireEvent('OnPaste')) return false;return A||FCK._ExecPaste();},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A=FCKConfig.ScreenWidth*0.8;var B=FCKConfig.ScreenHeight*0.7;var C=(FCKConfig.ScreenWidth-A)/2;var D=window.open('',null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+A+',height='+B+',left='+C);var E;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) E=FCK.TempBaseTag+FCK.GetXHTML();else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body'+FCKConfig.GetBodyAttributes()+'>'+FCK.GetXHTML()+'</body></html>';};D.document.write(E);D.document.close();},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C=FCK.IsDirty();var D;if (B){FCKCommands.GetCommand('ShowBlocks').SaveState();if (!A&&FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();D=FCK.GetXHTML(FCKConfig.FormatSource);if (D==null) return false;}else D=this.EditingArea.Textarea.value;FCK.EditMode=B?1:0;FCK.SetData(D,!C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},InsertElement:function(A){if (typeof A=='string') A=this.EditorDocument.createElement(A);var B=A.nodeName.toLowerCase();var C=new FCKDomRange(this.EditorWindow);if (FCKListsLib.BlockElements[B]!=null){C.SplitBlock();C.InsertNode(A);var D=FCKDomTools.GetNextSourceElement(A,false,null,['hr','br','param','img','area','input']);if (!D&&FCKConfig.EnterMode!='br'){D=this.EditorDocument.body.appendChild(this.EditorDocument.createElement(FCKConfig.EnterMode));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);};if (FCKListsLib.EmptyElements[B]==null) C.MoveToElementEditStart(A);else if (D) C.MoveToElementEditStart(D);else C.MoveToPosition(A,4);if (FCKBrowserInfo.IsGecko){if (D) D.scrollIntoView(false);A.scrollIntoView(false);}}else{C.MoveToSelection();C.DeleteContents();C.InsertNode(A);C.SetStart(A,4);C.SetEnd(A,4);};C.Select();C.Release();this.Focus();return A;},_InsertBlockElement:function(A){},_IsFunctionKey:function(A){if (A>=16&&A<=20) return true;if (A==27||(A>=33&&A<=40)) return true;if (A==45) return true;return false;},_KeyDownListener:function(A){if (!A) A=FCK.EditorWindow.event;if (FCK.EditorWindow){if (!FCK._IsFunctionKey(A.keyCode)&&!(A.ctrlKey||A.metaKey)&&!(A.keyCode==46)) FCK._KeyDownUndo();};return true;},_KeyDownUndo:function(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.TypesCount++;FCKUndo.Changed=1;if (FCKUndo.TypesCount>FCKUndo.MaxTypes){FCKUndo.TypesCount=0;FCKUndo.SaveUndoStep();}},_TabKeyHandler:function(A){if (!A) A=window.event;var B=A.keyCode;if (B==9&&FCK.EditMode!=0){if (FCKBrowserInfo.IsIE){var C=document.selection.createRange();if (C.parentElement()!=FCK.EditingArea.Textarea) return true;C.text='\t';C.select();}else{var a=[];var D=FCK.EditingArea.Textarea;var E=D.selectionStart;var F=D.selectionEnd;a.push(D.value.substr(0,E));a.push('\t');a.push(D.value.substr(F));D.value=a.join('');D.setSelectionRange(E+1,E+1);};if (A.preventDefault) return A.preventDefault();return A.returnValue=false;};return true;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML=FCK.GetData;FCK.SetHTML=FCK.SetData;FCK.InsertElementAndGetIt=FCK.CreateElement=FCK.InsertElement;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt="'+encodeURIComponent(A)+'"';};function _FCK_ProtectEvents_RestoreEvents(A,B){return decodeURIComponent(B);};function _FCK_MouseEventsListener(A){if (!A) A=window.event;if (A.type=='mousedown') FCK.MouseDownFlag=true;else if (A.type=='mouseup') FCK.MouseDownFlag=false;else if (A.type=='mousemove') FCK.Events.FireEvent('OnMouseMove',A);};function _FCK_PaddingNodeListener(){if (FCKConfig.EnterMode.IEquals('br')) return;FCKDomTools.EnforcePaddingNode(FCK.EditorDocument,FCKConfig.EnterMode);if (!FCKBrowserInfo.IsIE&&FCKDomTools.PaddingNode){var A=FCK.EditorWindow.getSelection();if (A&&A.rangeCount==1){var B=A.getRangeAt(0);if (B.collapsed&&B.startContainer==FCK.EditorDocument.body&&B.startOffset==0){B.selectNodeContents(FCKDomTools.PaddingNode);B.collapse(true);A.removeAllRanges();A.addRange(B);}}}else if (FCKDomTools.PaddingNode){var C=FCKSelection.GetParentElement();var D=FCKDomTools.PaddingNode;if (C&&C.nodeName.IEquals('body')){if (FCK.EditorDocument.body.childNodes.length==1&&FCK.EditorDocument.body.firstChild==D){var B=FCK.EditorDocument.body.createTextRange();var F=false;if (!D.childNodes.firstChild){D.appendChild(D.ownerDocument.createTextNode('\ufeff'));F=true;};B.moveToElementText(D);B.select();if (F) B.pasteHTML('');}}}};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();FCK.MouseDownFlag=false;FCKTools.AddEventListener(FCK.EditorDocument,'mousemove',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mouseup',_FCK_MouseEventsListener);if (FCKBrowserInfo.IsSafari){var A=function(evt){if (!(evt.ctrlKey||evt.metaKey)) return;if (FCK.EditMode!=0) return;switch (evt.keyCode){case 89:FCKUndo.Redo();break;case 90:FCKUndo.Undo();break;}};FCKTools.AddEventListener(FCK.EditorDocument,'keyup',A);};FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode,FCKConfig.TabSpaces);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);if (FCK._ForceResetIsDirty) FCK.ResetIsDirty();if (FCKBrowserInfo.IsIE&&FCK.HasFocus) FCK.EditorDocument.body.setActive();FCK.OnAfterSetHTML();FCKCommands.GetCommand('ShowBlocks').RestoreState();if (FCK.Status!=0) return;if (FCKConfig.Debug) FCKDebug._GetWindow();FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){var A='';var B=FCKConfig.EditorAreaCSS;var C=FCKConfig.EditorAreaStyles;for (var i=0;i<B.length;i++) A+='<link href="'+B[i]+'" rel="stylesheet" type="text/css" />';if (C&&C.length>0) A+="<style>"+C+"</style>";return A;};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){switch (B){case 'Paste':return!FCK.Paste();case 'Cut':FCKUndo.SaveUndoStep();return false;}}else{if (B.Equals('Paste','Undo','Redo','SelectAll','Cut')) return false;};var C=FCK.Commands.GetCommand(B);return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&&B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i<this.Elements.length) this.Elements[i++]=null;this.Elements.length=0;}};var FCKFocusManager=FCK.FocusManager={IsLocked:false,AddWindow:function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else if (FCKBrowserInfo.IsSafari) C=A;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);},RemoveWindow:function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);},Lock:function(){this.IsLocked=true;},Unlock:function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;},_ResetTimer:function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&&FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent("OnBlur");}};function FCKFocusManager_Win_OnFocus_Area(){FCK.Focus();FCKFocusManager_Win_OnFocus();};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}}; +FCK.Description="FCKeditor for Internet Explorer 5.5+";FCK._GetBehaviorsStyle=function(){if (!FCK._BehaviorsStyle){var A=FCKConfig.FullBasePath;var B='';var C;C='<style type="text/css" _fcktemp="true">';if (FCKConfig.ShowBorders) B='url('+A+'css/behaviors/showtableborders.htc)';C+='INPUT,TEXTAREA,SELECT,.FCK__Anchor,.FCK__PageBreak,.FCK__InputHidden';if (FCKConfig.DisableObjectResizing){C+=',IMG';B+=' url('+A+'css/behaviors/disablehandles.htc)';};C+=' { behavior: url('+A+'css/behaviors/disablehandles.htc) ; }';if (B.length>0) C+='TABLE { behavior: '+B+' ; }';C+='</style>';FCK._BehaviorsStyle=C;};return FCK._BehaviorsStyle;};function Doc_OnMouseUp(){if (FCK.EditorWindow.event.srcElement.tagName=='HTML'){FCK.Focus();FCK.EditorWindow.event.cancelBubble=true;FCK.EditorWindow.event.returnValue=false;}};function Doc_OnPaste(){var A=FCK.EditorDocument.body;A.detachEvent('onpaste',Doc_OnPaste);var B=FCK.Paste(!FCKConfig.ForcePasteAsPlainText&&!FCKConfig.AutoDetectPasteFromWord);A.attachEvent('onpaste',Doc_OnPaste);return B;};function Doc_OnDblClick(){FCK.OnDoubleClick(FCK.EditorWindow.event.srcElement);FCK.EditorWindow.event.cancelBubble=true;};function Doc_OnSelectionChange(){if (FCK.EditorDocument) FCK.Events.FireEvent("OnSelectionChange");};function Doc_OnDrop(){if (FCK.MouseDownFlag){FCK.MouseDownFlag=false;return;};var A=FCK.EditorWindow.event;if (FCKConfig.ForcePasteAsPlainText){if (FCK._CheckIsPastingEnabled()||FCKConfig.ShowDropDialog) FCK.PasteAsPlainText(A.dataTransfer.getData('Text'));}else{if (FCKConfig.ShowDropDialog) FCKTools.RunFunction(FCKDialog.OpenDialog,FCKDialog,['FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security']);};A.returnValue=false;A.cancelBubble=true;};FCK.InitializeBehaviors=function(A){this.EditorDocument.attachEvent('onmouseup',Doc_OnMouseUp);this.EditorDocument.body.attachEvent('onpaste',Doc_OnPaste);this.EditorDocument.body.attachEvent('ondrop',Doc_OnDrop);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument.body);this.EditorDocument.attachEvent("onkeydown",FCK._KeyDownListener);this.EditorDocument.attachEvent("ondblclick",Doc_OnDblClick);this.EditorDocument.attachEvent("onselectionchange",Doc_OnSelectionChange);};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);FCK.EditorWindow.focus();FCKUndo.SaveUndoStep();var B=FCK.EditorDocument.selection;if (B.type.toLowerCase()=='control') B.clear();A='<span id="__fakeFCKRemove__">&nbsp;</span>'+A;B.createRange().pasteHTML(A);FCK.EditorDocument.getElementById('__fakeFCKRemove__').removeNode(true);FCKDocumentProcessor.Process(FCK.EditorDocument);this.Events.FireEvent("OnSelectionChange");};FCK.SetInnerHtml=function(A){var B=FCK.EditorDocument;B.body.innerHTML='<div id="__fakeFCKRemove__">&nbsp;</div>'+A;B.getElementById('__fakeFCKRemove__').removeNode(true);};function FCK_PreloadImages(){var A=new FCKImagePreloader();A.AddImages(FCKConfig.PreloadImages);A.AddImages(FCKConfig.SkinPath+'fck_strip.gif');A.OnComplete=LoadToolbarSetup;A.Start();};function Document_OnContextMenu(){return (event.srcElement._FCKShowContextMenu==true);};document.oncontextmenu=Document_OnContextMenu;function FCK_Cleanup(){this.LinkedField=null;this.EditorWindow=null;this.EditorDocument=null;};FCK._ExecPaste=function(){if (FCK._PasteIsRunning) return true;if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};var A=FCK._CheckIsPastingEnabled(true);if (A===false) FCKTools.RunFunction(FCKDialog.OpenDialog,FCKDialog,['FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security']);else{if (FCKConfig.AutoDetectPasteFromWord&&A.length>0){var B=/<\w[^>]*(( class="?MsoNormal"?)|(="mso-))/gi;if (B.test(A)){if (confirm(FCKLang.PasteWordConfirm)){FCK.PasteFromWord();return false;}}};FCK._PasteIsRunning=true;FCK.ExecuteNamedCommand('Paste');delete FCK._PasteIsRunning;};return false;};FCK.PasteAsPlainText=function(A){if (!FCK._CheckIsPastingEnabled()){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText');return;};var B=null;if (!A) B=clipboardData.getData("Text");else B=A;if (B&&B.length>0){B=FCKTools.HTMLEncode(B);B=FCKTools.ProcessLineBreaks(window,FCKConfig,B);var C=B.search('</p>');var D=B.search('<p>');if ((C!=-1&&D!=-1&&C<D)||(C!=-1&&D==-1)){var E=B.substr(0,C);B=B.substr(C+4);this.InsertHtml(E);};FCKUndo.SaveLocked=true;this.InsertHtml(B);FCKUndo.SaveLocked=false;}};FCK._CheckIsPastingEnabled=function(A){FCK._PasteIsEnabled=false;document.body.attachEvent('onpaste',FCK_CheckPasting_Listener);var B=FCK.GetClipboardHTML();document.body.detachEvent('onpaste',FCK_CheckPasting_Listener);if (FCK._PasteIsEnabled){if (!A) B=true;}else B=false;delete FCK._PasteIsEnabled;return B;};function FCK_CheckPasting_Listener(){FCK._PasteIsEnabled=true;};FCK.GetClipboardHTML=function(){var A=document.getElementById('___FCKHiddenDiv');if (!A){A=document.createElement('DIV');A.id='___FCKHiddenDiv';var B=A.style;B.position='absolute';B.visibility=B.overflow='hidden';B.width=B.height=1;document.body.appendChild(A);};A.innerHTML='';var C=document.body.createTextRange();C.moveToElementText(A);C.execCommand('Paste');var D=A.innerHTML;A.innerHTML='';return D;};FCK.CreateLink=function(A,B){var C=[];FCK.ExecuteNamedCommand('Unlink',null,false,!!B);if (A.length>0){if (FCKSelection.GetType()=='Control'){var D=this.EditorDocument.createElement('A');D.href=A;var E=FCKSelection.GetSelectedElement();E.parentNode.insertBefore(D,E);E.parentNode.removeChild(E);D.appendChild(E);return [D];};var F='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',F,false,!!B);var G=this.EditorDocument.links;for (i=0;i<G.length;i++){var D=G[i];if (D.getAttribute('href',2)==F){var I=D.innerHTML;D.href=A;D.innerHTML=I;var J=D.lastChild;if (J&&J.nodeName=='BR'){FCKDomTools.InsertAfterNode(D,D.removeChild(J));};C.push(D);}}};return C;}; +var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi, '/');var sFullProtocol=document.location.href.match(/^(file\:\/{2,3})/)[1];if (FCKBrowserInfo.IsOpera) sFullProtocol+='localhost/';FCKConfig.BasePath=sFullProtocol+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;}else{FCKConfig.BasePath=document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=document.location.protocol+'//'+document.location.host+FCKConfig.BasePath;};FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig={};var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&');for (var i=0;i<B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=decodeURIComponent(C[0]);var E=decodeURIComponent(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()=="true") this.PageConfig[D]=true;else if (E.toLowerCase()=="false") this.PageConfig[D]=false;else if (E.length>0&&!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) {/*Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error).*/}};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';if (typeof(A.EditorAreaCSS)=='string') A.EditorAreaCSS=A.EditorAreaCSS.split(',');var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;else if (typeof(B)=='string') A.ToolbarComboPreviewCSS=[B];};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource._CodeTag=(new Date()).valueOf();FCKConfig.ProtectedSource.RegexEntries=[/<!--[\s\S]*?-->/g,/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi,/<object[\s\S]+?<\/object>/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){var B=this._CodeTag;function _Replace(protectedSource){var C=FCKTempBin.AddElement(protectedSource);return '<!--{'+B+C+'}-->';};for (var i=0;i<this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};var D=new RegExp("(<|&lt;)!--\\{"+this._CodeTag+"(\\d+)\\}--(>|&gt;)","g");return A.replace(D,_Replace);};FCKConfig.GetBodyAttributes=function(){var A='';if (this.BodyId&&this.BodyId.length>0) A+=' id="'+this.BodyId+'"';if (this.BodyClass&&this.BodyClass.length>0) A+=' class="'+this.BodyClass+'"';return A;};FCKConfig.ApplyBodyAttributes=function(A){if (this.BodyId&&this.BodyId.length>0) A.id=FCKConfig.BodyId;if (this.BodyClass&&this.BodyClass.length>0) A.className+=' '+FCKConfig.BodyClass;}; var FCKDebug={};FCKDebug._GetWindow=function(){if (!this.DebugWindow||this.DebugWindow.closed) this.DebugWindow=window.open(FCKConfig.BasePath+'fckdebug.html','FCKeditorDebug','menubar=no,scrollbars=yes,resizable=yes,location=no,toolbar=no,width=600,height=500',true);return this.DebugWindow;};FCKDebug.Output=function(A,B,C){if (!FCKConfig.Debug) return;try{this._GetWindow().Output(A,B);}catch (e) {}};FCKDebug.OutputObject=function(A,B){if (!FCKConfig.Debug) return;try{this._GetWindow().OutputObject(A,B);}catch (e) {}} -var FCKDomTools={MoveChildren:function(A,B){if (A==B) return;var C;while ((C=A.firstChild)) B.appendChild(A.removeChild(C));},TrimNode:function(A,B){this.LTrimNode(A);this.RTrimNode(A,B);},LTrimNode:function(A){var B;while ((B=A.firstChild)){if (B.nodeType==3){var C=B.nodeValue.LTrim();var D=B.nodeValue.length;if (C.length==0){A.removeChild(B);continue;}else if (C.length<D){B.splitText(D-C.length);A.removeChild(A.firstChild);}};break;}},RTrimNode:function(A,B){var C;while ((C=A.lastChild)){switch (C.nodeType){case 1:if (C.nodeName.toUpperCase()=='BR'&&(B||C.getAttribute('type',2)=='_moz')){A.removeChild(C);continue;};break;case 3:var D=C.nodeValue.RTrim();var E=C.nodeValue.length;if (D.length==0){A.removeChild(C);continue;}else if (D.length<E){C.splitText(D.length);A.removeChild(A.lastChild);}};break;}},RemoveNode:function(A,B){if (B){var C;while ((C=A.firstChild)) A.parentNode.insertBefore(A.removeChild(C),A);};return A.parentNode.removeChild(A);},GetFirstChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.firstChild;while(C){if (C.nodeType==1&&C.tagName.Equals.apply(C.tagName,B)) return C;C=C.nextSibling;};return null;},GetLastChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.lastChild;while(C){if (C.nodeType==1&&(!B||C.tagName.Equals(B))) return C;C=C.previousSibling;};return null;},GetPreviousSourceElement:function(A,B,C,D){if (!A) return null;if (C&&A.nodeType==1&&A.nodeName.IEquals(C)) return null;if (A.previousSibling) A=A.previousSibling;else return this.GetPreviousSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.lastChild) A=A.lastChild;else return this.GetPreviousSourceElement(A,B,C,D);};return null;},GetNextSourceElement:function(A,B,C,D){if (!A) return null;if (A.nextSibling) A=A.nextSibling;else return this.GetNextSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.firstChild) A=A.firstChild;else return this.GetNextSourceElement(A,B,C,D);};return null;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.splice(0,0,A);A=A.parentNode;};return B;},GetIndexOf:function(A){var B=A.parentNode?A.parentNode.firstChild:null;var C=-1;while (B){C++;if (B==A) return C;B=B.nextSibling;};return-1;}}; -var GECKO_BOGUS='<br type="_moz">';var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.AppendStyleSheet=function(A,B){if (typeof(B)=='string') return this._AppendStyleSheet(A,B);else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&&!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.FixDocumentParentWindow=function(A){A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&amp;');A=A.replace(/</g,'&lt;');A=A.replace(/>/g,'&gt;');return A;};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i<arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||'CSS1Compat'));};FCKTools.ArgumentsToArray=function(A,B,C){B=B||0;C=C||A.length;var D=[];for (var i=B;i<B+C&&i<A.length;i++) D.push(A[i]);return D;};FCKTools.CloneObject=function(A){var B=function() {};B.prototype=A;return new B;}; -FCKTools.CancelEvent=function(e){return false;};FCKTools._AppendStyleSheet=function(A,B){return A.createStyleSheet(B).owningElement;};FCKTools.ClearElementAttributes=function(A){A.clearAttributes();};FCKTools.GetAllChildrenIds=function(A){var B=[];for (var i=0;i<A.all.length;i++){var C=A.all[i].id;if (C&&C.length>0) B[B.length]=C;};return B;};FCKTools.RemoveOuterTags=function(e){e.insertAdjacentHTML('beforeBegin',e.innerHTML);e.parentNode.removeChild(e);};FCKTools.CreateXmlObject=function(A){var B;switch (A){case 'XmlHttp':B=['MSXML2.XmlHttp','Microsoft.XmlHttp'];break;case 'DOMDocument':B=['MSXML2.DOMDocument','Microsoft.XmlDom'];break;};for (var i=0;i<2;i++){try { return new ActiveXObject(B[i]);}catch (e){}};if (FCKLang.NoActiveX){alert(FCKLang.NoActiveX);FCKLang.NoActiveX=null;};return null;};FCKTools.DisableSelection=function(A){A.unselectable='on';var e,i=0;while ((e=A.all[i++])){switch (e.tagName){case 'IFRAME':case 'TEXTAREA':case 'INPUT':case 'SELECT':break;default:e.unselectable='on';}}};FCKTools.GetScrollPosition=function(A){var B=A.document;var C={ X:B.documentElement.scrollLeft,Y:B.documentElement.scrollTop };if (C.X>0||C.Y>0) return C;return { X:B.body.scrollLeft,Y:B.body.scrollTop };};FCKTools.AddEventListener=function(A,B,C){A.attachEvent('on'+B,C);};FCKTools.RemoveEventListener=function(A,B,C){A.detachEvent('on'+B,C);};FCKTools.AddEventListenerEx=function(A,B,C,D){var o={};o.Source=A;o.Params=D||[];o.Listener=function(ev){return C.apply(o.Source,[ev].concat(o.Params));};if (FCK.IECleanup) FCK.IECleanup.AddItem(null,function() { o.Source=null;o.Params=null;});A.attachEvent('on'+B,o.Listener);A=null;D=null;};FCKTools.GetViewPaneSize=function(A){var B;var C=A.document.documentElement;if (C&&C.clientWidth) B=C;else B=top.document.body;if (B) return { Width:B.clientWidth,Height:B.clientHeight };else return { Width:0,Height:0 };};FCKTools.SaveStyles=function(A){var B={};if (A.className.length>0){B.Class=A.className;A.className='';};var C=A.style.cssText;if (C.length>0){B.Inline=C;A.style.cssText='';};return B;};FCKTools.RestoreStyles=function(A,B){A.className=B.Class||'';A.style.cssText=B.Inline||'';};FCKTools.RegisterDollarFunction=function(A){A.$=A.document.getElementById;};FCKTools.AppendElement=function(A,B){return A.appendChild(this.GetElementDocument(A).createElement(B));};FCKTools.ToLowerCase=function(A){return A.toLowerCase();} -var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='var FCKeditorAPI = {Version : "2.4",VersionBuild : "1148",__Instances : new Object(),GetInstance : function( name ){return this.__Instances[ name ];},_FormSubmit : function(){for ( var name in FCKeditorAPI.__Instances ){var oEditor = FCKeditorAPI.__Instances[ name ] ;if ( oEditor.GetParentForm() == this )oEditor.UpdateLinkedField() ;}this._FCKOriginalSubmit() ;},_FunctionQueue : {Functions : new Array(),IsRunning : false,Add : function( f ){this.Functions.push( f );if ( !this.IsRunning )this.StartNext();},StartNext : function(){var aQueue = this.Functions ;if ( aQueue.length > 0 ){this.IsRunning = true;aQueue[0].call();}else this.IsRunning = false;},Remove : function( f ){var aQueue = this.Functions;var i = 0, fFunc;while( (fFunc = aQueue[ i ]) ){if ( fFunc == f )aQueue.splice( i,1 );i++ ;}this.StartNext();}}}';if (A.execScript) A.execScript(B,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if (FCKBrowserInfo.IsSafari){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;};FCKeditorAPI.__Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&&(typeof(A.submit)=='function'||(!A.submit.tagName&&!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){delete FCKeditorAPI.__Instances[FCK.Name];};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup); -var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i<A.length;i++){var B=document.createElement('img');B.onload=B.onerror=_FCKImagePreloader_OnImage;B._FCKImagePreloader=this;B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(){var A=this._FCKImagePreloader;if ((--A._PreloadCount)==0&&A.OnComplete) A.OnComplete();this._FCKImagePreloader=null;} -var FCKRegexLib={AposEntity:/&apos;/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BodyContents:/([\s\S]*\<body[^\>]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/(\s*FCK__[A-Za-z]*\s*)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div)>\s*<\/\1>$/i,TagBody:/></,StrongOpener:/<STRONG([ \>])/gi,StrongCloser:/<\/STRONG>/gi,EmOpener:/<EM([ \>])/gi,EmCloser:/<\/EM>/gi,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/(?:(<img(?=\s).*?\ssrc=)("|')(.*?)\2)|(?:(<img\s.*?src=)([^"'][^ >]+))/gi,ProtectUrlsA:/(?:(<a(?=\s).*?\shref=)("|')(.*?)\2)|(?:(<a\s.*?href=)([^"'][^ >]+))/gi,Html4DocType:/HTML 4\.0 Transitional/i,DocTypeTag:/<!DOCTYPE[^>]*>/i,TagsWithEvent:/<[^\>]+ on\w+[\s\r\n]*=[\s\r\n]*?('|")[\s\S]+?\>/g,EventAttributes:/\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|")([\s\S]*?)\2/g,ProtectedEvents:/\s\w+_fckprotectedatt="([^"]+)"/g,StyleProperties:/\S+\s*:/g};var FCKListsLib={BlockElements:{ address:1,blockquote:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 },NonEmptyBlockElements:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,address:1,pre:1,ol:1,ul:1,li:1,td:1,th:1 },PathBlockElements:{ address:1,blockquote:1,div:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1 },InlineChildReqElements:{ abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strong:1,sub:1,sup:1,tt:1,'var':1 },EmptyElements:{ base:1,meta:1,link:1,hr:1,br:1,param:1,img:1,area:1,input:1 }}; -var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French',gl:'Galician',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',it:'Italian',ja:'Japanese',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},GetActiveLanguage:function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length>=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length>=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;},TranslateElements:function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i<e.length;i++){if ((E=e[i].getAttribute('fckLang'))){if ((s=FCKLang[E])){if (D) s=FCKTools.HTMLEncode(s);eval('e[i].'+C+' = s');}}}},TranslatePage:function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);},Initialize:function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage={};this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}}; -var FCKXHtmlEntities={};FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';var B,e;if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.Entities={' ':'nbsp','¡':'iexcl','¢':'cent','£':'pound','¤':'curren','Â¥':'yen','¦':'brvbar','§':'sect','¨':'uml','©':'copy','ª':'ordf','«':'laquo','¬':'not','­':'shy','®':'reg','¯':'macr','°':'deg','±':'plusmn','²':'sup2','³':'sup3','´':'acute','µ':'micro','¶':'para','·':'middot','¸':'cedil','¹':'sup1','º':'ordm','»':'raquo','¼':'frac14','½':'frac12','¾':'frac34','¿':'iquest','×':'times','÷':'divide','Æ’':'fnof','•':'bull','…':'hellip','′':'prime','″':'Prime','‾':'oline','â„':'frasl','℘':'weierp','â„‘':'image','â„œ':'real','â„¢':'trade','ℵ':'alefsym','â†':'larr','↑':'uarr','→':'rarr','↓':'darr','↔':'harr','↵':'crarr','â‡':'lArr','⇑':'uArr','⇒':'rArr','⇓':'dArr','⇔':'hArr','∀':'forall','∂':'part','∃':'exist','∅':'empty','∇':'nabla','∈':'isin','∉':'notin','∋':'ni','âˆ':'prod','∑':'sum','−':'minus','∗':'lowast','√':'radic','âˆ':'prop','∞':'infin','∠':'ang','∧':'and','∨':'or','∩':'cap','∪':'cup','∫':'int','∴':'there4','∼':'sim','≅':'cong','≈':'asymp','≠':'ne','≡':'equiv','≤':'le','≥':'ge','⊂':'sub','⊃':'sup','⊄':'nsub','⊆':'sube','⊇':'supe','⊕':'oplus','⊗':'otimes','⊥':'perp','â‹…':'sdot','â—Š':'loz','â™ ':'spades','♣':'clubs','♥':'hearts','♦':'diams','"':'quot','ˆ':'circ','Ëœ':'tilde',' ':'ensp',' ':'emsp',' ':'thinsp','‌':'zwnj','â€':'zwj','‎':'lrm','â€':'rlm','–':'ndash','—':'mdash','‘':'lsquo','’':'rsquo','‚':'sbquo','“':'ldquo','â€':'rdquo','„':'bdquo','†':'dagger','‡':'Dagger','‰':'permil','‹':'lsaquo','›':'rsaquo','€':'euro'};for (e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){B={'À':'Agrave','Ã':'Aacute','Â':'Acirc','Ã':'Atilde','Ä':'Auml','Ã…':'Aring','Æ':'AElig','Ç':'Ccedil','È':'Egrave','É':'Eacute','Ê':'Ecirc','Ë':'Euml','ÃŒ':'Igrave','Ã':'Iacute','ÃŽ':'Icirc','Ã':'Iuml','Ã':'ETH','Ñ':'Ntilde','Ã’':'Ograve','Ó':'Oacute','Ô':'Ocirc','Õ':'Otilde','Ö':'Ouml','Ø':'Oslash','Ù':'Ugrave','Ú':'Uacute','Û':'Ucirc','Ãœ':'Uuml','Ã':'Yacute','Þ':'THORN','ß':'szlig','à':'agrave','á':'aacute','â':'acirc','ã':'atilde','ä':'auml','Ã¥':'aring','æ':'aelig','ç':'ccedil','è':'egrave','é':'eacute','ê':'ecirc','ë':'euml','ì':'igrave','í':'iacute','î':'icirc','ï':'iuml','ð':'eth','ñ':'ntilde','ò':'ograve','ó':'oacute','ô':'ocirc','õ':'otilde','ö':'ouml','ø':'oslash','ù':'ugrave','ú':'uacute','û':'ucirc','ü':'uuml','ý':'yacute','þ':'thorn','ÿ':'yuml','Å’':'OElig','Å“':'oelig','Å ':'Scaron','Å¡':'scaron','Ÿ':'Yuml'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){B={'Α':'Alpha','Î’':'Beta','Γ':'Gamma','Δ':'Delta','Ε':'Epsilon','Ζ':'Zeta','Η':'Eta','Θ':'Theta','Ι':'Iota','Κ':'Kappa','Λ':'Lambda','Îœ':'Mu','Î':'Nu','Ξ':'Xi','Ο':'Omicron','Π':'Pi','Ρ':'Rho','Σ':'Sigma','Τ':'Tau','Î¥':'Upsilon','Φ':'Phi','Χ':'Chi','Ψ':'Psi','Ω':'Omega','α':'alpha','β':'beta','γ':'gamma','δ':'delta','ε':'epsilon','ζ':'zeta','η':'eta','θ':'theta','ι':'iota','κ':'kappa','λ':'lambda','μ':'mu','ν':'nu','ξ':'xi','ο':'omicron','Ï€':'pi','Ï':'rho','Ï‚':'sigmaf','σ':'sigma','Ï„':'tau','Ï…':'upsilon','φ':'phi','χ':'chi','ψ':'psi','ω':'omega'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={};A=' ';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&&D.length>0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');} -var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKXHtmlEntities.Initialize();var D=FCK.IsDirty();this._CreateNode=FCKConfig.ForceStrongEm?FCKXHtml_CreateNode_StrongEm:FCKXHtml_CreateNode_Normal;FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;E=E.substr(7,E.length-15).Trim();if (FCKBrowserInfo.IsGecko) E=E.replace(/<br\/>$/,'');E=E.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i<FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&');if (!D) FCK.ResetIsDirty();return E;};FCKXHtml._AppendAttribute=function(A,B,C){try{if (C==undefined||C==null) C='';else if (C.replace){if (FCKConfig.ForceSimpleAmpersand) C=C.replace(/&/g,'___FCKAmp___');C=C.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity);};var D=this.XML.createAttribute(B);D.value=C;A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){if (C) FCKDomTools.TrimNode(B);var D=0;var E=B.firstChild;while (E){if (this._AppendNode(A,E)) D++;E=E.nextSibling;};if (D==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,'nbsp');return A;};var F=A.nodeName;if (FCKListsLib.InlineChildReqElements[F]) return null;if (!FCKListsLib.EmptyElements[F]) A.appendChild(this.XML.createTextNode(''));};return A;};FCKXHtml._AppendNode=function(A,B){if (!B) return false;switch (B.nodeType){case 1:if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.hasAttribute('_moz_editor_bogus_node')) return false;if (B.getAttribute('_fcktemp')) return false;var C=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&&B.scopeName!='HTML'&&B.scopeName!='FCK') C=B.scopeName.toLowerCase()+':'+C;}else{if (C.StartsWith('fck:')) C=C.Remove(0,4);};if (!FCKRegexLib.ElementName.test(C)) return false;if (C=='br'&&(B.getAttribute('type',2)=='_moz'||!B.nextSibling)) return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var D=this._CreateNode(C);FCKXHtml._AppendAttributes(A,B,D,C);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var E=FCKXHtml.TagProcessors[C];if (E) D=E(D,B,A);else D=this._AppendChildNodes(D,B,Boolean(FCKListsLib.NonEmptyBlockElements[C]));if (!D) break;A.appendChild(D);break;case 3:return this._AppendTextNode(A,B.nodeValue.ReplaceNewLineChars(' '));case 8:if (FCKBrowserInfo.IsIE&&!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) {/*Do nothing... probably this is a wrong format comment.*/};break;default:A.appendChild(this.XML.createComment("Element not supported - Type: "+B.nodeType+" Name: "+B.nodeName));break;};return true;};function FCKXHtml_CreateNode_StrongEm(A){switch (A){case 'b':A='strong';break;case 'i':A='em';break;};return this.XML.createElement(A);};function FCKXHtml_CreateNode_Normal(A){return this.XML.createElement(A);};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.AddItem(A);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){var C=B.length>0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml._RemoveAttribute=function(A,B,C){var D=A.attributes.getNamedItem(C);if (D&&B.test(D.nodeValue)){var E=D.nodeValue.replace(B,'');if (E.length==0) A.attributes.removeNamedItem(C);else D.nodeValue=E;}};FCKXHtml.TagProcessors={img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);return A;},a:function(A,B){if (B.innerHTML.Trim().length==0&&!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){FCKXHtml._RemoveAttribute(A,FCKRegexLib.FCK_Class,'class');if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};FCKXHtml._AppendChildNodes(A,B,false);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.innerHTML)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;},table:function(A,B){if (FCKBrowserInfo.IsIE) FCKXHtml._RemoveAttribute(A,FCKRegexLib.FCK_Class,'class');FCKXHtml._AppendChildNodes(A,B,false);return A;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&&D.nodeType==3) D=D.previousSibling;if (D&&D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};FCKXHtml._AppendChildNodes(A,B);return A;},span:function(A,B){if (B.innerHTML.length==0) return false;FCKXHtml._AppendChildNodes(A,B,false);return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol; -FCKXHtml._GetMainXmlString=function(){return this.MainNode.xml;};FCKXHtml._AppendAttributes=function(A,B,C,D){var E=B.attributes;for (var n=0;n<E.length;n++){var F=E[n];if (F.specified){var G=F.nodeName.toLowerCase();var H;if (G.StartsWith('_fck')) continue;else if (G=='style') H=B.style.cssText.replace(FCKRegexLib.StyleProperties,FCKTools.ToLowerCase);else if (G=='class'||G.indexOf('on')==0) H=F.nodeValue;else if (D=='body'&&G=='contenteditable') continue;else if (F.nodeValue===true) H=G;else{try{H=B.getAttribute(G,2);}catch (e) {}};this._AppendAttribute(C,G,H||F.nodeValue);}}};FCKXHtml.TagProcessors['meta']=function(A,B){var C=A.attributes.getNamedItem('http-equiv');if (C==null||C.value.length==0){var D=B.outerHTML.match(FCKRegexLib.MetaHttpEquiv);if (D){D=D[1];FCKXHtml._AppendAttribute(A,'http-equiv',D);}};return A;};FCKXHtml.TagProcessors['font']=function(A,B){if (A.attributes.length==0) A=FCKXHtml.XML.createDocumentFragment();FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['input']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);if (B.value&&!A.attributes.getNamedItem('value')) FCKXHtml._AppendAttribute(A,'value',B.value);if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text');return A;};FCKXHtml.TagProcessors['option']=function(A,B){if (B.selected&&!A.attributes.getNamedItem('selected')) FCKXHtml._AppendAttribute(A,'selected','selected');FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['area']=function(A,B){if (!A.attributes.getNamedItem('coords')){var C=B.getAttribute('coords',2);if (C&&C!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',C);};if (!A.attributes.getNamedItem('shape')){var D=B.getAttribute('shape',2);if (D&&D.length>0) FCKXHtml._AppendAttribute(A,'shape',D);};return A;};FCKXHtml.TagProcessors['label']=function(A,B){if (B.htmlFor.length>0) FCKXHtml._AppendAttribute(A,'for',B.htmlFor);FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['form']=function(A,B){if (B.acceptCharset&&B.acceptCharset.length>0&&B.acceptCharset!='UNKNOWN') FCKXHtml._AppendAttribute(A,'accept-charset',B.acceptCharset);if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['textarea']=FCKXHtml.TagProcessors['select']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['div']=function(A,B){if (B.align.length>0) FCKXHtml._AppendAttribute(A,'align',B.align);FCKXHtml._AppendChildNodes(A,B,true);return A;} +var FCKDomTools={MoveChildren:function(A,B,C){if (A==B) return;var D;if (C){while ((D=A.lastChild)) B.insertBefore(A.removeChild(D),B.firstChild);}else{while ((D=A.firstChild)) B.appendChild(A.removeChild(D));}},MoveNode:function(A,B,C){if (C) B.insertBefore(FCKDomTools.RemoveNode(A),B.firstChild);else B.appendChild(FCKDomTools.RemoveNode(A));},TrimNode:function(A){this.LTrimNode(A);this.RTrimNode(A);},LTrimNode:function(A){var B;while ((B=A.firstChild)){if (B.nodeType==3){var C=B.nodeValue.LTrim();var D=B.nodeValue.length;if (C.length==0){A.removeChild(B);continue;}else if (C.length<D){B.splitText(D-C.length);A.removeChild(A.firstChild);}};break;}},RTrimNode:function(A){var B;while ((B=A.lastChild)){if (B.nodeType==3){var C=B.nodeValue.RTrim();var D=B.nodeValue.length;if (C.length==0){B.parentNode.removeChild(B);continue;}else if (C.length<D){B.splitText(C.length);A.lastChild.parentNode.removeChild(A.lastChild);}};break;};if (!FCKBrowserInfo.IsIE&&!FCKBrowserInfo.IsOpera){B=A.lastChild;if (B&&B.nodeType==1&&B.nodeName.toLowerCase()=='br'){B.parentNode.removeChild(B);}}},RemoveNode:function(A,B){if (B){var C;while ((C=A.firstChild)) A.parentNode.insertBefore(A.removeChild(C),A);};return A.parentNode.removeChild(A);},GetFirstChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.firstChild;while(C){if (C.nodeType==1&&C.tagName.Equals.apply(C.tagName,B)) return C;C=C.nextSibling;};return null;},GetLastChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.lastChild;while(C){if (C.nodeType==1&&(!B||C.tagName.Equals(B))) return C;C=C.previousSibling;};return null;},GetPreviousSourceElement:function(A,B,C,D){if (!A) return null;if (C&&A.nodeType==1&&A.nodeName.IEquals(C)) return null;if (A.previousSibling) A=A.previousSibling;else return this.GetPreviousSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.lastChild) A=A.lastChild;else return this.GetPreviousSourceElement(A,B,C,D);};return null;},GetNextSourceElement:function(A,B,C,D,E){while((A=this.GetNextSourceNode(A,E))){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (D&&A.nodeName.IEquals(D)) return this.GetNextSourceElement(A,B,C,D);return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;};return null;},GetNextSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&&A.firstChild) E=A.firstChild;else{if (D&&A==D) return null;E=A.nextSibling;if (!E&&(!D||D!=A.parentNode)) return this.GetNextSourceNode(A.parentNode,true,C,D);};if (C&&E&&E.nodeType!=C) return this.GetNextSourceNode(E,false,C,D);return E;},GetPreviousSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&&A.lastChild) E=A.lastChild;else{if (D&&A==D) return null;E=A.previousSibling;if (!E&&(!D||D!=A.parentNode)) return this.GetPreviousSourceNode(A.parentNode,true,C,D);};if (C&&E&&E.nodeType!=C) return this.GetPreviousSourceNode(E,false,C,D);return E;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.unshift(A);A=A.parentNode;};return B;},GetCommonParents:function(A,B){var C=this.GetParents(A);var D=this.GetParents(B);var E=[];for (var i=0;i<C.length;i++){if (C[i]==D[i]) E.push(C[i]);};return E;},GetCommonParentNode:function(A,B,C){var D={};if (!C.pop) C=[C];while (C.length>0) D[C.pop().toLowerCase()]=1;var E=this.GetCommonParents(A,B);var F=null;while ((F=E.pop())){if (D[F.nodeName.toLowerCase()]) return F;};return null;},GetIndexOf:function(A){var B=A.parentNode?A.parentNode.firstChild:null;var C=-1;while (B){C++;if (B==A) return C;B=B.nextSibling;};return-1;},PaddingNode:null,EnforcePaddingNode:function(A,B){try{if (!A||!A.body) return;}catch (e){return;};this.CheckAndRemovePaddingNode(A,B,true);try{if (A.body.lastChild&&(A.body.lastChild.nodeType!=1||A.body.lastChild.tagName.toLowerCase()==B.toLowerCase())) return;}catch (e){return;};var C=A.createElement(B);if (FCKBrowserInfo.IsGecko&&FCKListsLib.NonEmptyBlockElements[B]) FCKTools.AppendBogusBr(C);this.PaddingNode=C;if (A.body.childNodes.length==1&&A.body.firstChild.nodeType==1&&A.body.firstChild.tagName.toLowerCase()=='br'&&(A.body.firstChild.getAttribute('_moz_dirty')!=null||A.body.firstChild.getAttribute('type')=='_moz')) A.body.replaceChild(C,A.body.firstChild);else A.body.appendChild(C);},CheckAndRemovePaddingNode:function(A,B,C){var D=this.PaddingNode;if (!D) return;try{if (D.parentNode!=A.body||D.tagName.toLowerCase()!=B||(D.childNodes.length>1)||(D.firstChild&&D.firstChild.nodeValue!='\xa0'&&String(D.firstChild.tagName).toLowerCase()!='br')){this.PaddingNode=null;return;}}catch (e){this.PaddingNode=null;return;};if (!C){if (D.parentNode.childNodes.length>1) D.parentNode.removeChild(D);this.PaddingNode=null;}},HasAttribute:function(A,B){if (A.hasAttribute) return A.hasAttribute(B);else{var C=A.attributes[B];return (C!=undefined&&C.specified);}},HasAttributes:function(A){var B=A.attributes;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsIE&&B[i].nodeName=='class'){if (A.className.length>0) return true;}else if (B[i].specified) return true;};return false;},RemoveAttribute:function(A,B){if (FCKBrowserInfo.IsIE&&B.toLowerCase()=='class') B='className';return A.removeAttribute(B,0);},GetAttributeValue:function(A,B){var C=B;if (typeof B=='string') B=A.attributes[B];else C=B.nodeName;if (B&&B.specified){if (C=='style') return A.style.cssText;else if (C=='class'||C.indexOf('on')==0) return B.nodeValue;else{return A.getAttribute(C,2);}};return null;},Contains:function(A,B){if (A.contains&&B.nodeType==1) return A.contains(B);while ((B=B.parentNode)){if (B==A) return true;};return false;},BreakParent:function(A,B,C){var D=C||new FCKDomRange(FCKTools.GetElementWindow(A));D.SetStart(A,4);D.SetEnd(B,4);var E=D.ExtractContents();D.InsertNode(A.parentNode.removeChild(A));E.InsertAfterNode(A);D.Release(!!C);},GetNodeAddress:function(A,B){var C=[];while (A&&A!=A.ownerDocument.documentElement){var D=A.parentNode;var E=-1;for(var i=0;i<D.childNodes.length;i++){var F=D.childNodes[i];if (B===true&&F.nodeType==3&&F.previousSibling&&F.previousSibling.nodeType==3) continue;E++;if (D.childNodes[i]==A) break;};C.unshift(E);A=A.parentNode;};return C;},GetNodeFromAddress:function(A,B,C){var D=A.documentElement;for (var i=0;i<B.length;i++){var E=B[i];if (!C){D=D.childNodes[E];continue;};var F=-1;for (var j=0;j<D.childNodes.length;j++){var G=D.childNodes[j];if (C===true&&G.nodeType==3&&G.previousSibling&&G.previousSibling.nodeType==3) continue;F++;if (F==E){D=G;break;}}};return D;},CloneElement:function(A){A=A.cloneNode(false);A.removeAttribute('id',false);return A;},ClearElementJSProperty:function(A,B){if (FCKBrowserInfo.IsIE) A.removeAttribute(B);else delete A[B];},SetElementMarker:function (A,B,C,D){var E=String(parseInt(Math.random()*0xfffffff,10));B._FCKMarkerId=E;B[C]=D;if (!A[E]) A[E]={ 'element':B,'markers':{} };A[E]['markers'][C]=D;},ClearElementMarkers:function(A,B,C){var D=B._FCKMarkerId;if (!D) return;this.ClearElementJSProperty(B,'_FCKMarkerId');for (var j in A[D]['markers']) this.ClearElementJSProperty(B,j);if (C) delete A[D];},ClearAllMarkers:function(A){for (var i in A) this.ClearElementMarkers(A,A[i]['element'],true);},ListToArray:function(A,B,C,D,E){if (!A.nodeName.IEquals(['ul','ol'])) return [];if (!D) D=0;if (!C) C=[];for (var i=0;i<A.childNodes.length;i++){var F=A.childNodes[i];if (!F.nodeName.IEquals('li')) continue;var G={ 'parent':A,'indent':D,'contents':[] };if (!E){G.grandparent=A.parentNode;if (G.grandparent&&G.grandparent.nodeName.IEquals('li')) G.grandparent=G.grandparent.parentNode;}else G.grandparent=E;if (B) this.SetElementMarker(B,F,'_FCK_ListArray_Index',C.length);C.push(G);for (var j=0;j<F.childNodes.length;j++){var H=F.childNodes[j];if (H.nodeName.IEquals(['ul','ol'])) this.ListToArray(H,B,C,D+1,G.grandparent);else G.contents.push(H);}};return C;},ArrayToList:function(A,B,C){if (C==undefined) C=0;if (!A||A.length<C+1) return null;var D=A[C].parent.ownerDocument;var E=D.createDocumentFragment();var F=null;var G=C;var H=Math.max(A[C].indent,0);var I=null;while (true){var J=A[G];if (J.indent==H){if (!F||A[G].parent.nodeName!=F.nodeName){F=A[G].parent.cloneNode(false);E.appendChild(F);};I=D.createElement('li');F.appendChild(I);for (var i=0;i<J.contents.length;i++) I.appendChild(J.contents[i].cloneNode(true));G++;}else if (J.indent==Math.max(H,0)+1){var K=this.ArrayToList(A,null,G);I.appendChild(K.listNode);G=K.nextIndex;}else if (J.indent==-1&&C==0&&J.grandparent){var I;if (J.grandparent.nodeName.IEquals(['ul','ol'])) I=D.createElement('li');else{if (FCKConfig.EnterMode.IEquals(['div','p'])&&!J.grandparent.nodeName.IEquals('td')) I=D.createElement(FCKConfig.EnterMode);else I=D.createDocumentFragment();};for (var i=0;i<J.contents.length;i++) I.appendChild(J.contents[i].cloneNode(true));if (I.nodeType==11){if (I.lastChild&&I.lastChild.getAttribute&&I.lastChild.getAttribute('type')=='_moz') I.removeChild(I.lastChild);I.appendChild(D.createElement('br'));};if (I.nodeName.IEquals(FCKConfig.EnterMode)&&I.firstChild){this.TrimNode(I);if (FCKListsLib.BlockBoundaries[I.firstChild.nodeName.toLowerCase()]){var M=D.createDocumentFragment();while (I.firstChild) M.appendChild(I.removeChild(I.firstChild));I=M;}};if (FCKBrowserInfo.IsGeckoLike&&I.nodeName.IEquals(['div','p'])) FCKTools.AppendBogusBr(I);E.appendChild(I);F=null;G++;}else return null;if (A.length<=G||Math.max(A[G].indent,0)<H){break;}};if (B){var N=E.firstChild;while (N){if (N.nodeType==1) this.ClearElementMarkers(B,N);N=this.GetNextSourceNode(N);}};return { 'listNode':E,'nextIndex':G };},GetNextSibling:function(A,B){A=A.nextSibling;while (A&&!B&&A.nodeType!=1&&(A.nodeType!=3||A.nodeValue.length==0)) A=A.nextSibling;return A;},GetPreviousSibling:function(A,B){A=A.previousSibling;while (A&&!B&&A.nodeType!=1&&(A.nodeType!=3||A.nodeValue.length==0)) A=A.previousSibling;return A;},CheckIsEmptyElement:function(A,B){var C=A.firstChild;var D;while (C){if (C.nodeType==1){if (D||!FCKListsLib.InlineNonEmptyElements[C.nodeName.toLowerCase()]) return false;if (!B||B(C)===true) D=C;}else if (C.nodeType==3&&C.nodeValue.length>0) return false;C=C.nextSibling;};return D?this.CheckIsEmptyElement(D,B):true;},SetElementStyles:function(A,B){var C=A.style;for (var D in B) C[D]=B[D];},GetCurrentElementStyle:function(w,A,B){if (FCKBrowserInfo.IsIE) return A.currentStyle[B];else return w.getComputedStyle(A,'')[B];},GetPositionedAncestor:function(w,A){var B=A;while (B!=B.ownerDocument.documentElement){if (this.GetCurrentElementStyle(w,B,'position')!='static') return B;B=B.parentNode;};return null;},ScrollIntoView:function(A,B){var C=FCKTools.GetElementWindow(A);var D=FCKTools.GetViewPaneSize(C).Height;var E=D*-1;if (B===false){E+=A.offsetHeight;E+=parseInt(this.GetCurrentElementStyle(C,A,'marginBottom')||0,10);};E+=A.offsetTop;while ((A=A.offsetParent)) E+=A.offsetTop||0;var F=FCKTools.GetScrollPosition(C).Y;if (E>0&&E>F) C.scrollTo(0,E);}}; +var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.AppendStyleSheet=function(A,B){if (typeof(B)=='string') return this._AppendStyleSheet(A,B);else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.AppendStyleString=function (A,B){this._AppendStyleString(A,B);};FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&&!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.FixDocumentParentWindow=function(A){if (A.document) A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&amp;');A=A.replace(/</g,'&lt;');A=A.replace(/>/g,'&gt;');return A;};FCKTools.HTMLDecode=function(A){if (!A) return '';A=A.replace(/&gt;/g,'>');A=A.replace(/&lt;/g,'<');A=A.replace(/&amp;/g,'&');return A;};FCKTools._ProcessLineBreaksForPMode=function(A,B,C,D,E){var F=0;var G="<p>";var H="</p>";var I="<br />";if (C){G="<li>";H="</li>";F=1;};while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='p'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};var n=B.charAt(i+1);if (n=='\r'){i++;n=B.charAt(i+1);};if (n=='\n'){i++;if (F) E.push(H);E.push(G);F=1;}else E.push(I);}};FCKTools._ProcessLineBreaksForDivMode=function(A,B,C,D,E){var F=0;var G="<div>";var H="</div>";if (C){G="<li>";H="</li>";F=1;};while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='div'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F){if (E[E.length-1]==G){E.push("&nbsp;");};E.push(H);};E.push(G);F=1;};if (F) E.push(H);};FCKTools._ProcessLineBreaksForBrMode=function(A,B,C,D,E){var F=0;var G="<br />";var H="";if (C){G="<li>";H="</li>";F=1;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F&&H.length) E.push (H);E.push(G);F=1;}};FCKTools.ProcessLineBreaks=function(A,B,C){var D=B.EnterMode.toLowerCase();var E=[];var F=0;var G=new A.FCKDomRange(A.FCK.EditorWindow);G.MoveToSelection();var H=G._Range.startContainer;while (H&&H.nodeType!=1) H=H.parentNode;if (H&&H.tagName.toLowerCase()=='li') F=1;if (D=='p') this._ProcessLineBreaksForPMode(A,C,F,H,E);else if (D=='div') this._ProcessLineBreaksForDivMode(A,C,F,H,E);else if (D=='br') this._ProcessLineBreaksForBrMode(A,C,F,H,E);return E.join("");};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i<arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||'CSS1Compat'));};FCKTools.ArgumentsToArray=function(A,B,C){B=B||0;C=C||A.length;var D=[];for (var i=B;i<B+C&&i<A.length;i++) D.push(A[i]);return D;};FCKTools.CloneObject=function(A){var B=function() {};B.prototype=A;return new B;};FCKTools.AppendBogusBr=function(A){if (!A) return;var B=this.GetLastItem(A.getElementsByTagName('br'));if (!B||(B.getAttribute('type',2)!='_moz'&&B.getAttribute('_moz_dirty')==null)){var C=this.GetElementDocument(A);if (FCKBrowserInfo.IsOpera) A.appendChild(C.createTextNode(''));else A.appendChild(this.CreateBogusBR(C));}};FCKTools.GetLastItem=function(A){if (A.length>0) return A[A.length-1];return null;};FCKTools.GetDocumentPosition=function(w,A){var x=0;var y=0;var B=A;var C=null;var D=FCKTools.GetElementWindow(B);while (B&&!(D==w&&(B==w.document.body||B==w.document.documentElement))){x+=B.offsetLeft-B.scrollLeft;y+=B.offsetTop-B.scrollTop;if (!FCKBrowserInfo.IsOpera){var E=C;while (E&&E!=B){x-=E.scrollLeft;y-=E.scrollTop;E=E.parentNode;}};C=B;if (B.offsetParent) B=B.offsetParent;else{if (D!=w){B=D.frameElement;C=null;if (B) D=FCKTools.GetElementWindow(B);}else B=null;}};if (FCKDomTools.GetCurrentElementStyle(w,w.document.body,'position')!='static'||(FCKBrowserInfo.IsIE&&FCKDomTools.GetPositionedAncestor(w,A)==null)){x+=w.document.body.offsetLeft;y+=w.document.body.offsetTop;};return { "x":x,"y":y };};FCKTools.GetWindowPosition=function(w,A){var B=this.GetDocumentPosition(w,A);var C=FCKTools.GetScrollPosition(w);B.x-=C.X;B.y-=C.Y;return B;};FCKTools.ProtectFormStyles=function(A){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return [];var B=[];var C=['style','className'];for (var i=0;i<C.length;i++){var D=C[i];if (A.elements.namedItem(D)){var E=A.elements.namedItem(D);B.push([E,E.nextSibling]);A.removeChild(E);}};return B;};FCKTools.RestoreFormStyles=function(A,B){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return;if (B.length>0){for (var i=B.length-1;i>=0;i--){var C=B[i][0];var D=B[i][1];if (D) A.insertBefore(C,D);else A.appendChild(C);}}};FCKTools.GetNextNode=function(A,B){if (A.firstChild) return A.firstChild;else if (A.nextSibling) return A.nextSibling;else{var C=A.parentNode;while (C){if (C==B) return null;if (C.nextSibling) return C.nextSibling;else C=C.parentNode;}};return null;};FCKTools.GetNextTextNode=function(A,B,C){node=this.GetNextNode(A,B);if (C&&node&&C(node)) return null;while (node&&node.nodeType!=3){node=this.GetNextNode(node,B);if (C&&node&&C(node)) return null;};return node;};FCKTools.Merge=function(){var A=arguments;var o=A[0];for (var i=1;i<A.length;i++){var B=A[i];for (var p in B) o[p]=B[p];};return o;};FCKTools.IsArray=function(A){return (A instanceof Array);};FCKTools.AppendLengthProperty=function(A,B){var C=0;for (var n in A) C++;return A[B||'length']=C;};FCKTools.NormalizeCssText=function(A){var B=document.createElement('span');B.style.cssText=A;return B.style.cssText;};FCKTools.Hitch=function(A,B){return function() { A[B].apply(A,arguments);};}; +FCKTools.CancelEvent=function(e){return false;};FCKTools._AppendStyleSheet=function(A,B){return A.createStyleSheet(B).owningElement;};FCKTools._AppendStyleString=function(A,B){var s=A.createStyleSheet("");s.cssText=B;return s;};FCKTools.ClearElementAttributes=function(A){A.clearAttributes();};FCKTools.GetAllChildrenIds=function(A){var B=[];for (var i=0;i<A.all.length;i++){var C=A.all[i].id;if (C&&C.length>0) B[B.length]=C;};return B;};FCKTools.RemoveOuterTags=function(e){e.insertAdjacentHTML('beforeBegin',e.innerHTML);e.parentNode.removeChild(e);};FCKTools.CreateXmlObject=function(A){var B;switch (A){case 'XmlHttp':B=['MSXML2.XmlHttp','Microsoft.XmlHttp'];break;case 'DOMDocument':B=['MSXML2.DOMDocument','Microsoft.XmlDom'];break;};for (var i=0;i<2;i++){try { return new ActiveXObject(B[i]);}catch (e){}};if (FCKLang.NoActiveX){alert(FCKLang.NoActiveX);FCKLang.NoActiveX=null;};return null;};FCKTools.DisableSelection=function(A){A.unselectable='on';var e,i=0;while ((e=A.all[i++])){switch (e.tagName){case 'IFRAME':case 'TEXTAREA':case 'INPUT':case 'SELECT':break;default:e.unselectable='on';}}};FCKTools.GetScrollPosition=function(A){var B=A.document;var C={ X:B.documentElement.scrollLeft,Y:B.documentElement.scrollTop };if (C.X>0||C.Y>0) return C;return { X:B.body.scrollLeft,Y:B.body.scrollTop };};FCKTools.AddEventListener=function(A,B,C){A.attachEvent('on'+B,C);};FCKTools.RemoveEventListener=function(A,B,C){A.detachEvent('on'+B,C);};FCKTools.AddEventListenerEx=function(A,B,C,D){var o={};o.Source=A;o.Params=D||[];o.Listener=function(ev){return C.apply(o.Source,[ev].concat(o.Params));};if (FCK.IECleanup) FCK.IECleanup.AddItem(null,function() { o.Source=null;o.Params=null;});A.attachEvent('on'+B,o.Listener);A=null;D=null;};FCKTools.GetViewPaneSize=function(A){var B;var C=A.document.documentElement;if (C&&C.clientWidth) B=C;else B=A.document.body;if (B) return { Width:B.clientWidth,Height:B.clientHeight };else return { Width:0,Height:0 };};FCKTools.SaveStyles=function(A){var B=FCKTools.ProtectFormStyles(A);var C={};if (A.className.length>0){C.Class=A.className;A.className='';};var D=A.style.cssText;if (D.length>0){C.Inline=D;A.style.cssText='';};FCKTools.RestoreFormStyles(A,B);return C;};FCKTools.RestoreStyles=function(A,B){var C=FCKTools.ProtectFormStyles(A);A.className=B.Class||'';A.style.cssText=B.Inline||'';FCKTools.RestoreFormStyles(A,C);};FCKTools.RegisterDollarFunction=function(A){A.$=A.document.getElementById;};FCKTools.AppendElement=function(A,B){return A.appendChild(this.GetElementDocument(A).createElement(B));};FCKTools.ToLowerCase=function(A){return A.toLowerCase();}; +var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='var FCKeditorAPI = {Version : "2.5",VersionBuild : "17352",__Instances : new Object(),GetInstance : function( name ){return this.__Instances[ name ];},_FormSubmit : function(){for ( var name in FCKeditorAPI.__Instances ){var oEditor = FCKeditorAPI.__Instances[ name ] ;if ( oEditor.GetParentForm && oEditor.GetParentForm() == this )oEditor.UpdateLinkedField() ;}this._FCKOriginalSubmit() ;},_FunctionQueue : {Functions : new Array(),IsRunning : false,Add : function( f ){this.Functions.push( f );if ( !this.IsRunning )this.StartNext();},StartNext : function(){var aQueue = this.Functions ;if ( aQueue.length > 0 ){this.IsRunning = true;aQueue[0].call();}else this.IsRunning = false;},Remove : function( f ){var aQueue = this.Functions;var i = 0, fFunc;while( (fFunc = aQueue[ i ]) ){if ( fFunc == f )aQueue.splice( i,1 );i++ ;}this.StartNext();}}}';if (A.execScript) A.execScript(B,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if (FCKBrowserInfo.IsSafari||FCKBrowserInfo.IsGecko19){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;};FCKeditorAPI.__Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&&(typeof(A.submit)=='function'||(!A.submit.tagName&&!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){if (!window.FCKUnloadFlag) return;delete FCKeditorAPI.__Instances[FCK.Name];};function FCKeditorAPI_ConfirmCleanup(){window.FCKUnloadFlag=true;};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);FCKTools.AddEventListener(window,'beforeunload',FCKeditorAPI_ConfirmCleanup); +var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i<A.length;i++){var B=document.createElement('img');FCKTools.AddEventListenerEx(B,'load',_FCKImagePreloader_OnImage,this);FCKTools.AddEventListenerEx(B,'error',_FCKImagePreloader_OnImage,this);B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(A,B){if ((--B._PreloadCount)==0&&B.OnComplete) B.OnComplete();} +var FCKRegexLib={AposEntity:/&apos;/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BeforeBody:/(^[\s\S]*\<body[^\>]*\>)/i,AfterBody:/(\<\/body\>[\s\S]*$)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HasBodyTag:/<body[\s|>]/i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/\s*FCK__[^ ]*(?=\s+|$)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>\s*(<\/\1>)?$/,EmptyOutParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>(?:\s*|&nbsp;)(<\/\1>)?$/,TagBody:/></,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/<img(?=\s).*?\ssrc=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,ProtectUrlsA:/<a(?=\s).*?\shref=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,ProtectUrlsArea:/<area(?=\s).*?\shref=((?:(?:\s*)("|').*?\2)|(?:[^"'][^ >]+))/gi,Html4DocType:/HTML 4\.0 Transitional/i,DocTypeTag:/<!DOCTYPE[^>]*>/i,TagsWithEvent:/<[^\>]+ on\w+[\s\r\n]*=[\s\r\n]*?('|")[\s\S]+?\>/g,EventAttributes:/\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|")([\s\S]*?)\2/g,ProtectedEvents:/\s\w+_fckprotectedatt="([^"]+)"/g,StyleProperties:/\S+\s*:/g,InvalidSelfCloseTags:/(<(?!base|meta|link|hr|br|param|img|area|input)([a-zA-Z0-9:]+)[^>]*)\/>/gi,StyleVariableAttName:/#\(\s*("|')(.+?)\1[^\)]*\s*\)/g,RegExp:/^\/(.*)\/([gim]*)$/}; +var FCKListsLib={BlockElements:{ address:1,blockquote:1,center:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,marquee:1,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 },NonEmptyBlockElements:{ p:1,div:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,address:1,pre:1,ol:1,ul:1,li:1,td:1,th:1 },InlineChildReqElements:{ abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },InlineNonEmptyElements:{ a:1,abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },EmptyElements:{ base:1,col:1,meta:1,link:1,hr:1,br:1,param:1,img:1,area:1,input:1 },PathBlockElements:{ address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,de:1 },PathBlockLimitElements:{ body:1,div:1,td:1,th:1,caption:1,form:1 },StyleBlockElements:{ address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1 },StyleObjectElements:{ img:1,hr:1,li:1,table:1,tr:1,td:1,embed:1,object:1,ol:1,ul:1 },BlockBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1 },ListBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1,br:1 }}; +var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French',gl:'Galician',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',it:'Italian',ja:'Japanese',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},GetActiveLanguage:function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length>=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length>=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;},TranslateElements:function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i<e.length;i++){if ((E=e[i].getAttribute('fckLang'))){if ((s=FCKLang[E])){if (D) s=FCKTools.HTMLEncode(s);e[i][C]=s;}}}},TranslatePage:function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);this.TranslateElements(A,'LEGEND','innerHTML');},Initialize:function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage={};this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}}; +var FCKXHtmlEntities={};FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';var B,e;if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.Entities={' ':'nbsp','¡':'iexcl','¢':'cent','£':'pound','¤':'curren','Â¥':'yen','¦':'brvbar','§':'sect','¨':'uml','©':'copy','ª':'ordf','«':'laquo','¬':'not','­':'shy','®':'reg','¯':'macr','°':'deg','±':'plusmn','²':'sup2','³':'sup3','´':'acute','µ':'micro','¶':'para','·':'middot','¸':'cedil','¹':'sup1','º':'ordm','»':'raquo','¼':'frac14','½':'frac12','¾':'frac34','¿':'iquest','×':'times','÷':'divide','Æ’':'fnof','•':'bull','…':'hellip','′':'prime','″':'Prime','‾':'oline','â„':'frasl','℘':'weierp','â„‘':'image','â„œ':'real','â„¢':'trade','ℵ':'alefsym','â†':'larr','↑':'uarr','→':'rarr','↓':'darr','↔':'harr','↵':'crarr','â‡':'lArr','⇑':'uArr','⇒':'rArr','⇓':'dArr','⇔':'hArr','∀':'forall','∂':'part','∃':'exist','∅':'empty','∇':'nabla','∈':'isin','∉':'notin','∋':'ni','âˆ':'prod','∑':'sum','−':'minus','∗':'lowast','√':'radic','âˆ':'prop','∞':'infin','∠':'ang','∧':'and','∨':'or','∩':'cap','∪':'cup','∫':'int','∴':'there4','∼':'sim','≅':'cong','≈':'asymp','≠':'ne','≡':'equiv','≤':'le','≥':'ge','⊂':'sub','⊃':'sup','⊄':'nsub','⊆':'sube','⊇':'supe','⊕':'oplus','⊗':'otimes','⊥':'perp','â‹…':'sdot','\u2308':'lceil','\u2309':'rceil','\u230a':'lfloor','\u230b':'rfloor','\u2329':'lang','\u232a':'rang','â—Š':'loz','â™ ':'spades','♣':'clubs','♥':'hearts','♦':'diams','"':'quot','ˆ':'circ','Ëœ':'tilde',' ':'ensp',' ':'emsp',' ':'thinsp','‌':'zwnj','â€':'zwj','‎':'lrm','â€':'rlm','–':'ndash','—':'mdash','‘':'lsquo','’':'rsquo','‚':'sbquo','“':'ldquo','â€':'rdquo','„':'bdquo','†':'dagger','‡':'Dagger','‰':'permil','‹':'lsaquo','›':'rsaquo','€':'euro'};for (e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){B={'À':'Agrave','Ã':'Aacute','Â':'Acirc','Ã':'Atilde','Ä':'Auml','Ã…':'Aring','Æ':'AElig','Ç':'Ccedil','È':'Egrave','É':'Eacute','Ê':'Ecirc','Ë':'Euml','ÃŒ':'Igrave','Ã':'Iacute','ÃŽ':'Icirc','Ã':'Iuml','Ã':'ETH','Ñ':'Ntilde','Ã’':'Ograve','Ó':'Oacute','Ô':'Ocirc','Õ':'Otilde','Ö':'Ouml','Ø':'Oslash','Ù':'Ugrave','Ú':'Uacute','Û':'Ucirc','Ãœ':'Uuml','Ã':'Yacute','Þ':'THORN','ß':'szlig','à':'agrave','á':'aacute','â':'acirc','ã':'atilde','ä':'auml','Ã¥':'aring','æ':'aelig','ç':'ccedil','è':'egrave','é':'eacute','ê':'ecirc','ë':'euml','ì':'igrave','í':'iacute','î':'icirc','ï':'iuml','ð':'eth','ñ':'ntilde','ò':'ograve','ó':'oacute','ô':'ocirc','õ':'otilde','ö':'ouml','ø':'oslash','ù':'ugrave','ú':'uacute','û':'ucirc','ü':'uuml','ý':'yacute','þ':'thorn','ÿ':'yuml','Å’':'OElig','Å“':'oelig','Å ':'Scaron','Å¡':'scaron','Ÿ':'Yuml'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){B={'Α':'Alpha','Î’':'Beta','Γ':'Gamma','Δ':'Delta','Ε':'Epsilon','Ζ':'Zeta','Η':'Eta','Θ':'Theta','Ι':'Iota','Κ':'Kappa','Λ':'Lambda','Îœ':'Mu','Î':'Nu','Ξ':'Xi','Ο':'Omicron','Π':'Pi','Ρ':'Rho','Σ':'Sigma','Τ':'Tau','Î¥':'Upsilon','Φ':'Phi','Χ':'Chi','Ψ':'Psi','Ω':'Omega','α':'alpha','β':'beta','γ':'gamma','δ':'delta','ε':'epsilon','ζ':'zeta','η':'eta','θ':'theta','ι':'iota','κ':'kappa','λ':'lambda','μ':'mu','ν':'nu','ξ':'xi','ο':'omicron','Ï€':'pi','Ï':'rho','Ï‚':'sigmaf','σ':'sigma','Ï„':'tau','Ï…':'upsilon','φ':'phi','χ':'chi','ψ':'psi','ω':'omega','\u03d1':'thetasym','\u03d2':'upsih','\u03d6':'piv'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={};A=' ';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&&D.length>0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');}; +var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKDomTools.CheckAndRemovePaddingNode(A.ownerDocument,FCKConfig.EnterMode);FCKXHtmlEntities.Initialize();this._NbspEntity=(FCKConfig.ProcessHTMLEntities?'nbsp':'#160');var D=FCK.IsDirty();FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;if (FCKBrowserInfo.IsSafari) E=E.replace(/^<xhtml.*?>/,'<xhtml>');E=E.substr(7,E.length-15).Trim();E=E.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i<FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&');if (!D) FCK.ResetIsDirty();FCKDomTools.EnforcePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);return E;};FCKXHtml._AppendAttribute=function(A,B,C){try{if (C==undefined||C==null) C='';else if (C.replace){if (FCKConfig.ForceSimpleAmpersand) C=C.replace(/&/g,'___FCKAmp___');C=C.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity);};var D=this.XML.createAttribute(B);D.value=C;A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){var D=B.firstChild;while (D){this._AppendNode(A,D);D=D.nextSibling;};if (C&&B.tagName&&B.tagName.toLowerCase()!='pre'){FCKDomTools.TrimNode(A);if (FCKConfig.FillEmptyBlocks){var E=A.lastChild;if (E&&E.nodeType==1&&E.nodeName=='br') this._AppendEntity(A,this._NbspEntity);}};if (A.childNodes.length==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,this._NbspEntity);return A;};var F=A.nodeName;if (FCKListsLib.InlineChildReqElements[F]) return null;if (!FCKListsLib.EmptyElements[F]) A.appendChild(this.XML.createTextNode(''));};return A;};FCKXHtml._AppendNode=function(A,B){if (!B) return false;switch (B.nodeType){case 1:if (FCKBrowserInfo.IsGecko&&B.tagName.toLowerCase()=='br'&&B.parentNode.tagName.toLowerCase()=='pre'){var C='\r';if (B==B.parentNode.firstChild) C+='\r';return FCKXHtml._AppendNode(A,this.XML.createTextNode(C));};if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.nextSibling&&(B.hasAttribute('_moz_editor_bogus_node')||B.getAttribute('type')=='_moz')) return false;if (B.getAttribute('_fcktemp')) return false;var D=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&&B.scopeName!='HTML'&&B.scopeName!='FCK') D=B.scopeName.toLowerCase()+':'+D;}else{if (D.StartsWith('fck:')) D=D.Remove(0,4);};if (!FCKRegexLib.ElementName.test(D)) return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var E=this.XML.createElement(D);FCKXHtml._AppendAttributes(A,B,E,D);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var F=FCKXHtml.TagProcessors[D];if (F) E=F(E,B,A);else E=this._AppendChildNodes(E,B,Boolean(FCKListsLib.NonEmptyBlockElements[D]));if (!E) return false;A.appendChild(E);break;case 3:if (B.parentNode&&B.parentNode.nodeName.IEquals('pre')) return this._AppendTextNode(A,B.nodeValue);return this._AppendTextNode(A,B.nodeValue.ReplaceNewLineChars(' '));case 8:if (FCKBrowserInfo.IsIE&&!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) {/*Do nothing... probably this is a wrong format comment.*/};break;default:A.appendChild(this.XML.createComment("Element not supported - Type: "+B.nodeType+" Name: "+B.nodeName));break;};return true;};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.AddItem(A);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){var C=B.length>0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml.TagProcessors={a:function(A,B){if (B.innerHTML.Trim().length==0&&!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};A=FCKXHtml._AppendChildNodes(A,B,false);return A;},area:function(A,B){var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (!A.attributes.getNamedItem('coords')){var D=B.getAttribute('coords',2);if (D&&D!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',D);};if (!A.attributes.getNamedItem('shape')){var E=B.getAttribute('shape',2);if (E&&E.length>0) FCKXHtml._AppendAttribute(A,'shape',E.toLowerCase());}};return A;},body:function(A,B){A=FCKXHtml._AppendChildNodes(A,B,false);A.removeAttribute('spellcheck');return A;},iframe:function(A,B){var C=B.innerHTML;if (FCKBrowserInfo.IsGecko) C=FCKTools.HTMLDecode(C);C=C.replace(/\s_fcksavedurl="[^"]*"/g,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);return A;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&&D.nodeType==3) D=D.previousSibling;if (D&&D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};A=FCKXHtml._AppendChildNodes(A,B);return A;},pre:function (A,B){var C=B.firstChild;if (C&&C.nodeType==3) A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem('\r\n')));FCKXHtml._AppendChildNodes(A,B,true);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},span:function(A,B){if (B.innerHTML.length==0) return false;A=FCKXHtml._AppendChildNodes(A,B,false);return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');var C=B.innerHTML;if (FCKBrowserInfo.IsIE) C=C.replace(/^(\r\n|\n|\r)/,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol; +FCKXHtml._GetMainXmlString=function(){return this.MainNode.xml;};FCKXHtml._AppendAttributes=function(A,B,C,D){var E=B.attributes;for (var n=0;n<E.length;n++){var F=E[n];if (F.specified){var G=F.nodeName.toLowerCase();var H;if (G.StartsWith('_fck')) continue;else if (G=='style'){var I=FCKTools.ProtectFormStyles(B);H=B.style.cssText.replace(FCKRegexLib.StyleProperties,FCKTools.ToLowerCase);FCKTools.RestoreFormStyles(B,I);}else if (G=='class'){H=F.nodeValue.replace(FCKRegexLib.FCK_Class,'');if (H.length==0) continue;}else if (G.indexOf('on')==0) H=F.nodeValue;else if (D=='body'&&G=='contenteditable') continue;else if (F.nodeValue===true) H=G;else{try{H=B.getAttribute(G,2);}catch (e) {}};this._AppendAttribute(C,G,H||F.nodeValue);}}};FCKXHtml.TagProcessors['div']=function(A,B){if (B.align.length>0) FCKXHtml._AppendAttribute(A,'align',B.align);A=FCKXHtml._AppendChildNodes(A,B,true);return A;};FCKXHtml.TagProcessors['font']=function(A,B){if (A.attributes.length==0) A=FCKXHtml.XML.createDocumentFragment();A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['form']=function(A,B){if (B.acceptCharset&&B.acceptCharset.length>0&&B.acceptCharset!='UNKNOWN') FCKXHtml._AppendAttribute(A,'accept-charset',B.acceptCharset);var C=B.attributes['name'];if (C&&C.value.length>0) FCKXHtml._AppendAttribute(A,'name',C.value);A=FCKXHtml._AppendChildNodes(A,B,true);return A;};FCKXHtml.TagProcessors['input']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);if (B.value&&!A.attributes.getNamedItem('value')) FCKXHtml._AppendAttribute(A,'value',B.value);if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text');return A;};FCKXHtml.TagProcessors['label']=function(A,B){if (B.htmlFor.length>0) FCKXHtml._AppendAttribute(A,'for',B.htmlFor);A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['map']=function(A,B){if (!A.attributes.getNamedItem('name')){var C=B.name;if (C) FCKXHtml._AppendAttribute(A,'name',C);};A=FCKXHtml._AppendChildNodes(A,B,true);return A;};FCKXHtml.TagProcessors['meta']=function(A,B){var C=A.attributes.getNamedItem('http-equiv');if (C==null||C.value.length==0){var D=B.outerHTML.match(FCKRegexLib.MetaHttpEquiv);if (D){D=D[1];FCKXHtml._AppendAttribute(A,'http-equiv',D);}};return A;};FCKXHtml.TagProcessors['option']=function(A,B){if (B.selected&&!A.attributes.getNamedItem('selected')) FCKXHtml._AppendAttribute(A,'selected','selected');A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['textarea']=FCKXHtml.TagProcessors['select']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);A=FCKXHtml._AppendChildNodes(A,B);return A;} var FCKCodeFormatter={};FCKCodeFormatter.Init=function(){var A=this.Regex={};A.BlocksOpener=/\<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.BlocksCloser=/\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.NewLineTags=/\<(BR|HR)[^\>]*\>/gi;A.MainTags=/\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi;A.LineSplitter=/\s*\n+\s*/g;A.IncreaseIndent=/^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i;A.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i;A.FormatIndentatorRemove=new RegExp('^'+FCKConfig.FormatIndentator);A.ProtectedTags=/(<PRE[^>]*>)([\s\S]*?)(<\/PRE>)/gi;};FCKCodeFormatter._ProtectData=function(A,B,C,D){return B+'___FCKpd___'+FCKCodeFormatter.ProtectedData.AddItem(C)+D;};FCKCodeFormatter.Format=function(A){if (!this.Regex) this.Init();FCKCodeFormatter.ProtectedData=[];var B=A.replace(this.Regex.ProtectedTags,FCKCodeFormatter._ProtectData);B=B.replace(this.Regex.BlocksOpener,'\n$&');B=B.replace(this.Regex.BlocksCloser,'$&\n');B=B.replace(this.Regex.NewLineTags,'$&\n');B=B.replace(this.Regex.MainTags,'\n$&\n');var C='';var D=B.split(this.Regex.LineSplitter);B='';for (var i=0;i<D.length;i++){var E=D[i];if (E.length==0) continue;if (this.Regex.DecreaseIndent.test(E)) C=C.replace(this.Regex.FormatIndentatorRemove,'');B+=C+E+'\n';if (this.Regex.IncreaseIndent.test(E)) C+=FCKConfig.FormatIndentator;};for (var j=0;j<FCKCodeFormatter.ProtectedData.length;j++){var F=new RegExp('___FCKpd___'+j);B=B.replace(F,FCKCodeFormatter.ProtectedData[j].replace(/\$/g,'$$$$'));};return B.Trim();} -var FCKUndo={};FCKUndo.SavedData=[];FCKUndo.CurrentIndex=-1;FCKUndo.TypesCount=FCKUndo.MaxTypes=25;FCKUndo.Typing=false;FCKUndo.SaveUndoStep=function(){if (FCK.EditMode!=0) return;FCKUndo.SavedData=FCKUndo.SavedData.slice(0,FCKUndo.CurrentIndex+1);var A=FCK.EditorDocument.body.innerHTML;if (FCKUndo.CurrentIndex>=0&&A==FCKUndo.SavedData[FCKUndo.CurrentIndex][0]) return;if (FCKUndo.CurrentIndex+1>=FCKConfig.MaxUndoLevels) FCKUndo.SavedData.shift();else FCKUndo.CurrentIndex++;var B;if (FCK.EditorDocument.selection.type=='Text') B=FCK.EditorDocument.selection.createRange().getBookmark();FCKUndo.SavedData[FCKUndo.CurrentIndex]=[A,B];FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.CheckUndoState=function(){return (FCKUndo.Typing||FCKUndo.CurrentIndex>0);};FCKUndo.CheckRedoState=function(){return (!FCKUndo.Typing&&FCKUndo.CurrentIndex<(FCKUndo.SavedData.length-1));};FCKUndo.Undo=function(){if (FCKUndo.CheckUndoState()){if (FCKUndo.CurrentIndex==(FCKUndo.SavedData.length-1)){FCKUndo.SaveUndoStep();};FCKUndo._ApplyUndoLevel(--FCKUndo.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo.Redo=function(){if (FCKUndo.CheckRedoState()){FCKUndo._ApplyUndoLevel(++FCKUndo.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo._ApplyUndoLevel=function(A){var B=FCKUndo.SavedData[A];if (!B) return;FCK.SetInnerHtml(B[0]);if (B[1]){var C=FCK.EditorDocument.selection.createRange();C.moveToBookmark(B[1]);C.select();};FCKUndo.TypesCount=0;FCKUndo.Typing=false;} -var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=0;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);while(C.childNodes.length>0) C.removeChild(C.childNodes[0]);if (this.Mode==0){var E=this.IFrame=D.createElement('iframe');E.src='javascript:void(0)';E.frameBorder=0;E.width=E.height='100%';C.appendChild(E);if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){if (FCKBrowserInfo.IsGecko) A=A.replace(/(<body[^>]*>)\s*(<\/body>)/i,'$1'+GECKO_BOGUS+'$2');var F=A.match(FCKRegexLib.BodyContents);if (F){A=F[1]+'&nbsp;'+F[3];this._BodyHTML=F[2];}else this._BodyHTML=A;};this.Window=E.contentWindow;var G=this.Document=this.Window.document;G.open();G.write(A);G.close();if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}else{var H=this.Textarea=D.createElement('textarea');H.className='SourceField';H.dir='ltr';H.style.width=H.style.height='100%';H.style.border='none';C.appendChild(H);H.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.contentEditable=true;}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;this._BodyHTML=null;};A.designMode='on';try{A.execCommand('styleWithCSS',false,FCKConfig.GeckoUseSPAN);}catch (e){A.execCommand('useCSS',false,!FCKConfig.GeckoUseSPAN);};A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e) {}}};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE&&this.Document.hasFocus()) return;if (FCKBrowserInfo.IsSafari) this.IFrame.focus();else{this.Window.focus();}}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&&A.activeElement==this.Textarea) return;this.Textarea.focus();}}catch(e) {}};function FCKEditingArea_Cleanup(){this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}} -var FCKKeystrokeHandler=function(A){this.Keystrokes={};this.CancelCtrlDefaults=(A!==false);};FCKKeystrokeHandler.prototype.AttachToElement=function(A){FCKTools.AddEventListenerEx(A,'keydown',_FCKKeystrokeHandler_OnKeyDown,this);if (FCKBrowserInfo.IsGecko10||FCKBrowserInfo.IsOpera||(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac)) FCKTools.AddEventListenerEx(A,'keypress',_FCKKeystrokeHandler_OnKeyPress,this);};FCKKeystrokeHandler.prototype.SetKeystrokes=function(){for (var i=0;i<arguments.length;i++){var A=arguments[i];if (typeof(A[0])=='object') this.SetKeystrokes.apply(this,A);else{if (A.length==1) delete this.Keystrokes[A[0]];else this.Keystrokes[A[0]]=A[1]===true?true:A;}}};function _FCKKeystrokeHandler_OnKeyDown(A,B){var C=A.keyCode||A.which;var D=0;if (A.ctrlKey||A.metaKey) D+=CTRL;if (A.shiftKey) D+=SHIFT;if (A.altKey) D+=ALT;var E=C+D;var F=B._CancelIt=false;var G=B.Keystrokes[E];if (G){if (G===true||!(B.OnKeystroke&&B.OnKeystroke.apply(B,G))) return true;F=true;};if (F||(B.CancelCtrlDefaults&&D==CTRL&&(C<33||C>40))){B._CancelIt=true;if (A.preventDefault) return A.preventDefault();A.returnValue=false;A.cancelBubble=true;return false;};return true;};function _FCKKeystrokeHandler_OnKeyPress(A,B){if (B._CancelIt){if (A.preventDefault) return A.preventDefault();return false;};return true;} -var FCKListHandler={OutdentListItem:function(A){var B=A.parentNode;if (B.tagName.toUpperCase().Equals('UL','OL')){var C=FCKTools.GetElementDocument(A);var D=new FCKDocumentFragment(C);var E=D.RootNode;var F=false;var G=FCKDomTools.GetFirstChild(A,['UL','OL']);if (G){F=true;var H;while ((H=G.firstChild)) E.appendChild(G.removeChild(H));FCKDomTools.RemoveNode(G);};var I;var J=false;while ((I=A.nextSibling)){if (!F&&I.nodeType==1&&I.nodeName.toUpperCase()=='LI') J=F=true;E.appendChild(I.parentNode.removeChild(I));if (!J&&I.nodeType==1&&I.nodeName.toUpperCase().Equals('UL','OL')) FCKDomTools.RemoveNode(I,true);};var K=B.parentNode.tagName.toUpperCase();var L=(K=='LI');if (L||K.Equals('UL','OL')){if (F){var G=B.cloneNode(false);D.AppendTo(G);A.appendChild(G);}else if (L) D.InsertAfterNode(B.parentNode);else D.InsertAfterNode(B);if (L) FCKDomTools.InsertAfterNode(B.parentNode,B.removeChild(A));else FCKDomTools.InsertAfterNode(B,B.removeChild(A));}else{if (F){var N=B.cloneNode(false);D.AppendTo(N);FCKDomTools.InsertAfterNode(B,N);};var O=C.createElement('p');FCKDomTools.MoveChildren(B.removeChild(A),O);FCKDomTools.InsertAfterNode(B,O);A=O;};if (this.CheckEmptyList(B)) FCKDomTools.RemoveNode(B,true);};return A;},CheckEmptyList:function(A){return (FCKDomTools.GetFirstChild(A,'LI')==null);},CheckListHasContents:function(A){var B=A.firstChild;while (B){switch (B.nodeType){case 1:if (!B.nodeName.IEquals('UL','LI')) return true;break;case 3:if (B.nodeValue.Trim().length>0) return true;};B=B.nextSibling;};return false;}}; -var FCKElementPath=function(A){var B=null;var C=null;var D=[];var e=A;while (e){if (e.nodeType==1){if (!this.LastElement) this.LastElement=e;var E=e.nodeName.toLowerCase();if (!C&&!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (!C&&(/^(?:body|td|th|caption|form)$/).test(E)) C=e;D.push(e);if (E=='BODY') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;}; -var FCKDomRange=function(A){this.Window=A;};FCKDomRange.prototype={_UpdateElementInfo:function(){if (!this._Range) this.Release(true);else{var A=this._Range.startContainer;var B=this._Range.endContainer;var C=new FCKElementPath(A);this.StartContainer=C.LastElement;this.StartBlock=C.Block;this.StartBlockLimit=C.BlockLimit;if (A!=B) C=new FCKElementPath(B);this.EndContainer=C.LastElement;this.EndBlock=C.Block;this.EndBlockLimit=C.BlockLimit;}},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateElementInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;}},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;},Collapse:function(A){if (this._Range) this._Range.collapse(A);this._UpdateElementInfo();},Clone:function(){var A=FCKTools.CloneObject(this);if (this._Range) A._Range=this._Range.cloneRange();return A;},MoveToNodeContents:function(A){if (!this._Range) this._Range=this.CreateRange();this._Range.selectNodeContents(A);this._UpdateElementInfo();},MoveToElementStart:function(A){this.SetStart(A,1);this.SetEnd(A,1);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(A){if (this.CheckIsCollapsed()) return true;var B=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(B);FCKDomTools.TrimNode(B,A);return (B.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this.Clone();A.Collapse(true);A.SetStart(A.StartBlock||A.StartBlockLimit,1);var B=A.CheckIsEmpty();A.Release();return B;},CheckEndOfBlock:function(A){var B=this.Clone();B.Collapse(false);B.SetEnd(B.EndBlock||B.EndBlockLimit,2);var C=B.CheckIsEmpty(true);B.Release();if (A) this.Select();return C;},CreateBookmark:function(){var A={StartId:'fck_dom_range_start_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000),EndId:'fck_dom_range_end_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000)};var B=this.Window.document;var C;var D;if (!this.CheckIsCollapsed()){C=B.createElement('span');C.id=A.EndId;C.innerHTML='&nbsp;';D=this.Clone();D.Collapse(false);D.InsertNode(C);};C=B.createElement('span');C.id=A.StartId;C.innerHTML='&nbsp;';D=this.Clone();D.Collapse(true);D.InsertNode(C);return A;},MoveToBookmark:function(A,B){var C=this.Window.document;var D=C.getElementById(A.StartId);var E=C.getElementById(A.EndId);this.SetStart(D,3);if (!B) FCKDomTools.RemoveNode(D);if (E){this.SetEnd(E,3);if (!B) FCKDomTools.RemoveNode(E);}else this.Collapse(true);},SetStart:function(A,B){var C=this._Range;if (!C) C=this._Range=this.CreateRange();switch(B){case 1:C.setStart(A,0);break;case 2:C.setStart(A,A.childNodes.length);break;case 3:C.setStartBefore(A);break;case 4:C.setStartAfter(A);};this._UpdateElementInfo();},SetEnd:function(A,B){var C=this._Range;if (!C) C=this._Range=this.CreateRange();switch(B){case 1:C.setEnd(A,0);break;case 2:C.setEnd(A,A.childNodes.length);break;case 3:C.setEndBefore(A);break;case 4:C.setEndAfter(A);};this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'block_contents':if (this.StartBlock) this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){if (!(B=B.childNodes[this._Range.startOffset])) B=B.firstChild;};if (!B) return;while (true){oSibling=B.previousSibling;if (!oSibling){if (B.parentNode!=this.StartBlockLimit) B=B.parentNode;else break;}else if (oSibling.nodeType!=1||!(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test(oSibling.nodeName.toUpperCase())){B=oSibling;}else break;};this._Range.setStartBefore(B);};if (this.EndBlock) this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;if (!B) return;while (true){oSibling=B.nextSibling;if (!oSibling){if (B.parentNode!=this.EndBlockLimit) B=B.parentNode;else break;}else if (oSibling.nodeType!=1||!(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test(oSibling.nodeName.toUpperCase())){B=oSibling;}else break;};this._Range.setEndAfter(B);};this._UpdateElementInfo();}},Release:function(A){if (!A) this.Window=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;}}; -FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var A=this.Window.document.selection;if (A.type!='Control'){B=this._GetSelectionMarkerTag(true);this._Range.setStart(B.parentNode,FCKDomTools.GetIndexOf(B));B.parentNode.removeChild(B);var B=this._GetSelectionMarkerTag(false);this._Range.setEnd(B.parentNode,FCKDomTools.GetIndexOf(B));B.parentNode.removeChild(B);this._UpdateElementInfo();}else{var C=A.createRange().item(0);if (C){this._Range.setStartBefore(C);this._Range.setEndAfter(C);this._UpdateElementInfo();}}};FCKDomRange.prototype.Select=function(){if (this._Range){var A=this.CheckIsCollapsed();var B=this._GetRangeMarkerTag(true);if (!A) var C=this._GetRangeMarkerTag(false);var D=this.Window.document.body.createTextRange();D.moveToElementText(B);D.moveStart('character',1);if (!A){var E=this.Window.document.body.createTextRange();E.moveToElementText(C);D.setEndPoint('EndToEnd',E);D.moveEnd('character',-1);};this._Range.setStartBefore(B);B.parentNode.removeChild(B);if (A){try{D.pasteHTML('&nbsp;');D.moveStart('character',-1);}catch (e){};D.select();D.pasteHTML('');}else{this._Range.setEndBefore(C);C.parentNode.removeChild(C);D.select();}}};FCKDomRange.prototype._GetSelectionMarkerTag=function(A){var B=this.Window.document.selection.createRange();B.collapse(A===true);var C='fck_dom_range_temp_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000);B.pasteHTML('<span id="'+C+'"></span>');return this.Window.document.getElementById(C);};FCKDomRange.prototype._GetRangeMarkerTag=function(A){var B=this._Range;if (!A){B=B.cloneRange();B.collapse(A===true);};var C=this.Window.document.createElement('span');C.innerHTML='&nbsp;';B.insertNode(C);return C;} +var FCKUndo={};FCKUndo.SavedData=[];FCKUndo.CurrentIndex=-1;FCKUndo.TypesCount=0;FCKUndo.Changed=false;FCKUndo.MaxTypes=25;FCKUndo.Typing=false;FCKUndo.SaveLocked=false;FCKUndo._GetBookmark=function(){var A=new FCKDomRange(FCK.EditorWindow);try{A.MoveToSelection();}catch (e){return null;};if (FCKBrowserInfo.IsIE){var B=A.CreateBookmark();var C=FCK.EditorDocument.body.innerHTML;A.MoveToBookmark(B);return [B,C];};return A.CreateBookmark2();};FCKUndo._SelectBookmark=function(A){if (!A) return;var B=new FCKDomRange(FCK.EditorWindow);if (A instanceof Object){if (FCKBrowserInfo.IsIE) B.MoveToBookmark(A[0]);else B.MoveToBookmark2(A);try{B.Select();}catch (e){B.MoveToPosition(FCK.EditorDocument.body,4);B.Select();}}};FCKUndo._CompareCursors=function(A,B){for (var i=0;i<Math.min(A.length,B.length);i++){if (A[i]<B[i]) return-1;else if (A[i]>B[i]) return 1;};if (A.length<B.length) return-1;else if (A.length>B.length) return 1;return 0;};FCKUndo._CheckIsBookmarksEqual=function(A,B){if (!(A&&B)) return false;if (FCKBrowserInfo.IsIE){var C=A[1].search(A[0].StartId);var D=B[1].search(B[0].StartId);var E=A[1].search(A[0].EndId);var F=B[1].search(B[0].EndId);return C==D&&E==F;}else{return this._CompareCursors(A.Start,B.Start)==0&&this._CompareCursors(A.End,B.End)==0;}};FCKUndo.SaveUndoStep=function(){if (FCK.EditMode!=0||this.SaveLocked) return;if (this.SavedData.length) this.Changed=true;var A=FCK.EditorDocument.body.innerHTML;var B=this._GetBookmark();this.SavedData=this.SavedData.slice(0,this.CurrentIndex+1);if (this.CurrentIndex>0&&A==this.SavedData[this.CurrentIndex][0]&&this._CheckIsBookmarksEqual(B,this.SavedData[this.CurrentIndex][1])) return;else if (this.CurrentIndex==0&&this.SavedData.length&&A==this.SavedData[0][0]){this.SavedData[0][1]=B;return;};if (this.CurrentIndex+1>=FCKConfig.MaxUndoLevels) this.SavedData.shift();else this.CurrentIndex++;this.SavedData[this.CurrentIndex]=[A,B];FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.CheckUndoState=function(){return (this.Changed||this.CurrentIndex>0);};FCKUndo.CheckRedoState=function(){return (this.CurrentIndex<(this.SavedData.length-1));};FCKUndo.Undo=function(){if (this.CheckUndoState()){if (this.CurrentIndex==(this.SavedData.length-1)){this.SaveUndoStep();};this._ApplyUndoLevel(--this.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo.Redo=function(){if (this.CheckRedoState()){this._ApplyUndoLevel(++this.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo._ApplyUndoLevel=function(A){var B=this.SavedData[A];if (!B) return;if (FCKBrowserInfo.IsIE){if (B[1]&&B[1][1]) FCK.SetInnerHtml(B[1][1]);else FCK.SetInnerHtml(B[0]);}else FCK.EditorDocument.body.innerHTML=B[0];this._SelectBookmark(B[1]);this.TypesCount=0;this.Changed=false;this.Typing=false;}; +var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=0;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);var E;while((E=C.firstChild)){if (E.contentWindow) E.contentWindow.document.body.innerHTML='';C.removeChild(E);};if (this.Mode==0){var F=this.IFrame=D.createElement('iframe');if (!FCKBrowserInfo.IsGecko) F.src='javascript:void(0)';F.frameBorder=0;F.width=F.height='100%';C.appendChild(F);if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){var G=A.match(FCKRegexLib.BeforeBody);var H=A.match(FCKRegexLib.AfterBody);if (G&&H){var I=A.substr(G[1].length,A.length-G[1].length-H[1].length);A=G[1]+'&nbsp;'+H[1];if (FCKBrowserInfo.IsGecko&&(I.length==0||FCKRegexLib.EmptyParagraph.test(I))) I='<br type="_moz">';this._BodyHTML=I;}else this._BodyHTML=A;};this.Window=F.contentWindow;var J=this.Document=this.Window.document;J.open();J.write(A);J.close();if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}else{var K=this.Textarea=D.createElement('textarea');K.className='SourceField';K.dir='ltr';FCKDomTools.SetElementStyles(K,{width:'100%',height:'100%',border:'none',resize:'none',outline:'none'});C.appendChild(K);K.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.disabled=true;A.body.contentEditable=true;A.body.removeAttribute("disabled");}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;this._BodyHTML=null;};A.designMode='on';try{A.execCommand('styleWithCSS',false,FCKConfig.GeckoUseSPAN);}catch (e){A.execCommand('useCSS',false,!FCKConfig.GeckoUseSPAN);};A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e){FCKTools.AddEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);}}};function FCKEditingArea_Document_AttributeNodeModified(A){var B=A.currentTarget.contentWindow._FCKEditingArea;if (B._timer) window.clearTimeout(B._timer);B._timer=FCKTools.SetTimeout(FCKEditingArea_MakeEditableByMutation,1000,B);};function FCKEditingArea_MakeEditableByMutation(){delete this._timer;FCKTools.RemoveEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);this.MakeEditable();};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE&&this.Document.hasFocus()) this._EnsureFocusIE();this.Window.focus();if (FCKBrowserInfo.IsIE) this._EnsureFocusIE();}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&&A.activeElement==this.Textarea) return;this.Textarea.focus();}}catch(e) {}};FCKEditingArea.prototype._EnsureFocusIE=function(){this.Document.body.setActive();var A=this.Document.selection.createRange();var B=A.parentElement();var C=B.nodeName.toLowerCase();if (B.childNodes.length>0||!(FCKListsLib.BlockElements[C]||FCKListsLib.NonEmptyBlockElements[C])){return;};A.moveEnd("character",1);A.select();if (A.boundingWidth>0){A.moveEnd("character",-1);A.select();}};function FCKEditingArea_Cleanup(){if (this.Document) this.Document.body.innerHTML="";this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}}; +var FCKKeystrokeHandler=function(A){this.Keystrokes={};this.CancelCtrlDefaults=(A!==false);};FCKKeystrokeHandler.prototype.AttachToElement=function(A){FCKTools.AddEventListenerEx(A,'keydown',_FCKKeystrokeHandler_OnKeyDown,this);if (FCKBrowserInfo.IsGecko10||FCKBrowserInfo.IsOpera||(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac)) FCKTools.AddEventListenerEx(A,'keypress',_FCKKeystrokeHandler_OnKeyPress,this);};FCKKeystrokeHandler.prototype.SetKeystrokes=function(){for (var i=0;i<arguments.length;i++){var A=arguments[i];if (!A) continue;if (typeof(A[0])=='object') this.SetKeystrokes.apply(this,A);else{if (A.length==1) delete this.Keystrokes[A[0]];else this.Keystrokes[A[0]]=A[1]===true?true:A;}}};function _FCKKeystrokeHandler_OnKeyDown(A,B){var C=A.keyCode||A.which;var D=0;if (A.ctrlKey||A.metaKey) D+=CTRL;if (A.shiftKey) D+=SHIFT;if (A.altKey) D+=ALT;var E=C+D;var F=B._CancelIt=false;var G=B.Keystrokes[E];if (G){if (G===true||!(B.OnKeystroke&&B.OnKeystroke.apply(B,G))) return true;F=true;};if (F||(B.CancelCtrlDefaults&&D==CTRL&&(C<33||C>40))){B._CancelIt=true;if (A.preventDefault) return A.preventDefault();A.returnValue=false;A.cancelBubble=true;return false;};return true;};function _FCKKeystrokeHandler_OnKeyPress(A,B){if (B._CancelIt){if (A.preventDefault) return A.preventDefault();return false;};return true;}; +FCK.DTD=(function(){X=FCKTools.Merge;var A,L,J,M,N,O,D,H,P,K,Q,F,G,C,B,E,I;A={isindex:1,fieldset:1};B={input:1,button:1,select:1,textarea:1,label:1};C=X({a:1},B);D=X({iframe:1},C);E={hr:1,ul:1,menu:1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1};F={ins:1,del:1,script:1};G=X({b:1,acronym:1,bdo:1,'var':1,'#':1,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1},F);H=X({sub:1,img:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1},G);I=X({p:1},H);J=X({iframe:1},H,B);K={img:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1};L=X({a:1},J);M={tr:1};N={'#':1};O=X({param:1},K);P=X({form:1},A,D,E,I);Q={li:1};return {col:{},tr:{td:1,th:1},img:{},colgroup:{col:1},noscript:P,td:P,br:{},th:P,center:P,kbd:L,button:X(I,E),basefont:{},h5:L,h4:L,samp:L,h6:L,ol:Q,h1:L,h3:L,option:N,h2:L,form:X(A,D,E,I),select:{optgroup:1,option:1},font:J,ins:P,menu:Q,abbr:L,label:L,table:{thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1},code:L,script:N,tfoot:M,cite:L,li:P,input:{},iframe:P,strong:J,textarea:N,noframes:P,big:J,small:J,span:J,hr:{},dt:L,sub:J,optgroup:{option:1},param:{},bdo:L,'var':J,div:P,object:O,sup:J,dd:P,strike:J,area:{},dir:Q,map:X({area:1,form:1,p:1},A,F,E),applet:O,dl:{dt:1,dd:1},del:P,isindex:{},fieldset:X({legend:1},K),thead:M,ul:Q,acronym:L,b:J,a:J,blockquote:P,caption:L,i:J,u:J,tbody:M,s:L,address:X(D,I),tt:J,legend:L,q:L,pre:X(G,C),p:L,em:J,dfn:L};})(); +var FCKStyle=function(A){this.Element=(A.Element||'span').toLowerCase();this._StyleDesc=A;};FCKStyle.prototype={GetType:function(){var A=this.GetType_$;if (A!=undefined) return A;var B=this.Element;if (B=='#'||FCKListsLib.StyleBlockElements[B]) A=0;else if (FCKListsLib.StyleObjectElements[B]) A=2;else A=1;return (this.GetType_$=A);},ApplyToSelection:function(A){var B=new FCKDomRange(A);B.MoveToSelection();this.ApplyToRange(B,true);},ApplyToRange:function(A,B){switch (this.GetType()){case 0:this.ApplyToRange=this._ApplyBlockStyle;break;case 1:this.ApplyToRange=this._ApplyInlineStyle;break;default:return;};this.ApplyToRange(A,B);},ApplyToObject:function(A){if (!A) return;this.BuildElement(null,A);},RemoveFromSelection:function(A){var B=new FCKDomRange(A);B.MoveToSelection();this.RemoveFromRange(B,true);},RemoveFromRange:function(A,B){var C;var D=this._GetAttribsForComparison();var E=this._GetOverridesForComparison();if (A.CheckIsCollapsed()){var C=A.CreateBookmark(true);var G=A.GetBookmarkNode(C,true);var H=new FCKElementPath(G.parentNode);var I=[];var J=!FCKDomTools.GetNextSibling(G);var K=J||!FCKDomTools.GetPreviousSibling(G);var L;var M=-1;for (var i=0;i<H.Elements.length;i++){var N=H.Elements[i];if (this.CheckElementRemovable(N)){if (K&&!FCKDomTools.CheckIsEmptyElement(N,function(el){return (el!=G);})){L=N;M=I.length-1;}else{var O=N.nodeName.toLowerCase();if (O==this.Element){for (var P in D){if (FCKDomTools.HasAttribute(N,P)){switch (P){case 'style':this._RemoveStylesFromElement(N);break;case 'class':if (FCKDomTools.GetAttributeValue(N,P)!=this.GetFinalAttributeValue(P)) continue;default:FCKDomTools.RemoveAttribute(N,P);}}}};this._RemoveOverrides(N,E[O]);this._RemoveNoAttribElement(N);}}else if (K) I.push(N);K=K&&((J&&!FCKDomTools.GetNextSibling(N))||(!J&&!FCKDomTools.GetPreviousSibling(N)));if (L&&(!K||(i==H.Elements.length-1))){var Q=FCKDomTools.RemoveNode(G);for (var j=0;j<=M;j++){var R=FCKDomTools.CloneElement(I[j]);R.appendChild(Q);Q=R;};if (J) FCKDomTools.InsertAfterNode(L,Q);else L.parentNode.insertBefore(Q,L);K=false;L=null;}};if (B) A.SelectBookmark(C);return;};A.Expand('inline_elements');var C=A.CreateBookmark(true);var T=A.GetBookmarkNode(C,true);var U=A.GetBookmarkNode(C,false);A.Release(true);var H=new FCKElementPath(T);var X=H.Elements;var N;for (var i=1;i<X.length;i++){N=X[i];if (N==H.Block||N==H.BlockLimit) break;if (this.CheckElementRemovable(N)) FCKDomTools.BreakParent(T,N,A);};H=new FCKElementPath(U);X=H.Elements;for (var i=1;i<X.length;i++){N=X[i];if (N==H.Block||N==H.BlockLimit) break;b=N.nodeName.toLowerCase();if (this.CheckElementRemovable(N)) FCKDomTools.BreakParent(U,N,A);};var Z=FCKDomTools.GetNextSourceNode(T,true);while (Z){var a=FCKDomTools.GetNextSourceNode(Z);if (Z.nodeType==1){var b=Z.nodeName.toLowerCase();var c=(b==this.Element);if (c){for (var P in D){if (FCKDomTools.HasAttribute(Z,P)){switch (P){case 'style':this._RemoveStylesFromElement(Z);break;case 'class':if (FCKDomTools.GetAttributeValue(Z,P)!=this.GetFinalAttributeValue(P)) continue;default:FCKDomTools.RemoveAttribute(Z,P);}}}}else c=!!E[b];if (c){this._RemoveOverrides(Z,E[b]);this._RemoveNoAttribElement(Z);}};if (a==U) break;Z=a;};this._FixBookmarkStart(T);if (B) A.SelectBookmark(C);},CheckElementRemovable:function(A,B){if (!A) return false;var C=A.nodeName.toLowerCase();if (C==this.Element){if (!B&&!FCKDomTools.HasAttributes(A)) return true;var D=this._GetAttribsForComparison();var E=(D._length==0);for (var F in D){if (F=='_length') continue;if (this._CompareAttributeValues(F,FCKDomTools.GetAttributeValue(A,F),(this.GetFinalAttributeValue(F)||''))){E=true;if (!B) break;}else{E=false;if (B) return false;}};if (E) return true;};var G=this._GetOverridesForComparison()[C];if (G){if (!(D=G.Attributes)) return true;for (var i=0;i<D.length;i++){var H=D[i][0];if (FCKDomTools.HasAttribute(A,H)){var I=D[i][1];if (I==null||(typeof I=='string'&&FCKDomTools.GetAttributeValue(A,H)==I)||I.test(FCKDomTools.GetAttributeValue(A,H))) return true;}}};return false;},CheckActive:function(A){switch (this.GetType()){case 0:return this.CheckElementRemovable(A.Block||A.BlockLimit);case 1:var B=A.Elements;for (var i=0;i<B.length;i++){var C=B[i];if (C==A.Block||C==A.BlockLimit) continue;if (this.CheckElementRemovable(C,true)) return true;}};return false;},RemoveFromElement:function(A){var B=this._GetAttribsForComparison();var C=this._GetOverridesForComparison();var D=A.getElementsByTagName(this.Element);for (var i=D.length-1;i>=0;i--){var E=D[i];for (var F in B){if (FCKDomTools.HasAttribute(E,F)){switch (F){case 'style':this._RemoveStylesFromElement(E);break;case 'class':if (FCKDomTools.GetAttributeValue(E,F)!=this.GetFinalAttributeValue(F)) continue;default:FCKDomTools.RemoveAttribute(E,F);}}};this._RemoveOverrides(E,C[this.Element]);this._RemoveNoAttribElement(E);};for (var G in C){if (G!=this.Element){D=A.getElementsByTagName(G);for (var i=D.length-1;i>=0;i--){var E=D[i];this._RemoveOverrides(E,C[G]);this._RemoveNoAttribElement(E);}}}},_RemoveStylesFromElement:function(A){var B=A.style.cssText;var C=this.GetFinalStyleValue();if (B.length>0&&C.length==0) return;C='(^|;)\\s*('+C.replace(/\s*([^ ]+):.*?(;|$)/g,'$1|').replace(/\|$/,'')+'):[^;]+';var D=new RegExp(C,'gi');B=B.replace(D,'').Trim();if (B.length==0||B==';') FCKDomTools.RemoveAttribute(A,'style');else A.style.cssText=B.replace(D,'');},_RemoveOverrides:function(A,B){var C=B&&B.Attributes;if (C){for (var i=0;i<C.length;i++){var D=C[i][0];if (FCKDomTools.HasAttribute(A,D)){var E=C[i][1];if (E==null||(E.test&&E.test(FCKDomTools.GetAttributeValue(A,D)))||(typeof E=='string'&&FCKDomTools.GetAttributeValue(A,D)==E)) FCKDomTools.RemoveAttribute(A,D);}}}},_RemoveNoAttribElement:function(A){if (!FCKDomTools.HasAttributes(A)){var B=A.firstChild;var C=A.lastChild;FCKDomTools.RemoveNode(A,true);this._MergeSiblings(B);if (B!=C) this._MergeSiblings(C);}},BuildElement:function(A,B){var C=B||A.createElement(this.Element);var D=this._StyleDesc.Attributes;var E;if (D){for (var F in D){E=this.GetFinalAttributeValue(F);if (F.toLowerCase()=='class') C.className=E;else C.setAttribute(F,E);}};if (this._GetStyleText().length>0) C.style.cssText=this.GetFinalStyleValue();return C;},_CompareAttributeValues:function(A,B,C){if (A=='style'&&B&&C){B=B.replace(/;$/,'').toLowerCase();C=C.replace(/;$/,'').toLowerCase();};return (B==C)},GetFinalAttributeValue:function(A){var B=this._StyleDesc.Attributes;var B=B?B[A]:null;if (!B&&A=='style') return this.GetFinalStyleValue();if (B&&this._Variables) B=B.Replace(FCKRegexLib.StyleVariableAttName,this._GetVariableReplace,this);return B;},GetFinalStyleValue:function(){var A=this._GetStyleText();if (A.length>0&&this._Variables){A=A.Replace(FCKRegexLib.StyleVariableAttName,this._GetVariableReplace,this);A=FCKTools.NormalizeCssText(A);};return A;},_GetVariableReplace:function(){return this._Variables[arguments[2]]||arguments[0];},SetVariable:function(A,B){var C=this._Variables;if (!C) C=this._Variables={};this._Variables[A]=B;},_ApplyBlockStyle:function(A,B){var C;if (B) C=A.CreateBookmark(true);var D=new FCKDomRangeIterator(A);D.EnforceRealBlocks=true;var E;while((E=D.GetNextParagraph())){var F=E.parentNode.insertBefore(this.BuildElement(A.Window.document),E);FCKDomTools.MoveChildren(E,F);FCKDomTools.RemoveNode(E);};if (B) A.SelectBookmark(C);},_ApplyInlineStyle:function(A,B){var C=A.Window.document;if (A.CheckIsCollapsed()){var D=this.BuildElement(C);A.InsertNode(D);A.MoveToPosition(D,2);A.Select();return;};var E=this.Element;var F=FCK.DTD[E]||FCK.DTD.span;var G=this._GetAttribsForComparison();var H;A.Expand('inline_elements');var I=A.CreateBookmark(true);var J=A.GetBookmarkNode(I,true);var K=A.GetBookmarkNode(I,false);A.Release(true);var L=FCKDomTools.GetNextSourceNode(J,true);while (L){var M=false;var N=L.nodeType;var O=N==1?L.nodeName.toLowerCase():null;if (!O||F[O]){if ((FCK.DTD[L.parentNode.nodeName.toLowerCase()]||FCK.DTD.span)[E]||!FCK.DTD[E]){if (!A.CheckHasRange()) A.SetStart(L,3);if (N!=1||L.childNodes.length==0){var P=L;var Q=P.parentNode;while (P==Q.lastChild&&F[Q.nodeName.toLowerCase()]){P=Q;};A.SetEnd(P,4);if (P==P.parentNode.lastChild&&!F[P.parentNode.nodeName.toLowerCase()]) M=true;}else{A.SetEnd(L,3);}}else M=true;}else M=true;L=FCKDomTools.GetNextSourceNode(L);if (L==K){L=null;M=true;};if (M&&A.CheckHasRange()&&!A.CheckIsCollapsed()){H=this.BuildElement(C);A.ExtractContents().AppendTo(H);if (H.innerHTML.RTrim().length>0){A.InsertNode(H);this.RemoveFromElement(H);this._MergeSiblings(H,this._GetAttribsForComparison());if (!FCKBrowserInfo.IsIE) H.normalize();};A.Release(true);}};this._FixBookmarkStart(J);if (B) A.SelectBookmark(I);},_FixBookmarkStart:function(A){var B;while ((B=A.nextSibling)){if (B.nodeType==1&&FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){if (!B.firstChild) FCKDomTools.RemoveNode(B);else FCKDomTools.MoveNode(A,B,true);continue;};if (B.nodeType==3&&B.length==0){FCKDomTools.RemoveNode(B);continue;};break;}},_MergeSiblings:function(A,B){if (!A||A.nodeType!=1||!FCKListsLib.InlineNonEmptyElements[A.nodeName.toLowerCase()]) return;this._MergeNextSibling(A,B);this._MergePreviousSibling(A,B);},_MergeNextSibling:function(A,B){var C=A.nextSibling;var D=(C&&C.nodeType==1&&C.getAttribute('_fck_bookmark'));if (D) C=C.nextSibling;if (C&&C.nodeType==1&&C.nodeName==A.nodeName){if (!B) B=this._CreateElementAttribsForComparison(A);if (this._CheckAttributesMatch(C,B)){var E=A.lastChild;if (D) FCKDomTools.MoveNode(A.nextSibling,A);FCKDomTools.MoveChildren(C,A);FCKDomTools.RemoveNode(C);if (E) this._MergeNextSibling(E);}}},_MergePreviousSibling:function(A,B){var C=A.previousSibling;var D=(C&&C.nodeType==1&&C.getAttribute('_fck_bookmark'));if (D) C=C.previousSibling;if (C&&C.nodeType==1&&C.nodeName==A.nodeName){if (!B) B=this._CreateElementAttribsForComparison(A);if (this._CheckAttributesMatch(C,B)){var E=A.firstChild;if (D) FCKDomTools.MoveNode(A.previousSibling,A,true);FCKDomTools.MoveChildren(C,A,true);FCKDomTools.RemoveNode(C);if (E) this._MergePreviousSibling(E);}}},_GetStyleText:function(){var A=this._StyleDesc.Styles;var B=(this._StyleDesc.Attributes?this._StyleDesc.Attributes['style']||'':'');if (B.length>0) B+=';';for (var C in A) B+=C+':'+A[C]+';';if (B.length>0&&!(/#\(/.test(B))){B=FCKTools.NormalizeCssText(B);};return (this._GetStyleText=function() { return B;})();},_GetAttribsForComparison:function(){var A=this._GetAttribsForComparison_$;if (A) return A;A={};var B=this._StyleDesc.Attributes;if (B){for (var C in B){A[C.toLowerCase()]=B[C].toLowerCase();}};if (this._GetStyleText().length>0){A['style']=this._GetStyleText().toLowerCase();};FCKTools.AppendLengthProperty(A,'_length');return (this._GetAttribsForComparison_$=A);},_GetOverridesForComparison:function(){var A=this._GetOverridesForComparison_$;if (A) return A;A={};var B=this._StyleDesc.Overrides;if (B){if (!FCKTools.IsArray(B)) B=[B];for (var i=0;i<B.length;i++){var C=B[i];var D;var E;var F;if (typeof C=='string') D=C.toLowerCase();else{D=C.Element?C.Element.toLowerCase():this.Element;F=C.Attributes;};E=A[D]||(A[D]={});if (F){var G=(E.Attributes=E.Attributes||[]);for (var H in F){G.push([H.toLowerCase(),F[H]]);}}}};return (this._GetOverridesForComparison_$=A);},_CreateElementAttribsForComparison:function(A){var B={};var C=0;for (var i=0;i<A.attributes.length;i++){var D=A.attributes[i];if (D.specified){B[D.nodeName.toLowerCase()]=FCKDomTools.GetAttributeValue(A,D).toLowerCase();C++;}};B._length=C;return B;},_CheckAttributesMatch:function(A,B){var C=A.attributes;var D=0;for (var i=0;i<C.length;i++){var E=C[i];if (E.specified){var F=E.nodeName.toLowerCase();var G=B[F];if (!G) break;if (G!=FCKDomTools.GetAttributeValue(A,E).toLowerCase()) break;D++;}};return (D==B._length);}}; +var FCKStyles=FCK.Styles={_Callbacks:{},_ObjectStyles:{},ApplyStyle:function(A){if (typeof A=='string') A=this.GetStyles()[A];if (A){if (A.GetType()==2) A.ApplyToObject(FCKSelection.GetSelectedElement());else A.ApplyToSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},RemoveStyle:function(A){if (typeof A=='string') A=this.GetStyles()[A];if (A){A.RemoveFromSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},AttachStyleStateChange:function(A,B,C){var D=this._Callbacks[A];if (!D) D=this._Callbacks[A]=[];D.push([B,C]);},CheckSelectionChanges:function(){var A=FCKSelection.GetBoundaryParentElement(true);if (!A) return;var B=new FCKElementPath(A);var C=this.GetStyles();for (var D in C){var E=this._Callbacks[D];if (E){var F=C[D];var G=F.CheckActive(B);if (F._LastState!=G){F._LastState=G;for (var i=0;i<E.length;i++){var H=E[i][0];var I=E[i][1];H.call(I||window,D,G);}}}}},CheckStyleInSelection:function(A){return false;},_GetRemoveFormatTagsRegex:function (){var A=new RegExp('^(?:'+FCKConfig.RemoveFormatTags.replace(/,/g,'|')+')$','i');return (this._GetRemoveFormatTagsRegex=function(){return A;})&&A;},RemoveAll:function(){var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();if (A.CheckIsCollapsed()) return;A.Expand('inline_elements');var B=A.CreateBookmark(true);var C=A.GetBookmarkNode(B,true);var D=A.GetBookmarkNode(B,false);A.Release(true);var E=this._GetRemoveFormatTagsRegex();var F=new FCKElementPath(C);var G=F.Elements;var H;for (var i=1;i<G.length;i++){H=G[i];if (H==F.Block||H==F.BlockLimit) break;if (E.test(H.nodeName)) FCKDomTools.BreakParent(C,H,A);};F=new FCKElementPath(D);G=F.Elements;for (var i=1;i<G.length;i++){H=G[i];if (H==F.Block||H==F.BlockLimit) break;elementName=H.nodeName.toLowerCase();if (E.test(H.nodeName)) FCKDomTools.BreakParent(D,H,A);};var I=FCKDomTools.GetNextSourceNode(C,true,1);while (I){if (I==D) break;var J=FCKDomTools.GetNextSourceNode(I,false,1);if (E.test(I.nodeName)) FCKDomTools.RemoveNode(I,true);I=J;};A.SelectBookmark(B);FCK.Events.FireEvent('OnSelectionChange');},GetStyle:function(A){return this.GetStyles()[A];},GetStyles:function(){var A=this._GetStyles;if (!A){A=this._GetStyles=FCKTools.Merge(this._LoadStylesCore(),this._LoadStylesCustom(),this._LoadStylesXml());};return A;},CheckHasObjectStyle:function(A){return!!this._ObjectStyles[A];},_LoadStylesCore:function(){var A={};var B=FCKConfig.CoreStyles;for (var C in B){var D=A['_FCK_'+C]=new FCKStyle(B[C]);D.IsCore=true;};return A;},_LoadStylesCustom:function(){var A={};var B=FCKConfig.CustomStyles;if (B){for (var C in B){var D=A[C]=new FCKStyle(B[C]);D.Name=C;}};return A;},_LoadStylesXml:function(){var A={};var B=FCKConfig.StylesXmlPath;if (!B||B.length==0) return A;var C=new FCKXml();C.LoadUrl(B);var D=FCKXml.TransformToObject(C.SelectSingleNode('Styles'));var E=D.$Style;if (!E) return A;for (var i=0;i<E.length;i++){var F=E[i];var G=(F.element||'').toLowerCase();if (G.length==0) throw('The element name is required. Error loading "'+B+'"');var H={Element:G,Attributes:{},Styles:{},Overrides:[]};var I=F.$Attribute||[];for (var j=0;j<I.length;j++){H.Attributes[I[j].name]=I[j].value;};var J=F.$Style||[];for (j=0;j<J.length;j++){H.Styles[J[j].name]=J[j].value;};var K=F.$Override;if (K){for (j=0;j<K.length;j++){var L=K[j];var M={Element:L.element};var N=L.$Attribute;if (N){M.Attributes={};for (var k=0;k<N.length;k++){var O=N[k].value||null;if (O){var P=O&&FCKRegexLib.RegExp.exec(O);if (P) O=new RegExp(P[1],P[2]||'');};M.Attributes[N[k].name]=O;}};H.Overrides.push(M);}};var Q=new FCKStyle(H);Q.Name=F.name||G;if (Q.GetType()==2) this._ObjectStyles[G]=true;A[Q.Name]=Q;};return A;}}; +var FCKListHandler={OutdentListItem:function(A){var B=A.parentNode;if (B.tagName.toUpperCase().Equals('UL','OL')){var C=FCKTools.GetElementDocument(A);var D=new FCKDocumentFragment(C);var E=D.RootNode;var F=false;var G=FCKDomTools.GetFirstChild(A,['UL','OL']);if (G){F=true;var H;while ((H=G.firstChild)) E.appendChild(G.removeChild(H));FCKDomTools.RemoveNode(G);};var I;var J=false;while ((I=A.nextSibling)){if (!F&&I.nodeType==1&&I.nodeName.toUpperCase()=='LI') J=F=true;E.appendChild(I.parentNode.removeChild(I));if (!J&&I.nodeType==1&&I.nodeName.toUpperCase().Equals('UL','OL')) FCKDomTools.RemoveNode(I,true);};var K=B.parentNode.tagName.toUpperCase();var L=(K=='LI');if (L||K.Equals('UL','OL')){if (F){var G=B.cloneNode(false);D.AppendTo(G);A.appendChild(G);}else if (L) D.InsertAfterNode(B.parentNode);else D.InsertAfterNode(B);if (L) FCKDomTools.InsertAfterNode(B.parentNode,B.removeChild(A));else FCKDomTools.InsertAfterNode(B,B.removeChild(A));}else{if (F){var N=B.cloneNode(false);D.AppendTo(N);FCKDomTools.InsertAfterNode(B,N);};var O=C.createElement(FCKConfig.EnterMode=='p'?'p':'div');FCKDomTools.MoveChildren(B.removeChild(A),O);FCKDomTools.InsertAfterNode(B,O);if (FCKConfig.EnterMode=='br'){if (FCKBrowserInfo.IsGecko) O.parentNode.insertBefore(FCKTools.CreateBogusBR(C),O);else FCKDomTools.InsertAfterNode(O,FCKTools.CreateBogusBR(C));FCKDomTools.RemoveNode(O,true);}};if (this.CheckEmptyList(B)) FCKDomTools.RemoveNode(B,true);}},CheckEmptyList:function(A){return (FCKDomTools.GetFirstChild(A,'LI')==null);},CheckListHasContents:function(A){var B=A.firstChild;while (B){switch (B.nodeType){case 1:if (!B.nodeName.IEquals('UL','LI')) return true;break;case 3:if (B.nodeValue.Trim().length>0) return true;};B=B.nextSibling;};return false;}}; +var FCKElementPath=function(A){var B=null;var C=null;var D=[];var e=A;while (e){if (e.nodeType==1){if (!this.LastElement) this.LastElement=e;var E=e.nodeName.toLowerCase();if (!C){if (!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (FCKListsLib.PathBlockLimitElements[E]!=null){if (!B&&E=='div') B=e;else C=e;}};D.push(e);if (E=='body') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;}; +var FCKDomRange=function(A){this.Window=A;this._Cache={};};FCKDomRange.prototype={_UpdateElementInfo:function(){var A=this._Range;if (!A) this.Release(true);else{var B=A.startContainer;var C=A.endContainer;var D=new FCKElementPath(B);this.StartNode=B.nodeType==3?B:B.childNodes[A.startOffset];this.StartContainer=B;this.StartBlock=D.Block;this.StartBlockLimit=D.BlockLimit;if (B!=C) D=new FCKElementPath(C);var E=C;if (A.endOffset==0){while (E&&!E.previousSibling) E=E.parentNode;if (E) E=E.previousSibling;}else if (E.nodeType==1) E=E.childNodes[A.endOffset-1];this.EndNode=E;this.EndContainer=C;this.EndBlock=D.Block;this.EndBlockLimit=D.BlockLimit;};this._Cache={};},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateElementInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;}},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;},Collapse:function(A){if (this._Range) this._Range.collapse(A);this._UpdateElementInfo();},Clone:function(){var A=FCKTools.CloneObject(this);if (this._Range) A._Range=this._Range.cloneRange();return A;},MoveToNodeContents:function(A){if (!this._Range) this._Range=this.CreateRange();this._Range.selectNodeContents(A);this._UpdateElementInfo();},MoveToElementStart:function(A){this.SetStart(A,1);this.SetEnd(A,1);},MoveToElementEditStart:function(A){var B;while ((B=A.firstChild)&&B.nodeType==1&&FCKListsLib.EmptyElements[B.nodeName.toLowerCase()]==null) A=B;this.MoveToElementStart(A);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(){if (this.CheckIsCollapsed()) return true;var A=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(A);FCKDomTools.TrimNode(A);return (A.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this._Cache;var B=A.IsStartOfBlock;if (B!=undefined) return B;var C=this.StartBlock||this.StartBlockLimit;var D=this._Range.startContainer;var E=this._Range.startOffset;var F;if (E>0){if (D.nodeType==3){var G=D.nodeValue.substr(0,E).Trim();if (G.length!=0) return A.IsStartOfBlock=false;}else F=D.childNodes[E-1];};if (!F) F=FCKDomTools.GetPreviousSourceNode(D,true,null,C);while (F){switch (F.nodeType){case 1:if (!FCKListsLib.InlineChildReqElements[F.nodeName.toLowerCase()]) return A.IsStartOfBlock=false;break;case 3:if (F.nodeValue.Trim().length>0) return A.IsStartOfBlock=false;};F=FCKDomTools.GetPreviousSourceNode(F,false,null,C);};return A.IsStartOfBlock=true;},CheckEndOfBlock:function(A){var B=this._Cache.IsEndOfBlock;if (B!=undefined) return B;var C=this.EndBlock||this.EndBlockLimit;var D=this._Range.endContainer;var E=this._Range.endOffset;var F;if (D.nodeType==3){var G=D.nodeValue;if (E<G.length){G=G.substr(E);if (G.Trim().length!=0) return this._Cache.IsEndOfBlock=false;}}else F=D.childNodes[E];if (!F) F=FCKDomTools.GetNextSourceNode(D,true,null,C);var H=false;while (F){switch (F.nodeType){case 1:var I=F.nodeName.toLowerCase();if (FCKListsLib.InlineChildReqElements[I]) break;if (I=='br'&&!H){H=true;break;};return this._Cache.IsEndOfBlock=false;case 3:if (F.nodeValue.Trim().length>0) return this._Cache.IsEndOfBlock=false;};F=FCKDomTools.GetNextSourceNode(F,false,null,C);};if (A) this.Select();return this._Cache.IsEndOfBlock=true;},CreateBookmark:function(A){var B={StartId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'S',EndId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'E'};var C=this.Window.document;var D;var E;var F;if (!this.CheckIsCollapsed()){E=C.createElement('span');E.style.display='none';E.id=B.EndId;E.setAttribute('_fck_bookmark',true);E.innerHTML='&nbsp;';F=this.Clone();F.Collapse(false);F.InsertNode(E);};D=C.createElement('span');D.style.display='none';D.id=B.StartId;D.setAttribute('_fck_bookmark',true);D.innerHTML='&nbsp;';F=this.Clone();F.Collapse(true);F.InsertNode(D);if (A){B.StartNode=D;B.EndNode=E;};if (E){this.SetStart(D,4);this.SetEnd(E,3);}else this.MoveToPosition(D,4);return B;},GetBookmarkNode:function(A,B){var C=this.Window.document;if (B) return A.StartNode||C.getElementById(A.StartId);else return A.EndNode||C.getElementById(A.EndId);},MoveToBookmark:function(A,B){var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);this.SetStart(C,3);if (!B) FCKDomTools.RemoveNode(C);if (D){this.SetEnd(D,3);if (!B) FCKDomTools.RemoveNode(D);}else this.Collapse(true);this._UpdateElementInfo();},CreateBookmark2:function(){if (!this._Range) return { "Start":0,"End":0 };var A={"Start":[this._Range.startOffset],"End":[this._Range.endOffset]};var B=this._Range.startContainer.previousSibling;var C=this._Range.endContainer.previousSibling;var D=this._Range.startContainer;var E=this._Range.endContainer;while (B&&B.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;};while (C&&C.nodeType==3){A.End[0]+=C.length;E=C;C=C.previousSibling;};if (D.nodeType==1&&D.childNodes[A.Start[0]]&&D.childNodes[A.Start[0]].nodeType==3){var F=D.childNodes[A.Start[0]];var G=0;while (F.previousSibling&&F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};D=F;A.Start[0]=G;};if (E.nodeType==1&&E.childNodes[A.End[0]]&&E.childNodes[A.End[0]].nodeType==3){var F=E.childNodes[A.End[0]];var G=0;while (F.previousSibling&&F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};E=F;A.End[0]=G;};A.Start=FCKDomTools.GetNodeAddress(D,true).concat(A.Start);A.End=FCKDomTools.GetNodeAddress(E,true).concat(A.End);return A;},MoveToBookmark2:function(A){var B=FCKDomTools.GetNodeFromAddress(this.Window.document,A.Start.slice(0,-1),true);var C=FCKDomTools.GetNodeFromAddress(this.Window.document,A.End.slice(0,-1),true);this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var D=A.Start[A.Start.length-1];var E=A.End[A.End.length-1];while (B.nodeType==3&&D>B.length){if (!B.nextSibling||B.nextSibling.nodeType!=3) break;D-=B.length;B=B.nextSibling;};while (C.nodeType==3&&E>C.length){if (!C.nextSibling||C.nextSibling.nodeType!=3) break;E-=C.length;C=C.nextSibling;};this._Range.setStart(B,D);this._Range.setEnd(C,E);this._UpdateElementInfo();},MoveToPosition:function(A,B){this.SetStart(A,B);this.Collapse(true);},SetStart:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setStart(A,0);break;case 2:D.setStart(A,A.childNodes.length);break;case 3:D.setStartBefore(A);break;case 4:D.setStartAfter(A);};if (!C) this._UpdateElementInfo();},SetEnd:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setEnd(A,0);break;case 2:D.setEnd(A,A.childNodes.length);break;case 3:D.setEndBefore(A);break;case 4:D.setEndAfter(A);};if (!C) this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'inline_elements':if (this._Range.startOffset==0){B=this._Range.startContainer;if (B.nodeType!=1) B=B.previousSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setStartBefore(B);if (B!=B.parentNode.firstChild) break;B=B.parentNode;}}};B=this._Range.endContainer;var C=this._Range.endOffset;if ((B.nodeType==3&&C>=B.nodeValue.length)||(B.nodeType==1&&C>=B.childNodes.length)||(B.nodeType!=1&&B.nodeType!=3)){if (B.nodeType!=1) B=B.nextSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setEndAfter(B);if (B!=B.parentNode.lastChild) break;B=B.parentNode;}}};break;case 'block_contents':case 'list_contents':var D=FCKListsLib.BlockBoundaries;if (A=='list_contents'||FCKConfig.EnterMode=='br') D=FCKListsLib.ListBoundaries;if (this.StartBlock&&FCKConfig.EnterMode!='br'&&A=='block_contents') this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){var E=B.childNodes[this._Range.startOffset];if (E) B=FCKDomTools.GetPreviousSourceNode(E,true);else B=B.lastChild||B;};while (B&&(B.nodeType!=1||(B!=this.StartBlockLimit&&!D[B.nodeName.toLowerCase()]))){this._Range.setStartBefore(B);B=B.previousSibling||B.parentNode;}};if (this.EndBlock&&FCKConfig.EnterMode!='br'&&A=='block_contents'&&this.EndBlock.nodeName.toLowerCase()!='li') this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;while (B&&(B.nodeType!=1||(B!=this.StartBlockLimit&&!D[B.nodeName.toLowerCase()]))){this._Range.setEndAfter(B);B=B.nextSibling||B.parentNode;};if (B&&B.nodeName.toLowerCase()=='br') this._Range.setEndAfter(B);};this._UpdateElementInfo();}},SplitBlock:function(){if (!this._Range) this.MoveToSelection();if (this.StartBlockLimit==this.EndBlockLimit){var A=this.StartBlock;var B=this.EndBlock;var C=null;if (FCKConfig.EnterMode!='br'){if (!A){A=this.FixBlock(true);B=this.EndBlock;};if (!B) B=this.FixBlock(false);};var D=(A!=null&&this.CheckStartOfBlock());var E=(B!=null&&this.CheckEndOfBlock());if (!this.CheckIsEmpty()) this.DeleteContents();if (A&&B&&A==B){if (E){C=new FCKElementPath(this.StartContainer);this.MoveToPosition(B,4);B=null;}else if (D){C=new FCKElementPath(this.StartContainer);this.MoveToPosition(A,3);A=null;}else{this.SetEnd(A,2);var F=this.ExtractContents();B=A.cloneNode(false);B.removeAttribute('id',false);F.AppendTo(B);FCKDomTools.InsertAfterNode(A,B);this.MoveToPosition(A,4);if (FCKBrowserInfo.IsGecko&&!A.nodeName.IEquals(['ul','ol'])) FCKTools.AppendBogusBr(A);}};return {PreviousBlock:A,NextBlock:B,WasStartOfBlock:D,WasEndOfBlock:E,ElementPath:C};};return null;},FixBlock:function(A){var B=this.CreateBookmark();this.Collapse(A);this.Expand('block_contents');var C=this.Window.document.createElement(FCKConfig.EnterMode);this.ExtractContents().AppendTo(C);FCKDomTools.TrimNode(C);this.InsertNode(C);this.MoveToBookmark(B);return C;},Release:function(A){if (!A) this.Window=null;this.StartNode=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndNode=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;this._Cache=null;},CheckHasRange:function(){return!!this._Range;},GetTouchedStartNode:function(){var A=this._Range;var B=A.startContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.startOffset]||B;},GetTouchedEndNode:function(){var A=this._Range;var B=A.endContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.endOffset-1]||B;}}; +FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var A=this.Window.document.selection;if (A.type!='Control'){var B=this._GetSelectionMarkerTag(true);var C=this._GetSelectionMarkerTag(false);if (!B&&!C){this._Range.setStart(this.Window.document.body,0);this._UpdateElementInfo();return;};this._Range.setStart(B.parentNode,FCKDomTools.GetIndexOf(B));B.parentNode.removeChild(B);this._Range.setEnd(C.parentNode,FCKDomTools.GetIndexOf(C));C.parentNode.removeChild(C);this._UpdateElementInfo();}else{var D=A.createRange().item(0);if (D){this._Range.setStartBefore(D);this._Range.setEndAfter(D);this._UpdateElementInfo();}}};FCKDomRange.prototype.Select=function(A){if (this._Range) this.SelectBookmark(this.CreateBookmark(true),A);};FCKDomRange.prototype.SelectBookmark=function(A,B){var C=this.CheckIsCollapsed();var D;var E;var F=this.GetBookmarkNode(A,true);if (!F) return;var G;if (!C) G=this.GetBookmarkNode(A,false);var H=this.Window.document.body.createTextRange();H.moveToElementText(F);H.moveStart('character',1);if (G){var I=this.Window.document.body.createTextRange();I.moveToElementText(G);H.setEndPoint('EndToEnd',I);H.moveEnd('character',-1);}else{D=(B||!F.previousSibling||F.previousSibling.nodeName.toLowerCase()=='br')&&!F.nextSibing;E=this.Window.document.createElement('span');E.innerHTML='&#65279;';F.parentNode.insertBefore(E,F);if (D){F.parentNode.insertBefore(this.Window.document.createTextNode('\ufeff'),F);}};if (!this._Range) this._Range=this.CreateRange();this._Range.setStartBefore(F);F.parentNode.removeChild(F);if (C){if (D){H.moveStart('character',-1);H.select();this.Window.document.selection.clear();}else H.select();FCKDomTools.RemoveNode(E);}else{this._Range.setEndBefore(G);G.parentNode.removeChild(G);H.select();}};FCKDomRange.prototype._GetSelectionMarkerTag=function(A){var B=this.Window.document;var C=B.selection;var D;try{D=C.createRange();}catch (e){return null;};if (D.parentElement().document!=B) return null;D.collapse(A===true);var E='fck_dom_range_temp_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000);D.pasteHTML('<span id="'+E+'"></span>');return B.getElementById(E);}; +var FCKDomRangeIterator=function(A){this.Range=A;this.ForceBrBreak=false;this.EnforceRealBlocks=false;};FCKDomRangeIterator.CreateFromSelection=function(A){var B=new FCKDomRange(A);B.MoveToSelection();return new FCKDomRangeIterator(B);};FCKDomRangeIterator.prototype={GetNextParagraph:function(){var A;var B;var C;var D;var E;var F=this.ForceBrBreak?FCKListsLib.ListBoundaries:FCKListsLib.BlockBoundaries;if (!this._LastNode){var B=this.Range.Clone();B.Expand(this.ForceBrBreak?'list_contents':'block_contents');this._NextNode=B.GetTouchedStartNode();this._LastNode=B.GetTouchedEndNode();B=null;};var H=this._NextNode;var I=this._LastNode;while (H){var J=false;var K=(H.nodeType!=1);var L=false;if (!K){var M=H.nodeName.toLowerCase();if (F[M]){if (M=='br') K=true;else if (!B&&H.childNodes.length==0&&M!='hr'){A=H;C=H==I;break;};J=true;}else{if (H.firstChild){if (!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};H=H.firstChild;continue;};K=true;}}else if (H.nodeType==3){if (/^[\r\n\t ]+$/.test(H.nodeValue)) K=false;};if (K&&!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};C=((!J||K)&&H==I);if (B&&!J){while (!H.nextSibling&&!C){var N=H.parentNode;if (F[N.nodeName.toLowerCase()]){J=true;C=C||(N==I);break;};H=N;C=(H==I);L=true;}};if (K) B.SetEnd(H,4,true);if ((J||C)&&B){B._UpdateElementInfo();if (B.StartNode==B.EndNode&&B.StartNode.parentNode==B.StartBlockLimit&&B.StartNode.getAttribute&&B.StartNode.getAttribute('_fck_bookmark')) B=null;else break;};if (C) break;H=FCKDomTools.GetNextSourceNode(H,L,null,I);};if (!A){if (!B){this._NextNode=null;return null;};A=B.StartBlock;if (!A&&!this.EnforceRealBlocks&&B.StartBlockLimit.nodeName.IEquals('DIV','TH','TD')&&B.CheckStartOfBlock()&&B.CheckEndOfBlock()){A=B.StartBlockLimit;}else if (!A||(this.EnforceRealBlocks&&A.nodeName.toLowerCase()=='li')){A=this.Range.Window.document.createElement(FCKConfig.EnterMode=='p'?'p':'div');B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);B.InsertNode(A);D=true;E=true;}else if (A.nodeName.toLowerCase()!='li'){if (!B.CheckStartOfBlock()||!B.CheckEndOfBlock()){A=A.cloneNode(false);B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);var O=B.SplitBlock();D=!O.WasStartOfBlock;E=!O.WasEndOfBlock;FCKDebug.Output('removePreviousBr='+D+',removeLastBr='+E);B.InsertNode(A);}}else if (!C){this._NextNode=A==I?null:FCKDomTools.GetNextSourceNode(B.EndNode,true,null,I);return A;}};if (D){var P=A.previousSibling;if (P&&P.nodeType==1){if (P.nodeName.toLowerCase()=='br') P.parentNode.removeChild(P);else if (P.lastChild&&P.lastChild.nodeName.IEquals('br')) P.removeChild(P.lastChild);}};if (E){var Q=A.lastChild;if (Q&&Q.nodeType==1&&Q.nodeName.toLowerCase()=='br') A.removeChild(Q);};this._NextNode=(C||A==I)?null:FCKDomTools.GetNextSourceNode(A,true,null,I);return A;}}; var FCKDocumentFragment=function(A){this._Document=A;this.RootNode=A.createElement('div');};FCKDocumentFragment.prototype={AppendTo:function(A){FCKDomTools.MoveChildren(this.RootNode,A);},AppendHtml:function(A){var B=this._Document.createElement('div');B.innerHTML=A;FCKDomTools.MoveChildren(B,this.RootNode);},InsertAfterNode:function(A){var B=this.RootNode;var C;while((C=B.lastChild)) FCKDomTools.InsertAfterNode(A,B.removeChild(C));}}; -var FCKW3CRange=function(A){this._Document=A;this.startContainer=null;this.startOffset=null;this.endContainer=null;this.endOffset=null;this.collapsed=true;};FCKW3CRange.CreateRange=function(A){return new FCKW3CRange(A);};FCKW3CRange.CreateFromRange=function(A,B){var C=FCKW3CRange.CreateRange(A);C.setStart(B.startContainer,B.startOffset);C.setEnd(B.endContainer,B.endOffset);return C;};FCKW3CRange.prototype={_UpdateCollapsed:function(){this.collapsed=(this.startContainer==this.endContainer&&this.startOffset==this.endOffset);},setStart:function(A,B){this.startContainer=A;this.startOffset=B;if (!this.endContainer){this.endContainer=A;this.endOffset=B;};this._UpdateCollapsed();},setEnd:function(A,B){this.endContainer=A;this.endOffset=B;if (!this.startContainer){this.startContainer=A;this.startOffset=B;};this._UpdateCollapsed();},setStartAfter:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setStartBefore:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A));},setEndAfter:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setEndBefore:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A));},collapse:function(A){if (A){this.endContainer=this.startContainer;this.endOffset=this.startOffset;}else{this.startContainer=this.endContainer;this.startOffset=this.endOffset;};this.collapsed=true;},selectNodeContents:function(A){this.setStart(A,0);this.setEnd(A,A.nodeType==3?A.data.length:A.childNodes.length);},insertNode:function(A){var B=this.startContainer;var C=this.startOffset;if (B.nodeType==3){B.splitText(C);if (B==this.endContainer) this.setEnd(B.nextSibling,this.endOffset-this.startOffset);FCKDomTools.InsertAfterNode(B,A);return;}else{B.insertBefore(A,B.childNodes[C]||null);if (B==this.endContainer){this.endOffset++;this.collapsed=false;}}},deleteContents:function(){if (this.collapsed) return;this._ExecContentsAction(0);},extractContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(1,A);return A;},cloneContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(2,A);return A;},_ExecContentsAction:function(A,B){var C=this.startContainer;var D=this.endContainer;var E=this.startOffset;var F=this.endOffset;var G=false;var H=false;if (D.nodeType==3) D=D.splitText(F);else{if (D.childNodes.length>0){if (F>D.childNodes.length-1){D=FCKDomTools.InsertAfterNode(D.lastChild,this._Document.createTextNode(''));H=true;}else D=D.childNodes[F];}};if (C.nodeType==3){C.splitText(E);if (C==D) D=C.nextSibling;}else{if (C.childNodes.length>0&&E<=C.childNodes.length-1){if (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else C=C.childNodes[E].previousSibling;}};var I=FCKDomTools.GetParents(C);var J=FCKDomTools.GetParents(D);var i,topStart,topEnd;for (i=0;i<I.length;i++){topStart=I[i];topEnd=J[i];if (topStart!=topEnd) break;};var K,levelStartNode,levelClone,currentNode,currentSibling;if (B) K=B.RootNode;for (var j=i;j<I.length;j++){levelStartNode=I[j];if (K&&levelStartNode!=C) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==C));currentNode=levelStartNode.nextSibling;while(currentNode){if (currentNode==J[j]||currentNode==D) break;currentSibling=currentNode.nextSibling;if (A==2) K.appendChild(currentNode.cloneNode(true));else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.appendChild(currentNode);};currentNode=currentSibling;};if (K) K=levelClone;};if (B) K=B.RootNode;for (var k=i;k<J.length;k++){levelStartNode=J[k];if (A>0&&levelStartNode!=D) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==D));if (!I[k]||levelStartNode.parentNode!=I[k].parentNode){currentNode=levelStartNode.previousSibling;while(currentNode){if (currentNode==I[k]||currentNode==C) break;currentSibling=currentNode.previousSibling;if (A==2) K.insertBefore(currentNode.cloneNode(true),K.firstChild);else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.insertBefore(currentNode,K.firstChild);};currentNode=currentSibling;}};if (K) K=levelClone;};if (A==2){var L=this.startContainer;if (L.nodeType==3){L.data+=L.nextSibling.data;L.parentNode.removeChild(L.nextSibling);};var M=this.endContainer;if (M.nodeType==3&&M.nextSibling){M.data+=M.nextSibling.data;M.parentNode.removeChild(M.nextSibling);}}else{if (topStart&&topEnd&&(C.parentNode!=topStart.parentNode||D.parentNode!=topEnd.parentNode)) this.setStart(topEnd.parentNode,FCKDomTools.GetIndexOf(topEnd));this.collapse(true);};if(G) C.parentNode.removeChild(C);if(H&&D.parentNode) D.parentNode.removeChild(D);},cloneRange:function(){return FCKW3CRange.CreateFromRange(this._Document,this);},toString:function(){var A=this.cloneContents();var B=this._Document.createElement('div');A.AppendTo(B);return B.textContent||B.innerText;}}; -var FCKEnterKey=function(A,B,C){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var D=new FCKKeystrokeHandler(false);D._EnterKey=this;D.OnKeystroke=FCKEnterKey_OnKeystroke;D.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[8,'Backspace'],[46,'Delete']]);D.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){this._HasShift=(B===true);var C=A||this.EnterMode;if (C=='br') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(C);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (!B.CheckIsCollapsed()) return false;var C=B.StartBlock;var D=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&C&&D){if (!B.CheckIsCollapsed()){var E=B.CheckEndOfBlock();B.DeleteContents();if (C!=D){B.SetStart(D,1);B.SetEnd(D,1);};B.Select();A=(C==D);};if (B.CheckStartOfBlock()){var F=B.StartBlock;var G=FCKDomTools.GetPreviousSourceElement(F,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,G,F);}else if (FCKBrowserInfo.IsGecko){B.Select();}};B.Release();return A;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&&C.nodeName.IEquals('LI')&&C.parentNode.parentNode.nodeName.IEquals('LI')){B=C.parentNode.parentNode;C=FCKListHandler.OutdentListItem(C);};if (B&&B.nodeName.IEquals('LI')){var E=FCKDomTools.GetLastChild(B,['UL','OL']);while (E){B=FCKDomTools.GetLastChild(E,'LI');E=FCKDomTools.GetLastChild(B,['UL','OL']);}};if (B&&C){if (C.nodeName.IEquals('LI')&&!B.nodeName.IEquals('LI')) C=FCKListHandler.OutdentListItem(C);var F=C.parentNode;if (B.nodeName.IEquals('TABLE','HR')){FCKDomTools.RemoveNode(B);D=true;}else{FCKDomTools.RemoveNode(C);while (F.innerHTML.Trim().length==0){var G=F.parentNode;G.removeChild(F);F=G;};FCKDomTools.TrimNode(C);FCKDomTools.TrimNode(B);A.SetStart(B,2);A.Collapse(true);var H=A.CreateBookmark();FCKDomTools.MoveChildren(C,B);A.MoveToBookmark(H);A.Select();D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.CheckIsCollapsed()&&B.CheckEndOfBlock(FCKBrowserInfo.IsGecko)){var C=B.StartBlock;var D=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,C,D);};B.Release();return A;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){if (!B.StartBlock) this._FixBlock(B,true,A);if (!B.EndBlock) this._FixBlock(B,false,A);var C=B.StartBlock;var D=B.EndBlock;if (!B.CheckIsEmpty()) B.DeleteContents();if (C==D){var E;var F=B.CheckStartOfBlock();var G=B.CheckEndOfBlock();if (F&&!G){E=C.cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) E.innerHTML=GECKO_BOGUS;C.parentNode.insertBefore(E,C);if (FCKBrowserInfo.IsIE){B.MoveToNodeContents(E);B.Select();};B.MoveToElementStart(C);}else{if (G){var H=C.tagName.toUpperCase();if (F&&H=='LI'){var I=FCKListHandler.OutdentListItem(C);B.MoveToElementStart(I);}else{if ((/^H[1-6]$/).test(H)) E=this.Window.document.createElement(A);else E=C.cloneNode(false);if (FCKBrowserInfo.IsGeckoLike){E.innerHTML=GECKO_BOGUS;if (F) C.innerHTML=GECKO_BOGUS;}}}else{B.SetEnd(C,2);var J=B.ExtractContents();E=C.cloneNode(false);FCKDomTools.TrimNode(J.RootNode);if (J.RootNode.firstChild.nodeType==1&&J.RootNode.firstChild.tagName.toUpperCase().Equals('UL','OL')) E.innerHTML=GECKO_BOGUS;J.AppendTo(E);if (FCKBrowserInfo.IsGecko){var K=FCKDomTools.GetLastChild(E);if (!K||K.nodeName.toLowerCase()!='br'||K.getAttribute('type',2)!='_moz') E.appendChild(FCKTools.CreateBogusBR(this.Window.document));}};if (E){FCKDomTools.InsertAfterNode(C,E);B.MoveToElementStart(E);if (FCKBrowserInfo.IsGecko) E.scrollIntoView(false);}}}else{B.MoveToElementStart(D);};B.Select();};B.Release();return true;};FCKEnterKey.prototype._ExecuteEnterBr=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){B.DeleteContents();B.MoveToSelection();var C=B.CheckStartOfBlock();var D=B.CheckEndOfBlock();var E=B.StartBlock?B.StartBlock.tagName.toUpperCase():'';var F=this._HasShift;if (!F&&E=='LI') return this._ExecuteEnterBlock(null);if (!F&&D&&(/^H[1-6]$/).test(E)){FCKDebug.Output('BR - Header');FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createElement('br'));if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createTextNode(''));B.SetStart(B.StartBlock.nextSibling,FCKBrowserInfo.IsIE?3:1);}else{FCKDebug.Output('BR - No Header');var G=this.Window.document.createElement('br');B.InsertNode(G);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(G,this.Window.document.createTextNode(''));if (D&&FCKBrowserInfo.IsGecko){var H=FCKDomTools.GetLastChild(G.parentNode,'BR');if (H&&H.getAttribute('type',2)!='_moz') G.parentNode.appendChild(FCKTools.CreateBogusBR(this.Window.document));};if (FCKBrowserInfo.IsIE) B.SetStart(G,4);else B.SetStart(G.nextSibling,1);};B.Collapse(true);B.Select();};B.Release();return true;};FCKEnterKey.prototype._FixBlock=function(A,B,C){var D=A.CreateBookmark();A.Collapse(B);A.Expand('block_contents');var E=this.Window.document.createElement(C);A.ExtractContents().AppendTo(E);FCKDomTools.TrimNode(E);A.InsertNode(E);A.MoveToBookmark(D);} -var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B,i=0;while((B=this._Items[i++])) B.ProcessDocument(A);};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCK.EditorDocument.createElement('IMG');C.className=A;C.src=FCKConfig.FullBasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0){if (C.innerHTML!=''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.childNodes.length==1&&C.childNodes[0].style&&C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKFlashProcessor=FCKDocumentProcessor.AppendNew();FCKFlashProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('EMBED');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.src.EndsWith('.swf',true)){var D=C.cloneNode(true);if (FCKBrowserInfo.IsIE){var E=['scale','play','loop','menu','wmode','quality'];for (var F=0;i<E.length;i++){var G=C.getAttribute(E[F]);if (G) D.setAttribute(E[F],G);}};var H=FCKDocumentProcessor_CreateFakeImage('FCK__Flash',D);H.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(H,C);C.parentNode.insertBefore(H,C);C.parentNode.removeChild(C);}}};FCKFlashProcessor.RefreshView=function(A,B){if (B.width>0) A.style.width=FCKTools.ConvertHtmlSizeToStyle(B.width);if (B.height>0) A.style.height=FCKTools.ConvertHtmlSizeToStyle(B.height);};FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length>0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length>0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;}; -var FCKSelection=FCK.Selection={}; -FCKSelection.GetType=function(){return FCK.EditorDocument.selection.type;};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=FCK.EditorDocument.selection.createRange();if (A&&A.item) return FCK.EditorDocument.selection.createRange().item(0);}};FCKSelection.GetParentElement=function(){switch (this.GetType()){case 'Control':return FCKSelection.GetSelectedElement().parentElement;case 'None':return null;default:return FCK.EditorDocument.selection.createRange().parentElement();}};FCKSelection.SelectNode=function(A){FCK.Focus();FCK.EditorDocument.selection.empty();var B;try{B=FCK.EditorDocument.body.createControlRange();B.addElement(A);}catch(e){B=FCK.EditorDocument.selection.createRange();B.moveToElementText(A);};B.select();};FCKSelection.Collapse=function(A){FCK.Focus();if (this.GetType()=='Text'){var B=FCK.EditorDocument.selection.createRange();B.collapse(A==null||A===true);B.select();}};FCKSelection.HasAncestorNode=function(A){var B;if (FCK.EditorDocument.selection.type=="Control"){B=this.GetSelectedElement();}else{var C=FCK.EditorDocument.selection.createRange();B=C.parentElement();};while (B){if (B.tagName==A) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B,oRange;if (!FCK.EditorDocument) return null;if (FCK.EditorDocument.selection.type=="Control"){oRange=FCK.EditorDocument.selection.createRange();for (i=0;i<oRange.length;i++){if (oRange(i).parentNode){B=oRange(i).parentNode;break;}}}else{oRange=FCK.EditorDocument.selection.createRange();B=oRange.parentElement();};while (B&&B.nodeName!=A) B=B.parentNode;return B;};FCKSelection.Delete=function(){var A=FCK.EditorDocument.selection;if (A.type.toLowerCase()!="none"){A.clear();};return A;}; -var FCKTableHandler={};FCKTableHandler.InsertRow=function(){var A=FCKSelection.MoveToAncestorNode('TR');if (!A) return;var B=A.cloneNode(true);A.parentNode.insertBefore(B,A);FCKTableHandler.ClearRow(A);};FCKTableHandler.DeleteRows=function(A){if (!A) A=FCKSelection.MoveToAncestorNode('TR');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');if (B.rows.length==1){FCKTableHandler.DeleteTable(B);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex+1;for (var i=0;i<B.rows.length;i++){var D=B.rows[i];if (D.cells.length<C) continue;A=D.cells[C-1].cloneNode(false);if (FCKBrowserInfo.IsGecko) A.innerHTML=GECKO_BOGUS;var E=D.cells[C];if (E) D.insertBefore(A,E);else D.appendChild(A);}};FCKTableHandler.DeleteColumns=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex;for (var i=B.rows.length-1;i>=0;i--){var D=B.rows[i];if (C==0&&D.cells.length==1){FCKTableHandler.DeleteRows(D);continue;};if (D.cells[C]) D.removeChild(D.cells[C]);}};FCKTableHandler.InsertCell=function(A){var B=A?A:FCKSelection.MoveToAncestorNode('TD');if (!B) return null;var C=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGecko) C.innerHTML=GECKO_BOGUS;if (B.cellIndex==B.parentNode.cells.length-1){B.parentNode.appendChild(C);}else{B.parentNode.insertBefore(C,B.nextSibling);};return C;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler.MergeCells=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<2) return;if (A[0].parentNode!=A[A.length-1].parentNode) return;var B=isNaN(A[0].colSpan)?1:A[0].colSpan;var C='';var D=FCK.EditorDocument.createDocumentFragment();for (var i=A.length-1;i>=0;i--){var E=A[i];for (var c=E.childNodes.length-1;c>=0;c--){var F=E.removeChild(E.childNodes[c]);if ((F.hasAttribute&&F.hasAttribute('_moz_editor_bogus_node'))||(F.getAttribute&&F.getAttribute('type',2)=='_moz')) continue;D.insertBefore(F,D.firstChild);};if (i>0){B+=isNaN(E.colSpan)?1:E.colSpan;FCKTableHandler.DeleteCell(E);}};A[0].colSpan=B;if (FCKBrowserInfo.IsGecko&&D.childNodes.length==0) A[0].innerHTML=GECKO_BOGUS;else A[0].appendChild(D);};FCKTableHandler.SplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=FCKTableHandler._GetCellIndexSpan(B,A[0].parentNode.rowIndex,A[0]);var D=this._GetCollumnCells(B,C);for (var i=0;i<D.length;i++){if (D[i]==A[0]){var E=this.InsertCell(A[0]);if (!isNaN(A[0].rowSpan)&&A[0].rowSpan>1) E.rowSpan=A[0].rowSpan;}else{if (isNaN(D[i].colSpan)) D[i].colSpan=2;else D[i].colSpan+=1;}}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length<B+1) return null;var D=A[B];for (var c=0;c<D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCollumnCells=function(A,B){var C=[];for (var r=0;r<A.length;r++){var D=A[r][B];if (D&&(C.length==0||C[C.length-1]!=D)) C[C.length]=D;};return C;};FCKTableHandler._CreateTableMap=function(A){var B=A.rows;var r=-1;var C=[];for (var i=0;i<B.length;i++){r++;if (!C[r]) C[r]=[];var c=-1;for (var j=0;j<B[i].cells.length;j++){var D=B[i].cells[j];c++;while (C[r][c]) c++;var E=isNaN(D.colSpan)?1:D.colSpan;var F=isNaN(D.rowSpan)?1:D.rowSpan;for (var G=0;G<F;G++){if (!C[r+G]) C[r+G]=[];for (var H=0;H<E;H++){C[r+G][c+H]=B[i].cells[j];}};c+=E-1;}};return C;};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsGecko) B[i].innerHTML=GECKO_BOGUS;else B[i].innerHTML='';}}; -FCKTableHandler.GetSelectedCells=function(){var A=[];var B=FCK.EditorDocument.selection.createRange();var C=FCKSelection.GetParentElement();if (C&&C.tagName.Equals('TD','TH')) A[0]=C;else{C=FCKSelection.MoveToAncestorNode('TABLE');if (C){for (var i=0;i<C.cells.length;i++){var D=FCK.EditorDocument.selection.createRange();D.moveToElementText(C.cells[i]);if (B.inRange(D)||(B.compareEndPoints('StartToStart',D)>=0&&B.compareEndPoints('StartToEnd',D)<=0)||(B.compareEndPoints('EndToStart',D)>=0&&B.compareEndPoints('EndToEnd',D)<=0)){A[A.length]=C.cells[i];}}}};return A;}; -var FCKXml=function(){this.Error=false;};FCKXml.prototype.LoadUrl=function(A){this.Error=false;var B=FCKTools.CreateXmlObject('XmlHttp');if (!B){this.Error=true;return;};B.open("GET",A,false);B.send(null);if (B.status==200||B.status==304) this.DOMDocument=B.responseXML;else if (B.status==0&&B.readyState==4){this.DOMDocument=FCKTools.CreateXmlObject('DOMDocument');this.DOMDocument.async=false;this.DOMDocument.resolveExternals=false;this.DOMDocument.loadXML(B.responseText);}else{this.DOMDocument=null;};if (this.DOMDocument==null||this.DOMDocument.firstChild==null){this.Error=true;if (window.confirm('Error loading "'+A+'"\r\nDo you want to see more info?')) alert('URL requested: "'+A+'"\r\nServer response:\r\nStatus: '+B.status+'\r\nResponse text:\r\n'+B.responseText);}};FCKXml.prototype.SelectNodes=function(A,B){if (this.Error) return [];if (B) return B.selectNodes(A);else return this.DOMDocument.selectNodes(A);};FCKXml.prototype.SelectSingleNode=function(A,B){if (this.Error) return null;if (B) return B.selectSingleNode(A);else return this.DOMDocument.selectSingleNode(A);} -var FCKStyleDef=function(A,B){this.Name=A;this.Element=B.toUpperCase();this.IsObjectElement=FCKRegexLib.ObjectElements.test(this.Element);this.Attributes={};};FCKStyleDef.prototype.AddAttribute=function(A,B){this.Attributes[A]=B;};FCKStyleDef.prototype.GetOpenerTag=function(){var s='<'+this.Element;for (var a in this.Attributes) s+=' '+a+'="'+this.Attributes[a]+'"';return s+'>';};FCKStyleDef.prototype.GetCloserTag=function(){return '</'+this.Element+'>';};FCKStyleDef.prototype.RemoveFromSelection=function(){if (FCKSelection.GetType()=='Control') this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement());else this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetParentElement());} -FCKStyleDef.prototype.ApplyToSelection=function(){var A=FCK.ToolbarSet.CurrentInstance.EditorDocument.selection;if (A.type=='Text'){var B=A.createRange();var e=document.createElement(this.Element);e.innerHTML=B.htmlText;this._AddAttributes(e);this._RemoveDuplicates(e);B.pasteHTML(e.outerHTML);}else if (A.type=='Control'){var C=FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement();if (C.tagName==this.Element) this._AddAttributes(C);}};FCKStyleDef.prototype._AddAttributes=function(A){for (var a in this.Attributes){switch (a.toLowerCase()){case 'style':A.style.cssText=this.Attributes[a];break;case 'class':A.setAttribute('className',this.Attributes[a],0);break;case 'src':A.setAttribute('_fcksavedurl',this.Attributes[a],0);default:A.setAttribute(a,this.Attributes[a],0);}}};FCKStyleDef.prototype._RemoveDuplicates=function(A){for (var i=0;i<A.children.length;i++){var B=A.children[i];this._RemoveDuplicates(B);if (this.IsEqual(B)) FCKTools.RemoveOuterTags(B);}};FCKStyleDef.prototype.IsEqual=function(e){if (e.tagName!=this.Element) return false;for (var a in this.Attributes){switch (a.toLowerCase()){case 'style':if (e.style.cssText.toLowerCase()!=this.Attributes[a].toLowerCase()) return false;break;case 'class':if (e.getAttribute('className',0)!=this.Attributes[a]) return false;break;default:if (e.getAttribute(a,0)!=this.Attributes[a]) return false;}};return true;};FCKStyleDef.prototype._RemoveMe=function(A){if (!A) return;var B=A.parentElement;if (this.IsEqual(A)){if (this.IsObjectElement){for (var a in this.Attributes){switch (a.toLowerCase()){case 'class':A.removeAttribute('className',0);break;default:A.removeAttribute(a,0);}};return;}else FCKTools.RemoveOuterTags(A);};this._RemoveMe(B);} -var FCKStylesLoader=function(){this.Styles={};this.StyleGroups={};this.Loaded=false;this.HasObjectElements=false;};FCKStylesLoader.prototype.Load=function(A){var B=new FCKXml();B.LoadUrl(A);var C=B.SelectNodes('Styles/Style');for (var i=0;i<C.length;i++){var D=C[i].attributes.getNamedItem('element').value.toUpperCase();var E=new FCKStyleDef(C[i].attributes.getNamedItem('name').value,D);if (E.IsObjectElement) this.HasObjectElements=true;var F=B.SelectNodes('Attribute',C[i]);for (var j=0;j<F.length;j++){var G=F[j].attributes.getNamedItem('name').value;var H=F[j].attributes.getNamedItem('value').value;if (G.toLowerCase()=='style'){var I=document.createElement('SPAN');I.style.cssText=H;H=I.style.cssText;};E.AddAttribute(G,H);};this.Styles[E.Name]=E;var J=this.StyleGroups[D];if (J==null){this.StyleGroups[D]=[];J=this.StyleGroups[D];};J[J.length]=E;};this.Loaded=true;} +var FCKW3CRange=function(A){this._Document=A;this.startContainer=null;this.startOffset=null;this.endContainer=null;this.endOffset=null;this.collapsed=true;};FCKW3CRange.CreateRange=function(A){return new FCKW3CRange(A);};FCKW3CRange.CreateFromRange=function(A,B){var C=FCKW3CRange.CreateRange(A);C.setStart(B.startContainer,B.startOffset);C.setEnd(B.endContainer,B.endOffset);return C;};FCKW3CRange.prototype={_UpdateCollapsed:function(){this.collapsed=(this.startContainer==this.endContainer&&this.startOffset==this.endOffset);},setStart:function(A,B){this.startContainer=A;this.startOffset=B;if (!this.endContainer){this.endContainer=A;this.endOffset=B;};this._UpdateCollapsed();},setEnd:function(A,B){this.endContainer=A;this.endOffset=B;if (!this.startContainer){this.startContainer=A;this.startOffset=B;};this._UpdateCollapsed();},setStartAfter:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setStartBefore:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A));},setEndAfter:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setEndBefore:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A));},collapse:function(A){if (A){this.endContainer=this.startContainer;this.endOffset=this.startOffset;}else{this.startContainer=this.endContainer;this.startOffset=this.endOffset;};this.collapsed=true;},selectNodeContents:function(A){this.setStart(A,0);this.setEnd(A,A.nodeType==3?A.data.length:A.childNodes.length);},insertNode:function(A){var B=this.startContainer;var C=this.startOffset;if (B.nodeType==3){B.splitText(C);if (B==this.endContainer) this.setEnd(B.nextSibling,this.endOffset-this.startOffset);FCKDomTools.InsertAfterNode(B,A);return;}else{B.insertBefore(A,B.childNodes[C]||null);if (B==this.endContainer){this.endOffset++;this.collapsed=false;}}},deleteContents:function(){if (this.collapsed) return;this._ExecContentsAction(0);},extractContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(1,A);return A;},cloneContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(2,A);return A;},_ExecContentsAction:function(A,B){var C=this.startContainer;var D=this.endContainer;var E=this.startOffset;var F=this.endOffset;var G=false;var H=false;if (D.nodeType==3) D=D.splitText(F);else{if (D.childNodes.length>0){if (F>D.childNodes.length-1){D=FCKDomTools.InsertAfterNode(D.lastChild,this._Document.createTextNode(''));H=true;}else D=D.childNodes[F];}};if (C.nodeType==3){C.splitText(E);if (C==D) D=C.nextSibling;}else{if (C.childNodes.length>0&&E<=C.childNodes.length-1){if (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else C=C.childNodes[E].previousSibling;}};var I=FCKDomTools.GetParents(C);var J=FCKDomTools.GetParents(D);var i,topStart,topEnd;for (i=0;i<I.length;i++){topStart=I[i];topEnd=J[i];if (topStart!=topEnd) break;};var K,levelStartNode,levelClone,currentNode,currentSibling;if (B) K=B.RootNode;for (var j=i;j<I.length;j++){levelStartNode=I[j];if (K&&levelStartNode!=C) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==C));currentNode=levelStartNode.nextSibling;while(currentNode){if (currentNode==J[j]||currentNode==D) break;currentSibling=currentNode.nextSibling;if (A==2) K.appendChild(currentNode.cloneNode(true));else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.appendChild(currentNode);};currentNode=currentSibling;};if (K) K=levelClone;};if (B) K=B.RootNode;for (var k=i;k<J.length;k++){levelStartNode=J[k];if (A>0&&levelStartNode!=D) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==D));if (!I[k]||levelStartNode.parentNode!=I[k].parentNode){currentNode=levelStartNode.previousSibling;while(currentNode){if (currentNode==I[k]||currentNode==C) break;currentSibling=currentNode.previousSibling;if (A==2) K.insertBefore(currentNode.cloneNode(true),K.firstChild);else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.insertBefore(currentNode,K.firstChild);};currentNode=currentSibling;}};if (K) K=levelClone;};if (A==2){var L=this.startContainer;if (L.nodeType==3){L.data+=L.nextSibling.data;L.parentNode.removeChild(L.nextSibling);};var M=this.endContainer;if (M.nodeType==3&&M.nextSibling){M.data+=M.nextSibling.data;M.parentNode.removeChild(M.nextSibling);}}else{if (topStart&&topEnd&&(C.parentNode!=topStart.parentNode||D.parentNode!=topEnd.parentNode)){var N=FCKDomTools.GetIndexOf(topEnd);if (G&&topEnd.parentNode==C.parentNode) N--;this.setStart(topEnd.parentNode,N);};this.collapse(true);};if(G) C.parentNode.removeChild(C);if(H&&D.parentNode) D.parentNode.removeChild(D);},cloneRange:function(){return FCKW3CRange.CreateFromRange(this._Document,this);}}; +var FCKEnterKey=function(A,B,C,D){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var E=new FCKKeystrokeHandler(false);E._EnterKey=this;E.OnKeystroke=FCKEnterKey_OnKeystroke;E.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[9,'Tab'],[8,'Backspace'],[CTRL+8,'CtrlBackspace'],[46,'Delete']]);if (D>0){this.TabText='';while (D-->0) this.TabText+='\xa0';};E.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();break;case 'Tab':return C.DoTab();break;case 'CtrlBackspace':return C.DoCtrlBackspace();break;}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){FCKUndo.SaveUndoStep();this._HasShift=(B===true);var C=FCKSelection.GetParentElement();var D=new FCKElementPath(C);var E=A||this.EnterMode;if (E=='br'||D.Block&&D.Block.tagName.toLowerCase()=='pre') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(E);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};var C=B.CheckIsCollapsed();if (!C){if (FCKBrowserInfo.IsIE&&this.Window.document.selection.type.toLowerCase()=="control"){var D=this.Window.document.selection.createRange();for (var i=D.length-1;i>=0;i--){var E=D.item(i);E.parentNode.removeChild(E);};return true;};return false;};var F=B.StartBlock;var G=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&F&&G){if (!C){var H=B.CheckEndOfBlock();B.DeleteContents();if (F!=G){B.SetStart(G,1);B.SetEnd(G,1);};B.Select();A=(F==G);};if (B.CheckStartOfBlock()){var I=B.StartBlock;var J=FCKDomTools.GetPreviousSourceElement(I,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,J,I);}else if (FCKBrowserInfo.IsGeckoLike){B.Select();}};B.Release();return A;};FCKEnterKey.prototype.DoCtrlBackspace=function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(this.Window);A.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(A,this.Window.document.body)){this._FixIESelectAllBug(A);return true;};return false;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&&C&&C.nodeName.IEquals('LI')&&C.parentNode.parentNode.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};if (B&&B.nodeName.IEquals('LI')){var E=FCKDomTools.GetLastChild(B,['UL','OL']);while (E){B=FCKDomTools.GetLastChild(E,'LI');E=FCKDomTools.GetLastChild(B,['UL','OL']);}};if (B&&C){if (C.nodeName.IEquals('LI')&&!B.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};var F=C.parentNode;var G=B.nodeName.toLowerCase();if (FCKListsLib.EmptyElements[G]!=null||G=='table'){FCKDomTools.RemoveNode(B);D=true;}else{FCKDomTools.RemoveNode(C);while (F.innerHTML.Trim().length==0){var H=F.parentNode;H.removeChild(F);F=H;};FCKDomTools.LTrimNode(C);FCKDomTools.RTrimNode(B);A.SetStart(B,2,true);A.Collapse(true);var I=A.CreateBookmark(true);if (!C.tagName.IEquals(['TABLE'])) FCKDomTools.MoveChildren(C,B);A.SelectBookmark(I);D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){FCKUndo.SaveUndoStep();var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};if (B.CheckIsCollapsed()&&B.CheckEndOfBlock(FCKBrowserInfo.IsGeckoLike)){var C=B.StartBlock;var D=FCKTools.GetElementAscensor(C,'td');var E=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL','TR'],true);if (D){var F=FCKTools.GetElementAscensor(E,'td');if (F!=D) return true;};A=this._ExecuteBackspace(B,C,E);};B.Release();return A;};FCKEnterKey.prototype.DoTab=function(){var A=new FCKDomRange(this.Window);A.MoveToSelection();var B=A._Range.startContainer;while (B){if (B.nodeType==1){var C=B.tagName.toLowerCase();if (C=="tr"||C=="td"||C=="th"||C=="tbody"||C=="table") return false;else break;};B=B.parentNode;};if (this.TabText){A.DeleteContents();A.InsertNode(this.Window.document.createTextNode(this.TabText));A.Collapse(false);A.Select();};return true;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A,B){var C=B||new FCKDomRange(this.Window);var D=C.SplitBlock();if (D){var E=D.PreviousBlock;var F=D.NextBlock;var G=D.WasStartOfBlock;var H=D.WasEndOfBlock;if (!D.WasStartOfBlock&&!D.WasEndOfBlock){if (F.nodeName.IEquals('li')&&F.firstChild&&F.firstChild.nodeName.IEquals(['ul','ol'])) F.insertBefore(F.ownerDocument.createTextNode('\xa0'),F.firstChild);if (F) C.MoveToElementEditStart(F);}else{if (G&&H&&E.tagName.toUpperCase()=='LI'){C.MoveToElementStart(E);this._OutdentWithSelection(E,C);C.Release();return true;};var I;if (E){var J=E.tagName.toUpperCase();if (!this._HasShift&&!(/^H[1-6]$/).test(J)){I=FCKDomTools.CloneElement(E);}}else if (F) I=FCKDomTools.CloneElement(F);if (!I) I=this.Window.document.createElement(A);var K=D.ElementPath;if (K){var L=I;for (var i=0,len=K.Elements.length;i<len;i++){var M=K.Elements[i];if (M==K.Block||M==K.BlockLimit) break;if (FCKListsLib.InlineChildReqElements[M.nodeName.toLowerCase()]) L=L.appendChild(FCKDomTools.CloneElement(M));}};if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);C.InsertNode(I);if (FCKBrowserInfo.IsIE){C.MoveToNodeContents(I);C.Select();};C.MoveToElementEditStart(G&&!H?F:I);};if (FCKBrowserInfo.IsSafari) FCKDomTools.ScrollIntoView(F||I,false);else if (FCKBrowserInfo.IsGeckoLike) (F||I).scrollIntoView(false);C.Select();};C.Release();return true;};FCKEnterKey.prototype._ExecuteEnterBr=function(A){var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.StartBlockLimit==B.EndBlockLimit){B.DeleteContents();B.MoveToSelection();var C=B.CheckStartOfBlock();var D=B.CheckEndOfBlock();var E=B.StartBlock?B.StartBlock.tagName.toUpperCase():'';var F=this._HasShift;var G=false;if (!F&&E=='LI') return this._ExecuteEnterBlock(null,B);if (!F&&D&&(/^H[1-6]$/).test(E)){FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createElement('br'));if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createTextNode(''));B.SetStart(B.StartBlock.nextSibling,FCKBrowserInfo.IsIE?3:1);}else{var H;G=E.IEquals('pre');if (G) H=this.Window.document.createTextNode(FCKBrowserInfo.IsIE?'\r':'\n');else H=this.Window.document.createElement('br');B.InsertNode(H);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(H,this.Window.document.createTextNode(''));if (D&&FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H.parentNode);if (FCKBrowserInfo.IsIE) B.SetStart(H,4);else B.SetStart(H.nextSibling,1);if (!FCKBrowserInfo.IsIE){var I=null;if (FCKBrowserInfo.IsOpera) I=this.Window.document.createElement('span');else I=this.Window.document.createElement('br');H.parentNode.insertBefore(I,H.nextSibling);if (FCKBrowserInfo.IsSafari) FCKDomTools.ScrollIntoView(I,false);else I.scrollIntoView(false);I.parentNode.removeChild(I);}};B.Collapse(true);B.Select(G);};B.Release();return true;};FCKEnterKey.prototype._OutdentWithSelection=function(A,B){var C=B.CreateBookmark();FCKListHandler.OutdentListItem(A);B.MoveToBookmark(C);B.Select();};FCKEnterKey.prototype._CheckIsAllContentsIncluded=function(A,B){var C=false;var D=false;if (A.StartContainer==B||A.StartContainer==B.firstChild) C=(A._Range.startOffset==0);if (A.EndContainer==B||A.EndContainer==B.lastChild){var E=A.EndContainer.nodeType==3?A.EndContainer.length:A.EndContainer.childNodes.length;D=(A._Range.endOffset==E);};return C&&D;};FCKEnterKey.prototype._FixIESelectAllBug=function(A){var B=this.Window.document;B.body.innerHTML='';var C;if (FCKConfig.EnterMode.IEquals(['div','p'])){C=B.createElement(FCKConfig.EnterMode);B.body.appendChild(C);}else C=B.body;A.MoveToNodeContents(C);A.Collapse(true);A.Select();A.Release();}; +var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B,i=0;while((B=this._Items[i++])) B.ProcessDocument(A);};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCK.EditorDocument.createElement('IMG');C.className=A;C.src=FCKConfig.FullBasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0){if (C.innerHTML!==''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.childNodes.length==1&&C.childNodes[0].style&&C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKFlashProcessor=FCKDocumentProcessor.AppendNew();FCKFlashProcessor.ProcessDocument=function(A){var B=FCK.IsDirty();var C=A.getElementsByTagName('EMBED');var D;var i=C.length-1;while (i>=0&&(D=C[i--])){var E=D.attributes['type'];if ((D.src&&D.src.EndsWith('.swf',true))||(E&&E.nodeValue=='application/x-shockwave-flash')){var F=D.cloneNode(true);var G=FCKDocumentProcessor_CreateFakeImage('FCK__Flash',F);G.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(G,D);D.parentNode.insertBefore(G,D);D.parentNode.removeChild(D);}};if (!B) FCK.ResetIsDirty();};FCKFlashProcessor.RefreshView=function(A,B){if (B.getAttribute('width')>0) A.style.width=FCKTools.ConvertHtmlSizeToStyle(B.getAttribute('width'));if (B.getAttribute('height')>0) A.style.height=FCKTools.ConvertHtmlSizeToStyle(B.getAttribute('height'));};FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length>0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length>0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};if (FCKBrowserInfo.IsIE){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('HR');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){var D=A.createElement('hr');D.mergeAttributes(C,true);FCKDomTools.InsertAfterNode(C,D);C.parentNode.removeChild(C);}}};FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('INPUT');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.type=='hidden'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__InputHidden',C.cloneNode(true));D.setAttribute('_fckinputhidden','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}} +var FCKSelection=FCK.Selection={GetParentBlock:function(){var A=this.GetParentElement();while (A){if (FCKListsLib.BlockBoundaries[A.nodeName.toLowerCase()]) break;A=A.parentNode;};return A;},ApplyStyle:function(A){FCKStyles.ApplyStyle(new FCKStyle(A));}}; +FCKSelection.GetType=function(){try{var A=FCK.EditorDocument.selection.type;if (A=='Control'||A=='Text') return A;if (FCK.EditorDocument.selection.createRange().parentElement) return 'Text';}catch(e){};return 'None';};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=FCK.EditorDocument.selection.createRange();if (A&&A.item) return FCK.EditorDocument.selection.createRange().item(0);};return null;};FCKSelection.GetParentElement=function(){switch (this.GetType()){case 'Control':var A=FCKSelection.GetSelectedElement();return A?A.parentElement:null;case 'None':return null;default:return FCK.EditorDocument.selection.createRange().parentElement();}};FCKSelection.GetBoundaryParentElement=function(A){switch (this.GetType()){case 'Control':var B=FCKSelection.GetSelectedElement();return B?B.parentElement:null;case 'None':return null;default:var C=FCK.EditorDocument;var D=C.selection.createRange();D.collapse(A!==false);var B=D.parentElement();return FCKTools.GetElementDocument(B)==C?B:null;}};FCKSelection.SelectNode=function(A){FCK.Focus();FCK.EditorDocument.selection.empty();var B;try{B=FCK.EditorDocument.body.createControlRange();B.addElement(A);}catch(e){B=FCK.EditorDocument.body.createTextRange();B.moveToElementText(A);};B.select();};FCKSelection.Collapse=function(A){FCK.Focus();if (this.GetType()=='Text'){var B=FCK.EditorDocument.selection.createRange();B.collapse(A==null||A===true);B.select();}};FCKSelection.HasAncestorNode=function(A){var B;if (FCK.EditorDocument.selection.type=="Control"){B=this.GetSelectedElement();}else{var C=FCK.EditorDocument.selection.createRange();B=C.parentElement();};while (B){if (B.tagName==A) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B,oRange;if (!FCK.EditorDocument) return null;if (FCK.EditorDocument.selection.type=="Control"){oRange=FCK.EditorDocument.selection.createRange();for (i=0;i<oRange.length;i++){if (oRange(i).parentNode){B=oRange(i).parentNode;break;}}}else{oRange=FCK.EditorDocument.selection.createRange();B=oRange.parentElement();};while (B&&B.nodeName!=A) B=B.parentNode;return B;};FCKSelection.Delete=function(){var A=FCK.EditorDocument.selection;if (A.type.toLowerCase()!="none"){A.clear();};return A;}; +var FCKTableHandler={};FCKTableHandler.InsertRow=function(A){var B=FCKSelection.MoveToAncestorNode('TR');if (!B) return;var C=B.cloneNode(true);B.parentNode.insertBefore(C,B);FCKTableHandler.ClearRow(A?C:B);};FCKTableHandler.DeleteRows=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();var C=[];for (var i=0;i<B.length;i++){var D=FCKTools.GetElementAscensor(B[i],'TR');C[D.rowIndex]=D;};for (var i=C.length;i>=0;i--){if (C[i]) FCKTableHandler.DeleteRows(C[i]);};return;};var E=FCKTools.GetElementAscensor(A,'TABLE');if (E.rows.length==1){FCKTableHandler.DeleteTable(E);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();if (A.parentNode.childNodes.length==1) A.parentNode.parentNode.removeChild(A.parentNode);else A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(A){var B=null;var C=this.GetSelectedCells();if (C&&C.length) B=C[A?0:(C.length-1)];if (!B) return;var D=FCKTools.GetElementAscensor(B,'TABLE');var E=B.cellIndex;for (var i=0;i<D.rows.length;i++){var F=D.rows[i];if (F.cells.length<(E+1)) continue;B=F.cells[E].cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B);var G=F.cells[E];if (A) F.insertBefore(B,G);else if (G.nextSibling) F.insertBefore(B,G.nextSibling);else F.appendChild(B);}};FCKTableHandler.DeleteColumns=function(A){if (!A){var B=FCKTableHandler.GetSelectedCells();for (var i=B.length;i>=0;i--){if (B[i]) FCKTableHandler.DeleteColumns(B[i]);};return;};if (!A) return;var C=FCKTools.GetElementAscensor(A,'TABLE');var D=A.cellIndex;for (var i=C.rows.length-1;i>=0;i--){var E=C.rows[i];if (D==0&&E.cells.length==1){FCKTableHandler.DeleteRows(E);continue;};if (E.cells[D]) E.removeChild(E.cells[D]);}};FCKTableHandler.InsertCell=function(A,B){var C=null;var D=this.GetSelectedCells();if (D&&D.length) C=D[B?0:(D.length-1)];if (!C) return null;var E=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(E);if (!B&&C.cellIndex==C.parentNode.cells.length-1) C.parentNode.appendChild(E);else C.parentNode.insertBefore(E,B?C:C.nextSibling);return E;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler._MarkCells=function(A,B){for (var i=0;i<A.length;i++) A[i][B]=true;};FCKTableHandler._UnmarkCells=function(A,B){for (var i=0;i<A.length;i++){if (FCKBrowserInfo.IsIE) A[i].removeAttribute(B);else delete A[i][B];}};FCKTableHandler._ReplaceCellsByMarker=function(A,B,C){for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){if (A[i][j][B]) A[i][j]=C;}}};FCKTableHandler._GetMarkerGeometry=function(A,B,C,D){var E=0;var F=0;var G=0;var H=0;for (var i=C;A[B][i]&&A[B][i][D];i++) E++;for (var i=C-1;A[B][i]&&A[B][i][D];i--){E++;G++;};for (var i=B;A[i]&&A[i][C]&&A[i][C][D];i++) F++;for (var i=B-1;A[i]&&A[i][C]&&A[i][C][D];i--){F++;H++;};return { 'width':E,'height':F,'x':G,'y':H };};FCKTableHandler.CheckIsSelectionRectangular=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<1) return false;this._MarkCells(A,'_CellSelected');var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=A[0].parentNode.rowIndex;var D=this._GetCellIndexSpan(B,C,A[0]);var E=this._GetMarkerGeometry(B,C,D,'_CellSelected');var F=D-E.x;var G=C-E.y;if (E.width>=E.height){for (D=F;D<F+E.width;D++){C=G+(D-F) % E.height;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}}else{for (C=G;C<G+E.height;C++){D=F+(C-G) % E.width;if (!B[C]||!B[C][D]){this._UnmarkCells(A,'_CellSelected');return false;};var g=this._GetMarkerGeometry(B,C,D,'_CellSelected');if (g.width!=E.width||g.height!=E.height){this._UnmarkCells(A,'_CellSelected');return false;}}};this._UnmarkCells(A,'_CellSelected');return true;};FCKTableHandler.MergeCells=function(){var A=this.GetSelectedCells();if (A.length<2) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);this._MarkCells(A,'_SelectedCells');var F=this._GetMarkerGeometry(C,D,E,'_SelectedCells');var G=E-F.x;var H=D-F.y;var I=B.ownerDocument.createDocumentFragment();for (var i=0;i<F.height;i++){var J=0;for (var j=0;j<F.width;j++){var K=C[H+i][G+j];while (K.childNodes.length>0){var L=K.removeChild(K.firstChild);if (L.nodeType!=1||(L.getAttribute('type',2)!='_moz'&&L.getAttribute('_moz_dirty')!=null)){I.appendChild(L);J++;}}};if (J>0) I.appendChild(B.ownerDocument.createElement('br'));};this._ReplaceCellsByMarker(C,'_SelectedCells',B);this._UnmarkCells(A,'_SelectedCells');this._InstallTableMap(C,B.parentNode.parentNode);B.appendChild(I);if (FCKBrowserInfo.IsGeckoLike&&(!B.firstChild)) FCKTools.AppendBogusBr(B);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeRight=function(){var A=this.GetMergeRightTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCK.EditorDocument.createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));D.parentNode.removeChild(D);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeDown=function(){var A=this.GetMergeDownTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=B.ownerDocument.createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));if (E.firstChild) E.insertBefore(D.ownerDocument.createElement('br'),E.firstChild);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.HorizontalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;if (F>1){var G=Math.ceil(F/2);var H=B.ownerDocument.createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H);var I=E+G;var J=E+F;var K=isNaN(B.rowSpan)?1:B.rowSpan;for (var r=D;r<D+K;r++){for (var i=I;i<J;i++) C[r][i]=H;}}else{var L=[];for (var i=0;i<C.length;i++){var M=C[i].slice(0,E);if (C[i].length<=E){L.push(M);continue;};if (C[i][E]==B){M.push(B);M.push(B.ownerDocument.createElement('td'));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(M[M.length-1]);}else{M.push(C[i][E]);M.push(C[i][E]);};for (var j=E+1;j<C[i].length;j++) M.push(C[i][j]);L.push(M);};C=L;};this._InstallTableMap(C,B.parentNode.parentNode);};FCKTableHandler.VerticalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=FCKTableHandler._GetCellIndexSpan(C,B.parentNode.rowIndex,B);var E=B.rowSpan;var F=B.parentNode.rowIndex;if (isNaN(E)) E=1;if (E>1){B.rowSpan=Math.ceil(E/2);var G=F+Math.ceil(E/2);var H=null;for (var i=D+1;i<C[G].length;i++){if (C[G][i].parentNode.rowIndex==G){H=C[G][i];break;}};var I=FCK.EditorDocument.createElement('td');I.rowSpan=Math.floor(E/2);if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);B.parentNode.parentNode.rows[G].insertBefore(I,H);}else{var G=F+1;var K=FCK.EditorDocument.createElement('tr');B.parentNode.parentNode.insertBefore(K,B.parentNode.parentNode.rows[G]);for (var i=0;i<C[F].length;){var L=C[F][i].colSpan;if (isNaN(L)||L<1) L=1;if (i==D){i+=L;continue;};var M=C[F][i].rowSpan;if (isNaN(M)) M=1;C[F][i].rowSpan=M+1;i+=L;};var I=FCK.EditorDocument.createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);K.appendChild(I);}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length<B+1) return null;var D=A[B];for (var c=0;c<D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCellLocation=function(A,B){for (var i=0;i<A.length;i++){for (var c=0;c<A[i].length;c++){if (A[i][c]==B) return [i,c];}};return null;};FCKTableHandler._GetColumnCells=function(A,B){var C=[];for (var r=0;r<A.length;r++){var D=A[r][B];if (D&&(C.length==0||C[C.length-1]!=D)) C[C.length]=D;};return C;};FCKTableHandler._CreateTableMap=function(A){var B=A.rows;var r=-1;var C=[];for (var i=0;i<B.length;i++){r++;if (!C[r]) C[r]=[];var c=-1;for (var j=0;j<B[i].cells.length;j++){var D=B[i].cells[j];c++;while (C[r][c]) c++;var E=isNaN(D.colSpan)?1:D.colSpan;var F=isNaN(D.rowSpan)?1:D.rowSpan;for (var G=0;G<F;G++){if (!C[r+G]) C[r+G]=[];for (var H=0;H<E;H++){C[r+G][c+H]=B[i].cells[j];}};c+=E-1;}};return C;};FCKTableHandler._InstallTableMap=function(A,B){while (B.rows.length>0){var C=B.rows[0];C.parentNode.removeChild(C);};for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (D.parentNode) D.parentNode.removeChild(D);D.colSpan=D.rowSpan=1;}};var E=0;for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (!D) continue;if (j>E) E=j;if (D._colScanned===true) continue;if (A[i][j-1]==D) D.colSpan++;if (A[i][j+1]!=D) D._colScanned=true;}};for (var i=0;i<=E;i++){for (var j=0;j<A.length;j++){if (!A[j]) continue;var D=A[j][i];if (!D||D._rowScanned===true) continue;if (A[j-1]&&A[j-1][i]==D) D.rowSpan++;if (!A[j+1]||A[j+1][i]!=D) D._rowScanned=true;}};for (var i=0;i<A.length;i++){for (var j=0;j<A[i].length;j++){var D=A[i][j];if (FCKBrowserInfo.IsIE){D.removeAttribute('_colScanned');D.removeAttribute('_rowScanned');}else{delete D._colScanned;delete D._rowScanned;}}};for (var i=0;i<A.length;i++){var I=B.ownerDocument.createElement('tr');for (var j=0;j<A[i].length;){var D=A[i][j];if (A[i-1]&&A[i-1][j]==D){j+=D.colSpan;continue;};I.appendChild(D);j+=D.colSpan;if (D.colSpan==1) D.removeAttribute('colspan');if (D.rowSpan==1) D.removeAttribute('rowspan');};B.appendChild(I);}};FCKTableHandler._MoveCaretToCell=function (A,B){var C=new FCKDomRange(FCK.EditorWindow);C.MoveToNodeContents(A);C.Collapse(B);C.Select();};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){B[i].innerHTML='';if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(B[i]);}};FCKTableHandler.GetMergeRightTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=E+(isNaN(B.colSpan)?1:B.colSpan);var G=C[D][F];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,D,F,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.height!=I.height||H.y!=I.y) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };};FCKTableHandler.GetMergeDownTarget=function(){var A=this.GetSelectedCells();if (A.length!=1) return null;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=this._GetCellIndexSpan(C,D,B);var F=D+(isNaN(B.rowSpan)?1:B.rowSpan);if (!C[F]) return null;var G=C[F][E];if (!G) return null;this._MarkCells([B,G],'_SizeTest');var H=this._GetMarkerGeometry(C,D,E,'_SizeTest');var I=this._GetMarkerGeometry(C,F,E,'_SizeTest');this._UnmarkCells([B,G],'_SizeTest');if (H.width!=I.width||H.x!=I.x) return null;return { 'refCell':B,'nextCell':G,'tableMap':C };}; +FCKTableHandler.GetSelectedCells=function(){if (FCKSelection.GetType()=='Control'){var A=FCKSelection.MoveToAncestorNode('TD');return A?[A]:[];};var B=[];var C=FCK.EditorDocument.selection.createRange();var D=FCKSelection.GetParentElement();if (D&&D.tagName.Equals('TD','TH')) B[0]=D;else{D=FCKSelection.MoveToAncestorNode('TABLE');if (D){for (var i=0;i<D.cells.length;i++){var E=FCK.EditorDocument.body.createTextRange();E.moveToElementText(D.cells[i]);if (C.inRange(E)||(C.compareEndPoints('StartToStart',E)>=0&&C.compareEndPoints('StartToEnd',E)<=0)||(C.compareEndPoints('EndToStart',E)>=0&&C.compareEndPoints('EndToEnd',E)<=0)){B[B.length]=D.cells[i];}}}};return B;}; +var FCKXml=function(){this.Error=false;};FCKXml.GetAttribute=function(A,B,C){var D=A.attributes.getNamedItem(B);return D?D.value:C;};FCKXml.TransformToObject=function(A){if (!A) return null;var B={};var C=A.attributes;for (var i=0;i<C.length;i++){var D=C[i];B[D.name]=D.value;};var E=A.childNodes;for (i=0;i<E.length;i++){var F=E[i];if (F.nodeType==1){var G='$'+F.nodeName;var H=B[G];if (!H) H=B[G]=[];H.push(this.TransformToObject(F));}};return B;} +FCKXml.prototype={LoadUrl:function(A){this.Error=false;var B=FCKTools.CreateXmlObject('XmlHttp');if (!B){this.Error=true;return;};B.open("GET",A,false);B.send(null);if (B.status==200||B.status==304) this.DOMDocument=B.responseXML;else if (B.status==0&&B.readyState==4){this.DOMDocument=FCKTools.CreateXmlObject('DOMDocument');this.DOMDocument.async=false;this.DOMDocument.resolveExternals=false;this.DOMDocument.loadXML(B.responseText);}else{this.DOMDocument=null;};if (this.DOMDocument==null||this.DOMDocument.firstChild==null){this.Error=true;if (window.confirm('Error loading "'+A+'"\r\nDo you want to see more info?')) alert('URL requested: "'+A+'"\r\nServer response:\r\nStatus: '+B.status+'\r\nResponse text:\r\n'+B.responseText);}},SelectNodes:function(A,B){if (this.Error) return [];if (B) return B.selectNodes(A);else return this.DOMDocument.selectNodes(A);},SelectSingleNode:function(A,B){if (this.Error) return null;if (B) return B.selectSingleNode(A);else return this.DOMDocument.selectSingleNode(A);}}; var FCKNamedCommand=function(A){this.Name=A;};FCKNamedCommand.prototype.Execute=function(){FCK.ExecuteNamedCommand(this.Name);};FCKNamedCommand.prototype.GetState=function(){return FCK.GetNamedCommandState(this.Name);}; -var FCKDialogCommand=function(A,B,C,D,E,F,G){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.GetStateFunction=F;this.GetStateParam=G;this.Resizable=false;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height,null,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return 0;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFontNameCommand=function(){this.Name='FontName';};FCKFontNameCommand.prototype.Execute=function(A){if (A==null||A==""){}else FCK.ExecuteNamedCommand('FontName',A);};FCKFontNameCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontName');};var FCKFontSizeCommand=function(){this.Name='FontSize';};FCKFontSizeCommand.prototype.Execute=function(A){if (typeof(A)=='string') A=parseInt(A,10);if (A==null||A==''){FCK.ExecuteNamedCommand('FontSize',3);}else FCK.ExecuteNamedCommand('FontSize',A);};FCKFontSizeCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontSize');};var FCKFormatBlockCommand=function(){this.Name='FormatBlock';};FCKFormatBlockCommand.prototype.Execute=function(A){if (A==null||A=='') FCK.ExecuteNamedCommand('FormatBlock','<P>');else if (A=='div'&&FCKBrowserInfo.IsGecko) FCK.ExecuteNamedCommand('FormatBlock','div');else FCK.ExecuteNamedCommand('FormatBlock','<'+A+'>');};FCKFormatBlockCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FormatBlock');};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return 0;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.GetParentForm();if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};A.submit();};FCKSaveCommand.prototype.GetState=function(){return 0;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};FCKNewPageCommand.prototype.GetState=function(){return 0;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==0?0:1);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Undo();else FCK.ExecuteNamedCommand('Undo');};FCKUndoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckUndoState()?0:-1);else return FCK.GetNamedCommandState('Undo');};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Redo();else FCK.ExecuteNamedCommand('Redo');};FCKRedoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckRedoState()?0:-1);else return FCK.GetNamedCommandState('Redo');};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none">&nbsp;</span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);A=FCK.InsertElement(A);};FCKPageBreakCommand.prototype.GetState=function(){return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsGecko){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCK.Selection.SelectNode(A);};FCK.ExecuteNamedCommand(this.Name);if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);};FCKUnlinkCommand.prototype.GetState=function(){var A=FCK.GetNamedCommandState(this.Name);if (A==0&&FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&&B.name.length>0&&B.href.length==0);if (C) A=-1;};return A;};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype=new FCKNamedCommand('SelectAll');FCKSelectAllCommand.prototype.GetState=function(){return 0;} +var FCKStyleCommand=function(){};FCKStyleCommand.prototype={Name:'Style',Execute:function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) FCK.Styles.RemoveStyle(B.Style);else FCK.Styles.ApplyStyle(B.Style);FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (!FCK.EditorDocument) return -1;if (FCKSelection.GetType()=='Control'){var A=FCKSelection.GetSelectedElement();if (!A||!FCKStyles.CheckHasObjectStyle(A.nodeName.toLowerCase())) return -1;};return 0;}}; +var FCKDialogCommand=function(A,B,C,D,E,F,G){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.GetStateFunction=F;this.GetStateParam=G;this.Resizable=false;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height,null,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return 0;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFormatBlockCommand=function(){};FCKFormatBlockCommand.prototype={Name:'FormatBlock',Execute:FCKStyleCommand.prototype.Execute,GetState:function(){return FCK.EditorDocument?0:-1;}};var FCKFontNameCommand=function(){};FCKFontNameCommand.prototype={Name:'FontName',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKFontSizeCommand=function(){};FCKFontSizeCommand.prototype={Name:'FontSize',Execute:FCKStyleCommand.prototype.Execute,GetState:FCKFormatBlockCommand.prototype.GetState};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return 0;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.GetParentForm();if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};if (typeof(A.submit)=='function') A.submit();else A.submit.click();};FCKSaveCommand.prototype.GetState=function(){return 0;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetData('');FCKUndo.Typing=true;FCK.Focus();};FCKNewPageCommand.prototype.GetState=function(){return 0;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==0?0:1);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){FCKUndo.Undo();};FCKUndoCommand.prototype.GetState=function(){return (FCKUndo.CheckUndoState()?0:-1);};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){FCKUndo.Redo();};FCKRedoCommand.prototype.GetState=function(){return (FCKUndo.CheckRedoState()?0:-1);};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none">&nbsp;</span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.SplitBlock();if (C.NextBlock) C.NextBlock.parentNode.insertBefore(A,C.NextBlock);else C.PreviousBlock.parentNode.insertBefore(A,C.PreviousBlock.nextSibling);FCK.Events.FireEvent('OnSelectionChange');};FCKPageBreakCommand.prototype.GetState=function(){return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (FCKBrowserInfo.IsGeckoLike){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCKTools.RemoveOuterTags(A);return;};FCK.ExecuteNamedCommand(this.Name);};FCKUnlinkCommand.prototype.GetState=function(){var A=FCK.GetNamedCommandState(this.Name);if (A==0&&FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&&B.name.length>0&&B.href.length==0);if (C) A=-1;};return A;};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype.Execute=function(){if (FCK.EditMode==0){FCK.ExecuteNamedCommand('SelectAll');}else{var A=FCK.EditingArea.Textarea;if (FCKBrowserInfo.IsIE){A.createTextRange().execCommand('SelectAll');}else{A.selectionStart=0;A.selectionEnd=A.value.length;};A.focus();}};FCKSelectAllCommand.prototype.GetState=function(){return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){return FCK.GetNamedCommandState('Paste');}};var FCKRuleCommand=function(){this.Name='Rule';};FCKRuleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();FCK.InsertElement('hr');},GetState:function(){return FCK.GetNamedCommandState('InsertHorizontalRule');}};var FCKCopyCommand=function(){this.Name='Copy';};FCKCopyCommand.prototype={Execute:function(){FCK.ExecuteNamedCommand(this.Name);},GetState:function(){return FCK.GetNamedCommandState('Cut');}};var FCKAnchorDeleteCommand=function(){this.Name='AnchorDelete';};FCKAnchorDeleteCommand.prototype={Execute:function(){if (FCK.Selection.GetType()=='Control'){FCK.Selection.Delete();}else{var A=FCK.Selection.GetSelectedElement();if (A){if (A.tagName=='IMG'&&A.getAttribute('_fckanchor')) oAnchor=FCK.GetRealElement(A);else A=null;};if (!A){oAnchor=FCK.Selection.MoveToAncestorNode('A');if (oAnchor) FCK.Selection.SelectNode(oAnchor);};if (oAnchor.href.length!=0){oAnchor.removeAttribute('name');if (FCKBrowserInfo.IsIE) oAnchor.className=oAnchor.className.replace(FCKRegexLib.FCK_Class,'');return;};if (A){A.parentNode.removeChild(A);return;};if (oAnchor.innerHTML.length==0){oAnchor.parentNode.removeChild(oAnchor);return;};FCKTools.RemoveOuterTags(oAnchor);};if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);},GetState:function(){return FCK.GetNamedCommandState('Unlink');}}; +var FCKShowBlockCommand=function(A,B){this.Name=A;if (B!=undefined) this._SavedState=B;else this._SavedState=null;};FCKShowBlockCommand.prototype.Execute=function(){var A=this.GetState();if (A==-1) return;var B=FCK.EditorDocument.body;if (A==1) B.className=B.className.replace(/(^| )FCK__ShowBlocks/g,'');else B.className+=' FCK__ShowBlocks';FCK.Events.FireEvent('OnSelectionChange');};FCKShowBlockCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;if (!FCK.EditorDocument) return 0;if (/FCK__ShowBlocks(?:\s|$)/.test(FCK.EditorDocument.body.className)) return 1;return 0;};FCKShowBlockCommand.prototype.SaveState=function(){this._SavedState=this.GetState();};FCKShowBlockCommand.prototype.RestoreState=function(){if (this._SavedState!=null&&this.GetState()!=this._SavedState) this.Execute();}; var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=(FCKConfig.SpellChecker=='ieSpell'||FCKConfig.SpellChecker=='SpellerPages');};FCKSpellCheckCommand.prototype.Execute=function(){switch (FCKConfig.SpellChecker){case 'ieSpell':this._RunIeSpell();break;case 'SpellerPages':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);break;}};FCKSpellCheckCommand.prototype._RunIeSpell=function(){try{var A=new ActiveXObject("ieSpell.ieSpellExtension");A.CheckAllLinkedDocuments(FCK.EditorDocument);}catch(e){if(e.number==-2146827859){if (confirm(FCKLang.IeSpellDownload)) window.open(FCKConfig.IeSpellDownloadUrl,'IeSpellDownload');}else alert('Error Loading ieSpell: '+e.message+' ('+e.number+')');}};FCKSpellCheckCommand.prototype.GetState=function(){return this.IsEnabled?0:-1;} -var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;var B;if (FCKBrowserInfo.IsIE) B=window;else if (FCK.ToolbarSet._IFrame) B=FCKTools.GetElementWindow(FCK.ToolbarSet._IFrame);else B=window.parent;this._Panel=new FCKPanel(B,true);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){FCK._ActiveColorPanelType=this.Type;this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){if (FCK._ActiveColorPanelType=='ForeColor') FCK.ExecuteNamedCommand('ForeColor',A);else if (FCKBrowserInfo.IsGeckoLike){if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,false);FCK.ExecuteNamedCommand('hilitecolor',A);if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,true);}else FCK.ExecuteNamedCommand('BackColor',A);delete FCK._ActiveColorPanelType;};FCKTextColorCommand.prototype.GetState=function(){return 0;};function FCKTextColorCommand_OnMouseOver() { this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut() { this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(){this.className='ColorDeselected';this.Command.SetColor('#'+this.Color);this.Command._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(){this.className='ColorDeselected';this.Command.SetColor('');this.Command._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(){this.className='ColorDeselected';this.Command._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',400,330,this.Command.SetColor);};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';C.onmouseover=FCKTextColorCommand_OnMouseOver;C.onmouseout=FCKTextColorCommand_OnMouseOut;return C;};var D=B.appendChild(A.createElement("TABLE"));D.className='ForceBaseFont';D.style.tableLayout='fixed';D.cellPadding=0;D.cellSpacing=0;D.border=0;D.width=150;var E=D.insertRow(-1).insertCell(-1);E.colSpan=8;var C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table cellspacing="0" cellpadding="0" width="100%" border="0">\n <tr>\n <td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\n <td nowrap width="100%" align="center">'+FCKLang.ColorAutomatic+'</td>\n </tr>\n </table>';C.Command=this;C.onclick=FCKTextColorCommand_AutoOnClick;var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8&&H<G.length;i++,H++){C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.Color=G[H];C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #'+G[H]+'"></div></div>';C.Command=this;C.onclick=FCKTextColorCommand_OnClick;}};E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">'+FCKLang.ColorMoreColors+'</td></tr></table>';C.Command=this;C.onclick=FCKTextColorCommand_MoreOnClick;} +var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;var B;if (FCKBrowserInfo.IsIE) B=window;else if (FCK.ToolbarSet._IFrame) B=FCKTools.GetElementWindow(FCK.ToolbarSet._IFrame);else B=window.parent;this._Panel=new FCKPanel(B);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){FCKUndo.SaveUndoStep();var B=FCKStyles.GetStyle('_FCK_'+(this.Type=='ForeColor'?'Color':'BackColor'));if (!A||A.length==0) FCK.Styles.RemoveStyle(B);else{B.SetVariable('Color',A);FCKStyles.ApplyStyle(B);};FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');};FCKTextColorCommand.prototype.GetState=function(){return 0;};function FCKTextColorCommand_OnMouseOver(){this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut(){this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(A,B,C){this.className='ColorDeselected';B.SetColor(C);B._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(A,B){this.className='ColorDeselected';B.SetColor('');B._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(A,B){this.className='ColorDeselected';B._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',400,330,FCKTools.Hitch(B,'SetColor'));};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';FCKTools.AddEventListenerEx(C,'mouseover',FCKTextColorCommand_OnMouseOver);FCKTools.AddEventListenerEx(C,'mouseout',FCKTextColorCommand_OnMouseOut);return C;};var D=B.appendChild(A.createElement("TABLE"));D.className='ForceBaseFont';D.style.tableLayout='fixed';D.cellPadding=0;D.cellSpacing=0;D.border=0;D.width=150;var E=D.insertRow(-1).insertCell(-1);E.colSpan=8;var C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table cellspacing="0" cellpadding="0" width="100%" border="0">\n <tr>\n <td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\n <td nowrap width="100%" align="center">'+FCKLang.ColorAutomatic+'</td>\n </tr>\n </table>';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_AutoOnClick,this);if (!FCKBrowserInfo.IsIE) C.style.width='96%';var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8;i++,H++){if (H<G.length){var J=G[H].split('/');var K='#'+J[0];var L=J[1]||K;};C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: '+K+'"></div></div>';if (H>=G.length) C.style.visibility='hidden';else FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_OnClick,[this,L]);}};if (FCKConfig.EnableMoreFontColors){E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">'+FCKLang.ColorMoreColors+'</td></tr></table>';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_MoreOnClick,this);};if (!FCKBrowserInfo.IsIE) C.style.width='96%';}; var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){return FCK.GetNamedCommandState('Paste');}; var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCKConfig.ForcePasteAsPlainText) return -1;else return FCK.GetNamedCommandState('Paste');}; -var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();switch (this.Name){case 'TableInsertRow':FCKTableHandler.InsertRow();break;case 'TableDeleteRows':FCKTableHandler.DeleteRows();break;case 'TableInsertColumn':FCKTableHandler.InsertColumn();break;case 'TableDeleteColumns':FCKTableHandler.DeleteColumns();break;case 'TableInsertCell':FCKTableHandler.InsertCell();break;case 'TableDeleteCells':FCKTableHandler.DeleteCells();break;case 'TableMergeCells':FCKTableHandler.MergeCells();break;case 'TableSplitCell':FCKTableHandler.SplitCell();break;case 'TableDelete':FCKTableHandler.DeleteTable();break;default:alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){return 0;} -var FCKStyleCommand=function(){this.Name='Style';this.StylesLoader=new FCKStylesLoader();this.StylesLoader.Load(FCKConfig.StylesXmlPath);this.Styles=this.StylesLoader.Styles;};FCKStyleCommand.prototype.Execute=function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) B.Style.RemoveFromSelection();else B.Style.ApplyToSelection();FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent("OnSelectionChange");};FCKStyleCommand.prototype.GetState=function(){if (!FCK.EditorDocument) return -1;var A=FCK.EditorDocument.selection;if (FCKSelection.GetType()=='Control'){var e=FCKSelection.GetSelectedElement();if (e) return this.StylesLoader.StyleGroups[e.tagName]?0:-1;};return 0;};FCKStyleCommand.prototype.GetActiveStyles=function(){var A=[];if (FCKSelection.GetType()=='Control') this._CheckStyle(FCKSelection.GetSelectedElement(),A,false);else this._CheckStyle(FCKSelection.GetParentElement(),A,true);return A;};FCKStyleCommand.prototype._CheckStyle=function(A,B,C){if (!A) return;if (A.nodeType==1){var D=this.StylesLoader.StyleGroups[A.tagName];if (D){for (var i=0;i<D.length;i++){if (D[i].IsEqual(A)) B[B.length]=D[i];}}};if (C) this._CheckStyle(A.parentNode,B,C);} -var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1) G._fckSavedStyles=FCKTools.SaveStyles(G);};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var H=FCKTools.GetViewPaneSize(C);B.position="absolute";B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=H.Width+"px";B.height=H.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent("onresize",FCKFitWindow_Resize);else C.removeEventListener("resize",FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();FCK.EditingArea.MakeEditable();FCK.Focus();};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';}; -var FCKCommands=FCK.Commands={};FCKCommands.LoadedCommands={};FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,390,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,170);break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,170);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,170);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',400,330);break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindTitle,'dialog/fck_find.html',340,170);break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgReplaceTitle,'dialog/fck_replace.html',340,200);break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,400);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,320);break;case 'Smiley':B=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight);break;case 'Table':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html',450,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',400,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,250);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'TableInsertRow':B=new FCKTableCommand('TableInsertRow');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumn':B=new FCKTableCommand('TableInsertColumn');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCell':B=new FCKTableCommand('TableInsertCell');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableSplitCell':B=new FCKTableCommand('TableSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,230);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,230);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,230);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,230);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,230);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,230);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,230);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,380);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,400);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();break;case 'SelectAll':B=new FCKSelectAllCommand();break;case 'Undefined':B=new FCKUndefinedCommand();break;default:if (FCKRegexLib.NamedCommands.test(A)) B=new FCKNamedCommand(A);else{alert(FCKLang.UnknownCommand.replace(/%1/g,A));return null;}};FCKCommands.LoadedCommands[A]=B;return B;};FCKCommands.GetFullPageState=function(){return FCKConfig.FullPage?0:-1;}; -var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();B=this.Document=this._Popup.document;FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var C=this._IFrame=this._Window.document.createElement('iframe');C.src='javascript:void(0)';C.allowTransparency=true;C.frameBorder='0';C.scrolling='no';C.style.position='absolute';C.style.zIndex=FCKConfig.FloatingPanelsZIndex;C.width=C.height=0;if (this._Window==window.parent&&window.frameElement) window.frameElement.parentNode.insertBefore(C,window.frameElement);else this._Window.document.body.appendChild(C);var D=C.contentWindow;B=this.Document=D.document;B.open();B.write('<html><head></head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();FCKTools.AddEventListenerEx(D,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(D,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;B.oncontextmenu=FCKTools.CancelEvent;this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;if (this._Popup){this._Popup.show(x,y,0,0,A);this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';D=this.MainNode.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,this.MainNode.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Lock();if (this.ParentPanel) this.ParentPanel.Lock();this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';D=this.MainNode.offsetWidth;if (!B) this._IFrame.width=1;if (!C) this._IFrame.height=1;D=this.MainNode.offsetWidth;var E=FCKTools.GetElementPosition(A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A,this._Window);if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=E.X;y+=E.Y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var F=FCKTools.GetViewPaneSize(this._Window);var G=FCKTools.GetScrollPosition(this._Window);var H=F.Height+G.Y;var I=F.Width+G.X;if ((x+D)>I) x-=x+D-I;if ((y+this.MainNode.offsetHeight)>H) y-=y+this.MainNode.offsetHeight-H;};if (x<0) x=0;this._IFrame.style.left=x+'px';this._IFrame.style.top=y+'px';var J=D;var K=this.MainNode.offsetHeight;this._IFrame.width=J;this._IFrame.height=K;this._IFrame.contentWindow.focus();};this._IsOpened=true;FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened) return;if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A,true);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&&!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;} -var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B,eIconImage;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path;eIconImage.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url('+this.Path+')';}}else{B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path?this.Path:FCK_SPACER_PATH;};B.className='TB_Button_Image';return B;} -var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||0;this.State=F||0;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=this.MainElement;if (B){FCKToolbarButtonUI_Cleanup.call(this);if (B.parentNode) B.parentNode.removeChild(B);B=this.MainElement=null;};var C=FCKTools.GetElementDocument(A);B=this.MainElement=C.createElement('DIV');B._FCKButton=this;B.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) B.onmousedown=FCKTools.CancelEvent;this.ChangeState(this.State,true);if (this.Style==0&&!this.ShowArrow){B.appendChild(this.Icon.CreateIconElement(C));}else{var D=B.appendChild(C.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==0||this.Style==2) F.appendChild(this.Icon.CreateIconElement(C));else F.appendChild(this._CreatePaddingElement(C));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(C.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(C));};F=E.insertCell(-1);var G=F.appendChild(C.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(C));};A.appendChild(B);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';e.onmouseover=FCKToolbarButton_OnMouseOverOff;e.onmouseout=FCKToolbarButton_OnMouseOutOff;e.onclick=FCKToolbarButton_OnClick;break;case 1:e.className='TB_Button_On';e.onmouseover=FCKToolbarButton_OnMouseOverOn;e.onmouseout=FCKToolbarButton_OnMouseOutOn;e.onclick=FCKToolbarButton_OnClick;break;case -1:e.className='TB_Button_Disabled';e.onmouseover=null;e.onmouseout=null;e.onclick=null;break;};this.State=A;};function FCKToolbarButtonUI_Cleanup(){if (this.MainElement){this.MainElement._FCKButton=null;this.MainElement=null;}};function FCKToolbarButton_OnMouseOverOn(){this.className='TB_Button_On_Over';};function FCKToolbarButton_OnMouseOutOn(){this.className='TB_Button_On';};function FCKToolbarButton_OnMouseOverOff(){this.className='TB_Button_Off_Over';};function FCKToolbarButton_OnMouseOutOff(){this.className='TB_Button_Off';};function FCKToolbarButton_OnClick(e){if (this._FCKButton.OnClick) this._FCKButton.OnClick(this._FCKButton);}; -var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (A==this._UIButton.State) return;this._UIButton.ChangeState(A);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);} -var FCKSpecialCombo=function(A,B,C,D,E){this.FieldWidth=B||100;this.PanelWidth=C||150;this.PanelMaxHeight=D||150;this.Label='&nbsp;';this.Caption=A;this.Tooltip=A;this.Style=2;this.Enabled=true;this.Items={};this._Panel=new FCKPanel(E||window,true);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._PanelBox=this._Panel.MainNode.appendChild(this._Panel.Document.createElement('DIV'));this._PanelBox.className='SC_Panel';this._PanelBox.style.width=this.PanelWidth+'px';this._PanelBox.innerHTML='<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>';this._ItemsHolderEl=this._PanelBox.getElementsByTagName('TD')[0];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKSpecialCombo_Cleanup);};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(){this.className=this.originalClass;this.FCKSpecialCombo._Panel.Hide();this.FCKSpecialCombo.SetLabel(this.FCKItemLabel);if (typeof(this.FCKSpecialCombo.OnSelect)=='function') this.FCKSpecialCombo.OnSelect(this.FCKItemID,this);};FCKSpecialCombo.prototype.AddItem=function(A,B,C,D){var E=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));E.className=E.originalClass='SC_Item';E.innerHTML=B;E.FCKItemID=A;E.FCKItemLabel=C||A;E.FCKSpecialCombo=this;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;E.onmouseover=FCKSpecialCombo_ItemOnMouseOver;E.onmouseout=FCKSpecialCombo_ItemOnMouseOut;E.onclick=FCKSpecialCombo_ItemOnClick;this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];if (B){B.className=B.originalClass='SC_ItemSelected';B.Selected=true;}};FCKSpecialCombo.prototype.SelectItemByLabel=function(A,B){for (var C in this.Items){var D=this.Items[C];if (D.FCKItemLabel==A){D.className=D.originalClass='SC_ItemSelected';D.Selected=true;if (B) this.SetLabel(A);}}};FCKSpecialCombo.prototype.DeselectAll=function(A){for (var i in this.Items){this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};if (A) this.SetLabel('');};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){this.Label=A.length==0?'&nbsp;':A;if (this._LabelEl){this._LabelEl.innerHTML=this.Label;FCKTools.DisableSelection(this._LabelEl);}};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this._OuterTable=A.appendChild(B.createElement('TABLE'));C.cellPadding=0;C.cellSpacing=0;C.insertRow(-1);var D;var E;switch (this.Style){case 0:D='TB_ButtonType_Icon';E=false;break;case 1:D='TB_ButtonType_Text';E=false;break;case 2:E=true;break;};if (this.Caption&&this.Caption.length>0&&E){var F=C.rows[0].insertCell(-1);F.innerHTML=this.Caption;F.className='SC_FieldCaption';};var G=FCKTools.AppendElement(C.rows[0].insertCell(-1),'div');if (E){G.className='SC_Field';G.style.width=this.FieldWidth+'px';G.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldLabel"><label>&nbsp;</label></td><td class="SC_FieldButton">&nbsp;</td></tr></tbody></table>';this._LabelEl=G.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{G.className='TB_Button_Off';G.innerHTML='<table title="'+this.Tooltip+'" class="'+D+'" cellspacing="0" cellpadding="0" border="0"><tr><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_Text">'+this.Caption+'</td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_ButtonArrow"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td></tr></table>';};G.SpecialCombo=this;G.onmouseover=FCKSpecialCombo_OnMouseOver;G.onmouseout=FCKSpecialCombo_OnMouseOut;G.onclick=FCKSpecialCombo_OnClick;FCKTools.DisableSelection(this._Panel.Document.body);};function FCKSpecialCombo_Cleanup(){this._LabelEl=null;this._OuterTable=null;this._ItemsHolderEl=null;this._PanelBox=null;if (this.Items){for (var A in this.Items) this.Items[A]=null;}};function FCKSpecialCombo_OnMouseOver(){if (this.SpecialCombo.Enabled){switch (this.SpecialCombo.Style){case 0:this.className='TB_Button_On_Over';break;case 1:this.className='TB_Button_On_Over';break;case 2:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(){switch (this.SpecialCombo.Style){case 0:this.className='TB_Button_Off';break;case 1:this.className='TB_Button_Off';break;case 2:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e){var A=this.SpecialCombo;if (A.Enabled){var B=A._Panel;var C=A._PanelBox;var D=A._ItemsHolderEl;var E=A.PanelMaxHeight;if (A.OnBeforeClick) A.OnBeforeClick(A);if (FCKBrowserInfo.IsIE) B.Preload(0,this.offsetHeight,this);if (D.offsetHeight>E) C.style.height=E+'px';else C.style.height='';B.Show(0,this.offsetHeight,this);}}; -var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;this._LastValue=null;};function FCKToolbarSpecialCombo_OnSelect(A,B){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(A,B);};FCKToolbarSpecialCombo.prototype.Create=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel(),this.FieldWidth,this.PanelWidth,this.PanelMaxHeight,FCKBrowserInfo.IsIE?window:FCKTools.GetElementWindow(A).parent);this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A);this._Combo.CommandName=this.CommandName;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(A,B){A.DeselectAll();A.SelectItem(B);A.SetLabelById(B);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=-1){A=1;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!=B){this._LastValue=B;FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=-1;if (A==this.State) return;if (A==-1){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=-1);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=-1;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);}; -var FCKToolbarFontsCombo=function(A,B){this.CommandName='FontName';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarFontsCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.CreateItems=function(A){var B=FCKConfig.FontNames.split(';');for (var i=0;i<B.length;i++) this._Combo.AddItem(B[i],'<font face="'+B[i]+'" style="font-size: 12px">'+B[i]+'</font>');} -var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.CreateItems=function(A){A.FieldWidth=70;var B=FCKConfig.FontSizes.split(';');for (var i=0;i<B.length;i++){var C=B[i].split('/');this._Combo.AddItem(C[0],'<font size="'+C[0]+'">'+C[1]+'</font>',C[1]);}} -var FCKToolbarFontFormatCombo=function(A,B){this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.NormalLabel='Normal';this.PanelWidth=190;};FCKToolbarFontFormatCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) B.body.id=FCKConfig.BodyId;if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) B.body.className+=' '+FCKConfig.BodyClass;var C=FCKLang['FontFormats'].split(';');var D={p:C[0],pre:C[1],address:C[2],h1:C[3],h2:C[4],h3:C[5],h4:C[6],h5:C[7],h6:C[8],div:C[9]};var E=FCKConfig.FontFormats.split(';');for (var i=0;i<E.length;i++){var F=E[i];var G=D[F];if (F=='p') this.NormalLabel=G;this._Combo.AddItem(F,'<div class="BaseFont"><'+F+'>'+G+'</'+F+'></div>',G);}};if (FCKBrowserInfo.IsIE){FCKToolbarFontFormatCombo.prototype.RefreshActiveItems=function(A,B){if (B==this.NormalLabel){if (A.Label!='&nbsp;') A.DeselectAll(true);}else{if (this._LastValue==B) return;A.SelectItemByLabel(B,true);};this._LastValue=B;}} -var FCKToolbarStyleCombo=function(A,B){this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);B.body.className+=' ForceBaseFont';if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) B.body.id=FCKConfig.BodyId;if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) B.body.className+=' '+FCKConfig.BodyClass;if (!(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsGecko10)) A.OnBeforeClick=this.RefreshVisibleItems;var C=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Styles;for (var s in C){var D=C[s];var E;if (D.IsObjectElement) E=A.AddItem(s,s);else E=A.AddItem(s,D.GetOpenerTag()+s+D.GetCloserTag());E.Style=D;}};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){A.DeselectAll();var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetActiveStyles();if (B.length>0){for (var i=0;i<B.length;i++) A.SelectItem(B[i].Name);A.SetLabelById(B[0].Name);}else A.SetLabel('');};FCKToolbarStyleCombo.prototype.RefreshVisibleItems=function(A){if (FCKSelection.GetType()=='Control') var B=FCKSelection.GetSelectedElement().tagName;for (var i in A.Items){var C=A.Items[i];if ((B&&C.Style.Element==B)||(!B&&!C.Style.IsObjectElement)) C.style.display='';else C.style.display='none';}} -var FCKToolbarPanelButton=function(A,B,C,D,E){this.CommandName=A;var F;if (E==null) F=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(E)=='number') F=[FCKConfig.SkinPath+'fck_strip.gif',16,E];var G=this._UIButton=new FCKToolbarButtonUI(A,B,C,F,D);G._FCKToolbarPanelButton=this;G.ShowArrow=true;G.OnClick=FCKToolbarPanelButton_OnButtonClick;};FCKToolbarPanelButton.prototype.TypeName='FCKToolbarPanelButton';FCKToolbarPanelButton.prototype.Create=function(A){A.className+='Menu';this._UIButton.Create(A);var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName)._Panel;B._FCKToolbarPanelButton=this;var C=B.Document.body.appendChild(B.Document.createElement('div'));C.style.position='absolute';C.style.top='0px';var D=this.LineImg=C.appendChild(B.Document.createElement('IMG'));D.className='TB_ConnectionLine';D.src=FCK_SPACER_PATH;B.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(A){var B=this._FCKToolbarPanelButton;var e=B._UIButton.MainElement;B._UIButton.ChangeState(1);B.LineImg.style.width=(e.offsetWidth-2)+'px';FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(B.CommandName).Execute(0,e.offsetHeight-1,e);};function FCKToolbarPanelButton_OnPanelHide(){var A=this._FCKToolbarPanelButton;A._UIButton.ChangeState(0);};FCKToolbarPanelButton.prototype.RefreshState=FCKToolbarButton.prototype.RefreshState;FCKToolbarPanelButton.prototype.Enable=FCKToolbarButton.prototype.Enable;FCKToolbarPanelButton.prototype.Disable=FCKToolbarButton.prototype.Disable; -var FCKToolbarItems={};FCKToolbarItems.LoadedItems={};FCKToolbarItems.RegisterItem=function(A,B){this.LoadedItems[A]=B;};FCKToolbarItems.GetItem=function(A){var B=FCKToolbarItems.LoadedItems[A];if (B) return B;switch (A){case 'Source':B=new FCKToolbarButton('Source',FCKLang.Source,null,2,true,true,1);break;case 'DocProps':B=new FCKToolbarButton('DocProps',FCKLang.DocProps,null,null,null,null,2);break;case 'Save':B=new FCKToolbarButton('Save',FCKLang.Save,null,null,true,null,3);break;case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;case 'Preview':B=new FCKToolbarButton('Preview',FCKLang.Preview,null,null,true,null,5);break;case 'Templates':B=new FCKToolbarButton('Templates',FCKLang.Templates,null,null,null,null,6);break;case 'About':B=new FCKToolbarButton('About',FCKLang.About,null,null,true,null,47);break;case 'Cut':B=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,false,true,7);break;case 'Copy':B=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,false,true,8);break;case 'Paste':B=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,false,true,9);break;case 'PasteText':B=new FCKToolbarButton('PasteText',FCKLang.PasteText,null,null,false,true,10);break;case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true,11);break;case 'Print':B=new FCKToolbarButton('Print',FCKLang.Print,null,null,false,true,12);break;case 'SpellCheck':B=new FCKToolbarButton('SpellCheck',FCKLang.SpellCheck,null,null,null,null,13);break;case 'Undo':B=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,false,true,14);break;case 'Redo':B=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,false,true,15);break;case 'SelectAll':B=new FCKToolbarButton('SelectAll',FCKLang.SelectAll,null,null,null,null,18);break;case 'RemoveFormat':B=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat,null,null,false,true,19);break;case 'FitWindow':B=new FCKToolbarButton('FitWindow',FCKLang.FitWindow,null,null,true,true,66);break;case 'Bold':B=new FCKToolbarButton('Bold',FCKLang.Bold,null,null,false,true,20);break;case 'Italic':B=new FCKToolbarButton('Italic',FCKLang.Italic,null,null,false,true,21);break;case 'Underline':B=new FCKToolbarButton('Underline',FCKLang.Underline,null,null,false,true,22);break;case 'StrikeThrough':B=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough,null,null,false,true,23);break;case 'Subscript':B=new FCKToolbarButton('Subscript',FCKLang.Subscript,null,null,false,true,24);break;case 'Superscript':B=new FCKToolbarButton('Superscript',FCKLang.Superscript,null,null,false,true,25);break;case 'OrderedList':B=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList,null,false,true,26);break;case 'UnorderedList':B=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList,null,false,true,27);break;case 'Outdent':B=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent,null,null,false,true,28);break;case 'Indent':B=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent,null,null,false,true,29);break;case 'Link':B=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink,null,false,true,34);break;case 'Unlink':B=new FCKToolbarButton('Unlink',FCKLang.RemoveLink,null,null,false,true,35);break;case 'Anchor':B=new FCKToolbarButton('Anchor',FCKLang.Anchor,null,null,null,null,36);break;case 'Image':B=new FCKToolbarButton('Image',FCKLang.InsertImageLbl,FCKLang.InsertImage,null,false,true,37);break;case 'Flash':B=new FCKToolbarButton('Flash',FCKLang.InsertFlashLbl,FCKLang.InsertFlash,null,false,true,38);break;case 'Table':B=new FCKToolbarButton('Table',FCKLang.InsertTableLbl,FCKLang.InsertTable,null,false,true,39);break;case 'SpecialChar':B=new FCKToolbarButton('SpecialChar',FCKLang.InsertSpecialCharLbl,FCKLang.InsertSpecialChar,null,false,true,42);break;case 'Smiley':B=new FCKToolbarButton('Smiley',FCKLang.InsertSmileyLbl,FCKLang.InsertSmiley,null,false,true,41);break;case 'PageBreak':B=new FCKToolbarButton('PageBreak',FCKLang.PageBreakLbl,FCKLang.PageBreak,null,false,true,43);break;case 'Rule':B=new FCKToolbarButton('InsertHorizontalRule',FCKLang.InsertLineLbl,FCKLang.InsertLine,null,false,true,40);break;case 'JustifyLeft':B=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify,null,null,false,true,30);break;case 'JustifyCenter':B=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify,null,null,false,true,31);break;case 'JustifyRight':B=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify,null,null,false,true,32);break;case 'JustifyFull':B=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify,null,null,false,true,33);break;case 'Style':B=new FCKToolbarStyleCombo();break;case 'FontName':B=new FCKToolbarFontsCombo();break;case 'FontSize':B=new FCKToolbarFontSizeCombo();break;case 'FontFormat':B=new FCKToolbarFontFormatCombo();break;case 'TextColor':B=new FCKToolbarPanelButton('TextColor',FCKLang.TextColor,null,null,45);break;case 'BGColor':B=new FCKToolbarPanelButton('BGColor',FCKLang.BGColor,null,null,46);break;case 'Find':B=new FCKToolbarButton('Find',FCKLang.Find,null,null,null,null,16);break;case 'Replace':B=new FCKToolbarButton('Replace',FCKLang.Replace,null,null,null,null,17);break;case 'Form':B=new FCKToolbarButton('Form',FCKLang.Form,null,null,null,null,48);break;case 'Checkbox':B=new FCKToolbarButton('Checkbox',FCKLang.Checkbox,null,null,null,null,49);break;case 'Radio':B=new FCKToolbarButton('Radio',FCKLang.RadioButton,null,null,null,null,50);break;case 'TextField':B=new FCKToolbarButton('TextField',FCKLang.TextField,null,null,null,null,51);break;case 'Textarea':B=new FCKToolbarButton('Textarea',FCKLang.Textarea,null,null,null,null,52);break;case 'HiddenField':B=new FCKToolbarButton('HiddenField',FCKLang.HiddenField,null,null,null,null,56);break;case 'Button':B=new FCKToolbarButton('Button',FCKLang.Button,null,null,null,null,54);break;case 'Select':B=new FCKToolbarButton('Select',FCKLang.SelectionField,null,null,null,null,53);break;case 'ImageButton':B=new FCKToolbarButton('ImageButton',FCKLang.ImageButton,null,null,null,null,55);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;} -var FCKToolbar=function(){this.Items=[];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbar_Cleanup);};FCKToolbar.prototype.AddItem=function(A){return this.Items[this.Items.length]=A;};FCKToolbar.prototype.AddButton=function(A,B,C,D,E,F){if (typeof(D)=='number') D=[this.DefaultIconsStrip,this.DefaultIconSize,D];var G=new FCKToolbarButtonUI(A,B,C,D,E,F);G._FCKToolbar=this;G.OnClick=FCKToolbar_OnItemClick;return this.AddItem(G);};function FCKToolbar_OnItemClick(A){var B=A._FCKToolbar;if (B.OnItemClick) B.OnItemClick(B,A);};FCKToolbar.prototype.AddSeparator=function(){this.AddItem(new FCKToolbarSeparator());};FCKToolbar.prototype.Create=function(A){if (this.MainElement){if (this.MainElement.parentNode) this.MainElement.parentNode.removeChild(this.MainElement);this.MainElement=null;};var B=FCKTools.GetElementDocument(A);var e=this.MainElement=B.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=(FCKLang.Dir=='ltr'?'left':'right');e.dir=FCKLang.Dir;e.cellPadding=0;e.cellSpacing=0;this.RowElement=e.insertRow(-1);var C;if (!this.HideStart){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i<this.Items.length;i++){this.Items[i].Create(this.RowElement.insertCell(-1));};if (!this.HideEnd){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};function FCKToolbar_Cleanup(){this.MainElement=null;this.RowElement=null;};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';} -var FCKToolbarBreak=function(){};FCKToolbarBreak.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A).createElement('div');B.className='TB_Break';B.style.clear=FCKLang.Dir=='rtl'?'left':'right';A.appendChild(B);} -function FCKToolbarSet_Create(A){var B;var C=A||FCKConfig.ToolbarLocation;switch (C){case 'In':document.getElementById('xToolbarRow').style.display='';B=new FCKToolbarSet(document);break;default:FCK.Events.AttachEvent('OnBlur',FCK_OnBlur);FCK.Events.AttachEvent('OnFocus',FCK_OnFocus);var D;var E=C.match(/^Out:(.+)\((\w+)\)$/);if (E){D=eval('parent.'+E[1]).document.getElementById(E[2]);}else{E=C.match(/^Out:(\w+)$/);if (E) D=parent.document.getElementById(E[1]);};if (!D){alert('Invalid value for "ToolbarLocation"');return this._Init('In');};B=D.__FCKToolbarSet;if (B) break;var F=FCKTools.GetElementDocument(D).createElement('iframe');F.frameBorder=0;F.width='100%';F.height='10';D.appendChild(F);F.unselectable='on';var G=F.contentWindow.document;G.open();G.write('<html><head><script type="text/javascript"> window.onload = window.onresize = function() { window.frameElement.height = document.body.scrollHeight ; } </script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');G.close();G.oncontextmenu=FCKTools.CancelEvent;FCKTools.AppendStyleSheet(G,FCKConfig.SkinPath+'fck_editor.css');B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;FCK.AttachToOnSelectionChange(B.RefreshItemsState);return B;};function FCK_OnBlur(A){var B=A.ToolbarSet;if (B.CurrentInstance==A) B.Disable();};function FCK_OnFocus(A){var B=A.ToolbarSet;var C=A||FCK;B.CurrentInstance.FocusManager.RemoveWindow(B._IFrame.contentWindow);B.CurrentInstance=C;C.FocusManager.AddWindow(B._IFrame.contentWindow,true);B.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;B.onclick=FCKToolbarSet_Expand_OnClick;C.title=FCKLang.ToolbarCollapse;C.onclick=FCKToolbarSet_Collapse_OnClick;if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();C.style.display=FCKConfig.ToolbarCanCollapse?'':'none';if (FCKConfig.ToolbarCanCollapse) C.style.display='';else A.getElementById('xTBLeftBorder').style.display='';this.Toolbars=[];this.IsLoaded=false;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarSet_Cleanup);};function FCKToolbarSet_Expand_OnClick(){FCK.ToolbarSet.Expand();};function FCKToolbarSet_Collapse_OnClick(){FCK.ToolbarSet.Collapse();};FCKToolbarSet.prototype.Expand=function(){this._ChangeVisibility(false);};FCKToolbarSet.prototype.Collapse=function(){this._ChangeVisibility(true);};FCKToolbarSet.prototype._ChangeVisibility=function(A){this._Document.getElementById('xCollapsed').style.display=A?'':'none';this._Document.getElementById('xExpanded').style.display=A?'none':'';if (FCKBrowserInfo.IsGecko){FCKTools.RunFunction(window.onresize);}};FCKToolbarSet.prototype.Load=function(A){this.Name=A;this.Items=[];this.ItemsWysiwygOnly=[];this.ItemsContextSensitive=[];this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=[];for (var x=0;x<B.length;x++){var C=B[x];var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j<C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);this.Items.push(F);if (!F.SourceView) this.ItemsWysiwygOnly.push(F);if (F.ContextSensitive) this.ItemsContextSensitive.push(F);}}}};D.Create(this._TargetElement);this.Toolbars[this.Toolbars.length]=D;};FCKTools.DisableSelection(this._Document.getElementById('xCollapseHandle').parentNode);if (FCK.Status!=2) FCK.Events.AttachEvent('OnStatusChange',this.RefreshModeState);else this.RefreshModeState();this.IsLoaded=true;this.IsEnabled=true;FCKTools.RunFunction(this.OnLoad);};FCKToolbarSet.prototype.Enable=function(){if (this.IsEnabled) return;this.IsEnabled=true;var A=this.Items;for (var i=0;i<A.length;i++) A[i].RefreshState();};FCKToolbarSet.prototype.Disable=function(){if (!this.IsEnabled) return;this.IsEnabled=false;var A=this.Items;for (var i=0;i<A.length;i++) A[i].Disable();};FCKToolbarSet.prototype.RefreshModeState=function(A){if (FCK.Status!=2) return;var B=A?A.ToolbarSet:this;var C=B.ItemsWysiwygOnly;if (FCK.EditMode==0){for (var i=0;i<C.length;i++) C[i].Enable();B.RefreshItemsState(A);}else{B.RefreshItemsState(A);for (var j=0;j<C.length;j++) C[j].Disable();}};FCKToolbarSet.prototype.RefreshItemsState=function(A){var B=(A?A.ToolbarSet:this).ItemsContextSensitive;for (var i=0;i<B.length;i++) B[i].RefreshState();}; +var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (!FCKBrowserInfo.IsGecko){switch (this.Name){case 'TableMergeRight':return FCKTableHandler.MergeRight();case 'TableMergeDown':return FCKTableHandler.MergeDown();}};switch (this.Name){case 'TableInsertRowAfter':return FCKTableHandler.InsertRow(false);case 'TableInsertRowBefore':return FCKTableHandler.InsertRow(true);case 'TableDeleteRows':return FCKTableHandler.DeleteRows();case 'TableInsertColumnAfter':return FCKTableHandler.InsertColumn(false);case 'TableInsertColumnBefore':return FCKTableHandler.InsertColumn(true);case 'TableDeleteColumns':return FCKTableHandler.DeleteColumns();case 'TableInsertCellAfter':return FCKTableHandler.InsertCell(null,false);case 'TableInsertCellBefore':return FCKTableHandler.InsertCell(null,true);case 'TableDeleteCells':return FCKTableHandler.DeleteCells();case 'TableMergeCells':return FCKTableHandler.MergeCells();case 'TableHorizontalSplitCell':return FCKTableHandler.HorizontalSplitCell();case 'TableVerticalSplitCell':return FCKTableHandler.VerticalSplitCell();case 'TableDelete':return FCKTableHandler.DeleteTable();default:return alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){if (FCK.EditorDocument!=null&&FCKSelection.HasAncestorNode('TABLE')){switch (this.Name){case 'TableHorizontalSplitCell':case 'TableVerticalSplitCell':if (FCKTableHandler.GetSelectedCells().length==1) return 0;else return -1;case 'TableMergeCells':if (FCKTableHandler.CheckIsSelectionRectangular()&&FCKTableHandler.GetSelectedCells().length>1) return 0;else return -1;case 'TableMergeRight':return FCKTableHandler.GetMergeRightTarget()?0:-1;case 'TableMergeDown':return FCKTableHandler.GetMergeDownTarget()?0:-1;default:return 0;}}else return -1;}; +var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1){G._fckSavedStyles=FCKTools.SaveStyles(G);G.style.zIndex=FCKConfig.FloatingPanelsZIndex-1;}};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var H=FCKTools.GetViewPaneSize(C);B.position="absolute";B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=H.Width+"px";B.height=H.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);var I=FCKTools.GetWindowPosition(C,A);if (I.x!=0) B.left=(-1*I.x)+"px";if (I.y!=0) B.top=(-1*I.y)+"px";this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent("onresize",FCKFitWindow_Resize);else C.removeEventListener("resize",FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();if (FCK.EditMode==0) FCK.EditingArea.MakeEditable();FCK.Focus();};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';}; +var FCKListCommand=function(A,B){this.Name=A;this.TagName=B;};FCKListCommand.prototype={GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=FCKSelection.GetBoundaryParentElement(true);var B=A;while (B){if (B.nodeName.IEquals(['ul','ol'])) break;B=B.parentNode;};if (B&&B.nodeName.IEquals(this.TagName)) return 1;else return 0;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCK.EditorDocument;var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=this.GetState();if (C==0){FCKDomTools.TrimNode(A.body);if (!A.body.firstChild){var D=A.createElement('p');A.body.appendChild(D);B.MoveToNodeContents(D);}};var E=B.CreateBookmark();var F=[];var G={};var H=new FCKDomRangeIterator(B);var I;H.ForceBrBreak=(C==0);var J=true;var K=null;while (J){while ((I=H.GetNextParagraph())){var L=new FCKElementPath(I);var M=null;var N=false;var O=L.BlockLimit;for (var i=L.Elements.length-1;i>=0;i--){var P=L.Elements[i];if (P.nodeName.IEquals(['ol','ul'])){if (O._FCK_ListGroupObject) O._FCK_ListGroupObject=null;var Q=P._FCK_ListGroupObject;if (Q) Q.contents.push(I);else{Q={ 'root':P,'contents':[I] };F.push(Q);FCKDomTools.SetElementMarker(G,P,'_FCK_ListGroupObject',Q);};N=true;break;}};if (N) continue;var R=O;if (R._FCK_ListGroupObject) R._FCK_ListGroupObject.contents.push(I);else{var Q={ 'root':R,'contents':[I] };FCKDomTools.SetElementMarker(G,R,'_FCK_ListGroupObject',Q);F.push(Q);}};if (FCKBrowserInfo.IsIE) J=false;else{if (K==null){K=[];var T=FCK.EditorWindow.getSelection();if (T&&F.length==0) K.push(T.getRangeAt(0));for (var i=1;T&&i<T.rangeCount;i++) K.push(T.getRangeAt(i));};if (K.length<1) J=false;else{var U=FCKW3CRange.CreateFromRange(A,K.shift());B._Range=U;B._UpdateElementInfo();if (B.StartNode.nodeName.IEquals('td')) B.SetStart(B.StartNode,1);if (B.EndNode.nodeName.IEquals('td')) B.SetEnd(B.EndNode,2);H=new FCKDomRangeIterator(B);H.ForceBrBreak=(C==0);}}};var W=[];while (F.length>0){var Q=F.shift();if (C==0){if (Q.root.nodeName.IEquals(['ul','ol'])) this._ChangeListType(Q,G,W);else this._CreateList(Q,W);}else if (C==1&&Q.root.nodeName.IEquals(['ul','ol'])) this._RemoveList(Q,G);};for (var i=0;i<W.length;i++){var M=W[i];var Z=false;var a=M;while (!Z){a=a.nextSibling;if (a&&a.nodeType==3&&a.nodeValue.search(/^[\n\r\t ]*$/)==0) continue;Z=true;};if (a&&a.nodeName.IEquals(this.TagName)){a.parentNode.removeChild(a);while (a.firstChild) M.appendChild(a.removeChild(a.firstChild));};Z=false;a=M;while (!Z){a=a.previousSibling;if (a&&a.nodeType==3&&a.nodeValue.search(/^[\n\r\t ]*$/)==0) continue;Z=true;};if (a&&a.nodeName.IEquals(this.TagName)){a.parentNode.removeChild(a);while (a.lastChild) M.insertBefore(a.removeChild(a.lastChild),M.firstChild);}};FCKDomTools.ClearAllMarkers(G);B.MoveToBookmark(E);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},_ChangeListType:function(A,B,C){var D=FCKDomTools.ListToArray(A.root,B);var E=[];for (var i=0;i<A.contents.length;i++){var F=A.contents[i];F=FCKTools.GetElementAscensor(F,'li');if (!F||F._FCK_ListItem_Processed) continue;E.push(F);FCKDomTools.SetElementMarker(B,F,'_FCK_ListItem_Processed',true);};var G=A.root.ownerDocument.createElement(this.TagName);for (var i=0;i<E.length;i++){var H=E[i]._FCK_ListArray_Index;D[H].parent=G;};var I=FCKDomTools.ArrayToList(D,B);for (var i=0;i<I.listNode.childNodes.length;i++){if (I.listNode.childNodes[i].nodeName.IEquals(this.TagName)) C.push(I.listNode.childNodes[i]);};A.root.parentNode.replaceChild(I.listNode,A.root);},_CreateList:function(A,B){var C=A.contents;var D=A.root.ownerDocument;var E=[];if (C.length==1&&C[0]==A.root){var F=D.createElement('div');while (C[0].firstChild) F.appendChild(C[0].removeChild(C[0].firstChild));C[0].appendChild(F);C[0]=F;};var G=A.contents[0].parentNode;for (var i=0;i<C.length;i++) G=FCKDomTools.GetCommonParents(G,C[i].parentNode).pop();for (var i=0;i<C.length;i++){var H=C[i];while (H.parentNode){if (H.parentNode==G){E.push(H);break;};H=H.parentNode;}};if (E.length<1) return;var I=E[E.length-1].nextSibling;var J=D.createElement(this.TagName);B.push(J);while (E.length){var K=E.shift();var L=D.createDocumentFragment();while (K.firstChild) L.appendChild(K.removeChild(K.firstChild));K.parentNode.removeChild(K);var M=D.createElement('li');M.appendChild(L);J.appendChild(M);};G.insertBefore(J,I);},_RemoveList:function(A,B){var C=FCKDomTools.ListToArray(A.root,B);var D=[];for (var i=0;i<A.contents.length;i++){var E=A.contents[i];E=FCKTools.GetElementAscensor(E,'li');if (!E||E._FCK_ListItem_Processed) continue;D.push(E);FCKDomTools.SetElementMarker(B,E,'_FCK_ListItem_Processed',true);};var F=null;for (var i=0;i<D.length;i++){var G=D[i]._FCK_ListArray_Index;C[G].indent=-1;F=G;};for (var i=F+1;i<C.length;i++){if (C[i].indent>C[i-1].indent+1){var H=C[i-1].indent+1-C[i].indent;var I=C[i].indent;while (C[i]&&C[i].indent>=I){C[i].indent+=H;i++;};i--;}};var J=FCKDomTools.ArrayToList(C,B);if (A.root.nextSibling==null||A.root.nextSibling.nodeName.IEquals('br')){if (J.listNode.lastChild.nodeName.IEquals('br')) J.listNode.removeChild(J.listNode.lastChild);};A.root.parentNode.replaceChild(J.listNode,A.root);}}; +var FCKJustifyCommand=function(A){this.AlignValue=A;var B=FCKConfig.ContentLangDirection.toLowerCase();this.IsDefaultAlign=(A=='left'&&B=='ltr')||(A=='right'&&B=='rtl');var C=this._CssClassName=(function(){var D=FCKConfig.JustifyClasses;if (D){switch (A){case 'left':return D[0];case 'center':return D[1];case 'right':return D[2];case 'justify':return D[3];}};return null;})();if (C&&C.length>0) this._CssClassRegex=new RegExp('(?:^|\\s+)'+C+'(?=$|\\s)');};FCKJustifyCommand._GetClassNameRegex=function(){var A=FCKJustifyCommand._ClassRegex;if (A!=undefined) return A;var B=[];var C=FCKConfig.JustifyClasses;if (C){for (var i=0;i<4;i++){var D=C[i];if (D&&D.length>0) B.push(D);}};if (B.length>0) A=new RegExp('(?:^|\\s+)(?:'+B.join('|')+')(?=$|\\s)');else A=null;return FCKJustifyCommand._ClassRegex=A;};FCKJustifyCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=this.GetState();if (B==-1) return;var C=A.CreateBookmark();var D=this._CssClassName;var E=new FCKDomRangeIterator(A);var F;while ((F=E.GetNextParagraph())){F.removeAttribute('align');if (D){var G=F.className.replace(FCKJustifyCommand._GetClassNameRegex(),'');if (B==0){if (G.length>0) G+=' ';F.className=G+D;}else if (G.length==0) FCKDomTools.RemoveAttribute(F,'class');}else{var H=F.style;if (B==0) H.textAlign=this.AlignValue;else{H.textAlign='';if (H.cssText.length==0) F.removeAttribute('style');}}};A.MoveToBookmark(C);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;var C;if (FCKBrowserInfo.IsIE) C=B.currentStyle.textAlign;else C=FCK.EditorWindow.getComputedStyle(B,'').getPropertyValue('text-align');C=C.replace(/(-moz-|-webkit-|start|auto)/i,'');if ((!C&&this.IsDefaultAlign)||C==this.AlignValue) return 1;return 0;}}; +var FCKIndentCommand=function(A,B){this.Name=A;this.Offset=B;this.IndentCSSProperty=FCKConfig.ContentLangDirection.IEquals('ltr')?'marginLeft':'marginRight';};FCKIndentCommand._InitIndentModeParameters=function(){if (FCKConfig.IndentClasses&&FCKConfig.IndentClasses.length>0){this._UseIndentClasses=true;this._IndentClassMap={};for (var i=0;i<FCKConfig.IndentClasses.length;i++) this._IndentClassMap[FCKConfig.IndentClasses[i]]=i+1;this._ClassNameRegex=new RegExp('(?:^|\\s+)('+FCKConfig.IndentClasses.join('|')+')(?=$|\\s)');}else this._UseIndentClasses=false;};FCKIndentCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=A.CreateBookmark();var C=FCKDomTools.GetCommonParentNode(A.StartNode||A.StartContainer,A.EndNode||A.EndContainer,['ul','ol']);if (C) this._IndentList(A,C);else this._IndentBlock(A);A.MoveToBookmark(B);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;if (FCKIndentCommand._UseIndentClasses==undefined) FCKIndentCommand._InitIndentModeParameters();var A=FCKSelection.GetBoundaryParentElement(true);var B=FCKSelection.GetBoundaryParentElement(false);var C=FCKDomTools.GetCommonParentNode(A,B,['ul','ol']);if (C){if (this.Name.IEquals('outdent')) return 0;var D=FCKTools.GetElementAscensor(A,'li');if (!D||!D.previousSibling) return -1;return 0;};if (!FCKIndentCommand._UseIndentClasses&&this.Name.IEquals('indent')) return 0;var E=new FCKElementPath(A);var F=E.Block||E.BlockLimit;if (!F) return -1;if (FCKIndentCommand._UseIndentClasses){var G=F.className.match(FCKIndentCommand._ClassNameRegex);var H=0;if (G!=null){G=G[1];H=FCKIndentCommand._IndentClassMap[G];};if ((this.Name=='outdent'&&H==0)||(this.Name=='indent'&&H==FCKConfig.IndentClasses.length)) return -1;return 0;}else{var I=parseInt(F.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;if (I<=0) return -1;return 0;}},_IndentBlock:function(A){var B=new FCKDomRangeIterator(A);A.Expand('block_contents');var C=FCKDomTools.GetCommonParents(A.StartContainer,A.EndContainer);var D=C[C.length-1];var E;while ((E=B.GetNextParagraph())){if (!(E==D||E.parentNode==D)) continue;if (FCKIndentCommand._UseIndentClasses){var F=E.className.match(FCKIndentCommand._ClassNameRegex);var G=0;if (F!=null){F=F[1];G=FCKIndentCommand._IndentClassMap[F];};if (this.Name.IEquals('outdent')) G--;else if (this.Name.IEquals('indent')) G++;G=Math.min(G,FCKConfig.IndentClasses.length);G=Math.max(G,0);var H=E.className.replace(FCKIndentCommand._ClassNameRegex,'');if (G<1) E.className=H;else E.className=(H.length>0?H+' ':'')+FCKConfig.IndentClasses[G-1];}else{var I=parseInt(E.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;I+=this.Offset;I=Math.max(I,0);I=Math.ceil(I/this.Offset)*this.Offset;E.style[this.IndentCSSProperty]=I?I+FCKConfig.IndentUnit:'';if (E.getAttribute('style')=='') E.removeAttribute('style');}}},_IndentList:function(A,B){var C=A.StartContainer;var D=A.EndContainer;while (C&&C.parentNode!=B) C=C.parentNode;while (D&&D.parentNode!=B) D=D.parentNode;if (!C||!D) return;var E=C;var F=[];var G=false;while (G==false){if (E==D) G=true;F.push(E);E=E.nextSibling;};if (F.length<1) return;var H=FCKDomTools.GetParents(B);for (var i=0;i<H.length;i++){if (H[i].nodeName.IEquals(['ul','ol'])){B=H[i];break;}};var I=this.Name.IEquals('indent')?1:-1;var J=F[0];var K=F[F.length-1];var L={};var M=FCKDomTools.ListToArray(B,L);var N=M[K._FCK_ListArray_Index].indent;for (var i=J._FCK_ListArray_Index;i<=K._FCK_ListArray_Index;i++) M[i].indent+=I;for (var i=K._FCK_ListArray_Index+1;i<M.length&&M[i].indent>N;i++) M[i].indent+=I;var O=FCKDomTools.ArrayToList(M);if (O) B.parentNode.replaceChild(O.listNode,B);FCKDomTools.ClearAllMarkers(L);}}; +var FCKBlockQuoteCommand=function(){};FCKBlockQuoteCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=this.GetState();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();if (FCKBrowserInfo.IsIE){var D=B.GetBookmarkNode(C,true);var E=B.GetBookmarkNode(C,false);var F;if (D&&D.parentNode.nodeName.IEquals('blockquote')&&!D.previousSibling){F=D;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]) FCKDomTools.MoveNode(D,F,true);}};if (E&&E.parentNode.nodeName.IEquals('blockquote')&&!E.previousSibling){F=E;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]){if (F.firstChild==D) FCKDomTools.InsertAfterNode(D,E);else FCKDomTools.MoveNode(E,F,true);}}}};var G=new FCKDomRangeIterator(B);var H;if (A==0){G.EnforceRealBlocks=true;var I=[];while ((H=G.GetNextParagraph())) I.push(H);if (I.length<1){para=B.Window.document.createElement(FCKConfig.EnterMode.IEquals('p')?'p':'div');B.InsertNode(para);para.appendChild(B.Window.document.createTextNode('\ufeff'));B.MoveToBookmark(C);B.MoveToNodeContents(para);B.Collapse(true);C=B.CreateBookmark();I.push(para);};var J=I[0].parentNode;var K=[];for (var i=0;i<I.length;i++){H=I[i];J=FCKDomTools.GetCommonParents(H.parentNode,J).pop();};var L=null;while (I.length>0){H=I.shift();while (H.parentNode!=J) H=H.parentNode;if (H!=L) K.push(H);L=H;};while (K.length>0){H=K.shift();if (H.nodeName.IEquals('blockquote')){var M=H.ownerDocument.createDocumentFragment();while (H.firstChild){M.appendChild(H.removeChild(H.firstChild));I.push(M.lastChild);};H.parentNode.replaceChild(M,H);}else I.push(H);};var N=B.Window.document.createElement('blockquote');J.insertBefore(N,I[0]);while (I.length>0){H=I.shift();N.appendChild(H);}}else if (A==1){var O=[];while ((H=G.GetNextParagraph())){var P=null;var Q=null;while (H.parentNode){if (H.parentNode.nodeName.IEquals('blockquote')){P=H.parentNode;Q=H;break;};H=H.parentNode;};if (P&&Q) O.push(Q);};var R=[];while (O.length>0){var S=O.shift();var N=S.parentNode;if (S==S.parentNode.firstChild){N.parentNode.insertBefore(N.removeChild(S),N);if (!N.firstChild) N.parentNode.removeChild(N);}else if (S==S.parentNode.lastChild){N.parentNode.insertBefore(N.removeChild(S),N.nextSibling);if (!N.firstChild) N.parentNode.removeChild(N);}else FCKDomTools.BreakParent(S,S.parentNode,B);R.push(S);};if (FCKConfig.EnterMode.IEquals('br')){while (R.length){var S=R.shift();var W=true;if (S.nodeName.IEquals('div')){var M=S.ownerDocument.createDocumentFragment();var Y=W&&S.previousSibling&&!FCKListsLib.BlockBoundaries[S.previousSibling.nodeName.toLowerCase()];if (W&&Y) M.appendChild(S.ownerDocument.createElement('br'));var Z=S.nextSibling&&!FCKListsLib.BlockBoundaries[S.nextSibling.nodeName.toLowerCase()];while (S.firstChild) M.appendChild(S.removeChild(S.firstChild));if (Z) M.appendChild(S.ownerDocument.createElement('br'));S.parentNode.replaceChild(M,S);W=false;}}}};B.MoveToBookmark(C);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;for (var i=0;i<A.Elements.length;i++){if (A.Elements[i].nodeName.IEquals('blockquote')) return 1;};return 0;}}; +var FCKCoreStyleCommand=function(A){this.Name='CoreStyle';this.StyleName='_FCK_'+A;this.IsActive=false;FCKStyles.AttachStyleStateChange(this.StyleName,this._OnStyleStateChange,this);};FCKCoreStyleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();if (this.IsActive) FCKStyles.RemoveStyle(this.StyleName);else FCKStyles.ApplyStyle(this.StyleName);FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){return this.IsActive?1:0;},_OnStyleStateChange:function(A,B){this.IsActive=B;}}; +var FCKRemoveFormatCommand=function(){this.Name='RemoveFormat';};FCKRemoveFormatCommand.prototype={Execute:function(){FCKStyles.RemoveAll();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){return FCK.EditorWindow?0:-1;}}; +var FCKCommands=FCK.Commands={};FCKCommands.LoadedCommands={};FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'Bold':case 'Italic':case 'Underline':case 'StrikeThrough':case 'Subscript':case 'Superscript':B=new FCKCoreStyleCommand(A);break;case 'RemoveFormat':B=new FCKRemoveFormatCommand();break;case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,390,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,170);break;case 'AnchorDelete':B=new FCKAnchorDeleteCommand();break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,170);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,170);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',400,330);break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,250);break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,250);break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,400);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,320);break;case 'Smiley':B=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight);break;case 'Table':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html',480,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',480,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,250);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'Rule':B=new FCKRuleCommand();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'Paste':B=new FCKPasteCommand();break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'JustifyLeft':B=new FCKJustifyCommand('left');break;case 'JustifyCenter':B=new FCKJustifyCommand('center');break;case 'JustifyRight':B=new FCKJustifyCommand('right');break;case 'JustifyFull':B=new FCKJustifyCommand('justify');break;case 'Indent':B=new FCKIndentCommand('indent',FCKConfig.IndentLength);break;case 'Outdent':B=new FCKIndentCommand('outdent',FCKConfig.IndentLength*-1);break;case 'Blockquote':B=new FCKBlockQuoteCommand();break;case 'TableInsertRowAfter':B=new FCKTableCommand('TableInsertRowAfter');break;case 'TableInsertRowBefore':B=new FCKTableCommand('TableInsertRowBefore');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumnAfter':B=new FCKTableCommand('TableInsertColumnAfter');break;case 'TableInsertColumnBefore':B=new FCKTableCommand('TableInsertColumnBefore');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCellAfter':B=new FCKTableCommand('TableInsertCellAfter');break;case 'TableInsertCellBefore':B=new FCKTableCommand('TableInsertCellBefore');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableMergeRight':B=new FCKTableCommand('TableMergeRight');break;case 'TableMergeDown':B=new FCKTableCommand('TableMergeDown');break;case 'TableHorizontalSplitCell':B=new FCKTableCommand('TableHorizontalSplitCell');break;case 'TableVerticalSplitCell':B=new FCKTableCommand('TableVerticalSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,230);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,230);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,230);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,230);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,230);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,230);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,230);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,380);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,400);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();break;case 'Copy':B=new FCKCopyCommand();break;case 'SelectAll':B=new FCKSelectAllCommand();break;case 'InsertOrderedList':B=new FCKListCommand('insertorderedlist','ol');break;case 'InsertUnorderedList':B=new FCKListCommand('insertunorderedlist','ul');break;case 'ShowBlocks':B=new FCKShowBlockCommand('ShowBlocks',FCKConfig.StartupShowBlocks?1:0);break;case 'Undefined':B=new FCKUndefinedCommand();break;default:if (FCKRegexLib.NamedCommands.test(A)) B=new FCKNamedCommand(A);else{alert(FCKLang.UnknownCommand.replace(/%1/g,A));return null;}};FCKCommands.LoadedCommands[A]=B;return B;};FCKCommands.GetFullPageState=function(){return FCKConfig.FullPage?0:-1;};FCKCommands.GetBooleanState=function(A){return A?-1:0;}; +var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();B=this.Document=this._Popup.document;FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var C=this._IFrame=this._Window.document.createElement('iframe');C.src='javascript:void(0)';C.allowTransparency=true;C.frameBorder='0';C.scrolling='no';C.width=C.height=0;FCKDomTools.SetElementStyles(C,{position:'absolute',zIndex:FCKConfig.FloatingPanelsZIndex});if (this._Window==window.parent&&window.frameElement){var D=null;if (FCKBrowserInfo.IsGecko&&FCK&&FCK.EditorDocument) D=[FCK.EditorDocument.body.scrollLeft,FCK.EditorDocument.body.scrollTop];window.frameElement.parentNode.insertBefore(C,window.frameElement);if (D){var E=function(){FCK.EditorDocument.body.scrollLeft=D[0];FCK.EditorDocument.body.scrollTop=D[1];};setTimeout(E,500);}}else this._Window.document.body.appendChild(C);var F=C.contentWindow;B=this.Document=F.document;var G='';if (FCKBrowserInfo.IsSafari) G='<base href="'+window.document.location+'">';B.open();B.write('<html><head>'+G+'<\/head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();FCKTools.AddEventListenerEx(F,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(F,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;FCKTools.AddEventListener(B,'contextmenu',FCKTools.CancelEvent);this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;var E=this.MainNode;if (this._Popup){this._Popup.show(x,y,0,0,A);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,E.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCK.ToolbarSet.CurrentInstance.FocusManager)!='undefined') FCK.ToolbarSet.CurrentInstance.FocusManager.Lock();if (this.ParentPanel){this.ParentPanel.Lock();FCKPanel_Window_OnBlur(null,this.ParentPanel);};if (FCKPanel._OpenedPanel) FCKPanel._OpenedPanel.Hide();FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (!B) this._IFrame.width=1;if (!C) this._IFrame.height=1;D=E.offsetWidth||E.firstChild.offsetWidth;var F=FCKTools.GetDocumentPosition(this._Window,A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A);var G=FCKDomTools.GetPositionedAncestor(FCKTools.GetElementWindow(this._IFrame),this._IFrame.parentNode);if (G){var H=FCKTools.GetDocumentPosition(FCKTools.GetElementWindow(G),G);F.x-=H.x;F.y-=H.y;};if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=F.x;y+=F.y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var I=FCKTools.GetViewPaneSize(this._Window);var J=FCKTools.GetScrollPosition(this._Window);var K=I.Height+J.Y;var L=I.Width+J.X;if ((x+D)>L) x-=x+D-L;if ((y+E.offsetHeight)>K) y-=y+E.offsetHeight-K;};if (x<0) x=0;FCKDomTools.SetElementStyles(this._IFrame,{left:x+'px',top:y+'px'});var M=D;var N=E.offsetHeight;this._IFrame.width=M;this._IFrame.height=N;this._IFrame.contentWindow.focus();FCKPanel._OpenedPanel=this;};this._IsOpened=true;FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened||this._LockCounter>0) return;if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&&!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;}; +var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B,eIconImage;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path;eIconImage.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url("'+this.Path+'")';}}else{if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path?this.Path:FCK_SPACER_PATH;}else{B=A.createElement('IMG');B.src=this.Path?this.Path:FCK_SPACER_PATH;}};B.className='TB_Button_Image';return B;} +var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||0;this.State=F||0;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this.MainElement=B.createElement('DIV');C.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) C.onmousedown=FCKTools.CancelEvent;FCKTools.AddEventListenerEx(C,'mouseover',FCKToolbarButtonUI_OnMouseOver,this);FCKTools.AddEventListenerEx(C,'mouseout',FCKToolbarButtonUI_OnMouseOut,this);FCKTools.AddEventListenerEx(C,'click',FCKToolbarButtonUI_OnClick,this);this.ChangeState(this.State,true);if (this.Style==0&&!this.ShowArrow){C.appendChild(this.Icon.CreateIconElement(B));}else{var D=C.appendChild(B.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==0||this.Style==2) F.appendChild(this.Icon.CreateIconElement(B));else F.appendChild(this._CreatePaddingElement(B));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(B.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(B));};F=E.insertCell(-1);var G=F.appendChild(B.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(B));};A.appendChild(C);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;if (!e) return;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';break;case 1:e.className='TB_Button_On';break;case -1:e.className='TB_Button_Disabled';break;};this.State=A;};function FCKToolbarButtonUI_OnMouseOver(A,B){if (B.State==0) this.className='TB_Button_Off_Over';else if (B.State==1) this.className='TB_Button_On_Over';};function FCKToolbarButtonUI_OnMouseOut(A,B){if (B.State==0) this.className='TB_Button_Off';else if (B.State==1) this.className='TB_Button_On';};function FCKToolbarButtonUI_OnClick(A,B){if (B.OnClick&&B.State!=-1) B.OnClick(B);};function FCKToolbarButtonUI_Cleanup(){this.MainElement=null;}; +var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];else this.IconPath=G;};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (A==this._UIButton.State) return;this._UIButton.ChangeState(A);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);} +var FCKSpecialCombo=function(A,B,C,D,E){this.FieldWidth=B||100;this.PanelWidth=C||150;this.PanelMaxHeight=D||150;this.Label='&nbsp;';this.Caption=A;this.Tooltip=A;this.Style=2;this.Enabled=true;this.Items={};this._Panel=new FCKPanel(E||window);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._PanelBox=this._Panel.MainNode.appendChild(this._Panel.Document.createElement('DIV'));this._PanelBox.className='SC_Panel';this._PanelBox.style.width=this.PanelWidth+'px';this._PanelBox.innerHTML='<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>';this._ItemsHolderEl=this._PanelBox.getElementsByTagName('TD')[0];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKSpecialCombo_Cleanup);};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(A,B,C){this.className=this.originalClass;B._Panel.Hide();B.SetLabel(this.FCKItemLabel);if (typeof(B.OnSelect)=='function') B.OnSelect(C,this);};FCKSpecialCombo.prototype.ClearItems=function (){if (this.Items) this.Items={};var A=this._ItemsHolderEl;while (A.firstChild) A.removeChild(A.firstChild);};FCKSpecialCombo.prototype.AddItem=function(A,B,C,D){var E=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));E.className=E.originalClass='SC_Item';E.innerHTML=B;E.FCKItemLabel=C||A;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;FCKTools.AddEventListenerEx(E,'mouseover',FCKSpecialCombo_ItemOnMouseOver);FCKTools.AddEventListenerEx(E,'mouseout',FCKSpecialCombo_ItemOnMouseOut);FCKTools.AddEventListenerEx(E,'click',FCKSpecialCombo_ItemOnClick,[this,A]);this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){if (typeof A=='string') A=this.Items[A.toString().toLowerCase()];if (A){A.className=A.originalClass='SC_ItemSelected';A.Selected=true;}};FCKSpecialCombo.prototype.SelectItemByLabel=function(A,B){for (var C in this.Items){var D=this.Items[C];if (D.FCKItemLabel==A){D.className=D.originalClass='SC_ItemSelected';D.Selected=true;if (B) this.SetLabel(A);}}};FCKSpecialCombo.prototype.DeselectAll=function(A){for (var i in this.Items){if (!this.Items[i]) continue;this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};if (A) this.SetLabel('');};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){A=(!A||A.length==0)?'&nbsp;':A;if (A==this.Label) return;this.Label=A;var B=this._LabelEl;if (B){B.innerHTML=A;FCKTools.DisableSelection(B);}};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;if (this._OuterTable) this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this._OuterTable=A.appendChild(B.createElement('TABLE'));C.cellPadding=0;C.cellSpacing=0;C.insertRow(-1);var D;var E;switch (this.Style){case 0:D='TB_ButtonType_Icon';E=false;break;case 1:D='TB_ButtonType_Text';E=false;break;case 2:E=true;break;};if (this.Caption&&this.Caption.length>0&&E){var F=C.rows[0].insertCell(-1);F.innerHTML=this.Caption;F.className='SC_FieldCaption';};var G=FCKTools.AppendElement(C.rows[0].insertCell(-1),'div');if (E){G.className='SC_Field';G.style.width=this.FieldWidth+'px';G.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldLabel"><label>&nbsp;</label></td><td class="SC_FieldButton">&nbsp;</td></tr></tbody></table>';this._LabelEl=G.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{G.className='TB_Button_Off';G.innerHTML='<table title="'+this.Tooltip+'" class="'+D+'" cellspacing="0" cellpadding="0" border="0"><tr><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_Text">'+this.Caption+'</td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_ButtonArrow"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td></tr></table>';};FCKTools.AddEventListenerEx(G,'mouseover',FCKSpecialCombo_OnMouseOver,this);FCKTools.AddEventListenerEx(G,'mouseout',FCKSpecialCombo_OnMouseOut,this);FCKTools.AddEventListenerEx(G,'click',FCKSpecialCombo_OnClick,this);FCKTools.DisableSelection(this._Panel.Document.body);};function FCKSpecialCombo_Cleanup(){this._LabelEl=null;this._OuterTable=null;this._ItemsHolderEl=null;this._PanelBox=null;if (this.Items){for (var A in this.Items) this.Items[A]=null;}};function FCKSpecialCombo_OnMouseOver(A,B){if (B.Enabled){switch (B.Style){case 0:this.className='TB_Button_On_Over';break;case 1:this.className='TB_Button_On_Over';break;case 2:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(A,B){switch (B.Style){case 0:this.className='TB_Button_Off';break;case 1:this.className='TB_Button_Off';break;case 2:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e,A){if (A.Enabled){var B=A._Panel;var C=A._PanelBox;var D=A._ItemsHolderEl;var E=A.PanelMaxHeight;if (A.OnBeforeClick) A.OnBeforeClick(A);if (FCKBrowserInfo.IsIE) B.Preload(0,this.offsetHeight,this);if (D.offsetHeight>E) C.style.height=E+'px';else C.style.height='';B.Show(0,this.offsetHeight,this);}}; +var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;};FCKToolbarSpecialCombo.prototype.DefaultLabel='';function FCKToolbarSpecialCombo_OnSelect(A,B){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(A,B);};FCKToolbarSpecialCombo.prototype.Create=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel(),this.FieldWidth,this.PanelWidth,this.PanelMaxHeight,FCKBrowserInfo.IsIE?window:FCKTools.GetElementWindow(A).parent);this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A);this._Combo.CommandName=this.CommandName;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(A,B){A.DeselectAll();A.SelectItem(B);A.SetLabelById(B);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=-1){A=1;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!==B){this._LastValue=B;if (!B||B.length==0){this._Combo.DeselectAll();this._Combo.SetLabel(this.DefaultLabel);}else FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=-1;if (A==this.State) return;if (A==-1){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=-1);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=-1;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);}; +var FCKToolbarStyleCombo=function(A,B){if (A===false) return;this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultStyleLabel||'';};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.GetStyles=function(){var A={};var B=FCK.ToolbarSet.CurrentInstance.Styles.GetStyles();for (var C in B){var D=B[C];if (!D.IsCore) A[C]=D;};return A;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);FCKTools.AppendStyleString(B,FCKConfig.EditorAreaStyles);B.body.className+=' ForceBaseFont';FCKConfig.ApplyBodyAttributes(B.body);var C=this.GetStyles();for (var D in C){var E=C[D];var F=E.GetType()==2?D:FCKToolbarStyleCombo_BuildPreview(E,E.Label||D);var G=A.AddItem(D,F);G.Style=E;};A.OnBeforeClick=this.StyleCombo_OnBeforeClick;};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Elements;for (var e=0;e<D.length;e++){for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D[e],true)){A.SetLabel(F.Label||F.Name);return;}}}};A.SetLabel(this.DefaultLabel);};FCKToolbarStyleCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B;var C;var D;var E=FCK.ToolbarSet.CurrentInstance.Selection;if (E.GetType()=='Control'){B=E.GetSelectedElement();D=B.nodeName.toLowerCase();}else{B=E.GetBoundaryParentElement(true);C=new FCKElementPath(B);};for (var i in A.Items){var F=A.Items[i];var G=F.Style;if ((D&&G.Element==D)||(!D&&G.GetType()!=2)){F.style.display='';if ((C&&G.CheckActive(C))||(!C&&G.CheckElementRemovable(B,true))) A.SelectItem(G.Name);}else F.style.display='none';}};function FCKToolbarStyleCombo_BuildPreview(A,B){var C=A.GetType();var D=[];if (C==0) D.push('<div class="BaseFont">');var E=A.Element;if (E=='bdo') E='span';D=['<',E];var F=A._StyleDesc.Attributes;if (F){for (var G in F){D.push(' ',G,'="',A.GetFinalAttributeValue(G),'"');}};if (A._GetStyleText().length>0) D.push(' style="',A.GetFinalStyleValue(),'"');D.push('>',B,'</',E,'>');if (C==0) D.push('</div>');return D.join('');} +var FCKToolbarFontFormatCombo=function(A,B){if (A===false) return;this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.NormalLabel='Normal';this.PanelWidth=190;this.DefaultLabel=FCKConfig.DefaultFontFormatLabel||'';};FCKToolbarFontFormatCombo.prototype=new FCKToolbarStyleCombo(false);FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.GetStyles=function(){var A={};var B=FCKLang['FontFormats'].split(';');var C={p:B[0],pre:B[1],address:B[2],h1:B[3],h2:B[4],h3:B[5],h4:B[6],h5:B[7],h6:B[8],div:B[9]||(B[0]+' (DIV)')};var D=FCKConfig.FontFormats.split(';');for (var i=0;i<D.length;i++){var E=D[i];var F=FCKStyles.GetStyle('_FCK_'+E);if (F){F.Label=C[E];A['_FCK_'+E]=F;}else alert("The FCKConfig.CoreStyles['"+E+"'] setting was not found. Please check the fckconfig.js file");};return A;};FCKToolbarFontFormatCombo.prototype.RefreshActiveItems=function(A){var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Block;if (D){for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D)){A.SetLabel(F.Label);return;}}}};A.SetLabel(this.DefaultLabel);};FCKToolbarFontFormatCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Block;for (var i in A.Items){var E=A.Items[i];var F=E.Style;if (F.CheckElementRemovable(D)){A.SelectItem(E);return;}}}}; +var FCKToolbarFontsCombo=function(A,B){this.CommandName='FontName';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultFontLabel||'';};FCKToolbarFontsCombo.prototype=new FCKToolbarFontFormatCombo(false);FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.GetStyles=function(){var A=FCKStyles.GetStyle('_FCK_FontFace');if (!A){alert("The FCKConfig.CoreStyles['Size'] setting was not found. Please check the fckconfig.js file");return {};};var B={};var C=FCKConfig.FontNames.split(';');for (var i=0;i<C.length;i++){var D=C[i].split('/');var E=D[0];var F=D[1]||E;var G=FCKTools.CloneObject(A);G.SetVariable('Font',E);G.Label=F;B[F]=G;};return B;};FCKToolbarFontsCombo.prototype.RefreshActiveItems=FCKToolbarStyleCombo.prototype.RefreshActiveItems;FCKToolbarFontsCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();var B=FCKSelection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);for (var i in A.Items){var D=A.Items[i];var E=D.Style;if (E.CheckActive(C)){A.SelectItem(D);return;}}}}; +var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultFontSizeLabel||'';this.FieldWidth=70;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarFontFormatCombo(false);FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.GetStyles=function(){var A=FCKStyles.GetStyle('_FCK_Size');if (!A){alert("The FCKConfig.CoreStyles['FontFace'] setting was not found. Please check the fckconfig.js file");return {};};var B={};var C=FCKConfig.FontSizes.split(';');for (var i=0;i<C.length;i++){var D=C[i].split('/');var E=D[0];var F=D[1]||E;var G=FCKTools.CloneObject(A);G.SetVariable('Size',E);G.Label=F;B[F]=G;};return B;};FCKToolbarFontSizeCombo.prototype.RefreshActiveItems=FCKToolbarStyleCombo.prototype.RefreshActiveItems;FCKToolbarFontSizeCombo.prototype.StyleCombo_OnBeforeClick=FCKToolbarFontsCombo.prototype.StyleCombo_OnBeforeClick; +var FCKToolbarPanelButton=function(A,B,C,D,E){this.CommandName=A;var F;if (E==null) F=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(E)=='number') F=[FCKConfig.SkinPath+'fck_strip.gif',16,E];var G=this._UIButton=new FCKToolbarButtonUI(A,B,C,F,D);G._FCKToolbarPanelButton=this;G.ShowArrow=true;G.OnClick=FCKToolbarPanelButton_OnButtonClick;};FCKToolbarPanelButton.prototype.TypeName='FCKToolbarPanelButton';FCKToolbarPanelButton.prototype.Create=function(A){A.className+='Menu';this._UIButton.Create(A);var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName)._Panel;B._FCKToolbarPanelButton=this;var C=B.Document.body.appendChild(B.Document.createElement('div'));C.style.position='absolute';C.style.top='0px';var D=this.LineImg=C.appendChild(B.Document.createElement('IMG'));D.className='TB_ConnectionLine';D.style.position='absolute';D.src=FCK_SPACER_PATH;B.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(A){var B=this._FCKToolbarPanelButton;var e=B._UIButton.MainElement;B._UIButton.ChangeState(1);B.LineImg.style.width=(e.offsetWidth-2)+'px';FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(B.CommandName).Execute(0,e.offsetHeight-1,e);};function FCKToolbarPanelButton_OnPanelHide(){var A=this._FCKToolbarPanelButton;A._UIButton.ChangeState(0);};FCKToolbarPanelButton.prototype.RefreshState=FCKToolbarButton.prototype.RefreshState;FCKToolbarPanelButton.prototype.Enable=FCKToolbarButton.prototype.Enable;FCKToolbarPanelButton.prototype.Disable=FCKToolbarButton.prototype.Disable; +var FCKToolbarItems={};FCKToolbarItems.LoadedItems={};FCKToolbarItems.RegisterItem=function(A,B){this.LoadedItems[A]=B;};FCKToolbarItems.GetItem=function(A){var B=FCKToolbarItems.LoadedItems[A];if (B) return B;switch (A){case 'Source':B=new FCKToolbarButton('Source',FCKLang.Source,null,2,true,true,1);break;case 'DocProps':B=new FCKToolbarButton('DocProps',FCKLang.DocProps,null,null,null,null,2);break;case 'Save':B=new FCKToolbarButton('Save',FCKLang.Save,null,null,true,null,3);break;case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;case 'Preview':B=new FCKToolbarButton('Preview',FCKLang.Preview,null,null,true,null,5);break;case 'Templates':B=new FCKToolbarButton('Templates',FCKLang.Templates,null,null,null,null,6);break;case 'About':B=new FCKToolbarButton('About',FCKLang.About,null,null,true,null,47);break;case 'Cut':B=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,false,true,7);break;case 'Copy':B=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,false,true,8);break;case 'Paste':B=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,false,true,9);break;case 'PasteText':B=new FCKToolbarButton('PasteText',FCKLang.PasteText,null,null,false,true,10);break;case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true,11);break;case 'Print':B=new FCKToolbarButton('Print',FCKLang.Print,null,null,false,true,12);break;case 'SpellCheck':B=new FCKToolbarButton('SpellCheck',FCKLang.SpellCheck,null,null,null,null,13);break;case 'Undo':B=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,false,true,14);break;case 'Redo':B=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,false,true,15);break;case 'SelectAll':B=new FCKToolbarButton('SelectAll',FCKLang.SelectAll,null,null,true,null,18);break;case 'RemoveFormat':B=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat,null,null,false,true,19);break;case 'FitWindow':B=new FCKToolbarButton('FitWindow',FCKLang.FitWindow,null,null,true,true,66);break;case 'Bold':B=new FCKToolbarButton('Bold',FCKLang.Bold,null,null,false,true,20);break;case 'Italic':B=new FCKToolbarButton('Italic',FCKLang.Italic,null,null,false,true,21);break;case 'Underline':B=new FCKToolbarButton('Underline',FCKLang.Underline,null,null,false,true,22);break;case 'StrikeThrough':B=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough,null,null,false,true,23);break;case 'Subscript':B=new FCKToolbarButton('Subscript',FCKLang.Subscript,null,null,false,true,24);break;case 'Superscript':B=new FCKToolbarButton('Superscript',FCKLang.Superscript,null,null,false,true,25);break;case 'OrderedList':B=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList,null,false,true,26);break;case 'UnorderedList':B=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList,null,false,true,27);break;case 'Outdent':B=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent,null,null,false,true,28);break;case 'Indent':B=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent,null,null,false,true,29);break;case 'Blockquote':B=new FCKToolbarButton('Blockquote',FCKLang.Blockquote,null,null,false,true,73);break;case 'Link':B=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink,null,false,true,34);break;case 'Unlink':B=new FCKToolbarButton('Unlink',FCKLang.RemoveLink,null,null,false,true,35);break;case 'Anchor':B=new FCKToolbarButton('Anchor',FCKLang.Anchor,null,null,null,null,36);break;case 'Image':B=new FCKToolbarButton('Image',FCKLang.InsertImageLbl,FCKLang.InsertImage,null,false,true,37);break;case 'Flash':B=new FCKToolbarButton('Flash',FCKLang.InsertFlashLbl,FCKLang.InsertFlash,null,false,true,38);break;case 'Table':B=new FCKToolbarButton('Table',FCKLang.InsertTableLbl,FCKLang.InsertTable,null,false,true,39);break;case 'SpecialChar':B=new FCKToolbarButton('SpecialChar',FCKLang.InsertSpecialCharLbl,FCKLang.InsertSpecialChar,null,false,true,42);break;case 'Smiley':B=new FCKToolbarButton('Smiley',FCKLang.InsertSmileyLbl,FCKLang.InsertSmiley,null,false,true,41);break;case 'PageBreak':B=new FCKToolbarButton('PageBreak',FCKLang.PageBreakLbl,FCKLang.PageBreak,null,false,true,43);break;case 'Rule':B=new FCKToolbarButton('Rule',FCKLang.InsertLineLbl,FCKLang.InsertLine,null,false,true,40);break;case 'JustifyLeft':B=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify,null,null,false,true,30);break;case 'JustifyCenter':B=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify,null,null,false,true,31);break;case 'JustifyRight':B=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify,null,null,false,true,32);break;case 'JustifyFull':B=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify,null,null,false,true,33);break;case 'Style':B=new FCKToolbarStyleCombo();break;case 'FontName':B=new FCKToolbarFontsCombo();break;case 'FontSize':B=new FCKToolbarFontSizeCombo();break;case 'FontFormat':B=new FCKToolbarFontFormatCombo();break;case 'TextColor':B=new FCKToolbarPanelButton('TextColor',FCKLang.TextColor,null,null,45);break;case 'BGColor':B=new FCKToolbarPanelButton('BGColor',FCKLang.BGColor,null,null,46);break;case 'Find':B=new FCKToolbarButton('Find',FCKLang.Find,null,null,null,null,16);break;case 'Replace':B=new FCKToolbarButton('Replace',FCKLang.Replace,null,null,null,null,17);break;case 'Form':B=new FCKToolbarButton('Form',FCKLang.Form,null,null,null,null,48);break;case 'Checkbox':B=new FCKToolbarButton('Checkbox',FCKLang.Checkbox,null,null,null,null,49);break;case 'Radio':B=new FCKToolbarButton('Radio',FCKLang.RadioButton,null,null,null,null,50);break;case 'TextField':B=new FCKToolbarButton('TextField',FCKLang.TextField,null,null,null,null,51);break;case 'Textarea':B=new FCKToolbarButton('Textarea',FCKLang.Textarea,null,null,null,null,52);break;case 'HiddenField':B=new FCKToolbarButton('HiddenField',FCKLang.HiddenField,null,null,null,null,56);break;case 'Button':B=new FCKToolbarButton('Button',FCKLang.Button,null,null,null,null,54);break;case 'Select':B=new FCKToolbarButton('Select',FCKLang.SelectionField,null,null,null,null,53);break;case 'ImageButton':B=new FCKToolbarButton('ImageButton',FCKLang.ImageButton,null,null,null,null,55);break;case 'ShowBlocks':B=new FCKToolbarButton('ShowBlocks',FCKLang.ShowBlocks,null,null,null,true,72);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;}; +var FCKToolbar=function(){this.Items=[];};FCKToolbar.prototype.AddItem=function(A){return this.Items[this.Items.length]=A;};FCKToolbar.prototype.AddButton=function(A,B,C,D,E,F){if (typeof(D)=='number') D=[this.DefaultIconsStrip,this.DefaultIconSize,D];var G=new FCKToolbarButtonUI(A,B,C,D,E,F);G._FCKToolbar=this;G.OnClick=FCKToolbar_OnItemClick;return this.AddItem(G);};function FCKToolbar_OnItemClick(A){var B=A._FCKToolbar;if (B.OnItemClick) B.OnItemClick(B,A);};FCKToolbar.prototype.AddSeparator=function(){this.AddItem(new FCKToolbarSeparator());};FCKToolbar.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var e=B.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=(FCKLang.Dir=='ltr'?'left':'right');e.dir=FCKLang.Dir;e.cellPadding=0;e.cellSpacing=0;var C=e.insertRow(-1);var D;if (!this.HideStart){D=C.insertCell(-1);D.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i<this.Items.length;i++){this.Items[i].Create(C.insertCell(-1));};if (!this.HideEnd){D=C.insertCell(-1);D.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';} +var FCKToolbarBreak=function(){};FCKToolbarBreak.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A).createElement('div');B.className='TB_Break';B.style.clear=FCKLang.Dir=='rtl'?'left':'right';A.appendChild(B);}; +function FCKToolbarSet_Create(A){var B;var C=A||FCKConfig.ToolbarLocation;switch (C){case 'In':document.getElementById('xToolbarRow').style.display='';B=new FCKToolbarSet(document);break;case 'None':B=new FCKToolbarSet(document);break;default:FCK.Events.AttachEvent('OnBlur',FCK_OnBlur);FCK.Events.AttachEvent('OnFocus',FCK_OnFocus);var D;var E=C.match(/^Out:(.+)\((\w+)\)$/);if (E){D=eval('parent.'+E[1]).document.getElementById(E[2]);}else{E=C.match(/^Out:(\w+)$/);if (E) D=parent.document.getElementById(E[1]);};if (!D){alert('Invalid value for "ToolbarLocation"');return arguments.callee('In');};B=D.__FCKToolbarSet;if (B) break;var F=FCKTools.GetElementDocument(D).createElement('iframe');F.src='javascript:void(0)';F.frameBorder=0;F.width='100%';F.height='10';D.appendChild(F);F.unselectable='on';var G=F.contentWindow.document;var H='';if (FCKBrowserInfo.IsSafari) H='<base href="'+window.document.location+'">';G.open();G.write('<html><head>'+H+'<script type="text/javascript"> var adjust = function() { window.frameElement.height = document.body.scrollHeight ; }; window.onresize = adjust; window.onload = function () {window.setTimeout( adjust, 0 );}</script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');G.close();FCKTools.AddEventListener(G,'contextmenu',FCKTools.CancelEvent);FCKTools.AppendStyleSheet(G,FCKConfig.SkinPath+'fck_editor.css');B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;FCK.AttachToOnSelectionChange(B.RefreshItemsState);return B;};function FCK_OnBlur(A){var B=A.ToolbarSet;if (B.CurrentInstance==A) B.Disable();};function FCK_OnFocus(A){var B=A.ToolbarSet;var C=A||FCK;B.CurrentInstance.FocusManager.RemoveWindow(B._IFrame.contentWindow);B.CurrentInstance=C;C.FocusManager.AddWindow(B._IFrame.contentWindow,true);B.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;FCKTools.AddEventListener(B,'click',FCKToolbarSet_Expand_OnClick);C.title=FCKLang.ToolbarCollapse;FCKTools.AddEventListener(C,'click',FCKToolbarSet_Collapse_OnClick);if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();C.style.display=FCKConfig.ToolbarCanCollapse?'':'none';if (FCKConfig.ToolbarCanCollapse) C.style.display='';else A.getElementById('xTBLeftBorder').style.display='';this.Toolbars=[];this.IsLoaded=false;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarSet_Cleanup);};function FCKToolbarSet_Expand_OnClick(){FCK.ToolbarSet.Expand();};function FCKToolbarSet_Collapse_OnClick(){FCK.ToolbarSet.Collapse();};FCKToolbarSet.prototype.Expand=function(){this._ChangeVisibility(false);};FCKToolbarSet.prototype.Collapse=function(){this._ChangeVisibility(true);};FCKToolbarSet.prototype._ChangeVisibility=function(A){this._Document.getElementById('xCollapsed').style.display=A?'':'none';this._Document.getElementById('xExpanded').style.display=A?'none':'';if (FCKBrowserInfo.IsGecko){FCKTools.RunFunction(window.onresize);}};FCKToolbarSet.prototype.Load=function(A){this.Name=A;this.Items=[];this.ItemsWysiwygOnly=[];this.ItemsContextSensitive=[];this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=[];for (var x=0;x<B.length;x++){var C=B[x];if (!C) continue;var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j<C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);this.Items.push(F);if (!F.SourceView) this.ItemsWysiwygOnly.push(F);if (F.ContextSensitive) this.ItemsContextSensitive.push(F);}}}};D.Create(this._TargetElement);this.Toolbars[this.Toolbars.length]=D;};FCKTools.DisableSelection(this._Document.getElementById('xCollapseHandle').parentNode);if (FCK.Status!=2) FCK.Events.AttachEvent('OnStatusChange',this.RefreshModeState);else this.RefreshModeState();this.IsLoaded=true;this.IsEnabled=true;FCKTools.RunFunction(this.OnLoad);};FCKToolbarSet.prototype.Enable=function(){if (this.IsEnabled) return;this.IsEnabled=true;var A=this.Items;for (var i=0;i<A.length;i++) A[i].RefreshState();};FCKToolbarSet.prototype.Disable=function(){if (!this.IsEnabled) return;this.IsEnabled=false;var A=this.Items;for (var i=0;i<A.length;i++) A[i].Disable();};FCKToolbarSet.prototype.RefreshModeState=function(A){if (FCK.Status!=2) return;var B=A?A.ToolbarSet:this;var C=B.ItemsWysiwygOnly;if (FCK.EditMode==0){for (var i=0;i<C.length;i++) C[i].Enable();B.RefreshItemsState(A);}else{B.RefreshItemsState(A);for (var j=0;j<C.length;j++) C[j].Disable();}};FCKToolbarSet.prototype.RefreshItemsState=function(A){var B=(A?A.ToolbarSet:this).ItemsContextSensitive;for (var i=0;i<B.length;i++) B[i].RefreshState();}; var FCKDialog={};FCKDialog.OpenDialog=function(A,B,C,D,E,F,G,H){var I={};I.Title=B;I.Page=C;I.Editor=window;I.CustomValue=F;var J=FCKConfig.BasePath+'fckdialog.html';this.Show(I,A,J,D,E,G,H);}; -FCKDialog.Show=function(A,B,C,D,E,F,G){if (!F) F=window;var H='help:no;scroll:no;status:no;resizable:'+(G?'yes':'no')+';dialogWidth:'+D+'px;dialogHeight:'+E+'px';FCKFocusManager.Lock();var I='B';try{I=F.showModalDialog(C,A,H);}catch(e) {};if ('B'===I) alert(FCKLang.DialogBlocked);FCKFocusManager.Unlock();}; +FCKDialog.Show=function(A,B,C,D,E,F,G){if (!F) F=window;var H='help:no;scroll:no;status:no;resizable:'+(G?'yes':'no')+';dialogWidth:'+D+'px;dialogHeight:'+E+'px';FCKFocusManager.Lock();var I='B';try{A.DialogName=B;I=F.showModalDialog(C,A,H);}catch(e) {};if ('B'===I) alert(FCKLang.DialogBlocked);FCKFocusManager.Unlock();}; var FCKMenuItem=function(A,B,C,D,E){this.Name=B;this.Label=C||B;this.IsDisabled=E;this.Icon=new FCKIcon(D);this.SubMenu=new FCKMenuBlockPanel();this.SubMenu.Parent=A;this.SubMenu.OnClick=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnClick,this);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D);};FCKMenuItem.prototype.AddSeparator=function(){this.SubMenu.AddSeparator();};FCKMenuItem.prototype.Create=function(A){var B=this.HasSubMenu;var C=FCKTools.GetElementDocument(A);var r=this.MainElement=A.insertRow(-1);r.className=this.IsDisabled?'MN_Item_Disabled':'MN_Item';if (!this.IsDisabled){FCKTools.AddEventListenerEx(r,'mouseover',FCKMenuItem_OnMouseOver,[this]);FCKTools.AddEventListenerEx(r,'click',FCKMenuItem_OnClick,[this]);if (!B) FCKTools.AddEventListenerEx(r,'mouseout',FCKMenuItem_OnMouseOut,[this]);};var D=r.insertCell(-1);D.className='MN_Icon';D.appendChild(this.Icon.CreateIconElement(C));D=r.insertCell(-1);D.className='MN_Label';D.noWrap=true;D.appendChild(C.createTextNode(this.Label));D=r.insertCell(-1);if (B){D.className='MN_Arrow';var E=D.appendChild(C.createElement('IMG'));E.src=FCK_IMAGES_PATH+'arrow_'+FCKLang.Dir+'.gif';E.width=4;E.height=7;this.SubMenu.Create();this.SubMenu.Panel.OnHide=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnHide,this);}};FCKMenuItem.prototype.Activate=function(){this.MainElement.className='MN_Item_Over';if (this.HasSubMenu){this.SubMenu.Show(this.MainElement.offsetWidth+2,-2,this.MainElement);};FCKTools.RunFunction(this.OnActivate,this);};FCKMenuItem.prototype.Deactivate=function(){this.MainElement.className='MN_Item';if (this.HasSubMenu) this.SubMenu.Hide();};function FCKMenuItem_SubMenu_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuItem_SubMenu_OnHide(A){A.Deactivate();};function FCKMenuItem_OnClick(A,B){if (B.HasSubMenu) B.Activate();else{B.Deactivate();FCKTools.RunFunction(B.OnClick,B,[B]);}};function FCKMenuItem_OnMouseOver(A,B){B.Activate();};function FCKMenuItem_OnMouseOut(A,B){B.Deactivate();};function FCKMenuItem_Cleanup(){this.MainElement=null;} -var FCKMenuBlock=function(){this._Items=[];};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D){var E=new FCKMenuItem(this,A,B,C,D);E.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);E.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(E);return E;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=[];var A=this._ItemsTable;if (A){while (A.rows.length>0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i<this._Items.length;i++) this._Items[i].Create(this._ItemsTable);};function FCKMenuBlock_Item_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuBlock_Item_OnActivate(A){var B=A._ActiveItem;if (B&&B!=this){if (!FCKBrowserInfo.IsIE&&B.HasSubMenu&&!this.HasSubMenu) A._Window.focus();B.Deactivate();};A._ActiveItem=this;};function FCKMenuBlock_Cleanup(){this._Window=null;this._ItemsTable=null;};var FCKMenuSeparator=function(){};FCKMenuSeparator.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var r=A.insertRow(-1);var C=r.insertCell(-1);C.className='MN_Separator MN_Icon';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';} +var FCKMenuBlock=function(){this._Items=[];};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D){var E=new FCKMenuItem(this,A,B,C,D);E.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);E.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(E);return E;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=[];var A=this._ItemsTable;if (A){while (A.rows.length>0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i<this._Items.length;i++) this._Items[i].Create(this._ItemsTable);};function FCKMenuBlock_Item_OnClick(A,B){if (B.Hide) B.Hide();FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuBlock_Item_OnActivate(A){var B=A._ActiveItem;if (B&&B!=this){if (!FCKBrowserInfo.IsIE&&B.HasSubMenu&&!this.HasSubMenu){A._Window.focus();A.Panel.HasFocus=true;};B.Deactivate();};A._ActiveItem=this;};function FCKMenuBlock_Cleanup(){this._Window=null;this._ItemsTable=null;};var FCKMenuSeparator=function(){};FCKMenuSeparator.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var r=A.insertRow(-1);var C=r.insertCell(-1);C.className='MN_Separator MN_Icon';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';} var FCKMenuBlockPanel=function(){FCKMenuBlock.call(this);};FCKMenuBlockPanel.prototype=new FCKMenuBlock();FCKMenuBlockPanel.prototype.Create=function(){var A=this.Panel=(this.Parent&&this.Parent.Panel?this.Parent.Panel.CreateChildPanel():new FCKPanel());A.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');FCKMenuBlock.prototype.Create.call(this,A.MainNode);};FCKMenuBlockPanel.prototype.Show=function(x,y,A){if (!this.Panel.CheckIsOpened()) this.Panel.Show(x,y,A);};FCKMenuBlockPanel.prototype.Hide=function(){if (this.Panel.CheckIsOpened()) this.Panel.Hide();} -var FCKContextMenu=function(A,B){var C=this._Panel=new FCKPanel(A,true);C.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');C.IsContextMenu=true;var D=this._MenuBlock=new FCKMenuBlock();D.Panel=C;D.OnClick=FCKTools.CreateEventListener(FCKContextMenu_MenuBlock_OnClick,this);this._Redraw=true;};FCKContextMenu.prototype.SetMouseClickWindow=function(A){if (!FCKBrowserInfo.IsIE){this._Document=A.document;this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D){var E=this._MenuBlock.AddItem(A,B,C,D);this._Redraw=true;return E;};FCKContextMenu.prototype.AddSeparator=function(){this._MenuBlock.AddSeparator();this._Redraw=true;};FCKContextMenu.prototype.RemoveAllItems=function(){this._MenuBlock.RemoveAllItems();this._Redraw=true;};FCKContextMenu.prototype.AttachToElement=function(A){if (FCKBrowserInfo.IsIE) FCKTools.AddEventListenerEx(A,'contextmenu',FCKContextMenu_AttachedElement_OnContextMenu,this);else A._FCKContextMenu=this;};function FCKContextMenu_Document_OnContextMenu(e){var A=e.target;while (A){if (A._FCKContextMenu){FCKTools.CancelEvent(e);FCKContextMenu_AttachedElement_OnContextMenu(e,A._FCKContextMenu,A);};A=A.parentNode;}};function FCKContextMenu_AttachedElement_OnContextMenu(A,B,C){var D=C||this;if (B.OnBeforeOpen) B.OnBeforeOpen.call(B,D);if (B._MenuBlock.Count()==0) return false;if (B._Redraw){B._MenuBlock.Create(B._Panel.MainNode);B._Redraw=false;};B._Panel.Show(A.pageX||A.screenX,A.pageY||A.screenY,A.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(A,B){B._Panel.Hide();FCKTools.RunFunction(B.OnItemClick,B,A);} -FCK.ContextMenu={};FCK.ContextMenu.Listeners=[];FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var A=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCKLang.Dir);A.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;A.OnItemClick=FCK_ContextMenu_OnItemClick;var B=FCK.ContextMenu;for (var i=0;i<FCKConfig.ContextMenu.length;i++) B.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(A){switch (A){case 'Generic':return {AddItems:function(menu,tag,tagName){menu.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==-1);menu.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==-1);menu.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==-1);}};case 'Table':return {AddItems:function(menu,tag,tagName){var B=(tagName=='TABLE');var C=(!B&&FCKSelection.HasAncestorNode('TABLE'));if (C){menu.AddSeparator();var D=menu.AddItem('Cell',FCKLang.CellCM);D.AddItem('TableInsertCell',FCKLang.InsertCell,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);D.AddItem('TableMergeCells',FCKLang.MergeCells,60);D.AddItem('TableSplitCell',FCKLang.SplitCell,61);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRow',FCKLang.InsertRow,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumn',FCKLang.InsertColumn,64);D.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (B||C){menu.AddSeparator();menu.AddItem('TableDelete',FCKLang.TableDelete);menu.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(menu,tag,tagName){var E=(tagName=='A'||FCKSelection.HasAncestorNode('A'));if (E||FCK.GetNamedCommandState('Unlink')!=-1){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0&&F.href.length==0);if (G) return;menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0);if (G||(tagName=='IMG'&&tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='hidden'){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i<C.length;i++) C[i].AddItems(B,A,sTagName);};function FCK_ContextMenu_OnItemClick(A){FCK.Focus();FCKCommands.GetCommand(A.Name).Execute();}; +var FCKContextMenu=function(A,B){this.CtrlDisable=false;var C=this._Panel=new FCKPanel(A);C.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');C.IsContextMenu=true;if (FCKBrowserInfo.IsGecko) C.Document.addEventListener('draggesture',function(e) {e.preventDefault();return false;},true);var D=this._MenuBlock=new FCKMenuBlock();D.Panel=C;D.OnClick=FCKTools.CreateEventListener(FCKContextMenu_MenuBlock_OnClick,this);this._Redraw=true;};FCKContextMenu.prototype.SetMouseClickWindow=function(A){if (!FCKBrowserInfo.IsIE){this._Document=A.document;if (FCKBrowserInfo.IsOpera&&!('oncontextmenu' in document.createElement('foo'))){this._Document.addEventListener('mousedown',FCKContextMenu_Document_OnMouseDown,false);this._Document.addEventListener('mouseup',FCKContextMenu_Document_OnMouseUp,false);};this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D){var E=this._MenuBlock.AddItem(A,B,C,D);this._Redraw=true;return E;};FCKContextMenu.prototype.AddSeparator=function(){this._MenuBlock.AddSeparator();this._Redraw=true;};FCKContextMenu.prototype.RemoveAllItems=function(){this._MenuBlock.RemoveAllItems();this._Redraw=true;};FCKContextMenu.prototype.AttachToElement=function(A){if (FCKBrowserInfo.IsIE) FCKTools.AddEventListenerEx(A,'contextmenu',FCKContextMenu_AttachedElement_OnContextMenu,this);else A._FCKContextMenu=this;};function FCKContextMenu_Document_OnContextMenu(e){var A=e.target;while (A){if (A._FCKContextMenu){if (A._FCKContextMenu.CtrlDisable&&(e.ctrlKey||e.metaKey)) return true;FCKTools.CancelEvent(e);FCKContextMenu_AttachedElement_OnContextMenu(e,A._FCKContextMenu,A);return false;};A=A.parentNode;};return true;};var FCKContextMenu_OverrideButton;function FCKContextMenu_Document_OnMouseDown(e){if(!e||e.button!=2) return false;var A=e.target;while (A){if (A._FCKContextMenu){if (A._FCKContextMenu.CtrlDisable&&(e.ctrlKey||e.metaKey)) return true;var B=FCKContextMenu_OverrideButton;if(!B){var C=e.target.ownerDocument;B=FCKContextMenu_OverrideButton=C.createElement('input');B.type='button';var D=C.createElement('p');C.body.appendChild(D);D.appendChild(B);};B.style.cssText='position:absolute;top:'+(e.clientY-2)+'px;left:'+(e.clientX-2)+'px;width:5px;height:5px;opacity:0.01';};A=A.parentNode;};return false;};function FCKContextMenu_Document_OnMouseUp(e){var A=FCKContextMenu_OverrideButton;if (A){var B=A.parentNode;B.parentNode.removeChild(B);FCKContextMenu_OverrideButton=undefined;if(e&&e.button==2){FCKContextMenu_Document_OnContextMenu(e);return false;}}};function FCKContextMenu_AttachedElement_OnContextMenu(A,B,C){if (B.CtrlDisable&&(A.ctrlKey||A.metaKey)) return true;var D=C||this;if (B.OnBeforeOpen) B.OnBeforeOpen.call(B,D);if (B._MenuBlock.Count()==0) return false;if (B._Redraw){B._MenuBlock.Create(B._Panel.MainNode);B._Redraw=false;};FCKTools.DisableSelection(B._Panel.Document.body);var x=0;var y=0;if (FCKBrowserInfo.IsIE){x=A.screenX;y=A.screenY;}else if (FCKBrowserInfo.IsSafari){x=A.clientX;y=A.clientY;}else{x=A.pageX;y=A.pageY;};B._Panel.Show(x,y,A.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(A,B){B._Panel.Hide();FCKTools.RunFunction(B.OnItemClick,B,A);}; +FCK.ContextMenu={};FCK.ContextMenu.Listeners=[];FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var A=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCKLang.Dir);A.CtrlDisable=FCKConfig.BrowserContextMenuOnCtrl;A.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;A.OnItemClick=FCK_ContextMenu_OnItemClick;var B=FCK.ContextMenu;for (var i=0;i<FCKConfig.ContextMenu.length;i++) B.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(A){switch (A){case 'Generic':return {AddItems:function(menu,tag,tagName){menu.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==-1);menu.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==-1);menu.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==-1);}};case 'Table':return {AddItems:function(menu,tag,tagName){var B=(tagName=='TABLE');var C=(!B&&FCKSelection.HasAncestorNode('TABLE'));if (C){menu.AddSeparator();var D=menu.AddItem('Cell',FCKLang.CellCM);D.AddItem('TableInsertCellBefore',FCKLang.InsertCellBefore,69);D.AddItem('TableInsertCellAfter',FCKLang.InsertCellAfter,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);if (FCKBrowserInfo.IsGecko) D.AddItem('TableMergeCells',FCKLang.MergeCells,60,FCKCommands.GetCommand('TableMergeCells').GetState()==-1);else{D.AddItem('TableMergeRight',FCKLang.MergeRight,60,FCKCommands.GetCommand('TableMergeRight').GetState()==-1);D.AddItem('TableMergeDown',FCKLang.MergeDown,60,FCKCommands.GetCommand('TableMergeDown').GetState()==-1);};D.AddItem('TableHorizontalSplitCell',FCKLang.HorizontalSplitCell,61,FCKCommands.GetCommand('TableHorizontalSplitCell').GetState()==-1);D.AddItem('TableVerticalSplitCell',FCKLang.VerticalSplitCell,61,FCKCommands.GetCommand('TableVerticalSplitCell').GetState()==-1);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57,FCKCommands.GetCommand('TableCellProp').GetState()==-1);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRowBefore',FCKLang.InsertRowBefore,70);D.AddItem('TableInsertRowAfter',FCKLang.InsertRowAfter,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumnBefore',FCKLang.InsertColumnBefore,71);D.AddItem('TableInsertColumnAfter',FCKLang.InsertColumnAfter,64);D.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (B||C){menu.AddSeparator();menu.AddItem('TableDelete',FCKLang.TableDelete);menu.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(menu,tag,tagName){var E=(tagName=='A'||FCKSelection.HasAncestorNode('A'));if (E||FCK.GetNamedCommandState('Unlink')!=-1){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0&&F.href.length==0);if (G) return;menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0);if (G||(tagName=='IMG'&&tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);menu.AddItem('AnchorDelete',FCKLang.AnchorDelete);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckinputhidden')){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i<C.length;i++) C[i].AddItems(B,A,sTagName);};function FCK_ContextMenu_OnItemClick(A){FCK.Focus();FCKCommands.GetCommand(A.Name).Execute();}; var FCKPlugin=function(A,B,C){this.Name=A;this.BasePath=C?C:FCKConfig.PluginsPath;this.Path=this.BasePath+A+'/';if (!B||B.length==0) this.AvailableLangs=[];else this.AvailableLangs=B.split(',');};FCKPlugin.prototype.Load=function(){if (this.AvailableLangs.length>0){var A;if (this.AvailableLangs.IndexOf(FCKLanguageManager.ActiveLanguage.Code)>=0) A=FCKLanguageManager.ActiveLanguage.Code;else A=this.AvailableLangs[0];LoadScript(this.Path+'lang/'+A+'.js');};LoadScript(this.Path+'fckplugin.js');} var FCKPlugins=FCK.Plugins={};FCKPlugins.ItemsCount=0;FCKPlugins.Items={};FCKPlugins.Load=function(){var A=FCKPlugins.Items;for (var i=0;i<FCKConfig.Plugins.Items.length;i++){var B=FCKConfig.Plugins.Items[i];var C=A[B[0]]=new FCKPlugin(B[0],B[1],B[2]);FCKPlugins.ItemsCount++;};for (var s in A) A[s].Load();FCKPlugins.Load=null;} diff --git a/editor/editor/lang/_translationstatus.txt b/editor/editor/lang/_translationstatus.txt @@ -1,80 +1,76 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: _translationstatus.txt - * Translations Status. - * - * File Authors: - * Frederico Caldeira Knabben (fredck@fckeditor.net) + * + * Translations Status. */ -af.js Found: 402 Missing: 0 -ar.js Found: 402 Missing: 0 -bg.js Found: 379 Missing: 23 -bn.js Found: 387 Missing: 15 -bs.js Found: 231 Missing: 171 -ca.js Found: 402 Missing: 0 -cs.js Found: 387 Missing: 15 -da.js Found: 387 Missing: 15 -de.js Found: 402 Missing: 0 -el.js Found: 402 Missing: 0 -en-au.js Found: 402 Missing: 0 -en-ca.js Found: 402 Missing: 0 -en-uk.js Found: 402 Missing: 0 -eo.js Found: 351 Missing: 51 -es.js Found: 387 Missing: 15 -et.js Found: 387 Missing: 15 -eu.js Found: 387 Missing: 15 -fa.js Found: 402 Missing: 0 -fi.js Found: 387 Missing: 15 -fo.js Found: 402 Missing: 0 -fr.js Found: 402 Missing: 0 -gl.js Found: 387 Missing: 15 -he.js Found: 402 Missing: 0 -hi.js Found: 402 Missing: 0 -hr.js Found: 402 Missing: 0 -hu.js Found: 402 Missing: 0 -it.js Found: 402 Missing: 0 -ja.js Found: 402 Missing: 0 -km.js Found: 376 Missing: 26 -ko.js Found: 374 Missing: 28 -lt.js Found: 382 Missing: 20 -lv.js Found: 387 Missing: 15 -mn.js Found: 231 Missing: 171 -ms.js Found: 357 Missing: 45 -nb.js Found: 402 Missing: 0 -nl.js Found: 402 Missing: 0 -no.js Found: 402 Missing: 0 -pl.js Found: 387 Missing: 15 -pt-br.js Found: 402 Missing: 0 -pt.js Found: 387 Missing: 15 -ro.js Found: 401 Missing: 1 -ru.js Found: 402 Missing: 0 -sk.js Found: 402 Missing: 0 -sl.js Found: 379 Missing: 23 -sr-latn.js Found: 374 Missing: 28 -sr.js Found: 374 Missing: 28 -sv.js Found: 382 Missing: 20 -th.js Found: 351 Missing: 51 -tr.js Found: 402 Missing: 0 -uk.js Found: 402 Missing: 0 -vi.js Found: 402 Missing: 0 -zh-cn.js Found: 402 Missing: 0 -zh.js Found: 402 Missing: 0 +af.js Found: 397 Missing: 15 +ar.js Found: 412 Missing: 0 +bg.js Found: 374 Missing: 38 +bn.js Found: 381 Missing: 31 +bs.js Found: 226 Missing: 186 +ca.js Found: 412 Missing: 0 +cs.js Found: 397 Missing: 15 +da.js Found: 382 Missing: 30 +de.js Found: 412 Missing: 0 +el.js Found: 397 Missing: 15 +en-au.js Found: 412 Missing: 0 +en-ca.js Found: 412 Missing: 0 +en-uk.js Found: 412 Missing: 0 +eo.js Found: 346 Missing: 66 +es.js Found: 412 Missing: 0 +et.js Found: 412 Missing: 0 +eu.js Found: 382 Missing: 30 +fa.js Found: 398 Missing: 14 +fi.js Found: 412 Missing: 0 +fo.js Found: 397 Missing: 15 +fr.js Found: 412 Missing: 0 +gl.js Found: 382 Missing: 30 +he.js Found: 412 Missing: 0 +hi.js Found: 412 Missing: 0 +hr.js Found: 412 Missing: 0 +hu.js Found: 412 Missing: 0 +it.js Found: 397 Missing: 15 +ja.js Found: 412 Missing: 0 +km.js Found: 371 Missing: 41 +ko.js Found: 369 Missing: 43 +lt.js Found: 377 Missing: 35 +lv.js Found: 382 Missing: 30 +mn.js Found: 226 Missing: 186 +ms.js Found: 352 Missing: 60 +nb.js Found: 396 Missing: 16 +nl.js Found: 412 Missing: 0 +no.js Found: 396 Missing: 16 +pl.js Found: 412 Missing: 0 +pt-br.js Found: 397 Missing: 15 +pt.js Found: 382 Missing: 30 +ro.js Found: 411 Missing: 1 +ru.js Found: 397 Missing: 15 +sk.js Found: 397 Missing: 15 +sl.js Found: 412 Missing: 0 +sr-latn.js Found: 369 Missing: 43 +sr.js Found: 369 Missing: 43 +sv.js Found: 397 Missing: 15 +th.js Found: 394 Missing: 18 +tr.js Found: 397 Missing: 15 +uk.js Found: 398 Missing: 14 +vi.js Found: 397 Missing: 15 +zh-cn.js Found: 412 Missing: 0 +zh.js Found: 412 Missing: 0 diff --git a/editor/editor/lang/af.js b/editor/editor/lang/af.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: af.js - * Afrikaans language file. - * - * File Authors: - * Willem Petrus Botha (w@adesso.za.net) + * + * Afrikaans language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Skakel", InsertLink : "Skakel byvoeg/verander", RemoveLink : "Skakel verweider", Anchor : "Plekhouer byvoeg/verander", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Beeld", InsertImage : "Beeld byvoeg/verander", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "Regs rig", BlockJustify : "Blok paradeer", DecreaseIndent : "Paradeering verkort", IncreaseIndent : "Paradeering verleng", +Blockquote : "Blockquote", //MISSING Undo : "Ont-skep", Redo : "Her-skep", NumberedListLbl : "Genommerde lys", @@ -107,20 +105,27 @@ SelectionField : "Opklapbare keuse strook", ImageButton : "Beeld knop", FitWindow : "Maksimaliseer venster grote", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Verander skakel", CellCM : "Cell", RowCM : "Ry", ColumnCM : "Kolom", -InsertRow : "Ry byvoeg", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Ry verweider", -InsertColumn : "Kolom byvoeg", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Kolom verweider", -InsertCell : "Cell byvoeg", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Cell verweider", MergeCells : "Cell verenig", -SplitCell : "Cell verdeel", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Tabel verweider", CellProperties : "Cell eienskappe", TableProperties : "Tabel eienskappe", @@ -138,7 +143,7 @@ SelectionFieldProp : "Opklapbare keuse strook eienskappe", TextareaProp : "Karakter area eienskappe", FormProp : "Form eienskappe", -FontFormats : "Normaal;Geformateerd;Adres;Opskrif 1;Opskrif 2;Opskrif 3;Opskrif 4;Opskrif 5;Opskrif 6;Normaal (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normaal;Geformateerd;Adres;Opskrif 1;Opskrif 2;Opskrif 3;Opskrif 4;Opskrif 5;Opskrif 6;Normaal (DIV)", // Alerts and Messages ProcessingXHTML : "XHTML word verarbeit. U geduld asseblief...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Kies 'n plekhouer", DlgLnkAnchorByName : "Volgens plekhouer naam", DlgLnkAnchorById : "Volgens element Id", -DlgLnkNoAnchors : "<Geen plekhouers beskikbaar in dokument>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Geen plekhouers beskikbaar in dokument}", DlgLnkEMail : "E-Mail Adres", DlgLnkEMailSubject : "Boodskap Opskrif", DlgLnkEMailBody : "Boodskap Inhoud", @@ -326,6 +331,9 @@ DlgCellBackColor : "Agtergrond Kleur", DlgCellBorderColor : "Kant Kleur", DlgCellBtnSelect : "Keuse...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Vind", DlgFindFindBtn : "Vind", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Vervang alles", DlgReplaceWordChk : "Vergelyk komplete woord", // Paste Operations / Dialog -PasteErrorPaste : "U browser se sekuriteit instelling behinder die byvoeg aksie. Gebruik asseblief die sleutel kombenasie(Ctrl+V).", PasteErrorCut : "U browser se sekuriteit instelling behinder die uitsny aksie. Gebruik asseblief die sleutel kombenasie(Ctrl+X).", PasteErrorCopy : "U browser se sekuriteit instelling behinder die kopieerings aksie. Gebruik asseblief die sleutel kombenasie(Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Voeg slegs karakters by", PasteFromWord : "Byvoeging uit Word", DlgPasteMsg2 : "Voeg asseblief die inhoud in die gegewe box by met sleutel kombenasie(<STRONG>Ctrl+V</STRONG>) en druk <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Ignoreer karakter soort defenisies", DlgPasteRemoveStyles : "Verweider Styl defenisies", DlgPasteCleanBox : "Maak Box Skoon", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Blaai Informasie deur", DlgAboutLicenseTab : "Lesensie", DlgAboutVersion : "weergawe", DlgAboutInfo : "Vir meer informasie gaan na " -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/ar.js b/editor/editor/lang/ar.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: ar.js - * Arabic language file. - * - * File Authors: - * Abdul-Aziz Abdul-Kareem Al-Oraij (http://aziz.oraij.com) - * Abu Faisal (http://www.24at24.com) + * + * Arabic language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "رابط", InsertLink : "إدراج/تحرير رابط", RemoveLink : "إزالة رابط", Anchor : "إدراج/تحرير إشارة مرجعية", +AnchorDelete : "إزالة إشارة مرجعية", InsertImageLbl : "صورة", InsertImage : "إدراج/تحرير صورة", InsertFlashLbl : "Ùلاش", @@ -75,6 +71,7 @@ RightJustify : "محاذاة إلى اليمين", BlockJustify : "ضبط", DecreaseIndent : "إنقاص المساÙØ© البادئة", IncreaseIndent : "زيادة المساÙØ© البادئة", +Blockquote : "اقتباس", Undo : "تراجع", Redo : "إعادة", NumberedListLbl : "تعداد رقمي", @@ -108,20 +105,27 @@ SelectionField : "قائمة منسدلة", ImageButton : "زر صورة", FitWindow : "تكبير حجم المحرر", +ShowBlocks : "مخطط تÙصيلي", // Context Menu EditLink : "تحرير رابط", CellCM : "خلية", RowCM : "صÙ", ColumnCM : "عمود", -InsertRow : "إدراج صÙ", +InsertRowAfter : "إدراج ص٠بعد", +InsertRowBefore : "إدراج ص٠قبل", DeleteRows : "حذ٠صÙÙˆÙ", -InsertColumn : "إدراج عمود", +InsertColumnAfter : "إدراج عمود بعد", +InsertColumnBefore : "إدراج عمود قبل", DeleteColumns : "حذ٠أعمدة", -InsertCell : "إدراج خلية", +InsertCellAfter : "إدراج خلية بعد", +InsertCellBefore : "إدراج خلية قبل", DeleteCells : "حذ٠خلايا", MergeCells : "دمج خلايا", -SplitCell : "تقسيم خلية", +MergeRight : "دمج لليمين", +MergeDown : "دمج للأسÙÙ„", +HorizontalSplitCell : "تقسيم الخلية Ø£Ùقياً", +VerticalSplitCell : "تقسيم الخلية عمودياً", TableDelete : "حذ٠الجدول", CellProperties : "خصائص الخلية", TableProperties : "خصائص الجدول", @@ -139,7 +143,7 @@ SelectionFieldProp : "خصائص القائمة المنسدلة", TextareaProp : "خصائص ناحية النص", FormProp : "خصائص النموذج", -FontFormats : "عادي;منسّق;دوس;العنوان 1;العنوان 2;العنوان 3;العنوان 4;العنوان 5;العنوان 6", //REVIEW : Check _getfontformat.html +FontFormats : "عادي;منسّق;دوس;العنوان 1;العنوان 2;العنوان 3;العنوان 4;العنوان 5;العنوان 6", // Alerts and Messages ProcessingXHTML : "إنتظر قليلاً ريثما تتم معالَجة†XHTML. لن يستغرق طويلاً...", @@ -234,7 +238,7 @@ DlgLnkURL : "الموقع", DlgLnkAnchorSel : "اختر علامة مرجعية", DlgLnkAnchorByName : "حسب اسم العلامة", DlgLnkAnchorById : "حسب تعري٠العنصر", -DlgLnkNoAnchors : "<لا يوجد علامات مرجعية ÙÙŠ هذا المستند>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(لا يوجد علامات مرجعية ÙÙŠ هذا المستند)", DlgLnkEMail : "عنوان بريد إلكتروني", DlgLnkEMailSubject : "موضوع الرسالة", DlgLnkEMailBody : "محتوى الرسالة", @@ -327,6 +331,9 @@ DlgCellBackColor : "لون الخلÙية", DlgCellBorderColor : "لون الحدود", DlgCellBtnSelect : "حدّد...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "بحث واستبدال", + // Find Dialog DlgFindTitle : "بحث", DlgFindFindBtn : "ابحث", @@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "إستبدال الكل", DlgReplaceWordChk : "الكلمة بالكامل Ùقط", // Paste Operations / Dialog -PasteErrorPaste : "الإعدادات الأمنية للمتصÙØ­ الذي تستخدمه تمنع اللصق التلقائي. Ùضلاً إستخدم لوحة المÙاتيح Ù„Ùعل ذلك (Ctrl+V).", PasteErrorCut : "الإعدادات الأمنية للمتصÙØ­ الذي تستخدمه تمنع القص التلقائي. Ùضلاً إستخدم لوحة المÙاتيح Ù„Ùعل ذلك (Ctrl+X).", PasteErrorCopy : "الإعدادات الأمنية للمتصÙØ­ الذي تستخدمه تمنع النسخ التلقائي. Ùضلاً إستخدم لوحة المÙاتيح Ù„Ùعل ذلك (Ctrl+C).", @@ -350,6 +356,7 @@ PasteAsText : "لصق كنص بسيط", PasteFromWord : "لصق من وورد", DlgPasteMsg2 : "الصق داخل الصندوق بإستخدام زرّي (<STRONG>Ctrl+V</STRONG>) ÙÙŠ لوحة المÙاتيح، ثم اضغط زر <STRONG>مواÙÙ‚</STRONG>.", +DlgPasteSec : "نظراً لإعدادات الأمان الخاصة بمتصÙحك، لن يتمكن هذا المحرر من الوصول لمحتوى حاÙظتك، لذا وجب عليك لصق المحتوى مرة أخرى ÙÙŠ هذه الناÙذة.", DlgPasteIgnoreFont : "تجاهل تعريÙات أسماء الخطوط", DlgPasteRemoveStyles : "إزالة تعريÙات الأنماط", DlgPasteCleanBox : "نظّ٠محتوى الصندوق", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "معلومات متصÙحك", DlgAboutLicenseTab : "الترخيص", DlgAboutVersion : "الإصدار", DlgAboutInfo : "لمزيد من المعلومات تÙضل بزيارة" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/bg.js b/editor/editor/lang/bg.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: bg.js - * Bulgarian language file. - * - * File Authors: - * Miroslav Ivanov (miro@primal-chaos.net) + * + * Bulgarian language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Връзка", InsertLink : "Добави/Редактирай връзка", RemoveLink : "Изтрий връзка", Anchor : "Добави/Редактирай котва", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Изображение", InsertImage : "Добави/Редактирай изображение", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "ПодравнÑване в дÑÑно", BlockJustify : "ДвуÑтранно подравнÑване", DecreaseIndent : "Ðамали отÑтъпа", IncreaseIndent : "Увеличи отÑтъпа", +Blockquote : "Blockquote", //MISSING Undo : "Отмени", Redo : "Повтори", NumberedListLbl : "Ðумериран ÑпиÑък", @@ -107,20 +105,27 @@ SelectionField : "Падащо меню Ñ Ð¾Ð¿Ñ†Ð¸Ð¸", ImageButton : "Бутон-изображение", FitWindow : "Maximize the editor size", //MISSING +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Редактирай връзка", CellCM : "Cell", //MISSING RowCM : "Row", //MISSING ColumnCM : "Column", //MISSING -InsertRow : "Добави ред", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Изтрий редовете", -InsertColumn : "Добави колона", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Изтрий колоните", -InsertCell : "Добави клетка", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Изтрий клетките", MergeCells : "Обедини клетките", -SplitCell : "Раздели клетката", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Изтрий таблицата", CellProperties : "Параметри на клетката", TableProperties : "Параметри на таблицата", @@ -138,7 +143,7 @@ SelectionFieldProp : "Параметри на падащото меню Ñ Ð¾Ð¿Ñ TextareaProp : "Параметри на текÑтовата облаÑÑ‚", FormProp : "Параметри на формулÑра", -FontFormats : "Ðормален;Форматиран;ÐдреÑ;Заглавие 1;Заглавие 2;Заглавие 3;Заглавие 4;Заглавие 5;Заглавие 6;Параграф (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Ðормален;Форматиран;ÐдреÑ;Заглавие 1;Заглавие 2;Заглавие 3;Заглавие 4;Заглавие 5;Заглавие 6;Параграф (DIV)", // Alerts and Messages ProcessingXHTML : "Обработка на XHTML. ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ...", @@ -233,7 +238,7 @@ DlgLnkURL : "Пълен път (URL)", DlgLnkAnchorSel : "Изберете котва", DlgLnkAnchorByName : "По име на котвата", DlgLnkAnchorById : "По идентификатор на елемент", -DlgLnkNoAnchors : "<ÐÑма котви в Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(ÐÑма котви в Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚)", DlgLnkEMail : "ÐÐ´Ñ€ÐµÑ Ð·Ð° е-поща", DlgLnkEMailSubject : "Тема на пиÑмото", DlgLnkEMailBody : "ТекÑÑ‚ на пиÑмото", @@ -326,6 +331,9 @@ DlgCellBackColor : "фонов цвÑÑ‚", DlgCellBorderColor : "цвÑÑ‚ на рамката", DlgCellBtnSelect : "Изберете...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "ТърÑи", DlgFindFindBtn : "ТърÑи", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "ЗамеÑти вÑички", DlgReplaceWordChk : "ТърÑи Ñъщата дума", // Paste Operations / Dialog -PasteErrorPaste : "ÐаÑтройките за ÑигурноÑÑ‚ на Ð²Ð°ÑˆÐ¸Ñ Ð±Ñ€Ð°Ð·ÑƒÑŠÑ€ не разрешават на редактора да изпълни вмъкването. За целта използвайте клавиатурата (Ctrl+V).", PasteErrorCut : "ÐаÑтройките за ÑигурноÑÑ‚ на Ð²Ð°ÑˆÐ¸Ñ Ð±Ñ€Ð°Ð·ÑƒÑŠÑ€ не разрешават на редактора да изпълни изрÑзването. За целта използвайте клавиатурата (Ctrl+X).", PasteErrorCopy : "ÐаÑтройките за ÑигурноÑÑ‚ на Ð²Ð°ÑˆÐ¸Ñ Ð±Ñ€Ð°Ð·ÑƒÑŠÑ€ не разрешават на редактора да изпълни запаметÑването. За целта използвайте клавиатурата (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Вмъкни като чиÑÑ‚ текÑÑ‚", PasteFromWord : "Вмъкни от MS Word", DlgPasteMsg2 : "Вмъкнете тук Ñъдъжанието Ñ ÐºÐ»Ð°Ð²Ð¸Ð°Ñ‚ÑƒÐ°Ñ€Ð°Ñ‚Ð° (<STRONG>Ctrl+V</STRONG>) и натиÑнете <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Игнорирай шрифтовите дефиниции", DlgPasteRemoveStyles : "Изтрий Ñтиловите дефиниции", DlgPasteCleanBox : "ИзчиÑти", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° браузъра", DlgAboutLicenseTab : "License", //MISSING DlgAboutVersion : "верÑиÑ", DlgAboutInfo : "За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ñетете" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/bn.js b/editor/editor/lang/bn.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: bn.js - * Bengali/Bangla language file. - * - * File Authors: - * Richard Walledge (darkdoctrine@hotmail.com) - * S M Mahbub Murshed (udvranto@yahoo.com) + * + * Bengali/Bangla language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "লিংকের যà§à¦•à§à¦¤ করার লেবেঠInsertLink : "লিংক যà§à¦•à§à¦¤ কর", RemoveLink : "লিংক সরাও", Anchor : "নোঙà§à¦—র", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "ছবির লেবেল যà§à¦•à§à¦¤ কর", InsertImage : "ছবি যà§à¦•à§à¦¤ কর", InsertFlashLbl : "ফà§à¦²à¦¾à¦¶ লেবেল যà§à¦•à§à¦¤ কর", @@ -75,6 +71,7 @@ RightJustify : "ডান দিকে ঘেà¦à¦·à¦¾", BlockJustify : "বà§à¦²à¦• জাসà§à¦Ÿà¦¿à¦«à¦¾à¦‡", DecreaseIndent : "ইনডেনà§à¦Ÿ কমাও", IncreaseIndent : "ইনডেনà§à¦Ÿ বাড়াও", +Blockquote : "Blockquote", //MISSING Undo : "আনডà§", Redo : "রি-ডà§", NumberedListLbl : "সাংখà§à¦¯à¦¿à¦• লিসà§à¦Ÿà§‡à¦° লেবেল", @@ -108,20 +105,27 @@ SelectionField : "বাছাই ফীলà§à¦¡", ImageButton : "ছবির বাটন", FitWindow : "উইনà§à¦¡à§‹ ফিট কর", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "লিংক সমà§à¦ªà¦¾à¦¦à¦¨", CellCM : "সেল", RowCM : "রো", ColumnCM : "কলাম", -InsertRow : "রো যà§à¦•à§à¦¤ কর", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "রো মà§à¦›à§‡ দাও", -InsertColumn : "কলাম যà§à¦•à§à¦¤ কর", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "কলাম মà§à¦›à§‡ দাও", -InsertCell : "সেল যà§à¦•à§à¦¤ কর", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "সেল মà§à¦›à§‡ দাও", MergeCells : "সেল জোড়া দাও", -SplitCell : "সেল আলাদা কর", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "টেবিল ডিলীট কর", CellProperties : "সেলের পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿à¦œ", TableProperties : "টেবিল পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿", @@ -139,7 +143,7 @@ SelectionFieldProp : "বাছাই ফীলà§à¦¡ পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦ TextareaProp : "টেকà§à¦¸à¦Ÿ à¦à¦°à¦¿à§Ÿà¦¾ পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿", FormProp : "ফরà§à¦® পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿", -FontFormats : "সাধারণ;ফরà§à¦®à§‡à¦Ÿà§‡à¦¡;ঠিকানা;শীরà§à¦·à¦• ১;শীরà§à¦·à¦• ২;শীরà§à¦·à¦• ৩;শীরà§à¦·à¦• ৪;শীরà§à¦·à¦• ৫;শীরà§à¦·à¦• ৬;শীরà§à¦·à¦• (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "সাধারণ;ফরà§à¦®à§‡à¦Ÿà§‡à¦¡;ঠিকানা;শীরà§à¦·à¦• ১;শীরà§à¦·à¦• ২;শীরà§à¦·à¦• ৩;শীরà§à¦·à¦• ৪;শীরà§à¦·à¦• ৫;শীরà§à¦·à¦• ৬;শীরà§à¦·à¦• (DIV)", // Alerts and Messages ProcessingXHTML : "XHTML পà§à¦°à¦¸à§‡à¦¸ করা হচà§à¦›à§‡", @@ -234,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "নোঙর বাছাই", DlgLnkAnchorByName : "নোঙরের নাম দিয়ে", DlgLnkAnchorById : "নোঙরের আইডি দিয়ে", -DlgLnkNoAnchors : "<ডকà§à¦®à§‡à¦¨à§à¦Ÿà§‡ আর কোন নোঙর নেই>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(No anchors available in the document)", //MISSING DlgLnkEMail : "ইমেইল ঠিকানা", DlgLnkEMailSubject : "মেসেজের বিষয়", DlgLnkEMailBody : "মেসেজের দেহ", @@ -327,6 +331,9 @@ DlgCellBackColor : "বà§à¦¯à¦¾à¦•à¦—à§à¦°à¦¾à¦‰à¦¨à§à¦¡ রং", DlgCellBorderColor : "বরà§à¦¡à¦¾à¦°à§‡à¦° রং", DlgCellBtnSelect : "বাছাই কর", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "খোà¦à¦œà§‹", DlgFindFindBtn : "খোà¦à¦œà§‹", @@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "সব বদলে দাও", DlgReplaceWordChk : "পà§à¦°à¦¾ শবà§à¦¦ মেলাও", // Paste Operations / Dialog -PasteErrorPaste : "আপনার বà§à¦°à¦¾à¦‰à¦œà¦¾à¦°à§‡à¦° সà§à¦°à¦•à§à¦·à¦¾ সেটিংস à¦à¦¡à¦¿à¦Ÿà¦°à¦•à§‡ অটোমেটিক পেসà§à¦Ÿ করার অনà§à¦®à¦¤à¦¿ দেয়নি। দয়া করে à¦à¦‡ কাজের জনà§à¦¯ কিবোরà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨ (Ctrl+V)।", PasteErrorCut : "আপনার বà§à¦°à¦¾à¦‰à¦œà¦¾à¦°à§‡à¦° সà§à¦°à¦•à§à¦·à¦¾ সেটিংস à¦à¦¡à¦¿à¦Ÿà¦°à¦•à§‡ অটোমেটিক কাট করার অনà§à¦®à¦¤à¦¿ দেয়নি। দয়া করে à¦à¦‡ কাজের জনà§à¦¯ কিবোরà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨ (Ctrl+X)।", PasteErrorCopy : "আপনার বà§à¦°à¦¾à¦‰à¦œà¦¾à¦°à§‡à¦° সà§à¦°à¦•à§à¦·à¦¾ সেটিংস à¦à¦¡à¦¿à¦Ÿà¦°à¦•à§‡ অটোমেটিক কপি করার অনà§à¦®à¦¤à¦¿ দেয়নি। দয়া করে à¦à¦‡ কাজের জনà§à¦¯ কিবোরà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨ (Ctrl+C)।", @@ -350,6 +356,7 @@ PasteAsText : "সাদা টেকà§à¦¸à¦Ÿ হিসেবে পেসà§à PasteFromWord : "ওয়ারà§à¦¡ থেকে পেসà§à¦Ÿ কর", DlgPasteMsg2 : "অনà§à¦—à§à¦°à¦¹ করে নীচের বাকà§à¦¸à§‡ কিবোরà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে (<STRONG>Ctrl+V</STRONG>) পেসà§à¦Ÿ করà§à¦¨ à¦à¦¬à¦‚ <STRONG>OK</STRONG> চাপ দিন", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "ফনà§à¦Ÿ ফেস ডেফিনেশন ইগনোর করà§à¦¨", DlgPasteRemoveStyles : "সà§à¦Ÿà¦¾à¦‡à¦² ডেফিনেশন সরিয়ে দিন", DlgPasteCleanBox : "বাকà§à¦¸ পরিষà§à¦•à¦¾à¦° করà§à¦¨", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "বà§à¦°à¦¾à¦‰à¦œà¦¾à¦°à§‡à¦° বà§à¦¯à¦¾à¦ªà¦¾à¦°à§ DlgAboutLicenseTab : "লাইসেনà§à¦¸", DlgAboutVersion : "ভারà§à¦¸à¦¨", DlgAboutInfo : "আরও তথà§à¦¯à§‡à¦° জনà§à¦¯ যান" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/bs.js b/editor/editor/lang/bs.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: bs.js - * Bosnian language file. - * - * File Authors: - * Muris Trax (www.elektronika.ba) + * + * Bosnian language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Link", InsertLink : "Ubaci/Izmjeni link", RemoveLink : "IzbriÅ¡i link", Anchor : "Insert/Edit Anchor", //MISSING +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Slika", InsertImage : "Ubaci/Izmjeni sliku", InsertFlashLbl : "Flash", //MISSING @@ -74,6 +71,7 @@ RightJustify : "Desno poravnanje", BlockJustify : "Puno poravnanje", DecreaseIndent : "Smanji uvod", IncreaseIndent : "Poveæaj uvod", +Blockquote : "Blockquote", //MISSING Undo : "Vrati", Redo : "Ponovi", NumberedListLbl : "Numerisana lista", @@ -107,20 +105,27 @@ SelectionField : "Selection Field", //MISSING ImageButton : "Image Button", //MISSING FitWindow : "Maximize the editor size", //MISSING +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Izmjeni link", CellCM : "Cell", //MISSING RowCM : "Row", //MISSING ColumnCM : "Column", //MISSING -InsertRow : "Ubaci red", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "BriÅ¡i redove", -InsertColumn : "Ubaci kolonu", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "BriÅ¡i kolone", -InsertCell : "Ubaci æeliju", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "BriÅ¡i æelije", MergeCells : "Spoji æelije", -SplitCell : "Razdvoji æeliju", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Delete Table", //MISSING CellProperties : "Svojstva æelije", TableProperties : "Svojstva tabele", @@ -138,7 +143,7 @@ SelectionFieldProp : "Selection Field Properties", //MISSING TextareaProp : "Textarea Properties", //MISSING FormProp : "Form Properties", //MISSING -FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6", // Alerts and Messages ProcessingXHTML : "Procesiram XHTML. Molim saèekajte...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Izaberi sidro", DlgLnkAnchorByName : "Po nazivu sidra", DlgLnkAnchorById : "Po Id-u elementa", -DlgLnkNoAnchors : "<Nema dostupnih sidra na stranici>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Nema dostupnih sidra na stranici)", DlgLnkEMail : "E-Mail Adresa", DlgLnkEMailSubject : "Subjekt poruke", DlgLnkEMailBody : "Poruka", @@ -326,6 +331,9 @@ DlgCellBackColor : "Boja pozadine", DlgCellBorderColor : "Boja okvira", DlgCellBtnSelect : "Selektuj...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Naði", DlgFindFindBtn : "Naði", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Zamjeni sve", DlgReplaceWordChk : "Uporeðuj samo cijelu rijeè", // Paste Operations / Dialog -PasteErrorPaste : "Sigurnosne postavke vaÅ¡eg pretraživaèa ne dozvoljavaju operacije automatskog lijepljenja. Molimo koristite kraticu na tastaturi (Ctrl+V).", PasteErrorCut : "Sigurnosne postavke vaÅ¡eg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl+X).", PasteErrorCopy : "Sigurnosne postavke VaÅ¡eg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Zalijepi kao obièan tekst", PasteFromWord : "Zalijepi iz Word-a", DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.", //MISSING +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Ignore Font Face definitions", //MISSING DlgPasteRemoveStyles : "Remove Styles definitions", //MISSING DlgPasteCleanBox : "Clean Up Box", //MISSING @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Browser Info", //MISSING DlgAboutLicenseTab : "License", //MISSING DlgAboutVersion : "verzija", DlgAboutInfo : "Za viÅ¡e informacija posjetite" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/ca.js b/editor/editor/lang/ca.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: ca.js - * Catalan language file. - * - * File Authors: - * Jordi Cerdan (nan@myp.ad) - * Marc Folch (mcus21@gmail.com) + * + * Catalan language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "Enllaç", InsertLink : "Insereix/Edita enllaç", RemoveLink : "Elimina enllaç", Anchor : "Insereix/Edita àncora", +AnchorDelete : "Elimina àncora", InsertImageLbl : "Imatge", InsertImage : "Insereix/Edita imatge", InsertFlashLbl : "Flash", @@ -75,6 +71,7 @@ RightJustify : "Aliniament dreta", BlockJustify : "Justifica", DecreaseIndent : "Sagna el text", IncreaseIndent : "Treu el sagnat del text", +Blockquote : "Bloc de cita", Undo : "Desfés", Redo : "Refés", NumberedListLbl : "Llista numerada", @@ -108,20 +105,27 @@ SelectionField : "Camp de selecció", ImageButton : "Botó d'imatge", FitWindow : "Maximiza la mida de l'editor", +ShowBlocks : "Mostra els blocs", // Context Menu EditLink : "Edita l'enllaç", CellCM : "Cel·la", RowCM : "Fila", ColumnCM : "Columna", -InsertRow : "Insereix una fila", +InsertRowAfter : "Insereix fila darrera", +InsertRowBefore : "Insereix fila abans de", DeleteRows : "Suprimeix una fila", -InsertColumn : "Afegeix una columna", +InsertColumnAfter : "Insereix columna darrera", +InsertColumnBefore : "Insereix columna abans de", DeleteColumns : "Suprimeix una columna", -InsertCell : "Insereix una cel·la", +InsertCellAfter : "Insereix cel·la darrera", +InsertCellBefore : "Insereix cel·la abans de", DeleteCells : "Suprimeix les cel·les", MergeCells : "Fusiona les cel·les", -SplitCell : "Separa les cel·les", +MergeRight : "Fusiona cap a la dreta", +MergeDown : "Fusiona cap avall", +HorizontalSplitCell : "Divideix la cel·la horitzontalment", +VerticalSplitCell : "Divideix la cel·la verticalment", TableDelete : "Suprimeix la taula", CellProperties : "Propietats de la cel·la", TableProperties : "Propietats de la taula", @@ -139,7 +143,7 @@ SelectionFieldProp : "Propietats del camp de selecció", TextareaProp : "Propietats de l'àrea de text", FormProp : "Propietats del formulari", -FontFormats : "Normal;Formatejat;Adreça;Encapçalament 1;Encapçalament 2;Encapçalament 3;Encapçalament 4;Encapçalament 5;Encapçalament 6", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatejat;Adreça;Encapçalament 1;Encapçalament 2;Encapçalament 3;Encapçalament 4;Encapçalament 5;Encapçalament 6", // Alerts and Messages ProcessingXHTML : "Processant XHTML. Si us plau esperi...", @@ -227,15 +231,15 @@ DlgLnkTargetTab : "Destí", DlgLnkType : "Tipus d'enllaç", DlgLnkTypeURL : "URL", DlgLnkTypeAnchor : "Àncora en aquesta pàgina", -DlgLnkTypeEMail : "E-Mail", +DlgLnkTypeEMail : "Correu electrònic", DlgLnkProto : "Protocol", DlgLnkProtoOther : "<altra>", DlgLnkURL : "URL", DlgLnkAnchorSel : "Selecciona una àncora", DlgLnkAnchorByName : "Per nom d'àncora", DlgLnkAnchorById : "Per Id d'element", -DlgLnkNoAnchors : "<No hi ha àncores disponibles en aquest document>", //REVIEW : Change < and > with ( and ) -DlgLnkEMail : "Adreça d'E-Mail", +DlgLnkNoAnchors : "(No hi ha àncores disponibles en aquest document)", +DlgLnkEMail : "Adreça de correu electrònic", DlgLnkEMailSubject : "Assumpte del missatge", DlgLnkEMailBody : "Cos del missatge", DlgLnkUpload : "Puja", @@ -265,7 +269,7 @@ DlgLnkPopLeft : "Posició esquerra", DlgLnkPopTop : "Posició dalt", DlnLnkMsgNoUrl : "Si us plau, escrigui l'enllaç URL", -DlnLnkMsgNoEMail : "Si us plau, escrigui l'adreça e-mail", +DlnLnkMsgNoEMail : "Si us plau, escrigui l'adreça correu electrònic", DlnLnkMsgNoAnchor : "Si us plau, escrigui l'àncora", DlnLnkMsgInvPopName : "El nom de la finestra emergent ha de començar amb una lletra i no pot tenir espais", @@ -285,7 +289,7 @@ DlgSpecialCharTitle : "Selecciona el caràcter especial", DlgTableTitle : "Propietats de la taula", DlgTableRows : "Files", DlgTableColumns : "Columnes", -DlgTableBorder : "Tamany vora", +DlgTableBorder : "Mida vora", DlgTableAlign : "Alineació", DlgTableAlignNotSet : "<No Definit>", DlgTableAlignLeft : "Esquerra", @@ -327,6 +331,9 @@ DlgCellBackColor : "Color de fons", DlgCellBorderColor : "Color de la vora", DlgCellBtnSelect : "Seleccioneu...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Cerca i reemplaça", + // Find Dialog DlgFindTitle : "Cerca", DlgFindFindBtn : "Cerca", @@ -336,20 +343,20 @@ DlgFindNotFoundMsg : "El text especificat no s'ha trobat.", DlgReplaceTitle : "Reemplaça", DlgReplaceFindLbl : "Cerca:", DlgReplaceReplaceLbl : "Remplaça amb:", -DlgReplaceCaseChk : "Sensible a majúscules", +DlgReplaceCaseChk : "Distingeix majúscules/minúscules", DlgReplaceReplaceBtn : "Reemplaça", -DlgReplaceReplAllBtn : "Reemplaça'ls tots", -DlgReplaceWordChk : "Cerca paraula completa", +DlgReplaceReplAllBtn : "Reemplaça-ho tot", +DlgReplaceWordChk : "Només paraules completes", // Paste Operations / Dialog -PasteErrorPaste : "La seguretat del vostre navegador no permet executar automàticament les operacions d'enganxat. Si us plau, utilitzeu el teclat (Ctrl+V).", PasteErrorCut : "La seguretat del vostre navegador no permet executar automàticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl+X).", PasteErrorCopy : "La seguretat del vostre navegador no permet executar automàticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl+C).", -PasteAsText : "Enganxa com a text sense format", +PasteAsText : "Enganxa com a text no formatat", PasteFromWord : "Enganxa com a Word", DlgPasteMsg2 : "Si us plau, enganxeu dins del següent camp utilitzant el teclat (<STRONG>Ctrl+V</STRONG>) i premeu <STRONG>OK</STRONG>.", +DlgPasteSec : "A causa de la configuració de seguretat del vostre navegador, l'editor no pot accedir al porta-retalls directament. Enganxeu-ho un altre cop en aquesta finestra.", DlgPasteIgnoreFont : "Ignora definicions de font", DlgPasteRemoveStyles : "Elimina definicions d'estil", DlgPasteCleanBox : "Neteja camp", @@ -403,7 +410,7 @@ DlgFormMethod : "Mètode", // Select Field Dialog DlgSelectName : "Nom", DlgSelectValue : "Valor", -DlgSelectSize : "Tamany", +DlgSelectSize : "Mida", DlgSelectLines : "Línies", DlgSelectChkMulti : "Permet múltiples seleccions", DlgSelectOpAvail : "Opcions disponibles", @@ -452,13 +459,13 @@ DlgLstTypeLRoman : "Números romans majúscules (I, II, III)", DlgDocGeneralTab : "General", DlgDocBackTab : "Fons", DlgDocColorsTab : "Colors i marges", -DlgDocMetaTab : "Dades Meta", +DlgDocMetaTab : "Metadades", DlgDocPageTitle : "Títol de la pàgina", -DlgDocLangDir : "Direcció llenguatge", +DlgDocLangDir : "Direcció idioma", DlgDocLangDirLTR : "Esquerra a dreta (LTR)", DlgDocLangDirRTL : "Dreta a esquerra (RTL)", -DlgDocLangCode : "Codi de llenguatge", +DlgDocLangCode : "Codi d'idioma", DlgDocCharSet : "Codificació de conjunt de caràcters", DlgDocCharSetCE : "Centreeuropeu", DlgDocCharSetCT : "Xinès tradicional (Big5)", @@ -472,7 +479,7 @@ DlgDocCharSetWE : "Europeu occidental", DlgDocCharSetOther : "Una altra codificació de caràcters", DlgDocDocType : "Capçalera de tipus de document", -DlgDocDocTypeOther : "Altra Capçalera de tipus de document", +DlgDocDocTypeOther : "Un altra capçalera de tipus de document", DlgDocIncXHTML : "Incloure declaracions XHTML", DlgDocBgColor : "Color de fons", DlgDocBgImage : "URL de la imatge de fons", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Informació del navegador", DlgAboutLicenseTab : "Llicència", DlgAboutVersion : "versió", DlgAboutInfo : "Per a més informació aneu a" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/cs.js b/editor/editor/lang/cs.js @@ -1,30 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: cs.js - * Czech language file. - * - * File Authors: - * David Horák (david.horak@email.cz) - * Petr Plavjaník (plavjanik@gmail.com) - * Dave MacBlack (davemacblack@users.sourceforge.net) + * + * Czech language file. */ var FCKLang = @@ -51,6 +45,7 @@ InsertLinkLbl : "Odkaz", InsertLink : "Vložit/zmÄ›nit odkaz", RemoveLink : "Odstranit odkaz", Anchor : "Vložít/zmÄ›nit záložku", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Obrázek", InsertImage : "Vložit/zmÄ›nit obrázek", InsertFlashLbl : "Flash", @@ -76,6 +71,7 @@ RightJustify : "Zarovnat vpravo", BlockJustify : "Zarovnat do bloku", DecreaseIndent : "ZmenÅ¡it odsazení", IncreaseIndent : "ZvÄ›tÅ¡it odsazení", +Blockquote : "Blockquote", //MISSING Undo : "ZpÄ›t", Redo : "Znovu", NumberedListLbl : "Číslování", @@ -109,20 +105,27 @@ SelectionField : "Seznam", ImageButton : "Obrázkové tlaÄítko", FitWindow : "Maximalizovat velikost editoru", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "ZmÄ›nit odkaz", CellCM : "Buňka", RowCM : "Řádek", ColumnCM : "Sloupec", -InsertRow : "Vložit řádek", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Smazat řádek", -InsertColumn : "Vložit sloupec", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Smazat sloupec", -InsertCell : "Vložit buňku", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Smazat buňky", MergeCells : "SlouÄit buňky", -SplitCell : "RozdÄ›lit buňku", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Smazat tabulku", CellProperties : "Vlastnosti buňky", TableProperties : "Vlastnosti tabulky", @@ -140,7 +143,7 @@ SelectionFieldProp : "Vlastnosti seznamu", TextareaProp : "Vlastnosti textové oblasti", FormProp : "Vlastnosti formuláře", -FontFormats : "Normální;Formátovaný;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6", //REVIEW : Check _getfontformat.html +FontFormats : "Normální;Naformátováno;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6;Normální (DIV)", // Alerts and Messages ProcessingXHTML : "Probíhá zpracování XHTML. Prosím Äekejte...", @@ -235,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Vybrat kotvu", DlgLnkAnchorByName : "Podle jména kotvy", DlgLnkAnchorById : "Podle Id objektu", -DlgLnkNoAnchors : "<Ve stránce žádná kotva není definována>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Ve stránce žádná kotva není definována)", DlgLnkEMail : "E-Mailová adresa", DlgLnkEMailSubject : "PÅ™edmÄ›t zprávy", DlgLnkEMailBody : "TÄ›lo zprávy", @@ -268,7 +271,7 @@ DlgLnkPopTop : "Horní okraj", DlnLnkMsgNoUrl : "Zadejte prosím URL odkazu", DlnLnkMsgNoEMail : "Zadejte prosím e-mailovou adresu", DlnLnkMsgNoAnchor : "Vyberte prosím kotvu", -DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING +DlnLnkMsgInvPopName : "Název vyskakovacího okna musí zaÄínat písmenem a nesmí obsahovat mezery", // Color Dialog DlgColorTitle : "VýbÄ›r barvy", @@ -328,6 +331,9 @@ DlgCellBackColor : "Barva pozadí", DlgCellBorderColor : "Barva ohraniÄení", DlgCellBtnSelect : "VýbÄ›r...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Hledat", DlgFindFindBtn : "Hledat", @@ -343,7 +349,6 @@ DlgReplaceReplAllBtn : "Nahradit vÅ¡e", DlgReplaceWordChk : "Pouze celá slova", // Paste Operations / Dialog -PasteErrorPaste : "BezpeÄnostní nastavení VaÅ¡eho prohlížeÄe nedovolují editoru spustit funkci pro vložení textu ze schránky. Prosím vložte text ze schránky pomocí klávesnice (Ctrl+V).", PasteErrorCut : "BezpeÄnostní nastavení VaÅ¡eho prohlížeÄe nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjmÄ›te zvolený text do schránky pomocí klávesnice (Ctrl+X).", PasteErrorCopy : "BezpeÄnostní nastavení VaÅ¡eho prohlížeÄe nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl+C).", @@ -351,6 +356,7 @@ PasteAsText : "Vložit jako Äistý text", PasteFromWord : "Vložit text z Wordu", DlgPasteMsg2 : "Do následujícího pole vložte požadovaný obsah pomocí klávesnice (<STRONG>Ctrl+V</STRONG>) a stisknÄ›te <STRONG>OK</STRONG>.", +DlgPasteSec : "Z důvodů nastavení bezpeÄnosti VaÅ¡eho prohlížeÄe nemůže editor pÅ™istupovat přímo do schránky. Obsah schránky prosím vložte znovu do tohoto okna.", DlgPasteIgnoreFont : "Ignorovat písmo", DlgPasteRemoveStyles : "Odstranit styly", DlgPasteCleanBox : "VyÄistit", @@ -387,9 +393,9 @@ IeSpellDownload : "Kontrola pravopisu není nainstalována. Chcete ji nyní st // Button Dialog DlgButtonText : "Popisek", DlgButtonType : "Typ", -DlgButtonTypeBtn : "Button", //MISSING -DlgButtonTypeSbm : "Submit", //MISSING -DlgButtonTypeRst : "Reset", //MISSING +DlgButtonTypeBtn : "TlaÄítko", +DlgButtonTypeSbm : "Odeslat", +DlgButtonTypeRst : "Obnovit", // Checkbox and Radio Button Dialogs DlgCheckboxName : "Název", @@ -461,15 +467,15 @@ DlgDocLangDirLTR : "Zleva do prava ", DlgDocLangDirRTL : "Zprava doleva", DlgDocLangCode : "Kód jazyku", DlgDocCharSet : "Znaková sada", -DlgDocCharSetCE : "Central European", //MISSING -DlgDocCharSetCT : "Chinese Traditional (Big5)", //MISSING -DlgDocCharSetCR : "Cyrillic", //MISSING -DlgDocCharSetGR : "Greek", //MISSING -DlgDocCharSetJP : "Japanese", //MISSING -DlgDocCharSetKR : "Korean", //MISSING -DlgDocCharSetTR : "Turkish", //MISSING -DlgDocCharSetUN : "Unicode (UTF-8)", //MISSING -DlgDocCharSetWE : "Western European", //MISSING +DlgDocCharSetCE : "StÅ™edoevropské jazyky", +DlgDocCharSetCT : "TradiÄní ÄínÅ¡tina (Big5)", +DlgDocCharSetCR : "Cyrilice", +DlgDocCharSetGR : "ŘeÄtina", +DlgDocCharSetJP : "JaponÅ¡tina", +DlgDocCharSetKR : "KorejÅ¡tina", +DlgDocCharSetTR : "TureÄtina", +DlgDocCharSetUN : "Unicode (UTF-8)", +DlgDocCharSetWE : "Západoevropské jazyky", DlgDocCharSetOther : "Další znaková sada", DlgDocDocType : "Typ dokumentu", @@ -499,7 +505,7 @@ DlgTemplatesTitle : "Å ablony obsahu", DlgTemplatesSelMsg : "Prosím zvolte Å¡ablonu pro otevÅ™ení v editoru<br>(aktuální obsah editoru bude ztracen):", DlgTemplatesLoading : "Nahrávám pÅ™eheld Å¡ablon. Prosím Äekejte...", DlgTemplatesNoTpl : "(Není definována žádná Å¡ablona)", -DlgTemplatesReplace : "Replace actual contents", //MISSING +DlgTemplatesReplace : "Nahradit aktuální obsah", // About Dialog DlgAboutAboutTab : "O aplikaci", @@ -507,4 +513,4 @@ DlgAboutBrowserInfoTab : "Informace o prohlížeÄi", DlgAboutLicenseTab : "Licence", DlgAboutVersion : "verze", DlgAboutInfo : "Více informací získáte na" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/da.js b/editor/editor/lang/da.js @@ -1,30 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: da.js - * Danish language file. - * - * File Authors: - * Jørgen Nordstrøm (jn@FirstWeb.dk) - * Jesper Michelsen (jm@i-deVision.dk) - * Bo Brandt (bbr@dynamicweb.dk) + * + * Danish language file. */ var FCKLang = @@ -51,6 +45,7 @@ InsertLinkLbl : "Hyperlink", InsertLink : "Indsæt/rediger hyperlink", RemoveLink : "Fjern hyperlink", Anchor : "Indsæt/rediger bogmærke", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Indsæt billede", InsertImage : "Indsæt/rediger billede", InsertFlashLbl : "Flash", @@ -76,6 +71,7 @@ RightJustify : "Højrestillet", BlockJustify : "Lige margener", DecreaseIndent : "Formindsk indrykning", IncreaseIndent : "Forøg indrykning", +Blockquote : "Blockquote", //MISSING Undo : "Fortryd", Redo : "Annuller fortryd", NumberedListLbl : "Talopstilling", @@ -109,20 +105,27 @@ SelectionField : "Indsæt liste", ImageButton : "Indsæt billedknap", FitWindow : "Maksimer editor vinduet", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Rediger hyperlink", CellCM : "Celle", RowCM : "Række", ColumnCM : "Kolonne", -InsertRow : "Indsæt række", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Slet række", -InsertColumn : "Indsæt kolonne", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Slet kolonne", -InsertCell : "Indsæt celle", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Slet celle", MergeCells : "Flet celler", -SplitCell : "Opdel celle", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Slet tabel", CellProperties : "Egenskaber for celle", TableProperties : "Egenskaber for tabel", @@ -140,7 +143,7 @@ SelectionFieldProp : "Egenskaber for liste", TextareaProp : "Egenskaber for tekstboks", FormProp : "Egenskaber for formular", -FontFormats : "Normal;Formateret;Adresse;Overskrift 1;Overskrift 2;Overskrift 3;Overskrift 4;Overskrift 5;Overskrift 6;Normal (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formateret;Adresse;Overskrift 1;Overskrift 2;Overskrift 3;Overskrift 4;Overskrift 5;Overskrift 6;Normal (DIV)", // Alerts and Messages ProcessingXHTML : "Behandler XHTML...", @@ -235,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Vælg et anker", DlgLnkAnchorByName : "Efter anker navn", DlgLnkAnchorById : "Efter element Id", -DlgLnkNoAnchors : "<Ingen bogmærker dokumentet>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Ingen bogmærker dokumentet)", DlgLnkEMail : "E-mailadresse", DlgLnkEMailSubject : "Emne", DlgLnkEMailBody : "Brødtekst", @@ -328,6 +331,9 @@ DlgCellBackColor : "Baggrundsfarve", DlgCellBorderColor : "Rammefarve", DlgCellBtnSelect : "Vælg...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Find", DlgFindFindBtn : "Find", @@ -343,7 +349,6 @@ DlgReplaceReplAllBtn : "Erstat alle", DlgReplaceWordChk : "Kun hele ord", // Paste Operations / Dialog -PasteErrorPaste : "Din browsers sikkerhedsindstillinger tillader ikke editoren at indsætte tekst automatisk!<br>Brug i stedet tastaturet til at indsætte teksten (Ctrl+V).", PasteErrorCut : "Din browsers sikkerhedsindstillinger tillader ikke editoren at klippe tekst automatisk!<br>Brug i stedet tastaturet til at klippe teksten (Ctrl+X).", PasteErrorCopy : "Din browsers sikkerhedsindstillinger tillader ikke editoren at kopiere tekst automatisk!<br>Brug i stedet tastaturet til at kopiere teksten (Ctrl+C).", @@ -351,6 +356,7 @@ PasteAsText : "Indsæt som ikke-formateret tekst", PasteFromWord : "Indsæt fra Word", DlgPasteMsg2 : "Indsæt i feltet herunder (<STRONG>Ctrl+V</STRONG>) og klik <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Ignorer font definitioner", DlgPasteRemoveStyles : "Ignorer typografi", DlgPasteCleanBox : "Slet indhold", @@ -507,4 +513,4 @@ DlgAboutBrowserInfoTab : "Generelt", DlgAboutLicenseTab : "Licens", DlgAboutVersion : "version", DlgAboutInfo : "For yderlig information gÃ¥ til" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/de.js b/editor/editor/lang/de.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: de.js - * German language file. - * - * File Authors: - * Maik Unruh (m.unruh@mm-concept.de) - * Hendrik Kramer (HK@lwd.de) + * + * German language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "Link", InsertLink : "Link einfügen/editieren", RemoveLink : "Link entfernen", Anchor : "Anker einfügen/editieren", +AnchorDelete : "Anker entfernen", InsertImageLbl : "Bild", InsertImage : "Bild einfügen/editieren", InsertFlashLbl : "Flash", @@ -75,6 +71,7 @@ RightJustify : "Rechtsbündig", BlockJustify : "Blocksatz", DecreaseIndent : "Einzug verringern", IncreaseIndent : "Einzug erhöhen", +Blockquote : "Zitatblock", Undo : "Rückgängig", Redo : "Wiederherstellen", NumberedListLbl : "Nummerierte Liste", @@ -90,7 +87,7 @@ FontSize : "Größe", TextColor : "Textfarbe", BGColor : "Hintergrundfarbe", Source : "Quellcode", -Find : "Finden", +Find : "Suchen", Replace : "Ersetzen", SpellCheck : "Rechtschreibprüfung", UniversalKeyboard : "Universal-Tastatur", @@ -108,38 +105,45 @@ SelectionField : "Auswahlfeld", ImageButton : "Bildbutton", FitWindow : "Editor maximieren", +ShowBlocks : "Blöcke anzeigen", // Context Menu EditLink : "Link editieren", CellCM : "Zelle", RowCM : "Zeile", ColumnCM : "Spalte", -InsertRow : "Zeile einfügen", +InsertRowAfter : "Zeile unterhalb einfügen", +InsertRowBefore : "Zeile oberhalb einfügen", DeleteRows : "Zeile entfernen", -InsertColumn : "Spalte einfügen", +InsertColumnAfter : "Spalte rechts danach einfügen", +InsertColumnBefore : "Spalte links davor einfügen", DeleteColumns : "Spalte löschen", -InsertCell : "Zelle einfügen", +InsertCellAfter : "Zelle danach einfügen", +InsertCellBefore : "Zelle davor einfügen", DeleteCells : "Zelle löschen", -MergeCells : "Zellen vereinen", -SplitCell : "Zelle teilen", +MergeCells : "Zellen verbinden", +MergeRight : "nach rechts verbinden", +MergeDown : "nach unten verbinden", +HorizontalSplitCell : "Zelle horizontal teilen", +VerticalSplitCell : "Zelle vertikal teilen", TableDelete : "Tabelle löschen", -CellProperties : "Zellen Eigenschaften", -TableProperties : "Tabellen Eigenschaften", -ImageProperties : "Bild Eigenschaften", -FlashProperties : "Flash Eigenschaften", - -AnchorProp : "Anker Eigenschaften", -ButtonProp : "Button Eigenschaften", -CheckboxProp : "Checkbox Eigenschaften", -HiddenFieldProp : "Verstecktes Feld Eigenschaften", -RadioButtonProp : "Optionsfeld Eigenschaften", -ImageButtonProp : "Bildbutton Eigenschaften", +CellProperties : "Zellen-Eigenschaften", +TableProperties : "Tabellen-Eigenschaften", +ImageProperties : "Bild-Eigenschaften", +FlashProperties : "Flash-Eigenschaften", + +AnchorProp : "Anker-Eigenschaften", +ButtonProp : "Button-Eigenschaften", +CheckboxProp : "Checkbox-Eigenschaften", +HiddenFieldProp : "Verstecktes Feld-Eigenschaften", +RadioButtonProp : "Optionsfeld-Eigenschaften", +ImageButtonProp : "Bildbutton-Eigenschaften", TextFieldProp : "Textfeld (einzeilig) Eigenschaften", -SelectionFieldProp : "Auswahlfeld Eigenschaften", +SelectionFieldProp : "Auswahlfeld-Eigenschaften", TextareaProp : "Textfeld (mehrzeilig) Eigenschaften", -FormProp : "Formular Eigenschaften", +FormProp : "Formular-Eigenschaften", -FontFormats : "Normal;Formatiert;Addresse;Ãœberschrift 1;Ãœberschrift 2;Ãœberschrift 3;Ãœberschrift 4;Ãœberschrift 5;Ãœberschrift 6;Normal (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatiert;Addresse;Ãœberschrift 1;Ãœberschrift 2;Ãœberschrift 3;Ãœberschrift 4;Ãœberschrift 5;Ãœberschrift 6;Normal (DIV)", // Alerts and Messages ProcessingXHTML : "Bearbeite XHTML. Bitte warten...", @@ -165,24 +169,24 @@ DlgInfoTab : "Info", DlgAlertUrl : "Bitte tragen Sie die URL ein", // General Dialogs Labels -DlgGenNotSet : "< nichts >", +DlgGenNotSet : "<nichts>", DlgGenId : "ID", DlgGenLangDir : "Schreibrichtung", DlgGenLangDirLtr : "Links nach Rechts (LTR)", DlgGenLangDirRtl : "Rechts nach Links (RTL)", DlgGenLangCode : "Sprachenkürzel", -DlgGenAccessKey : "Schlüssel", +DlgGenAccessKey : "Zugriffstaste", DlgGenName : "Name", -DlgGenTabIndex : "Tab Index", +DlgGenTabIndex : "Tab-Index", DlgGenLongDescr : "Langform URL", DlgGenClass : "Stylesheet Klasse", DlgGenTitle : "Titel Beschreibung", -DlgGenContType : "Content Beschreibung", +DlgGenContType : "Inhaltstyp", DlgGenLinkCharset : "Ziel-Zeichensatz", DlgGenStyle : "Style", // Image Dialog -DlgImgTitle : "Bild Eigenschaften", +DlgImgTitle : "Bild-Eigenschaften", DlgImgInfoTab : "Bild-Info", DlgImgBtnUpload : "Zum Server senden", DlgImgURL : "Bildauswahl", @@ -210,7 +214,7 @@ DlgImgAlertUrl : "Bitte geben Sie die Bild-URL an", DlgImgLinkTab : "Link", // Flash Dialog -DlgFlashTitle : "Flash Eigenschaften", +DlgFlashTitle : "Flash-Eigenschaften", DlgFlashChkPlay : "autom. Abspielen", DlgFlashChkLoop : "Endlosschleife", DlgFlashChkMenu : "Flash-Menü aktivieren", @@ -221,7 +225,7 @@ DlgFlashScaleFit : "Passgenau", // Link Dialog DlgLnkWindowTitle : "Link", -DlgLnkInfoTab : "Link Info", +DlgLnkInfoTab : "Link-Info", DlgLnkTargetTab : "Zielseite", DlgLnkType : "Link-Typ", @@ -234,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Anker auswählen", DlgLnkAnchorByName : "nach Anker Name", DlgLnkAnchorById : "nach Element Id", -DlgLnkNoAnchors : "<keine Anker im Dokument vorhanden>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(keine Anker im Dokument vorhanden)", DlgLnkEMail : "E-Mail Addresse", DlgLnkEMailSubject : "Betreffzeile", DlgLnkEMailBody : "Nachrichtentext", @@ -248,9 +252,9 @@ DlgLnkTargetBlank : "Neues Fenster (_blank)", DlgLnkTargetParent : "Oberes Fenster (_parent)", DlgLnkTargetSelf : "Gleiches Fenster (_self)", DlgLnkTargetTop : "Oberstes Fenster (_top)", -DlgLnkTargetFrameName : "Ziel-Fenster Name", -DlgLnkPopWinName : "Pop-up Fenster Name", -DlgLnkPopWinFeat : "Pop-up Fenster Eigenschaften", +DlgLnkTargetFrameName : "Ziel-Fenster-Name", +DlgLnkPopWinName : "Pop-up Fenster-Name", +DlgLnkPopWinFeat : "Pop-up Fenster-Eigenschaften", DlgLnkPopResize : "Vergrößerbar", DlgLnkPopLocation : "Adress-Leiste", DlgLnkPopMenu : "Menü-Leiste", @@ -282,12 +286,12 @@ DlgSmileyTitle : "Smiley auswählen", DlgSpecialCharTitle : "Sonderzeichen auswählen", // Table Dialog -DlgTableTitle : "Tabellen Eigenschaften", +DlgTableTitle : "Tabellen-Eigenschaften", DlgTableRows : "Zeile", DlgTableColumns : "Spalte", DlgTableBorder : "Rahmen", DlgTableAlign : "Ausrichtung", -DlgTableAlignNotSet : "<nichts>", +DlgTableAlignNotSet : "<keine>", DlgTableAlignLeft : "Links", DlgTableAlignCenter : "Zentriert", DlgTableAlignRight : "Rechts", @@ -307,16 +311,16 @@ DlgCellWidthPx : "Pixel", DlgCellWidthPc : "%", DlgCellHeight : "Höhe", DlgCellWordWrap : "Umbruch", -DlgCellWordWrapNotSet : "<nichts>", +DlgCellWordWrapNotSet : "<keiner>", DlgCellWordWrapYes : "Ja", DlgCellWordWrapNo : "Nein", DlgCellHorAlign : "Horizontale Ausrichtung", -DlgCellHorAlignNotSet : "<nichts>", +DlgCellHorAlignNotSet : "<keine>", DlgCellHorAlignLeft : "Links", DlgCellHorAlignCenter : "Zentriert", DlgCellHorAlignRight: "Rechts", DlgCellVerAlign : "Vertikale Ausrichtung", -DlgCellVerAlignNotSet : "<nichts>", +DlgCellVerAlignNotSet : "<keine>", DlgCellVerAlignTop : "Oben", DlgCellVerAlignMiddle : "Mitte", DlgCellVerAlignBottom : "Unten", @@ -327,6 +331,9 @@ DlgCellBackColor : "Hintergrundfarbe", DlgCellBorderColor : "Rahmenfarbe", DlgCellBtnSelect : "Auswahl...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Suchen und Ersetzen", + // Find Dialog DlgFindTitle : "Finden", DlgFindFindBtn : "Finden", @@ -342,14 +349,14 @@ DlgReplaceReplAllBtn : "Alle Ersetzen", DlgReplaceWordChk : "Nur ganze Worte suchen", // Paste Operations / Dialog -PasteErrorPaste : "Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch einzufügen. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren) und STRG-V (einfügen).", PasteErrorCut : "Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).", PasteErrorCopy : "Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).", PasteAsText : "Als Text einfügen", PasteFromWord : "Aus Word einfügen", -DlgPasteMsg2 : "Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit <STRONG>Ctrl+V</STRONG>) ein und bestätigen Sie mit <STRONG>OK</STRONG>.", +DlgPasteMsg2 : "Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit <STRONG>Strg+V</STRONG>) ein und bestätigen Sie mit <STRONG>OK</STRONG>.", +DlgPasteSec : "Aufgrund von Sicherheitsbeschränkungen Ihres Browsers kann der Editor nicht direkt auf die Zwischenablage zugreifen. Bitte fügen Sie den Inhalt erneut in diesem Fenster ein.", DlgPasteIgnoreFont : "Ignoriere Schriftart-Definitionen", DlgPasteRemoveStyles : "Entferne Style-Definitionen", DlgPasteCleanBox : "Inhalt aufräumen", @@ -359,10 +366,10 @@ ColorAutomatic : "Automatisch", ColorMoreColors : "Weitere Farben...", // Document Properties -DocProps : "Dokument Eigenschaften", +DocProps : "Dokument-Eigenschaften", // Anchor Dialog -DlgAnchorTitle : "Anker Eigenschaften", +DlgAnchorTitle : "Anker-Eigenschaften", DlgAnchorName : "Anker Name", DlgAnchorErrorName : "Bitte geben Sie den Namen des Ankers ein", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Browser-Info", DlgAboutLicenseTab : "Lizenz", DlgAboutVersion : "Version", DlgAboutInfo : "Für weitere Informationen siehe" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/el.js b/editor/editor/lang/el.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: el.js - * Greek language file. - * - * File Authors: - * Vangelis Bibakis (bibakisv[-a-t-]yahoo.com) - * Spyros Barbatos (sbarbatos{at}users.sourceforge.net) + * + * Greek language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "ΣÏνδεσμος (Link)", InsertLink : "Εισαγωγή/Μεταβολή Συνδέσμου (Link)", RemoveLink : "ΑφαίÏεση Συνδέσμου (Link)", Anchor : "Εισαγωγή/επεξεÏγασία Anchor", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Εικόνα", InsertImage : "Εισαγωγή/Μεταβολή Εικόνας", InsertFlashLbl : "Εισαγωγή Flash", @@ -75,6 +71,7 @@ RightJustify : "Στοίχιση Δεξιά", BlockJustify : "ΠλήÏης Στοίχιση (Block)", DecreaseIndent : "Μείωση Εσοχής", IncreaseIndent : "ΑÏξηση Εσοχής", +Blockquote : "Blockquote", //MISSING Undo : "ΑναίÏεση", Redo : "ΕπαναφοÏά", NumberedListLbl : "Λίστα με ΑÏιθμοÏÏ‚", @@ -108,20 +105,27 @@ SelectionField : "Πεδίο επιλογής", ImageButton : "Κουμπί εικόνας", FitWindow : "Μεγιστοποίηση Ï€ÏογÏάμματος", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Μεταβολή Συνδέσμου (Link)", CellCM : "Κελί", RowCM : "ΣειÏά", ColumnCM : "Στήλη", -InsertRow : "Εισαγωγή ΓÏαμμής", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "ΔιαγÏαφή ΓÏαμμών", -InsertColumn : "Εισαγωγή Κολώνας", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "ΔιαγÏαφή Κολωνών", -InsertCell : "Εισαγωγή ΚελιοÏ", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "ΔιαγÏαφή Κελιών", MergeCells : "Ενοποίηση Κελιών", -SplitCell : "ΔιαχωÏισμός ΚελιοÏ", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "ΔιαγÏαφή πίνακα", CellProperties : "Ιδιότητες ΚελιοÏ", TableProperties : "Ιδιότητες Πίνακα", @@ -139,7 +143,7 @@ SelectionFieldProp : "Ιδιότητες πεδίου επιλογής", TextareaProp : "Ιδιότητες πεÏιοχής κειμένου", FormProp : "Ιδιότητες φόÏμας", -FontFormats : "Κανονικό;ΜοÏφοποιημένο;ΔιεÏθυνση;Επικεφαλίδα 1;Επικεφαλίδα 2;Επικεφαλίδα 3;Επικεφαλίδα 4;Επικεφαλίδα 5;Επικεφαλίδα 6", //REVIEW : Check _getfontformat.html +FontFormats : "Κανονικό;ΜοÏφοποιημένο;ΔιεÏθυνση;Επικεφαλίδα 1;Επικεφαλίδα 2;Επικεφαλίδα 3;Επικεφαλίδα 4;Επικεφαλίδα 5;Επικεφαλίδα 6", // Alerts and Messages ProcessingXHTML : "ΕπεξεÏγασία XHTML. ΠαÏακαλώ πεÏιμένετε...", @@ -234,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Επιλέξτε μια άγκυÏα", DlgLnkAnchorByName : "Βάσει του Ονόματος (Name) της άγκυÏας", DlgLnkAnchorById : "Βάσει του Element Id", -DlgLnkNoAnchors : "<Δεν υπάÏχουν άγκυÏες στο κείμενο>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Δεν υπάÏχουν άγκυÏες στο κείμενο)", DlgLnkEMail : "ΔιεÏθυνση ΗλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Î¤Î±Ï‡Ï…Î´Ïομείου", DlgLnkEMailSubject : "Θέμα ΜηνÏματος", DlgLnkEMailBody : "Κείμενο ΜηνÏματος", @@ -327,6 +331,9 @@ DlgCellBackColor : "ΧÏώμα ΥποβάθÏου", DlgCellBorderColor : "ΧÏώμα ΠεÏιθωÏίου", DlgCellBtnSelect : "Επιλογή...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Αναζήτηση", DlgFindFindBtn : "Αναζήτηση", @@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "Αντικατάσταση Όλων", DlgReplaceWordChk : "ΕÏÏεση πλήÏους λέξης", // Paste Operations / Dialog -PasteErrorPaste : "Οι Ïυθμίσεις ασφαλείας του φυλλομετÏητή σας δεν επιτÏέπουν την επιλεγμένη εÏγασία επικόλλησης. ΧÏησιμοποιείστε το πληκτÏολόγιο (Ctrl+V).", PasteErrorCut : "Οι Ïυθμίσεις ασφαλείας του φυλλομετÏητή σας δεν επιτÏέπουν την επιλεγμένη εÏγασία αποκοπής. ΧÏησιμοποιείστε το πληκτÏολόγιο (Ctrl+X).", PasteErrorCopy : "Οι Ïυθμίσεις ασφαλείας του φυλλομετÏητή σας δεν επιτÏέπουν την επιλεγμένη εÏγασία αντιγÏαφής. ΧÏησιμοποιείστε το πληκτÏολόγιο (Ctrl+C).", @@ -350,6 +356,7 @@ PasteAsText : "Επικόλληση ως Απλό Κείμενο", PasteFromWord : "Επικόλληση από το Word", DlgPasteMsg2 : "ΠαÏακαλώ επικολήστε στο ακόλουθο κουτί χÏησιμοποιόντας το πληκτÏολόγιο (<STRONG>Ctrl+V</STRONG>) και πατήστε <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Αγνόηση Ï€ÏοδιαγÏαφών γÏαμματοσειÏάς", DlgPasteRemoveStyles : "ΑφαίÏεση Ï€ÏοδιαγÏαφών στÏλ", DlgPasteCleanBox : "Κουτί εκαθάÏισης", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "ΠληÏοφοÏίες Browser", DlgAboutLicenseTab : "Άδεια", DlgAboutVersion : "έκδοση", DlgAboutInfo : "Για πεÏισσότεÏες πληÏοφοÏίες" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/en-au.js b/editor/editor/lang/en-au.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: en-au.js - * English (Australia) language file. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - * Christopher Dawes (fckeditor@dawes.id.au) + * + * English (Australia) language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "Link", InsertLink : "Insert/Edit Link", RemoveLink : "Remove Link", Anchor : "Insert/Edit Anchor", +AnchorDelete : "Remove Anchor", InsertImageLbl : "Image", InsertImage : "Insert/Edit Image", InsertFlashLbl : "Flash", @@ -75,6 +71,7 @@ RightJustify : "Right Justify", BlockJustify : "Block Justify", DecreaseIndent : "Decrease Indent", IncreaseIndent : "Increase Indent", +Blockquote : "Blockquote", Undo : "Undo", Redo : "Redo", NumberedListLbl : "Numbered List", @@ -108,20 +105,27 @@ SelectionField : "Selection Field", ImageButton : "Image Button", FitWindow : "Maximize the editor size", +ShowBlocks : "Show Blocks", // Context Menu EditLink : "Edit Link", CellCM : "Cell", RowCM : "Row", ColumnCM : "Column", -InsertRow : "Insert Row", +InsertRowAfter : "Insert Row After", +InsertRowBefore : "Insert Row Before", DeleteRows : "Delete Rows", -InsertColumn : "Insert Column", +InsertColumnAfter : "Insert Column After", +InsertColumnBefore : "Insert Column Before", DeleteColumns : "Delete Columns", -InsertCell : "Insert Cell", +InsertCellAfter : "Insert Cell After", +InsertCellBefore : "Insert Cell Before", DeleteCells : "Delete Cells", MergeCells : "Merge Cells", -SplitCell : "Split Cell", +MergeRight : "Merge Right", +MergeDown : "Merge Down", +HorizontalSplitCell : "Split Cell Horizontally", +VerticalSplitCell : "Split Cell Vertically", TableDelete : "Delete Table", CellProperties : "Cell Properties", TableProperties : "Table Properties", @@ -139,7 +143,7 @@ SelectionFieldProp : "Selection Field Properties", TextareaProp : "Textarea Properties", FormProp : "Form Properties", -FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", // Alerts and Messages ProcessingXHTML : "Processing XHTML. Please wait...", @@ -234,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Select an Anchor", DlgLnkAnchorByName : "By Anchor Name", DlgLnkAnchorById : "By Element Id", -DlgLnkNoAnchors : "(No anchors available in the document)", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(No anchors available in the document)", DlgLnkEMail : "E-Mail Address", DlgLnkEMailSubject : "Message Subject", DlgLnkEMailBody : "Message Body", @@ -327,6 +331,9 @@ DlgCellBackColor : "Background Colour", DlgCellBorderColor : "Border Colour", DlgCellBtnSelect : "Select...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", + // Find Dialog DlgFindTitle : "Find", DlgFindFindBtn : "Find", @@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "Replace All", DlgReplaceWordChk : "Match whole word", // Paste Operations / Dialog -PasteErrorPaste : "Your browser security settings don't permit the editor to automatically execute pasting operations. Please use the keyboard for that (Ctrl+V).", PasteErrorCut : "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).", PasteErrorCopy : "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).", @@ -350,6 +356,7 @@ PasteAsText : "Paste as Plain Text", PasteFromWord : "Paste from Word", DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", DlgPasteIgnoreFont : "Ignore Font Face definitions", DlgPasteRemoveStyles : "Remove Styles definitions", DlgPasteCleanBox : "Clean Up Box", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Browser Info", DlgAboutLicenseTab : "License", DlgAboutVersion : "version", DlgAboutInfo : "For further information go to" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/en-ca.js b/editor/editor/lang/en-ca.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: en-ca.js - * English (Canadian) language file. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - * Kevin Bennett + * + * English (Canadian) language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "Link", InsertLink : "Insert/Edit Link", RemoveLink : "Remove Link", Anchor : "Insert/Edit Anchor", +AnchorDelete : "Remove Anchor", InsertImageLbl : "Image", InsertImage : "Insert/Edit Image", InsertFlashLbl : "Flash", @@ -75,6 +71,7 @@ RightJustify : "Right Justify", BlockJustify : "Block Justify", DecreaseIndent : "Decrease Indent", IncreaseIndent : "Increase Indent", +Blockquote : "Blockquote", Undo : "Undo", Redo : "Redo", NumberedListLbl : "Numbered List", @@ -108,20 +105,27 @@ SelectionField : "Selection Field", ImageButton : "Image Button", FitWindow : "Maximize the editor size", +ShowBlocks : "Show Blocks", // Context Menu EditLink : "Edit Link", CellCM : "Cell", RowCM : "Row", ColumnCM : "Column", -InsertRow : "Insert Row", +InsertRowAfter : "Insert Row After", +InsertRowBefore : "Insert Row Before", DeleteRows : "Delete Rows", -InsertColumn : "Insert Column", +InsertColumnAfter : "Insert Column After", +InsertColumnBefore : "Insert Column Before", DeleteColumns : "Delete Columns", -InsertCell : "Insert Cell", +InsertCellAfter : "Insert Cell After", +InsertCellBefore : "Insert Cell Before", DeleteCells : "Delete Cells", MergeCells : "Merge Cells", -SplitCell : "Split Cell", +MergeRight : "Merge Right", +MergeDown : "Merge Down", +HorizontalSplitCell : "Split Cell Horizontally", +VerticalSplitCell : "Split Cell Vertically", TableDelete : "Delete Table", CellProperties : "Cell Properties", TableProperties : "Table Properties", @@ -139,7 +143,7 @@ SelectionFieldProp : "Selection Field Properties", TextareaProp : "Textarea Properties", FormProp : "Form Properties", -FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", // Alerts and Messages ProcessingXHTML : "Processing XHTML. Please wait...", @@ -234,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Select an Anchor", DlgLnkAnchorByName : "By Anchor Name", DlgLnkAnchorById : "By Element Id", -DlgLnkNoAnchors : "(No anchors available in the document)", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(No anchors available in the document)", DlgLnkEMail : "E-Mail Address", DlgLnkEMailSubject : "Message Subject", DlgLnkEMailBody : "Message Body", @@ -327,6 +331,9 @@ DlgCellBackColor : "Background Colour", DlgCellBorderColor : "Border Colour", DlgCellBtnSelect : "Select...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", + // Find Dialog DlgFindTitle : "Find", DlgFindFindBtn : "Find", @@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "Replace All", DlgReplaceWordChk : "Match whole word", // Paste Operations / Dialog -PasteErrorPaste : "Your browser security settings don't permit the editor to automatically execute pasting operations. Please use the keyboard for that (Ctrl+V).", PasteErrorCut : "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).", PasteErrorCopy : "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).", @@ -350,6 +356,7 @@ PasteAsText : "Paste as Plain Text", PasteFromWord : "Paste from Word", DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", DlgPasteIgnoreFont : "Ignore Font Face definitions", DlgPasteRemoveStyles : "Remove Styles definitions", DlgPasteCleanBox : "Clean Up Box", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Browser Info", DlgAboutLicenseTab : "License", DlgAboutVersion : "version", DlgAboutInfo : "For further information go to" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/en-uk.js b/editor/editor/lang/en-uk.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: en-uk.js - * English (United Kingdom) language file. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - * Christopher Dawes (fckeditor@dawes.id.au) + * + * English (United Kingdom) language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "Link", InsertLink : "Insert/Edit Link", RemoveLink : "Remove Link", Anchor : "Insert/Edit Anchor", +AnchorDelete : "Remove Anchor", InsertImageLbl : "Image", InsertImage : "Insert/Edit Image", InsertFlashLbl : "Flash", @@ -75,6 +71,7 @@ RightJustify : "Right Justify", BlockJustify : "Block Justify", DecreaseIndent : "Decrease Indent", IncreaseIndent : "Increase Indent", +Blockquote : "Blockquote", Undo : "Undo", Redo : "Redo", NumberedListLbl : "Numbered List", @@ -108,20 +105,27 @@ SelectionField : "Selection Field", ImageButton : "Image Button", FitWindow : "Maximize the editor size", +ShowBlocks : "Show Blocks", // Context Menu EditLink : "Edit Link", CellCM : "Cell", RowCM : "Row", ColumnCM : "Column", -InsertRow : "Insert Row", +InsertRowAfter : "Insert Row After", +InsertRowBefore : "Insert Row Before", DeleteRows : "Delete Rows", -InsertColumn : "Insert Column", +InsertColumnAfter : "Insert Column After", +InsertColumnBefore : "Insert Column Before", DeleteColumns : "Delete Columns", -InsertCell : "Insert Cell", +InsertCellAfter : "Insert Cell After", +InsertCellBefore : "Insert Cell Before", DeleteCells : "Delete Cells", MergeCells : "Merge Cells", -SplitCell : "Split Cell", +MergeRight : "Merge Right", +MergeDown : "Merge Down", +HorizontalSplitCell : "Split Cell Horizontally", +VerticalSplitCell : "Split Cell Vertically", TableDelete : "Delete Table", CellProperties : "Cell Properties", TableProperties : "Table Properties", @@ -139,7 +143,7 @@ SelectionFieldProp : "Selection Field Properties", TextareaProp : "Textarea Properties", FormProp : "Form Properties", -FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", // Alerts and Messages ProcessingXHTML : "Processing XHTML. Please wait...", @@ -234,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Select an Anchor", DlgLnkAnchorByName : "By Anchor Name", DlgLnkAnchorById : "By Element Id", -DlgLnkNoAnchors : "(No anchors available in the document)", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(No anchors available in the document)", DlgLnkEMail : "E-Mail Address", DlgLnkEMailSubject : "Message Subject", DlgLnkEMailBody : "Message Body", @@ -327,6 +331,9 @@ DlgCellBackColor : "Background Colour", DlgCellBorderColor : "Border Colour", DlgCellBtnSelect : "Select...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", + // Find Dialog DlgFindTitle : "Find", DlgFindFindBtn : "Find", @@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "Replace All", DlgReplaceWordChk : "Match whole word", // Paste Operations / Dialog -PasteErrorPaste : "Your browser security settings don't permit the editor to automatically execute pasting operations. Please use the keyboard for that (Ctrl+V).", PasteErrorCut : "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).", PasteErrorCopy : "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).", @@ -350,6 +356,7 @@ PasteAsText : "Paste as Plain Text", PasteFromWord : "Paste from Word", DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", DlgPasteIgnoreFont : "Ignore Font Face definitions", DlgPasteRemoveStyles : "Remove Styles definitions", DlgPasteCleanBox : "Clean Up Box", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Browser Info", DlgAboutLicenseTab : "License", DlgAboutVersion : "version", DlgAboutInfo : "For further information go to" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/en.js b/editor/editor/lang/en.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: en.js - * English language file. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * English language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Link", InsertLink : "Insert/Edit Link", RemoveLink : "Remove Link", Anchor : "Insert/Edit Anchor", +AnchorDelete : "Remove Anchor", InsertImageLbl : "Image", InsertImage : "Insert/Edit Image", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "Right Justify", BlockJustify : "Block Justify", DecreaseIndent : "Decrease Indent", IncreaseIndent : "Increase Indent", +Blockquote : "Blockquote", Undo : "Undo", Redo : "Redo", NumberedListLbl : "Numbered List", @@ -107,20 +105,27 @@ SelectionField : "Selection Field", ImageButton : "Image Button", FitWindow : "Maximize the editor size", +ShowBlocks : "Show Blocks", // Context Menu EditLink : "Edit Link", CellCM : "Cell", RowCM : "Row", ColumnCM : "Column", -InsertRow : "Insert Row", +InsertRowAfter : "Insert Row After", +InsertRowBefore : "Insert Row Before", DeleteRows : "Delete Rows", -InsertColumn : "Insert Column", +InsertColumnAfter : "Insert Column After", +InsertColumnBefore : "Insert Column Before", DeleteColumns : "Delete Columns", -InsertCell : "Insert Cell", +InsertCellAfter : "Insert Cell After", +InsertCellBefore : "Insert Cell Before", DeleteCells : "Delete Cells", MergeCells : "Merge Cells", -SplitCell : "Split Cell", +MergeRight : "Merge Right", +MergeDown : "Merge Down", +HorizontalSplitCell : "Split Cell Horizontally", +VerticalSplitCell : "Split Cell Vertically", TableDelete : "Delete Table", CellProperties : "Cell Properties", TableProperties : "Table Properties", @@ -138,7 +143,7 @@ SelectionFieldProp : "Selection Field Properties", TextareaProp : "Textarea Properties", FormProp : "Form Properties", -FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", // Alerts and Messages ProcessingXHTML : "Processing XHTML. Please wait...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Select an Anchor", DlgLnkAnchorByName : "By Anchor Name", DlgLnkAnchorById : "By Element Id", -DlgLnkNoAnchors : "(No anchors available in the document)", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(No anchors available in the document)", DlgLnkEMail : "E-Mail Address", DlgLnkEMailSubject : "Message Subject", DlgLnkEMailBody : "Message Body", @@ -326,6 +331,9 @@ DlgCellBackColor : "Background Color", DlgCellBorderColor : "Border Color", DlgCellBtnSelect : "Select...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", + // Find Dialog DlgFindTitle : "Find", DlgFindFindBtn : "Find", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Replace All", DlgReplaceWordChk : "Match whole word", // Paste Operations / Dialog -PasteErrorPaste : "Your browser security settings don't permit the editor to automatically execute pasting operations. Please use the keyboard for that (Ctrl+V).", PasteErrorCut : "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).", PasteErrorCopy : "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Paste as Plain Text", PasteFromWord : "Paste from Word", DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", DlgPasteIgnoreFont : "Ignore Font Face definitions", DlgPasteRemoveStyles : "Remove Styles definitions", DlgPasteCleanBox : "Clean Up Box", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Browser Info", DlgAboutLicenseTab : "License", DlgAboutVersion : "version", DlgAboutInfo : "For further information go to" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/eo.js b/editor/editor/lang/eo.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: eo.js - * Esperanto language file. - * - * File Authors: - * Tim Morley (timsk@openoffice.org) + * + * Esperanto language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Ligilo", InsertLink : "Enmeti/ÅœanÄi Ligilon", RemoveLink : "Forigi Ligilon", Anchor : "Enmeti/ÅœanÄi Ankron", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Bildo", InsertImage : "Enmeti/ÅœanÄi Bildon", InsertFlashLbl : "Flash", //MISSING @@ -74,6 +71,7 @@ RightJustify : "Dekstrigi", BlockJustify : "Äœisrandigi AmbaÅ­flanke", DecreaseIndent : "Malpligrandigi KrommarÄenon", IncreaseIndent : "Pligrandigi KrommarÄenon", +Blockquote : "Blockquote", //MISSING Undo : "Malfari", Redo : "Refari", NumberedListLbl : "Numera Listo", @@ -107,20 +105,27 @@ SelectionField : "Elekta Kampo", ImageButton : "Bildbutono", FitWindow : "Maximize the editor size", //MISSING +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Modifier Ligilon", CellCM : "Cell", //MISSING RowCM : "Row", //MISSING ColumnCM : "Column", //MISSING -InsertRow : "Enmeti Linion", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Forigi Liniojn", -InsertColumn : "Enmeti Kolumnon", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Forigi Kolumnojn", -InsertCell : "Enmeti Ĉelon", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Forigi Ĉelojn", MergeCells : "Kunfandi Ĉelojn", -SplitCell : "Dividi Ĉelojn", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Delete Table", //MISSING CellProperties : "Atributoj de Ĉelo", TableProperties : "Atributoj de Tabelo", @@ -138,7 +143,7 @@ SelectionFieldProp : "Atributoj de Elekta Kampo", TextareaProp : "Atributoj de Teksta Areo", FormProp : "Formularaj Atributoj", -FontFormats : "Normala;Formatita;Adreso;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normala;Formatita;Adreso;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)", // Alerts and Messages ProcessingXHTML : "Traktado de XHTML. Bonvolu pacienci...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Elekti Ankron", DlgLnkAnchorByName : "Per Ankronomo", DlgLnkAnchorById : "Per Elementidentigilo", -DlgLnkNoAnchors : "<Ne disponeblas ankroj en la dokumento>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "<Ne disponeblas ankroj en la dokumento>", DlgLnkEMail : "Retadreso", DlgLnkEMailSubject : "Temlinio", DlgLnkEMailBody : "MesaÄa korpo", @@ -326,6 +331,9 @@ DlgCellBackColor : "Fono", DlgCellBorderColor : "Bordero", DlgCellBtnSelect : "Elekti...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Serĉi", DlgFindFindBtn : "Serĉi", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "AnstataÅ­igi Ĉiun", DlgReplaceWordChk : "Tuta Vorto", // Paste Operations / Dialog -PasteErrorPaste : "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras intergluajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-V).", PasteErrorCut : "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-X).", PasteErrorCopy : "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-C).", @@ -349,6 +356,7 @@ PasteAsText : "Interglui kiel Tekston", PasteFromWord : "Interglui el Word", DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.", //MISSING +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Ignore Font Face definitions", //MISSING DlgPasteRemoveStyles : "Remove Styles definitions", //MISSING DlgPasteCleanBox : "Clean Up Box", //MISSING @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Informoj pri TTT-legilo", DlgAboutLicenseTab : "License", //MISSING DlgAboutVersion : "versio", DlgAboutInfo : "Por pli da informoj, vizitu" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/es.js b/editor/editor/lang/es.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: es.js - * Spanish language file. - * - * File Authors: - * Gabriel Schillaci (internetbug@users.sourceforge.net) + * + * Spanish language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Vínculo", InsertLink : "Insertar/Editar Vínculo", RemoveLink : "Eliminar Vínculo", Anchor : "Referencia", +AnchorDelete : "Eliminar Referencia", InsertImageLbl : "Imagen", InsertImage : "Insertar/Editar Imagen", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "Alinear a Derecha", BlockJustify : "Justificado", DecreaseIndent : "Disminuir Sangría", IncreaseIndent : "Aumentar Sangría", +Blockquote : "Cita", Undo : "Deshacer", Redo : "Rehacer", NumberedListLbl : "Numeración", @@ -107,20 +105,27 @@ SelectionField : "Campo de Selección", ImageButton : "Botón Imagen", FitWindow : "Maximizar el tamaño del editor", +ShowBlocks : "Mostrar bloques", // Context Menu EditLink : "Editar Vínculo", CellCM : "Celda", RowCM : "Fila", ColumnCM : "Columna", -InsertRow : "Insertar Fila", +InsertRowAfter : "Insertar fila en la parte inferior", +InsertRowBefore : "Insertar fila en la parte superior", DeleteRows : "Eliminar Filas", -InsertColumn : "Insertar Columna", +InsertColumnAfter : "Insertar columna a la derecha", +InsertColumnBefore : "Insertar columna a la izquierda", DeleteColumns : "Eliminar Columnas", -InsertCell : "Insertar Celda", +InsertCellAfter : "Insertar celda a la derecha", +InsertCellBefore : "Insertar celda a la izquierda", DeleteCells : "Eliminar Celdas", MergeCells : "Combinar Celdas", -SplitCell : "Dividir Celda", +MergeRight : "Combinar a la derecha", +MergeDown : "Combinar hacia abajo", +HorizontalSplitCell : "Dividir la celda horizontalmente", +VerticalSplitCell : "Dividir la celda verticalmente", TableDelete : "Eliminar Tabla", CellProperties : "Propiedades de Celda", TableProperties : "Propiedades de Tabla", @@ -138,7 +143,7 @@ SelectionFieldProp : "Propiedades de Campo de Selección", TextareaProp : "Propiedades de Area de Texto", FormProp : "Propiedades de Formulario", -FontFormats : "Normal;Con formato;Dirección;Encabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Normal (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Con formato;Dirección;Encabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Normal (DIV)", // Alerts and Messages ProcessingXHTML : "Procesando XHTML. Por favor, espere...", @@ -166,10 +171,10 @@ DlgAlertUrl : "Inserte el URL", // General Dialogs Labels DlgGenNotSet : "<No definido>", DlgGenId : "Id", -DlgGenLangDir : "Orientación de idioma", +DlgGenLangDir : "Orientación", DlgGenLangDirLtr : "Izquierda a Derecha (LTR)", DlgGenLangDirRtl : "Derecha a Izquierda (RTL)", -DlgGenLangCode : "Código de idioma", +DlgGenLangCode : "Cód. de idioma", DlgGenAccessKey : "Clave de Acceso", DlgGenName : "Nombre", DlgGenTabIndex : "Indice de tabulación", @@ -205,7 +210,7 @@ DlgImgAlignRight : "Derecha", DlgImgAlignTextTop : "Tope del texto", DlgImgAlignTop : "Tope", DlgImgPreview : "Vista Previa", -DlgImgAlertUrl : "Por favor tipee el URL de la imagen", +DlgImgAlertUrl : "Por favor escriba la URL de la imagen", DlgImgLinkTab : "Vínculo", // Flash Dialog @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Seleccionar una referencia", DlgLnkAnchorByName : "Por Nombre de Referencia", DlgLnkAnchorById : "Por ID de elemento", -DlgLnkNoAnchors : "<No hay referencias disponibles en el documento>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(No hay referencias disponibles en el documento)", DlgLnkEMail : "Dirección de E-Mail", DlgLnkEMailSubject : "Título del Mensaje", DlgLnkEMailBody : "Cuerpo del Mensaje", @@ -266,7 +271,7 @@ DlgLnkPopTop : "Posición Derecha", DlnLnkMsgNoUrl : "Por favor tipee el vínculo URL", DlnLnkMsgNoEMail : "Por favor tipee la dirección de e-mail", DlnLnkMsgNoAnchor : "Por favor seleccione una referencia", -DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING +DlnLnkMsgInvPopName : "El nombre debe empezar con un caracter alfanumérico y no debe contener espacios", // Color Dialog DlgColorTitle : "Seleccionar Color", @@ -326,6 +331,9 @@ DlgCellBackColor : "Color de Fondo", DlgCellBorderColor : "Color de Borde", DlgCellBtnSelect : "Seleccione...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Buscar y Reemplazar", + // Find Dialog DlgFindTitle : "Buscar", DlgFindFindBtn : "Buscar", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Reemplazar Todo", DlgReplaceWordChk : "Coincidir toda la palabra", // Paste Operations / Dialog -PasteErrorPaste : "La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de pegado. Por favor use el teclado (Ctrl+V).", PasteErrorCut : "La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado. Por favor use el teclado (Ctrl+X).", PasteErrorCopy : "La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado. Por favor use el teclado (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Pegar como Texto Plano", PasteFromWord : "Pegar desde Word", DlgPasteMsg2 : "Por favor pegue dentro del cuadro utilizando el teclado (<STRONG>Ctrl+V</STRONG>); luego presione <STRONG>OK</STRONG>.", +DlgPasteSec : "Debido a la configuración de seguridad de su navegador, el editor no tiene acceso al portapapeles. Es necesario que lo pegue de nuevo en esta ventana.", DlgPasteIgnoreFont : "Ignorar definiciones de fuentes", DlgPasteRemoveStyles : "Remover definiciones de estilo", DlgPasteCleanBox : "Borrar el contenido del cuadro", @@ -385,9 +393,9 @@ IeSpellDownload : "Módulo de Control de Ortografía no instalado. ¿Desea des // Button Dialog DlgButtonText : "Texto (Valor)", DlgButtonType : "Tipo", -DlgButtonTypeBtn : "Button", //MISSING -DlgButtonTypeSbm : "Submit", //MISSING -DlgButtonTypeRst : "Reset", //MISSING +DlgButtonTypeBtn : "Boton", +DlgButtonTypeSbm : "Enviar", +DlgButtonTypeRst : "Reestablecer", // Checkbox and Radio Button Dialogs DlgCheckboxName : "Nombre", @@ -436,7 +444,7 @@ DlgHiddenValue : "Valor", // Bulleted List Dialog BulletedListProp : "Propiedades de Viñetas", NumberedListProp : "Propiedades de Numeraciones", -DlgLstStart : "Start", //MISSING +DlgLstStart : "Inicio", DlgLstType : "Tipo", DlgLstTypeCircle : "Círculo", DlgLstTypeDisc : "Disco", @@ -459,15 +467,15 @@ DlgDocLangDirLTR : "Izq. a Derecha (LTR)", DlgDocLangDirRTL : "Der. a Izquierda (RTL)", DlgDocLangCode : "Código de Idioma", DlgDocCharSet : "Codif. de Conjunto de Caracteres", -DlgDocCharSetCE : "Central European", //MISSING -DlgDocCharSetCT : "Chinese Traditional (Big5)", //MISSING -DlgDocCharSetCR : "Cyrillic", //MISSING -DlgDocCharSetGR : "Greek", //MISSING -DlgDocCharSetJP : "Japanese", //MISSING -DlgDocCharSetKR : "Korean", //MISSING -DlgDocCharSetTR : "Turkish", //MISSING -DlgDocCharSetUN : "Unicode (UTF-8)", //MISSING -DlgDocCharSetWE : "Western European", //MISSING +DlgDocCharSetCE : "Centro Europeo", +DlgDocCharSetCT : "Chino Tradicional (Big5)", +DlgDocCharSetCR : "Cirílico", +DlgDocCharSetGR : "Griego", +DlgDocCharSetJP : "Japonés", +DlgDocCharSetKR : "Coreano", +DlgDocCharSetTR : "Turco", +DlgDocCharSetUN : "Unicode (UTF-8)", +DlgDocCharSetWE : "Europeo occidental", DlgDocCharSetOther : "Otra Codificación", DlgDocDocType : "Encabezado de Tipo de Documento", @@ -497,7 +505,7 @@ DlgTemplatesTitle : "Contenido de Plantillas", DlgTemplatesSelMsg : "Por favor selecciona la plantilla a abrir en el editor<br>(el contenido actual se perderá):", DlgTemplatesLoading : "Cargando lista de Plantillas. Por favor, aguarde...", DlgTemplatesNoTpl : "(No hay plantillas definidas)", -DlgTemplatesReplace : "Replace actual contents", //MISSING +DlgTemplatesReplace : "Reemplazar el contenido actual", // About Dialog DlgAboutAboutTab : "Acerca de", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Información de Navegador", DlgAboutLicenseTab : "Licencia", DlgAboutVersion : "versión", DlgAboutInfo : "Para mayor información por favor dirigirse a" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/et.js b/editor/editor/lang/et.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: et.js - * Estonian language file. - * - * File Authors: - * Kristjan Kivikangur (kristjan@ttrk.ee) - * Gustav Kaskema + * + * Estonian language file. */ var FCKLang = @@ -47,15 +42,16 @@ Print : "Prindi", SelectAll : "Vali kõik", RemoveFormat : "Eemalda vorming", InsertLinkLbl : "Link", -InsertLink : "Sisesta/Muuda link", +InsertLink : "Sisesta link / Muuda linki", RemoveLink : "Eemalda link", -Anchor : "Sisesta/Muuda ankur", +Anchor : "Sisesta ankur / Muuda ankrut", +AnchorDelete : "Eemalda ankur", InsertImageLbl : "Pilt", -InsertImage : "Sisesta/Muuda pilt", +InsertImage : "Sisesta pilt / Muuda pilti", InsertFlashLbl : "Flash", -InsertFlash : "Sisesta/Muuda flash", +InsertFlash : "Sisesta flash / Muuda flashi", InsertTableLbl : "Tabel", -InsertTable : "Sisesta/Muuda tabel", +InsertTable : "Sisesta tabel / Muuda tabelit", InsertLineLbl : "Joon", InsertLine : "Sisesta horisontaaljoon", InsertSpecialCharLbl: "Erimärgid", @@ -63,10 +59,10 @@ InsertSpecialChar : "Sisesta erimärk", InsertSmileyLbl : "Emotikon", InsertSmiley : "Sisesta emotikon", About : "FCKeditor teave", -Bold : "Rasvane kiri", -Italic : "Kursiiv kiri", -Underline : "Allajoonitud kiri", -StrikeThrough : "Läbijoonitud kiri", +Bold : "Paks", +Italic : "Kursiiv", +Underline : "Allajoonitud", +StrikeThrough : "Läbijoonitud", Subscript : "Allindeks", Superscript : "Ãœlaindeks", LeftJustify : "Vasakjoondus", @@ -75,6 +71,7 @@ RightJustify : "Paremjoondus", BlockJustify : "Rööpjoondus", DecreaseIndent : "Vähenda taanet", IncreaseIndent : "Suurenda taanet", +Blockquote : "Blokktsitaat", Undo : "Võta tagasi", Redo : "Korda toimingut", NumberedListLbl : "Nummerdatud loetelu", @@ -95,7 +92,7 @@ Replace : "Asenda", SpellCheck : "Kontrolli õigekirja", UniversalKeyboard : "Universaalne klaviatuur", PageBreakLbl : "Lehepiir", -PageBreak : "Sisesta lehevahetus koht", +PageBreak : "Sisesta lehevahetuskoht", Form : "Vorm", Checkbox : "Märkeruut", @@ -108,24 +105,31 @@ SelectionField : "Valiklahter", ImageButton : "Piltnupp", FitWindow : "Maksimeeri redaktori mõõtmed", +ShowBlocks : "Näita blokke", // Context Menu EditLink : "Muuda linki", CellCM : "Lahter", RowCM : "Rida", ColumnCM : "Veerg", -InsertRow : "Lisa rida", -DeleteRows : "Eemalda ridu", -InsertColumn : "Lisa veerg", +InsertRowAfter : "Sisesta rida peale", +InsertRowBefore : "Sisesta rida enne", +DeleteRows : "Eemalda read", +InsertColumnAfter : "Sisesta veerg peale", +InsertColumnBefore : "Sisesta veerg enne", DeleteColumns : "Eemalda veerud", -InsertCell : "Lisa lahter", +InsertCellAfter : "Sisesta lahter peale", +InsertCellBefore : "Sisesta lahter enne", DeleteCells : "Eemalda lahtrid", MergeCells : "Ãœhenda lahtrid", -SplitCell : "Lahuta lahtrid", +MergeRight : "Ãœhenda paremale", +MergeDown : "Ãœhenda alla", +HorizontalSplitCell : "Poolita lahter horisontaalselt", +VerticalSplitCell : "Poolita lahter vertikaalselt", TableDelete : "Kustuta tabel", CellProperties : "Lahtri atribuudid", TableProperties : "Tabeli atribuudid", -ImageProperties : "Pildi atribuudid", +ImageProperties : "Pildi atribuudid", FlashProperties : "Flash omadused", AnchorProp : "Ankru omadused", @@ -139,18 +143,18 @@ SelectionFieldProp : "Valiklahtri omadused", TextareaProp : "Tekstiala omadused", FormProp : "Vormi omadused", -FontFormats : "Tavaline;Vormindatud;Aadress;Pealkiri 1;Pealkiri 2;Pealkiri 3;Pealkiri 4;Pealkiri 5;Pealkiri 6", //REVIEW : Check _getfontformat.html +FontFormats : "Tavaline;Vormindatud;Aadress;Pealkiri 1;Pealkiri 2;Pealkiri 3;Pealkiri 4;Pealkiri 5;Pealkiri 6;Tavaline (DIV)", // Alerts and Messages -ProcessingXHTML : "Töötlen XHTML. Palun oota...", +ProcessingXHTML : "Töötlen XHTML'i. Palun oota...", Done : "Tehtud", -PasteWordConfirm : "Tekst, mida soovid lisada paistab pärinevat Wordist. Kas soovid seda enne kleepimist puhastada?", +PasteWordConfirm : "Tekst, mida soovid lisada paistab pärinevat Word'ist. Kas soovid seda enne kleepimist puhastada?", NotCompatiblePaste : "See käsk on saadaval ainult Internet Explorer versioon 5.5 või uuema puhul. Kas soovid kleepida ilma puhastamata?", -UnknownToolbarItem : "Tundmatu tööriistariba üksus \"%1\"", +UnknownToolbarItem : "Tundmatu tööriistarea üksus \"%1\"", UnknownCommand : "Tundmatu käsunimi \"%1\"", NotImplemented : "Käsku ei täidetud", UnknownToolbarSet : "Tööriistariba \"%1\" ei eksisteeri", -NoActiveX : "Sinu interneti sirvija turvalisuse seaded võivad limiteerida mõningaid tekstirdaktori kasutus võimalusi. Sa peaksid võimaldama valiku \"Run ActiveX controls and plug-ins\" oma sirvija seadetes. Muidu võid sa täheldada vigu tekstiredaktori töös ja märgata puuduvaid funktsioone.", +NoActiveX : "Sinu veebisirvija turvalisuse seaded võivad limiteerida mõningaid tekstirdaktori kasutusvõimalusi. Sa peaksid võimaldama valiku \"Run ActiveX controls and plug-ins\" oma veebisirvija seadetes. Muidu võid sa täheldada vigu tekstiredaktori töös ja märgata puuduvaid funktsioone.", BrowseServerBlocked : "Ressursside sirvija avamine ebaõnnestus. Võimalda pop-up akende avanemine.", DialogBlocked : "Ei olenud võimalik avada dialoogi akent. Võimalda pop-up akende avanemine.", @@ -234,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Vali ankur", DlgLnkAnchorByName : "Ankru nime järgi", DlgLnkAnchorById : "Elemendi id järgi", -DlgLnkNoAnchors : "<Selles dokumendis ei ole ankruid>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Selles dokumendis ei ole ankruid)", DlgLnkEMail : "E-posti aadress", DlgLnkEMailSubject : "Sõnumi teema", DlgLnkEMailBody : "Sõnumi tekst", @@ -245,7 +249,7 @@ DlgLnkTarget : "Sihtkoht", DlgLnkTargetFrame : "<raam>", DlgLnkTargetPopup : "<hüpikaken>", DlgLnkTargetBlank : "Uus aken (_blank)", -DlgLnkTargetParent : "Vanem aken (_parent)", +DlgLnkTargetParent : "Esivanem aken (_parent)", DlgLnkTargetSelf : "Sama aken (_self)", DlgLnkTargetTop : "Pealmine aken (_top)", DlgLnkTargetFrameName : "Sihtmärk raami nimi", @@ -267,7 +271,7 @@ DlgLnkPopTop : "Ãœlemine asukoht", DlnLnkMsgNoUrl : "Palun kirjuta lingi URL", DlnLnkMsgNoEMail : "Palun kirjuta E-Posti aadress", DlnLnkMsgNoAnchor : "Palun vali ankur", -DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING +DlnLnkMsgInvPopName : "Hüpikakna nimi peab algama alfabeetilise tähega ja ei tohi sisaldada tühikuid", // Color Dialog DlgColorTitle : "Vali värv", @@ -327,6 +331,9 @@ DlgCellBackColor : "Tausta värv", DlgCellBorderColor : "Joone värv", DlgCellBtnSelect : "Vali...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Otsi ja asenda", + // Find Dialog DlgFindTitle : "Otsi", DlgFindFindBtn : "Otsi", @@ -342,17 +349,17 @@ DlgReplaceReplAllBtn : "Asenda kõik", DlgReplaceWordChk : "Otsi terviklike sõnu", // Paste Operations / Dialog -PasteErrorPaste : "Sinu interneti sirvija turvaseaded ei luba redaktoril automaatselt kleepida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+V).", -PasteErrorCut : "Sinu interneti sirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+X).", -PasteErrorCopy : "Sinu interneti sirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+C).", +PasteErrorCut : "Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+X).", +PasteErrorCopy : "Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+C).", PasteAsText : "Kleebi tavalise tekstina", PasteFromWord : "Kleebi Wordist", DlgPasteMsg2 : "Palun kleebi järgnevasse kasti kasutades klaviatuuri klahvikombinatsiooni (<STRONG>Ctrl+V</STRONG>) ja vajuta seejärel <STRONG>OK</STRONG>.", +DlgPasteSec : "Sinu veebisirvija turvaseadete tõttu, ei oma redaktor otsest ligipääsu lõikelaua andmetele. Sa pead kleepima need uuesti siia aknasse.", DlgPasteIgnoreFont : "Ignoreeri kirja definitsioone", DlgPasteRemoveStyles : "Eemalda stiilide definitsioonid", -DlgPasteCleanBox : "Puhasta ära kast", +DlgPasteCleanBox : "Puhasta kast", // Color Picker ColorAutomatic : "Automaatne", @@ -386,9 +393,9 @@ IeSpellDownload : "Õigekirja kontrollija ei ole installeeritud. Soovid sa sel // Button Dialog DlgButtonText : "Tekst (väärtus)", DlgButtonType : "Tüüp", -DlgButtonTypeBtn : "Button", //MISSING -DlgButtonTypeSbm : "Submit", //MISSING -DlgButtonTypeRst : "Reset", //MISSING +DlgButtonTypeBtn : "Nupp", +DlgButtonTypeSbm : "Saada", +DlgButtonTypeRst : "Lähtesta", // Checkbox and Radio Button Dialogs DlgCheckboxName : "Nimi", @@ -437,7 +444,7 @@ DlgHiddenValue : "Väärtus", // Bulleted List Dialog BulletedListProp : "Täpitud loetelu omadused", NumberedListProp : "Nummerdatud loetelu omadused", -DlgLstStart : "Start", //MISSING +DlgLstStart : "Alusta", DlgLstType : "Tüüp", DlgLstTypeCircle : "Ring", DlgLstTypeDisc : "Ketas", @@ -460,15 +467,15 @@ DlgDocLangDirLTR : "Vasakult paremale (LTR)", DlgDocLangDirRTL : "Paremalt vasakule (RTL)", DlgDocLangCode : "Keele kood", DlgDocCharSet : "Märgistiku kodeering", -DlgDocCharSetCE : "Central European", //MISSING -DlgDocCharSetCT : "Chinese Traditional (Big5)", //MISSING -DlgDocCharSetCR : "Cyrillic", //MISSING -DlgDocCharSetGR : "Greek", //MISSING -DlgDocCharSetJP : "Japanese", //MISSING -DlgDocCharSetKR : "Korean", //MISSING -DlgDocCharSetTR : "Turkish", //MISSING -DlgDocCharSetUN : "Unicode (UTF-8)", //MISSING -DlgDocCharSetWE : "Western European", //MISSING +DlgDocCharSetCE : "Kesk-Euroopa", +DlgDocCharSetCT : "Hiina traditsiooniline (Big5)", +DlgDocCharSetCR : "Kirillisa", +DlgDocCharSetGR : "Kreeka", +DlgDocCharSetJP : "Jaapani", +DlgDocCharSetKR : "Korea", +DlgDocCharSetTR : "Türgi", +DlgDocCharSetUN : "Unicode (UTF-8)", +DlgDocCharSetWE : "Lääne-Euroopa", DlgDocCharSetOther : "Ãœlejäänud märgistike kodeeringud", DlgDocDocType : "Dokumendi tüüppäis", @@ -498,12 +505,12 @@ DlgTemplatesTitle : "Sisu Å¡abloonid", DlgTemplatesSelMsg : "Palun vali Å¡abloon, et avada see redaktoris<br />(praegune sisu läheb kaotsi):", DlgTemplatesLoading : "Laen Å¡abloonide nimekirja. Palun oota...", DlgTemplatesNoTpl : "(Ãœhtegi Å¡ablooni ei ole defineeritud)", -DlgTemplatesReplace : "Replace actual contents", //MISSING +DlgTemplatesReplace : "Asenda tegelik sisu", // About Dialog DlgAboutAboutTab : "Teave", -DlgAboutBrowserInfoTab : "Interneti sirvija info", +DlgAboutBrowserInfoTab : "Veebisirvija info", DlgAboutLicenseTab : "Litsents", DlgAboutVersion : "versioon", DlgAboutInfo : "Täpsema info saamiseks mine" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/eu.js b/editor/editor/lang/eu.js @@ -1,29 +1,25 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: eu.js - * Basque language file. - * Euskara hizkuntza fitxategia. - * - * File Authors: - * Ibon Igartua (Librezale.org) + * + * Basque language file. + * Euskara hizkuntza fitxategia. */ var FCKLang = @@ -50,6 +46,7 @@ InsertLinkLbl : "Esteka", InsertLink : "Txertatu/Editatu Esteka", RemoveLink : "Kendu Esteka", Anchor : "Aingura", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Irudia", InsertImage : "Txertatu/Editatu Irudia", InsertFlashLbl : "Flasha", @@ -75,6 +72,7 @@ RightJustify : "Lerrokatu Eskuman", BlockJustify : "Justifikatu", DecreaseIndent : "Txikitu Koska", IncreaseIndent : "Handitu Koska", +Blockquote : "Blockquote", //MISSING Undo : "Desegin", Redo : "Berregin", NumberedListLbl : "Zenbakidun Zerrenda", @@ -108,20 +106,27 @@ SelectionField : "Hautespen Eremua", ImageButton : "Irudi Botoia", FitWindow : "Maximizatu editorearen tamaina", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Aldatu Esteka", CellCM : "Gelaxka", RowCM : "Errenkada", ColumnCM : "Zutabea", -InsertRow : "Txertatu Errenkada", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Ezabatu Errenkadak", -InsertColumn : "Txertatu Zutabea", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Ezabatu Zutabeak", -InsertCell : "Txertatu Gelaxka", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Kendu Gelaxkak", MergeCells : "Batu Gelaxkak", -SplitCell : "Zatitu Gelaxka", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Ezabatu Taula", CellProperties : "Gelaxkaren Ezaugarriak", TableProperties : "Taularen Ezaugarriak", @@ -139,7 +144,7 @@ SelectionFieldProp : "Hautespen Eremuaren Ezaugarriak", TextareaProp : "Testu-arearen Ezaugarriak", FormProp : "Formularioaren Ezaugarriak", -FontFormats : "Arrunta;Formateatua;Helbidea;Izenburua 1;Izenburua 2;Izenburua 3;Izenburua 4;Izenburua 5;Izenburua 6;Paragrafoa (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Arrunta;Formateatua;Helbidea;Izenburua 1;Izenburua 2;Izenburua 3;Izenburua 4;Izenburua 5;Izenburua 6;Paragrafoa (DIV)", // Alerts and Messages ProcessingXHTML : "XHTML Prozesatzen. Itxaron mesedez...", @@ -234,7 +239,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Aingura bat hautatu", DlgLnkAnchorByName : "Aingura izenagatik", DlgLnkAnchorById : "Elementuaren ID-gatik", -DlgLnkNoAnchors : "<Ez daude aingurak eskuragarri dokumentuan>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Ez daude aingurak eskuragarri dokumentuan)", DlgLnkEMail : "ePosta Helbidea", DlgLnkEMailSubject : "Mezuaren Gaia", DlgLnkEMailBody : "Mezuaren Gorputza", @@ -327,6 +332,9 @@ DlgCellBackColor : "Atzeko Kolorea", DlgCellBorderColor : "Ertzako Kolorea", DlgCellBtnSelect : "Aukertau...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Bilaketa", DlgFindFindBtn : "Bilatu", @@ -342,7 +350,6 @@ DlgReplaceReplAllBtn : "Ordeztu Guztiak", DlgReplaceWordChk : "Esaldi osoa bilatu", // Paste Operations / Dialog -PasteErrorPaste : "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki itsastea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+V).", PasteErrorCut : "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki moztea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+X).", PasteErrorCopy : "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki kopiatzea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+C).", @@ -350,6 +357,7 @@ PasteAsText : "Testu Arrunta bezala Itsatsi", PasteFromWord : "Word-etik itsatsi", DlgPasteMsg2 : "Mesedez teklatua erabilita (<STRONG>Ctrl+V</STRONG>) ondorego eremuan testua itsatsi eta <STRONG>OK</STRONG> sakatu.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Letra Motaren definizioa ezikusi", DlgPasteRemoveStyles : "Estilo definizioak kendu", DlgPasteCleanBox : "Testu-eremua Garbitu", @@ -506,4 +514,4 @@ DlgAboutBrowserInfoTab : "Nabigatzailearen Informazioa", DlgAboutLicenseTab : "Lizentzia", DlgAboutVersion : "bertsioa", DlgAboutInfo : "Informazio gehiago eskuratzeko hona joan" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/fa.js b/editor/editor/lang/fa.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fa.js - * Persian language file. - * - * File Authors: - * Hamed Taj-Abadi (hamed@ranginkaman.com) - * Pooyan Mahdavi (pooyanmx -@- gmail -.- com) + * + * Persian language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "پیوند", InsertLink : "گنجاندن/ویرایش Ùپیوند", RemoveLink : "برداشتن پیوند", Anchor : "گنجاندن/ویرایش Ùلنگر", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "تصویر", InsertImage : "گنجاندن/ویرایش Ùتصویر", InsertFlashLbl : "Flash", @@ -75,6 +71,7 @@ RightJustify : "راست‌چین", BlockJustify : "بلوک‌چین", DecreaseIndent : "کاهش تورÙتگی", IncreaseIndent : "اÙزایش تورÙتگی", +Blockquote : "Blockquote", //MISSING Undo : "واچیدن", Redo : "بازچیدن", NumberedListLbl : "Ùهرست شماره‌دار", @@ -108,20 +105,27 @@ SelectionField : "Ùیلد چندگزینه‌ای", ImageButton : "دکمهٴ تصویری", FitWindow : "بیشینه‌سازی Ùاندازهٴ ویرایشگر", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "ویرایش پیوند", CellCM : "سلول", RowCM : "سطر", ColumnCM : "ستون", -InsertRow : "گنجاندن سطر", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "حذ٠سطرها", -InsertColumn : "گنجاندن ستون", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "حذ٠ستونها", -InsertCell : "گنجاندن سلول", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "حذ٠سلولها", MergeCells : "ادغام سلولها", -SplitCell : "جداسازی سلول", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "پاک‌کردن جدول", CellProperties : "ویژگیهای سلول", TableProperties : "ویژگیهای جدول", @@ -139,12 +143,12 @@ SelectionFieldProp : "ویژگیهای Ùیلد چندگزینه‌ای", TextareaProp : "ویژگیهای ناحیهٴ متنی", FormProp : "ویژگیهای Ùرم", -FontFormats : "نرمال;Ùرمت‌شده;آدرس;سرنویس 1;سرنویس 2;سرنویس 3;سرنویس 4;سرنویس 5;سرنویس 6;بند;(DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "نرمال;Ùرمت‌شده;آدرس;سرنویس 1;سرنویس 2;سرنویس 3;سرنویس 4;سرنویس 5;سرنویس 6;بند;(DIV)", // Alerts and Messages ProcessingXHTML : "پردازش XHTML. لطÙا صبر کنید...", Done : "انجام شد", -PasteWordConfirm : "Ú©Ù¾ÛŒ شده است. آیا می‌خواهید قبل از چسباندن آن را پاک‌سازی کنید؟ Word متنی Ú©Ù‡ می‌خواهید بچسبانید به نظر می‌رسد از", +PasteWordConfirm : "متنی Ú©Ù‡ می‌خواهید بچسبانید به نظر می‌رسد از Word Ú©Ù¾ÛŒ شده است. آیا می‌خواهید قبل از چسباندن آن را پاک‌سازی کنید؟", NotCompatiblePaste : "این Ùرمان برای مرورگر Internet Explorer از نگارش 5.5 یا بالاتر در دسترس است. آیا می‌خواهید بدون پاک‌سازی، متن را بچسبانید؟", UnknownToolbarItem : "Ùقرهٴ نوارابزار ناشناخته \"%1\"", UnknownCommand : "نام دستور ناشناخته \"%1\"", @@ -234,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "یک لنگر برگزینید", DlgLnkAnchorByName : "با نام لنگر", DlgLnkAnchorById : "با شناسهٴ المان", -DlgLnkNoAnchors : "<در این سند لنگری دردسترس نیست>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(در این سند لنگری دردسترس نیست)", DlgLnkEMail : "نشانی پست الکترونیکی", DlgLnkEMailSubject : "موضوع پیام", DlgLnkEMailBody : "متن پیام", @@ -251,7 +255,7 @@ DlgLnkTargetTop : "بالاترین پنجره (_top)", DlgLnkTargetFrameName : "نام Ùریم مقصد", DlgLnkPopWinName : "نام پنجرهٴ پاپاپ", DlgLnkPopWinFeat : "ویژگیهای پنجرهٴ پاپاپ", -DlgLnkPopResize : "قابل تغیر اندازه", +DlgLnkPopResize : "قابل تغییر اندازه", DlgLnkPopLocation : "نوار موقعیت", DlgLnkPopMenu : "نوار منو", DlgLnkPopScroll : "میله‌های پیمایش", @@ -327,6 +331,9 @@ DlgCellBackColor : "رنگ پس‌زمینه", DlgCellBorderColor : "رنگ لبه", DlgCellBtnSelect : "برگزینید...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "یاÙتن", DlgFindFindBtn : "یاÙتن", @@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "جایگزینی همهٴ یاÙته‌ها", DlgReplaceWordChk : "همسانی با واژهٴ کامل", // Paste Operations / Dialog -PasteErrorPaste : "تنظیمات امنیتی مرورگر شما اجازه نمی‌دهد Ú©Ù‡ ویرایشگر به طور خودکار عملکردهای چسباندن را انجام دهد. لطÙا با دکمه‌های صÙحه‌کلید این کار را انجام دهید (Ctrl+V).", PasteErrorCut : "تنظیمات امنیتی مرورگر شما اجازه نمی‌دهد Ú©Ù‡ ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطÙا با دکمه‌های صÙحه‌کلید این کار را انجام دهید (Ctrl+X).", PasteErrorCopy : "تنظیمات امنیتی مرورگر شما اجازه نمی‌دهد Ú©Ù‡ ویرایشگر به طور خودکار عملکردهای کپی‌کردن را انجام دهد. لطÙا با دکمه‌های صÙحه‌کلید این کار را انجام دهید (Ctrl+C).", @@ -350,6 +356,7 @@ PasteAsText : "چسباندن به عنوان متن Ùساده", PasteFromWord : "چسباندن از Word", DlgPasteMsg2 : "لطÙا متن را با کلیدهای (<STRONG>Ctrl+V</STRONG>) در این جعبهٴ متنی بچسبانید Ùˆ <STRONG>پذیرش</STRONG> را بزنید.", +DlgPasteSec : "به خاطر تنظیمات امنیتی مرورگر شما، ویرایشگر نمی‌تواند دسترسی مستقیم به داده‌های clipboard داشته باشد. شما باید دوباره آنرا در این پنجره بچسبانید.", DlgPasteIgnoreFont : "چشم‌پوشی از تعاری٠نوع قلم", DlgPasteRemoveStyles : "چشم‌پوشی از تعاری٠سبک (style)", DlgPasteCleanBox : "پاک‌کردن ناحیه", @@ -367,8 +374,8 @@ DlgAnchorName : "نام لنگر", DlgAnchorErrorName : "لطÙا نام لنگر را بنویسید", // Speller Pages Dialog -DlgSpellNotInDic : "در واژه‌نامه موجود نیست", -DlgSpellChangeTo : "تغیر به", +DlgSpellNotInDic : "در واژه‌نامه یاÙت نشد", +DlgSpellChangeTo : "تغییر به", DlgSpellBtnIgnore : "چشم‌پوشی", DlgSpellBtnIgnoreAll : "چشم‌پوشی همه", DlgSpellBtnReplace : "جایگزینی", @@ -377,9 +384,9 @@ DlgSpellBtnUndo : "واچینش", DlgSpellNoSuggestions : "- پیشنهادی نیست -", DlgSpellProgress : "بررسی املا در حال انجام...", DlgSpellNoMispell : "بررسی املا انجام شد. هیچ غلط‌املائی یاÙت نشد", -DlgSpellNoChanges : "بررسی املا انجام شد. هیچ واژه‌ای تغیر نیاÙت", -DlgSpellOneChange : "بررسی املا انجام شد. یک واژه تغیر یاÙت", -DlgSpellManyChanges : "بررسی املا انجام شد. %1 واژه تغیر یاÙت", +DlgSpellNoChanges : "بررسی املا انجام شد. هیچ واژه‌ای تغییر نیاÙت", +DlgSpellOneChange : "بررسی املا انجام شد. یک واژه تغییر یاÙت", +DlgSpellManyChanges : "بررسی املا انجام شد. %1 واژه تغییر یاÙت", IeSpellDownload : "بررسی‌کنندهٴ املا نصب نشده است. آیا می‌خواهید آن را هم‌اکنون دریاÙت کنید؟", @@ -397,7 +404,7 @@ DlgCheckboxSelected : "برگزیده", // Form Dialog DlgFormName : "نام", -DlgFormAction : "اقدام", +DlgFormAction : "رویداد", DlgFormMethod : "متد", // Select Field Dialog @@ -406,15 +413,15 @@ DlgSelectValue : "مقدار", DlgSelectSize : "اندازه", DlgSelectLines : "خطوط", DlgSelectChkMulti : "گزینش چندگانه Ùراهم باشد", -DlgSelectOpAvail : "گزینه‌های موجود", +DlgSelectOpAvail : "گزینه‌های دردسترس", DlgSelectOpText : "متن", DlgSelectOpValue : "مقدار", -DlgSelectBtnAdd : "اضاÙÙ‡", +DlgSelectBtnAdd : "اÙزودن", DlgSelectBtnModify : "ویرایش", DlgSelectBtnUp : "بالا", DlgSelectBtnDown : "پائین", DlgSelectBtnSetValue : "تنظیم به عنوان مقدار Ùبرگزیده", -DlgSelectBtnDelete : "حذÙ", +DlgSelectBtnDelete : "پاک‌کردن", // Textarea Dialog DlgTextareaName : "نام", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "اطلاعات مرورگر", DlgAboutLicenseTab : "گواهینامه", DlgAboutVersion : "نگارش", DlgAboutInfo : "برای آگاهی بیشتر به این نشانی بروید" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/fi.js b/editor/editor/lang/fi.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fi.js - * Finnish language file. - * - * File Authors: - * Marko Korhonen (marko.korhonen@datafisher.com) + * + * Finnish language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Linkki", InsertLink : "Lisää linkki/muokkaa linkkiä", RemoveLink : "Poista linkki", Anchor : "Lisää ankkuri/muokkaa ankkuria", +AnchorDelete : "Poista ankkuri", InsertImageLbl : "Kuva", InsertImage : "Lisää kuva/muokkaa kuvaa", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "Tasaa oikeat reunat", BlockJustify : "Tasaa molemmat reunat", DecreaseIndent : "Pienennä sisennystä", IncreaseIndent : "Suurenna sisennystä", +Blockquote : "Lainaus", Undo : "Kumoa", Redo : "Toista", NumberedListLbl : "Numerointi", @@ -107,20 +105,27 @@ SelectionField : "Valintakenttä", ImageButton : "Kuvapainike", FitWindow : "Suurenna editori koko ikkunaan", +ShowBlocks : "Näytä elementit", // Context Menu EditLink : "Muokkaa linkkiä", CellCM : "Solu", RowCM : "Rivi", ColumnCM : "Sarake", -InsertRow : "Lisää rivi", +InsertRowAfter : "Lisää rivi alapuolelle", +InsertRowBefore : "Lisää rivi yläpuolelle", DeleteRows : "Poista rivit", -InsertColumn : "Lisää sarake", +InsertColumnAfter : "Lisää sarake oikealle", +InsertColumnBefore : "Lisää sarake vasemmalle", DeleteColumns : "Poista sarakkeet", -InsertCell : "Lisää solu", +InsertCellAfter : "Lisää solu perään", +InsertCellBefore : "Lisää solu eteen", DeleteCells : "Poista solut", MergeCells : "Yhdistä solut", -SplitCell : "Jaa solu", +MergeRight : "Yhdistä oikealla olevan kanssa", +MergeDown : "Yhdistä alla olevan kanssa", +HorizontalSplitCell : "Jaa solu vaakasuunnassa", +VerticalSplitCell : "Jaa solu pystysuunnassa", TableDelete : "Poista taulu", CellProperties : "Solun ominaisuudet", TableProperties : "Taulun ominaisuudet", @@ -138,7 +143,7 @@ SelectionFieldProp : "Valintakentän ominaisuudet", TextareaProp : "Tekstilaatikon ominaisuudet", FormProp : "Lomakkeen ominaisuudet", -FontFormats : "Normaali;Muotoiltu;Osoite;Otsikko 1;Otsikko 2;Otsikko 3;Otsikko 4;Otsikko 5;Otsikko 6", //REVIEW : Check _getfontformat.html +FontFormats : "Normaali;Muotoiltu;Osoite;Otsikko 1;Otsikko 2;Otsikko 3;Otsikko 4;Otsikko 5;Otsikko 6", // Alerts and Messages ProcessingXHTML : "Prosessoidaan XHTML:ää. Odota hetki...", @@ -233,7 +238,7 @@ DlgLnkURL : "Osoite", DlgLnkAnchorSel : "Valitse ankkuri", DlgLnkAnchorByName : "Ankkurin nimen mukaan", DlgLnkAnchorById : "Ankkurin ID:n mukaan", -DlgLnkNoAnchors : "<Ei ankkureita tässä dokumentissa>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Ei ankkureita tässä dokumentissa)", DlgLnkEMail : "Sähköpostiosoite", DlgLnkEMailSubject : "Aihe", DlgLnkEMailBody : "Viesti", @@ -266,7 +271,7 @@ DlgLnkPopTop : "Ylhäältä (px)", DlnLnkMsgNoUrl : "Linkille on kirjoitettava URL", DlnLnkMsgNoEMail : "Kirjoita sähköpostiosoite", DlnLnkMsgNoAnchor : "Valitse ankkuri", -DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING +DlnLnkMsgInvPopName : "Popup-ikkunan nimi pitää alkaa aakkosella ja ei saa sisältää välejä", // Color Dialog DlgColorTitle : "Valitse väri", @@ -326,6 +331,9 @@ DlgCellBackColor : "Taustaväri", DlgCellBorderColor : "Rajan väri", DlgCellBtnSelect : "Valitse...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Etsi ja korvaa", + // Find Dialog DlgFindTitle : "Etsi", DlgFindFindBtn : "Etsi", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Korvaa kaikki", DlgReplaceWordChk : "Koko sana", // Paste Operations / Dialog -PasteErrorPaste : "Selaimesi turva-asetukset eivät salli editorin toteuttaa liittämistä. Käytä näppäimistöä liittämiseen (Ctrl+V).", PasteErrorCut : "Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).", PasteErrorCopy : "Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Liitä tekstinä", PasteFromWord : "Liitä Wordista", DlgPasteMsg2 : "Liitä painamalla (<STRONG>Ctrl+V</STRONG>) ja painamalla <STRONG>OK</STRONG>.", +DlgPasteSec : "Selaimesi turva-asetukset eivät salli editorin käyttää leikepöytää suoraan. Sinun pitää suorittaa liittäminen tässä ikkunassa.", DlgPasteIgnoreFont : "Jätä huomioimatta fonttimääritykset", DlgPasteRemoveStyles : "Poista tyylimääritykset", DlgPasteCleanBox : "Tyhjennä", @@ -385,9 +393,9 @@ IeSpellDownload : "Oikeinkirjoituksen tarkistusta ei ole asennettu. Haluatko l // Button Dialog DlgButtonText : "Teksti (arvo)", DlgButtonType : "Tyyppi", -DlgButtonTypeBtn : "Button", //MISSING -DlgButtonTypeSbm : "Submit", //MISSING -DlgButtonTypeRst : "Reset", //MISSING +DlgButtonTypeBtn : "Painike", +DlgButtonTypeSbm : "Lähetä", +DlgButtonTypeRst : "Tyhjennä", // Checkbox and Radio Button Dialogs DlgCheckboxName : "Nimi", @@ -436,7 +444,7 @@ DlgHiddenValue : "Arvo", // Bulleted List Dialog BulletedListProp : "Luettelon ominaisuudet", NumberedListProp : "Numeroinnin ominaisuudet", -DlgLstStart : "Start", //MISSING +DlgLstStart : "Alku", DlgLstType : "Tyyppi", DlgLstTypeCircle : "Kehä", DlgLstTypeDisc : "Ympyrä", @@ -458,17 +466,17 @@ DlgDocLangDir : "Kielen suunta", DlgDocLangDirLTR : "Vasemmalta oikealle (LTR)", DlgDocLangDirRTL : "Oikealta vasemmalle (RTL)", DlgDocLangCode : "Kielikoodi", -DlgDocCharSet : "Merkistäkoodaus", -DlgDocCharSetCE : "Central European", //MISSING -DlgDocCharSetCT : "Chinese Traditional (Big5)", //MISSING -DlgDocCharSetCR : "Cyrillic", //MISSING -DlgDocCharSetGR : "Greek", //MISSING -DlgDocCharSetJP : "Japanese", //MISSING -DlgDocCharSetKR : "Korean", //MISSING -DlgDocCharSetTR : "Turkish", //MISSING -DlgDocCharSetUN : "Unicode (UTF-8)", //MISSING -DlgDocCharSetWE : "Western European", //MISSING -DlgDocCharSetOther : "Muu merkistäkoodaus", +DlgDocCharSet : "Merkistökoodaus", +DlgDocCharSetCE : "Keskieurooppalainen", +DlgDocCharSetCT : "Kiina, perinteinen (Big5)", +DlgDocCharSetCR : "Kyrillinen", +DlgDocCharSetGR : "Kreikka", +DlgDocCharSetJP : "Japani", +DlgDocCharSetKR : "Korealainen", +DlgDocCharSetTR : "Turkkilainen", +DlgDocCharSetUN : "Unicode (UTF-8)", +DlgDocCharSetWE : "Länsieurooppalainen", +DlgDocCharSetOther : "Muu merkistökoodaus", DlgDocDocType : "Dokumentin tyyppi", DlgDocDocTypeOther : "Muu dokumentin tyyppi", @@ -497,7 +505,7 @@ DlgTemplatesTitle : "Sisältöpohjat", DlgTemplatesSelMsg : "Valitse pohja editoriin<br>(aiempi sisältö menetetään):", DlgTemplatesLoading : "Ladataan listaa pohjista. Hetkinen...", DlgTemplatesNoTpl : "(Ei määriteltyjä pohjia)", -DlgTemplatesReplace : "Replace actual contents", //MISSING +DlgTemplatesReplace : "Korvaa editorin koko sisältö", // About Dialog DlgAboutAboutTab : "Editorista", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Selaimen tiedot", DlgAboutLicenseTab : "Lisenssi", DlgAboutVersion : "versio", DlgAboutInfo : "Lisää tietoa osoitteesta" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/fo.js b/editor/editor/lang/fo.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fo.js - * Faroese language file. - * - * File Authors: - * Jón Jallur Gaasedal (jon@faroenet.fo) + * + * Faroese language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Tilknýti", InsertLink : "Ger/broyt tilknýti", RemoveLink : "Strika tilknýti", Anchor : "Ger/broyt marknastein", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Myndir", InsertImage : "Set inn/broyt mynd", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "Høgrasett", BlockJustify : "Javnir tekstkantar", DecreaseIndent : "Minka reglubrotarinntriv", IncreaseIndent : "Økja reglubrotarinntriv", +Blockquote : "Blockquote", //MISSING Undo : "Angra", Redo : "Vend aftur", NumberedListLbl : "Talmerktur listi", @@ -107,20 +105,27 @@ SelectionField : "Valskrá", ImageButton : "Myndaknøttur", FitWindow : "Set tekstviðgera til fulla stødd", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Broyt tilknýti", CellCM : "Meski", RowCM : "Rað", ColumnCM : "Kolonna", -InsertRow : "Nýtt rað", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Strika røðir", -InsertColumn : "Nýggj kolonna", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Strika kolonnur", -InsertCell : "Nýggjur meski", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Strika meskar", MergeCells : "Flætta meskar", -SplitCell : "Být sundur meskar", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Strika tabell", CellProperties : "Meskueginleikar", TableProperties : "Tabelleginleikar", @@ -138,7 +143,7 @@ SelectionFieldProp : "Eginleikar fyri valskrá", TextareaProp : "Eginleikar fyri tekstumráði", FormProp : "Eginleikar fyri Form", -FontFormats : "Vanligt;Sniðgivið;Adressa;Yvirskrift 1;Yvirskrift 2;Yvirskrift 3;Yvirskrift 4;Yvirskrift 5;Yvirskrift 6", //REVIEW : Check _getfontformat.html +FontFormats : "Vanligt;Sniðgivið;Adressa;Yvirskrift 1;Yvirskrift 2;Yvirskrift 3;Yvirskrift 4;Yvirskrift 5;Yvirskrift 6", // Alerts and Messages ProcessingXHTML : "XHTML verður viðgjørt. Bíða við...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Vel ein marknastein", DlgLnkAnchorByName : "Eftir navni á marknasteini", DlgLnkAnchorById : "Eftir element Id", -DlgLnkNoAnchors : "(Eingir marknasteinar eru í hesum dokumentið)", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Eingir marknasteinar eru í hesum dokumentið)", DlgLnkEMail : "Teldupost-adressa", DlgLnkEMailSubject : "Evni", DlgLnkEMailBody : "Breyðtekstur", @@ -326,6 +331,9 @@ DlgCellBackColor : "Bakgrundslitur", DlgCellBorderColor : "Litur á borda", DlgCellBtnSelect : "Vel...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Finn", DlgFindFindBtn : "Finn", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Yvirskriva alt", DlgReplaceWordChk : "Bert heil orð", // Paste Operations / Dialog -PasteErrorPaste : "Trygdaruppseting alnótskagans forðar tekstviðgeranum í at seta tekstin inn. Vinarliga nýt knappaborðið til at seta tekstin inn (CTRL+V).", PasteErrorCut : "Trygdaruppseting alnótskagans forðar tekstviðgeranum í at kvetta tekstin. vinarliga nýt knappaborðið til at kvetta tekstin (CTRL+X).", PasteErrorCopy : "Trygdaruppseting alnótskagans forðar tekstviðgeranum í at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (CTRL+C).", @@ -349,6 +356,7 @@ PasteAsText : "Innrita som reinan tekst", PasteFromWord : "Innrita fra Word", DlgPasteMsg2 : "Vinarliga koyr tekstin í hendan rútin við knappaborðinum (<strong>CTRL+V</strong>) og klikk á <strong>Góðtak</strong>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Forfjóna Font definitiónirnar", DlgPasteRemoveStyles : "Strika Styles definitiónir", DlgPasteCleanBox : "Reinskanarkassi", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Upplýsingar um alnótskagan", DlgAboutLicenseTab : "License", DlgAboutVersion : "version", DlgAboutInfo : "Fyri fleiri upplýsingar, far til" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/fr.js b/editor/editor/lang/fr.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fr.js - * French language file. - * - * File Authors: - * Hubert Garrido (liane@users.sourceforge.net) + * + * French language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Lien", InsertLink : "Insérer/modifier le lien", RemoveLink : "Supprimer le lien", Anchor : "Insérer/modifier l'ancre", +AnchorDelete : "Supprimer l'ancre", InsertImageLbl : "Image", InsertImage : "Insérer/modifier l'image", InsertFlashLbl : "Animation Flash", @@ -74,6 +71,7 @@ RightJustify : "Aligné à Droite", BlockJustify : "Texte justifié", DecreaseIndent : "Diminuer le retrait", IncreaseIndent : "Augmenter le retrait", +Blockquote : "Citation", Undo : "Annuler", Redo : "Refaire", NumberedListLbl : "Liste numérotée", @@ -107,20 +105,27 @@ SelectionField : "Liste/menu", ImageButton : "Bouton image", FitWindow : "Edition pleine page", +ShowBlocks : "Afficher les blocs", // Context Menu EditLink : "Modifier le lien", CellCM : "Cellule", RowCM : "Ligne", ColumnCM : "Colonne", -InsertRow : "Insérer une ligne", +InsertRowAfter : "Insérer une ligne après", +InsertRowBefore : "Insérer une ligne avant", DeleteRows : "Supprimer des lignes", -InsertColumn : "Insérer une colonne", +InsertColumnAfter : "Insérer une colonne après", +InsertColumnBefore : "Insérer une colonne avant", DeleteColumns : "Supprimer des colonnes", -InsertCell : "Insérer une cellule", +InsertCellAfter : "Insérer une cellule après", +InsertCellBefore : "Insérer une cellule avant", DeleteCells : "Supprimer des cellules", MergeCells : "Fusionner les cellules", -SplitCell : "Scinder les cellules", +MergeRight : "Fusionner à droite", +MergeDown : "Fusionner en bas", +HorizontalSplitCell : "Scinder la cellule horizontalement", +VerticalSplitCell : "Scinder la cellule verticalement", TableDelete : "Supprimer le tableau", CellProperties : "Propriétés de cellule", TableProperties : "Propriétés du tableau", @@ -138,7 +143,7 @@ SelectionFieldProp : "Propriétés de la liste/du menu", TextareaProp : "Propriétés de la zone de texte", FormProp : "Propriétés du formulaire", -FontFormats : "Normal;Formaté;Adresse;En-tête 1;En-tête 2;En-tête 3;En-tête 4;En-tête 5;En-tête 6;Normal (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formaté;Adresse;En-tête 1;En-tête 2;En-tête 3;En-tête 4;En-tête 5;En-tête 6;Normal (DIV)", // Alerts and Messages ProcessingXHTML : "Calcul XHTML. Veuillez patienter...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Sélectionner une ancre", DlgLnkAnchorByName : "Par nom", DlgLnkAnchorById : "Par id", -DlgLnkNoAnchors : "<Pas d'ancre disponible dans le document>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Pas d'ancre disponible dans le document)", DlgLnkEMail : "Adresse E-Mail", DlgLnkEMailSubject : "Sujet du message", DlgLnkEMailBody : "Corps du message", @@ -326,6 +331,9 @@ DlgCellBackColor : "Fond", DlgCellBorderColor : "Bordure", DlgCellBtnSelect : "Choisir...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Chercher et Remplacer", + // Find Dialog DlgFindTitle : "Chercher", DlgFindFindBtn : "Chercher", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Tout remplacer", DlgReplaceWordChk : "Mot entier", // Paste Operations / Dialog -PasteErrorPaste : "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de coller automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+V).", PasteErrorCut : "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+X).", PasteErrorCopy : "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Coller comme texte", PasteFromWord : "Coller à partir de Word", DlgPasteMsg2 : "Veuillez coller dans la zone ci-dessous en utilisant le clavier (<STRONG>Ctrl+V</STRONG>) et cliquez sur <STRONG>OK</STRONG>.", +DlgPasteSec : "A cause des paramètres de sécurité de votre navigateur, l'éditeur ne peut accéder au presse-papier directement. Vous devez coller à nouveau le contenu dans cette fenêtre.", DlgPasteIgnoreFont : "Ignorer les polices de caractères", DlgPasteRemoveStyles : "Supprimer les styles", DlgPasteCleanBox : "Effacer le contenu", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Navigateur", DlgAboutLicenseTab : "License", DlgAboutVersion : "version", DlgAboutInfo : "Pour plus d'informations, aller à" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/gl.js b/editor/editor/lang/gl.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: gl.js - * Galician language file. - * - * File Authors: - * Fernando Riveiro Lopez + * + * Galician language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Ligazón", InsertLink : "Inserir/Editar Ligazón", RemoveLink : "Eliminar Ligazón", Anchor : "Inserir/Editar Referencia", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Imaxe", InsertImage : "Inserir/Editar Imaxe", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "Aliñar á Dereita", BlockJustify : "Xustificado", DecreaseIndent : "Disminuir Sangría", IncreaseIndent : "Aumentar Sangría", +Blockquote : "Blockquote", //MISSING Undo : "Desfacer", Redo : "Refacer", NumberedListLbl : "Lista Numerada", @@ -107,20 +105,27 @@ SelectionField : "Campo de Selección", ImageButton : "Botón de Imaxe", FitWindow : "Maximizar o tamaño do editor", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Editar Ligazón", CellCM : "Cela", RowCM : "Fila", ColumnCM : "Columna", -InsertRow : "Inserir Fila", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Borrar Filas", -InsertColumn : "Inserir Columna", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Borrar Columnas", -InsertCell : "Inserir Cela", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Borrar Cela", MergeCells : "Unir Celas", -SplitCell : "Partir Celas", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Borrar Táboa", CellProperties : "Propriedades da Cela", TableProperties : "Propriedades da Táboa", @@ -138,7 +143,7 @@ SelectionFieldProp : "Propriedades do Campo de Selección", TextareaProp : "Propriedades da Ãrea de Texto", FormProp : "Propriedades do Formulario", -FontFormats : "Normal;Formateado;Enderezo;Enacabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Paragraph (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formateado;Enderezo;Enacabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Paragraph (DIV)", // Alerts and Messages ProcessingXHTML : "Procesando XHTML. Por facor, agarde...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Seleccionar unha Referencia", DlgLnkAnchorByName : "Por Nome de Referencia", DlgLnkAnchorById : "Por Element Id", -DlgLnkNoAnchors : "<Non hai referencias disponibles no documento>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Non hai referencias disponibles no documento)", DlgLnkEMail : "Enderezo de E-Mail", DlgLnkEMailSubject : "Asunto do Mensaxe", DlgLnkEMailBody : "Corpo do Mensaxe", @@ -326,6 +331,9 @@ DlgCellBackColor : "Color de Fondo", DlgCellBorderColor : "Color de Borde", DlgCellBtnSelect : "Seleccionar...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Procurar", DlgFindFindBtn : "Procurar", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Substitiur Todo", DlgReplaceWordChk : "Coincidir con toda a palabra", // Paste Operations / Dialog -PasteErrorPaste : "Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de pegado. Por favor, use o teclado para iso (Ctrl+V).", PasteErrorCut : "Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de corte. Por favor, use o teclado para iso (Ctrl+X).", PasteErrorCopy : "Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de copia. Por favor, use o teclado para iso (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Pegar como texto plano", PasteFromWord : "Pegar dende Word", DlgPasteMsg2 : "Por favor, pegue dentro do seguinte cadro usando o teclado (<STRONG>Ctrl+V</STRONG>) e pulse <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Ignorar as definicións de Tipografía", DlgPasteRemoveStyles : "Eliminar as definicións de Estilos", DlgPasteCleanBox : "Limpar o Cadro", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Información do Navegador", DlgAboutLicenseTab : "Licencia", DlgAboutVersion : "versión", DlgAboutInfo : "Para máis información visitar:" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/he.js b/editor/editor/lang/he.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: he.js - * Hebrew language file. - * - * File Authors: - * Tamir Mordo (tamir@tetitu.co.il) - * Ophir Radnitz (ophir@liqweed.net) + * + * Hebrew language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "קישור", InsertLink : "הוספת/עריכת קישור", RemoveLink : "הסרת הקישור", Anchor : "הוספת/עריכת נקודת עיגון", +AnchorDelete : "הסר נקודת עיגון", InsertImageLbl : "תמונה", InsertImage : "הוספת/עריכת תמונה", InsertFlashLbl : "פל×ש", @@ -75,6 +71,7 @@ RightJustify : "יישור לימין", BlockJustify : "יישור לשוליי×", DecreaseIndent : "הקטנת ×ינדנטציה", IncreaseIndent : "הגדלת ×ינדנטציה", +Blockquote : "בלוק ציטוט", Undo : "ביטול צעד ×חרון", Redo : "חזרה על צעד ×חרון", NumberedListLbl : "רשימה ממוספרת", @@ -108,20 +105,27 @@ SelectionField : "שדה בחירה", ImageButton : "כפתור תמונה", FitWindow : "הגדל ×ת גודל העורך", +ShowBlocks : "הצג בלוקי×", // Context Menu EditLink : "עריכת קישור", CellCM : "ת×", RowCM : "שורה", ColumnCM : "עמודה", -InsertRow : "הוספת שורה", +InsertRowAfter : "הוסף שורה ×חרי", +InsertRowBefore : "הוסף שורה לפני", DeleteRows : "מחיקת שורות", -InsertColumn : "הוספת עמודה", +InsertColumnAfter : "הוסף עמודה ×חרי", +InsertColumnBefore : "הוסף עמודה לפני", DeleteColumns : "מחיקת עמודות", -InsertCell : "הוספת ת×", +InsertCellAfter : "הוסף ×ª× ×חרי", +InsertCellBefore : "הוסף ×ª× ×חרי", DeleteCells : "מחיקת ת××™×", MergeCells : "מיזוג ת××™×", -SplitCell : "פיצול ת××™×", +MergeRight : "מזג ימינה", +MergeDown : "מזג למטה", +HorizontalSplitCell : "פצל ×ª× ×ופקית", +VerticalSplitCell : "פצל ×ª× ×נכית", TableDelete : "מחק טבלה", CellProperties : "תכונות הת×", TableProperties : "תכונות הטבלה", @@ -139,7 +143,7 @@ SelectionFieldProp : "מ×פייני שדה בחירה", TextareaProp : "מ×פיני ×יזור טקסט", FormProp : "מ×פיני טופס", -FontFormats : "נורמלי;קוד;כתובת;כותרת;כותרת 2;כותרת 3;כותרת 4;כותרת 5;כותרת 6", //REVIEW : Check _getfontformat.html +FontFormats : "נורמלי;קוד;כתובת;כותרת;כותרת 2;כותרת 3;כותרת 4;כותרת 5;כותרת 6", // Alerts and Messages ProcessingXHTML : "מעבד XHTML, × × ×œ×”×ž×ª×™×Ÿ...", @@ -234,7 +238,7 @@ DlgLnkURL : "כתובת (URL)", DlgLnkAnchorSel : "בחירת עוגן", DlgLnkAnchorByName : "עפ''×™ ×©× ×”×¢×•×’×Ÿ", DlgLnkAnchorById : "עפ''×™ זיהוי (Id) הרכיב", -DlgLnkNoAnchors : "<×ין ×¢×•×’× ×™× ×–×ž×™× ×™× ×‘×“×£>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(×ין ×¢×•×’× ×™× ×–×ž×™× ×™× ×‘×“×£)", DlgLnkEMail : "כתובת הדו×''ל", DlgLnkEMailSubject : "× ×•×©× ×”×”×•×“×¢×”", DlgLnkEMailBody : "גוף ההודעה", @@ -327,6 +331,9 @@ DlgCellBackColor : "צבע רקע", DlgCellBorderColor : "צבע מסגרת", DlgCellBtnSelect : "בחירה...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "חפש והחלף", + // Find Dialog DlgFindTitle : "חיפוש", DlgFindFindBtn : "חיפוש", @@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "החלפה בכל העמוד", DlgReplaceWordChk : "הת×מה למילה המל××”", // Paste Operations / Dialog -PasteErrorPaste : "הגדרות ×”×בטחה בדפדפן שלך ×œ× ×ž×פשרות לעורך לבצע פעולות הדבקה ×וטומטיות. יש להשתמש במקלדת ×œ×©× ×›×š (Ctrl+V).", PasteErrorCut : "הגדרות ×”×בטחה בדפדפן שלך ×œ× ×ž×פשרות לעורך לבצע פעולות גזירה ×וטומטיות. יש להשתמש במקלדת ×œ×©× ×›×š (Ctrl+X).", PasteErrorCopy : "הגדרות ×”×בטחה בדפדפן שלך ×œ× ×ž×פשרות לעורך לבצע פעולות העתקה ×וטומטיות. יש להשתמש במקלדת ×œ×©× ×›×š (Ctrl+C).", @@ -350,6 +356,7 @@ PasteAsText : "הדבקה כטקסט פשוט", PasteFromWord : "הדבקה מ-וורד", DlgPasteMsg2 : "×× × ×”×“×‘×§ בתוך הקופסה ב×מצעות (<STRONG>Ctrl+V</STRONG>) ולחץ על <STRONG>×ישור</STRONG>.", +DlgPasteSec : "עקב הגדרות ×בטחה בדפדפן, ×œ× × ×™×ª×Ÿ לגשת ×ל לוח ×”×’×–×™×¨×™× (clipboard) בצורה ישירה.×× × ×‘×¦×¢ הדבק שוב בחלון ×–×”.", DlgPasteIgnoreFont : "×”×ª×¢×œ× ×ž×”×’×“×¨×•×ª סוג פונט", DlgPasteRemoveStyles : "הסר הגדרות סגנון", DlgPasteCleanBox : "ניקוי קופסה", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "גירסת דפדפן", DlgAboutLicenseTab : "רשיון", DlgAboutVersion : "גירס×", DlgAboutInfo : "מידע נוסף ניתן ×œ×ž×¦×•× ×›×ן:" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/hi.js b/editor/editor/lang/hi.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: hi.js - * Hindi language file. - * - * File Authors: - * Utkarshraj Atmaram (utcursch@gmail.com) + * + * Hindi language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "लिंक", InsertLink : "लिंक इनà¥à¤¸à¤°à¥à¤Ÿ/संपादन", RemoveLink : "लिंक हटायें", Anchor : "à¤à¤‚कर इनà¥à¤¸à¤°à¥à¤Ÿ/संपादन", +AnchorDelete : "à¤à¤‚कर हटायें", InsertImageLbl : "तसà¥à¤µà¥€à¤°", InsertImage : "तसà¥à¤µà¥€à¤° इनà¥à¤¸à¤°à¥à¤Ÿ/संपादन", InsertFlashLbl : "फ़à¥à¤²à¥ˆà¤¶", @@ -74,6 +71,7 @@ RightJustify : "दायीं तरफ", BlockJustify : "बà¥à¤²à¥‰à¤• जसà¥à¤Ÿà¥€à¥žà¤¾à¤ˆ", DecreaseIndent : "इनà¥à¤¡à¥…नà¥à¤Ÿ कम करें", IncreaseIndent : "इनà¥à¤¡à¥…नà¥à¤Ÿ बà¥à¤¾à¤¯à¥‡à¤‚", +Blockquote : "बà¥à¤²à¥‰à¤•-कोट", Undo : "अनà¥à¤¡à¥‚", Redo : "रीडू", NumberedListLbl : "अंकीय सूची", @@ -107,22 +105,29 @@ SelectionField : "चà¥à¤¨à¤¾à¤µ फ़ीलà¥à¤¡", ImageButton : "तसà¥à¤µà¥€à¤° बटन", FitWindow : "à¤à¤¡à¤¿à¤Ÿà¤° साइज़ को चरम सीमा तक बà¥à¤¾à¤¯à¥‡à¤‚", +ShowBlocks : "बà¥à¤²à¥‰à¤• दिखायें", // Context Menu EditLink : "लिंक संपादन", CellCM : "खाना", RowCM : "पंकà¥à¤¤à¤¿", ColumnCM : "कालम", -InsertRow : "पंकà¥à¤¤à¤¿ इनà¥à¤¸à¤°à¥à¤Ÿ करें", +InsertRowAfter : "बाद में पंकà¥à¤¤à¤¿ डालें", +InsertRowBefore : "पहले पंकà¥à¤¤à¤¿ डालें", DeleteRows : "पंकà¥à¤¤à¤¿à¤¯à¤¾à¤ डिलीट करें", -InsertColumn : "कॉलम इनà¥à¤¸à¤°à¥à¤Ÿ करें", -DeleteColumns : "कॉलम डिलीट करें", -InsertCell : "सॅल इनà¥à¤¸à¤°à¥à¤Ÿ करें", -DeleteCells : "सॅल डिलीट करें", -MergeCells : "सॅल मिलायें", -SplitCell : "सॅल अलग करें", +InsertColumnAfter : "बाद में कालम डालें", +InsertColumnBefore : "पहले कालम डालें", +DeleteColumns : "कालम डिलीट करें", +InsertCellAfter : "बाद में सैल डालें", +InsertCellBefore : "पहले सैल डालें", +DeleteCells : "सैल डिलीट करें", +MergeCells : "सैल मिलायें", +MergeRight : "बाà¤à¤¯à¤¾ विलय", +MergeDown : "नीचे विलय करें", +HorizontalSplitCell : "सैल को कà¥à¤·à¥ˆà¤¤à¤¿à¤œ सà¥à¤¥à¤¿à¤¤à¤¿ में विभाजित करें", +VerticalSplitCell : "सैल को लमà¥à¤¬à¤¾à¤•à¤¾à¤° में विभाजित करें", TableDelete : "टेबल डिलीट करें", -CellProperties : "सॅल पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›", +CellProperties : "सैल पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›", TableProperties : "टेबल पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›", ImageProperties : "तसà¥à¤µà¥€à¤° पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›", FlashProperties : "फ़à¥à¤²à¥ˆà¤¶ पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›", @@ -138,7 +143,7 @@ SelectionFieldProp : "चà¥à¤¨à¤¾à¤µ फ़ीलà¥à¤¡ पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥ TextareaProp : "टेकà¥à¤¸à¥à¤¤ à¤à¤°à¤¿à¤¯à¤¾ पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›", FormProp : "फ़ॉरà¥à¤® पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›", -FontFormats : "साधारण;फ़ॉरà¥à¤®à¥ˆà¤Ÿà¥…ड;पता;शीरà¥à¤·à¤• 1;शीरà¥à¤·à¤• 2;शीरà¥à¤·à¤• 3;शीरà¥à¤·à¤• 4;शीरà¥à¤·à¤• 5;शीरà¥à¤·à¤• 6;शीरà¥à¤·à¤• (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "साधारण;फ़ॉरà¥à¤®à¥ˆà¤Ÿà¥…ड;पता;शीरà¥à¤·à¤• 1;शीरà¥à¤·à¤• 2;शीरà¥à¤·à¤• 3;शीरà¥à¤·à¤• 4;शीरà¥à¤·à¤• 5;शीरà¥à¤·à¤• 6;शीरà¥à¤·à¤• (DIV)", // Alerts and Messages ProcessingXHTML : "XHTML पà¥à¤°à¥‹à¤¸à¥…स हो रहा है। ज़रा ठहरें...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "à¤à¤‚कर चà¥à¤¨à¥‡à¤‚", DlgLnkAnchorByName : "à¤à¤‚कर नाम से", DlgLnkAnchorById : "à¤à¤²à¥€à¤®à¥…नà¥à¤Ÿ Id से", -DlgLnkNoAnchors : "<डॉकà¥à¤¯à¥‚मॅनà¥à¤Ÿ में à¤à¤‚करà¥à¤¸ की संखà¥à¤¯à¤¾>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(डॉकà¥à¤¯à¥‚मॅनà¥à¤Ÿ में à¤à¤‚करà¥à¤¸ की संखà¥à¤¯à¤¾)", DlgLnkEMail : "ई-मेल पता", DlgLnkEMailSubject : "संदेश विषय", DlgLnkEMailBody : "संदेश", @@ -283,7 +288,7 @@ DlgSpecialCharTitle : "विशेष करॅकà¥à¤Ÿà¤° चà¥à¤¨à¥‡à¤‚", // Table Dialog DlgTableTitle : "टेबल पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›", DlgTableRows : "पंकà¥à¤¤à¤¿à¤¯à¤¾à¤", -DlgTableColumns : "कॉलम", +DlgTableColumns : "कालम", DlgTableBorder : "बॉरà¥à¤¡à¤° साइज़", DlgTableAlign : "à¤à¤²à¤¾à¤‡à¤¨à¥à¤®à¥…नà¥à¤Ÿ", DlgTableAlignNotSet : "<सॅट नहीं>", @@ -291,18 +296,18 @@ DlgTableAlignLeft : "दायें", DlgTableAlignCenter : "बीच में", DlgTableAlignRight : "बायें", DlgTableWidth : "चौड़ाई", -DlgTableWidthPx : "पिकà¥à¤¸à¥…ल", +DlgTableWidthPx : "पिकà¥à¤¸à¥ˆà¤²", DlgTableWidthPc : "पà¥à¤°à¤¤à¤¿à¤¶à¤¤", DlgTableHeight : "ऊà¤à¤šà¤¾à¤ˆ", -DlgTableCellSpace : "सॅल अंतर", -DlgTableCellPad : "सॅल पैडिंग", +DlgTableCellSpace : "सैल अंतर", +DlgTableCellPad : "सैल पैडिंग", DlgTableCaption : "शीरà¥à¤·à¤•", DlgTableSummary : "सारांश", // Table Cell Dialog -DlgCellTitle : "सॅल पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›", +DlgCellTitle : "सैल पà¥à¤°à¥‰à¤ªà¤°à¥à¤Ÿà¥€à¥›", DlgCellWidth : "चौड़ाई", -DlgCellWidthPx : "पिकà¥à¤¸à¥…ल", +DlgCellWidthPx : "पिकà¥à¤¸à¥ˆà¤²", DlgCellWidthPc : "पà¥à¤°à¤¤à¤¿à¤¶à¤¤", DlgCellHeight : "ऊà¤à¤šà¤¾à¤ˆ", DlgCellWordWrap : "वरà¥à¤¡ रैप", @@ -321,11 +326,14 @@ DlgCellVerAlignMiddle : "मधà¥à¤¯", DlgCellVerAlignBottom : "नीचे", DlgCellVerAlignBaseline : "मूलरेखा", DlgCellRowSpan : "पंकà¥à¤¤à¤¿ सà¥à¤ªà¥ˆà¤¨", -DlgCellCollSpan : "कॉलम सà¥à¤ªà¥ˆà¤¨", +DlgCellCollSpan : "कालम सà¥à¤ªà¥ˆà¤¨", DlgCellBackColor : "बैकà¥à¤—à¥à¤°à¤¾à¤‰à¤¨à¥à¤¡ रंग", DlgCellBorderColor : "बॉरà¥à¤¡à¤° का रंग", DlgCellBtnSelect : "चà¥à¤¨à¥‡à¤‚...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "खोजें और बदलें", + // Find Dialog DlgFindTitle : "खोजें", DlgFindFindBtn : "खोजें", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "सभी रिपà¥à¤²à¥‡à¤¸ करें", DlgReplaceWordChk : "पूरा शबà¥à¤¦ मिलायें", // Paste Operations / Dialog -PasteErrorPaste : "आपके बà¥à¤°à¤¾â€Œà¤‰à¥›à¤° की सà¥à¤°à¤•à¥à¤·à¤¾ सॅटिनà¥à¤—à¥à¤¸ ने पेसà¥à¤Ÿ करने की अनà¥à¤®à¤¤à¤¿ नहीं पà¥à¤°à¤¦à¤¾à¤¨ की है। (Ctrl+V) का पà¥à¤°à¤¯à¥‹à¤— करें।", PasteErrorCut : "आपके बà¥à¤°à¤¾à¤‰à¥›à¤° की सà¥à¤°à¤•à¥à¤·à¤¾ सॅटिनà¥à¤—à¥à¤¸ ने कट करने की अनà¥à¤®à¤¤à¤¿ नहीं पà¥à¤°à¤¦à¤¾à¤¨ की है। (Ctrl+X) का पà¥à¤°à¤¯à¥‹à¤— करें।", PasteErrorCopy : "आपके बà¥à¤°à¤¾à¤†à¤‰à¥›à¤° की सà¥à¤°à¤•à¥à¤·à¤¾ सॅटिनà¥à¤—à¥à¤¸ ने कॉपी करने की अनà¥à¤®à¤¤à¤¿ नहीं पà¥à¤°à¤¦à¤¾à¤¨ की है। (Ctrl+C) का पà¥à¤°à¤¯à¥‹à¤— करें।", @@ -349,12 +356,13 @@ PasteAsText : "पेसà¥à¤Ÿ (सादा टॅकà¥à¤¸à¥à¤Ÿ)", PasteFromWord : "पेसà¥à¤Ÿ (वरà¥à¤¡ से)", DlgPasteMsg2 : "Ctrl+V का पà¥à¤°à¤¯à¥‹à¤— करके पेसà¥à¤Ÿ करें और ठीक है करें.", +DlgPasteSec : "आपके बà¥à¤°à¤¾à¤‰à¥›à¤° की सà¥à¤°à¤•à¥à¤·à¤¾ आपके बà¥à¤°à¤¾à¤‰à¥›à¤° की सà¥à¤°Kश सैटिंग के कारण, à¤à¤¡à¤¿à¤Ÿà¤° आपके कà¥à¤²à¤¿à¤ªà¤¬à¥‹à¤°à¥à¤¡ डेटा को नहीं पा सकता है. आपको उसे इस विनà¥à¤¡à¥‹ में दोबारा पेसà¥à¤Ÿ करना होगा.", DlgPasteIgnoreFont : "फ़ॉनà¥à¤Ÿ परिभाषा निकालें", DlgPasteRemoveStyles : "सà¥à¤Ÿà¤¾à¤‡à¤² परिभाषा निकालें", DlgPasteCleanBox : "बॉकà¥à¤¸ साफ़ करें", // Color Picker -ColorAutomatic : "ऑटोमैटिक", +ColorAutomatic : "सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤", ColorMoreColors : "और रंग...", // Document Properties @@ -396,7 +404,7 @@ DlgCheckboxSelected : "सॅलॅकà¥à¤Ÿà¥…ड", // Form Dialog DlgFormName : "नाम", -DlgFormAction : "à¤à¤•à¥à¤¶à¤¨", +DlgFormAction : "कà¥à¤°à¤¿à¤¯à¤¾", DlgFormMethod : "तरीका", // Select Field Dialog @@ -417,7 +425,7 @@ DlgSelectBtnDelete : "डिलीट", // Textarea Dialog DlgTextareaName : "नाम", -DlgTextareaCols : "कॉलम", +DlgTextareaCols : "कालम", DlgTextareaRows : "पंकà¥à¤¤à¤¿à¤¯à¤¾à¤‚", // Text Field Dialog @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "बà¥à¤°à¤¾à¤‰à¥›à¤° के बारे में", DlgAboutLicenseTab : "लाइसैनà¥à¤¸", DlgAboutVersion : "वरà¥à¥›à¤¨", DlgAboutInfo : "अधिक जानकारी के लिये यहाठजायें:" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/hr.js b/editor/editor/lang/hr.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: hr.js - * Croatian language file. - * - * File Authors: - * Alex Varga (avarga@globaldizajn.hr) + * + * Croatian language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Link", InsertLink : "Ubaci/promijeni link", RemoveLink : "Ukloni link", Anchor : "Ubaci/promijeni sidro", +AnchorDelete : "Ukloni sidro", InsertImageLbl : "Slika", InsertImage : "Ubaci/promijeni sliku", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "Desno poravnanje", BlockJustify : "Blok poravnanje", DecreaseIndent : "Pomakni ulijevo", IncreaseIndent : "Pomakni udesno", +Blockquote : "Blockquote", Undo : "PoniÅ¡ti", Redo : "Ponovi", NumberedListLbl : "BrojÄana lista", @@ -107,20 +105,27 @@ SelectionField : "Selection Field", ImageButton : "Image Button", FitWindow : "Povećaj veliÄinu editora", +ShowBlocks : "Prikaži blokove", // Context Menu EditLink : "Promijeni link", CellCM : "Ćelija", RowCM : "Red", ColumnCM : "Kolona", -InsertRow : "Ubaci red", +InsertRowAfter : "Ubaci red poslije", +InsertRowBefore : "Ubaci red prije", DeleteRows : "IzbriÅ¡i redove", -InsertColumn : "Ubaci kolonu", +InsertColumnAfter : "Ubaci kolonu poslije", +InsertColumnBefore : "Ubaci kolonu prije", DeleteColumns : "IzbriÅ¡i kolone", -InsertCell : "Ubaci ćelije", +InsertCellAfter : "Ubaci ćeliju poslije", +InsertCellBefore : "Ubaci ćeliju prije", DeleteCells : "IzbriÅ¡i ćelije", MergeCells : "Spoji ćelije", -SplitCell : "Razdvoji ćelije", +MergeRight : "Spoji desno", +MergeDown : "Spoji dolje", +HorizontalSplitCell : "Podijeli ćeliju vodoravno", +VerticalSplitCell : "Podijeli ćeliju okomito", TableDelete : "IzbriÅ¡i tablicu", CellProperties : "Svojstva ćelije", TableProperties : "Svojstva tablice", @@ -138,7 +143,7 @@ SelectionFieldProp : "Selection svojstva", TextareaProp : "Textarea svojstva", FormProp : "Form svojstva", -FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", // Alerts and Messages ProcessingXHTML : "ObraÄ‘ujem XHTML. Molimo priÄekajte...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Odaberi sidro", DlgLnkAnchorByName : "Po nazivu sidra", DlgLnkAnchorById : "Po Id elementa", -DlgLnkNoAnchors : "<Nema dostupnih sidra>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Nema dostupnih sidra)", DlgLnkEMail : "E-Mail adresa", DlgLnkEMailSubject : "Naslov", DlgLnkEMailBody : "Sadržaj poruke", @@ -326,6 +331,9 @@ DlgCellBackColor : "Boja pozadine", DlgCellBorderColor : "Boja okvira", DlgCellBtnSelect : "Odaberi...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "PronaÄ‘i i zamijeni", + // Find Dialog DlgFindTitle : "PronaÄ‘i", DlgFindFindBtn : "PronaÄ‘i", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Zamijeni sve", DlgReplaceWordChk : "Usporedi cijele rijeÄi", // Paste Operations / Dialog -PasteErrorPaste : "Sigurnosne postavke VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog ljepljenja. Molimo koristite kraticu na tipkovnici (Ctrl+V).", PasteErrorCut : "Sigurnosne postavke VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl+X).", PasteErrorCopy : "Sigurnosne postavke VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Zalijepi kao Äisti tekst", PasteFromWord : "Zalijepi iz Worda", DlgPasteMsg2 : "Molimo zaljepite unutar doljnjeg okvira koristeći tipkovnicu (<STRONG>Ctrl+V</STRONG>) i kliknite <STRONG>OK</STRONG>.", +DlgPasteSec : "Zbog sigurnosnih postavki VaÅ¡eg pretraživaÄa, editor nema direktan pristup VaÅ¡em meÄ‘uspremniku. Potrebno je ponovno zalijepiti tekst u ovaj prozor.", DlgPasteIgnoreFont : "Zanemari definiciju vrste fonta", DlgPasteRemoveStyles : "Ukloni definicije stilova", DlgPasteCleanBox : "OÄisti okvir", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Podaci o pretraživaÄu", DlgAboutLicenseTab : "Licenca", DlgAboutVersion : "inaÄica", DlgAboutInfo : "Za viÅ¡e informacija posjetite" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/hu.js b/editor/editor/lang/hu.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: hu.js - * Hungarian language file. - * - * File Authors: - * Varga Zsolt (meridian@netteszt.hu) - * Géza Szűcs (flextor@flextor.hu) + * + * Hungarian language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "Hivatkozás", InsertLink : "Hivatkozás beillesztése/módosítása", RemoveLink : "Hivatkozás törlése", Anchor : "Horgony beillesztése/szerkesztése", +AnchorDelete : "Horgony eltávolítása", InsertImageLbl : "Kép", InsertImage : "Kép beillesztése/módosítása", InsertFlashLbl : "Flash", @@ -75,6 +71,7 @@ RightJustify : "Jobbra", BlockJustify : "Sorkizárt", DecreaseIndent : "Behúzás csökkentése", IncreaseIndent : "Behúzás növelése", +Blockquote : "Idézet blokk", Undo : "Visszavonás", Redo : "Ismétlés", NumberedListLbl : "Számozás", @@ -108,20 +105,27 @@ SelectionField : "LegördülÅ‘ lista", ImageButton : "Képgomb", FitWindow : "Maximalizálás", +ShowBlocks : "Blokkok megjelenítése", // Context Menu EditLink : "Hivatkozás módosítása", CellCM : "Cella", RowCM : "Sor", ColumnCM : "Oszlop", -InsertRow : "Sor beszúrása", +InsertRowAfter : "Sor beillesztése az aktuális sor mögé", +InsertRowBefore : "Sor beillesztése az aktuális sor elé", DeleteRows : "Sorok törlése", -InsertColumn : "Oszlop beszúrása", +InsertColumnAfter : "Oszlop beillesztése az aktuális oszlop mögé", +InsertColumnBefore : "Oszlop beillesztése az aktuális oszlop elé", DeleteColumns : "Oszlopok törlése", -InsertCell : "Cella beszúrása", +InsertCellAfter : "Cella beillesztése az aktuális cella mögé", +InsertCellBefore : "Cella beillesztése az aktuális cella elé", DeleteCells : "Cellák törlése", MergeCells : "Cellák egyesítése", -SplitCell : "Cella szétválasztása", +MergeRight : "Cellák egyesítése jobbra", +MergeDown : "Cellák egyesítése lefelé", +HorizontalSplitCell : "Cellák szétválasztása vízszintesen", +VerticalSplitCell : "Cellák szétválasztása függÅ‘legesen", TableDelete : "Táblázat törlése", CellProperties : "Cella tulajdonságai", TableProperties : "Táblázat tulajdonságai", @@ -139,7 +143,7 @@ SelectionFieldProp : "LegördülÅ‘ lista tulajdonságai", TextareaProp : "Szövegterület tulajdonságai", FormProp : "Å°rlap tulajdonságai", -FontFormats : "Normál;Formázott;Címsor;Fejléc 1;Fejléc 2;Fejléc 3;Fejléc 4;Fejléc 5;Fejléc 6;Bekezdés (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normál;Formázott;Címsor;Fejléc 1;Fejléc 2;Fejléc 3;Fejléc 4;Fejléc 5;Fejléc 6;Bekezdés (DIV)", // Alerts and Messages ProcessingXHTML : "XHTML feldolgozása. Kérem várjon...", @@ -234,7 +238,7 @@ DlgLnkURL : "Webcím", DlgLnkAnchorSel : "Horgony választása", DlgLnkAnchorByName : "Horgony név szerint", DlgLnkAnchorById : "Azonosító szerint", -DlgLnkNoAnchors : "<Nincs horgony a dokumentumban>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Nincs horgony a dokumentumban)", DlgLnkEMail : "E-Mail cím", DlgLnkEMailSubject : "Ãœzenet tárgya", DlgLnkEMailBody : "Ãœzenet", @@ -327,6 +331,9 @@ DlgCellBackColor : "Háttérszín", DlgCellBorderColor : "Szegélyszín", DlgCellBtnSelect : "Kiválasztás...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Keresés és csere", + // Find Dialog DlgFindTitle : "Keresés", DlgFindFindBtn : "Keresés", @@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "Az összes cseréje", DlgReplaceWordChk : "csak ha ez a teljes szó", // Paste Operations / Dialog -PasteErrorPaste : "A böngészÅ‘ biztonsági beállításai nem engedélyezik a szerkesztÅ‘nek, hogy végrehajtsa a beillesztés műveletet. Használja az alábbi billentyűkombinációt (Ctrl+V).", PasteErrorCut : "A böngészÅ‘ biztonsági beállításai nem engedélyezik a szerkesztÅ‘nek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl+X).", PasteErrorCopy : "A böngészÅ‘ biztonsági beállításai nem engedélyezik a szerkesztÅ‘nek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl+X).", @@ -350,6 +356,7 @@ PasteAsText : "Beillesztés formázatlan szövegként", PasteFromWord : "Beillesztés Word-bÅ‘l", DlgPasteMsg2 : "Másolja be az alábbi mezÅ‘be a <STRONG>Ctrl+V</STRONG> billentyűk lenyomásával, majd nyomjon <STRONG>Rendben</STRONG>-t.", +DlgPasteSec : "A böngészÅ‘ biztonsági beállításai miatt a szerkesztÅ‘ nem képes hozzáférni a vágólap adataihoz. Illeszd be újra ebben az ablakban.", DlgPasteIgnoreFont : "Betű formázások megszüntetése", DlgPasteRemoveStyles : "Stílusok eltávolítása", DlgPasteCleanBox : "Törlés", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "BöngészÅ‘ információ", DlgAboutLicenseTab : "Licensz", DlgAboutVersion : "verzió", DlgAboutInfo : "További információkért látogasson el ide:" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/it.js b/editor/editor/lang/it.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: it.js - * Italian language file. - * - * File Authors: - * Simone Chiaretta (simone@piyosailing.com) + * + * Italian language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Collegamento", InsertLink : "Inserisci/Modifica collegamento", RemoveLink : "Elimina collegamento", Anchor : "Inserisci/Modifica Ancora", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Immagine", InsertImage : "Inserisci/Modifica immagine", InsertFlashLbl : "Oggetto Flash", @@ -74,6 +71,7 @@ RightJustify : "Allinea a destra", BlockJustify : "Giustifica", DecreaseIndent : "Riduci rientro", IncreaseIndent : "Aumenta rientro", +Blockquote : "Blockquote", //MISSING Undo : "Annulla", Redo : "Ripristina", NumberedListLbl : "Elenco numerato", @@ -107,20 +105,27 @@ SelectionField : "Menu di selezione", ImageButton : "Bottone immagine", FitWindow : "Massimizza l'area dell'editor", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Modifica collegamento", CellCM : "Cella", RowCM : "Riga", ColumnCM : "Colonna", -InsertRow : "Inserisci riga", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Elimina righe", -InsertColumn : "Inserisci colonna", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Elimina colonne", -InsertCell : "Inserisci cella", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Elimina celle", MergeCells : "Unisce celle", -SplitCell : "Dividi celle", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Cancella Tabella", CellProperties : "Proprietà cella", TableProperties : "Proprietà tabella", @@ -138,7 +143,7 @@ SelectionFieldProp : "Proprietà menu di selezione", TextareaProp : "Proprietà area di testo", FormProp : "Proprietà modulo", -FontFormats : "Normale;Formattato;Indirizzo;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normale;Formattato;Indirizzo;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)", // Alerts and Messages ProcessingXHTML : "Elaborazione XHTML in corso. Attendere prego...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Scegli Ancora", DlgLnkAnchorByName : "Per Nome", DlgLnkAnchorById : "Per id elemento", -DlgLnkNoAnchors : "<Nessuna ancora disponibile nel documento>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Nessuna ancora disponibile nel documento)", DlgLnkEMail : "Indirizzo E-Mail", DlgLnkEMailSubject : "Oggetto del messaggio", DlgLnkEMailBody : "Corpo del messaggio", @@ -326,6 +331,9 @@ DlgCellBackColor : "Colore sfondo", DlgCellBorderColor : "Colore bordo", DlgCellBtnSelect : "Scegli...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Trova", DlgFindFindBtn : "Trova", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Sostituisci tutto", DlgReplaceWordChk : "Solo parole intere", // Paste Operations / Dialog -PasteErrorPaste : "Le impostazioni di sicurezza del browser non permettono di incollare automaticamente il testo. Usa la tastiera (Ctrl+V).", PasteErrorCut : "Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl+X).", PasteErrorCopy : "Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Incolla come testo semplice", PasteFromWord : "Incolla da Word", DlgPasteMsg2 : "Incolla il testo all'interno dell'area sottostante usando la scorciatoia di tastiere (<STRONG>Ctrl+V</STRONG>) e premi <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Ignora le definizioni di Font", DlgPasteRemoveStyles : "Rimuovi le definizioni di Stile", DlgPasteCleanBox : "Svuota area di testo", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Informazioni Browser", DlgAboutLicenseTab : "Licenza", DlgAboutVersion : "versione", DlgAboutInfo : "Per maggiori informazioni visitare" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/ja.js b/editor/editor/lang/ja.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: ja.js - * Japanese language file. - * - * File Authors: - * Takashi Yamaguchi (jack@omakase.net) + * + * Japanese language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "リンク", InsertLink : "リンク挿入/編集", RemoveLink : "リンク削除", Anchor : "アンカー挿入/編集", +AnchorDelete : "アンカー削除", InsertImageLbl : "イメージ", InsertImage : "イメージ挿入/編集", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "å³æƒãˆ", BlockJustify : "両端æƒãˆ", DecreaseIndent : "インデント解除", IncreaseIndent : "インデント", +Blockquote : "ブロック引用", Undo : "å…ƒã«æˆ»ã™", Redo : "ã‚„ã‚Šç›´ã—", NumberedListLbl : "段è½ç•ªå·", @@ -107,20 +105,27 @@ SelectionField : "é¸æŠžãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰", ImageButton : "ç”»åƒãƒœã‚¿ãƒ³", FitWindow : "エディタサイズを最大ã«ã—ã¾ã™", +ShowBlocks : "ブロック表示", // Context Menu EditLink : "リンク編集", CellCM : "セル", RowCM : "è¡Œ", ColumnCM : "カラム", -InsertRow : "行挿入", +InsertRowAfter : "列ã®å¾Œã«æŒ¿å…¥", +InsertRowBefore : "列ã®å‰ã«æŒ¿å…¥", DeleteRows : "行削除", -InsertColumn : "列挿入", +InsertColumnAfter : "カラムã®å¾Œã«æŒ¿å…¥", +InsertColumnBefore : "カラムã®å‰ã«æŒ¿å…¥", DeleteColumns : "列削除", -InsertCell : "セル挿入", +InsertCellAfter : "セルã®å¾Œã«æŒ¿å…¥", +InsertCellBefore : "セルã®å‰ã«æŒ¿å…¥", DeleteCells : "セル削除", MergeCells : "セルçµåˆ", -SplitCell : "セル分割", +MergeRight : "å³ã«çµåˆ", +MergeDown : "下ã«çµåˆ", +HorizontalSplitCell : "セルを水平方å‘分割", +VerticalSplitCell : "セルを垂直方å‘ã«åˆ†å‰²", TableDelete : "テーブル削除", CellProperties : "セル プロパティ", TableProperties : "テーブル プロパティ", @@ -138,7 +143,7 @@ SelectionFieldProp : "é¸æŠžãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ プロパティ", TextareaProp : "テキストエリア プロパティ", FormProp : "フォーム プロパティ", -FontFormats : "標準;書å¼ä»˜ã;アドレス;見出㗠1;見出㗠2;見出㗠3;見出㗠4;見出㗠5;見出㗠6;標準 (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "標準;書å¼ä»˜ã;アドレス;見出㗠1;見出㗠2;見出㗠3;見出㗠4;見出㗠5;見出㗠6;標準 (DIV)", // Alerts and Messages ProcessingXHTML : "XHTML処ç†ä¸­. ã—ã°ã‚‰ããŠå¾…ã¡ãã ã•ã„...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "アンカーをé¸æŠž", DlgLnkAnchorByName : "アンカーå", DlgLnkAnchorById : "エレメントID", -DlgLnkNoAnchors : "<ドキュメントã«ãŠã„ã¦åˆ©ç”¨å¯èƒ½ãªã‚¢ãƒ³ã‚«ãƒ¼ã¯ã‚ã‚Šã¾ã›ã‚“。>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(ドキュメントã«ãŠã„ã¦åˆ©ç”¨å¯èƒ½ãªã‚¢ãƒ³ã‚«ãƒ¼ã¯ã‚ã‚Šã¾ã›ã‚“。)", DlgLnkEMail : "E-Mail アドレス", DlgLnkEMailSubject : "件å", DlgLnkEMailBody : "本文", @@ -326,6 +331,9 @@ DlgCellBackColor : "背景色", DlgCellBorderColor : "ボーダーカラー", DlgCellBtnSelect : "é¸æŠž...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "検索ã—ã¦ç½®æ›", + // Find Dialog DlgFindTitle : "検索", DlgFindFindBtn : "検索", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "ã™ã¹ã¦ç½®æ›ãˆ", DlgReplaceWordChk : "å˜èªžå˜ä½ã§ä¸€è‡´", // Paste Operations / Dialog -PasteErrorPaste : "ブラウザーã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£è¨­å®šã«ã‚ˆã‚Šã‚¨ãƒ‡ã‚£ã‚¿ã®è²¼ã‚Šä»˜ã‘æ“作ãŒè‡ªå‹•ã§å®Ÿè¡Œã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。実行ã™ã‚‹ã«ã¯æ‰‹å‹•ã§ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã®(Ctrl+V)を使用ã—ã¦ãã ã•ã„。", PasteErrorCut : "ブラウザーã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£è¨­å®šã«ã‚ˆã‚Šã‚¨ãƒ‡ã‚£ã‚¿ã®åˆ‡ã‚Šå–ã‚Šæ“作ãŒè‡ªå‹•ã§å®Ÿè¡Œã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。実行ã™ã‚‹ã«ã¯æ‰‹å‹•ã§ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã®(Ctrl+X)を使用ã—ã¦ãã ã•ã„。", PasteErrorCopy : "ブラウザーã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£è¨­å®šã«ã‚ˆã‚Šã‚¨ãƒ‡ã‚£ã‚¿ã®ã‚³ãƒ”ーæ“作ãŒè‡ªå‹•ã§å®Ÿè¡Œã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。実行ã™ã‚‹ã«ã¯æ‰‹å‹•ã§ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã®(Ctrl+C)を使用ã—ã¦ãã ã•ã„。", @@ -349,6 +356,7 @@ PasteAsText : "プレーンテキスト貼り付ã‘", PasteFromWord : "ワード文章ã‹ã‚‰è²¼ã‚Šä»˜ã‘", DlgPasteMsg2 : "キーボード(<STRONG>Ctrl+V</STRONG>)を使用ã—ã¦ã€æ¬¡ã®å…¥åŠ›ã‚¨ãƒªã‚¢å†…ã§è²¼ã£ã¦ã€<STRONG>OK</STRONG>を押ã—ã¦ãã ã•ã„。", +DlgPasteSec : "ブラウザã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£è¨­å®šã«ã‚ˆã‚Šã€ã‚¨ãƒ‡ã‚£ã‚¿ã¯ã‚¯ãƒªãƒƒãƒ—ボード・データã«ç›´æŽ¥ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。ã“ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã¯è²¼ã‚Šä»˜ã‘æ“作を行ã†åº¦ã«è¡¨ç¤ºã•ã‚Œã¾ã™ã€‚", DlgPasteIgnoreFont : "Fontã‚¿ã‚°ã®Face属性を無視ã—ã¾ã™ã€‚", DlgPasteRemoveStyles : "スタイル定義を削除ã—ã¾ã™ã€‚", DlgPasteCleanBox : "入力エリアクリア", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "ブラウザ情報", DlgAboutLicenseTab : "ライセンス", DlgAboutVersion : "ãƒãƒ¼ã‚¸ãƒ§ãƒ³", DlgAboutInfo : "より詳ã—ã„情報ã¯ã“ã¡ã‚‰ã§" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/km.js b/editor/editor/lang/km.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: km.js - * Khmer language file. - * - * File Authors: - * Chay Sengtha (sengtha@e-khmer.com - http://translate.e-khmer.net) + * + * Khmer language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "ឈ្នាប់", InsertLink : "បន្ážáŸ‚ម/កែប្រែ ឈ្នាប់", RemoveLink : "លប់ឈ្នាប់", Anchor : "បន្ážáŸ‚ម/កែប្រែ យុážáŸ’កា", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "រូបភាព", InsertImage : "បន្ážáŸ‚ម/កែប្រែ រូបភាព", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "ážáŸ†ážšáž¹áž˜ážŸáŸ’ážáž¶áŸ†", BlockJustify : "ážáŸ†ážšáž¹áž˜ážŸáž„ážáž¶áž„", DecreaseIndent : "បន្ážáž™áž€áž¶ážšáž…ូលបន្ទាážáŸ‹", IncreaseIndent : "បន្ážáŸ‚មការចូលបន្ទាážáŸ‹", +Blockquote : "Blockquote", //MISSING Undo : "សារឡើងវិញ", Redo : "ធ្វើឡើងវិញ", NumberedListLbl : "បញ្ជីជាអក្សរ", @@ -107,20 +105,27 @@ SelectionField : "ជួរជ្រើសរើស", ImageButton : "ប៉ូážáž»áž“រូបភាព", FitWindow : "Maximize the editor size", //MISSING +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "កែប្រែឈ្នាប់", CellCM : "Cell", //MISSING RowCM : "Row", //MISSING ColumnCM : "Column", //MISSING -InsertRow : "បន្ážáŸ‚មជួរផ្ážáŸáž€", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "លប់ជួរផ្ážáŸáž€", -InsertColumn : "បន្ážáŸ‚មជួរឈរ", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "លប់ជួរឈរ", -InsertCell : "បន្ážáŸ‚ម សែល", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "លប់សែល", MergeCells : "បញ្ជូលសែល", -SplitCell : "ផ្ážáž¶áž…់សែល", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "លប់ážáž¶ážšáž¶áž„", CellProperties : "ការកំណážáŸ‹ážŸáŸ‚áž›", TableProperties : "ការកំណážáŸ‹ážáž¶ážšáž¶áž„", @@ -138,7 +143,7 @@ SelectionFieldProp : "ការកំណážáŸ‹áž‡áž½ážšáž‡áŸ’រើសរើស" TextareaProp : "ការកំណážáŸ‹áž€áž“្លែងសរសáŸážšáž¢ážáŸ’ážáž”áž‘", FormProp : "ការកំណážáŸ‹áž”ែបបទ", -FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", // Alerts and Messages ProcessingXHTML : "កំពុងដំណើរការ XHTML ។ សូមរងចាំ...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "ជ្រើសរើសយុážáŸ’កា", DlgLnkAnchorByName : "ážáž¶áž˜ážˆáŸ’មោះរបស់យុážáŸ’កា", DlgLnkAnchorById : "ážáž¶áž˜ Id", -DlgLnkNoAnchors : "<ពុំមានយុážáŸ’កានៅក្នុងឯកសារនáŸáŸ‡áž‘áŸ>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(No anchors available in the document)", //MISSING DlgLnkEMail : "អ៊ីមែល", DlgLnkEMailSubject : "ចំណងជើងអážáŸ’ážáž”áž‘", DlgLnkEMailBody : "អážáŸ’ážáž”áž‘", @@ -326,6 +331,9 @@ DlgCellBackColor : "ពណ៌ផ្នែកážáž¶áž„ក្រោម", DlgCellBorderColor : "ពណ៌ស៊ុម", DlgCellBtnSelect : "ជ្រើសរើស...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "ស្វែងរក", DlgFindFindBtn : "ស្វែងរក", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "ជំនួសទាំងអស់", DlgReplaceWordChk : "ážáŸ’រូវពាក្យទាំងអស់", // Paste Operations / Dialog -PasteErrorPaste : "Your browser security settings don't permit the editor to automatically execute pasting operations. Please use the keyboard for that (Ctrl+V).", //MISSING PasteErrorCut : "ការកំណážáŸ‹ážŸáž»ážœážáŸ’ážáž—ាពរបស់កម្មវិធីរុករករបស់លោកអ្នក áž“áŸáŸ‡â€‹áž˜áž·áž“អាចធ្វើកម្មវិធីážáž¶áž€áŸ‹ážáŸ‚ងអážáŸ’ážáž”áž‘ កាážáŸ‹áž¢ážáŸ’ážáž”ទយកដោយស្វáŸáž™áž”្រវážáŸ’ážáž”ានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនáŸáŸ‡ (Ctrl+X) ។", PasteErrorCopy : "ការកំណážáŸ‹ážŸáž»ážœážáŸ’ážáž—ាពរបស់កម្មវិធីរុករករបស់លោកអ្នក áž“áŸáŸ‡â€‹áž˜áž·áž“អាចធ្វើកម្មវិធីážáž¶áž€áŸ‹ážáŸ‚ងអážáŸ’ážáž”áž‘ ចំលងអážáŸ’ážáž”ទយកដោយស្វáŸáž™áž”្រវážáŸ’ážáž”ានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនáŸáŸ‡ (Ctrl+C)។", @@ -349,6 +356,7 @@ PasteAsText : "ចំលងដាក់អážáŸ’ážáž”ទធម្មážáž¶", PasteFromWord : "ចំលងពាក្យពីកម្មវិធី Word", DlgPasteMsg2 : "សូមចំលងអážáŸ’ážáž”ទទៅដាក់ក្នុងប្រអប់ដូចážáž¶áž„ក្រោមដោយប្រើប្រាស់ ឃី ​(<STRONG>Ctrl+V</STRONG>) ហើយចុច <STRONG>OK</STRONG> ។", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "មិនគិážáž¢áŸ†áž–ីប្រភáŸáž‘ពុម្ភអក្សរ", DlgPasteRemoveStyles : "លប់ម៉ូáž", DlgPasteCleanBox : "លប់អážáŸ’ážáž”áž‘áž…áŸáž‰áž–ីប្រអប់", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "ព៌ážáž˜áž¶áž“កម្មវិធីរុករ DlgAboutLicenseTab : "License", //MISSING DlgAboutVersion : "ជំនាន់", DlgAboutInfo : "សំរាប់ព៌ážáž˜áž¶áž“ផ្សáŸáž„ទៀហសូមទាក់ទង" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/ko.js b/editor/editor/lang/ko.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: ko.js - * Korean language file. - * - * File Authors: - * Taehwan Kwag (thkwag@nate.com) - * Hyung-chae, Kim (chaeya@gmail.com) + * + * Korean language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "ë§í¬", InsertLink : "ë§í¬ 삽입/변경", RemoveLink : "ë§í¬ ì‚­ì œ", Anchor : "책갈피 삽입/변경", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "ì´ë¯¸ì§€", InsertImage : "ì´ë¯¸ì§€ 삽입/변경", InsertFlashLbl : "플래쉬", @@ -75,6 +71,7 @@ RightJustify : "오른쪽 ì •ë ¬", BlockJustify : "양쪽 맞춤", DecreaseIndent : "내어쓰기", IncreaseIndent : "들여쓰기", +Blockquote : "Blockquote", //MISSING Undo : "취소", Redo : "재실행", NumberedListLbl : "순서있는 목ë¡", @@ -108,20 +105,27 @@ SelectionField : "펼침목ë¡", ImageButton : "ì´ë¯¸ì§€ë²„튼", FitWindow : "Maximize the editor size", //MISSING +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "ë§í¬ 수정", CellCM : "Cell", //MISSING RowCM : "Row", //MISSING ColumnCM : "Column", //MISSING -InsertRow : "가로줄 삽입", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "가로줄 ì‚­ì œ", -InsertColumn : "세로줄 삽입", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "세로줄 ì‚­ì œ", -InsertCell : "ì…€ 삽입", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "ì…€ ì‚­ì œ", MergeCells : "ì…€ 합치기", -SplitCell : "ì…€ 나누기", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Delete Table", //MISSING CellProperties : "ì…€ ì†ì„±", TableProperties : "í‘œ ì†ì„±", @@ -139,7 +143,7 @@ SelectionFieldProp : "íŽ¼ì¹¨ëª©ë¡ ì†ì„±", TextareaProp : "ìž…ë ¥ì˜ì—­ ì†ì„±", FormProp : "í¼ ì†ì„±", -FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6", // Alerts and Messages ProcessingXHTML : "XHTML 처리중. 잠시만 기다려주십시요.", @@ -234,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "책갈피 ì„ íƒ", DlgLnkAnchorByName : "책갈피 ì´ë¦„", DlgLnkAnchorById : "책갈피 ID", -DlgLnkNoAnchors : "<ë¬¸ì„œì— ì±…ê°ˆí”¼ê°€ 없습니다.>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(ë¬¸ì„œì— ì±…ê°ˆí”¼ê°€ 없습니다.)", DlgLnkEMail : "ì´ë©”ì¼ ì£¼ì†Œ", DlgLnkEMailSubject : "제목", DlgLnkEMailBody : "ë‚´ìš©", @@ -327,6 +331,9 @@ DlgCellBackColor : "ë°°ê²½ 색ìƒ", DlgCellBorderColor : "í…Œë‘리 색ìƒ", DlgCellBtnSelect : "ì„ íƒ", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "찾기", DlgFindFindBtn : "찾기", @@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "ëª¨ë‘ ë°”ê¾¸ê¸°", DlgReplaceWordChk : "온전한 단어", // Paste Operations / Dialog -PasteErrorPaste : "브ë¼ìš°ì €ì˜ ë³´ì•ˆì„¤ì •ë•Œë¬¸ì— ë¶™ì—¬ë„£ê¸° ê¸°ëŠ¥ì„ ì‹¤í–‰í•  수 없습니다. 키보드 ëª…ë ¹ì„ ì‚¬ìš©í•˜ì‹­ì‹œìš”. (Ctrl+V).", PasteErrorCut : "브ë¼ìš°ì €ì˜ ë³´ì•ˆì„¤ì •ë•Œë¬¸ì— ìž˜ë¼ë‚´ê¸° ê¸°ëŠ¥ì„ ì‹¤í–‰í•  수 없습니다. 키보드 ëª…ë ¹ì„ ì‚¬ìš©í•˜ì‹­ì‹œìš”. (Ctrl+X).", PasteErrorCopy : "브ë¼ìš°ì €ì˜ ë³´ì•ˆì„¤ì •ë•Œë¬¸ì— ë³µì‚¬í•˜ê¸° ê¸°ëŠ¥ì„ ì‹¤í–‰í•  수 없습니다. 키보드 ëª…ë ¹ì„ ì‚¬ìš©í•˜ì‹­ì‹œìš”. (Ctrl+C).", @@ -350,6 +356,7 @@ PasteAsText : "í…스트로 붙여넣기", PasteFromWord : "MS Word 형ì‹ì—ì„œ 붙여넣기", DlgPasteMsg2 : "í‚¤ë³´ë“œì˜ (<STRONG>Ctrl+V</STRONG>) 를 ì´ìš©í•´ì„œ ìƒìžì•ˆì— 붙여넣고 <STRONG>OK</STRONG> 를 누르세요.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "í°íŠ¸ 설정 무시", DlgPasteRemoveStyles : "ìŠ¤íƒ€ì¼ ì •ì˜ ì œê±°", DlgPasteCleanBox : "글ìƒìž 제거", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "브ë¼ìš°ì € ì •ë³´", DlgAboutLicenseTab : "License", //MISSING DlgAboutVersion : "버전", DlgAboutInfo : "For further information go to" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/lt.js b/editor/editor/lang/lt.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: lt.js - * Lithuanian language file. - * - * File Authors: - * Tauras Paliulis (tauras.paliulis@tauras.com) + * + * Lithuanian language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Nuoroda", InsertLink : "Ä®terpti/taisyti nuorodÄ…", RemoveLink : "Panaikinti nuorodÄ…", Anchor : "Ä®terpti/modifikuoti žymÄ™", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Vaizdas", InsertImage : "Ä®terpti/taisyti vaizdÄ…", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "Lygiuoti deÅ¡inÄ™", BlockJustify : "Lygiuoti abi puses", DecreaseIndent : "Sumažinti įtraukÄ…", IncreaseIndent : "Padidinti įtraukÄ…", +Blockquote : "Blockquote", //MISSING Undo : "AtÅ¡aukti", Redo : "Atstatyti", NumberedListLbl : "Numeruotas sÄ…raÅ¡as", @@ -107,20 +105,27 @@ SelectionField : "Atrankos laukas", ImageButton : "Vaizdinis mygtukas", FitWindow : "Maximize the editor size", //MISSING +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Taisyti nuorodÄ…", CellCM : "Cell", //MISSING RowCM : "Row", //MISSING ColumnCM : "Column", //MISSING -InsertRow : "Ä®terpti eilutÄ™", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Å alinti eilutes", -InsertColumn : "Ä®terpti stulpelį", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Å alinti stulpelius", -InsertCell : "Ä®terpti langelį", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Å alinti langelius", MergeCells : "Sujungti langelius", -SplitCell : "Skaidyti langelius", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Å alinti lentelÄ™", CellProperties : "Langelio savybÄ—s", TableProperties : "LentelÄ—s savybÄ—s", @@ -138,7 +143,7 @@ SelectionFieldProp : "Atrankos lauko savybÄ—s", TextareaProp : "Teksto srities savybÄ—s", FormProp : "Formos savybÄ—s", -FontFormats : "Normalus;Formuotas;Kreipinio;AntraÅ¡tinis 1;AntraÅ¡tinis 2;AntraÅ¡tinis 3;AntraÅ¡tinis 4;AntraÅ¡tinis 5;AntraÅ¡tinis 6", //REVIEW : Check _getfontformat.html +FontFormats : "Normalus;Formuotas;Kreipinio;AntraÅ¡tinis 1;AntraÅ¡tinis 2;AntraÅ¡tinis 3;AntraÅ¡tinis 4;AntraÅ¡tinis 5;AntraÅ¡tinis 6", // Alerts and Messages ProcessingXHTML : "Apdorojamas XHTML. PraÅ¡ome palaukti...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Pasirinkite žymÄ™", DlgLnkAnchorByName : "Pagal žymÄ—s vardÄ…", DlgLnkAnchorById : "Pagal žymÄ—s Id", -DlgLnkNoAnchors : "<Å iame dokumente žymių nÄ—ra>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Å iame dokumente žymių nÄ—ra)", DlgLnkEMail : "El.paÅ¡to adresas", DlgLnkEMailSubject : "ŽinutÄ—s tema", DlgLnkEMailBody : "ŽinutÄ—s turinys", @@ -326,6 +331,9 @@ DlgCellBackColor : "Fono spalva", DlgCellBorderColor : "RÄ—melio spalva", DlgCellBtnSelect : "PažymÄ—ti...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "PaieÅ¡ka", DlgFindFindBtn : "Surasti", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Pakeisti viskÄ…", DlgReplaceWordChk : "Atitikti pilnÄ… žodį", // Paste Operations / Dialog -PasteErrorPaste : "JÅ«sų narÅ¡yklÄ—s saugumo nustatymai neleidžia redaktoriui automatiÅ¡kai įvykdyti įdÄ—jimo operacijų. Tam praÅ¡ome naudoti klaviatÅ«rÄ… (Ctrl+V).", PasteErrorCut : "JÅ«sų narÅ¡yklÄ—s saugumo nustatymai neleidžia redaktoriui automatiÅ¡kai įvykdyti iÅ¡kirpimo operacijų. Tam praÅ¡ome naudoti klaviatÅ«rÄ… (Ctrl+X).", PasteErrorCopy : "JÅ«sų narÅ¡yklÄ—s saugumo nustatymai neleidžia redaktoriui automatiÅ¡kai įvykdyti kopijavimo operacijų. Tam praÅ¡ome naudoti klaviatÅ«rÄ… (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Ä®dÄ—ti kaip grynÄ… tekstÄ…", PasteFromWord : "Ä®dÄ—ti iÅ¡ Word", DlgPasteMsg2 : "Žemiau esanÄiame įvedimo lauke įdÄ—kite tekstÄ…, naudodami klaviatÅ«rÄ… (<STRONG>Ctrl+V</STRONG>) ir spÅ«stelkite mygtukÄ… <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Ignoruoti Å¡riftų nustatymus", DlgPasteRemoveStyles : "PaÅ¡alinti stilių nustatymus", DlgPasteCleanBox : "Trinti įvedimo laukÄ…", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "NarÅ¡yklÄ—s informacija", DlgAboutLicenseTab : "License", //MISSING DlgAboutVersion : "versija", DlgAboutInfo : "PapildomÄ… informacijÄ… galima gauti" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/lv.js b/editor/editor/lang/lv.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: lv.js - * Latvian language file. - * - * File Authors: - * JÄnis Kļaviņš (janis@4id.lv) - * Slowmo (slowmo@inbox.lv) + * + * Latvian language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "Hipersaite", InsertLink : "Ievietot/Labot hipersaiti", RemoveLink : "Noņemt hipersaiti", Anchor : "Ievietot/Labot iezÄ«mi", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "AttÄ“ls", InsertImage : "Ievietot/Labot AttÄ“lu", InsertFlashLbl : "Flash", @@ -75,6 +71,7 @@ RightJustify : "IzlÄ«dzinÄt pa labi", BlockJustify : "IzlÄ«dzinÄt malas", DecreaseIndent : "SamazinÄt atkÄpi", IncreaseIndent : "PalielinÄt atkÄpi", +Blockquote : "Blockquote", //MISSING Undo : "Atcelt", Redo : "AtkÄrtot", NumberedListLbl : "NumurÄ“ts saraksts", @@ -108,20 +105,27 @@ SelectionField : "IezÄ«mÄ“Å¡anas lauks", ImageButton : "AttÄ“lpoga", FitWindow : "MaksimizÄ“t redaktora izmÄ“ru", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Labot hipersaiti", CellCM : "Å Å«na", RowCM : "Rinda", ColumnCM : "Kolonna", -InsertRow : "Ievietot rindu", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "DzÄ“st rindas", -InsertColumn : "Ievietot kolonnu", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "DzÄ“st kolonnas", -InsertCell : "Ievietot rÅ«tiņu", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "DzÄ“st rÅ«tiņas", MergeCells : "Apvienot rÅ«tiņas", -SplitCell : "SadalÄ«t rÅ«tiņu", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "DzÄ“st tabulu", CellProperties : "RÅ«tiņas Ä«paÅ¡Ä«bas", TableProperties : "Tabulas Ä«paÅ¡Ä«bas", @@ -139,7 +143,7 @@ SelectionFieldProp : "IezÄ«mÄ“Å¡anas lauka Ä«paÅ¡Ä«bas", TextareaProp : "Teksta laukuma Ä«paÅ¡Ä«bas", FormProp : "Formas Ä«paÅ¡Ä«bas", -FontFormats : "NormÄls teksts;FormatÄ“ts teksts;Adrese;Virsraksts 1;Virsraksts 2;Virsraksts 3;Virsraksts 4;Virsraksts 5;Virsraksts 6;Rindkopa (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "NormÄls teksts;FormatÄ“ts teksts;Adrese;Virsraksts 1;Virsraksts 2;Virsraksts 3;Virsraksts 4;Virsraksts 5;Virsraksts 6;Rindkopa (DIV)", // Alerts and Messages ProcessingXHTML : "Tiek apstrÄdÄts XHTML. LÅ«dzu uzgaidiet...", @@ -234,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "IzvÄ“lÄ“ties iezÄ«mi", DlgLnkAnchorByName : "PÄ“c iezÄ«mes nosaukuma", DlgLnkAnchorById : "PÄ“c elementa ID", -DlgLnkNoAnchors : "<Å ajÄ dokumentÄ nav iezÄ«mju>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Å ajÄ dokumentÄ nav iezÄ«mju)", DlgLnkEMail : "E-pasta adrese", DlgLnkEMailSubject : "Ziņas tÄ“ma", DlgLnkEMailBody : "Ziņas saturs", @@ -327,6 +331,9 @@ DlgCellBackColor : "Fona krÄsa", DlgCellBorderColor : "RÄmja krÄsa", DlgCellBtnSelect : "IezÄ«mÄ“...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "MeklÄ“tÄjs", DlgFindFindBtn : "MeklÄ“t", @@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "Aizvietot visu", DlgReplaceWordChk : "JÄsakrÄ«t pilnÄ«bÄ", // Paste Operations / Dialog -PasteErrorPaste : "JÅ«su pÄrlÅ«kprogrammas droÅ¡Ä«bas iestatÄ«jumi nepieļauj editoram automÄtiski veikt ievietoÅ¡anas darbÄ«bu. LÅ«dzu, izmantojiet (Ctrl+V), lai veiktu Å¡o darbÄ«bu.", PasteErrorCut : "JÅ«su pÄrlÅ«kprogrammas droÅ¡Ä«bas iestatÄ«jumi nepieļauj editoram automÄtiski veikt izgrieÅ¡anas darbÄ«bu. LÅ«dzu, izmantojiet (Ctrl+X, lai veiktu Å¡o darbÄ«bu.", PasteErrorCopy : "JÅ«su pÄrlÅ«kprogrammas droÅ¡Ä«bas iestatÄ«jumi nepieļauj editoram automÄtiski veikt kopÄ“Å¡anas darbÄ«bu. LÅ«dzu, izmantojiet (Ctrl+C), lai veiktu Å¡o darbÄ«bu.", @@ -350,6 +356,7 @@ PasteAsText : "Ievietot kÄ vienkÄrÅ¡u tekstu", PasteFromWord : "Ievietot no Worda", DlgPasteMsg2 : "LÅ«dzu, ievietojiet tekstu Å¡ajÄ laukumÄ, izmantojot klaviatÅ«ru (<STRONG>Ctrl+V</STRONG>) un apstipriniet ar <STRONG>DarÄ«ts!</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "IgnorÄ“t iepriekÅ¡ norÄdÄ«tos fontus", DlgPasteRemoveStyles : "Noņemt norÄdÄ«tos stilus", DlgPasteCleanBox : "ApstrÄdÄt laukuma saturu", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "InformÄcija par pÄrlÅ«kprogrammu", DlgAboutLicenseTab : "Licence", DlgAboutVersion : "versija", DlgAboutInfo : "Papildus informÄcija ir pieejama" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/mn.js b/editor/editor/lang/mn.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: mn.js - * Mongolian language file. - * - * File Authors: - * Lkamtseren ODONBAATAR (odonbaatarl@yahoo.com) + * + * Mongolian language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Линк", InsertLink : "Линк Оруулах/ЗаÑварлах", RemoveLink : "Линк авч хаÑÑ…", Anchor : "Insert/Edit Anchor", //MISSING +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Зураг", InsertImage : "Зураг Оруулах/ЗаÑварлах", InsertFlashLbl : "Flash", //MISSING @@ -74,6 +71,7 @@ RightJustify : "Баруун талд байрлуулах", BlockJustify : "Блок Ñ…ÑлбÑÑ€ÑÑÑ€ байрлуулах", DecreaseIndent : "Догол мөр нÑмÑÑ…", IncreaseIndent : "Догол мөр хаÑах", +Blockquote : "Blockquote", //MISSING Undo : "Хүчингүй болгох", Redo : "Өмнөх үйлдлÑÑ ÑÑргÑÑÑ…", NumberedListLbl : "ДугаарлагдÑан жагÑаалт", @@ -107,20 +105,27 @@ SelectionField : "Selection Field", //MISSING ImageButton : "Image Button", //MISSING FitWindow : "Maximize the editor size", //MISSING +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð·Ð°Ñварлах", CellCM : "Cell", //MISSING RowCM : "Row", //MISSING ColumnCM : "Column", //MISSING -InsertRow : "Мөр оруулах", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Мөр уÑтгах", -InsertColumn : "Багана оруулах", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Багана уÑтгах", -InsertCell : "Ðүх оруулах", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Ðүх уÑтгах", MergeCells : "Ðүх нÑгтÑÑ…", -SplitCell : "Ðүх туÑгайрлах", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Delete Table", //MISSING CellProperties : "ХооÑон зайн шинж чанар", TableProperties : "Ð¥Ò¯ÑнÑгт", @@ -138,7 +143,7 @@ SelectionFieldProp : "Selection Field Properties", //MISSING TextareaProp : "Textarea Properties", //MISSING FormProp : "Form Properties", //MISSING -FontFormats : "Ð¥Ñвийн;Formatted;ХаÑг;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Ð¥Ñвийн;Formatted;ХаÑг;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)", // Alerts and Messages ProcessingXHTML : "XHTML үйл Ñвц Ñвагдаж байна. ХүлÑÑÐ½Ñ Ò¯Ò¯...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ñонгох", DlgLnkAnchorByName : "ХолбооÑын нÑÑ€ÑÑÑ€", DlgLnkAnchorById : "ЭлемÑнт Id-гаар", -DlgLnkNoAnchors : "<Баримт бичиг холбооÑгүй байна>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Баримт бичиг холбооÑгүй байна)", DlgLnkEMail : "E-Mail ХаÑг", DlgLnkEMailSubject : "Message Subject", DlgLnkEMailBody : "Message-ийн агуулга", @@ -326,6 +331,9 @@ DlgCellBackColor : "Фонны өнгө", DlgCellBorderColor : "ХүрÑÑний өнгө", DlgCellBtnSelect : "Сонго...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Хайх", DlgFindFindBtn : "Хайх", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Бүгдийг нь Солих", DlgReplaceWordChk : "ТÑнцÑÑ… бүтÑн үг", // Paste Operations / Dialog -PasteErrorPaste : "Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар буулгах үйлдÑлийг зөвшөөрөхгүй байна. (Ctrl+V) товчны хоÑлолыг ашиглана уу.", PasteErrorCut : "Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хайчлах үйлдÑлийг зөвшөөрөхгүй байна. (Ctrl+X) товчны хоÑлолыг ашиглана уу.", PasteErrorCopy : "Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хуулах үйлдÑлийг зөвшөөрөхгүй байна. (Ctrl+C) товчны хоÑлолыг ашиглана уу.", @@ -349,6 +356,7 @@ PasteAsText : "Plain Text-ÑÑÑ Ð±ÑƒÑƒÐ»Ð³Ð°Ñ…", PasteFromWord : "Word-Ð¾Ð¾Ñ Ð±ÑƒÑƒÐ»Ð³Ð°Ñ…", DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.", //MISSING +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Ignore Font Face definitions", //MISSING DlgPasteRemoveStyles : "Remove Styles definitions", //MISSING DlgPasteCleanBox : "Clean Up Box", //MISSING @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Browser Info", //MISSING DlgAboutLicenseTab : "License", //MISSING DlgAboutVersion : "Хувилбар", DlgAboutInfo : "ÐœÑдÑÑллÑÑÑ€ туÑлах" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/ms.js b/editor/editor/lang/ms.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: ms.js - * Malay language file. - * - * File Authors: - * Fairul Izham Mohd Mokhlas (eg86@hotmail.com) + * + * Malay language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Sambungan", InsertLink : "Masukkan/Sunting Sambungan", RemoveLink : "Buang Sambungan", Anchor : "Masukkan/Sunting Pautan", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Gambar", InsertImage : "Masukkan/Sunting Gambar", InsertFlashLbl : "Flash", //MISSING @@ -74,6 +71,7 @@ RightJustify : "Jajaran Kanan", BlockJustify : "Jajaran Blok", DecreaseIndent : "Kurangkan Inden", IncreaseIndent : "Tambahkan Inden", +Blockquote : "Blockquote", //MISSING Undo : "Batalkan", Redo : "Ulangkan", NumberedListLbl : "Senarai bernombor", @@ -107,20 +105,27 @@ SelectionField : "Field Pilihan", ImageButton : "Butang Bergambar", FitWindow : "Maximize the editor size", //MISSING +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Sunting Sambungan", CellCM : "Cell", //MISSING RowCM : "Row", //MISSING ColumnCM : "Column", //MISSING -InsertRow : "Masukkan Baris", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Buangkan Baris", -InsertColumn : "Masukkan Lajur", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Buangkan Lajur", -InsertCell : "Masukkan Sel", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Buangkan Sel-sel", MergeCells : "Cantumkan Sel-sel", -SplitCell : "Bahagikan Sel", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Delete Table", //MISSING CellProperties : "Ciri-ciri Sel", TableProperties : "Ciri-ciri Jadual", @@ -138,7 +143,7 @@ SelectionFieldProp : "Ciri-ciri Selection Field", TextareaProp : "Ciri-ciri Textarea", FormProp : "Ciri-ciri Borang", -FontFormats : "Normal;Telah Diformat;Alamat;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Perenggan (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Telah Diformat;Alamat;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Perenggan (DIV)", // Alerts and Messages ProcessingXHTML : "Memproses XHTML. Sila tunggu...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Sila pilih pautan", DlgLnkAnchorByName : "dengan menggunakan nama pautan", DlgLnkAnchorById : "dengan menggunakan ID elemen", -DlgLnkNoAnchors : "<Tiada pautan terdapat dalam dokumen ini>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Tiada pautan terdapat dalam dokumen ini)", DlgLnkEMail : "Alamat E-Mail", DlgLnkEMailSubject : "Subjek Mesej", DlgLnkEMailBody : "Isi Kandungan Mesej", @@ -326,6 +331,9 @@ DlgCellBackColor : "Warna Latarbelakang", DlgCellBorderColor : "Warna Border", DlgCellBtnSelect : "Pilih...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Carian", DlgFindFindBtn : "Cari", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Ganti semua", DlgReplaceWordChk : "Padana Keseluruhan perkataan", // Paste Operations / Dialog -PasteErrorPaste : "Keselamatan perisian browser anda tidak membenarkan operasi tampalan text/imej. Sila gunakan papan kekunci (Ctrl+V).", PasteErrorCut : "Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl+X).", PasteErrorCopy : "Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Tampal sebagai text biasa", PasteFromWord : "Tampal dari perisian \"Word\"", DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.", //MISSING +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Ignore Font Face definitions", //MISSING DlgPasteRemoveStyles : "Remove Styles definitions", //MISSING DlgPasteCleanBox : "Clean Up Box", //MISSING @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Maklumat Perisian Browser", DlgAboutLicenseTab : "License", //MISSING DlgAboutVersion : "versi", DlgAboutInfo : "Untuk maklumat lanjut sila pergi ke" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/nb.js b/editor/editor/lang/nb.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: nb.js - * Norwegian BokmÃ¥l language file. - * - * File Authors: - * Martin Kronstad (www.siteman.no) (martin.kronstad@gmail.com) + * + * Norwegian BokmÃ¥l language file. */ var FCKLang = @@ -43,12 +39,13 @@ Paste : "Lim inn", PasteText : "Lim inn som ren tekst", PasteWord : "Lim inn fra Word", Print : "Skriv ut", -SelectAll : "Velg alle", +SelectAll : "Merk alt", RemoveFormat : "Fjern format", InsertLinkLbl : "Lenke", InsertLink : "Sett inn/Rediger lenke", RemoveLink : "Fjern lenke", Anchor : "Sett inn/Rediger anker", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Bilde", InsertImage : "Sett inn/Rediger bilde", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "Høyrejuster", BlockJustify : "Blokkjuster", DecreaseIndent : "Senk nivÃ¥", IncreaseIndent : "Øk nivÃ¥", +Blockquote : "Blockquote", //MISSING Undo : "Angre", Redo : "Gjør om", NumberedListLbl : "Numrert liste", @@ -107,20 +105,27 @@ SelectionField : "Dropdown meny", ImageButton : "Bildeknapp", FitWindow : "Maksimer størrelsen pÃ¥ redigeringsverktøyet", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Rediger lenke", CellCM : "Celle", RowCM : "Rader", ColumnCM : "Kolonne", -InsertRow : "Sett inn rad", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Slett rader", -InsertColumn : "Sett inn kolonne", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Slett kolonner", -InsertCell : "Sett inn celle", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Slett celler", MergeCells : "SlÃ¥ sammen celler", -SplitCell : "Splitt celler", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Slett tabell", CellProperties : "Celleegenskaper", TableProperties : "Tabellegenskaper", @@ -138,7 +143,7 @@ SelectionFieldProp : "Dropdown menyegenskaper", TextareaProp : "Tekstfeltegenskaper", FormProp : "Skjemaegenskaper", -FontFormats : "Normal;Formatert;Adresse;Tittel 1;Tittel 2;Tittel 3;Tittel 4;Tittel 5;Tittel 6", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatert;Adresse;Tittel 1;Tittel 2;Tittel 3;Tittel 4;Tittel 5;Tittel 6;Normal (DIV)", // Alerts and Messages ProcessingXHTML : "Lager XHTML. Vennligst vent...", @@ -225,16 +230,16 @@ DlgLnkTargetTab : "MÃ¥l", DlgLnkType : "Lenketype", DlgLnkTypeURL : "URL", -DlgLnkTypeAnchor : "Lenke til bokmerke i teksten", -DlgLnkTypeEMail : "E-Post", +DlgLnkTypeAnchor : "Lenke til anker i teksten", +DlgLnkTypeEMail : "E-post", DlgLnkProto : "Protokoll", DlgLnkProtoOther : "<annet>", DlgLnkURL : "URL", DlgLnkAnchorSel : "Velg ett anker", DlgLnkAnchorByName : "Anker etter navn", DlgLnkAnchorById : "Element etter ID", -DlgLnkNoAnchors : "<Ingen anker i dokumentet>", //REVIEW : Change < and > with ( and ) -DlgLnkEMail : "E-Post Addresse", +DlgLnkNoAnchors : "(Ingen anker i dokumentet)", +DlgLnkEMail : "E-postadresse", DlgLnkEMailSubject : "Meldingsemne", DlgLnkEMailBody : "Melding", DlgLnkUpload : "Last opp", @@ -291,7 +296,7 @@ DlgTableAlignLeft : "Venstre", DlgTableAlignCenter : "Midtjuster", DlgTableAlignRight : "Høyre", DlgTableWidth : "Bredde", -DlgTableWidthPx : "pixler", +DlgTableWidthPx : "piksler", DlgTableWidthPc : "prosent", DlgTableHeight : "Høyde", DlgTableCellSpace : "Celle marg", @@ -300,9 +305,9 @@ DlgTableCaption : "Tittel", DlgTableSummary : "Sammendrag", // Table Cell Dialog -DlgCellTitle : "Celle egenskaper", +DlgCellTitle : "Celleegenskaper", DlgCellWidth : "Bredde", -DlgCellWidthPx : "pixeler", +DlgCellWidthPx : "piksler", DlgCellWidthPc : "prosent", DlgCellHeight : "Høyde", DlgCellWordWrap : "Tekstbrytning", @@ -326,6 +331,9 @@ DlgCellBackColor : "Bakgrunnsfarge", DlgCellBorderColor : "Rammefarge", DlgCellBtnSelect : "Velg...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Finn", DlgFindFindBtn : "Finn", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Erstatt alle", DlgReplaceWordChk : "Finn hele ordet", // Paste Operations / Dialog -PasteErrorPaste : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk innliming av tekst. Vennligst brukt snareveien (Ctrl+V).", PasteErrorCut : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst brukt snareveien (Ctrl+X).", PasteErrorCopy : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst brukt snareveien (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Lim inn som ren tekst", PasteFromWord : "Lim inn fra word", DlgPasteMsg2 : "Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Fjern skrifttyper", DlgPasteRemoveStyles : "Fjern stildefinisjoner", DlgPasteCleanBox : "Tøm boksen", @@ -504,5 +512,5 @@ DlgAboutAboutTab : "Om", DlgAboutBrowserInfoTab : "Nettleserinfo", DlgAboutLicenseTab : "Lisens", DlgAboutVersion : "versjon", -DlgAboutInfo : "Oversatt av Siteman AS<br /><a target=\"_blank\" href=\"http://www.siteman.no\">www.siteman.no</a><br /><br />For mer informasjon gÃ¥ til" -};- \ No newline at end of file +DlgAboutInfo : "For further information go to" //MISSING +}; diff --git a/editor/editor/lang/nl.js b/editor/editor/lang/nl.js @@ -1,30 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: nl.js - * Dutch language file. - * - * File Authors: - * Bram Crins (bcrins@realdesign.nl) - * Aaron van Geffen (aaron@aaronweb.net) - * John van der Kamp (j.vdkamp@connectux.com) + * + * Dutch language file. */ var FCKLang = @@ -51,6 +45,7 @@ InsertLinkLbl : "Link", InsertLink : "Link invoegen/wijzigen", RemoveLink : "Link verwijderen", Anchor : "Interne link", +AnchorDelete : "Anker verwijderen", InsertImageLbl : "Afbeelding", InsertImage : "Afbeelding invoegen/wijzigen", InsertFlashLbl : "Flash", @@ -58,7 +53,7 @@ InsertFlash : "Flash invoegen/wijzigen", InsertTableLbl : "Tabel", InsertTable : "Tabel invoegen/wijzigen", InsertLineLbl : "Lijn", -InsertLine : "Invoegen horizontale lijn", +InsertLine : "Horizontale lijn invoegen", InsertSpecialCharLbl: "Speciale tekens", InsertSpecialChar : "Speciaal teken invoegen", InsertSmileyLbl : "Smiley", @@ -76,6 +71,7 @@ RightJustify : "Rechts uitlijnen", BlockJustify : "Uitvullen", DecreaseIndent : "Inspringen verkleinen", IncreaseIndent : "Inspringen vergroten", +Blockquote : "Citaatblok", Undo : "Ongedaan maken", Redo : "Opnieuw uitvoeren", NumberedListLbl : "Genummerde lijst", @@ -109,20 +105,27 @@ SelectionField : "Selectieveld", ImageButton : "Afbeeldingsknop", FitWindow : "De editor maximaliseren", +ShowBlocks : "Toon blokken", // Context Menu EditLink : "Link wijzigen", CellCM : "Cel", RowCM : "Rij", ColumnCM : "Kolom", -InsertRow : "Rij invoegen", +InsertRowAfter : "Voeg rij in achter", +InsertRowBefore : "Voeg rij in voor", DeleteRows : "Rijen verwijderen", -InsertColumn : "Kolom invoegen", +InsertColumnAfter : "Voeg kolom in achter", +InsertColumnBefore : "Voeg kolom in voor", DeleteColumns : "Kolommen verwijderen", -InsertCell : "Cel", +InsertCellAfter : "Voeg cel in achter", +InsertCellBefore : "Voeg cel in voor", DeleteCells : "Cellen verwijderen", MergeCells : "Cellen samenvoegen", -SplitCell : "Cellen splitsen", +MergeRight : "Voeg samen naar rechts", +MergeDown : "Voeg samen naar beneden", +HorizontalSplitCell : "Splits cellen horizontaal", +VerticalSplitCell : "Splits cellen verticaal", TableDelete : "Tabel verwijderen", CellProperties : "Eigenschappen cel", TableProperties : "Eigenschappen tabel", @@ -140,7 +143,7 @@ SelectionFieldProp : "Eigenschappen selectieveld", TextareaProp : "Eigenschappen tekstvak", FormProp : "Eigenschappen formulier", -FontFormats : "Normaal;Met opmaak;Adres;Kop 1;Kop 2;Kop 3;Kop 4;Kop 5;Kop 6;Normaal (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normaal;Met opmaak;Adres;Kop 1;Kop 2;Kop 3;Kop 4;Kop 5;Kop 6;Normaal (DIV)", // Alerts and Messages ProcessingXHTML : "Bezig met verwerken XHTML. Even geduld aub...", @@ -235,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Kies een interne link", DlgLnkAnchorByName : "Op naam interne link", DlgLnkAnchorById : "Op kenmerk interne link", -DlgLnkNoAnchors : "(Geen interne links in document gevonden)", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Geen interne links in document gevonden)", DlgLnkEMail : "E-mailadres", DlgLnkEMailSubject : "Onderwerp bericht", DlgLnkEMailBody : "Inhoud bericht", @@ -328,6 +331,9 @@ DlgCellBackColor : "Achtergrondkleur", DlgCellBorderColor : "Randkleur", DlgCellBtnSelect : "Selecteren...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Zoeken en vervangen", + // Find Dialog DlgFindTitle : "Zoeken", DlgFindFindBtn : "Zoeken", @@ -343,14 +349,14 @@ DlgReplaceReplAllBtn : "Alles vervangen", DlgReplaceWordChk : "Hele woord moet voorkomen", // Paste Operations / Dialog -PasteErrorPaste : "De beveiligingsinstelling van de browser verhinderen het automatisch plakken. Gebruik de sneltoets Ctrl+V van het toetsenbord.", PasteErrorCut : "De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl+X van het toetsenbord.", PasteErrorCopy : "De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl+C van het toetsenbord.", PasteAsText : "Plakken als platte tekst", PasteFromWord : "Plakken als Word-gegevens", -DlgPasteMsg2 : "Plak de tekst in het volgende vak gebruik makend van je toetstenbord (<STRONG>Ctrl+V</STRONG>) en klik op <STRONG>OK</STRONG>.", +DlgPasteMsg2 : "Plak de tekst in het volgende vak gebruik makend van je toetstenbord (<strong>Ctrl+V</strong>) en klik op <strong>OK</strong>.", +DlgPasteSec : "Door de beveiligingsinstellingen van uw browser is het niet mogelijk om direct vanuit het klembord in de editor te plakken. Middels opnieuw plakken in dit venster kunt u de tekst alsnog plakken in de editor.", DlgPasteIgnoreFont : "Negeer \"Font Face\"-definities", DlgPasteRemoveStyles : "Verwijder \"Style\"-definities", DlgPasteCleanBox : "Vak opschonen", @@ -507,4 +513,4 @@ DlgAboutBrowserInfoTab : "Browserinformatie", DlgAboutLicenseTab : "Licentie", DlgAboutVersion : "Versie", DlgAboutInfo : "Voor meer informatie ga naar " -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/no.js b/editor/editor/lang/no.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: no.js - * Norwegian language file. - * - * File Authors: - * Martin Kronstad (www.siteman.no) (martin.kronstad@gmail.com) + * + * Norwegian language file. */ var FCKLang = @@ -43,12 +39,13 @@ Paste : "Lim inn", PasteText : "Lim inn som ren tekst", PasteWord : "Lim inn fra Word", Print : "Skriv ut", -SelectAll : "Velg alle", +SelectAll : "Merk alt", RemoveFormat : "Fjern format", InsertLinkLbl : "Lenke", InsertLink : "Sett inn/Rediger lenke", RemoveLink : "Fjern lenke", Anchor : "Sett inn/Rediger anker", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Bilde", InsertImage : "Sett inn/Rediger bilde", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "Høyrejuster", BlockJustify : "Blokkjuster", DecreaseIndent : "Senk nivÃ¥", IncreaseIndent : "Øk nivÃ¥", +Blockquote : "Blockquote", //MISSING Undo : "Angre", Redo : "Gjør om", NumberedListLbl : "Numrert liste", @@ -107,20 +105,27 @@ SelectionField : "Dropdown meny", ImageButton : "Bildeknapp", FitWindow : "Maksimer størrelsen pÃ¥ redigeringsverktøyet", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Rediger lenke", CellCM : "Celle", RowCM : "Rader", ColumnCM : "Kolonne", -InsertRow : "Sett inn rad", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Slett rader", -InsertColumn : "Sett inn kolonne", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Slett kolonner", -InsertCell : "Sett inn celle", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Slett celler", MergeCells : "SlÃ¥ sammen celler", -SplitCell : "Splitt celler", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Slett tabell", CellProperties : "Celleegenskaper", TableProperties : "Tabellegenskaper", @@ -138,7 +143,7 @@ SelectionFieldProp : "Dropdown menyegenskaper", TextareaProp : "Tekstfeltegenskaper", FormProp : "Skjemaegenskaper", -FontFormats : "Normal;Formatert;Adresse;Tittel 1;Tittel 2;Tittel 3;Tittel 4;Tittel 5;Tittel 6", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatert;Adresse;Tittel 1;Tittel 2;Tittel 3;Tittel 4;Tittel 5;Tittel 6;Normal (DIV)", // Alerts and Messages ProcessingXHTML : "Lager XHTML. Vennligst vent...", @@ -225,16 +230,16 @@ DlgLnkTargetTab : "MÃ¥l", DlgLnkType : "Lenketype", DlgLnkTypeURL : "URL", -DlgLnkTypeAnchor : "Lenke til bokmerke i teksten", -DlgLnkTypeEMail : "E-Post", +DlgLnkTypeAnchor : "Lenke til anker i teksten", +DlgLnkTypeEMail : "E-post", DlgLnkProto : "Protokoll", DlgLnkProtoOther : "<annet>", DlgLnkURL : "URL", DlgLnkAnchorSel : "Velg ett anker", DlgLnkAnchorByName : "Anker etter navn", DlgLnkAnchorById : "Element etter ID", -DlgLnkNoAnchors : "<Ingen anker i dokumentet>", //REVIEW : Change < and > with ( and ) -DlgLnkEMail : "E-Post Addresse", +DlgLnkNoAnchors : "(Ingen anker i dokumentet)", +DlgLnkEMail : "E-postadresse", DlgLnkEMailSubject : "Meldingsemne", DlgLnkEMailBody : "Melding", DlgLnkUpload : "Last opp", @@ -291,7 +296,7 @@ DlgTableAlignLeft : "Venstre", DlgTableAlignCenter : "Midtjuster", DlgTableAlignRight : "Høyre", DlgTableWidth : "Bredde", -DlgTableWidthPx : "pixler", +DlgTableWidthPx : "piksler", DlgTableWidthPc : "prosent", DlgTableHeight : "Høyde", DlgTableCellSpace : "Celle marg", @@ -300,9 +305,9 @@ DlgTableCaption : "Tittel", DlgTableSummary : "Sammendrag", // Table Cell Dialog -DlgCellTitle : "Celle egenskaper", +DlgCellTitle : "Celleegenskaper", DlgCellWidth : "Bredde", -DlgCellWidthPx : "pixeler", +DlgCellWidthPx : "piksler", DlgCellWidthPc : "prosent", DlgCellHeight : "Høyde", DlgCellWordWrap : "Tekstbrytning", @@ -326,6 +331,9 @@ DlgCellBackColor : "Bakgrunnsfarge", DlgCellBorderColor : "Rammefarge", DlgCellBtnSelect : "Velg...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Finn", DlgFindFindBtn : "Finn", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Erstatt alle", DlgReplaceWordChk : "Finn hele ordet", // Paste Operations / Dialog -PasteErrorPaste : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk innliming av tekst. Vennligst brukt snareveien (Ctrl+V).", PasteErrorCut : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst brukt snareveien (Ctrl+X).", PasteErrorCopy : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst brukt snareveien (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Lim inn som ren tekst", PasteFromWord : "Lim inn fra word", DlgPasteMsg2 : "Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Fjern skrifttyper", DlgPasteRemoveStyles : "Fjern stildefinisjoner", DlgPasteCleanBox : "Tøm boksen", @@ -504,5 +512,5 @@ DlgAboutAboutTab : "Om", DlgAboutBrowserInfoTab : "Nettleserinfo", DlgAboutLicenseTab : "Lisens", DlgAboutVersion : "versjon", -DlgAboutInfo : "Oversatt av Siteman AS<br /><a target=\"_blank\" href=\"http://www.siteman.no\">www.siteman.no</a><br /><br />For mer informasjon gÃ¥ til" -};- \ No newline at end of file +DlgAboutInfo : "For further information go to" //MISSING +}; diff --git a/editor/editor/lang/pl.js b/editor/editor/lang/pl.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: pl.js - * Polish language file. - * - * File Authors: - * Jakub Boesche (jboesche@gazeta.pl) - * Maciej Bochynski (maciej.bochynski@lubman.pl) + * + * Polish language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "HiperÅ‚Ä…cze", InsertLink : "Wstaw/edytuj hiperÅ‚Ä…cze", RemoveLink : "UsuÅ„ hiperÅ‚Ä…cze", Anchor : "Wstaw/edytuj kotwicÄ™", +AnchorDelete : "UsuÅ„ kotwicÄ™", InsertImageLbl : "Obrazek", InsertImage : "Wstaw/edytuj obrazek", InsertFlashLbl : "Flash", @@ -75,6 +71,7 @@ RightJustify : "Wyrównaj do prawej", BlockJustify : "Wyrównaj do lewej i prawej", DecreaseIndent : "Zmniejsz wciÄ™cie", IncreaseIndent : "ZwiÄ™ksz wciÄ™cie", +Blockquote : "Cytat", Undo : "Cofnij", Redo : "Ponów", NumberedListLbl : "Lista numerowana", @@ -98,30 +95,37 @@ PageBreakLbl : "OdstÄ™p", PageBreak : "Wstaw odstÄ™p", Form : "Formularz", -Checkbox : "Checkbox", -RadioButton : "Pole wyboru", +Checkbox : "Pole wyboru (checkbox)", +RadioButton : "Pole wyboru (radio)", TextField : "Pole tekstowe", Textarea : "Obszar tekstowy", HiddenField : "Pole ukryte", Button : "Przycisk", SelectionField : "Lista wyboru", -ImageButton : "Przycisk obrazek", +ImageButton : "Przycisk-obrazek", FitWindow : "Maksymalizuj rozmiar edytora", +ShowBlocks : "Pokaż bloki", // Context Menu EditLink : "Edytuj hiperÅ‚Ä…cze", CellCM : "Komórka", RowCM : "Wiersz", ColumnCM : "Kolumna", -InsertRow : "Wstaw wiersz", +InsertRowAfter : "Wstaw wiersz poniżej", +InsertRowBefore : "Wstaw wiersz powyżej", DeleteRows : "UsuÅ„ wiersze", -InsertColumn : "Wstaw kolumnÄ™", +InsertColumnAfter : "Wstaw kolumnÄ™ z prawej", +InsertColumnBefore : "Wstaw kolumnÄ™ z lewej", DeleteColumns : "UsuÅ„ kolumny", -InsertCell : "Wstaw komórkÄ™", +InsertCellAfter : "Wstaw komórkÄ™ z prawej", +InsertCellBefore : "Wstaw komórkÄ™ z lewej", DeleteCells : "UsuÅ„ komórki", MergeCells : "PoÅ‚Ä…cz komórki", -SplitCell : "Podziel komórkÄ™", +MergeRight : "PoÅ‚Ä…cz z komórkÄ… z prawej", +MergeDown : "PoÅ‚Ä…cz z komórkÄ… poniżej", +HorizontalSplitCell : "Podziel komórkÄ™ poziomo", +VerticalSplitCell : "Podziel komórkÄ™ pionowo", TableDelete : "UsuÅ„ tabelÄ™", CellProperties : "WÅ‚aÅ›ciwoÅ›ci komórki", TableProperties : "WÅ‚aÅ›ciwoÅ›ci tabeli", @@ -130,16 +134,16 @@ FlashProperties : "WÅ‚aÅ›ciwoÅ›ci elementu Flash", AnchorProp : "WÅ‚aÅ›ciwoÅ›ci kotwicy", ButtonProp : "WÅ‚aÅ›ciwoÅ›ci przycisku", -CheckboxProp : "Checkbox - wÅ‚aÅ›ciwoÅ›ci", +CheckboxProp : "WÅ‚aÅ›ciwoÅ›ci pola wyboru (checkbox)", HiddenFieldProp : "WÅ‚aÅ›ciwoÅ›ci pola ukrytego", -RadioButtonProp : "WÅ‚aÅ›ciwoÅ›ci pola wyboru", +RadioButtonProp : "WÅ‚aÅ›ciwoÅ›ci pola wyboru (radio)", ImageButtonProp : "WÅ‚aÅ›ciwoÅ›ci przycisku obrazka", TextFieldProp : "WÅ‚aÅ›ciwoÅ›ci pola tekstowego", SelectionFieldProp : "WÅ‚aÅ›ciwoÅ›ci listy wyboru", TextareaProp : "WÅ‚aÅ›ciwoÅ›ci obszaru tekstowego", FormProp : "WÅ‚aÅ›ciwoÅ›ci formularza", -FontFormats : "Normalny;Tekst sformatowany;Adres;Nagłówek 1;Nagłówek 2;Nagłówek 3;Nagłówek 4;Nagłówek 5;Nagłówek 6", //REVIEW : Check _getfontformat.html +FontFormats : "Normalny;Tekst sformatowany;Adres;Nagłówek 1;Nagłówek 2;Nagłówek 3;Nagłówek 4;Nagłówek 5;Nagłówek 6", // Alerts and Messages ProcessingXHTML : "Przetwarzanie XHTML. ProszÄ™ czekać...", @@ -151,8 +155,8 @@ UnknownCommand : "Nieznana komenda \"%1\"", NotImplemented : "Komenda niezaimplementowana", UnknownToolbarSet : "Pasek narzÄ™dzi \"%1\" nie istnieje", NoActiveX : "Ustawienia zabezpieczeÅ„ twojej przeglÄ…darki mogÄ… ograniczyć niektóre funkcje edytora. Musisz wÅ‚Ä…czyć opcjÄ™ \"Uruchamianie formantów Activex i dodatków plugin\". W przeciwnym wypadku mogÄ… pojawiać siÄ™ bÅ‚Ä™dy.", -BrowseServerBlocked : "Okno menadżera plików nie może zostać otwarte. Upewnij siÄ™, że wszystkie blokady popup sÄ… wyÅ‚Ä…czone.", -DialogBlocked : "Nie można otworzyć okna dialogowego. Upewnij siÄ™, że wszystkie blokady popup sÄ… wyÅ‚Ä…czone.", +BrowseServerBlocked : "Nie można otworzyć okno menadżera plików. Upewnij siÄ™, że wszystkie blokady wyskakujÄ…cych okienek sÄ… wyÅ‚Ä…czone.", +DialogBlocked : "Nie można otworzyć okna dialogowego. Upewnij siÄ™, że wszystkie blokady wyskakujÄ…cych okienek sÄ… wyÅ‚Ä…czone.", // Dialogs DlgBtnOK : "OK", @@ -165,7 +169,7 @@ DlgInfoTab : "Informacje", DlgAlertUrl : "ProszÄ™ podać URL", // General Dialogs Labels -DlgGenNotSet : "<nieustawione>", +DlgGenNotSet : "<nie ustawione>", DlgGenId : "Id", DlgGenLangDir : "Kierunek tekstu", DlgGenLangDirLtr : "Od lewej do prawej (LTR)", @@ -174,17 +178,17 @@ DlgGenLangCode : "Kod jÄ™zyka", DlgGenAccessKey : "Klawisz dostÄ™pu", DlgGenName : "Nazwa", DlgGenTabIndex : "Indeks tabeli", -DlgGenLongDescr : "Long Description URL", -DlgGenClass : "Stylesheet Classes", -DlgGenTitle : "Advisory Title", -DlgGenContType : "Advisory Content Type", -DlgGenLinkCharset : "Linked Resource Charset", +DlgGenLongDescr : "DÅ‚ugi opis hiperÅ‚Ä…cza", +DlgGenClass : "Nazwa klasy CSS", +DlgGenTitle : "Opis obiektu docelowego", +DlgGenContType : "Typ MIME obiektu docelowego", +DlgGenLinkCharset : "Kodowanie znaków obiektu docelowego", DlgGenStyle : "Styl", // Image Dialog DlgImgTitle : "WÅ‚aÅ›ciwoÅ›ci obrazka", DlgImgInfoTab : "Informacje o obrazku", -DlgImgBtnUpload : "SyÅ›lij", +DlgImgBtnUpload : "WyÅ›lij", DlgImgURL : "Adres URL", DlgImgUpload : "WyÅ›lij", DlgImgAlt : "Tekst zastÄ™pczy", @@ -207,7 +211,7 @@ DlgImgAlignTextTop : "Do góry tekstu", DlgImgAlignTop : "Do góry", DlgImgPreview : "PodglÄ…d", DlgImgAlertUrl : "Podaj adres obrazka.", -DlgImgLinkTab : "Link", +DlgImgLinkTab : "HiperÅ‚Ä…cze", // Flash Dialog DlgFlashTitle : "WÅ‚aÅ›ciwoÅ›ci elementu Flash", @@ -234,11 +238,11 @@ DlgLnkURL : "Adres URL", DlgLnkAnchorSel : "Wybierz etykietÄ™", DlgLnkAnchorByName : "Wg etykiety", DlgLnkAnchorById : "Wg identyfikatora elementu", -DlgLnkNoAnchors : "<W dokumencie nie zdefiniowano żadnych etykiet>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(W dokumencie nie zdefiniowano żadnych etykiet)", DlgLnkEMail : "Adres e-mail", DlgLnkEMailSubject : "Temat", DlgLnkEMailBody : "Treść", -DlgLnkUpload : "Upload", +DlgLnkUpload : "WyÅ›lij", DlgLnkBtnUpload : "WyÅ›lij", DlgLnkTarget : "Cel", @@ -267,7 +271,7 @@ DlgLnkPopTop : "Pozycja w pionie", DlnLnkMsgNoUrl : "Podaj adres URL", DlnLnkMsgNoEMail : "Podaj adres e-mail", DlnLnkMsgNoAnchor : "Wybierz etykietÄ™", -DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING +DlnLnkMsgInvPopName : "Nazwa wyskakujÄ…cego okienka musi zaczynać siÄ™ od znaku alfanumerycznego i nie może zawierać spacji", // Color Dialog DlgColorTitle : "Wybierz kolor", @@ -327,6 +331,9 @@ DlgCellBackColor : "Kolor tÅ‚a", DlgCellBorderColor : "Kolor ramki", DlgCellBtnSelect : "Wybierz...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Znajdź i zamieÅ„", + // Find Dialog DlgFindTitle : "Znajdź", DlgFindFindBtn : "Znajdź", @@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "ZastÄ…p wszystko", DlgReplaceWordChk : "CaÅ‚e sÅ‚owa", // Paste Operations / Dialog -PasteErrorPaste : "Ustawienia bezpieczeÅ„stwa Twojej przeglÄ…darki nie pozwalajÄ… na automatyczne wklejanie tekstu. Użyj skrótu klawiszowego Ctrl+V.", PasteErrorCut : "Ustawienia bezpieczeÅ„stwa Twojej przeglÄ…darki nie pozwalajÄ… na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl+X.", PasteErrorCopy : "Ustawienia bezpieczeÅ„stwa Twojej przeglÄ…darki nie pozwalajÄ… na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl+C.", @@ -350,6 +356,7 @@ PasteAsText : "Wklej jako czysty tekst", PasteFromWord : "Wklej z Worda", DlgPasteMsg2 : "ProszÄ™ wkleić w poniższym polu używajÄ…c klawiaturowego skrótu (<STRONG>Ctrl+V</STRONG>) i kliknąć <STRONG>OK</STRONG>.", +DlgPasteSec : "Zabezpieczenia przeglÄ…darki uniemożliwiajÄ… wklejenie danych bezpoÅ›rednio do edytora. ProszÄ™ dane wkleić ponownie w tym okienku.", DlgPasteIgnoreFont : "Ignoruj definicje 'Font Face'", DlgPasteRemoveStyles : "UsuÅ„ definicje Stylów", DlgPasteCleanBox : "Wyczyść", @@ -373,7 +380,7 @@ DlgSpellBtnIgnore : "Ignoruj", DlgSpellBtnIgnoreAll : "Ignoruj wszystkie", DlgSpellBtnReplace : "ZmieÅ„", DlgSpellBtnReplaceAll : "ZmieÅ„ wszystkie", -DlgSpellBtnUndo : "Undo", +DlgSpellBtnUndo : "Cofnij", DlgSpellNoSuggestions : "- Brak sugestii -", DlgSpellProgress : "Trwa sprawdzanie ...", DlgSpellNoMispell : "Sprawdzanie zakoÅ„czone: nie znaleziono bÅ‚Ä™dów", @@ -386,14 +393,14 @@ IeSpellDownload : "SÅ‚ownik nie jest zainstalowany. Chcesz go Å›ciÄ…gnąć?", // Button Dialog DlgButtonText : "Tekst (Wartość)", DlgButtonType : "Typ", -DlgButtonTypeBtn : "Button", //MISSING -DlgButtonTypeSbm : "Submit", //MISSING -DlgButtonTypeRst : "Reset", //MISSING +DlgButtonTypeBtn : "Przycisk", +DlgButtonTypeSbm : "WyÅ›lij", +DlgButtonTypeRst : "Wyzeruj", // Checkbox and Radio Button Dialogs DlgCheckboxName : "Nazwa", DlgCheckboxValue : "Wartość", -DlgCheckboxSelected : "Zaznaczony", +DlgCheckboxSelected : "Zaznaczone", // Form Dialog DlgFormName : "Nazwa", @@ -437,7 +444,7 @@ DlgHiddenValue : "Wartość", // Bulleted List Dialog BulletedListProp : "WÅ‚aÅ›ciwoÅ›ci listy punktowanej", NumberedListProp : "WÅ‚aÅ›ciwoÅ›ci listy numerowanej", -DlgLstStart : "Start", //MISSING +DlgLstStart : "PoczÄ…tek", DlgLstType : "Typ", DlgLstTypeCircle : "KoÅ‚o", DlgLstTypeDisc : "Dysk", @@ -460,18 +467,18 @@ DlgDocLangDirLTR : "Od lewej do prawej (LTR)", DlgDocLangDirRTL : "Od prawej do lewej (RTL)", DlgDocLangCode : "Kod jÄ™zyka", DlgDocCharSet : "Kodowanie znaków", -DlgDocCharSetCE : "Central European", //MISSING -DlgDocCharSetCT : "Chinese Traditional (Big5)", //MISSING -DlgDocCharSetCR : "Cyrillic", //MISSING -DlgDocCharSetGR : "Greek", //MISSING -DlgDocCharSetJP : "Japanese", //MISSING -DlgDocCharSetKR : "Korean", //MISSING -DlgDocCharSetTR : "Turkish", //MISSING -DlgDocCharSetUN : "Unicode (UTF-8)", //MISSING -DlgDocCharSetWE : "Western European", //MISSING +DlgDocCharSetCE : "Åšrodkowoeuropejskie", +DlgDocCharSetCT : "ChiÅ„skie tradycyjne (Big5)", +DlgDocCharSetCR : "Cyrylica", +DlgDocCharSetGR : "Greckie", +DlgDocCharSetJP : "JapoÅ„skie", +DlgDocCharSetKR : "KoreaÅ„skie", +DlgDocCharSetTR : "Tureckie", +DlgDocCharSetUN : "Unicode (UTF-8)", +DlgDocCharSetWE : "Zachodnioeuropejskie", DlgDocCharSetOther : "Inne kodowanie znaków", -DlgDocDocType : "NagÅ‚owek typu dokumentu", +DlgDocDocType : "Nagłówek typu dokumentu", DlgDocDocTypeOther : "Inny typ dokumentu", DlgDocIncXHTML : "DoÅ‚Ä…cz deklaracjÄ™ XHTML", DlgDocBgColor : "Kolor tÅ‚a", @@ -489,7 +496,7 @@ DlgDocMaBottom : "Dolny", DlgDocMeIndex : "SÅ‚owa kluczowe (oddzielone przecinkami)", DlgDocMeDescr : "Opis dokumentu", DlgDocMeAuthor : "Autor", -DlgDocMeCopy : "Copyright", +DlgDocMeCopy : "Prawa autorskie", DlgDocPreview : "PodglÄ…d", // Templates Dialog @@ -498,7 +505,7 @@ DlgTemplatesTitle : "Szablony zawartoÅ›ci", DlgTemplatesSelMsg : "Wybierz szablon do otwarcia w edytorze<br>(obecna zawartość okna edytora zostanie utracona):", DlgTemplatesLoading : "Åadowanie listy szablonów. ProszÄ™ czekać...", DlgTemplatesNoTpl : "(Brak zdefiniowanych szablonów)", -DlgTemplatesReplace : "Replace actual contents", //MISSING +DlgTemplatesReplace : "ZastÄ…p aktualnÄ… zawartość", // About Dialog DlgAboutAboutTab : "O ...", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "O przeglÄ…darce", DlgAboutLicenseTab : "Licencja", DlgAboutVersion : "wersja", DlgAboutInfo : "WiÄ™cej informacji uzyskasz pod adresem" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/pt-br.js b/editor/editor/lang/pt-br.js @@ -1,30 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: pt-br.js - * Brazilian Portuguese language file. - * - * File Authors: - * Carlos Alberto Tomatis Loth (carlos.loth@conectait.com.br) - * GibaPhp (www.xoopstotal.com.br) - * Francisco Ernesto Teixeira (fco_ernesto@yahoo.com.br) + * + * Brazilian Portuguese language file. */ var FCKLang = @@ -51,6 +45,7 @@ InsertLinkLbl : "Hiperlink", InsertLink : "Inserir/Editar Hiperlink", RemoveLink : "Remover Hiperlink", Anchor : "Inserir/Editar Âncora", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Figura", InsertImage : "Inserir/Editar Figura", InsertFlashLbl : "Flash", @@ -76,6 +71,7 @@ RightJustify : "Alinhar Direita", BlockJustify : "Justificado", DecreaseIndent : "Diminuir Recuo", IncreaseIndent : "Aumentar Recuo", +Blockquote : "Blockquote", //MISSING Undo : "Desfazer", Redo : "Refazer", NumberedListLbl : "Numeração", @@ -109,20 +105,27 @@ SelectionField : "Caixa de Listagem", ImageButton : "Botão de Imagem", FitWindow : "Maximizar o tamanho do editor", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Editar Hiperlink", CellCM : "Célula", RowCM : "Linha", ColumnCM : "Coluna", -InsertRow : "Inserir Linha", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Remover Linhas", -InsertColumn : "Inserir Coluna", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Remover Colunas", -InsertCell : "Inserir Células", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Remover Células", MergeCells : "Mesclar Células", -SplitCell : "Dividir Célular", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Apagar Tabela", CellProperties : "Formatar Célula", TableProperties : "Formatar Tabela", @@ -140,7 +143,7 @@ SelectionFieldProp : "Formatar Caixa de Listagem", TextareaProp : "Formatar Ãrea de Texto", FormProp : "Formatar Formulário", -FontFormats : "Normal;Formatado;Endereço;Título 1;Título 2;Título 3;Título 4;Título 5;Título 6", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatado;Endereço;Título 1;Título 2;Título 3;Título 4;Título 5;Título 6", // Alerts and Messages ProcessingXHTML : "Processando XHTML. Por favor, aguarde...", @@ -235,7 +238,7 @@ DlgLnkURL : "URL do hiperlink", DlgLnkAnchorSel : "Selecione uma âncora", DlgLnkAnchorByName : "Pelo Nome da âncora", DlgLnkAnchorById : "Pelo Id do Elemento", -DlgLnkNoAnchors : "(Não há âncoras disponíveis neste documento)", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Não há âncoras disponíveis neste documento)", DlgLnkEMail : "Endereço E-Mail", DlgLnkEMailSubject : "Assunto da Mensagem", DlgLnkEMailBody : "Corpo da Mensagem", @@ -328,6 +331,9 @@ DlgCellBackColor : "Cor do Plano de Fundo", DlgCellBorderColor : "Cor da Borda", DlgCellBtnSelect : "Selecionar...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Localizar...", DlgFindFindBtn : "Localizar", @@ -343,7 +349,6 @@ DlgReplaceReplAllBtn : "Substituir Tudo", DlgReplaceWordChk : "Coincidir a palavra inteira", // Paste Operations / Dialog -PasteErrorPaste : "As configurações de segurança do seu navegador não permitem que o editor execute operações de colar automaticamente. Por favor, utilize o teclado para colar (Ctrl+V).", PasteErrorCut : "As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl+X).", PasteErrorCopy : "As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl+C).", @@ -351,6 +356,7 @@ PasteAsText : "Colar como Texto sem Formatação", PasteFromWord : "Colar do Word", DlgPasteMsg2 : "Transfira o link usado no box usando o teclado com (<STRONG>Ctrl+V</STRONG>) e <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Ignorar definições de fonte", DlgPasteRemoveStyles : "Remove definições de estilo", DlgPasteCleanBox : "Limpar Box", @@ -507,4 +513,4 @@ DlgAboutBrowserInfoTab : "Informações do Navegador", DlgAboutLicenseTab : "Licença", DlgAboutVersion : "versão", DlgAboutInfo : "Para maiores informações visite" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/pt.js b/editor/editor/lang/pt.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: pt.js - * Portuguese language file. - * - * File Authors: - * Francisco Pereira (fjpereira@netcabo.pt) + * + * Portuguese language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Hiperligação", InsertLink : "Inserir/Editar Hiperligação", RemoveLink : "Eliminar Hiperligação", Anchor : " Inserir/Editar Âncora", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Imagem", InsertImage : "Inserir/Editar Imagem", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "Alinhar à Direita", BlockJustify : "Justificado", DecreaseIndent : "Diminuir Avanço", IncreaseIndent : "Aumentar Avanço", +Blockquote : "Blockquote", //MISSING Undo : "Anular", Redo : "Repetir", NumberedListLbl : "Numeração", @@ -107,20 +105,27 @@ SelectionField : "Caixa de Combinação", ImageButton : "Botão de Imagem", FitWindow : "Maximizar o tamanho do editor", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Editar Hiperligação", CellCM : "Célula", RowCM : "Linha", ColumnCM : "Coluna", -InsertRow : "Inserir Linha", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Eliminar Linhas", -InsertColumn : "Inserir Coluna", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Eliminar Coluna", -InsertCell : "Inserir Célula", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Eliminar Célula", MergeCells : "Unir Células", -SplitCell : "Dividir Célula", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Eliminar Tabela", CellProperties : "Propriedades da Célula", TableProperties : "Propriedades da Tabela", @@ -138,7 +143,7 @@ SelectionFieldProp : "Propriedades da Caixa de Combinação", TextareaProp : "Propriedades da Ãrea de Texto", FormProp : "Propriedades do Formulário", -FontFormats : "Normal;Formatado;Endereço;Título 1;Título 2;Título 3;Título 4;Título 5;Título 6", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatado;Endereço;Título 1;Título 2;Título 3;Título 4;Título 5;Título 6", // Alerts and Messages ProcessingXHTML : "A Processar XHTML. Por favor, espere...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Seleccionar una referência", DlgLnkAnchorByName : "Por Nome de Referência", DlgLnkAnchorById : "Por ID de elemento", -DlgLnkNoAnchors : "<Não há referências disponíveis no documento>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Não há referências disponíveis no documento)", DlgLnkEMail : "Endereço de E-Mail", DlgLnkEMailSubject : "Título de Mensagem", DlgLnkEMailBody : "Corpo da Mensagem", @@ -326,6 +331,9 @@ DlgCellBackColor : "Cor do Fundo", DlgCellBorderColor : "Cor do Limite", DlgCellBtnSelect : "Seleccione...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Procurar", DlgFindFindBtn : "Procurar", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Substituir Tudo", DlgReplaceWordChk : "Coincidir com toda a palavra", // Paste Operations / Dialog -PasteErrorPaste : "A configuração de segurança do navegador não permite a execução automática de operações de colar. Por favor use o teclado (Ctrl+V).", PasteErrorCut : "A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl+X).", PasteErrorCopy : "A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Colar como Texto Simples", PasteFromWord : "Colar do Word", DlgPasteMsg2 : "Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl+V</STRONG>) e prima <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Ignorar da definições do Tipo de Letra ", DlgPasteRemoveStyles : "Remover as definições de Estilos", DlgPasteCleanBox : "Caixa de Limpeza", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Informação do Nevegador", DlgAboutLicenseTab : "Licença", DlgAboutVersion : "versão", DlgAboutInfo : "Para mais informações por favor dirija-se a" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/ro.js b/editor/editor/lang/ro.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: ro.js - * Romanian language file. - * - * File Authors: - * Adrian Nicoara (nicoara@users.sourceforge.net) - * Ionut Traian Popa + * + * Romanian language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "Link (Legătură web)", InsertLink : "Inserează/Editează link (legătură web)", RemoveLink : "ÃŽnlătură link (legătură web)", Anchor : "Inserează/Editează ancoră", +AnchorDelete : "Åžterge ancoră", InsertImageLbl : "Imagine", InsertImage : "Inserează/Editează imagine", InsertFlashLbl : "Flash", @@ -75,6 +71,7 @@ RightJustify : "Aliniere la dreapta", BlockJustify : "Aliniere în bloc (Block Justify)", DecreaseIndent : "Scade indentarea", IncreaseIndent : "CreÅŸte indentarea", +Blockquote : "Citat", Undo : "Starea anterioară (undo)", Redo : "Starea ulterioară (redo)", NumberedListLbl : "Listă numerotată", @@ -108,20 +105,27 @@ SelectionField : "Câmp selecÅ£ie (SelectionField)", ImageButton : "Buton imagine (ImageButton)", FitWindow : "Maximizează mărimea editorului", +ShowBlocks : "Arată blocurile", // Context Menu EditLink : "Editează Link", CellCM : "Celulă", RowCM : "Linie", ColumnCM : "Coloană", -InsertRow : "Inserează linie", +InsertRowAfter : "Inserează linie după", +InsertRowBefore : "Inserează linie înainte", DeleteRows : "Åžterge linii", -InsertColumn : "Inserează coloană", +InsertColumnAfter : "Inserează coloană după", +InsertColumnBefore : "Inserează coloană înainte", DeleteColumns : "Åžterge celule", -InsertCell : "Inserează celulă", +InsertCellAfter : "Inserează celulă după", +InsertCellBefore : "Inserează celulă înainte", DeleteCells : "Åžterge celule", MergeCells : "UneÅŸte celule", -SplitCell : "ÃŽmparte celulă", +MergeRight : "UneÅŸte la dreapta", +MergeDown : "UneÅŸte jos", +HorizontalSplitCell : "ÃŽmparte celula pe orizontală", +VerticalSplitCell : "ÃŽmparte celula pe verticală", TableDelete : "Åžterge tabel", CellProperties : "Proprietăţile celulei", TableProperties : "Proprietăţile tabelului", @@ -139,7 +143,7 @@ SelectionFieldProp : "Proprietăţi câmp selecÅ£ie (Selection Field)", TextareaProp : "Proprietăţi suprafaţă text (Textarea)", FormProp : "Proprietăţi formular (Form)", -FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //REVIEW : Check _getfontformat.html //MISSING +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //MISSING // Alerts and Messages ProcessingXHTML : "Procesăm XHTML. Vă rugăm aÅŸteptaÅ£i...", @@ -234,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "SelectaÅ£i o ancoră", DlgLnkAnchorByName : "după numele ancorei", DlgLnkAnchorById : "după Id-ul elementului", -DlgLnkNoAnchors : "<Nicio ancoră disponibilă în document>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Nicio ancoră disponibilă în document)", DlgLnkEMail : "Adresă de e-mail", DlgLnkEMailSubject : "Subiectul mesajului", DlgLnkEMailBody : "ConÅ£inutul mesajului", @@ -327,6 +331,9 @@ DlgCellBackColor : "Culoarea fundalului", DlgCellBorderColor : "Culoarea marginii", DlgCellBtnSelect : "SelectaÅ£i...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "GăseÅŸte ÅŸi înlocuieÅŸte", + // Find Dialog DlgFindTitle : "GăseÅŸte", DlgFindFindBtn : "GăseÅŸte", @@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "ÃŽnlocuieÅŸte tot", DlgReplaceWordChk : "Doar cuvintele întregi", // Paste Operations / Dialog -PasteErrorPaste : "Setările de securitate ale navigatorului (browser) pe care îl folosiÅ£i nu permit editorului să execute automat operaÅ£iunea de adăugare. Vă rugăm folosiÅ£i tastatura (Ctrl+V).", PasteErrorCut : "Setările de securitate ale navigatorului (browser) pe care îl folosiÅ£i nu permit editorului să execute automat operaÅ£iunea de tăiere. Vă rugăm folosiÅ£i tastatura (Ctrl+X).", PasteErrorCopy : "Setările de securitate ale navigatorului (browser) pe care îl folosiÅ£i nu permit editorului să execute automat operaÅ£iunea de copiere. Vă rugăm folosiÅ£i tastatura (Ctrl+C).", @@ -350,6 +356,7 @@ PasteAsText : "Adaugă ca text simplu (Plain Text)", PasteFromWord : "Adaugă din Word", DlgPasteMsg2 : "Vă rugăm adăugaÅ£i în căsuÅ£a următoare folosind tastatura (<STRONG>Ctrl+V</STRONG>) ÅŸi apăsaÅ£i <STRONG>OK</STRONG>.", +DlgPasteSec : "Din cauza setărilor de securitate ale programului dvs. cu care navigaÅ£i pe internet (browser), editorul nu poate accesa direct datele din clipboard. Va trebui să adăugaÅ£i din nou datele în această fereastră.", DlgPasteIgnoreFont : "Ignoră definiÅ£iile Font Face", DlgPasteRemoveStyles : "Åžterge definiÅ£iile stilurilor", DlgPasteCleanBox : "Åžterge căsuÅ£a", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "InformaÅ£ii browser", DlgAboutLicenseTab : "Licenţă", DlgAboutVersion : "versiune", DlgAboutInfo : "Pentru informaÅ£ii amănunÅ£ite, vizitaÅ£i" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/ru.js b/editor/editor/lang/ru.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: ru.js - * Russian language file. - * - * File Authors: - * Andrey Grebnev (andrey.grebnev@blandware.com) + * + * Russian language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "СÑылка", InsertLink : "Ð’Ñтавить/Редактировать ÑÑылку", RemoveLink : "Убрать ÑÑылку", Anchor : "Ð’Ñтавить/Редактировать Ñкорь", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Изображение", InsertImage : "Ð’Ñтавить/Редактировать изображение", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "По правому краю", BlockJustify : "По ширине", DecreaseIndent : "Уменьшить отÑтуп", IncreaseIndent : "Увеличить отÑтуп", +Blockquote : "Blockquote", //MISSING Undo : "Отменить", Redo : "Повторить", NumberedListLbl : "Ðумерованный ÑпиÑок", @@ -107,20 +105,27 @@ SelectionField : "СпиÑок", ImageButton : "Кнопка Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÐ¼", FitWindow : "Развернуть окно редактора", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Ð’Ñтавить ÑÑылку", CellCM : "Ячейка", RowCM : "Строка", ColumnCM : "Колонка", -InsertRow : "Ð’Ñтавить Ñтроку", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Удалить Ñтроки", -InsertColumn : "Ð’Ñтавить колонку", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Удалить колонки", -InsertCell : "Ð’Ñтавить Ñчейку", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Удалить Ñчейки", MergeCells : "Соединить Ñчейки", -SplitCell : "Разбить Ñчейку", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Удалить таблицу", CellProperties : "СвойÑтва Ñчейки", TableProperties : "СвойÑтва таблицы", @@ -138,7 +143,7 @@ SelectionFieldProp : "СвойÑтва ÑпиÑка", TextareaProp : "СвойÑтва текÑтовой облаÑти", FormProp : "СвойÑтва формы", -FontFormats : "Ðормальный;Форматированный;ÐдреÑ;Заголовок 1;Заголовок 2;Заголовок 3;Заголовок 4;Заголовок 5;Заголовок 6;Ðормальный (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Ðормальный;Форматированный;ÐдреÑ;Заголовок 1;Заголовок 2;Заголовок 3;Заголовок 4;Заголовок 5;Заголовок 6;Ðормальный (DIV)", // Alerts and Messages ProcessingXHTML : "Обработка XHTML. ПожалуйÑта подождите...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Выберите Ñкорь", DlgLnkAnchorByName : "По имени ÑкорÑ", DlgLnkAnchorById : "По идентификатору Ñлемента", -DlgLnkNoAnchors : "<Ðет Ñкорей доÑтупных в Ñтом документе>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Ðет Ñкорей доÑтупных в Ñтом документе)", DlgLnkEMail : "ÐÐ´Ñ€ÐµÑ Ñл. почты", DlgLnkEMailSubject : "Заголовок ÑообщениÑ", DlgLnkEMailBody : "Тело ÑообщениÑ", @@ -326,6 +331,9 @@ DlgCellBackColor : "Цвет фона", DlgCellBorderColor : "Цвет бордюра", DlgCellBtnSelect : "Выберите...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Ðайти", DlgFindFindBtn : "Ðайти", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Заменить вÑе", DlgReplaceWordChk : "Совпадение целых Ñлов", // Paste Operations / Dialog -PasteErrorPaste : "ÐаÑтройки безопаÑноÑти вашего браузера не позволÑÑŽÑ‚ редактору автоматичеÑки выполнÑÑ‚ÑŒ операции вÑтавки. ПожалуйÑта иÑпользуйте клавиатуру Ð´Ð»Ñ Ñтого (Ctrl+V).", PasteErrorCut : "ÐаÑтройки безопаÑноÑти вашего браузера не позволÑÑŽÑ‚ редактору автоматичеÑки выполнÑÑ‚ÑŒ операции вырезаниÑ. ПожалуйÑта иÑпользуйте клавиатуру Ð´Ð»Ñ Ñтого (Ctrl+X).", PasteErrorCopy : "ÐаÑтройки безопаÑноÑти вашего браузера не позволÑÑŽÑ‚ редактору автоматичеÑки выполнÑÑ‚ÑŒ операции копированиÑ. ПожалуйÑта иÑпользуйте клавиатуру Ð´Ð»Ñ Ñтого (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Ð’Ñтавить только текÑÑ‚", PasteFromWord : "Ð’Ñтавить из Word", DlgPasteMsg2 : "ПожалуйÑта вÑтавьте текÑÑ‚ в прÑмоугольник иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñочетание клавиш (<STRONG>Ctrl+V</STRONG>) и нажмите <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Игнорировать Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð³Ð°Ñ€Ð½Ð¸Ñ‚ÑƒÑ€Ñ‹", DlgPasteRemoveStyles : "Убрать Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñтилей", DlgPasteCleanBox : "ОчиÑтить", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°", DlgAboutLicenseTab : "ЛицензиÑ", DlgAboutVersion : "ВерÑиÑ", DlgAboutInfo : "Ð”Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐµÐ¹ информации, поÑетите" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/sk.js b/editor/editor/lang/sk.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: sk.js - * Slovak language file. - * - * File Authors: - * Samuel Szabo (samuel@nanete.sk) - * Jozef Gaal (runcms.mayday.sk) + * + * Slovak language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "Odkaz", InsertLink : "VložiÅ¥/zmeniÅ¥ odkaz", RemoveLink : "OdstrániÅ¥ odkaz", Anchor : "VložiÅ¥/zmeniÅ¥ kotvu", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Obrázok", InsertImage : "VložiÅ¥/zmeniÅ¥ obrázok", InsertFlashLbl : "Flash", @@ -75,6 +71,7 @@ RightJustify : "ZarovnaÅ¥ vpravo", BlockJustify : "ZarovnaÅ¥ do bloku", DecreaseIndent : "ZmenÅ¡iÅ¥ odsadenie", IncreaseIndent : "ZväÄÅ¡iÅ¥ odsadenie", +Blockquote : "Blockquote", //MISSING Undo : "Späť", Redo : "Znovu", NumberedListLbl : "Číslovanie", @@ -108,20 +105,27 @@ SelectionField : "Rozbaľovací zoznam", ImageButton : "Obrázkové tlaÄidlo", FitWindow : "MaximalizovaÅ¥ veľkosÅ¥ okna editora", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "ZmeniÅ¥ odkaz", CellCM : "Bunka", RowCM : "Riadok", ColumnCM : "Stĺpec", -InsertRow : "VložiÅ¥ riadok", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "VymazaÅ¥ riadok", -InsertColumn : "VložiÅ¥ stĺpec", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "ZmazaÅ¥ stĺpec", -InsertCell : "VložiÅ¥ bunku", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "VymazaÅ¥ bunky", MergeCells : "ZlúÄiÅ¥ bunky", -SplitCell : "RozdeliÅ¥ bunku", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "VymazaÅ¥ tabuľku", CellProperties : "Vlastnosti bunky", TableProperties : "Vlastnosti tabuľky", @@ -139,7 +143,7 @@ SelectionFieldProp : "Vlastnosti rozbaľovacieho zoznamu", TextareaProp : "Vlastnosti textovej oblasti", FormProp : "Vlastnosti formulára", -FontFormats : "Normálny;Formátovaný;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6;Odsek (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normálny;Formátovaný;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6;Odsek (DIV)", // Alerts and Messages ProcessingXHTML : "Prebieha spracovanie XHTML. ÄŒakajte prosím...", @@ -234,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "VybraÅ¥ kotvu", DlgLnkAnchorByName : "Podľa mena kotvy", DlgLnkAnchorById : "Podľa Id objektu", -DlgLnkNoAnchors : "<V stránke nie je definovaná žiadna kotva>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(V stránke nie je definovaná žiadna kotva)", DlgLnkEMail : "E-Mailová adresa", DlgLnkEMailSubject : "Predmet správy", DlgLnkEMailBody : "Telo správy", @@ -327,6 +331,9 @@ DlgCellBackColor : "Farba pozadia", DlgCellBorderColor : "Farba ohraniÄenia", DlgCellBtnSelect : "Výber...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "HľadaÅ¥", DlgFindFindBtn : "HľadaÅ¥", @@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "NahradiÅ¥ vÅ¡etko", DlgReplaceWordChk : "Len celé slová", // Paste Operations / Dialog -PasteErrorPaste : "BezpeÄnostné nastavenie Vášho prehliadaÄa nedovoľujú editoru spustiÅ¥ funkciu pre vloženie textu zo schránky. Prosím vložte text zo schránky pomocou klávesnice (Ctrl+V).", PasteErrorCut : "BezpeÄnostné nastavenie Vášho prehliadaÄa nedovoľujú editoru spustiÅ¥ funkciu pre vystrihnutie zvoleného textu do schránky. Prosím vystrihnite zvolený text do schránky pomocou klávesnice (Ctrl+X).", PasteErrorCopy : "BezpeÄnostné nastavenie Vášho prehliadaÄa nedovoľujú editoru spustiÅ¥ funkciu pre kopírovanie zvoleného textu do schránky. Prosím skopírujte zvolený text do schránky pomocou klávesnice (Ctrl+C).", @@ -350,6 +356,7 @@ PasteAsText : "VložiÅ¥ ako Äistý text", PasteFromWord : "VložiÅ¥ text z Wordu", DlgPasteMsg2 : "Prosím vložte nasledovný rámÄek použitím klávesnice (<STRONG>Ctrl+V</STRONG>) a stlaÄte <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "IgnorovaÅ¥ nastavenia typu písma", DlgPasteRemoveStyles : "OdstrániÅ¥ formátovanie", DlgPasteCleanBox : "VyÄistiÅ¥ schránku", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Informácie o prehliadaÄi", DlgAboutLicenseTab : "Licencia", DlgAboutVersion : "verzia", DlgAboutInfo : "Viac informácií získate na" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/sl.js b/editor/editor/lang/sl.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: sl.js - * Slovenian language file. - * - * File Authors: - * Boris VolariÄ (vol@rutka.net) + * + * Slovenian language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Povezava", InsertLink : "Vstavi/uredi povezavo", RemoveLink : "Odstrani povezavo", Anchor : "Vstavi/uredi zaznamek", +AnchorDelete : "Odstrani zaznamek", InsertImageLbl : "Slika", InsertImage : "Vstavi/uredi sliko", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "Desna poravnava", BlockJustify : "Obojestranska poravnava", DecreaseIndent : "ZmanjÅ¡aj zamik", IncreaseIndent : "PoveÄaj zamik", +Blockquote : "Citat", Undo : "Razveljavi", Redo : "Ponovi", NumberedListLbl : "OÅ¡tevilÄen seznam", @@ -106,21 +104,28 @@ Button : "Gumb", SelectionField : "Spustni seznam", ImageButton : "Gumb s sliko", -FitWindow : "Maximize the editor size", //MISSING +FitWindow : "RazÅ¡iri velikost urejevalnika Äez cel zaslon", +ShowBlocks : "Prikaži ograde", // Context Menu EditLink : "Uredi povezavo", -CellCM : "Cell", //MISSING -RowCM : "Row", //MISSING -ColumnCM : "Column", //MISSING -InsertRow : "Vstavi vrstico", +CellCM : "Celica", +RowCM : "Vrstica", +ColumnCM : "Stolpec", +InsertRowAfter : "Vstavi vrstico za", +InsertRowBefore : "Vstavi vrstico pred", DeleteRows : "IzbriÅ¡i vrstice", -InsertColumn : "Vstavi stolpec", +InsertColumnAfter : "Vstavi stolpec za", +InsertColumnBefore : "Vstavi stolpec pred", DeleteColumns : "IzbriÅ¡i stolpce", -InsertCell : "Vstavi celico", +InsertCellAfter : "Vstavi celico za", +InsertCellBefore : "Vstavi celico pred", DeleteCells : "IzbriÅ¡i celice", MergeCells : "Združi celice", -SplitCell : "Razdeli celico", +MergeRight : "Združi desno", +MergeDown : "Druži navzdol", +HorizontalSplitCell : "Razdeli celico vodoravno", +VerticalSplitCell : "Razdeli celico navpiÄno", TableDelete : "IzbriÅ¡i tabelo", CellProperties : "Lastnosti celice", TableProperties : "Lastnosti tabele", @@ -138,7 +143,7 @@ SelectionFieldProp : "Lastnosti spustnega seznama", TextareaProp : "Lastnosti vnosnega obmoÄja", FormProp : "Lastnosti obrazca", -FontFormats : "Navaden;Oblikovan;Napis;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6", //REVIEW : Check _getfontformat.html +FontFormats : "Navaden;Oblikovan;Napis;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6", // Alerts and Messages ProcessingXHTML : "Obdelujem XHTML. Prosim poÄakajte...", @@ -149,9 +154,9 @@ UnknownToolbarItem : "Neznan element orodne vrstice \"%1\"", UnknownCommand : "Neznano ime ukaza \"%1\"", NotImplemented : "Ukaz ni izdelan", UnknownToolbarSet : "Skupina orodnih vrstic \"%1\" ne obstoja", -NoActiveX : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", //MISSING -BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.", //MISSING -DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.", //MISSING +NoActiveX : "Varnostne nastavitve vaÅ¡ega brskalnika lahko omejijo delovanje nekaterih zmožnosti urejevalnika. ÄŒe ne želite zaznavati napak in sporoÄil o manjkajoÄih zmožnostih, omogoÄite možnost \"Zaženi ActiveX kontrolnike in vtiÄnike\".", +BrowseServerBlocked : "Brskalnik virov se ne more odpreti. PrepriÄajte se, da je prepreÄevanje pojavnih oken onemogoÄeno.", +DialogBlocked : "Pogovorno okno se ni moglo odpreti. PrepriÄajte se, da je prepreÄevanje pojavnih oken onemogoÄeno.", // Dialogs DlgBtnOK : "V redu", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Izberi zaznamek", DlgLnkAnchorByName : "Po imenu zaznamka", DlgLnkAnchorById : "Po ID-ju elementa", -DlgLnkNoAnchors : "<V tem dokumentu ni zaznamkov>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(V tem dokumentu ni zaznamkov)", DlgLnkEMail : "Elektronski naslov", DlgLnkEMailSubject : "Predmet sporoÄila", DlgLnkEMailBody : "Vsebina sporoÄila", @@ -266,7 +271,7 @@ DlgLnkPopTop : "Lega na vrhu", DlnLnkMsgNoUrl : "Vnesite URL povezave", DlnLnkMsgNoEMail : "Vnesite elektronski naslov", DlnLnkMsgNoAnchor : "Izberite zaznamek", -DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING +DlnLnkMsgInvPopName : "Ime pojavnega okna se mora zaÄeti s Ärko ali Å¡tevilko in ne sme vsebovati presledkov", // Color Dialog DlgColorTitle : "Izberite barvo", @@ -326,6 +331,9 @@ DlgCellBackColor : "Barva ozadja", DlgCellBorderColor : "Barva obrobe", DlgCellBtnSelect : "Izberi...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Najdi in zamenjaj", + // Find Dialog DlgFindTitle : "Najdi", DlgFindFindBtn : "Najdi", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Zamenjaj vse", DlgReplaceWordChk : "Samo cele besede", // Paste Operations / Dialog -PasteErrorPaste : "Varnostne nastavitve brskalnika ne dopuÅ¡Äajo samodejnega lepljenja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+V).", PasteErrorCut : "Varnostne nastavitve brskalnika ne dopuÅ¡Äajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+X).", PasteErrorCopy : "Varnostne nastavitve brskalnika ne dopuÅ¡Äajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Prilepi kot golo besedilo", PasteFromWord : "Prilepi iz Worda", DlgPasteMsg2 : "Prosim prilepite v sleÄi okvir s pomoÄjo tipkovnice (<STRONG>Ctrl+V</STRONG>) in pritisnite <STRONG>V redu</STRONG>.", +DlgPasteSec : "Zaradi varnostnih nastavitev vaÅ¡ega brskalnika urejevalnik ne more neposredno dostopati do odložiÅ¡Äa. Vsebino odložiÅ¡Äa ponovno prilepite v to okno.", DlgPasteIgnoreFont : "Prezri obliko pisave", DlgPasteRemoveStyles : "Odstrani nastavitve stila", DlgPasteCleanBox : "PoÄisti okvir", @@ -385,9 +393,9 @@ IeSpellDownload : "ÄŒrkovalnik ni nameÅ¡Äen. Ali ga želite prenesti sedaj?", // Button Dialog DlgButtonText : "Besedilo (Vrednost)", DlgButtonType : "Tip", -DlgButtonTypeBtn : "Button", //MISSING -DlgButtonTypeSbm : "Submit", //MISSING -DlgButtonTypeRst : "Reset", //MISSING +DlgButtonTypeBtn : "Gumb", +DlgButtonTypeSbm : "Potrdi", +DlgButtonTypeRst : "Ponastavi", // Checkbox and Radio Button Dialogs DlgCheckboxName : "Ime", @@ -436,7 +444,7 @@ DlgHiddenValue : "Vrednost", // Bulleted List Dialog BulletedListProp : "Lastnosti oznaÄenega seznama", NumberedListProp : "Lastnosti oÅ¡tevilÄenega seznama", -DlgLstStart : "Start", //MISSING +DlgLstStart : "ZaÄetek", DlgLstType : "Tip", DlgLstTypeCircle : "Pikica", DlgLstTypeDisc : "Kroglica", @@ -459,15 +467,15 @@ DlgDocLangDirLTR : "Od leve proti desni (LTR)", DlgDocLangDirRTL : "Od desne proti levi (RTL)", DlgDocLangCode : "Oznaka jezika", DlgDocCharSet : "Kodna tabela", -DlgDocCharSetCE : "Central European", //MISSING -DlgDocCharSetCT : "Chinese Traditional (Big5)", //MISSING -DlgDocCharSetCR : "Cyrillic", //MISSING -DlgDocCharSetGR : "Greek", //MISSING -DlgDocCharSetJP : "Japanese", //MISSING -DlgDocCharSetKR : "Korean", //MISSING -DlgDocCharSetTR : "Turkish", //MISSING -DlgDocCharSetUN : "Unicode (UTF-8)", //MISSING -DlgDocCharSetWE : "Western European", //MISSING +DlgDocCharSetCE : "Srednjeevropsko", +DlgDocCharSetCT : "Tradicionalno Kitajsko (Big5)", +DlgDocCharSetCR : "Cirilica", +DlgDocCharSetGR : "GrÅ¡ko", +DlgDocCharSetJP : "Japonsko", +DlgDocCharSetKR : "Korejsko", +DlgDocCharSetTR : "TurÅ¡ko", +DlgDocCharSetUN : "Unicode (UTF-8)", +DlgDocCharSetWE : "Zahodnoevropsko", DlgDocCharSetOther : "Druga kodna tabela", DlgDocDocType : "Glava tipa dokumenta", @@ -497,12 +505,12 @@ DlgTemplatesTitle : "Vsebinske predloge", DlgTemplatesSelMsg : "Izberite predlogo, ki jo želite odpreti v urejevalniku<br>(trenutna vsebina bo izgubljena):", DlgTemplatesLoading : "Nalagam seznam predlog. Prosim poÄakajte...", DlgTemplatesNoTpl : "(Ni pripravljenih predlog)", -DlgTemplatesReplace : "Replace actual contents", //MISSING +DlgTemplatesReplace : "Zamenjaj trenutno vsebino", // About Dialog DlgAboutAboutTab : "Vizitka", DlgAboutBrowserInfoTab : "Informacije o brskalniku", -DlgAboutLicenseTab : "License", //MISSING +DlgAboutLicenseTab : "Dovoljenja", DlgAboutVersion : "razliÄica", DlgAboutInfo : "Za veÄ informacij obiÅ¡Äite" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/sr-latn.js b/editor/editor/lang/sr-latn.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: sr-latn.js - * Serbian (Latin) language file. - * - * File Authors: - * Zoran Subic (zoran@tf.zr.ac.yu) + * + * Serbian (Latin) language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Link", InsertLink : "Unesi/izmeni link", RemoveLink : "Ukloni link", Anchor : "Unesi/izmeni sidro", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Slika", InsertImage : "Unesi/izmeni sliku", InsertFlashLbl : "FleÅ¡", @@ -74,6 +71,7 @@ RightJustify : "Desno ravnanje", BlockJustify : "Obostrano ravnanje", DecreaseIndent : "Smanji levu marginu", IncreaseIndent : "Uvećaj levu marginu", +Blockquote : "Blockquote", //MISSING Undo : "Poni�ti akciju", Redo : "Ponovi akciju", NumberedListLbl : "Nabrojiva lista", @@ -107,20 +105,27 @@ SelectionField : "Izborno polje", ImageButton : "Dugme sa slikom", FitWindow : "Maximize the editor size", //MISSING +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Izmeni link", CellCM : "Cell", //MISSING RowCM : "Row", //MISSING ColumnCM : "Column", //MISSING -InsertRow : "Unesi red", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "ObriÅ¡i redove", -InsertColumn : "Unesi kolonu", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "ObriÅ¡i kolone", -InsertCell : "Unesi ćelije", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "ObriÅ¡i ćelije", MergeCells : "Spoj celije", -SplitCell : "Razdvoji celije", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Delete Table", //MISSING CellProperties : "Osobine celije", TableProperties : "Osobine tabele", @@ -138,7 +143,7 @@ SelectionFieldProp : "Osobine izbornog polja", TextareaProp : "Osobine zone teksta", FormProp : "Osobine forme", -FontFormats : "Normal;Formatirano;Adresa;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatirano;Adresa;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6", // Alerts and Messages ProcessingXHTML : "Obradujem XHTML. Malo strpljenja...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Odaberi sidro", DlgLnkAnchorByName : "Po nazivu sidra", DlgLnkAnchorById : "Po Id-ju elementa", -DlgLnkNoAnchors : "<Nema dostupnih sidra>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Nema dostupnih sidra)", DlgLnkEMail : "E-Mail adresa", DlgLnkEMailSubject : "Naslov", DlgLnkEMailBody : "Sadržaj poruke", @@ -326,6 +331,9 @@ DlgCellBackColor : "Boja pozadine", DlgCellBorderColor : "Boja okvira", DlgCellBtnSelect : "Odaberi...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "PronaÄ‘i", DlgFindFindBtn : "PronaÄ‘i", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Zameni sve", DlgReplaceWordChk : "Uporedi cele reci", // Paste Operations / Dialog -PasteErrorPaste : "Sigurnosna podeÅ¡avanja VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog lepljenja teksta. Molimo Vas da koristite preÄicu sa tastature (Ctrl+V).", PasteErrorCut : "Sigurnosna podeÅ¡avanja VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite preÄicu sa tastature (Ctrl+X).", PasteErrorCopy : "Sigurnosna podeÅ¡avanja VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite preÄicu sa tastature (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Zalepi kao Äist tekst", PasteFromWord : "Zalepi iz Worda", DlgPasteMsg2 : "Molimo Vas da zalepite unutar donje povrine koristeći tastaturnu preÄicu (<STRONG>Ctrl+V</STRONG>) i da pritisnete <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "IgnoriÅ¡i definicije fontova", DlgPasteRemoveStyles : "Ukloni definicije stilova", DlgPasteCleanBox : "ObriÅ¡i sve", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Informacije o pretraživacu", DlgAboutLicenseTab : "License", //MISSING DlgAboutVersion : "verzija", DlgAboutInfo : "Za viÅ¡e informacija posetite" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/sr.js b/editor/editor/lang/sr.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: sr.js - * Serbian (Cyrillic) language file. - * - * File Authors: - * Zoran Subić (zoran@tf.zr.ac.yu) + * + * Serbian (Cyrillic) language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Линк", InsertLink : "УнеÑи/измени линк", RemoveLink : "Уклони линк", Anchor : "УнеÑи/измени Ñидро", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Слика", InsertImage : "УнеÑи/измени Ñлику", InsertFlashLbl : "Флеш елемент", @@ -74,6 +71,7 @@ RightJustify : "ДеÑно равнање", BlockJustify : "ОбоÑтрано равнање", DecreaseIndent : "Смањи леву маргину", IncreaseIndent : "Увећај леву маргину", +Blockquote : "Blockquote", //MISSING Undo : "Поништи акцију", Redo : "Понови акцију", NumberedListLbl : "Ðабројиву лиÑту", @@ -107,20 +105,27 @@ SelectionField : "Изборно поље", ImageButton : "Дугме Ñа Ñликом", FitWindow : "Maximize the editor size", //MISSING +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Промени линк", CellCM : "Cell", //MISSING RowCM : "Row", //MISSING ColumnCM : "Column", //MISSING -InsertRow : "УнеÑи ред", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Обриши редове", -InsertColumn : "УнеÑи колону", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Обриши колоне", -InsertCell : "УнеÑи ћелије", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Обриши ћелије", MergeCells : "Спој ћелије", -SplitCell : "Раздвоји ћелије", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Delete Table", //MISSING CellProperties : "ОÑобине ћелије", TableProperties : "ОÑобине табеле", @@ -138,7 +143,7 @@ SelectionFieldProp : "ОÑобине изборног поља", TextareaProp : "ОÑобине зоне текÑта", FormProp : "ОÑобине форме", -FontFormats : "Normal;Formatirano;Adresa;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatirano;Adresa;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6", // Alerts and Messages ProcessingXHTML : "Обрађујем XHTML. Maлo Ñтрпљења...", @@ -233,7 +238,7 @@ DlgLnkURL : "УРЛ", DlgLnkAnchorSel : "Одабери Ñидро", DlgLnkAnchorByName : "По називу Ñидра", DlgLnkAnchorById : "Пo Ид-jу елемента", -DlgLnkNoAnchors : "<Ðема доÑтупних Ñидра>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Ðема доÑтупних Ñидра)", DlgLnkEMail : "ÐдреÑа електронÑке поште", DlgLnkEMailSubject : "ÐаÑлов", DlgLnkEMailBody : "Садржај поруке", @@ -326,6 +331,9 @@ DlgCellBackColor : "Боја позадине", DlgCellBorderColor : "Боја оквира", DlgCellBtnSelect : "Oдабери...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Пронађи", DlgFindFindBtn : "Пронађи", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Замени Ñве", DlgReplaceWordChk : "Упореди целе речи", // Paste Operations / Dialog -PasteErrorPaste : "СигурноÑна подешавања Вашег претраживача не дозвољавају операције аутоматÑког лепљења текÑта. Молимо Ð’Ð°Ñ Ð´Ð° кориÑтите пречицу Ñа таÑтатуре (Ctrl+V).", PasteErrorCut : "СигурноÑна подешавања Вашег претраживача не дозвољавају операције аутоматÑког иÑецања текÑта. Молимо Ð’Ð°Ñ Ð´Ð° кориÑтите пречицу Ñа таÑтатуре (Ctrl+X).", PasteErrorCopy : "СигурноÑна подешавања Вашег претраживача не дозвољавају операције аутоматÑког копирања текÑта. Молимо Ð’Ð°Ñ Ð´Ð° кориÑтите пречицу Ñа таÑтатуре (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Залепи као чиÑÑ‚ текÑÑ‚", PasteFromWord : "Залепи из Worda", DlgPasteMsg2 : "Молимо Ð’Ð°Ñ Ð´Ð° залепите унутар доње површине кориÑтећи таÑтатурну пречицу (<STRONG>Ctrl+V</STRONG>) и да притиÑнете <STRONG>OK</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Игнориши Font Face дефиниције", DlgPasteRemoveStyles : "Уклони дефиниције Ñтилова", DlgPasteCleanBox : "Обриши Ñве", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Информације о претраживачу", DlgAboutLicenseTab : "License", //MISSING DlgAboutVersion : "верзија", DlgAboutInfo : "За више информација поÑетите" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/sv.js b/editor/editor/lang/sv.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: sv.js - * Swedish language file. - * - * File Authors: - * Kristoffer Malvefors (kristoffer@intema.ws) + * + * Swedish language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "Länk", InsertLink : "Infoga/Redigera länk", RemoveLink : "Radera länk", Anchor : "Infoga/Redigera ankarlänk", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Bild", InsertImage : "Infoga/Redigera bild", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "Högerjustera", BlockJustify : "Justera till marginaler", DecreaseIndent : "Minska indrag", IncreaseIndent : "Öka indrag", +Blockquote : "Blockquote", //MISSING Undo : "Ã…ngra", Redo : "Gör om", NumberedListLbl : "Numrerad lista", @@ -106,21 +104,28 @@ Button : "Knapp", SelectionField : "Flervalslista", ImageButton : "Bildknapp", -FitWindow : "Maximize the editor size", //MISSING +FitWindow : "Anpassa till fönstrets storlek", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Redigera länk", -CellCM : "Cell", //MISSING -RowCM : "Row", //MISSING -ColumnCM : "Column", //MISSING -InsertRow : "Infoga rad", +CellCM : "Cell", +RowCM : "Rad", +ColumnCM : "Kolumn", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Radera rad", -InsertColumn : "Infoga kolumn", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Radera kolumn", -InsertCell : "Infoga cell", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Radera celler", MergeCells : "Sammanfoga celler", -SplitCell : "Separera celler", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Radera tabell", CellProperties : "Cellegenskaper", TableProperties : "Tabellegenskaper", @@ -138,7 +143,7 @@ SelectionFieldProp : "Egenskaper för flervalslista", TextareaProp : "Egenskaper för textruta", FormProp : "Egenskaper för formulär", -FontFormats : "Normal;Formaterad;Adress;Rubrik 1;Rubrik 2;Rubrik 3;Rubrik 4;Rubrik 5;Rubrik 6", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formaterad;Adress;Rubrik 1;Rubrik 2;Rubrik 3;Rubrik 4;Rubrik 5;Rubrik 6;Normal (DIV)", // Alerts and Messages ProcessingXHTML : "Bearbetar XHTML. Var god vänta...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Välj ett ankare", DlgLnkAnchorByName : "efter ankarnamn", DlgLnkAnchorById : "efter objektid", -DlgLnkNoAnchors : "<Inga ankare kunde hittas>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Inga ankare kunde hittas)", DlgLnkEMail : "E-postadress", DlgLnkEMailSubject : "Ämne", DlgLnkEMailBody : "InnehÃ¥ll", @@ -266,7 +271,7 @@ DlgLnkPopTop : "Position frÃ¥n sidans topp", DlnLnkMsgNoUrl : "Var god ange länkens URL", DlnLnkMsgNoEMail : "Var god ange E-postadress", DlnLnkMsgNoAnchor : "Var god ange ett ankare", -DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING +DlnLnkMsgInvPopName : "Popup-rutans namn mÃ¥ste börja med en alfabetisk bokstav och fÃ¥r inte innehÃ¥lla mellanslag", // Color Dialog DlgColorTitle : "Välj färg", @@ -326,6 +331,9 @@ DlgCellBackColor : "Bakgrundsfärg", DlgCellBorderColor : "Kantfärg", DlgCellBtnSelect : "Välj...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Sök", DlgFindFindBtn : "Sök", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Ersätt alla", DlgReplaceWordChk : "Inkludera hela ord", // Paste Operations / Dialog -PasteErrorPaste : "Säkerhetsinställningar i Er webläsare tillÃ¥ter inte Ã¥tgÃ¥rden Klistra in. Använd (Ctrl+V) istället.", PasteErrorCut : "Säkerhetsinställningar i Er webläsare tillÃ¥ter inte Ã¥tgÃ¥rden Klipp ut. Använd (Ctrl+X) istället.", PasteErrorCopy : "Säkerhetsinställningar i Er webläsare tillÃ¥ter inte Ã¥tgÃ¥rden Kopiera. Använd (Ctrl+C) istället", @@ -349,6 +356,7 @@ PasteAsText : "Klistra in som vanlig text", PasteFromWord : "Klistra in frÃ¥n Word", DlgPasteMsg2 : "Var god och klistra in Er text i rutan nedan genom att använda (<STRONG>Ctrl+V</STRONG>) klicka sen pÃ¥ <STRONG>OK</STRONG>.", +DlgPasteSec : "PÃ¥ grund av din webläsares säkerhetsinställningar kan verktyget inte fÃ¥ Ã¥tkomst till urklippsdatan. Var god och använd detta fönster istället.", DlgPasteIgnoreFont : "Ignorera typsnittsdefinitioner", DlgPasteRemoveStyles : "Radera Stildefinitioner", DlgPasteCleanBox : "Töm rutans innehÃ¥ll", @@ -385,9 +393,9 @@ IeSpellDownload : "Stavningskontrollen är ej installerad. Vill du göra det n // Button Dialog DlgButtonText : "Text (Värde)", DlgButtonType : "Typ", -DlgButtonTypeBtn : "Button", //MISSING -DlgButtonTypeSbm : "Submit", //MISSING -DlgButtonTypeRst : "Reset", //MISSING +DlgButtonTypeBtn : "Knapp", +DlgButtonTypeSbm : "Skicka", +DlgButtonTypeRst : "Ã…terställ", // Checkbox and Radio Button Dialogs DlgCheckboxName : "Namn", @@ -459,15 +467,15 @@ DlgDocLangDirLTR : "Vänster till Höger", DlgDocLangDirRTL : "Höger till Vänster", DlgDocLangCode : "SprÃ¥kkod", DlgDocCharSet : "Teckenuppsättningar", -DlgDocCharSetCE : "Central European", //MISSING -DlgDocCharSetCT : "Chinese Traditional (Big5)", //MISSING -DlgDocCharSetCR : "Cyrillic", //MISSING -DlgDocCharSetGR : "Greek", //MISSING -DlgDocCharSetJP : "Japanese", //MISSING -DlgDocCharSetKR : "Korean", //MISSING -DlgDocCharSetTR : "Turkish", //MISSING -DlgDocCharSetUN : "Unicode (UTF-8)", //MISSING -DlgDocCharSetWE : "Western European", //MISSING +DlgDocCharSetCE : "Central Europa", +DlgDocCharSetCT : "Traditionell Kinesisk (Big5)", +DlgDocCharSetCR : "Kyrillisk", +DlgDocCharSetGR : "Grekiska", +DlgDocCharSetJP : "Japanska", +DlgDocCharSetKR : "Koreanska", +DlgDocCharSetTR : "Turkiska", +DlgDocCharSetUN : "Unicode (UTF-8)", +DlgDocCharSetWE : "Väst Europa", DlgDocCharSetOther : "Övriga teckenuppsättningar", DlgDocDocType : "Sidhuvud", @@ -497,12 +505,12 @@ DlgTemplatesTitle : "Sidmallar", DlgTemplatesSelMsg : "Var god välj en mall att använda med editorn<br>(allt nuvarande innehÃ¥ll raderas):", DlgTemplatesLoading : "Laddar mallar. Var god vänta...", DlgTemplatesNoTpl : "(Ingen mall är vald)", -DlgTemplatesReplace : "Replace actual contents", //MISSING +DlgTemplatesReplace : "Ersätt aktuellt innehÃ¥ll", // About Dialog DlgAboutAboutTab : "Om", DlgAboutBrowserInfoTab : "Webläsare", -DlgAboutLicenseTab : "License", //MISSING +DlgAboutLicenseTab : "Licens", DlgAboutVersion : "version", DlgAboutInfo : "För mer information se" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/th.js b/editor/editor/lang/th.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: th.js - * Thai language file. - * - * File Authors: - * Audy Charin Arsakit (arsakit@gmail.com) - * Joy Piyanoot Promnuan (piyanoot@gmail.com) + * + * Thai language file. */ var FCKLang = @@ -50,10 +45,11 @@ InsertLinkLbl : "ลิงค์เชื่อมโยงเว็บ อีà InsertLink : "à¹à¸—รà¸/à¹à¸à¹‰à¹„ข ลิงค์", RemoveLink : "ลบ ลิงค์", Anchor : "à¹à¸—รà¸/à¹à¸à¹‰à¹„ข Anchor", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "รูปภาพ", InsertImage : "à¹à¸—รà¸/à¹à¸à¹‰à¹„ข รูปภาพ", -InsertFlashLbl : "Flash", //MISSING -InsertFlash : "Insert/Edit Flash", //MISSING +InsertFlashLbl : "ไฟล์ Flash", +InsertFlash : "à¹à¸—รà¸/à¹à¸à¹‰à¹„ข ไฟล์ Flash", InsertTableLbl : "ตาราง", InsertTable : "à¹à¸—รà¸/à¹à¸à¹‰à¹„ข ตาราง", InsertLineLbl : "เส้นคั่นบรรทัด", @@ -75,6 +71,7 @@ RightJustify : "จัดชิดขวา", BlockJustify : "จัดพอดีหน้าà¸à¸£à¸°à¸”าษ", DecreaseIndent : "ลดระยะย่อหน้า", IncreaseIndent : "เพิ่มระยะย่อหน้า", +Blockquote : "Blockquote", //MISSING Undo : "ยà¸à¹€à¸¥à¸´à¸à¸„ำสั่ง", Redo : "ทำซ้ำคำสั่ง", NumberedListLbl : "ลำดับรายà¸à¸²à¸£à¹à¸šà¸šà¸•à¸±à¸§à¹€à¸¥à¸‚", @@ -94,8 +91,8 @@ Find : "ค้นหา", Replace : "ค้นหาà¹à¸¥à¸°à¹à¸—นที่", SpellCheck : "ตรวจà¸à¸²à¸£à¸ªà¸°à¸à¸”คำ", UniversalKeyboard : "คีย์บอร์ดหลาà¸à¸ à¸²à¸©à¸²", -PageBreakLbl : "Page Break", //MISSING -PageBreak : "Insert Page Break", //MISSING +PageBreakLbl : "ใส่ตัวà¹à¸šà¹ˆà¸‡à¸«à¸™à¹‰à¸² Page Break", +PageBreak : "à¹à¸—รà¸à¸•à¸±à¸§à¹à¸šà¹ˆà¸‡à¸«à¸™à¹‰à¸² Page Break", Form : "à¹à¸šà¸šà¸Ÿà¸­à¸£à¹Œà¸¡", Checkbox : "เช็คบ๊อà¸", @@ -107,26 +104,33 @@ Button : "ปุ่ม", SelectionField : "à¹à¸–บตัวเลือà¸", ImageButton : "ปุ่มà¹à¸šà¸šà¸£à¸¹à¸›à¸ à¸²à¸ž", -FitWindow : "Maximize the editor size", //MISSING +FitWindow : "ขยายขนาดตัวอีดิตเตอร์", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "à¹à¸à¹‰à¹„ข ลิงค์", -CellCM : "Cell", //MISSING -RowCM : "Row", //MISSING -ColumnCM : "Column", //MISSING -InsertRow : "à¹à¸—รà¸à¹à¸–ว", +CellCM : "ช่องตาราง", +RowCM : "à¹à¸–ว", +ColumnCM : "คอลัมน์", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "ลบà¹à¸–ว", -InsertColumn : "à¹à¸—รà¸à¸ªà¸”มน์", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "ลบสดมน์", -InsertCell : "à¹à¸—รà¸à¸Šà¹ˆà¸­à¸‡", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "ลบช่อง", MergeCells : "ผสานช่อง", -SplitCell : "à¹à¸¢à¸à¸Šà¹ˆà¸­à¸‡", -TableDelete : "Delete Table", //MISSING +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING +TableDelete : "ลบตาราง", CellProperties : "คุณสมบัติของช่อง", TableProperties : "คุณสมบัติของตาราง", ImageProperties : "คุณสมบัติของรูปภาพ", -FlashProperties : "Flash Properties", //MISSING +FlashProperties : "คุณสมบัติของไฟล์ Flash", AnchorProp : "รายละเอียด Anchor", ButtonProp : "รายละเอียดของ ปุ่ม", @@ -139,7 +143,7 @@ SelectionFieldProp : "คุณสมบัติของ à¹à¸–บตัวเ TextareaProp : "คุณสมบัติของ เท็à¸à¹à¸­à¹€à¸£à¸µà¸¢", FormProp : "คุณสมบัติของ à¹à¸šà¸šà¸Ÿà¸­à¸£à¹Œà¸¡", -FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)", // Alerts and Messages ProcessingXHTML : "โปรà¹à¸à¸£à¸¡à¸à¸³à¸¥à¸±à¸‡à¸—ำงานด้วยเทคโนโลยี XHTML à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่...", @@ -150,9 +154,9 @@ UnknownToolbarItem : "ไม่สามารถระบุปุ่มเคà UnknownCommand : "ไม่สามารถระบุชื่อคำสั่งได้ \"%1\"", NotImplemented : "ไม่สามารถใช้งานคำสั่งได้", UnknownToolbarSet : "ไม่มีà¸à¸²à¸£à¸•à¸´à¸”ตั้งชุดคำสั่งในà¹à¸–บเครื่องมือ \"%1\" à¸à¸£à¸¸à¸“าติดต่อผู้ดูà¹à¸¥à¸£à¸°à¸šà¸š", -NoActiveX : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", //MISSING -BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.", //MISSING -DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.", //MISSING +NoActiveX : "โปรà¹à¸à¸£à¸¡à¸—่องอินเตอร์เน็ตของท่านไม่อนุà¸à¸²à¸•à¸´à¹ƒà¸«à¹‰à¸­à¸µà¸”ิตเตอร์ทำงาน \"Run ActiveX controls and plug-ins\". หาà¸à¹„ม่อนุà¸à¸²à¸•à¸´à¹ƒà¸«à¹‰à¹ƒà¸Šà¹‰à¸‡à¸²à¸™ ActiveX controls ท่านจะไม่สามารถใช้งานได้อย่างเต็มประสิทธิภาพ.", +BrowseServerBlocked : "เปิดหน้าต่างป๊อบอัพเพื่อทำงานต่อไม่ได้ à¸à¸£à¸¸à¸“าปิดเครื่องมือป้องà¸à¸±à¸™à¸›à¹Šà¸­à¸šà¸­à¸±à¸žà¹ƒà¸™à¹‚ปรà¹à¸à¸£à¸¡à¸—่องอินเตอร์เน็ตของท่านด้วย", +DialogBlocked : "เปิดหน้าต่างป๊อบอัพเพื่อทำงานต่อไม่ได้ à¸à¸£à¸¸à¸“าปิดเครื่องมือป้องà¸à¸±à¸™à¸›à¹Šà¸­à¸šà¸­à¸±à¸žà¹ƒà¸™à¹‚ปรà¹à¸à¸£à¸¡à¸—่องอินเตอร์เน็ตของท่านด้วย", // Dialogs DlgBtnOK : "ตà¸à¸¥à¸‡", @@ -161,8 +165,8 @@ DlgBtnClose : "ปิด", DlgBtnBrowseServer : "เปิดหน้าต่างจัดà¸à¸²à¸£à¹„ฟล์อัพโหลด", DlgAdvancedTag : "ขั้นสูง", DlgOpOther : "<อื่นๆ>", -DlgInfoTab : "Info", //MISSING -DlgAlertUrl : "Please insert the URL", //MISSING +DlgInfoTab : "อินโฟ", +DlgAlertUrl : "à¸à¸£à¸¸à¸“าระบุ URL", // General Dialogs Labels DlgGenNotSet : "<ไม่ระบุ>", @@ -207,17 +211,17 @@ DlgImgAlignTextTop : "ใต้ตัวอัà¸à¸©à¸£", DlgImgAlignTop : "บนสุด", DlgImgPreview : "หน้าเอà¸à¸ªà¸²à¸£à¸•à¸±à¸§à¸­à¸¢à¹ˆà¸²à¸‡", DlgImgAlertUrl : "à¸à¸£à¸¸à¸“าระบุที่อยู่อ้างอิงออนไลน์ของไฟล์รูปภาพ (URL)", -DlgImgLinkTab : "Link", //MISSING +DlgImgLinkTab : "ลิ้งค์", // Flash Dialog -DlgFlashTitle : "Flash Properties", //MISSING -DlgFlashChkPlay : "Auto Play", //MISSING -DlgFlashChkLoop : "Loop", //MISSING -DlgFlashChkMenu : "Enable Flash Menu", //MISSING -DlgFlashScale : "Scale", //MISSING -DlgFlashScaleAll : "Show all", //MISSING -DlgFlashScaleNoBorder : "No Border", //MISSING -DlgFlashScaleFit : "Exact Fit", //MISSING +DlgFlashTitle : "คุณสมบัติของไฟล์ Flash", +DlgFlashChkPlay : "เล่นอัตโนมัติ Auto Play", +DlgFlashChkLoop : "เล่นวนรอบ Loop", +DlgFlashChkMenu : "ให้ใช้งานเมนูของ Flash", +DlgFlashScale : "อัตราส่วน Scale", +DlgFlashScaleAll : "à¹à¸ªà¸”งให้เห็นทั้งหมด Show all", +DlgFlashScaleNoBorder : "ไม่à¹à¸ªà¸”งเส้นขอบ No Border", +DlgFlashScaleFit : "à¹à¸ªà¸”งให้พอดีà¸à¸±à¸šà¸žà¸·à¹‰à¸™à¸—ี่ Exact Fit", // Link Dialog DlgLnkWindowTitle : "ลิงค์เชื่อมโยงเว็บ อีเมล์ รูปภาพ หรือไฟล์อื่นๆ", @@ -234,7 +238,7 @@ DlgLnkURL : "ที่อยู่อ้างอิงออนไลน์ ( DlgLnkAnchorSel : "ระบุข้อมูลของจุดเชื่อมโยง (Anchor)", DlgLnkAnchorByName : "ชื่อ", DlgLnkAnchorById : "ไอดี", -DlgLnkNoAnchors : "<ยังไม่มีจุดเชื่อมโยงภายในหน้าเอà¸à¸ªà¸²à¸£à¸™à¸µà¹‰>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(ยังไม่มีจุดเชื่อมโยงภายในหน้าเอà¸à¸ªà¸²à¸£à¸™à¸µà¹‰)", DlgLnkEMail : "อีเมล์ (E-Mail)", DlgLnkEMailSubject : "หัวเรื่อง", DlgLnkEMailBody : "ข้อความ", @@ -267,7 +271,7 @@ DlgLnkPopTop : "พิà¸à¸±à¸”บน (Top Position)", DlnLnkMsgNoUrl : "à¸à¸£à¸¸à¸“าระบุที่อยู่อ้างอิงออนไลน์ (URL)", DlnLnkMsgNoEMail : "à¸à¸£à¸¸à¸“าระบุอีเมล์ (E-mail)", DlnLnkMsgNoAnchor : "à¸à¸£à¸¸à¸“าระบุจุดเชื่อมโยง (Anchor)", -DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING +DlnLnkMsgInvPopName : "ชื่อของหน้าต่างป๊อบอัพ จะต้องขึ้นต้นด้วยตัวอัà¸à¸©à¸£à¹€à¸—่านั้น à¹à¸¥à¸°à¸•à¹‰à¸­à¸‡à¹„ม่มีช่องว่างในชื่อ", // Color Dialog DlgColorTitle : "เลือà¸à¸ªà¸µ", @@ -276,7 +280,7 @@ DlgColorHighlight : "ตัวอย่างสี", DlgColorSelected : "สีที่เลือà¸", // Smiley Dialog -DlgSmileyTitle : "à¹à¸—รà¸à¸ªà¸±à¸à¸±à¸à¸©à¸“์สื่ออารมณ์", +DlgSmileyTitle : "à¹à¸—รà¸à¸ªà¸±à¸à¸¥à¸±à¸à¸©à¸“์สื่ออารมณ์", // Special Character Dialog DlgSpecialCharTitle : "à¹à¸—รà¸à¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£à¸žà¸´à¹€à¸¨à¸©", @@ -298,7 +302,7 @@ DlgTableHeight : "สูง", DlgTableCellSpace : "ระยะà¹à¸™à¸§à¸™à¸­à¸™à¸™", DlgTableCellPad : "ระยะà¹à¸™à¸§à¸•à¸±à¹‰à¸‡", DlgTableCaption : "หัวเรื่องของตาราง", -DlgTableSummary : "Summary", //MISSING +DlgTableSummary : "สรุปความ", // Table Cell Dialog DlgCellTitle : "คุณสมบัติของ ช่อง", @@ -327,6 +331,9 @@ DlgCellBackColor : "สีพื้นหลัง", DlgCellBorderColor : "สีเส้นขอบ", DlgCellBtnSelect : "เลือà¸..", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "ค้นหา", DlgFindFindBtn : "ค้นหา", @@ -342,17 +349,17 @@ DlgReplaceReplAllBtn : "à¹à¸—นที่ทั้งหมดที่พบ", DlgReplaceWordChk : "ต้องตรงà¸à¸±à¸™à¸—ุà¸à¸„ำ", // Paste Operations / Dialog -PasteErrorPaste : "ไม่สามารถวางข้อความที่สำเนามาได้เนื่องจาà¸à¸à¸²à¸£à¸à¸³à¸«à¸™à¸”ค่าระดับความปลอดภัย. à¸à¸£à¸¸à¸“าใช้ปุ่มลัดเพื่อวางข้อความà¹à¸—น (à¸à¸”ปุ่ม Ctrl à¹à¸¥à¸°à¸•à¸±à¸§ V พร้อมà¸à¸±à¸™).", PasteErrorCut : "ไม่สามารถตัดข้อความที่เลือà¸à¹„ว้ได้เนื่องจาà¸à¸à¸²à¸£à¸à¸³à¸«à¸™à¸”ค่าระดับความปลอดภัย. à¸à¸£à¸¸à¸“าใช้ปุ่มลัดเพื่อวางข้อความà¹à¸—น (à¸à¸”ปุ่ม Ctrl à¹à¸¥à¸°à¸•à¸±à¸§ X พร้อมà¸à¸±à¸™).", PasteErrorCopy : "ไม่สามารถสำเนาข้อความที่เลือà¸à¹„ว้ได้เนื่องจาà¸à¸à¸²à¸£à¸à¸³à¸«à¸™à¸”ค่าระดับความปลอดภัย. à¸à¸£à¸¸à¸“าใช้ปุ่มลัดเพื่อวางข้อความà¹à¸—น (à¸à¸”ปุ่ม Ctrl à¹à¸¥à¸°à¸•à¸±à¸§ C พร้อมà¸à¸±à¸™).", PasteAsText : "วางà¹à¸šà¸šà¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£à¸˜à¸£à¸£à¸¡à¸”า", PasteFromWord : "วางà¹à¸šà¸šà¸•à¸±à¸§à¸­à¸±à¸à¸©à¸£à¸ˆà¸²à¸à¹‚ปรà¹à¸à¸£à¸¡à¹€à¸§à¸´à¸£à¹Œà¸”", -DlgPasteMsg2 : "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.", //MISSING -DlgPasteIgnoreFont : "Ignore Font Face definitions", //MISSING -DlgPasteRemoveStyles : "Remove Styles definitions", //MISSING -DlgPasteCleanBox : "Clean Up Box", //MISSING +DlgPasteMsg2 : "à¸à¸£à¸¸à¸“าใช้คีย์บอร์ดเท่านั้น โดยà¸à¸”ปุ๋ม (<strong>Ctrl à¹à¸¥à¸° V</strong>)พร้อมๆà¸à¸±à¸™ à¹à¸¥à¸°à¸à¸” <strong>OK</strong>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING +DlgPasteIgnoreFont : "ไม่สนใจ Font Face definitions", +DlgPasteRemoveStyles : "ลบ Styles definitions", +DlgPasteCleanBox : "ล้างข้อมูลใน Box", // Color Picker ColorAutomatic : "สีอัตโนมัติ", @@ -386,9 +393,9 @@ IeSpellDownload : "ไม่ได้ติดตั้งระบบตรภ// Button Dialog DlgButtonText : "ข้อความ (ค่าตัวà¹à¸›à¸£)", DlgButtonType : "ข้อความ", -DlgButtonTypeBtn : "Button", //MISSING -DlgButtonTypeSbm : "Submit", //MISSING -DlgButtonTypeRst : "Reset", //MISSING +DlgButtonTypeBtn : "Button", +DlgButtonTypeSbm : "Submit", +DlgButtonTypeRst : "Reset", // Checkbox and Radio Button Dialogs DlgCheckboxName : "ชื่อ", @@ -460,15 +467,15 @@ DlgDocLangDirLTR : "จาà¸à¸‹à¹‰à¸²à¸¢à¹„ปขวา (LTR)", DlgDocLangDirRTL : "จาà¸à¸‚วาไปซ้าย (RTL)", DlgDocLangCode : "รหัสภาษา", DlgDocCharSet : "ชุดตัวอัà¸à¸©à¸£", -DlgDocCharSetCE : "Central European", //MISSING -DlgDocCharSetCT : "Chinese Traditional (Big5)", //MISSING -DlgDocCharSetCR : "Cyrillic", //MISSING -DlgDocCharSetGR : "Greek", //MISSING -DlgDocCharSetJP : "Japanese", //MISSING -DlgDocCharSetKR : "Korean", //MISSING -DlgDocCharSetTR : "Turkish", //MISSING -DlgDocCharSetUN : "Unicode (UTF-8)", //MISSING -DlgDocCharSetWE : "Western European", //MISSING +DlgDocCharSetCE : "Central European", +DlgDocCharSetCT : "Chinese Traditional (Big5)", +DlgDocCharSetCR : "Cyrillic", +DlgDocCharSetGR : "Greek", +DlgDocCharSetJP : "Japanese", +DlgDocCharSetKR : "Korean", +DlgDocCharSetTR : "Turkish", +DlgDocCharSetUN : "Unicode (UTF-8)", +DlgDocCharSetWE : "Western European", DlgDocCharSetOther : "ชุดตัวอัà¸à¸©à¸£à¸­à¸·à¹ˆà¸™à¹†", DlgDocDocType : "ประเภทของเอà¸à¸ªà¸²à¸£", @@ -493,17 +500,17 @@ DlgDocMeCopy : "สงวนลิขสิทธิ์", DlgDocPreview : "ตัวอย่างหน้าเอà¸à¸ªà¸²à¸£", // Templates Dialog -Templates : "Templates", //MISSING -DlgTemplatesTitle : "Content Templates", //MISSING -DlgTemplatesSelMsg : "Please select the template to open in the editor<br />(the actual contents will be lost):", //MISSING -DlgTemplatesLoading : "Loading templates list. Please wait...", //MISSING -DlgTemplatesNoTpl : "(No templates defined)", //MISSING -DlgTemplatesReplace : "Replace actual contents", //MISSING +Templates : "เทมเพลต", +DlgTemplatesTitle : "เทมเพลตของส่วนเนื้อหาเว็บไซต์", +DlgTemplatesSelMsg : "à¸à¸£à¸¸à¸“าเลือภเทมเพลต เพื่อนำไปà¹à¸à¹‰à¹„ขในอีดิตเตอร์<br />(เนื้อหาส่วนนี้จะหายไป):", +DlgTemplatesLoading : "à¸à¸³à¸¥à¸±à¸‡à¹‚หลดรายà¸à¸²à¸£à¹€à¸—มเพลตทั้งหมด...", +DlgTemplatesNoTpl : "(ยังไม่มีà¸à¸²à¸£à¸à¸³à¸«à¸™à¸”เทมเพลต)", +DlgTemplatesReplace : "à¹à¸—นที่เนื้อหาเว็บไซต์ที่เลือà¸", // About Dialog DlgAboutAboutTab : "เà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¹‚ปรà¹à¸à¸£à¸¡", DlgAboutBrowserInfoTab : "โปรà¹à¸à¸£à¸¡à¸—่องเว็บที่ท่านใช้", -DlgAboutLicenseTab : "License", //MISSING +DlgAboutLicenseTab : "ลิขสิทธิ์", DlgAboutVersion : "รุ่น", -DlgAboutInfo : "ข้อมูลเพิ่มเติมภาษาไทยติดต่อ</BR>นาย ชรินทร์ อาษาà¸à¸´à¸ˆ (อู้ด)</BR><A HREF='mailto:arsakit@gmail.com'>arsakit@gmail.com</A> tel. (+66) 06-9241924</BR>หรือดาวน์โหลดรุ่นภาษาไทยได้ที่เว็บไซต์</BR><A HREF='http://www.thaimall4u.com'>www.Thaimall4u.com</A></BR>ข้อมูลเพิ่มเติมภาษาอังà¸à¸¤à¸© à¸à¸£à¸¸à¸“าไปที่นี่" -};- \ No newline at end of file +DlgAboutInfo : "For further information go to" //MISSING +}; diff --git a/editor/editor/lang/tr.js b/editor/editor/lang/tr.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: tr.js - * Turkish language file. - * - * File Authors: - * Bogac Guven (bogacmx@yahoo.com) - * Burak Gürsoy (burak@cpan.org) + * + * Turkish language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "Köprü", InsertLink : "Köprü Ekle/Düzenle", RemoveLink : "Köprü Kaldır", Anchor : "Çapa Ekle/Düzenle", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Resim", InsertImage : "Resim Ekle/Düzenle", InsertFlashLbl : "Flash", @@ -75,6 +71,7 @@ RightJustify : "SaÄŸa Dayalı", BlockJustify : "Ä°ki Kenara Yaslanmış", DecreaseIndent : "Sekme Azalt", IncreaseIndent : "Sekme Arttır", +Blockquote : "Blockquote", //MISSING Undo : "Geri Al", Redo : "Tekrarla", NumberedListLbl : "Numaralı Liste", @@ -108,20 +105,27 @@ SelectionField : "Seçim Menüsü", ImageButton : "Resimli Düğme", FitWindow : "Düzenleyici boyutunu büyüt", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Köprü Düzenle", CellCM : "Hücre", RowCM : "Satır", ColumnCM : "Sütun", -InsertRow : "Satır Ekle", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Satır Sil", -InsertColumn : "Sütun Ekle", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Sütun Sil", -InsertCell : "Hücre Ekle", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Hücre Sil", MergeCells : "Hücreleri BirleÅŸtir", -SplitCell : "Hücre Böl", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Tabloyu Sil", CellProperties : "Hücre Özellikleri", TableProperties : "Tablo Özellikleri", @@ -139,7 +143,7 @@ SelectionFieldProp : "Seçim Menüsü Özellikleri", TextareaProp : "Çok Satırlı Metin Özellikleri", FormProp : "Form Özellikleri", -FontFormats : "Normal;Biçimli;Adres;BaÅŸlık 1;BaÅŸlık 2;BaÅŸlık 3;BaÅŸlık 4;BaÅŸlık 5;BaÅŸlık 6;Paragraf (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Biçimli;Adres;BaÅŸlık 1;BaÅŸlık 2;BaÅŸlık 3;BaÅŸlık 4;BaÅŸlık 5;BaÅŸlık 6;Paragraf (DIV)", // Alerts and Messages ProcessingXHTML : "XHTML iÅŸleniyor. Lütfen bekleyin...", @@ -234,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Çapa Seç", DlgLnkAnchorByName : "Çapa Adı ile", DlgLnkAnchorById : "Eleman Kimlik Numarası ile", -DlgLnkNoAnchors : "<Bu belgede hiç çapa yok>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Bu belgede hiç çapa yok)", DlgLnkEMail : "E-Posta Adresi", DlgLnkEMailSubject : "Ä°leti Konusu", DlgLnkEMailBody : "Ä°leti Gövdesi", @@ -327,6 +331,9 @@ DlgCellBackColor : "Arka Plan Rengi", DlgCellBorderColor : "Kenar Rengi", DlgCellBtnSelect : "Seç...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Bul", DlgFindFindBtn : "Bul", @@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "Tümünü DeÄŸiÅŸtir", DlgReplaceWordChk : "Kelimenin tamamı uysun", // Paste Operations / Dialog -PasteErrorPaste : "Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik yapıştırma iÅŸlemine izin vermiyor. Ä°ÅŸlem için (Ctrl+V) tuÅŸlarını kullanın.", PasteErrorCut : "Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme iÅŸlemine izin vermiyor. Ä°ÅŸlem için (Ctrl+X) tuÅŸlarını kullanın.", PasteErrorCopy : "Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama iÅŸlemine izin vermiyor. Ä°ÅŸlem için (Ctrl+C) tuÅŸlarını kullanın.", @@ -350,6 +356,7 @@ PasteAsText : "Düz Metin Olarak Yapıştır", PasteFromWord : "Word'den yapıştır", DlgPasteMsg2 : "Lütfen aÅŸağıdaki kutunun içine yapıştırın. (<STRONG>Ctrl+V</STRONG>) ve <STRONG>Tamam</STRONG> butonunu tıklayın.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Yazı Tipi tanımlarını yoksay", DlgPasteRemoveStyles : "Biçem Tanımlarını çıkar", DlgPasteCleanBox : "Temizlik Kutusu", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Gezgin Bilgisi", DlgAboutLicenseTab : "Lisans", DlgAboutVersion : "sürüm", DlgAboutInfo : "Daha fazla bilgi için:" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/uk.js b/editor/editor/lang/uk.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: uk.js - * Ukrainian language file. - * - * File Authors: - * Alexander Pervak (pervak@gmail.com) + * + * Ukrainian language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "ПоÑиланнÑ", InsertLink : "Ð’Ñтавити/Редагувати поÑиланнÑ", RemoveLink : "Знищити поÑиланнÑ", Anchor : "Ð’Ñтавити/Редагувати Ñкір", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "ЗображеннÑ", InsertImage : "Ð’Ñтавити/Редагувати зображеннÑ", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "По правому краю", BlockJustify : "По ширині", DecreaseIndent : "Зменшити відÑтуп", IncreaseIndent : "Збільшити відÑтуп", +Blockquote : "Blockquote", //MISSING Undo : "Повернути", Redo : "Повторити", NumberedListLbl : "Ðумерований ÑпиÑок", @@ -107,20 +105,27 @@ SelectionField : "СпиÑок", ImageButton : "Кнопка із зображеннÑм", FitWindow : "Розвернути вікно редактора", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Ð’Ñтавити поÑиланнÑ", CellCM : "ОÑередок", RowCM : "РÑдок", ColumnCM : "Колонка", -InsertRow : "Ð’Ñтавити Ñтроку", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Видалити Ñтроки", -InsertColumn : "Ð’Ñтавити колонку", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Видалити колонки", -InsertCell : "Ð’Ñтавити комірку", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Видалити комірки", MergeCells : "Об'єднати комірки", -SplitCell : "Роз'єднати комірку", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Видалити таблицю", CellProperties : "ВлаÑтивоÑÑ‚Ñ– комірки", TableProperties : "ВлаÑтивоÑÑ‚Ñ– таблиці", @@ -138,7 +143,7 @@ SelectionFieldProp : "ВлаÑтивоÑÑ‚Ñ– ÑпиÑку", TextareaProp : "ВлаÑтивоÑÑ‚Ñ– текÑтової облаÑÑ‚Ñ–", FormProp : "ВлаÑтивоÑÑ‚Ñ– форми", -FontFormats : "Ðормальний;Форматований;ÐдреÑа;Заголовок 1;Заголовок 2;Заголовок 3;Заголовок 4;Заголовок 5;Заголовок 6", //REVIEW : Check _getfontformat.html +FontFormats : "Ðормальний;Форматований;ÐдреÑа;Заголовок 1;Заголовок 2;Заголовок 3;Заголовок 4;Заголовок 5;Заголовок 6;Ðормальний (DIV)", // Alerts and Messages ProcessingXHTML : "Обробка XHTML. Зачекайте, будь лаÑка...", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Оберіть Ñкір", DlgLnkAnchorByName : "За ім'Ñм ÑкорÑ", DlgLnkAnchorById : "За ідентифікатором елемента", -DlgLnkNoAnchors : "<Ðемає Ñкорів доÑтупних в цьому документі>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Ðемає Ñкорів доÑтупних в цьому документі)", DlgLnkEMail : "ÐдреÑа ел. пошти", DlgLnkEMailSubject : "Тема лиÑта", DlgLnkEMailBody : "Тіло повідомленнÑ", @@ -326,6 +331,9 @@ DlgCellBackColor : "Колір фона", DlgCellBorderColor : "Колір бордюра", DlgCellBtnSelect : "Оберіть...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Пошук", DlgFindFindBtn : "Пошук", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "Замінити вÑе", DlgReplaceWordChk : "Збіг цілих Ñлів", // Paste Operations / Dialog -PasteErrorPaste : "ÐаÑтройки безпеки вашого браузера не дозволÑÑŽÑ‚ÑŒ редактору автоматично виконувати операції вÑтавки. Будь лаÑка, викориÑтовуйте клавіатуру Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ (Ctrl+V).", PasteErrorCut : "ÐаÑтройки безпеки вашого браузера не дозволÑÑŽÑ‚ÑŒ редактору автоматично виконувати операції вирізуваннÑ. Будь лаÑка, викориÑтовуйте клавіатуру Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ (Ctrl+X).", PasteErrorCopy : "ÐаÑтройки безпеки вашого браузера не дозволÑÑŽÑ‚ÑŒ редактору автоматично виконувати операції копіюваннÑ. Будь лаÑка, викориÑтовуйте клавіатуру Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ (Ctrl+C).", @@ -349,6 +356,7 @@ PasteAsText : "Ð’Ñтавити тільки текÑÑ‚", PasteFromWord : "Ð’Ñтавити з Word", DlgPasteMsg2 : "Будь-лаÑка, вÑтавте з буфера обміну в цю облаÑÑ‚ÑŒ, кориÑтуючиÑÑŒ комбінацією клавіш (<STRONG>Ctrl+V</STRONG>) та натиÑніть <STRONG>OK</STRONG>.", +DlgPasteSec : "Редактор не може отримати прÑмий доÑтуп до буферу обміну у зв'Ñзку з налаштуваннÑми вашого браузера. Вам потрібно вÑтавити інформацію повторно в це вікно.", DlgPasteIgnoreFont : "Ігнорувати Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÑ€Ð¸Ñ„Ñ‚Ñ–Ð²", DlgPasteRemoveStyles : "Видалити Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñтилів", DlgPasteCleanBox : "ОчиÑтити облаÑÑ‚ÑŒ", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°", DlgAboutLicenseTab : "ЛіцензіÑ", DlgAboutVersion : "ВерÑÑ–Ñ", DlgAboutInfo : "Додаткову інформацію дивітьÑÑ Ð½Ð° " -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/vi.js b/editor/editor/lang/vi.js @@ -1,29 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: vi.js - * Vietnamese language file. - * - * File Authors: - * Phan Binh Giang (bbbgiang@yahoo.com) - * Hà Thanh Hải (thanhhai.ha@gmail.com) + * + * Vietnamese language file. */ var FCKLang = @@ -50,6 +45,7 @@ InsertLinkLbl : "Liên kết", InsertLink : "Chèn/Sá»­a Liên kết", RemoveLink : "Xoá Liên kết", Anchor : "Chèn/Sá»­a Neo", +AnchorDelete : "Remove Anchor", //MISSING InsertImageLbl : "Hình ảnh", InsertImage : "Chèn/Sá»­a Hình ảnh", InsertFlashLbl : "Flash", @@ -75,6 +71,7 @@ RightJustify : "Canh phải", BlockJustify : "Canh Ä‘á»u", DecreaseIndent : "Dịch ra ngoài", IncreaseIndent : "Dịch vào trong", +Blockquote : "Blockquote", //MISSING Undo : "Khôi phục thao tác", Redo : "Làm lại thao tác", NumberedListLbl : "Danh sách có thứ tá»±", @@ -108,20 +105,27 @@ SelectionField : "Ô chá»n", ImageButton : "Nút hình ảnh", FitWindow : "Mở rá»™ng tối Ä‘a kích thÆ°á»›c trình biên tập", +ShowBlocks : "Show Blocks", //MISSING // Context Menu EditLink : "Sá»­a Liên kết", CellCM : "Ô", RowCM : "Hàng", ColumnCM : "Cá»™t", -InsertRow : "Chèn Hàng", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING DeleteRows : "Xoá Hàng", -InsertColumn : "Chèn Cá»™t", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING DeleteColumns : "Xoá Cá»™t", -InsertCell : "Chèn Ô", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING DeleteCells : "Xoá Ô", MergeCells : "Trá»™n Ô", -SplitCell : "Chia Ô", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING TableDelete : "Xóa Bảng", CellProperties : "Thuá»™c tính Ô", TableProperties : "Thuá»™c tính Bảng", @@ -139,7 +143,7 @@ SelectionFieldProp : "Thuá»™c tính Ô chá»n", TextareaProp : "Thuá»™c tính Vùng văn bản", FormProp : "Thuá»™c tính Biểu mẫu", -FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", // Alerts and Messages ProcessingXHTML : "Äang xá»­ lý XHTML. Vui lòng đợi trong giây lát...", @@ -234,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "Chá»n má»™t Neo", DlgLnkAnchorByName : "Theo Tên Neo", DlgLnkAnchorById : "Theo Äịnh danh Element", -DlgLnkNoAnchors : "<Không có Neo nào trong tài liệu>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(Không có Neo nào trong tài liệu)", DlgLnkEMail : "ThÆ° Ä‘iện tá»­", DlgLnkEMailSubject : "Tiêu Ä‘á» Thông Ä‘iệp", DlgLnkEMailBody : "Ná»™i dung Thông Ä‘iệp", @@ -327,6 +331,9 @@ DlgCellBackColor : "Màu ná»n", DlgCellBorderColor : "Màu viá»n", DlgCellBtnSelect : "Chá»n...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + // Find Dialog DlgFindTitle : "Tìm kiếm", DlgFindFindBtn : "Tìm kiếm", @@ -342,7 +349,6 @@ DlgReplaceReplAllBtn : "Thay thế Tất cả", DlgReplaceWordChk : "Äúng toàn bá»™ từ", // Paste Operations / Dialog -PasteErrorPaste : "Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tá»± Ä‘á»™ng thá»±c thi lệnh dán. Hãy sá»­ dụng bàn phím cho lệnh này (Ctrl+V).", PasteErrorCut : "Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tá»± Ä‘á»™ng thá»±c thi lệnh cắt. Hãy sá»­ dụng bàn phím cho lệnh này (Ctrl+X).", PasteErrorCopy : "Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tá»± Ä‘á»™ng thá»±c thi lệnh sao chép. Hãy sá»­ dụng bàn phím cho lệnh này (Ctrl+C).", @@ -350,6 +356,7 @@ PasteAsText : "Dán theo định dạng văn bản thuần", PasteFromWord : "Dán vá»›i định dạng Word", DlgPasteMsg2 : "Hãy dán ná»™i dung vào trong khung bên dÆ°á»›i, sá»­ dụng tổ hợp phím (<STRONG>Ctrl+V</STRONG>) và nhấn vào nút <STRONG>Äồng ý</STRONG>.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING DlgPasteIgnoreFont : "Chấp nhận các định dạng phông", DlgPasteRemoveStyles : "Gỡ bá» các định dạng Styles", DlgPasteCleanBox : "Xóa ná»™i dung", @@ -506,4 +513,4 @@ DlgAboutBrowserInfoTab : "Thông tin trình duyệt", DlgAboutLicenseTab : "Giấy phép", DlgAboutVersion : "phiên bản", DlgAboutInfo : "Äể biết thêm thông tin, hãy truy cập" -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/zh-cn.js b/editor/editor/lang/zh-cn.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: zh-cn.js - * Chinese Simplified language file. - * - * File Authors: - * NetRube (netrube@gmail.com) + * + * Chinese Simplified language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "超链接", InsertLink : "æ’å…¥/编辑超链接", RemoveLink : "å–消超链接", Anchor : "æ’å…¥/编辑锚点链接", +AnchorDelete : "清除锚点链接", InsertImageLbl : "图象", InsertImage : "æ’å…¥/编辑图象", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "å³å¯¹é½", BlockJustify : "两端对é½", DecreaseIndent : "å‡å°‘缩进é‡", IncreaseIndent : "增加缩进é‡", +Blockquote : "引用文字", Undo : "撤消", Redo : "é‡åš", NumberedListLbl : "ç¼–å·åˆ—表", @@ -107,20 +105,27 @@ SelectionField : "列表/èœå•", ImageButton : "图åƒåŸŸ", FitWindow : "å…¨å±ç¼–辑", +ShowBlocks : "显示区å—", // Context Menu EditLink : "编辑超链接", CellCM : "å•å…ƒæ ¼", RowCM : "è¡Œ", ColumnCM : "列", -InsertRow : "æ’入行", +InsertRowAfter : "下æ’入行", +InsertRowBefore : "上æ’入行", DeleteRows : "删除行", -InsertColumn : "æ’入列", +InsertColumnAfter : "å³æ’入列", +InsertColumnBefore : "å·¦æ’入列", DeleteColumns : "删除列", -InsertCell : "æ’å…¥å•å…ƒæ ¼", +InsertCellAfter : "å³æ’å…¥å•å…ƒæ ¼", +InsertCellBefore : "å·¦æ’å…¥å•å…ƒæ ¼", DeleteCells : "删除å•å…ƒæ ¼", MergeCells : "åˆå¹¶å•å…ƒæ ¼", -SplitCell : "拆分å•å…ƒæ ¼", +MergeRight : "å³åˆå¹¶å•å…ƒæ ¼", +MergeDown : "下åˆå¹¶å•å…ƒæ ¼", +HorizontalSplitCell : "橫拆分å•å…ƒæ ¼", +VerticalSplitCell : "縱拆分å•å…ƒæ ¼", TableDelete : "删除表格", CellProperties : "å•å…ƒæ ¼å±žæ€§", TableProperties : "表格属性", @@ -138,7 +143,7 @@ SelectionFieldProp : "èœå•/列表属性", TextareaProp : "多行文本属性", FormProp : "表å•å±žæ€§", -FontFormats : "普通;已编排格å¼;地å€;标题 1;标题 2;标题 3;标题 4;标题 5;标题 6;段è½(DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "普通;已编排格å¼;地å€;标题 1;标题 2;标题 3;标题 4;标题 5;标题 6;段è½(DIV)", // Alerts and Messages ProcessingXHTML : "æ­£åœ¨å¤„ç† XHTML,请ç¨ç­‰...", @@ -233,7 +238,7 @@ DlgLnkURL : "地å€", DlgLnkAnchorSel : "选择一个锚点", DlgLnkAnchorByName : "按锚点å称", DlgLnkAnchorById : "按锚点 ID", -DlgLnkNoAnchors : "<此文档没有å¯ç”¨çš„锚点>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(此文档没有å¯ç”¨çš„锚点)", DlgLnkEMail : "地å€", DlgLnkEMailSubject : "主题", DlgLnkEMailBody : "内容", @@ -326,6 +331,9 @@ DlgCellBackColor : "背景颜色", DlgCellBorderColor : "边框颜色", DlgCellBtnSelect : "选择...", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "查找和替æ¢", + // Find Dialog DlgFindTitle : "查找", DlgFindFindBtn : "查找", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "全部替æ¢", DlgReplaceWordChk : "全字匹é…", // Paste Operations / Dialog -PasteErrorPaste : "您的æµè§ˆå™¨å®‰å…¨è®¾ç½®ä¸å…许编辑器自动执行粘贴æ“作,请使用键盘快æ·é”®(Ctrl+V)æ¥å®Œæˆã€‚", PasteErrorCut : "您的æµè§ˆå™¨å®‰å…¨è®¾ç½®ä¸å…许编辑器自动执行剪切æ“作,请使用键盘快æ·é”®(Ctrl+X)æ¥å®Œæˆã€‚", PasteErrorCopy : "您的æµè§ˆå™¨å®‰å…¨è®¾ç½®ä¸å…许编辑器自动执行å¤åˆ¶æ“作,请使用键盘快æ·é”®(Ctrl+C)æ¥å®Œæˆã€‚", @@ -349,6 +356,7 @@ PasteAsText : "粘贴为无格å¼æ–‡æœ¬", PasteFromWord : "从 MS Word 粘贴", DlgPasteMsg2 : "请使用键盘快æ·é”®(<STRONG>Ctrl+V</STRONG>)把内容粘贴到下é¢çš„方框里,å†æŒ‰ <STRONG>确定</STRONG>。", +DlgPasteSec : "因为你的æµè§ˆå™¨çš„安全设置原因,本编辑器ä¸èƒ½ç›´æŽ¥è®¿é—®ä½ çš„剪贴æ¿å†…容,你需è¦åœ¨æœ¬çª—å£é‡æ–°ç²˜è´´ä¸€æ¬¡ã€‚", DlgPasteIgnoreFont : "忽略 Font 标签", DlgPasteRemoveStyles : "æ¸…ç† CSS æ ·å¼", DlgPasteCleanBox : "清空上é¢å†…容", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "æµè§ˆå™¨ä¿¡æ¯", DlgAboutLicenseTab : "许å¯è¯", DlgAboutVersion : "版本", DlgAboutInfo : "è¦èŽ·å¾—更多信æ¯è¯·è®¿é—® " -};- \ No newline at end of file +}; diff --git a/editor/editor/lang/zh.js b/editor/editor/lang/zh.js @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: zh.js - * Chinese Traditional language file. - * - * File Authors: - * Zak Fong (zakfong@yahoo.com.tw) + * + * Chinese Traditional language file. */ var FCKLang = @@ -49,6 +45,7 @@ InsertLinkLbl : "超連çµ", InsertLink : "æ’å…¥/編輯超連çµ", RemoveLink : "移除超連çµ", Anchor : "æ’å…¥/編輯錨點", +AnchorDelete : "移除錨點", InsertImageLbl : "å½±åƒ", InsertImage : "æ’å…¥/編輯影åƒ", InsertFlashLbl : "Flash", @@ -74,6 +71,7 @@ RightJustify : "é å³å°é½Š", BlockJustify : "å·¦å³å°é½Š", DecreaseIndent : "減少縮排", IncreaseIndent : "增加縮排", +Blockquote : "å—引用", Undo : "復原", Redo : "é‡è¤‡", NumberedListLbl : "編號清單", @@ -107,20 +105,27 @@ SelectionField : "清單/é¸å–®", ImageButton : "å½±åƒæŒ‰éˆ•", FitWindow : "編輯器最大化", +ShowBlocks : "顯示å€å¡Š", // Context Menu EditLink : "編輯超連çµ", CellCM : "儲存格", RowCM : "列", ColumnCM : "欄", -InsertRow : "æ’入列", +InsertRowAfter : "å‘下æ’入列", +InsertRowBefore : "å‘上æ’入列", DeleteRows : "刪除列", -InsertColumn : "æ’入欄", +InsertColumnAfter : "å‘å³æ’入欄", +InsertColumnBefore : "å‘å·¦æ’入欄", DeleteColumns : "刪除欄", -InsertCell : "æ’入儲存格", +InsertCellAfter : "å‘å³æ’入儲存格", +InsertCellBefore : "å‘å·¦æ’入儲存格", DeleteCells : "刪除儲存格", MergeCells : "åˆä½µå„²å­˜æ ¼", -SplitCell : "分割儲存格", +MergeRight : "å‘å³åˆä½µå„²å­˜æ ¼", +MergeDown : "å‘下åˆä½µå„²å­˜æ ¼", +HorizontalSplitCell : "æ©«å‘分割儲存格", +VerticalSplitCell : "縱å‘分割儲存格", TableDelete : "刪除表格", CellProperties : "儲存格屬性", TableProperties : "表格屬性", @@ -138,7 +143,7 @@ SelectionFieldProp : "清單/é¸å–®å±¬æ€§", TextareaProp : "文字å€åŸŸå±¬æ€§", FormProp : "表單屬性", -FontFormats : "本文;已格å¼åŒ–;ä½å€;標題 1;標題 2;標題 3;標題 4;標題 5;標題 6;本文 (DIV)", //REVIEW : Check _getfontformat.html +FontFormats : "一般;已格å¼åŒ–;ä½å€;標題 1;標題 2;標題 3;標題 4;標題 5;標題 6;一般 (DIV)", // Alerts and Messages ProcessingXHTML : "è™•ç† XHTML 中,請ç¨å€™â€¦", @@ -233,7 +238,7 @@ DlgLnkURL : "URL", DlgLnkAnchorSel : "è«‹é¸æ“‡éŒ¨é»ž", DlgLnkAnchorByName : "ä¾éŒ¨é»žå稱", DlgLnkAnchorById : "ä¾å…ƒä»¶ ID", -DlgLnkNoAnchors : "<本文件尚無å¯ç”¨ä¹‹éŒ¨é»ž>", //REVIEW : Change < and > with ( and ) +DlgLnkNoAnchors : "(本文件尚無å¯ç”¨ä¹‹éŒ¨é»ž)", DlgLnkEMail : "é›»å­éƒµä»¶", DlgLnkEMailSubject : "郵件主旨", DlgLnkEMailBody : "郵件內容", @@ -326,6 +331,9 @@ DlgCellBackColor : "背景é¡è‰²", DlgCellBorderColor : "邊框é¡è‰²", DlgCellBtnSelect : "è«‹é¸æ“‡â€¦", +// Find and Replace Dialog +DlgFindAndReplaceTitle : "尋找與å–代", + // Find Dialog DlgFindTitle : "尋找", DlgFindFindBtn : "尋找", @@ -341,7 +349,6 @@ DlgReplaceReplAllBtn : "全部å–代", DlgReplaceWordChk : "全字相符", // Paste Operations / Dialog -PasteErrorPaste : "ç€è¦½å™¨çš„安全性設定ä¸å…許編輯器自動執行貼上動作。請使用快æ·éµ (Ctrl+V) 貼上。", PasteErrorCut : "ç€è¦½å™¨çš„安全性設定ä¸å…許編輯器自動執行剪下動作。請使用快æ·éµ (Ctrl+X) 剪下。", PasteErrorCopy : "ç€è¦½å™¨çš„安全性設定ä¸å…許編輯器自動執行複製動作。請使用快æ·éµ (Ctrl+C) 複製。", @@ -349,6 +356,7 @@ PasteAsText : "貼為純文字格å¼", PasteFromWord : "自 Word 貼上", DlgPasteMsg2 : "請使用快æ·éµ (<strong>Ctrl+V</strong>) 貼到下方å€åŸŸä¸­ä¸¦æŒ‰ä¸‹ <strong>確定</strong>", +DlgPasteSec : "因為ç€è¦½å™¨çš„安全性設定,本編輯器無法直接存å–您的剪貼簿資料,請您自行在本視窗進行貼上動作。", DlgPasteIgnoreFont : "移除字型設定", DlgPasteRemoveStyles : "移除樣å¼è¨­å®š", DlgPasteCleanBox : "清除文字å€åŸŸ", @@ -505,4 +513,4 @@ DlgAboutBrowserInfoTab : "ç€è¦½å™¨è³‡è¨Š", DlgAboutLicenseTab : "許å¯è­‰", DlgAboutVersion : "版本", DlgAboutInfo : "想ç²å¾—更多資訊請至 " -};- \ No newline at end of file +}; diff --git a/editor/editor/plugins/autogrow/fckplugin.js b/editor/editor/plugins/autogrow/fckplugin.js @@ -0,0 +1,92 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Plugin: automatically resizes the editor until a configurable maximun + * height (FCKConfig.AutoGrowMax), based on its contents. + */ + +var FCKAutoGrow_Min = window.frameElement.offsetHeight ; + +function FCKAutoGrow_Check() +{ + var oInnerDoc = FCK.EditorDocument ; + + var iFrameHeight, iInnerHeight ; + + if ( FCKBrowserInfo.IsIE ) + { + iFrameHeight = FCK.EditorWindow.frameElement.offsetHeight ; + iInnerHeight = oInnerDoc.body.scrollHeight ; + } + else + { + iFrameHeight = FCK.EditorWindow.innerHeight ; + iInnerHeight = oInnerDoc.body.offsetHeight ; + } + + var iDiff = iInnerHeight - iFrameHeight ; + + if ( iDiff != 0 ) + { + var iMainFrameSize = window.frameElement.offsetHeight ; + + if ( iDiff > 0 && iMainFrameSize < FCKConfig.AutoGrowMax ) + { + iMainFrameSize += iDiff ; + if ( iMainFrameSize > FCKConfig.AutoGrowMax ) + iMainFrameSize = FCKConfig.AutoGrowMax ; + } + else if ( iDiff < 0 && iMainFrameSize > FCKAutoGrow_Min ) + { + iMainFrameSize += iDiff ; + if ( iMainFrameSize < FCKAutoGrow_Min ) + iMainFrameSize = FCKAutoGrow_Min ; + } + else + return ; + + window.frameElement.height = iMainFrameSize ; + } +} + +FCK.AttachToOnSelectionChange( FCKAutoGrow_Check ) ; + +function FCKAutoGrow_SetListeners() +{ + if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG ) + return ; + + FCK.EditorWindow.attachEvent( 'onscroll', FCKAutoGrow_Check ) ; + FCK.EditorDocument.attachEvent( 'onkeyup', FCKAutoGrow_Check ) ; +} + +if ( FCKBrowserInfo.IsIE ) +{ +// FCKAutoGrow_SetListeners() ; + FCK.Events.AttachEvent( 'OnAfterSetHTML', FCKAutoGrow_SetListeners ) ; +} + +function FCKAutoGrow_CheckEditorStatus( sender, status ) +{ + if ( status == FCK_STATUS_COMPLETE ) + FCKAutoGrow_Check() ; +} + +FCK.Events.AttachEvent( 'OnStatusChange', FCKAutoGrow_CheckEditorStatus ) ;+ \ No newline at end of file diff --git a/editor/editor/plugins/bbcode/_sample/sample.config.js b/editor/editor/plugins/bbcode/_sample/sample.config.js @@ -0,0 +1,26 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Sample custom configuration settings used by the BBCode plugin. It simply + * loads the plugin. All the rest is done by the plugin itself. + */ + +// Add the BBCode plugin. +FCKConfig.Plugins.Add( 'bbcode' ) ; diff --git a/editor/editor/plugins/bbcode/_sample/sample.html b/editor/editor/plugins/bbcode/_sample/sample.html @@ -0,0 +1,67 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!-- + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Sample page. +--> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <title>FCKeditor - BBCode Sample</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <meta name="robots" content="noindex, nofollow" /> + <link href="../../../../_samples/sample.css" rel="stylesheet" type="text/css" /> + <script type="text/javascript" src="../../../../fckeditor.js"></script> +</head> +<body> + <h1> + FCKeditor - BBCode Sample</h1> + <p> + This is a sample of custom Data Processor implementation for (very) basic BBCode + syntax. Only <strong>[b]</strong>, <strong>[i]</strong>, <strong>[u]</strong> and + <strong>[url]</strong> may be used. It may be extended, but this is out of this + sample purpose. + </p> + <p> + Note that the input and output of the editor is not HTML, but BBCode + </p> + <hr /> + <form action="../../../../_samples/html/sampleposteddata.asp" method="post" target="_blank"> + <script type="text/javascript"> +<!-- +// Automatically calculates the editor base path based on the _samples directory. +// This is usefull only for these samples. A real application should use something like this: +// oFCKeditor.BasePath = '/fckeditor/' ; // '/fckeditor/' is the default value. +var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('editor')) ; + +var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ; +oFCKeditor.BasePath = sBasePath ; + +// Set the custom configurations file path (in this way the original file is mantained). +oFCKeditor.Config['CustomConfigurationsPath'] = sBasePath + 'editor/plugins/bbcode/_sample/sample.config.js' ; + +oFCKeditor.Value = 'This is some [b]sample text[/b]. You are using [url=http://www.fckeditor.net/]FCKeditor[/url].' ; +oFCKeditor.Create() ; +//--> + </script> + <br /> + <input type="submit" value="Submit" /> + </form> +</body> +</html> diff --git a/editor/editor/plugins/bbcode/fckplugin.js b/editor/editor/plugins/bbcode/fckplugin.js @@ -0,0 +1,123 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This is a sample implementation for a custom Data Processor for basic BBCode. + */ + +FCK.DataProcessor = +{ + /* + * Returns a string representing the HTML format of "data". The returned + * value will be loaded in the editor. + * The HTML must be from <html> to </html>, eventually including + * the DOCTYPE. + * @param {String} data The data to be converted in the + * DataProcessor specific format. + */ + ConvertToHtml : function( data ) + { + // Convert < and > to their HTML entities. + data = data.replace( /</g, '&lt;' ) ; + data = data.replace( />/g, '&gt;' ) ; + + // Convert line breaks to <br>. + data = data.replace( /(?:\r\n|\n|\r)/g, '<br>' ) ; + + // [url] + data = data.replace( /\[url\](.+?)\[\/url]/gi, '<a href="$1">$1</a>' ) ; + data = data.replace( /\[url\=([^\]]+)](.+?)\[\/url]/gi, '<a href="$1">$2</a>' ) ; + + // [b] + data = data.replace( /\[b\](.+?)\[\/b]/gi, '<b>$1</b>' ) ; + + // [i] + data = data.replace( /\[i\](.+?)\[\/i]/gi, '<i>$1</i>' ) ; + + // [u] + data = data.replace( /\[u\](.+?)\[\/u]/gi, '<u>$1</u>' ) ; + + return '<html><head><title></title></head><body>' + data + '</body></html>' ; + }, + + /* + * Converts a DOM (sub-)tree to a string in the data format. + * @param {Object} rootNode The node that contains the DOM tree to be + * converted to the data format. + * @param {Boolean} excludeRoot Indicates that the root node must not + * be included in the conversion, only its children. + * @param {Boolean} format Indicates that the data must be formatted + * for human reading. Not all Data Processors may provide it. + */ + ConvertToDataFormat : function( rootNode, excludeRoot, ignoreIfEmptyParagraph, format ) + { + var data = rootNode.innerHTML ; + + // Convert <br> to line breaks. + data = data.replace( /<br(?=[ \/>]).*?>/gi, '\r\n') ; + + // [url] + data = data.replace( /<a .*?href=(["'])(.+?)\1.*?>(.+?)<\/a>/gi, '[url=$2]$3[/url]') ; + + // [b] + data = data.replace( /<(?:b|strong)>/gi, '[b]') ; + data = data.replace( /<\/(?:b|strong)>/gi, '[/b]') ; + + // [i] + data = data.replace( /<(?:i|em)>/gi, '[i]') ; + data = data.replace( /<\/(?:i|em)>/gi, '[/i]') ; + + // [u] + data = data.replace( /<u>/gi, '[u]') ; + data = data.replace( /<\/u>/gi, '[/u]') ; + + // Remove remaining tags. + data = data.replace( /<[^>]+>/g, '') ; + + return data ; + }, + + /* + * Makes any necessary changes to a piece of HTML for insertion in the + * editor selection position. + * @param {String} html The HTML to be fixed. + */ + FixHtml : function( html ) + { + return html ; + } +} ; + +// This Data Processor doesn't support <p>, so let's use <br>. +FCKConfig.EnterMode = 'br' ; + +// To avoid pasting invalid markup (which is discarded in any case), let's +// force pasting to plain text. +FCKConfig.ForcePasteAsPlainText = true ; + +// Rename the "Source" buttom to "BBCode". +FCKToolbarItems.RegisterItem( 'Source', new FCKToolbarButton( 'Source', 'BBCode', null, FCK_TOOLBARITEM_ICONTEXT, true, true, 1 ) ) ; + +// Let's enforce the toolbar to the limits of this Data Processor. A custom +// toolbar set may be defined in the configuration file with more or less entries. +FCKConfig.ToolbarSets["Default"] = [ + ['Source'], + ['Bold','Italic','Underline','-','Link'], + ['About'] +] ;+ \ No newline at end of file diff --git a/editor/editor/plugins/dragresizetable/fckplugin.js b/editor/editor/plugins/dragresizetable/fckplugin.js @@ -0,0 +1,503 @@ +var FCKDragTableHandler = +{ + "_DragState" : 0, + "_LeftCell" : null, + "_RightCell" : null, + "_MouseMoveMode" : 0, // 0 - find candidate cells for resizing, 1 - drag to resize + "_ResizeBar" : null, + "_OriginalX" : null, + "_MinimumX" : null, + "_MaximumX" : null, + "_LastX" : null, + "_TableMap" : null, + "_IsInsideNode" : function( w, domNode, pos ) + { + var myCoords = FCKTools.GetWindowPosition( w, domNode ) ; + var xMin = myCoords.x ; + var yMin = myCoords.y ; + var xMax = parseInt( xMin, 10 ) + parseInt( domNode.offsetWidth, 10 ) ; + var yMax = parseInt( yMin, 10 ) + parseInt( domNode.offsetHeight, 10 ) ; + if ( pos.x >= xMin && pos.x <= xMax && pos.y >= yMin && pos.y <= yMax ) + return true; + return false; + }, + "_GetBorderCells" : function( w, tableNode, tableMap, mouse ) + { + // Enumerate all the cells in the table. + var cells = [] ; + for ( var i = 0 ; i < tableNode.rows.length ; i++ ) + { + var r = tableNode.rows[i] ; + for ( var j = 0 ; j < r.cells.length ; j++ ) + cells.push( r.cells[j] ) ; + } + + if ( cells.length < 1 ) + return null ; + + // Get the cells whose right or left border is nearest to the mouse cursor's x coordinate. + var minRxDist = null ; + var lxDist = null ; + var minYDist = null ; + var rbCell = null ; + var lbCell = null ; + for ( var i = 0 ; i < cells.length ; i++ ) + { + var pos = FCKTools.GetWindowPosition( w, cells[i] ) ; + var rightX = pos.x + parseInt( cells[i].clientWidth, 10 ) ; + var rxDist = mouse.x - rightX ; + var yDist = mouse.y - ( pos.y + ( cells[i].clientHeight / 2 ) ) ; + if ( minRxDist == null || + ( Math.abs( rxDist ) <= Math.abs( minRxDist ) && + ( minYDist == null || Math.abs( yDist ) <= Math.abs( minYDist ) ) ) ) + { + minRxDist = rxDist ; + minYDist = yDist ; + rbCell = cells[i] ; + } + } + /* + var rowNode = FCKTools.GetElementAscensor( rbCell, "tr" ) ; + var cellIndex = rbCell.cellIndex + 1 ; + if ( cellIndex >= rowNode.cells.length ) + return null ; + lbCell = rowNode.cells.item( cellIndex ) ; + */ + var rowIdx = rbCell.parentNode.rowIndex ; + var colIdx = FCKTableHandler._GetCellIndexSpan( tableMap, rowIdx, rbCell ) ; + var colSpan = isNaN( rbCell.colSpan ) ? 1 : rbCell.colSpan ; + lbCell = tableMap[rowIdx][colIdx + colSpan] ; + + if ( ! lbCell ) + return null ; + + // Abort if too far from the border. + lxDist = mouse.x - FCKTools.GetWindowPosition( w, lbCell ).x ; + if ( lxDist < 0 && minRxDist < 0 && minRxDist < -2 ) + return null ; + if ( lxDist > 0 && minRxDist > 0 && lxDist > 3 ) + return null ; + + return { "leftCell" : rbCell, "rightCell" : lbCell } ; + }, + "_GetResizeBarPosition" : function() + { + var row = FCKTools.GetElementAscensor( this._RightCell, "tr" ) ; + return FCKTableHandler._GetCellIndexSpan( this._TableMap, row.rowIndex, this._RightCell ) ; + }, + "_ResizeBarMouseDownListener" : function( evt ) + { + if ( ! evt ) + evt = window.event ; + if ( FCKDragTableHandler._LeftCell ) + FCKDragTableHandler._MouseMoveMode = 1 ; + if ( FCKBrowserInfo.IsIE ) + FCKDragTableHandler._ResizeBar.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 50 ; + else + FCKDragTableHandler._ResizeBar.style.opacity = 0.5 ; + FCKDragTableHandler._OriginalX = evt.clientX ; + + // Calculate maximum and minimum x-coordinate delta. + var borderIndex = FCKDragTableHandler._GetResizeBarPosition() ; + var offset = FCKTools.GetDocumentPosition( window, FCK.EditingArea.IFrame ) ; + var table = FCKTools.GetElementAscensor( FCKDragTableHandler._LeftCell, "table" ); + var minX = null ; + var maxX = null ; + for ( var r = 0 ; r < FCKDragTableHandler._TableMap.length ; r++ ) + { + var leftCell = FCKDragTableHandler._TableMap[r][borderIndex - 1] ; + var rightCell = FCKDragTableHandler._TableMap[r][borderIndex] ; + var leftPosition = FCKTools.GetWindowPosition( FCK.EditorWindow, leftCell ) ; + var rightPosition = FCKTools.GetWindowPosition( FCK.EditorWindow, rightCell ) ; + var leftPadding = FCKDragTableHandler._GetCellPadding( table, leftCell ) ; + var rightPadding = FCKDragTableHandler._GetCellPadding( table, rightCell ) ; + if ( minX == null || leftPosition.x + leftPadding > minX ) + minX = leftPosition.x + leftPadding ; + if ( maxX == null || rightPosition.x + rightCell.clientWidth - rightPadding < maxX ) + maxX = rightPosition.x + rightCell.clientWidth - rightPadding ; + } + + FCKDragTableHandler._MinimumX = minX + offset.x ; + FCKDragTableHandler._MaximumX = maxX + offset.x ; + FCKDragTableHandler._LastX = null ; + }, + "_ResizeBarMouseUpListener" : function( evt ) + { + if ( ! evt ) + evt = window.event ; + FCKDragTableHandler._MouseMoveMode = 0 ; + FCKDragTableHandler._HideResizeBar() ; + + if ( FCKDragTableHandler._LastX == null ) + return ; + + // Calculate the delta value. + var deltaX = FCKDragTableHandler._LastX - FCKDragTableHandler._OriginalX ; + + // Then, build an array of current column width values. + // This algorithm can be very slow if the cells have insane colSpan values. (e.g. colSpan=1000). + var table = FCKTools.GetElementAscensor( FCKDragTableHandler._LeftCell, "table" ) ; + var colArray = [] ; + var tableMap = FCKDragTableHandler._TableMap ; + for ( var i = 0 ; i < tableMap.length ; i++ ) + { + for ( var j = 0 ; j < tableMap[i].length ; j++ ) + { + var cell = tableMap[i][j] ; + var width = FCKDragTableHandler._GetCellWidth( table, cell ) ; + var colSpan = isNaN( cell.colSpan) ? 1 : cell.colSpan ; + if ( colArray.length <= j ) + colArray.push( { width : width / colSpan, colSpan : colSpan } ) ; + else + { + var guessItem = colArray[j] ; + if ( guessItem.colSpan > colSpan ) + { + guessItem.width = width / colSpan ; + guessItem.colSpan = colSpan ; + } + } + } + } + + // Find out the equivalent column index of the two cells selected for resizing. + colIndex = FCKDragTableHandler._GetResizeBarPosition() ; + + // Note that colIndex must be at least 1 here, so it's safe to subtract 1 from it. + colIndex-- ; + + // Modify the widths in the colArray according to the mouse coordinate delta value. + colArray[colIndex].width += deltaX ; + colArray[colIndex + 1].width -= deltaX ; + + // Clear all cell widths, delete all <col> elements from the table. + for ( var r = 0 ; r < table.rows.length ; r++ ) + { + var row = table.rows.item( r ) ; + for ( var c = 0 ; c < row.cells.length ; c++ ) + { + var cell = row.cells.item( c ) ; + cell.width = "" ; + cell.style.width = "" ; + } + } + var colElements = table.getElementsByTagName( "col" ) ; + for ( var i = colElements.length - 1 ; i >= 0 ; i-- ) + colElements[i].parentNode.removeChild( colElements[i] ) ; + + // Set new cell widths. + var processedCells = [] ; + for ( var i = 0 ; i < tableMap.length ; i++ ) + { + for ( var j = 0 ; j < tableMap[i].length ; j++ ) + { + var cell = tableMap[i][j] ; + if ( cell._Processed ) + continue ; + if ( tableMap[i][j-1] != cell ) + cell.width = colArray[j].width ; + else + cell.width = parseInt( cell.width, 10 ) + parseInt( colArray[j].width, 10 ) ; + if ( tableMap[i][j+1] != cell ) + { + processedCells.push( cell ) ; + cell._Processed = true ; + } + } + } + for ( var i = 0 ; i < processedCells.length ; i++ ) + { + if ( FCKBrowserInfo.IsIE ) + processedCells[i].removeAttribute( '_Processed' ) ; + else + delete processedCells[i]._Processed ; + } + + FCKDragTableHandler._LastX = null ; + }, + "_ResizeBarMouseMoveListener" : function( evt ) + { + if ( ! evt ) + evt = window.event ; + if ( FCKDragTableHandler._MouseMoveMode == 0 ) + return FCKDragTableHandler._MouseFindHandler( FCK, evt ) ; + else + return FCKDragTableHandler._MouseDragHandler( FCK, evt ) ; + }, + // Calculate the padding of a table cell. + // It returns the value of paddingLeft + paddingRight of a table cell. + // This function is used, in part, to calculate the width parameter that should be used for setting cell widths. + // The equation in question is clientWidth = paddingLeft + paddingRight + width. + // So that width = clientWidth - paddingLeft - paddingRight. + // The return value of this function must be pixel accurate acorss all supported browsers, so be careful if you need to modify it. + "_GetCellPadding" : function( table, cell ) + { + var attrGuess = parseInt( table.cellPadding, 10 ) * 2 ; + var cssGuess = null ; + if ( typeof( window.getComputedStyle ) == "function" ) + { + var styleObj = window.getComputedStyle( cell, null ) ; + cssGuess = parseInt( styleObj.getPropertyValue( "padding-left" ), 10 ) + + parseInt( styleObj.getPropertyValue( "padding-right" ), 10 ) ; + } + else + cssGuess = parseInt( cell.currentStyle.paddingLeft, 10 ) + parseInt (cell.currentStyle.paddingRight, 10 ) ; + + var cssRuntime = cell.style.padding ; + if ( isFinite( cssRuntime ) ) + cssGuess = parseInt( cssRuntime, 10 ) * 2 ; + else + { + cssRuntime = cell.style.paddingLeft ; + if ( isFinite( cssRuntime ) ) + cssGuess = parseInt( cssRuntime, 10 ) ; + cssRuntime = cell.style.paddingRight ; + if ( isFinite( cssRuntime ) ) + cssGuess += parseInt( cssRuntime, 10 ) ; + } + + attrGuess = parseInt( attrGuess, 10 ) ; + cssGuess = parseInt( cssGuess, 10 ) ; + if ( isNaN( attrGuess ) ) + attrGuess = 0 ; + if ( isNaN( cssGuess ) ) + cssGuess = 0 ; + return Math.max( attrGuess, cssGuess ) ; + }, + // Calculate the real width of the table cell. + // The real width of the table cell is the pixel width that you can set to the width attribute of the table cell and after + // that, the table cell should be of exactly the same width as before. + // The real width of a table cell can be calculated as: + // width = clientWidth - paddingLeft - paddingRight. + "_GetCellWidth" : function( table, cell ) + { + var clientWidth = cell.clientWidth ; + if ( isNaN( clientWidth ) ) + clientWidth = 0 ; + return clientWidth - this._GetCellPadding( table, cell ) ; + }, + "MouseMoveListener" : function( FCK, evt ) + { + if ( FCKDragTableHandler._MouseMoveMode == 0 ) + return FCKDragTableHandler._MouseFindHandler( FCK, evt ) ; + else + return FCKDragTableHandler._MouseDragHandler( FCK, evt ) ; + }, + "_MouseFindHandler" : function( FCK, evt ) + { + if ( FCK.MouseDownFlag ) + return ; + var node = evt.srcElement || evt.target ; + try + { + if ( ! node || node.nodeType != 1 ) + { + this._HideResizeBar() ; + return ; + } + } + catch ( e ) + { + this._HideResizeBar() ; + return ; + } + + // Since this function might be called from the editing area iframe or the outer fckeditor iframe, + // the mouse point coordinates from evt.clientX/Y can have different reference points. + // We need to resolve the mouse pointer position relative to the editing area iframe. + var mouseX = evt.clientX ; + var mouseY = evt.clientY ; + if ( node.ownerDocument == document ) + { + var offset = FCKTools.GetDocumentPosition( window, FCK.EditingArea.IFrame ) ; + mouseX -= offset.x ; + mouseY -= offset.y ; + } + + + if ( this._ResizeBar && this._LeftCell ) + { + var leftPos = FCKTools.GetWindowPosition( FCK.EditorWindow, this._LeftCell ) ; + var rightPos = FCKTools.GetWindowPosition( FCK.EditorWindow, this._RightCell ) ; + var rxDist = mouseX - ( leftPos.x + this._LeftCell.clientWidth ) ; + var lxDist = mouseX - rightPos.x ; + var inRangeFlag = false ; + if ( lxDist >= 0 && rxDist <= 0 ) + inRangeFlag = true ; + else if ( rxDist > 0 && lxDist <= 3 ) + inRangeFlag = true ; + else if ( lxDist < 0 && rxDist >= -2 ) + inRangeFlag = true ; + if ( inRangeFlag ) + { + this._ShowResizeBar( FCK.EditorWindow, + FCKTools.GetElementAscensor( this._LeftCell, "table" ), + { "x" : mouseX, "y" : mouseY } ) ; + return ; + } + } + + var tagName = node.tagName.toLowerCase() ; + if ( tagName != "table" && tagName != "td" && tagName != "th" ) + { + if ( this._LeftCell ) + this._LeftCell = this._RightCell = this._TableMap = null ; + this._HideResizeBar() ; + return ; + } + node = FCKTools.GetElementAscensor( node, "table" ) ; + var tableMap = FCKTableHandler._CreateTableMap( node ) ; + var cellTuple = this._GetBorderCells( FCK.EditorWindow, node, tableMap, { "x" : mouseX, "y" : mouseY } ) ; + + if ( cellTuple == null ) + { + if ( this._LeftCell ) + this._LeftCell = this._RightCell = this._TableMap = null ; + this._HideResizeBar() ; + } + else + { + this._LeftCell = cellTuple["leftCell"] ; + this._RightCell = cellTuple["rightCell"] ; + this._TableMap = tableMap ; + this._ShowResizeBar( FCK.EditorWindow, + FCKTools.GetElementAscensor( this._LeftCell, "table" ), + { "x" : mouseX, "y" : mouseY } ) ; + } + }, + "_MouseDragHandler" : function( FCK, evt ) + { + var mouse = { "x" : evt.clientX, "y" : evt.clientY } ; + + // Convert mouse coordinates in reference to the outer iframe. + var node = evt.srcElement || evt.target ; + if ( node.ownerDocument == FCK.EditorDocument ) + { + var offset = FCKTools.GetDocumentPosition( window, FCK.EditingArea.IFrame ) ; + mouse.x += offset.x ; + mouse.y += offset.y ; + } + + // Calculate the mouse position delta and see if we've gone out of range. + if ( mouse.x >= this._MaximumX - 5 ) + mouse.x = this._MaximumX - 5 ; + if ( mouse.x <= this._MinimumX + 5 ) + mouse.x = this._MinimumX + 5 ; + + var docX = mouse.x + FCKTools.GetScrollPosition( window ).X ; + this._ResizeBar.style.left = ( docX - this._ResizeBar.offsetWidth / 2 ) + "px" ; + this._LastX = mouse.x ; + }, + "_ShowResizeBar" : function( w, table, mouse ) + { + if ( this._ResizeBar == null ) + { + this._ResizeBar = document.createElement( "div" ) ; + var paddingBar = this._ResizeBar ; + var paddingStyles = { 'position' : 'absolute', 'cursor' : 'e-resize' } ; + if ( FCKBrowserInfo.IsIE ) + paddingStyles.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=10,enabled=true)" ; + else + paddingStyles.opacity = 0.10 ; + FCKDomTools.SetElementStyles( paddingBar, paddingStyles ) ; + document.body.appendChild( paddingBar ) ; + FCKTools.AddEventListener( paddingBar, "mousemove", this._ResizeBarMouseMoveListener ) ; + FCKTools.AddEventListener( paddingBar, "mousedown", this._ResizeBarMouseDownListener ) ; + FCKTools.AddEventListener( document, "mouseup", this._ResizeBarMouseUpListener ) ; + FCKTools.AddEventListener( FCK.EditorDocument, "mouseup", this._ResizeBarMouseUpListener ) ; + + // IE doesn't let the tranparent part of the padding block to receive mouse events unless there's something inside. + // So we need to create a spacer image to fill the block up. + var filler = document.createElement( "img" ) ; + filler.border = 0 ; + filler.src = FCKConfig.BasePath + "images/spacer.gif" ; + filler.style.position = "absolute" ; + paddingBar.appendChild( filler ) ; + + // Disable drag and drop, and selection for the filler image. + var disabledListener = function( evt ) + { + if ( ! evt ) + evt = window.event ; + if ( evt.preventDefault ) + evt.preventDefault() ; + else + evt.returnValue = false ; + } + FCKTools.AddEventListener( filler, "dragstart", disabledListener ) ; + FCKTools.AddEventListener( filler, "selectstart", disabledListener ) ; + } + + var paddingBar = this._ResizeBar ; + var offset = FCKTools.GetDocumentPosition( window, FCK.EditingArea.IFrame ) ; + var tablePos = FCKTools.GetWindowPosition( w, table ) ; + var barHeight = table.offsetHeight ; + var barTop = offset.y + tablePos.y ; + // Do not let the resize bar intrude into the toolbar area. + if ( tablePos.y < 0 ) + { + barHeight += tablePos.y ; + barTop -= tablePos.y ; + } + var bw = parseInt( table.border, 10 ) ; + if ( isNaN( bw ) ) + bw = 0 ; + var cs = parseInt( table.cellSpacing, 10 ) ; + if ( isNaN( cs ) ) + cs = 0 ; + var barWidth = Math.max( bw+100, cs+100 ) ; + var paddingStyles = + { + 'top' : barTop + 'px', + 'height' : barHeight + 'px', + 'width' : barWidth + 'px', + 'left' : ( offset.x + mouse.x + FCKTools.GetScrollPosition( w ).X - barWidth / 2 ) + 'px' + } ; + if ( FCKBrowserInfo.IsIE ) + paddingBar.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 10 ; + else + paddingStyles.opacity = 0.1 ; + + FCKDomTools.SetElementStyles( paddingBar, paddingStyles ) ; + var filler = paddingBar.getElementsByTagName( "img" )[0] ; + + FCKDomTools.SetElementStyles( filler, + { + width : paddingBar.offsetWidth + 'px', + height : barHeight + 'px' + } ) ; + + barWidth = Math.max( bw, cs, 3 ) ; + var visibleBar = null ; + if ( paddingBar.getElementsByTagName( "div" ).length < 1 ) + { + visibleBar = document.createElement( "div" ) ; + paddingBar.appendChild( visibleBar ) ; + } + else + visibleBar = paddingBar.getElementsByTagName( "div" )[0] ; + + FCKDomTools.SetElementStyles( visibleBar, + { + position : 'absolute', + backgroundColor : 'blue', + width : barWidth + 'px', + height : barHeight + 'px', + left : '50px', + top : '0px' + } ) ; + }, + "_HideResizeBar" : function() + { + if ( this._ResizeBar ) + // IE bug: display : none does not hide the resize bar for some reason. + // so set the position to somewhere invisible. + FCKDomTools.SetElementStyles( this._ResizeBar, + { + top : '-100000px', + left : '-100000px' + } ) ; + } +}; + +FCK.Events.AttachEvent( "OnMouseMove", FCKDragTableHandler.MouseMoveListener ) ; diff --git a/editor/editor/plugins/placeholder/fck_placeholder.html b/editor/editor/plugins/placeholder/fck_placeholder.html @@ -0,0 +1,100 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<!-- + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Placeholder Plugin. +--> +<html> + <head> + <title>Placeholder Properties</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <meta content="noindex, nofollow" name="robots"> + <script language="javascript"> + +var oEditor = window.parent.InnerDialogLoaded() ; +var FCKLang = oEditor.FCKLang ; +var FCKPlaceholders = oEditor.FCKPlaceholders ; + +window.onload = function () +{ + // First of all, translate the dialog box texts + oEditor.FCKLanguageManager.TranslatePage( document ) ; + + LoadSelected() ; + + // Show the "Ok" button. + window.parent.SetOkButton( true ) ; +} + +var eSelected = oEditor.FCKSelection.GetSelectedElement() ; + +function LoadSelected() +{ + if ( !eSelected ) + return ; + + if ( eSelected.tagName == 'SPAN' && eSelected._fckplaceholder ) + document.getElementById('txtName').value = eSelected._fckplaceholder ; + else + eSelected == null ; +} + +function Ok() +{ + var sValue = document.getElementById('txtName').value ; + + if ( eSelected && eSelected._fckplaceholder == sValue ) + return true ; + + if ( sValue.length == 0 ) + { + alert( FCKLang.PlaceholderErrNoName ) ; + return false ; + } + + if ( FCKPlaceholders.Exist( sValue ) ) + { + alert( FCKLang.PlaceholderErrNameInUse ) ; + return false ; + } + + FCKPlaceholders.Add( sValue ) ; + return true ; +} + + </script> + </head> + <body scroll="no" style="OVERFLOW: hidden"> + <table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0"> + <tr> + <td> + <table cellSpacing="0" cellPadding="0" align="center" border="0"> + <tr> + <td> + <span fckLang="PlaceholderDlgName">Placeholder Name</span><br> + <input id="txtName" type="text"> + </td> + </tr> + </table> + </td> + </tr> + </table> + </body> +</html>+ \ No newline at end of file diff --git a/editor/editor/plugins/placeholder/fckplugin.js b/editor/editor/plugins/placeholder/fckplugin.js @@ -0,0 +1,187 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Plugin to insert "Placeholders" in the editor. + */ + +// Register the related command. +FCKCommands.RegisterCommand( 'Placeholder', new FCKDialogCommand( 'Placeholder', FCKLang.PlaceholderDlgTitle, FCKPlugins.Items['placeholder'].Path + 'fck_placeholder.html', 340, 170 ) ) ; + +// Create the "Plaholder" toolbar button. +var oPlaceholderItem = new FCKToolbarButton( 'Placeholder', FCKLang.PlaceholderBtn ) ; +oPlaceholderItem.IconPath = FCKPlugins.Items['placeholder'].Path + 'placeholder.gif' ; + +FCKToolbarItems.RegisterItem( 'Placeholder', oPlaceholderItem ) ; + + +// The object used for all Placeholder operations. +var FCKPlaceholders = new Object() ; + +// Add a new placeholder at the actual selection. +FCKPlaceholders.Add = function( name ) +{ + var oSpan = FCK.InsertElement( 'span' ) ; + this.SetupSpan( oSpan, name ) ; +} + +FCKPlaceholders.SetupSpan = function( span, name ) +{ + span.innerHTML = '[[ ' + name + ' ]]' ; + + span.style.backgroundColor = '#ffff00' ; + span.style.color = '#000000' ; + + if ( FCKBrowserInfo.IsGecko ) + span.style.cursor = 'default' ; + + span._fckplaceholder = name ; + span.contentEditable = false ; + + // To avoid it to be resized. + span.onresizestart = function() + { + FCK.EditorWindow.event.returnValue = false ; + return false ; + } +} + +// On Gecko we must do this trick so the user select all the SPAN when clicking on it. +FCKPlaceholders._SetupClickListener = function() +{ + FCKPlaceholders._ClickListener = function( e ) + { + if ( e.target.tagName == 'SPAN' && e.target._fckplaceholder ) + FCKSelection.SelectNode( e.target ) ; + } + + FCK.EditorDocument.addEventListener( 'click', FCKPlaceholders._ClickListener, true ) ; +} + +// Open the Placeholder dialog on double click. +FCKPlaceholders.OnDoubleClick = function( span ) +{ + if ( span.tagName == 'SPAN' && span._fckplaceholder ) + FCKCommands.GetCommand( 'Placeholder' ).Execute() ; +} + +FCK.RegisterDoubleClickHandler( FCKPlaceholders.OnDoubleClick, 'SPAN' ) ; + +// Check if a Placholder name is already in use. +FCKPlaceholders.Exist = function( name ) +{ + var aSpans = FCK.EditorDocument.getElementsByTagName( 'SPAN' ) ; + + for ( var i = 0 ; i < aSpans.length ; i++ ) + { + if ( aSpans[i]._fckplaceholder == name ) + return true ; + } + + return false ; +} + +if ( FCKBrowserInfo.IsIE ) +{ + FCKPlaceholders.Redraw = function() + { + if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG ) + return ; + + var aPlaholders = FCK.EditorDocument.body.innerText.match( /\[\[[^\[\]]+\]\]/g ) ; + if ( !aPlaholders ) + return ; + + var oRange = FCK.EditorDocument.body.createTextRange() ; + + for ( var i = 0 ; i < aPlaholders.length ; i++ ) + { + if ( oRange.findText( aPlaholders[i] ) ) + { + var sName = aPlaholders[i].match( /\[\[\s*([^\]]*?)\s*\]\]/ )[1] ; + oRange.pasteHTML( '<span style="color: #000000; background-color: #ffff00" contenteditable="false" _fckplaceholder="' + sName + '">' + aPlaholders[i] + '</span>' ) ; + } + } + } +} +else +{ + FCKPlaceholders.Redraw = function() + { + if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG ) + return ; + + var oInteractor = FCK.EditorDocument.createTreeWalker( FCK.EditorDocument.body, NodeFilter.SHOW_TEXT, FCKPlaceholders._AcceptNode, true ) ; + + var aNodes = new Array() ; + + while ( ( oNode = oInteractor.nextNode() ) ) + { + aNodes[ aNodes.length ] = oNode ; + } + + for ( var n = 0 ; n < aNodes.length ; n++ ) + { + var aPieces = aNodes[n].nodeValue.split( /(\[\[[^\[\]]+\]\])/g ) ; + + for ( var i = 0 ; i < aPieces.length ; i++ ) + { + if ( aPieces[i].length > 0 ) + { + if ( aPieces[i].indexOf( '[[' ) == 0 ) + { + var sName = aPieces[i].match( /\[\[\s*([^\]]*?)\s*\]\]/ )[1] ; + + var oSpan = FCK.EditorDocument.createElement( 'span' ) ; + FCKPlaceholders.SetupSpan( oSpan, sName ) ; + + aNodes[n].parentNode.insertBefore( oSpan, aNodes[n] ) ; + } + else + aNodes[n].parentNode.insertBefore( FCK.EditorDocument.createTextNode( aPieces[i] ) , aNodes[n] ) ; + } + } + + aNodes[n].parentNode.removeChild( aNodes[n] ) ; + } + + FCKPlaceholders._SetupClickListener() ; + } + + FCKPlaceholders._AcceptNode = function( node ) + { + if ( /\[\[[^\[\]]+\]\]/.test( node.nodeValue ) ) + return NodeFilter.FILTER_ACCEPT ; + else + return NodeFilter.FILTER_SKIP ; + } +} + +FCK.Events.AttachEvent( 'OnAfterSetHTML', FCKPlaceholders.Redraw ) ; + +// We must process the SPAN tags to replace then with the real resulting value of the placeholder. +FCKXHtml.TagProcessors['span'] = function( node, htmlNode ) +{ + if ( htmlNode._fckplaceholder ) + node = FCKXHtml.XML.createTextNode( '[[' + htmlNode._fckplaceholder + ']]' ) ; + else + FCKXHtml._AppendChildNodes( node, htmlNode, false ) ; + + return node ; +}+ \ No newline at end of file diff --git a/editor/editor/plugins/placeholder/lang/de.js b/editor/editor/plugins/placeholder/lang/de.js @@ -0,0 +1,27 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Placholder German language file. + */ +FCKLang.PlaceholderBtn = 'Einfügen/editieren Platzhalter' ; +FCKLang.PlaceholderDlgTitle = 'Platzhalter Eigenschaften' ; +FCKLang.PlaceholderDlgName = 'Platzhalter Name' ; +FCKLang.PlaceholderErrNoName = 'Bitte den Namen des Platzhalters schreiben' ; +FCKLang.PlaceholderErrNameInUse = 'Der angegebene Namen ist schon in Gebrauch' ;+ \ No newline at end of file diff --git a/editor/editor/plugins/placeholder/lang/en.js b/editor/editor/plugins/placeholder/lang/en.js @@ -0,0 +1,27 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Placholder English language file. + */ +FCKLang.PlaceholderBtn = 'Insert/Edit Placeholder' ; +FCKLang.PlaceholderDlgTitle = 'Placeholder Properties' ; +FCKLang.PlaceholderDlgName = 'Placeholder Name' ; +FCKLang.PlaceholderErrNoName = 'Please type the placeholder name' ; +FCKLang.PlaceholderErrNameInUse = 'The specified name is already in use' ;+ \ No newline at end of file diff --git a/editor/editor/plugins/placeholder/lang/fr.js b/editor/editor/plugins/placeholder/lang/fr.js @@ -0,0 +1,27 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Placeholder French language file. + */ +FCKLang.PlaceholderBtn = "Insérer/Modifier l'Espace réservé" ; +FCKLang.PlaceholderDlgTitle = "Propriétés de l'Espace réservé" ; +FCKLang.PlaceholderDlgName = "Nom de l'Espace réservé" ; +FCKLang.PlaceholderErrNoName = "Veuillez saisir le nom de l'Espace réservé" ; +FCKLang.PlaceholderErrNameInUse = "Ce nom est déjà utilisé" ; diff --git a/editor/editor/plugins/placeholder/lang/it.js b/editor/editor/plugins/placeholder/lang/it.js @@ -0,0 +1,27 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Placholder Italian language file. + */ +FCKLang.PlaceholderBtn = 'Aggiungi/Modifica Placeholder' ; +FCKLang.PlaceholderDlgTitle = 'Proprietà del Placeholder' ; +FCKLang.PlaceholderDlgName = 'Nome del Placeholder' ; +FCKLang.PlaceholderErrNoName = 'Digitare il nome del placeholder' ; +FCKLang.PlaceholderErrNameInUse = 'Il nome inserito è già in uso' ; diff --git a/editor/editor/plugins/placeholder/lang/pl.js b/editor/editor/plugins/placeholder/lang/pl.js @@ -0,0 +1,27 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Placholder Polish language file. + */ +FCKLang.PlaceholderBtn = 'Wstaw/Edytuj nagłówek' ; +FCKLang.PlaceholderDlgTitle = 'WÅ‚aÅ›noÅ›ci nagłówka' ; +FCKLang.PlaceholderDlgName = 'Nazwa nagłówka' ; +FCKLang.PlaceholderErrNoName = 'ProszÄ™ wprowadzić nazwÄ™ nagłówka' ; +FCKLang.PlaceholderErrNameInUse = 'Podana nazwa jest już w użyciu' ;+ \ No newline at end of file diff --git a/editor/editor/plugins/placeholder/placeholder.gif b/editor/editor/plugins/placeholder/placeholder.gif Binary files differ. diff --git a/editor/editor/plugins/simplecommands/fckplugin.js b/editor/editor/plugins/simplecommands/fckplugin.js @@ -0,0 +1,29 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This plugin register Toolbar items for the combos modifying the style to + * not show the box. + */ + +FCKToolbarItems.RegisterItem( 'SourceSimple' , new FCKToolbarButton( 'Source', FCKLang.Source, null, FCK_TOOLBARITEM_ONLYICON, true, true, 1 ) ) ; +FCKToolbarItems.RegisterItem( 'StyleSimple' , new FCKToolbarStyleCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ; +FCKToolbarItems.RegisterItem( 'FontNameSimple' , new FCKToolbarFontsCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ; +FCKToolbarItems.RegisterItem( 'FontSizeSimple' , new FCKToolbarFontSizeCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ; +FCKToolbarItems.RegisterItem( 'FontFormatSimple', new FCKToolbarFontFormatCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ; diff --git a/editor/editor/plugins/tablecommands/fckplugin.js b/editor/editor/plugins/tablecommands/fckplugin.js @@ -0,0 +1,33 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This plugin register the required Toolbar items to be able to insert the + * table commands in the toolbar. + */ + +FCKToolbarItems.RegisterItem( 'TableInsertRowAfter' , new FCKToolbarButton( 'TableInsertRowAfter' , FCKLang.InsertRowAfter, null, null, null, true, 62 ) ) ; +FCKToolbarItems.RegisterItem( 'TableDeleteRows' , new FCKToolbarButton( 'TableDeleteRows' , FCKLang.DeleteRows, null, null, null, true, 63 ) ) ; +FCKToolbarItems.RegisterItem( 'TableInsertColumnAfter' , new FCKToolbarButton( 'TableInsertColumnAfter' , FCKLang.InsertColumnAfter, null, null, null, true, 64 ) ) ; +FCKToolbarItems.RegisterItem( 'TableDeleteColumns' , new FCKToolbarButton( 'TableDeleteColumns', FCKLang.DeleteColumns, null, null, null, true, 65 ) ) ; +FCKToolbarItems.RegisterItem( 'TableInsertCellAfter' , new FCKToolbarButton( 'TableInsertCellAfter' , FCKLang.InsertCellAfter, null, null, null, true, 58 ) ) ; +FCKToolbarItems.RegisterItem( 'TableDeleteCells' , new FCKToolbarButton( 'TableDeleteCells' , FCKLang.DeleteCells, null, null, null, true, 59 ) ) ; +FCKToolbarItems.RegisterItem( 'TableMergeCells' , new FCKToolbarButton( 'TableMergeCells' , FCKLang.MergeCells, null, null, null, true, 60 ) ) ; +FCKToolbarItems.RegisterItem( 'TableHorizontalSplitCell' , new FCKToolbarButton( 'TableHorizontalSplitCell' , FCKLang.SplitCell, null, null, null, true, 61 ) ) ; +FCKToolbarItems.RegisterItem( 'TableCellProp' , new FCKToolbarButton( 'TableCellProp' , FCKLang.CellProperties, null, null, null, true, 57 ) ) ; diff --git a/editor/editor/skins/_fckviewstrips.html b/editor/editor/skins/_fckviewstrips.html @@ -2,29 +2,24 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: _fckviewstrips.html - * Useful page that enumerates all icons in the skins strips. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) - * Alfonso Martinez de Lizarrondo - Uritec (alfonso at uritec dot net) + * + * Useful page that enumerates all icons in the skins strips. --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> @@ -68,9 +63,9 @@ function Img_OnLoad() { if ( iMaxHeight < this.height ) iMaxHeight = this.height ; - + iTotalStrips-- ; - + if ( iTotalStrips == 0 ) LoadIcons( iMaxHeight / 16 ) ; } @@ -82,10 +77,10 @@ function LoadIcons( total ) for ( var i = 0 ; i < total ; i++ ) { var eRow = xIconsTable.insertRow(-1) ; - + var eCell = eRow.insertCell(-1) ; eCell.innerHTML = i + 1 ; - + eCell = eRow.insertCell(-1) ; eCell.align = 'center' ; eCell.style.border = '#dcdcdc 1px solid' ; diff --git a/editor/editor/skins/default/fck_dialog.css b/editor/editor/skins/default/fck_dialog.css @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_dialog.css - * Styles used by the dialog boxes. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Styles used by the dialog boxes. */ body @@ -66,14 +62,16 @@ body, .BackColor .Button { - border-right: #737357 1px solid; - border-top: #737357 1px solid; - border-left: #737357 1px solid; + border: #737357 1px solid; color: #3b3b1f; - border-bottom: #737357 1px solid; background-color: #c7c78f; } +#btnOk +{ + width: 100px; +} + .DarkBackground { background-color: #d7d79f; @@ -106,10 +104,7 @@ body, .BackColor border-right: #d5d59d 1px solid; border-top: #d5d59d 1px solid; border-left: #d5d59d 1px solid; - padding-right: 5px; - padding-left: 5px; - padding-bottom: 3px; - padding-top: 3px; + padding: 3px 5px 3px 5px; color: #737357; } @@ -136,4 +131,9 @@ body, .BackColor background-color: #fffacd !important; cursor: pointer; cursor: hand; +} + +#tdBrowse +{ + vertical-align: bottom; } \ No newline at end of file diff --git a/editor/editor/skins/default/fck_editor.css b/editor/editor/skins/default/fck_editor.css @@ -1,28 +1,24 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fck_editor.css - * Styles used by the editor IFRAME and Toolbar. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Styles used by the editor IFRAME and Toolbar. */ /* @@ -31,8 +27,9 @@ body { - padding: 1px 1px 1px 1px; - margin: 0px 0px 0px 0px; + padding: 1px; + margin: 0; + background-color: #ffffff; } #xEditingArea @@ -71,6 +68,7 @@ body .TB_Toolbar { + height: 24px; display: inline-table; /* inline = Opera jumping buttons bug */ } @@ -334,7 +332,6 @@ body border: 1px solid #8f8f73; padding-left: 2px; padding-right: 2px; - background-color: #ffffff; } .SC_Panel, .SC_Panel TD diff --git a/editor/editor/skins/default/fck_strip.gif b/editor/editor/skins/default/fck_strip.gif Binary files differ. diff --git a/editor/editor/skins/office2003/fck_dialog.css b/editor/editor/skins/office2003/fck_dialog.css @@ -0,0 +1,140 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Styles used by the dialog boxes. + */ + +body +{ + margin: 0px; + padding: 10px; + background-color: #f7f8fd; +} + +body, td, input, select, textarea +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; +} + +body, .BackColor +{ + background-color: #f7f8fd; +} + +.PopupBody +{ + margin: 0px; + padding: 0px; +} + +.PopupTitle +{ + font-weight: bold; + font-size: 14pt; + color: #0e3460; + background-color: #8cb2fd; + padding: 3px 10px 3px 10px; +} + +.PopupButtons +{ + border-top: #466ca6 1px solid; + background-color: #8cb2fd; + padding: 7px 10px 7px 10px; +} + +.Button +{ + border: #1c3460 1px solid; + color: #000a28; + background-color: #7096d3; +} + +#btnOk +{ + width: 100px; +} + +.DarkBackground +{ + background-color: #d7d79f; +} + +.LightBackground +{ + background-color: #ffffbe; +} + +.PopupTitleBorder +{ + border-bottom: #d5d59d 1px solid; +} + +.PopupTabArea +{ + color: #0e3460; + background-color: #8cb2fd; +} + +.PopupTabEmptyArea +{ + padding-left: 10px ; + border-bottom: #466ca6 1px solid; +} + +.PopupTab, .PopupTabSelected +{ + border-right: #466ca6 1px solid; + border-top: #466ca6 1px solid; + border-left: #466ca6 1px solid; + padding: 3px 5px 3px 5px; + color: #0e3460; +} + +.PopupTab +{ + margin-top: 1px; + border-bottom: #466ca6 1px solid; + cursor: pointer; + cursor: hand; +} + +.PopupTabSelected +{ + font-weight:bold; + cursor: default; + padding-top: 4px; + border-bottom: #f7f8fd 1px solid; + background-color: #f7f8fd; +} + +.PopupSelectionBox +{ + border: #1e90ff 1px solid !important; + background-color: #add8e6 !important; + cursor: pointer; + cursor: hand; +} + +#tdBrowse +{ + vertical-align: bottom; +}+ \ No newline at end of file diff --git a/editor/editor/skins/office2003/fck_editor.css b/editor/editor/skins/office2003/fck_editor.css @@ -0,0 +1,476 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Styles used by the editor IFRAME and Toolbar. + */ + +/* + ### Basic Editor IFRAME Styles. +*/ + +body +{ + padding: 1px; + margin: 0; + background-color: #ffffff; +} + +#xEditingArea +{ + border: #696969 1px solid; +} + +.SourceField +{ + padding: 5px; + margin: 0px; + font-family: Monospace; +} + +/* + Toolbar +*/ + +.TB_ToolbarSet, .TB_Expand, .TB_Collapse +{ + cursor: default; + background-color: #f7f8fd; +} + +.TB_ToolbarSet +{ + border-top: #f7f8fd 1px outset; + border-bottom: #f7f8fd 1px outset; +} + +.TB_ToolbarSet TD +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif; +} + +.TB_Toolbar +{ + background-color: #d6dff7; + background-image: url(images/toolbar.bg.gif); + background-repeat: repeat-x; + display: inline-table; +} + +.TB_Separator +{ + width: 1px; + height: 16px; + margin: 2px; + background-color: #B2CBFF; +} + +.TB_Start +{ + background-image: url(images/toolbar.start.gif); + background-repeat: no-repeat; + background-position: center center; + margin: 0px; + width: 7px; + height: 24px; +} + +.TB_End +{ + background-image: url(images/toolbar.end.gif); + background-repeat: no-repeat; + background-position: center left; + height: 24px; + width: 4px; +} + +.TB_ExpandImg +{ + background-image: url(images/toolbar.expand.gif); + background-repeat: no-repeat; +} + +.TB_CollapseImg +{ + background-image: url(images/toolbar.collapse.gif); + background-repeat: no-repeat; +} + +.TB_SideBorder +{ + background-color: #696969; +} + +.TB_Expand, .TB_Collapse +{ + padding: 2px 2px 2px 2px; + border: #f7f8fd 1px outset; +} + +.TB_Collapse +{ + width: 5px; +} + +.TB_Break +{ + height: 24px; /* IE needs the height to be set, otherwise no break */ +} + +/* + Toolbar Button +*/ + +.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled +{ + margin: 1px; + height: 22px; /* The height is necessary, otherwise IE will not apply the alpha */ +} + +.TB_Button_On +{ + margin: 0px; + border: #316ac5 1px solid; + background-color: #c1d2ee; +} + +.TB_Button_On_Over, .TB_Button_Off_Over +{ + margin: 0px ; + border: #316ac5 1px solid; + background-color: #dff1ff; +} + +.TB_Button_Off +{ + filter: alpha(opacity=70); /* IE */ + opacity: 0.70; /* Safari, Opera and Mozilla */ +} + +.TB_Button_Disabled +{ + filter: gray() alpha(opacity=30); /* IE */ + opacity: 0.30; /* Safari, Opera and Mozilla */ +} + +.TB_Button_Padding +{ + visibility: hidden; + width: 3px; + height: 22px; +} + +.TB_Button_Image +{ + overflow: hidden; + width: 16px; + height: 16px; + margin: 3px; + background-repeat: no-repeat; +} + +.TB_Button_Image img +{ + position: relative; +} + +.TB_Button_Off .TB_Button_Text +{ + background-color: #d6dff7; /* Needed because of a bug on ClearType */ + background-image: url(images/toolbar.bg.gif); + background-repeat: repeat-x; +} + +.TB_ConnectionLine +{ + background-color: #f7f8fd; + height: 1px; + margin-left: 1px; /* ltr */ + margin-right: 1px; /* rtl */ +} + +.TB_Button_Off .TB_Text +{ + background-color: #d6dff7; /* Needed because of a bug on ClearType */ + background-image: url(images/toolbar.bg.gif); + background-repeat: repeat-x; +} + +.TB_Button_On_Over .TB_Text +{ + background-color: #dff1ff ; /* Needed because of a bug on ClearType */ +} + +/* + Menu +*/ + +.MN_Menu +{ + border: 1px solid #8f8f73; + padding: 2px; + background-color: #f7f8fd; + cursor: default; +} + +.MN_Menu, .MN_Menu .MN_Label +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif; +} + +.MN_Item_Padding +{ + visibility: hidden; + width: 3px; + height: 20px; +} + +.MN_Icon +{ + background-color: #d6dff7; + text-align: center; + height: 20px; +} + +.MN_Label +{ + padding-left: 3px; + padding-right: 3px; +} + +.MN_Separator +{ + height: 3px; +} + +.MN_Separator_Line +{ + border-top: #b9b99d 1px solid; +} + +.MN_Item .MN_Icon IMG +{ + filter: alpha(opacity=70); + opacity: 0.70; +} + +.MN_Item_Over +{ + color: #ffffff; + background-color: #7096FA; +} + +.MN_Item_Over .MN_Icon +{ + background-color: #466ca6; +} + +.MN_Item_Disabled IMG +{ + filter: gray() alpha(opacity=30); /* IE */ + opacity: 0.30; /* Safari, Opera and Mozilla */ +} + +.MN_Item_Disabled .MN_Label +{ + color: #b7b7b7; +} + +.MN_Arrow +{ + padding-right: 3px; + padding-left: 3px; +} + +.MN_ConnectionLine +{ + background-color: #f7f8fd; +} + +.Menu .TB_Button_On, .Menu .TB_Button_On_Over +{ + border: #8f8f73 1px solid; + background-color: #f7f8fd; +} + +/* + ### Panel Styles +*/ + +.FCK_Panel +{ + border: #8f8f73 1px solid; + padding: 2px; + background-color: #f7f8fd; +} + +.FCK_Panel, .FCK_Panel TD +{ + font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif; + font-size: 11px; +} + +/* + ### Special Combos +*/ + +.SC_Panel +{ + overflow: auto; + white-space: nowrap; + cursor: default; + border: 1px solid #8f8f73; + padding-left: 2px; + padding-right: 2px; +} + +.SC_Panel, .SC_Panel TD +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif; +} + +.SC_Item, .SC_ItemSelected +{ + margin-top: 2px; + margin-bottom: 2px; + background-position: left center; + padding-left: 11px; + padding-right: 3px; + padding-top: 2px; + padding-bottom: 2px; + text-overflow: ellipsis; + overflow: hidden; + background-repeat: no-repeat; + border: #dddddd 1px solid; +} + +.SC_Item *, .SC_ItemSelected * +{ + margin-top: 0px; + margin-bottom: 0px; +} + +.SC_ItemSelected +{ + border: #9a9afb 1px solid; + background-image: url(images/toolbar.arrowright.gif); +} + +.SC_ItemOver +{ + border: #316ac5 1px solid; +} + +.SC_Field +{ + margin-top: 2px ; + border: #b7b7a6 1px solid; + cursor: default; +} + +.SC_FieldCaption +{ + overflow: visible; + padding-right: 5px; + padding-left: 5px; + opacity: 0.75; /* Safari, Opera and Mozilla */ + filter: alpha(opacity=70); /* IE */ /* -moz-opacity: 0.75; Mozilla (Old) */ + height: 23px; + background-color: #d6dff7; /* Needed because of a bug on ClearType */ + background-image: url(images/toolbar.bg.gif); + background-repeat: repeat-x; +/* background-color: inherit; Maybe this is needed wait to check */ +} + +.SC_FieldLabel +{ + white-space: nowrap; + padding: 2px; + width: 100%; + cursor: default; + background-color: #ffffff; + text-overflow: ellipsis; + overflow: hidden; +} + +.SC_FieldButton +{ + background-position: center center; + background-image: url(images/toolbar.buttonarrow.gif); + border-left: #b7b7a6 1px solid; + width: 14px; + background-repeat: no-repeat; +} + +.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption +{ + opacity: 0.30; /* Safari, Opera and Mozilla */ + filter: gray() alpha(opacity=30); /* IE */ /* -moz-opacity: 0.30; Mozilla (Old) */ +} + +.SC_FieldOver +{ + border: #316ac5 1px solid; +} + +.SC_FieldOver .SC_FieldButton +{ + border-left: #316ac5 1px solid; +} + +/* + ### Color Selector Panel +*/ + +.ColorBoxBorder +{ + border: #808080 1px solid; + position: static; +} + +.ColorBox +{ + font-size: 1px; + width: 10px; + position: static; + height: 10px; +} + +.ColorDeselected, .ColorSelected +{ + cursor: default; +} + +.ColorDeselected +{ + border: #ffffff 1px solid; + padding: 2px; + float: left; +} + +.ColorSelected +{ + border: #330066 1px solid; + padding: 2px; + float: left; + background-color: #c4cdd6; +} diff --git a/editor/editor/skins/office2003/fck_strip.gif b/editor/editor/skins/office2003/fck_strip.gif Binary files differ. diff --git a/editor/editor/skins/office2003/images/toolbar.arrowright.gif b/editor/editor/skins/office2003/images/toolbar.arrowright.gif Binary files differ. diff --git a/editor/editor/skins/office2003/images/toolbar.bg.gif b/editor/editor/skins/office2003/images/toolbar.bg.gif Binary files differ. diff --git a/editor/editor/skins/office2003/images/toolbar.buttonarrow.gif b/editor/editor/skins/office2003/images/toolbar.buttonarrow.gif Binary files differ. diff --git a/editor/editor/skins/office2003/images/toolbar.collapse.gif b/editor/editor/skins/office2003/images/toolbar.collapse.gif Binary files differ. diff --git a/editor/editor/skins/office2003/images/toolbar.end.gif b/editor/editor/skins/office2003/images/toolbar.end.gif Binary files differ. diff --git a/editor/editor/skins/office2003/images/toolbar.expand.gif b/editor/editor/skins/office2003/images/toolbar.expand.gif Binary files differ. diff --git a/editor/editor/skins/office2003/images/toolbar.separator.gif b/editor/editor/skins/office2003/images/toolbar.separator.gif Binary files differ. diff --git a/editor/editor/skins/office2003/images/toolbar.start.gif b/editor/editor/skins/office2003/images/toolbar.start.gif Binary files differ. diff --git a/editor/editor/skins/silver/fck_dialog.css b/editor/editor/skins/silver/fck_dialog.css @@ -0,0 +1,143 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Styles used by the dialog boxes. + */ + +body +{ + margin: 0px; + padding: 10px; + background-color: #f7f7f7; +} + +body, td, input, select, textarea +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; +} + +body, .BackColor +{ + background-color: #f7f7f7; +} + +.PopupBody +{ + margin: 0px; + padding: 0px; +} + +.PopupTitle +{ + padding-right: 10px; + padding-left: 10px; + font-weight: bold; + font-size: 14pt; + padding-bottom: 3px; + color: #504845; + padding-top: 3px; + background-color: #dedede; +} + +.PopupButtons +{ + border-top: #cec6b5 1px solid; + background-color: #DEDEDE; + padding: 7px 10px 7px 10px; +} + +.Button +{ + border: #7a7261 1px solid; + color: #504845; + background-color: #cec6b5; +} + +#btnOk +{ + width: 100px; +} + +.DarkBackground +{ + background-color: #d7d79f; +} + +.LightBackground +{ + background-color: #ffffbe; +} + +.PopupTitleBorder +{ + border-bottom: #cec6b5 1px solid; +} + +.PopupTabArea +{ + color: #504845; + background-color: #DEDEDE; +} + +.PopupTabEmptyArea +{ + padding-left: 10px ; + border-bottom: #cec6b5 1px solid; +} + +.PopupTab, .PopupTabSelected +{ + border-right: #cec6b5 1px solid; + border-top: #cec6b5 1px solid; + border-left: #cec6b5 1px solid; + padding: 3px 5px 3px 5px; + color: #504845; +} + +.PopupTab +{ + margin-top: 1px; + border-bottom: #cec6b5 1px solid; + cursor: pointer; + cursor: hand; +} + +.PopupTabSelected +{ + font-weight:bold; + cursor: default; + padding-top: 4px; + border-bottom: #f1f1e3 1px solid; + background-color: #f7f7f7; +} + +.PopupSelectionBox +{ + border: #a9a9a9 1px solid !important; + background-color: #dcdcdc !important; + cursor: pointer; + cursor: hand; +} + +#tdBrowse +{ + vertical-align: bottom; +}+ \ No newline at end of file diff --git a/editor/editor/skins/silver/fck_editor.css b/editor/editor/skins/silver/fck_editor.css @@ -0,0 +1,473 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Styles used by the editor IFRAME and Toolbar. + */ + +/* + ### Basic Editor IFRAME Styles. +*/ + +body +{ + padding: 1px; + margin: 0; + background-color: #ffffff; +} + +#xEditingArea +{ + border: #696969 1px solid; +} + +.SourceField +{ + padding: 5px; + margin: 0px; + font-family: Monospace; +} + +/* + Toolbar +*/ + +.TB_ToolbarSet, .TB_Expand, .TB_Collapse +{ + cursor: default; + background-color: #f7f7f7; +} + +.TB_ToolbarSet +{ + padding: 1px; + border-top: #efefde 1px outset; + border-bottom: #efefde 1px outset; +} + +.TB_ToolbarSet TD +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif; +} + +.TB_Toolbar +{ + display: inline-table; +} + +.TB_Separator +{ + width: 1px; + height: 21px; + margin: 2px; + background-color: #C6C3BD; +} + +.TB_Start +{ + background-image: url(images/toolbar.start.gif); + margin-left: 2px; + margin-right: 2px; + width: 3px; + background-repeat: no-repeat; + height: 27px; + background-position: center center; +} + +.TB_End +{ + display: none; +} + +.TB_ExpandImg +{ + background-image: url(images/toolbar.expand.gif); + background-repeat: no-repeat; +} + +.TB_CollapseImg +{ + background-image: url(images/toolbar.collapse.gif); + background-repeat: no-repeat; +} + +.TB_SideBorder +{ + background-color: #696969; +} + +.TB_Expand, .TB_Collapse +{ + padding: 2px 2px 2px 2px; + border: #efefde 1px outset; +} + +.TB_Collapse +{ + border: #efefde 1px outset; + width: 5px; +} + +.TB_Break +{ + height: 27px; +} + +/* + Toolbar Button +*/ + +.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled +{ + padding: 1px ; + margin:1px; + height: 21px; +} + +.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled +{ + border: #cec6b5 1px solid; +} + +.TB_Button_On +{ + border-color: #316ac5; + background-color: #c1d2ee; +} + +.TB_Button_On_Over, .TB_Button_Off_Over +{ + border: #316ac5 1px solid; + background-color: #dff1ff; +} + +.TB_Button_Off +{ + background: #efefef url(images/toolbar.buttonbg.gif) repeat-x; +} + +.TB_Button_Off, .TB_Combo_Off +{ + opacity: 0.70; /* Safari, Opera and Mozilla */ + filter: alpha(opacity=70); /* IE */ + /* -moz-opacity: 0.70; Mozilla (Old) */ +} + +.TB_Button_Disabled +{ + opacity: 0.30; /* Safari, Opera and Mozilla */ + filter: gray() alpha(opacity=30); /* IE */ +} + +.TB_Button_Padding +{ + visibility: hidden; + width: 3px; + height: 21px; +} + +.TB_Button_Image +{ + overflow: hidden; + width: 16px; + height: 16px; + margin: 3px; + margin-top: 4px; + margin-bottom: 2px; + background-repeat: no-repeat; +} + +/* For composed button ( icon + text, icon + arrow ), we must compensate the table */ +.TB_Button_On TABLE .TB_Button_Image, +.TB_Button_Off TABLE .TB_Button_Image, +.TB_Button_On_Over TABLE .TB_Button_Image, +.TB_Button_Off_Over TABLE .TB_Button_Image, +.TB_Button_Disabled TABLE .TB_Button_Image +{ + margin-top: 3px; +} + +.TB_Button_Image img +{ + position: relative; +} + +.TB_ConnectionLine +{ + background-color: #ffffff; + height: 1px; + margin-left: 1px; /* ltr */ + margin-right: 1px; /* rtl */ +} + +/* + Menu +*/ + +.MN_Menu +{ + border: 1px solid #8f8f73; + padding: 2px; + background-color: #f7f7f7; + cursor: default; +} + +.MN_Menu, .MN_Menu .MN_Label +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif; +} + +.MN_Item_Padding +{ + visibility: hidden; + width: 3px; + height: 20px; +} + +.MN_Icon +{ + background-color: #dedede; + text-align: center; + height: 20px; +} + +.MN_Label +{ + padding-left: 3px; + padding-right: 3px; +} + +.MN_Separator +{ + height: 3px; +} + +.MN_Separator_Line +{ + border-top: #b9b99d 1px solid; +} + +.MN_Item .MN_Icon IMG +{ + filter: alpha(opacity=70); + opacity: 0.70; +} + +.MN_Item_Over +{ + color: #ffffff; + background-color: #8a857d; +} + +.MN_Item_Over .MN_Icon +{ + background-color: #6c6761; +} + +.MN_Item_Disabled IMG +{ + filter: gray() alpha(opacity=30); /* IE */ + opacity: 0.30; /* Safari, Opera and Mozilla */ +} + +.MN_Item_Disabled .MN_Label +{ + color: #b7b7b7; +} + +.MN_Arrow +{ + padding-right: 3px; + padding-left: 3px; +} + +.MN_ConnectionLine +{ + background-color: #ffffff; +} + +.Menu .TB_Button_On, .Menu .TB_Button_On_Over +{ + border: #8f8f73 1px solid; + background-color: #ffffff; +} + +/* + ### Panel Styles +*/ + +.FCK_Panel +{ + border: #8f8f73 1px solid; + padding: 2px; + background-color: #ffffff; +} + +.FCK_Panel, .FCK_Panel TD +{ + font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif; + font-size: 11px; +} + +/* + ### Special Combos +*/ + +.SC_Panel +{ + overflow: auto; + white-space: nowrap; + cursor: default; + border: 1px solid #8f8f73; + padding-left: 2px; + padding-right: 2px; +} + +.SC_Panel, .SC_Panel TD +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif; +} + +.SC_Item, .SC_ItemSelected +{ + margin-top: 2px; + margin-bottom: 2px; + background-position: left center; + padding-left: 11px; + padding-right: 3px; + padding-top: 2px; + padding-bottom: 2px; + text-overflow: ellipsis; + overflow: hidden; + background-repeat: no-repeat; + border: #dddddd 1px solid; +} + +.SC_Item *, .SC_ItemSelected * +{ + margin-top: 0px; + margin-bottom: 0px; +} + +.SC_ItemSelected +{ + border: #9a9afb 1px solid; + background-image: url(images/toolbar.arrowright.gif); +} + +.SC_ItemOver +{ + border: #316ac5 1px solid; +} + +.SC_Field +{ + margin-top:1px ; + border: #b7b7a6 1px solid; + cursor: default; +} + +.SC_FieldCaption +{ + padding-top: 1px ; + overflow: visible; + padding-right: 5px; + padding-left: 5px; + opacity: 0.75; /* Safari, Opera and Mozilla */ + filter: alpha(opacity=70); /* IE */ /* -moz-opacity: 0.75; Mozilla (Old) */ + height: 23px; + background-color: #f7f7f7; +} + +.SC_FieldLabel +{ + white-space: nowrap; + padding: 2px; + width: 100%; + cursor: default; + background-color: #ffffff; + text-overflow: ellipsis; + overflow: hidden; +} + +.SC_FieldButton +{ + background-position: center center; + background-image: url(images/toolbar.buttonarrow.gif); + border-left: #b7b7a6 1px solid; + width: 14px; + background-repeat: no-repeat; +} + +.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption +{ + opacity: 0.30; /* Safari, Opera and Mozilla */ + filter: gray() alpha(opacity=30); /* IE */ /* -moz-opacity: 0.30; Mozilla (Old) */ +} + +.SC_FieldOver +{ + border: #316ac5 1px solid; +} + +.SC_FieldOver .SC_FieldButton +{ + border-left: #316ac5 1px solid; +} + +/* + ### Color Selector Panel +*/ + +.ColorBoxBorder +{ + border: #808080 1px solid; + position: static; +} + +.ColorBox +{ + font-size: 1px; + width: 10px; + position: static; + height: 10px; +} + +.ColorDeselected, .ColorSelected +{ + cursor: default; +} + +.ColorDeselected +{ + border: #ffffff 1px solid; + padding: 2px; + float: left; +} + +.ColorSelected +{ + border: #316ac5 1px solid; + padding: 2px; + float: left; + background-color: #c1d2ee; +} diff --git a/editor/editor/skins/silver/fck_strip.gif b/editor/editor/skins/silver/fck_strip.gif Binary files differ. diff --git a/editor/editor/skins/silver/images/toolbar.arrowright.gif b/editor/editor/skins/silver/images/toolbar.arrowright.gif Binary files differ. diff --git a/editor/editor/skins/silver/images/toolbar.buttonarrow.gif b/editor/editor/skins/silver/images/toolbar.buttonarrow.gif Binary files differ. diff --git a/editor/editor/skins/silver/images/toolbar.buttonbg.gif b/editor/editor/skins/silver/images/toolbar.buttonbg.gif Binary files differ. diff --git a/editor/editor/skins/silver/images/toolbar.collapse.gif b/editor/editor/skins/silver/images/toolbar.collapse.gif Binary files differ. diff --git a/editor/editor/skins/silver/images/toolbar.end.gif b/editor/editor/skins/silver/images/toolbar.end.gif Binary files differ. diff --git a/editor/editor/skins/silver/images/toolbar.expand.gif b/editor/editor/skins/silver/images/toolbar.expand.gif Binary files differ. diff --git a/editor/editor/skins/silver/images/toolbar.separator.gif b/editor/editor/skins/silver/images/toolbar.separator.gif Binary files differ. diff --git a/editor/editor/skins/silver/images/toolbar.start.gif b/editor/editor/skins/silver/images/toolbar.start.gif Binary files differ. diff --git a/editor/fckconfig.js b/editor/fckconfig.js @@ -1,40 +1,33 @@ /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fckconfig.js - * Editor configuration settings. - * - * Follow this link for more information: - * http://wiki.fckeditor.net/Developer%27s_Guide/Configuration/Configurations_Settings - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * Editor configuration settings. + * + * Follow this link for more information: + * http://wiki.fckeditor.net/Developer%27s_Guide/Configuration/Configurations_Settings */ -// Disable the custom Enter Key Handler (this configuration will be removed in -// version 2.5). -FCKConfig.DisableEnterKeyHandler = false ; - FCKConfig.CustomConfigurationsPath = '' ; FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css' ; +FCKConfig.EditorAreaStyles = '' ; FCKConfig.ToolbarComboPreviewCSS = '' ; FCKConfig.DocType = '' ; @@ -43,6 +36,9 @@ FCKConfig.BaseHref = '' ; FCKConfig.FullPage = false ; +// The following option determines whether the "Show Blocks" feature is enabled or not at startup. +FCKConfig.StartupShowBlocks = false ; + FCKConfig.Debug = false ; FCKConfig.AllowQueryStringDebug = true ; @@ -52,6 +48,7 @@ FCKConfig.PreloadImages = [ FCKConfig.SkinPath + 'images/toolbar.start.gif', FCK FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ; // FCKConfig.Plugins.Add( 'autogrow' ) ; +// FCKConfig.Plugins.Add( 'dragresizetable' ); FCKConfig.AutoGrowMax = 400 ; // FCKConfig.ProtectedSource.Add( /<%[\s\S]*?%>/g ) ; // ASP style server side code <%...%> @@ -76,11 +73,11 @@ FCKConfig.FormatSource = true ; FCKConfig.FormatOutput = true ; FCKConfig.FormatIndentator = ' ' ; -FCKConfig.ForceStrongEm = true ; FCKConfig.GeckoUseSPAN = false ; FCKConfig.StartupFocus = false ; FCKConfig.ForcePasteAsPlainText = false ; FCKConfig.AutoDetectPasteFromWord = true ; // IE only. +FCKConfig.ShowDropDialog = true ; FCKConfig.ForceSimpleAmpersand = false ; FCKConfig.TabSpaces = 0 ; FCKConfig.ShowBorders = true ; @@ -90,6 +87,7 @@ FCKConfig.ToolbarCanCollapse = true ; FCKConfig.IgnoreEmptyParagraphValue = true ; FCKConfig.PreserveSessionOnFileBrowser = false ; FCKConfig.FloatingPanelsZIndex = 10000 ; +FCKConfig.HtmlEncodeOutput = false ; FCKConfig.TemplateReplaceAll = true ; FCKConfig.TemplateReplaceCheckbox = true ; @@ -103,14 +101,14 @@ FCKConfig.ToolbarSets["Default"] = [ ['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'], '/', ['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'], - ['OrderedList','UnorderedList','-','Outdent','Indent'], + ['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'], ['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'], ['Link','Unlink','Anchor'], ['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'], '/', ['Style','FontFormat','FontName','FontSize'], ['TextColor','BGColor'], - ['FitWindow','-','About'] + ['FitWindow','ShowBlocks','-','About'] // No comma for the last row. ] ; FCKConfig.ToolbarSets["Basic"] = [ @@ -123,9 +121,13 @@ FCKConfig.ShiftEnterMode = 'br' ; // p | div | br FCKConfig.Keystrokes = [ [ CTRL + 65 /*A*/, true ], [ CTRL + 67 /*C*/, true ], + [ CTRL + 70 /*F*/, true ], + [ CTRL + 83 /*S*/, true ], [ CTRL + 88 /*X*/, true ], [ CTRL + 86 /*V*/, 'Paste' ], [ SHIFT + 45 /*INS*/, 'Paste' ], + [ CTRL + 88 /*X*/, 'Cut' ], + [ SHIFT + 46 /*DEL*/, 'Cut' ], [ CTRL + 90 /*Z*/, 'Undo' ], [ CTRL + 89 /*Y*/, 'Redo' ], [ CTRL + SHIFT + 90 /*Z*/, 'Redo' ], @@ -133,25 +135,28 @@ FCKConfig.Keystrokes = [ [ CTRL + 66 /*B*/, 'Bold' ], [ CTRL + 73 /*I*/, 'Italic' ], [ CTRL + 85 /*U*/, 'Underline' ], - [ CTRL + ALT + 83 /*S*/, 'Save' ], + [ CTRL + SHIFT + 83 /*S*/, 'Save' ], [ CTRL + ALT + 13 /*ENTER*/, 'FitWindow' ], [ CTRL + 9 /*TAB*/, 'Source' ] ] ; FCKConfig.ContextMenu = ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','Table','Form'] ; +FCKConfig.BrowserContextMenuOnCtrl = false ; +FCKConfig.EnableMoreFontColors = true ; FCKConfig.FontColors = '000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,808080,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF' ; +FCKConfig.FontFormats = 'p;h1;h2;h3;h4;h5;h6;pre;address;div' ; FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ; -FCKConfig.FontSizes = '1/xx-small;2/x-small;3/small;4/medium;5/large;6/x-large;7/xx-large' ; -FCKConfig.FontFormats = 'p;div;pre;address;h1;h2;h3;h4;h5;h6' ; +FCKConfig.FontSizes = 'smaller;larger;xx-small;x-small;small;medium;large;x-large;xx-large' ; FCKConfig.StylesXmlPath = FCKConfig.EditorPath + 'fckstyles.xml' ; FCKConfig.TemplatesXmlPath = FCKConfig.EditorPath + 'fcktemplates.xml' ; FCKConfig.SpellChecker = 'ieSpell' ; // 'ieSpell' | 'SpellerPages' -FCKConfig.IeSpellDownloadUrl = 'http://wcarchive.cdrom.com/pub/simtelnet/handheld/webbrow1/ieSpellSetup240428.exe' ; +FCKConfig.IeSpellDownloadUrl = 'http://www.iespell.com/download.php' ; FCKConfig.SpellerPagesServerScript = 'server-scripts/spellchecker.php' ; // Available extension: .php .cfm .pl +FCKConfig.FirefoxSpellChecker = false ; FCKConfig.MaxUndoLevels = 15 ; @@ -172,51 +177,126 @@ FCKConfig.ProtectedTags = '' ; FCKConfig.BodyId = '' ; FCKConfig.BodyClass = '' ; +FCKConfig.DefaultStyleLabel = '' ; +FCKConfig.DefaultFontFormatLabel = '' ; +FCKConfig.DefaultFontLabel = '' ; +FCKConfig.DefaultFontSizeLabel = '' ; + +FCKConfig.DefaultLinkTarget = '' ; + // The option switches between trying to keep the html structure or do the changes so the content looks like it was in Word FCKConfig.CleanWordKeepsStructure = false ; -// The following value defines which File Browser connector and Quick Upload +// Only inline elements are valid. +FCKConfig.RemoveFormatTags = 'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var' ; + +FCKConfig.CustomStyles = +{ + 'Red Title' : { Element : 'h3', Styles : { 'color' : 'Red' } } +}; + +// Do not add, rename or remove styles here. Only apply definition changes. +FCKConfig.CoreStyles = +{ + // Basic Inline Styles. + 'Bold' : { Element : 'b', Overrides : 'strong' }, + 'Italic' : { Element : 'i', Overrides : 'em' }, + 'Underline' : { Element : 'u' }, + 'StrikeThrough' : { Element : 'strike' }, + 'Subscript' : { Element : 'sub' }, + 'Superscript' : { Element : 'sup' }, + + // Basic Block Styles (Font Format Combo). + 'p' : { Element : 'p' }, + 'div' : { Element : 'div' }, + 'pre' : { Element : 'pre' }, + 'address' : { Element : 'address' }, + 'h1' : { Element : 'h1' }, + 'h2' : { Element : 'h2' }, + 'h3' : { Element : 'h3' }, + 'h4' : { Element : 'h4' }, + 'h5' : { Element : 'h5' }, + 'h6' : { Element : 'h6' }, + + // Other formatting features. + 'FontFace' : + { + Element : 'span', + Styles : { 'font-family' : '#("Font")' }, + Overrides : [ { Element : 'font', Attributes : { 'face' : null } } ] + }, + + 'Size' : + { + Element : 'span', + Styles : { 'font-size' : '#("Size","fontSize")' }, + Overrides : [ { Element : 'font', Attributes : { 'size' : null } } ] + }, + + 'Color' : + { + Element : 'span', + Styles : { 'color' : '#("Color","color")' }, + Overrides : [ { Element : 'font', Attributes : { 'color' : null } } ] + }, + + 'BackColor' : { Element : 'span', Styles : { 'background-color' : '#("Color","color")' } } +}; + +// The distance of an indentation step. +FCKConfig.IndentLength = 40 ; +FCKConfig.IndentUnit = 'px' ; + +// Alternatively, FCKeditor allows the use of CSS classes for block indentation. +// This overrides the IndentLength/IndentUnit settings. +FCKConfig.IndentClasses = [] ; + +// [ Left, Center, Right, Justified ] +FCKConfig.JustifyClasses = [] ; + +// The following value defines which File Browser connector and Quick Upload // "uploader" to use. It is valid for the default implementaion and it is here -// just to make this configuration file cleaner. -// It is not possible to change this value using an external file or even -// inline when creating the editor instance. In that cases you must set the +// just to make this configuration file cleaner. +// It is not possible to change this value using an external file or even +// inline when creating the editor instance. In that cases you must set the // values of LinkBrowserURL, ImageBrowserURL and so on. // Custom implementations should just ignore it. -var _FileBrowserLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py -var _QuickUploadLanguage = 'asp' ; // asp | aspx | cfm | lasso | php +var _FileBrowserLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py +var _QuickUploadLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py -// Don't care about the following line. It just calculates the correct connector +// Don't care about the following two lines. It just calculates the correct connector // extension to use for the default File Browser (Perl uses "cgi"). var _FileBrowserExtension = _FileBrowserLanguage == 'perl' ? 'cgi' : _FileBrowserLanguage ; +var _QuickUploadExtension = _QuickUploadLanguage == 'perl' ? 'cgi' : _QuickUploadLanguage ; FCKConfig.LinkBrowser = true ; -FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ; +FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=../../connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ; FCKConfig.LinkBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ; // 70% FCKConfig.LinkBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; // 70% FCKConfig.ImageBrowser = true ; -FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ; +FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=../../connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ; FCKConfig.ImageBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ; // 70% ; FCKConfig.ImageBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; // 70% ; FCKConfig.FlashBrowser = true ; -FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ; +FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=../../connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ; FCKConfig.FlashBrowserWindowWidth = FCKConfig.ScreenWidth * 0.7 ; //70% ; FCKConfig.FlashBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ; //70% ; FCKConfig.LinkUpload = true ; -FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage ; -FCKConfig.LinkUploadAllowedExtensions = "" ; // empty for all -FCKConfig.LinkUploadDeniedExtensions = ".(html|htm|php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi|htaccess|asis)$" ; // empty for no one +FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension ; +FCKConfig.LinkUploadAllowedExtensions = ".(7z|aiff|asf|avi|bmp|csv|doc|fla|flv|gif|gz|gzip|jpeg|jpg|mid|mov|mp3|mp4|mpc|mpeg|mpg|ods|odt|pdf|png|ppt|pxd|qt|ram|rar|rm|rmi|rmvb|rtf|sdc|sitd|swf|sxc|sxw|tar|tgz|tif|tiff|txt|vsd|wav|wma|wmv|xls|xml|zip)$" ; // empty for all +FCKConfig.LinkUploadDeniedExtensions = "" ; // empty for no one FCKConfig.ImageUpload = true ; -FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage + '?Type=Image' ; +FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension + '?Type=Image' ; FCKConfig.ImageUploadAllowedExtensions = ".(jpg|gif|jpeg|png|bmp)$" ; // empty for all FCKConfig.ImageUploadDeniedExtensions = "" ; // empty for no one FCKConfig.FlashUpload = true ; -FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage + '?Type=Flash' ; -FCKConfig.FlashUploadAllowedExtensions = ".(swf|fla)$" ; // empty for all +FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension + '?Type=Flash' ; +FCKConfig.FlashUploadAllowedExtensions = ".(swf|flv)$" ; // empty for all FCKConfig.FlashUploadDeniedExtensions = "" ; // empty for no one FCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/' ; @@ -224,3 +304,4 @@ FCKConfig.SmileyImages = ['regular_smile.gif','sad_smile.gif','wink_smile.gif',' FCKConfig.SmileyColumns = 8 ; FCKConfig.SmileyWindowWidth = 320 ; FCKConfig.SmileyWindowHeight = 240 ; + diff --git a/editor/fckeditor.js b/editor/fckeditor.js @@ -0,0 +1,212 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2007 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This is the integration file for JavaScript. + * + * It defines the FCKeditor class that can be used to create editor + * instances in a HTML page in the client side. For server side + * operations, use the specific integration system. + */ + +// FCKeditor Class +var FCKeditor = function( instanceName, width, height, toolbarSet, value ) +{ + // Properties + this.InstanceName = instanceName ; + this.Width = width || '100%' ; + this.Height = height || '200' ; + this.ToolbarSet = toolbarSet || 'Default' ; + this.Value = value || '' ; + this.BasePath = '/fckeditor/' ; + this.CheckBrowser = true ; + this.DisplayErrors = true ; + + this.Config = new Object() ; + + // Events + this.OnError = null ; // function( source, errorNumber, errorDescription ) +} + +FCKeditor.prototype.Version = '2.5' ; +FCKeditor.prototype.VersionBuild = '17352' ; + +FCKeditor.prototype.Create = function() +{ + document.write( this.CreateHtml() ) ; +} + +FCKeditor.prototype.CreateHtml = function() +{ + // Check for errors + if ( !this.InstanceName || this.InstanceName.length == 0 ) + { + this._ThrowError( 701, 'You must specify an instance name.' ) ; + return '' ; + } + + var sHtml = '<div>' ; + + if ( !this.CheckBrowser || this._IsCompatibleBrowser() ) + { + sHtml += '<input type="hidden" id="' + this.InstanceName + '" name="' + this.InstanceName + '" value="' + this._HTMLEncode( this.Value ) + '" style="display:none" />' ; + sHtml += this._GetConfigHtml() ; + sHtml += this._GetIFrameHtml() ; + } + else + { + var sWidth = this.Width.toString().indexOf('%') > 0 ? this.Width : this.Width + 'px' ; + var sHeight = this.Height.toString().indexOf('%') > 0 ? this.Height : this.Height + 'px' ; + sHtml += '<textarea name="' + this.InstanceName + '" rows="4" cols="40" style="width:' + sWidth + ';height:' + sHeight + '">' + this._HTMLEncode( this.Value ) + '<\/textarea>' ; + } + + sHtml += '</div>' ; + + return sHtml ; +} + +FCKeditor.prototype.ReplaceTextarea = function() +{ + if ( !this.CheckBrowser || this._IsCompatibleBrowser() ) + { + // We must check the elements firstly using the Id and then the name. + var oTextarea = document.getElementById( this.InstanceName ) ; + var colElementsByName = document.getElementsByName( this.InstanceName ) ; + var i = 0; + while ( oTextarea || i == 0 ) + { + if ( oTextarea && oTextarea.tagName.toLowerCase() == 'textarea' ) + break ; + oTextarea = colElementsByName[i++] ; + } + + if ( !oTextarea ) + { + alert( 'Error: The TEXTAREA with id or name set to "' + this.InstanceName + '" was not found' ) ; + return ; + } + + oTextarea.style.display = 'none' ; + this._InsertHtmlBefore( this._GetConfigHtml(), oTextarea ) ; + this._InsertHtmlBefore( this._GetIFrameHtml(), oTextarea ) ; + } +} + +FCKeditor.prototype._InsertHtmlBefore = function( html, element ) +{ + if ( element.insertAdjacentHTML ) // IE + element.insertAdjacentHTML( 'beforeBegin', html ) ; + else // Gecko + { + var oRange = document.createRange() ; + oRange.setStartBefore( element ) ; + var oFragment = oRange.createContextualFragment( html ); + element.parentNode.insertBefore( oFragment, element ) ; + } +} + +FCKeditor.prototype._GetConfigHtml = function() +{ + var sConfig = '' ; + for ( var o in this.Config ) + { + if ( sConfig.length > 0 ) sConfig += '&amp;' ; + sConfig += encodeURIComponent( o ) + '=' + encodeURIComponent( this.Config[o] ) ; + } + + return '<input type="hidden" id="' + this.InstanceName + '___Config" value="' + sConfig + '" style="display:none" />' ; +} + +FCKeditor.prototype._GetIFrameHtml = function() +{ + var sFile = 'fckeditor.html' ; + + try + { + if ( (/fcksource=true/i).test( window.top.location.search ) ) + sFile = 'fckeditor.original.html' ; + } + catch (e) { /* Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error). */ } + + var sLink = this.BasePath + 'editor/' + sFile + '?InstanceName=' + encodeURIComponent( this.InstanceName ) ; + if (this.ToolbarSet) sLink += '&amp;Toolbar=' + this.ToolbarSet ; + + return '<iframe id="' + this.InstanceName + '___Frame" src="' + sLink + '" width="' + this.Width + '" height="' + this.Height + '" frameborder="0" scrolling="no"></iframe>' ; +} + +FCKeditor.prototype._IsCompatibleBrowser = function() +{ + return FCKeditor_IsCompatibleBrowser() ; +} + +FCKeditor.prototype._ThrowError = function( errorNumber, errorDescription ) +{ + this.ErrorNumber = errorNumber ; + this.ErrorDescription = errorDescription ; + + if ( this.DisplayErrors ) + { + document.write( '<div style="COLOR: #ff0000">' ) ; + document.write( '[ FCKeditor Error ' + this.ErrorNumber + ': ' + this.ErrorDescription + ' ]' ) ; + document.write( '</div>' ) ; + } + + if ( typeof( this.OnError ) == 'function' ) + this.OnError( this, errorNumber, errorDescription ) ; +} + +FCKeditor.prototype._HTMLEncode = function( text ) +{ + if ( typeof( text ) != "string" ) + text = text.toString() ; + + text = text.replace( + /&/g, "&amp;").replace( + /"/g, "&quot;").replace( + /</g, "&lt;").replace( + />/g, "&gt;") ; + + return text ; +} + +function FCKeditor_IsCompatibleBrowser() +{ + var sAgent = navigator.userAgent.toLowerCase() ; + + // Internet Explorer 5.5+ + if ( /*@cc_on!@*/false && sAgent.indexOf("mac") == -1 ) + { + var sBrowserVersion = navigator.appVersion.match(/MSIE (.\..)/)[1] ; + return ( sBrowserVersion >= 5.5 ) ; + } + + // Gecko (Opera 9 tries to behave like Gecko at this point). + if ( navigator.product == "Gecko" && navigator.productSub >= 20030210 && !( typeof(opera) == 'object' && opera.postError ) ) + return true ; + + // Opera 9.50+ + if ( window.opera && window.opera.version && parseFloat( window.opera.version() ) >= 9.5 ) + return true ; + + // Safari 3+ + if ( sAgent.indexOf( ' applewebkit/' ) != -1 ) + return ( sAgent.match( / applewebkit\/(\d+)/ )[1] >= 522 ) ; // Build must be at least 522 (v3) + + return false ; +} diff --git a/editor/fckeditor.php b/editor/fckeditor.php @@ -1,37 +1,71 @@ -<?php +<?php /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fckeditor.php - * This is the integration file for PHP (All versions). - * - * It loads the correct integration file based on the PHP version (avoinding - * strict error messages with PHP 5). - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * This is the integration file for PHP (All versions). + * + * It loads the correct integration file based on the PHP version (avoiding + * strict error messages with PHP 5). */ -if ( version_compare( phpversion(), '5', '<' ) ) +function FCKeditor_IsCompatibleBrowser() +{ + global $HTTP_USER_AGENT ; + + if ( !isset( $_SERVER ) ) { + global $HTTP_SERVER_VARS ; + $_SERVER = $HTTP_SERVER_VARS ; + } + + if ( isset( $HTTP_USER_AGENT ) ) + $sAgent = $HTTP_USER_AGENT ; + else + $sAgent = $_SERVER['HTTP_USER_AGENT'] ; + + if ( strpos($sAgent, 'MSIE') !== false && strpos($sAgent, 'mac') === false && strpos($sAgent, 'Opera') === false ) + { + $iVersion = (float)substr($sAgent, strpos($sAgent, 'MSIE') + 5, 3) ; + return ($iVersion >= 5.5) ; + } + else if ( strpos($sAgent, 'Gecko/') !== false ) + { + $iVersion = (int)substr($sAgent, strpos($sAgent, 'Gecko/') + 6, 8) ; + return ($iVersion >= 20030210) ; + } + else if ( strpos($sAgent, 'Opera/') !== false ) + { + $fVersion = (float)substr($sAgent, strpos($sAgent, 'Opera/') + 6, 4) ; + return ($fVersion >= 9.5) ; + } + else if ( preg_match( "|AppleWebKit/(\d+)|i", $sAgent, $matches ) ) + { + $iVersion = $matches[1] ; + return ( $matches[1] >= 522 ) ; + } + else + return false ; +} + +if ( !function_exists('version_compare') || version_compare( phpversion(), '5', '<' ) ) include_once( 'fckeditor_php4.php' ) ; else include_once( 'fckeditor_php5.php' ) ; - -?>- \ No newline at end of file + +?> diff --git a/editor/fckeditor_php4.php b/editor/fckeditor_php4.php @@ -1,32 +1,28 @@ -<?php +<?php /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fckeditor_php4.php - * This is the integration file for PHP 4. - * - * It defines the FCKeditor class that can be used to create editor - * instances in PHP pages on server side. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * This is the integration file for PHP 4. + * + * It defines the FCKeditor class that can be used to create editor + * instances in PHP pages on server side. */ class FCKeditor @@ -38,8 +34,8 @@ class FCKeditor var $ToolbarSet ; var $Value ; var $Config ; - - // PHP 4 Contructor + + // PHP 4 Constructor function FCKeditor( $instanceName ) { $this->InstanceName = $instanceName ; @@ -56,13 +52,18 @@ class FCKeditor { echo $this->CreateHtml() ; } - + function CreateHtml() { $HtmlValue = htmlspecialchars( $this->Value ) ; $Html = '<div>' ; + if ( !isset( $_GET ) ) { + global $HTTP_GET_VARS ; + $_GET = $HTTP_GET_VARS ; + } + if ( $this->IsCompatible() ) { if ( isset( $_GET['fcksource'] ) && $_GET['fcksource'] == "true" ) @@ -71,7 +72,7 @@ class FCKeditor $File = 'fckeditor.html' ; $Link = "{$this->BasePath}editor/{$File}?InstanceName={$this->InstanceName}" ; - + if ( $this->ToolbarSet != '' ) $Link .= "&amp;Toolbar={$this->ToolbarSet}" ; @@ -100,31 +101,13 @@ class FCKeditor } $Html .= '</div>' ; - + return $Html ; } function IsCompatible() { - global $HTTP_USER_AGENT ; - - if ( isset( $HTTP_USER_AGENT ) ) - $sAgent = $HTTP_USER_AGENT ; - else - $sAgent = $_SERVER['HTTP_USER_AGENT'] ; - - if ( strpos($sAgent, 'MSIE') !== false && strpos($sAgent, 'mac') === false && strpos($sAgent, 'Opera') === false ) - { - $iVersion = (float)substr($sAgent, strpos($sAgent, 'MSIE') + 5, 3) ; - return ($iVersion >= 5.5) ; - } - else if ( strpos($sAgent, 'Gecko/') !== false ) - { - $iVersion = (int)substr($sAgent, strpos($sAgent, 'Gecko/') + 6, 8) ; - return ($iVersion >= 20030210) ; - } - else - return false ; + return FCKeditor_IsCompatibleBrowser() ; } function GetConfigFieldString() @@ -138,7 +121,7 @@ class FCKeditor $sParams .= '&amp;' ; else $bFirst = false ; - + if ( $sValue === true ) $sParams .= $this->EncodeConfig( $sKey ) . '=true' ; else if ( $sValue === false ) @@ -146,19 +129,19 @@ class FCKeditor else $sParams .= $this->EncodeConfig( $sKey ) . '=' . $this->EncodeConfig( $sValue ) ; } - + return $sParams ; } function EncodeConfig( $valueToEncode ) { - $chars = array( - '&' => '%26', - '=' => '%3D', + $chars = array( + '&' => '%26', + '=' => '%3D', '"' => '%22' ) ; return strtr( $valueToEncode, $chars ) ; } } -?>- \ No newline at end of file +?> diff --git a/editor/fckeditor_php5.php b/editor/fckeditor_php5.php @@ -1,32 +1,28 @@ -<?php +<?php /* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fckeditor_php5.php - * This is the integration file for PHP 5. - * - * It defines the FCKeditor class that can be used to create editor - * instances in PHP pages on server side. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * This is the integration file for PHP 5. + * + * It defines the FCKeditor class that can be used to create editor + * instances in PHP pages on server side. */ class FCKeditor @@ -56,13 +52,13 @@ class FCKeditor { echo $this->CreateHtml() ; } - + function CreateHtml() { $HtmlValue = htmlspecialchars( $this->Value ) ; $Html = '<div>' ; - + if ( $this->IsCompatible() ) { if ( isset( $_GET['fcksource'] ) && $_GET['fcksource'] == "true" ) @@ -71,7 +67,7 @@ class FCKeditor $File = 'fckeditor.html' ; $Link = "{$this->BasePath}editor/{$File}?InstanceName={$this->InstanceName}" ; - + if ( $this->ToolbarSet != '' ) $Link .= "&amp;Toolbar={$this->ToolbarSet}" ; @@ -100,31 +96,13 @@ class FCKeditor } $Html .= '</div>' ; - + return $Html ; } function IsCompatible() { - global $HTTP_USER_AGENT ; - - if ( isset( $HTTP_USER_AGENT ) ) - $sAgent = $HTTP_USER_AGENT ; - else - $sAgent = $_SERVER['HTTP_USER_AGENT'] ; - - if ( strpos($sAgent, 'MSIE') !== false && strpos($sAgent, 'mac') === false && strpos($sAgent, 'Opera') === false ) - { - $iVersion = (float)substr($sAgent, strpos($sAgent, 'MSIE') + 5, 3) ; - return ($iVersion >= 5.5) ; - } - else if ( strpos($sAgent, 'Gecko/') !== false ) - { - $iVersion = (int)substr($sAgent, strpos($sAgent, 'Gecko/') + 6, 8) ; - return ($iVersion >= 20030210) ; - } - else - return false ; + return FCKeditor_IsCompatibleBrowser() ; } function GetConfigFieldString() @@ -138,7 +116,7 @@ class FCKeditor $sParams .= '&amp;' ; else $bFirst = false ; - + if ( $sValue === true ) $sParams .= $this->EncodeConfig( $sKey ) . '=true' ; else if ( $sValue === false ) @@ -146,15 +124,15 @@ class FCKeditor else $sParams .= $this->EncodeConfig( $sKey ) . '=' . $this->EncodeConfig( $sValue ) ; } - + return $sParams ; } function EncodeConfig( $valueToEncode ) { - $chars = array( - '&' => '%26', - '=' => '%3D', + $chars = array( + '&' => '%26', + '=' => '%3D', '"' => '%22' ) ; return strtr( $valueToEncode, $chars ) ; diff --git a/editor/fckstyles.xml b/editor/fckstyles.xml @@ -2,32 +2,105 @@ <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * + * * == BEGIN LICENSE == - * + * * Licensed under the terms of any of the following licenses at your * choice: - * + * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html - * + * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html - * + * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html - * + * * == END LICENSE == - * - * File Name: fckstyles.xml - * This is the sample style definitions file. It makes the styles combo - * completely customizable. - * See FCKConfig.StylesXmlPath in the configuration file. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) + * + * This is the sample style definitions file. It makes the styles combo + * completely customizable. + * + * See FCKConfig.StylesXmlPath in the configuration file. --> <Styles> + + <!-- Block Styles --> + + <!-- + # These styles are already available in the "Format" combo, so they are not + # needed here by default. + + <Style name="Heading 1" element="h1" /> + <Style name="Heading 2" element="h2" /> + <Style name="Heading 3" element="h3" /> + <Style name="Heading 4" element="h4" /> + <Style name="Heading 5" element="h5" /> + <Style name="Heading 6" element="h6" /> + <Style name="Paragraph" element="p" /> + <Style name="Document Block" element="div" /> + <Style name="Preformatted Text" element="pre" /> + <Style name="Address" element="address" /> + --> + + <!-- Inline Styles --> + + <!-- + # These are core styles available as toolbar buttons. + + <Style name="Bold" element="b"> + <Override element="strong" /> + </Style> + <Style name="Italic" element="i"> + <Override element="em" /> + </Style> + <Style name="Underline" element="u" /> + <Style name="Strikethrough" element="strike" /> + <Style name="Subscript" element="sub" /> + <Style name="Superscript" element="sup" /> + --> + + <Style name="Marker: Yellow" element="span"> + <Style name="background-color" value="Yellow" /> + </Style> + <Style name="Marker: Green" element="span"> + <Style name="background-color" value="Lime" /> + </Style> + + <Style name="Strong Emphasis" element="strong" /> + <Style name="Emphasis" element="em" /> + + <Style name="Big" element="big" /> + <Style name="Small" element="small" /> + <Style name="Typewriter" element="tt" /> + + <Style name="Computer Code" element="code" /> + <Style name="Keyboard Phrase" element="kbd" /> + <Style name="Sample Text" element="samp" /> + <Style name="Variable" element="var" /> + + <Style name="Deleted Text" element="del" /> + <Style name="Inserted Text" element="ins" /> + + <Style name="Cited Work" element="cite" /> + <Style name="Inline Quotation" element="q" /> + + <Style name="Language: RTL" element="span"> + <Attribute name="dir" value="rtl" /> + </Style> + <Style name="Language: LTR" element="span"> + <Attribute name="dir" value="ltr" /> + </Style> + <Style name="Language: RTL Strong" element="bdo"> + <Attribute name="dir" value="rtl" /> + </Style> + <Style name="Language: LTR Strong" element="bdo"> + <Attribute name="dir" value="ltr" /> + </Style> + + <!-- Object Styles --> + <Style name="Image on Left" element="img"> <Attribute name="style" value="padding: 5px; margin-right: 5px" /> <Attribute name="border" value="2" /> @@ -38,19 +111,4 @@ <Attribute name="border" value="2" /> <Attribute name="align" value="right" /> </Style> - <Style name="Custom Bold" element="span"> - <Attribute name="style" value="font-weight: bold;" /> - </Style> - <Style name="Custom Italic" element="em" /> - <Style name="Title" element="span"> - <Attribute name="class" value="Title" /> - </Style> - <Style name="Code" element="span"> - <Attribute name="class" value="Code" /> - </Style> - <Style name="Title H3" element="h3" /> - <Style name="Custom Ruler" element="hr"> - <Attribute name="size" value="1" /> - <Attribute name="color" value="#ff0000" /> - </Style> </Styles> \ No newline at end of file diff --git a/editor/fcktemplates.xml b/editor/fcktemplates.xml @@ -1,106 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!-- - * FCKeditor - The text editor for Internet - http://www.fckeditor.net - * Copyright (C) 2003-2007 Frederico Caldeira Knabben - * - * == BEGIN LICENSE == - * - * Licensed under the terms of any of the following licenses at your - * choice: - * - * - GNU General Public License Version 2 or later (the "GPL") - * http://www.gnu.org/licenses/gpl.html - * - * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") - * http://www.gnu.org/licenses/lgpl.html - * - * - Mozilla Public License Version 1.1 or later (the "MPL") - * http://www.mozilla.org/MPL/MPL-1.1.html - * - * == END LICENSE == - * - * File Name: fcktemplates.xml - * This is the sample templates definitions file. It makes the "templates" - * command completely customizable. - * See FCKConfig.TemplatesXmlPath in the configuration file. - * - * File Authors: - * Frederico Caldeira Knabben (www.fckeditor.net) ---> -<Templates imagesBasePath="fck_template/images/"> - <Template title="Image and Title" image="template1.gif"> - <Description>One main image with a title and text that surround the image.</Description> - <Html> - <![CDATA[ - <img style="MARGIN-RIGHT: 10px" height="100" alt="" width="100" align="left"/> - <h3>Type the title here</h3> - Type the text here - ]]> - </Html> - </Template> - <Template title="Strange Template" image="template2.gif"> - <Description>A template that defines two colums, each one with a title, and some text.</Description> - <Html> - <![CDATA[ - <table cellspacing="0" cellpadding="0" width="100%" border="0"> - <tbody> - <tr> - <td width="50%"> - <h3>Title 1</h3> - </td> - <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </td> - <td width="50%"> - <h3>Title 2</h3> - </td> - </tr> - <tr> - <td>Text 1</td> - <td>&nbsp;</td> - <td>Text 2</td> - </tr> - </tbody> - </table> - More text goes here. - ]]> - </Html> - </Template> - <Template title="Text and Table" image="template3.gif"> - <Description>A title with some text and a table.</Description> - <Html> - <![CDATA[ - <table align="left" width="80%" border="0" cellspacing="0" cellpadding="0"><tr><td> - <h3>Title goes here</h3> - <p> - <table style="FLOAT: right" cellspacing="0" cellpadding="0" width="150" border="1"> - <tbody> - <tr> - <td align="center" colspan="3"><strong>Table title</strong></td> - </tr> - <tr> - <td>&nbsp;</td> - <td>&nbsp;</td> - <td>&nbsp;</td> - </tr> - <tr> - <td>&nbsp;</td> - <td>&nbsp;</td> - <td>&nbsp;</td> - </tr> - <tr> - <td>&nbsp;</td> - <td>&nbsp;</td> - <td>&nbsp;</td> - </tr> - <tr> - <td>&nbsp;</td> - <td>&nbsp;</td> - <td>&nbsp;</td> - </tr> - </tbody> - </table> - Type the text here</p> - </td></tr></table> - ]]> - </Html> - </Template> -</Templates> diff --git a/editor/openrat-fckconfig.js b/editor/openrat-fckconfig.js @@ -1,19 +1,19 @@ FCKConfig.ToolbarSets["Default"] = [ - ['Source','DocProps','-','Save','NewPage','Preview','-','Templates'], + ['Save','NewPage','Preview','Templates','-','Source','DocProps','ShowBlocks'], ['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'], ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'], ['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'], '/', - ['Bold','Italic','StrikeThrough','-','Subscript','Superscript'], - ['OrderedList','UnorderedList','-','Outdent','Indent'], + ['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'], + ['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'], ['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'], ['Link','Unlink','Anchor'], - ['Image','Flash','Table','Rule','SpecialChar','PageBreak'], + ['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'], '/', ['Style','FontFormat','FontName','FontSize'], ['TextColor','BGColor'], - ['FitWindow'] + ['FitWindow'] // No comma for the last row. ] ;